37#ifndef EM_QUEUE_TYPES_H_
38#define EM_QUEUE_TYPES_H_
69#define MAX_INTERNAL_QUEUES (EM_MAX_CORES + EM_MAX_EXTTHRS + 1)
71COMPILE_TIME_ASSERT(MAX_INTERNAL_QUEUES - 1 >=
EM_MAX_CORES, TOO_FEW_INTERNAL_QUEUES_ERROR);
74#define INTERNAL_QUEUE_PRIORITY (EM_QUEUE_PRIO_HIGHEST)
76#define QUEUE_ELEM_VALID ((uint16_t)0xCAFE)
78#define INVALID_QUEUE_ID ((uint16_t)0xFFFF)
82(__BYTE_ORDER__ != __ORDER_LITTLE_ENDIAN__) && \
83(__BYTE_ORDER__ != __ORDER_BIG_ENDIAN__)
84#error __BYTE_ORDER__ not defined!
94#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
100#elif __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__
112 INTERNAL_QUEUE_T_SIZE_ERROR);
136 EM_QUEUE_STATE_UNSCHEDULED = 255
338COMPILE_TIME_ASSERT(
sizeof(
queue_elem_t) % ENV_CACHE_LINE_SIZE == 0,
339 QUEUE_ELEM_T__SIZE_ERROR);
341COMPILE_TIME_ASSERT(
sizeof(
queue_elem_t) <= 3 * ENV_CACHE_LINE_SIZE,
342 QUEUE_ELEM_T__SIZE_TOO_LARGE);
418 unsigned int idx_cnt;
struct q_elem_atomic_group_ q_elem_atomic_group_t
struct q_elem_aggr_ q_elem_aggr_t
struct q_elem_output_ q_elem_output_t
struct queue_elem_t ENV_CACHE_LINE_ALIGNED
union queue_elem_flags_ queue_elem_flags_t
enum queue_state queue_state_e
struct q_elem_aggr_parent_ q_elem_aggr_parent_t
#define EM_QUEUE_MAX_AGGR
#define EM_QUEUE_PRIO_NUM
#define EM_QUEUE_NAME_LEN
#define EM_MAX_OUTPUT_QUEUES
void(* em_receive_func_t)(void *eo_ctx, em_event_t event, em_event_type_t type, em_queue_t queue, void *q_ctx)
void(* em_receive_multi_func_t)(void *eo_ctx, em_event_t events[], int num, em_queue_t queue, void *q_ctx)
em_event_type_t event_type
uint32_t aggr_queues[EM_QUEUE_MAX_AGGR]
em_atomic_group_t atomic_group
em_output_queue_conf_t output_conf
em_event_t output_fn_args_event
q_elem_atomic_group_t agrp
void *end[0] ENV_CACHE_LINE_ALIGNED
list_node_t eo_queue_node
objpool_elem_t queue_pool_elem
em_receive_multi_func_t receive_multi_func
em_queue_group_t queue_group
em_receive_func_t receive_func
uint16_t last_internal_queue_id
uint16_t shared_internal_queue_id
odp_schedule_capability_t odp_schedule_capability
odp_atomic_u32_t output_queue_count ENV_CACHE_LINE_ALIGNED
odp_queue_capability_t odp_queue_capability
uint16_t first_aggr_queue_id
uint16_t first_internal_queue_id
char(* name)[EM_QUEUE_NAME_LEN]
bool output_queue_idx_free[EM_MAX_OUTPUT_QUEUES]
uint16_t last_static_queue_id
uint16_t first_dyn_queue_id
queue_elem_t *queue_elem ENV_CACHE_LINE_ALIGNED
odp_ticketlock_t output_queue_lock
uint16_t last_aggr_queue_id
uint16_t first_static_queue_id
uint16_t last_dyn_queue_id