|
EM-ODP
3.7.0
Event Machine on ODP
|
Go to the documentation of this file.
37 #ifndef EM_QUEUE_TYPES_H_
38 #define EM_QUEUE_TYPES_H_
49 #define MAX_INTERNAL_QUEUES ROUND_UP(EM_MAX_CORES + 1, 32)
51 #define _FIRST_INTERNAL_QUEUE (_EM_QUEUE_STATIC_MAX + 1)
52 #define FIRST_INTERNAL_QUEUE ((uint16_t)_FIRST_INTERNAL_QUEUE)
54 #define _LAST_INTERNAL_QUEUE (_FIRST_INTERNAL_QUEUE + MAX_INTERNAL_QUEUES - 1)
55 #define LAST_INTERNAL_QUEUE ((uint16_t)_LAST_INTERNAL_QUEUE)
57 #define FIRST_INTERNAL_UNSCHED_QUEUE (FIRST_INTERNAL_QUEUE)
58 #define SHARED_INTERNAL_UNSCHED_QUEUE (LAST_INTERNAL_QUEUE)
61 #define INTERNAL_QUEUE_PRIORITY (EM_QUEUE_PRIO_HIGHEST)
63 COMPILE_TIME_ASSERT(MAX_INTERNAL_QUEUES - 1 >= EM_MAX_CORES,
64 TOO_FEW_INTERNAL_QUEUES_ERROR);
67 #define _FIRST_DYN_QUEUE (_LAST_INTERNAL_QUEUE + 1)
68 #define FIRST_DYN_QUEUE ((uint16_t)_FIRST_DYN_QUEUE)
70 COMPILE_TIME_ASSERT(_FIRST_DYN_QUEUE > _LAST_INTERNAL_QUEUE,
71 FIRST_DYN_QUEUE_ERROR);
73 #define QUEUE_ELEM_VALID ((uint16_t)0xCAFE)
77 (__BYTE_ORDER__ != __ORDER_LITTLE_ENDIAN__) && \
78 (__BYTE_ORDER__ != __ORDER_BIG_ENDIAN__)
79 #error __BYTE_ORDER__ not defined!
89 em_atomic_group_t atomic_group;
90 em_queue_group_t queue_group;
101 #if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
107 #elif __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__
119 INTERNAL_QUEUE_T_SIZE_ERROR);
143 EM_QUEUE_STATE_UNSCHEDULED = 255
197 uint8_t use_multi_rcv : 1;
266 QUEUE_ELEM_T__SIZE_ERROR);
317 unsigned int idx_cnt;
em_queue_group_t queue_group
struct queue_pool_t queue_pool_t
#define EM_QUEUE_PRIO_NUM
struct q_elem_atomic_group_ q_elem_atomic_group_t
odp_queue_capability_t odp_queue_capability
#define ENV_CACHE_LINE_SIZE
em_receive_multi_func_t receive_multi_func
void *end[0] ENV_CACHE_LINE_ALIGNED
objpool_elem_t queue_pool_elem
char(* name)[EM_QUEUE_NAME_LEN]
struct queue_elem_t ENV_CACHE_LINE_ALIGNED
env_atomic32_t output_queue_count ENV_CACHE_LINE_ALIGNED
queue_elem_t *queue_elem ENV_CACHE_LINE_ALIGNED
env_spinlock_t output_queue_lock
#define EM_QUEUE_NAME_LEN
em_output_queue_conf_t output_conf
odp_schedule_capability_t odp_schedule_capability
em_receive_func_t receive_func
struct queue_tbl_t queue_tbl_t
void(* em_receive_multi_func_t)(void *eo_ctx, em_event_t events[], int num, em_queue_t queue, void *q_ctx)
em_event_t output_fn_args_event
struct output_queue_track_t output_queue_track_t
void(* em_receive_func_t)(void *eo_ctx, em_event_t event, em_event_type_t type, em_queue_t queue, void *q_ctx)
em_atomic_group_t atomic_group
#define EM_MAX_OUTPUT_QUEUES
enum queue_state queue_state_e
bool output_queue_idx_free[EM_MAX_OUTPUT_QUEUES]
struct q_elem_output_ q_elem_output_t
struct local_queues_t local_queues_t