EM-ODP  3.7.0
Event Machine on ODP
em_queue_types.h File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  queue_setup_t
 
union  internal_queue_t
 
struct  q_elem_atomic_group_
 
struct  q_elem_output_
 
struct  queue_elem_t
 
struct  queue_tbl_t
 
struct  queue_pool_t
 
struct  local_queues_t
 
struct  output_queue_track_t
 

Macros

#define MAX_INTERNAL_QUEUES   ROUND_UP(EM_MAX_CORES + 1, 32)
 
#define _FIRST_INTERNAL_QUEUE   (_EM_QUEUE_STATIC_MAX + 1)
 
#define FIRST_INTERNAL_QUEUE   ((uint16_t)_FIRST_INTERNAL_QUEUE)
 
#define _LAST_INTERNAL_QUEUE   (_FIRST_INTERNAL_QUEUE + MAX_INTERNAL_QUEUES - 1)
 
#define LAST_INTERNAL_QUEUE   ((uint16_t)_LAST_INTERNAL_QUEUE)
 
#define FIRST_INTERNAL_UNSCHED_QUEUE   (FIRST_INTERNAL_QUEUE)
 
#define SHARED_INTERNAL_UNSCHED_QUEUE   (LAST_INTERNAL_QUEUE)
 
#define INTERNAL_QUEUE_PRIORITY   (EM_QUEUE_PRIO_HIGHEST)
 
#define _FIRST_DYN_QUEUE   (_LAST_INTERNAL_QUEUE + 1)
 
#define FIRST_DYN_QUEUE   ((uint16_t)_FIRST_DYN_QUEUE)
 
#define QUEUE_ELEM_VALID   ((uint16_t)0xCAFE)
 

Typedefs

typedef enum queue_state queue_state_e
 
typedef uint8_t queue_state_t
 
typedef struct q_elem_atomic_group_ q_elem_atomic_group_t
 
typedef struct q_elem_output_ q_elem_output_t
 
typedef struct queue_elem_t ENV_CACHE_LINE_ALIGNED
 
typedef struct queue_tbl_t queue_tbl_t
 
typedef struct queue_pool_t queue_pool_t
 
typedef struct local_queues_t local_queues_t
 
typedef struct output_queue_track_t output_queue_track_t
 

Enumerations

enum  queue_state {
  EM_QUEUE_STATE_INVALID = 0, EM_QUEUE_STATE_INIT = 1, EM_QUEUE_STATE_BIND = 2, EM_QUEUE_STATE_READY = 3,
  EM_QUEUE_STATE_UNSCHEDULED = 255
}
 

Functions

 COMPILE_TIME_ASSERT (MAX_INTERNAL_QUEUES - 1 >=EM_MAX_CORES, TOO_FEW_INTERNAL_QUEUES_ERROR)
 
 COMPILE_TIME_ASSERT (_FIRST_DYN_QUEUE > _LAST_INTERNAL_QUEUE, FIRST_DYN_QUEUE_ERROR)
 
 COMPILE_TIME_ASSERT (sizeof(internal_queue_t)==sizeof(em_queue_t), INTERNAL_QUEUE_T_SIZE_ERROR)
 
 COMPILE_TIME_ASSERT (sizeof(queue_elem_t) % ENV_CACHE_LINE_SIZE==0, QUEUE_ELEM_T__SIZE_ERROR)
 

Detailed Description

EM internal queue types & definitions

Definition in file em_queue_types.h.

Typedef Documentation

◆ ENV_CACHE_LINE_ALIGNED

EM queue element

◆ local_queues_t

Local queues, i.e. core-local storage for events to local queues

◆ output_queue_track_t

Track output-queues used during a dispatch round (burst)

◆ q_elem_atomic_group_t

Atomic-group queue specific part of the queue element

◆ q_elem_output_t

Output queue specific part of the queue element

◆ queue_pool_t

typedef struct queue_pool_t queue_pool_t

Pool of free queues

◆ queue_state_e

typedef enum queue_state queue_state_e

Queue state

◆ queue_state_t

typedef uint8_t queue_state_t

Queue state, packed into uint8_t.

The 'enum queue_state' or queue_state_e will always fit into an uint8_t. Save space in the queue_elem_t by using this instead.

Definition at line 151 of file em_queue_types.h.

◆ queue_tbl_t

typedef struct queue_tbl_t queue_tbl_t

EM queue element table

Enumeration Type Documentation

◆ queue_state

Queue state

Enumerator
EM_QUEUE_STATE_INVALID 

Invalid queue state, queue not created/allocated

EM_QUEUE_STATE_INIT 

Queue initialization, allocated and being set up

EM_QUEUE_STATE_BIND 

Queue added/bound to an EO, but EO-start not yet complete

EM_QUEUE_STATE_READY 

Queue ready, related EO started

Definition at line 124 of file em_queue_types.h.