EM-ODP 4.4.0
Event Machine on ODP
Loading...
Searching...
No Matches
event_machine_queue.h File Reference
Include dependency graph for event_machine_queue.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  em_queue_conf_t
 
struct  em_output_queue_conf_t
 
struct  em_queue_aggr_conf_t
 
struct  em_queue_param_t
 
struct  em_queue_aggr_info_t
 

Macros

#define PRI_QTYPE   PRIu32
 
#define PRI_QPRIO   PRIu32
 
#define EM_QUEUE_PRIO_UNDEF   0xFF
 
#define EM_QUEUE_FLAG_MASK   0x0000FFFF
 
#define EM_QUEUE_FLAG_DEFAULT   0
 
#define EM_QUEUE_FLAG_BLOCKING   0 /* blocking, fastest (default) */
 
#define EM_QUEUE_FLAG_NONBLOCKING_LF   1 /* non-blocking, lock-free */
 
#define EM_QUEUE_FLAG_NONBLOCKING_WF   2 /* non-blocking, wait-free */
 
#define EM_QUEUE_FLAG_ENQ_NOT_MTSAFE   4
 
#define EM_QUEUE_FLAG_DEQ_NOT_MTSAFE   8
 
#define em_queue_get_context   em_queue_context
 
#define em_queue_get_name   em_queue_name
 
#define em_queue_get_priority   em_queue_priority
 
#define em_queue_get_type   em_queue_type
 
#define em_queue_get_group   em_queue_qgroup
 
#define em_atomic_group_get   em_queue_agroup
 
#define em_queue_get_first   em_queue_first
 
#define em_queue_get_next   em_queue_next
 
#define em_queue_get_index   em_queue_index
 
#define em_queue_get_num_prio   em_queue_num_prio
 
#define em_queue_get_max_num   em_queue_max_num
 
#define em_queue_get_device_id   em_queue_device_id
 
#define em_queue_get_qid   em_queue_qid
 
#define em_queue_get_ids   em_queue_ids
 

Typedefs

typedef uint32_t em_queue_type_t
 
typedef enum em_queue_type_e em_queue_type_e
 
typedef uint32_t em_queue_prio_t
 
typedef enum em_queue_prio_e em_queue_prio_e
 
typedef uint32_t em_queue_flag_t
 
typedef int(* em_output_func_t) (const em_event_t events[], const unsigned int num, const em_queue_t output_queue, void *output_fn_args)
 

Enumerations

enum  em_queue_type_e {
  EM_QUEUE_TYPE_UNDEF = 0 , EM_QUEUE_TYPE_ATOMIC = 1 , EM_QUEUE_TYPE_PARALLEL = 2 , EM_QUEUE_TYPE_ORDERED = 3 ,
  EM_QUEUE_TYPE_PARALLEL_ORDERED = EM_QUEUE_TYPE_ORDERED , EM_QUEUE_TYPE_UNSCHEDULED = 4 , EM_QUEUE_TYPE_AGGR = 5 , EM_QUEUE_TYPE_LOCAL = 6 ,
  EM_QUEUE_TYPE_OUTPUT = 7
}
 
enum  em_queue_prio_e {
  EM_QUEUE_PRIO_LOWEST = 0 , EM_QUEUE_PRIO_LOW = 2 , EM_QUEUE_PRIO_NORMAL = 4 , EM_QUEUE_PRIO_HIGH = 6 ,
  EM_QUEUE_PRIO_HIGHEST = 7
}
 

Functions

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_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)
 
void em_queue_aggr_conf_init (uint32_t num_aggr, em_queue_aggr_conf_t aggr_conf[])
 
void em_queue_param_init (em_queue_param_t *param)
 
em_queue_t em_queue_create_param (const char *name, const em_queue_param_t *param)
 
em_status_t em_queue_delete (em_queue_t queue)
 
em_status_t em_queue_set_context (em_queue_t queue, const void *context)
 
void * em_queue_context (em_queue_t queue)
 
size_t em_queue_name (em_queue_t queue, char *name, size_t maxlen)
 
em_queue_t em_queue_find (const char *name)
 
em_queue_prio_t em_queue_priority (em_queue_t queue)
 
em_queue_type_t em_queue_type (em_queue_t queue)
 
em_queue_t em_queue_static_handle (uint16_t static_offset)
 
em_queue_group_t em_queue_qgroup (em_queue_t queue)
 
em_atomic_group_t em_queue_agroup (em_queue_t queue)
 
em_event_t em_queue_dequeue (em_queue_t queue)
 
int em_queue_dequeue_multi (em_queue_t queue, em_event_t events[], int num)
 
em_queue_t em_queue_current (void)
 
em_queue_t em_queue_first (unsigned int *num)
 
em_queue_t em_queue_next (void)
 
int em_queue_index (em_queue_t queue)
 
int em_queue_num_prio (int *num_runtime)
 
int em_queue_max_num (void)
 
int em_queue_internal_max_num (void)
 
int em_queue_static_max_num (void)
 
int em_queue_dynamic_max_num (void)
 
int em_queue_aggr_max_num (void)
 
uint32_t em_queue_aggr_num (em_queue_t parent_queue)
 
em_queue_t em_queue_aggr (em_queue_t parent_queue, uint32_t aggr_index)
 
uint32_t em_queue_aggr_list (em_queue_t parent_queue, em_queue_t aggr_list[], uint32_t max, uint32_t *num_aggr)
 
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_device_id (em_queue_t queue)
 
uint16_t em_queue_qid (em_queue_t queue)
 
void em_queue_ids (em_queue_t queue, uint16_t *device_id, uint16_t *qid)
 
em_queue_t em_queue_handle_raw (uint16_t device_id, uint16_t qid)
 
uint32_t em_queue_to_u32 (em_queue_t queue)