44 #define invalid_eo(eo) ((unsigned int)eo_hdl2idx((eo)) >= EM_MAX_EOS)
62 eo_rem_queue_all(
eo_elem_t *
const eo_elem);
65 eo_delete_queue_all(
eo_elem_t *
const eo_elem);
68 eo_start_local_req(
eo_elem_t *
const eo_elem,
71 eo_start_sync_local_req(
eo_elem_t *
const eo_elem);
78 eo_stop_local_req(
eo_elem_t *
const eo_elem,
81 eo_stop_sync_local_req(
eo_elem_t *
const eo_elem);
87 eo_remove_queue_sync_local_req(
eo_elem_t *
const eo_elem,
90 eo_remove_queue_all_local_req(
eo_elem_t *
const eo_elem,
int delete_queues,
93 eo_remove_queue_all_sync_local_req(
eo_elem_t *
const eo_elem,
int delete_queues);
98 size_t eo_get_name(
const eo_elem_t *
const eo_elem,
99 char name[],
const size_t maxlen);
104 eo_allocated(
const eo_elem_t *
const eo_elem)
111 eo_hdl2idx(em_eo_t eo)
113 return (
int)(uintptr_t)eo - 1;
117 static inline em_eo_t
118 eo_idx2hdl(
int eo_idx)
120 return (em_eo_t)(uintptr_t)(eo_idx + 1);
125 eo_elem_get(em_eo_t eo)
127 const int eo_idx = eo_hdl2idx(eo);
130 if (unlikely((
unsigned int)eo_idx >
EM_MAX_EOS - 1))
133 eo_elem = &
em_shm->eo_tbl.eo_elem[eo_idx];
140 eo_elem_current(
void)
144 if (unlikely(q_elem == NULL))
150 static inline em_eo_t
155 if (unlikely(q_elem == NULL))
158 return (em_eo_t)(uintptr_t)q_elem->
eo;