![]() |
EM-ODP 4.4.0
Event Machine on ODP
|
#include <em_queue_types.h>

Data Fields | ||
| uint16_t | valid_check | |
| queue_elem_flags_t | flags | |
| queue_state_t | state | |
| uint8_t | priority | |
| uint8_t | type | |
| uint16_t | max_events | |
| uint16_t | eo | |
| uint32_t | queue | |
| odp_queue_t | odp_queue | |
| void * | context | |
| union { | ||
| em_receive_func_t receive_func | ||
| em_receive_multi_func_t receive_multi_func | ||
| }; | ||
| void * | eo_ctx | |
| q_elem_atomic_group_t | agrp | |
| union { | ||
| q_elem_aggr_parent_t aggr_parent | ||
| q_elem_aggr_t aggr | ||
| q_elem_output_t output | ||
| }; | ||
| eo_elem_t * | eo_elem | |
| em_queue_group_t | queue_group | |
| list_node_t | eo_queue_node | |
| list_node_t | qgrp_node | |
| objpool_elem_t | queue_pool_elem | |
| uint8_t | end_data [0] | |
| void *end[0] | ENV_CACHE_LINE_ALIGNED | |
EM queue element
Definition at line 236 of file em_queue_types.h.
| union { ... } queue_elem_t |
Type-specific queue data (union).
Only one variant is active, determined by the queue type:
| q_elem_aggr_t queue_elem_t::aggr |
Definition at line 306 of file em_queue_types.h.
| q_elem_aggr_parent_t queue_elem_t::aggr_parent |
Definition at line 305 of file em_queue_types.h.
| q_elem_atomic_group_t queue_elem_t::agrp |
Atomic group specific data. Only used if the queue belongs to an atomic group. Cannot be placed in the union below (with the other q_elem_*_t's) since a queue might both belong to an atomic group and have aggregator child queues (i.e. .agrp and .aggr_parent might be simultaneously in use).
Definition at line 293 of file em_queue_types.h.
| void* queue_elem_t::context |
User defined queue context (can be NULL)
Definition at line 274 of file em_queue_types.h.
| uint8_t queue_elem_t::end_data[0] |
End of queue element data, for offsetof(queue_elem_t, end_data)
Definition at line 328 of file em_queue_types.h.
| void* end [0] queue_elem_t::ENV_CACHE_LINE_ALIGNED |
Guarantee that size is a multiple of cache line size
Definition at line 335 of file em_queue_types.h.
| uint16_t queue_elem_t::eo |
EM EO that this queue belongs to
Definition at line 265 of file em_queue_types.h.
| void* queue_elem_t::eo_ctx |
Copy of the user defined eo context (or NULL) for performance
Definition at line 284 of file em_queue_types.h.
| eo_elem_t* queue_elem_t::eo_elem |
Associated eo element
Definition at line 311 of file em_queue_types.h.
| list_node_t queue_elem_t::eo_queue_node |
List node for linking queue elems belonging to an EO
Definition at line 317 of file em_queue_types.h.
| queue_elem_flags_t queue_elem_t::flags |
Queue flags
Definition at line 250 of file em_queue_types.h.
| uint16_t queue_elem_t::max_events |
Max number of events passed to the EO's multi-event receive function
Definition at line 262 of file em_queue_types.h.
| odp_queue_t queue_elem_t::odp_queue |
Associated ODP queue handle
Definition at line 271 of file em_queue_types.h.
| q_elem_output_t queue_elem_t::output |
Definition at line 307 of file em_queue_types.h.
| uint8_t queue_elem_t::priority |
Queue priority
Definition at line 256 of file em_queue_types.h.
| list_node_t queue_elem_t::qgrp_node |
List node for linking queue elems belonging to a queue group
Definition at line 319 of file em_queue_types.h.
| uint32_t queue_elem_t::queue |
Queue handle
Definition at line 268 of file em_queue_types.h.
| em_queue_group_t queue_elem_t::queue_group |
Queue group handle of this queue
Definition at line 314 of file em_queue_types.h.
| objpool_elem_t queue_elem_t::queue_pool_elem |
Queue pool elem for linking free queues for queue_alloc()
Definition at line 322 of file em_queue_types.h.
| em_receive_func_t queue_elem_t::receive_func |
Copy of the event receive function for better performance
Definition at line 278 of file em_queue_types.h.
| em_receive_multi_func_t queue_elem_t::receive_multi_func |
Copy of the multi-event receive function for better performance
Definition at line 280 of file em_queue_types.h.
| queue_state_t queue_elem_t::state |
Queue state
Definition at line 253 of file em_queue_types.h.
| uint8_t queue_elem_t::type |
Atomic, parallel, ordered, unscheduled, local, output, aggregator
Definition at line 259 of file em_queue_types.h.
| uint16_t queue_elem_t::valid_check |
Check that contents is an EM queue elem.
EM will verify that the ODP queue context actually points to an EM queue elem and not to something else: queue_elem_t *q_elem = odp_queue_context(odp_queue); if (!q_elem || q_elem->valid_check != QUEUE_ELEM_VALID) EM_ERROR(...); Keep first.
Definition at line 247 of file em_queue_types.h.