31#ifndef EVENT_MACHINE_QUEUE_H_
32#define EVENT_MACHINE_QUEUE_H_
34#pragma GCC visibility push(default)
206#define PRI_QTYPE PRIu32
281#define PRI_QPRIO PRIu32
301#define EM_QUEUE_PRIO_UNDEF 0xFF
320#define EM_QUEUE_FLAG_MASK 0x0000FFFF
330#define EM_QUEUE_FLAG_DEFAULT 0
341#define EM_QUEUE_FLAG_BLOCKING 0
353#define EM_QUEUE_FLAG_NONBLOCKING_LF 1
365#define EM_QUEUE_FLAG_NONBLOCKING_WF 2
378#define EM_QUEUE_FLAG_ENQ_NOT_MTSAFE 4
391#define EM_QUEUE_FLAG_DEQ_NOT_MTSAFE 8
442 const unsigned int num,
443 const em_queue_t output_queue,
444 void *output_fn_args);
903#define em_queue_get_context em_queue_context
924size_t em_queue_name(em_queue_t queue,
char *name,
size_t maxlen);
927#define em_queue_get_name em_queue_name
957#define em_queue_get_priority em_queue_priority
971#define em_queue_get_type em_queue_type
1013#define em_queue_get_group em_queue_qgroup
1030#define em_atomic_group_get em_queue_agroup
1072 em_event_t events[],
int num);
1123#define em_queue_get_first em_queue_first
1138#define em_queue_get_next em_queue_next
1154#define em_queue_get_index em_queue_index
1178#define em_queue_get_num_prio em_queue_num_prio
1203#define em_queue_get_max_num em_queue_max_num
1299em_queue_t
em_queue_aggr(em_queue_t parent_queue, uint32_t aggr_index);
1354 em_queue_t aggr_list[], uint32_t max,
1355 uint32_t *num_aggr );
1422 uint32_t max, uint32_t *num_aggr );
1436#define em_queue_get_device_id em_queue_device_id
1450#define em_queue_get_qid em_queue_qid
1464void em_queue_ids(em_queue_t queue, uint16_t *device_id ,
1468#define em_queue_get_ids em_queue_ids
1510#pragma GCC visibility pop
void em_queue_ids(em_queue_t queue, uint16_t *device_id, uint16_t *qid)
em_queue_t em_queue_static_handle(uint16_t static_offset)
em_queue_t em_queue_handle_raw(uint16_t device_id, uint16_t qid)
em_event_t em_queue_dequeue(em_queue_t queue)
uint32_t em_queue_aggr_list(em_queue_t parent_queue, em_queue_t aggr_list[], uint32_t max, uint32_t *num_aggr)
em_atomic_group_t em_queue_agroup(em_queue_t queue)
void * em_queue_context(em_queue_t queue)
uint32_t em_queue_aggr_info(em_queue_t parent_queue, em_queue_aggr_info_t aggr_info[], uint32_t max, uint32_t *num_aggr)
uint16_t em_queue_qid(em_queue_t queue)
int em_queue_dequeue_multi(em_queue_t queue, em_event_t events[], int num)
em_status_t em_queue_delete(em_queue_t queue)
int em_queue_static_max_num(void)
uint16_t em_queue_device_id(em_queue_t queue)
int em_queue_max_num(void)
void em_queue_param_init(em_queue_param_t *param)
em_status_t em_queue_set_context(em_queue_t queue, const void *context)
size_t em_queue_name(em_queue_t queue, char *name, size_t maxlen)
int em_queue_num_prio(int *num_runtime)
em_queue_prio_t em_queue_priority(em_queue_t queue)
int em_queue_dynamic_max_num(void)
int em_queue_index(em_queue_t queue)
em_queue_type_t em_queue_type(em_queue_t queue)
void em_queue_aggr_conf_init(uint32_t num_aggr, em_queue_aggr_conf_t aggr_conf[])
int(* em_output_func_t)(const em_event_t events[], const unsigned int num, const em_queue_t output_queue, void *output_fn_args)
em_status_t em_queue_create_static(const char *name, em_queue_type_t type, em_queue_prio_t prio, em_queue_group_t group, em_queue_t queue, const em_queue_conf_t *conf)
uint32_t em_queue_aggr_num(em_queue_t parent_queue)
em_queue_group_t em_queue_qgroup(em_queue_t queue)
em_queue_t em_queue_create_param(const char *name, const em_queue_param_t *param)
uint32_t em_queue_to_u32(em_queue_t queue)
em_queue_t em_queue_find(const char *name)
em_queue_t em_queue_first(unsigned int *num)
em_queue_t em_queue_aggr(em_queue_t parent_queue, uint32_t aggr_index)
int em_queue_aggr_max_num(void)
em_queue_t em_queue_create(const char *name, em_queue_type_t type, em_queue_prio_t prio, em_queue_group_t group, const em_queue_conf_t *conf)
em_queue_t em_queue_next(void)
int em_queue_internal_max_num(void)
em_queue_t em_queue_current(void)
@ EM_QUEUE_TYPE_UNSCHEDULED
@ EM_QUEUE_TYPE_PARALLEL_ORDERED
em_output_func_t output_fn
em_event_type_t event_type
uint32_t __internal_check
em_event_type_t event_type
em_queue_aggr_conf_t * aggr_conf
em_output_queue_conf_t output_conf
uint32_t __internal_check
em_atomic_group_t atomic_group
em_queue_group_t queue_group