| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- /*
- * Copyright (C) 2019 Intel Corporation. All rights reserved.
- * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
- */
- #ifndef _BH_QUEUE_H
- #define _BH_QUEUE_H
- #ifdef __cplusplus
- extern "C" {
- #endif
- #include "bh_types.h" /*For bool type*/
- #include "bh_platform.h"
- struct _bh_queue_node;
- typedef struct _bh_queue_node * bh_message_t;
- struct bh_queue;
- typedef struct bh_queue bh_queue;
- typedef void (*bh_queue_handle_msg_callback)(void *message, void *arg);
- #define bh_queue_malloc bh_malloc
- #define bh_queue_free bh_free
- #define bh_queue_mutex korp_mutex
- #define bh_queue_sem korp_sem
- #define bh_queue_cond korp_cond
- #define bh_queue_mutex_init vm_mutex_init
- #define bh_queue_mutex_destroy vm_mutex_destroy
- #define bh_queue_mutex_lock vm_mutex_lock
- #define bh_queue_mutex_unlock vm_mutex_unlock
- #define bh_queue_sem_init vm_sem_init
- #define bh_queue_sem_destroy vm_sem_destroy
- #define bh_queue_sem_wait vm_sem_wait
- #define bh_queue_sem_reltimedwait vm_sem_reltimedwait
- #define bh_queue_sem_post vm_sem_post
- #define bh_queue_cond_init vm_cond_init
- #define bh_queue_cond_destroy vm_cond_destroy
- #define bh_queue_cond_wait vm_cond_wait
- #define bh_queue_cond_timedwait vm_cond_reltimedwait
- #define bh_queue_cond_signal vm_cond_signal
- #define bh_queue_cond_broadcast vm_cond_broadcast
- typedef void (*bh_msg_cleaner)(void *msg);
- bh_queue *
- bh_queue_create();
- void
- bh_queue_destroy(bh_queue *queue);
- char * bh_message_payload(bh_message_t message);
- uint32 bh_message_payload_len(bh_message_t message);
- int bh_message_type(bh_message_t message);
- bh_message_t bh_new_msg(unsigned short tag, void *body, unsigned int len,
- void * handler);
- void bh_free_msg(bh_message_t msg);
- bool bh_post_msg(bh_queue *queue, unsigned short tag, void *body,
- unsigned int len);
- bool bh_post_msg2(bh_queue *queue, bh_message_t msg);
- bh_message_t bh_get_msg(bh_queue *queue, int timeout);
- unsigned
- bh_queue_get_message_count(bh_queue *queue);
- void
- bh_queue_enter_loop_run(bh_queue *queue,
- bh_queue_handle_msg_callback handle_cb,
- void *arg);
- void
- bh_queue_exit_loop_run(bh_queue *queue);
- #ifdef __cplusplus
- }
- #endif
- #endif /* #ifndef _BH_QUEUE_H */
|