EM-ODP
3.7.0
Event Machine on ODP
|
Go to the source code of this file.
Macros | |
#define | invalid_qgrp(queue_group) ((unsigned int)qgrp_hdl2idx((queue_group)) >= EM_MAX_QUEUE_GROUPS) |
Functions | |
em_status_t | queue_group_init (queue_group_tbl_t *const queue_group_tbl, queue_group_pool_t *const queue_group_pool) |
em_status_t | queue_group_init_local (void) |
void | queue_group_join_all (void) |
The calling core joins all available queue groups. More... | |
em_queue_group_t | queue_group_create (const char *name, const em_core_mask_t *mask, int num_notif, const em_notif_t notif_tbl[], em_queue_group_t queue_group) |
em_queue_group_t | queue_group_create_sync (const char *name, const em_core_mask_t *mask, em_queue_group_t requested_queue_group) |
em_status_t | queue_group_modify (queue_group_elem_t *const qgrp_elem, const em_core_mask_t *new_mask, int num_notif, const em_notif_t notif_tbl[], bool is_delete) |
em_status_t | queue_group_modify_sync (queue_group_elem_t *const qgrp_elem, const em_core_mask_t *new_mask, bool is_delete) |
void | queue_group_add_queue_list (queue_group_elem_t *const queue_group_elem, queue_elem_t *const queue_elem) |
void | queue_group_rem_queue_list (queue_group_elem_t *const queue_group_elem, queue_elem_t *const queue_elem) |
unsigned int | queue_group_count (void) |
em_status_t | queue_group_check_mask (const em_core_mask_t *mask) |
Check that only running EM cores are set in mask. More... | |
void | queue_group_info_print_all (void) |
Print EM queue group info. | |
void | queue_group_queues_print (em_queue_group_t qgrp) |
Print info about all queues belonging to the given queue group. | |
void | i_event__qgrp_add_core_req (const internal_event_t *i_ev) |
EM internal event handler, add core to an EM queue group. (see em_internal_event.c&h) More... | |
void | i_event__qgrp_rem_core_req (const internal_event_t *i_ev) |
EM internal event handler, remove core from an EM queue group. (see em_internal_event.c&h) More... | |
EM internal queue group functions
Definition in file em_queue_group.h.
void i_event__qgrp_add_core_req | ( | const internal_event_t * | i_ev | ) |
EM internal event handler, add core to an EM queue group. (see em_internal_event.c&h)
Handle the internal event requesting to add the core to an ODP schedule group that is related to an EM queue group.
Definition at line 1207 of file em_queue_group.c.
void i_event__qgrp_rem_core_req | ( | const internal_event_t * | i_ev | ) |
EM internal event handler, remove core from an EM queue group. (see em_internal_event.c&h)
Handle the internal event requesting to remove the core from an ODP schedule group that is related to an EM queue group.
Definition at line 1220 of file em_queue_group.c.
em_status_t queue_group_check_mask | ( | const em_core_mask_t * | mask | ) |
Check that only running EM cores are set in mask.
mask | Queue group core mask |
Definition at line 610 of file em_queue_group.c.
em_queue_group_t queue_group_create | ( | const char * | name, |
const em_core_mask_t * | mask, | ||
int | num_notif, | ||
const em_notif_t | notif_tbl[], | ||
em_queue_group_t | requested_queue_group | ||
) |
Allow creating a queue group with a specific handle if requested and available.
Definition at line 583 of file em_queue_group.c.
em_queue_group_t queue_group_create_sync | ( | const char * | name, |
const em_core_mask_t * | mask, | ||
em_queue_group_t | requested_queue_group | ||
) |
Allow creating a queue group synchronously with a specific handle if requested and available. No need for sync blocking when creating a new queue group.
Definition at line 598 of file em_queue_group.c.
em_status_t queue_group_init | ( | queue_group_tbl_t *const | queue_group_tbl, |
queue_group_pool_t *const | queue_group_pool | ||
) |
Queue group inits done at global init (once at startup on one core)
Definition at line 122 of file em_queue_group.c.
void queue_group_join_all | ( | void | ) |
The calling core joins all available queue groups.
Main use case for em_term(): to be able to flush the scheduler with only the last EM-core running we need to modify all queue groups to include this last core in the queue groups' core masks
Definition at line 370 of file em_queue_group.c.
em_status_t queue_group_modify | ( | queue_group_elem_t *const | qgrp_elem, |
const em_core_mask_t * | new_mask, | ||
int | num_notif, | ||
const em_notif_t | notif_tbl[], | ||
bool | is_delete | ||
) |
Called by em_queue_group_modify with flag is_delete=0 and by em_queue_group_delete() with flag is_delete=1
qgrp_elem | Queue group element |
new_mask | New core mask |
num_notif | Number of entries in notif_tbl (0 for no notification) |
notif_tbl | Array of notifications to send as the operation completes |
is_delete | Is this modify triggered by em_queue_group_delete()? |
Definition at line 942 of file em_queue_group.c.
em_status_t queue_group_modify_sync | ( | queue_group_elem_t *const | qgrp_elem, |
const em_core_mask_t * | new_mask, | ||
bool | is_delete | ||
) |
Called by em_queue_group_modify_sync with flag is_delete=0 and by em_queue_group_delete_sync() with flag is_delete=1
qgrp_elem | Queue group element |
new_mask | New core mask |
is_delete | Is this modify triggered by em_queue_group_delete_sync()? |
Definition at line 1034 of file em_queue_group.c.