EM-ODP 4.4.0
Event Machine on ODP
Loading...
Searching...
No Matches
em_event_group.h File Reference
#include <stdbool.h>
#include <stdint.h>
#include <odp_api.h>
#include <event_machine.h>
#include "em_error.h"
#include "em_event_group_types.h"
#include "em_internal_event.h"
#include "em_mem.h"
Include dependency graph for em_event_group.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define EGRP_CNT_ERROR(err, escope, egrp_cnt, fmt, ...)
 
#define invalid_egrp(event_group)    ((unsigned int)egrp_hdl2idx((event_group)) >= EM_MAX_EVENT_GROUPS)
 

Functions

em_status_t event_group_init (event_group_tbl_t *const event_group_tbl, odp_stash_t *const event_group_pool)
 
em_status_t event_group_term (void)
 
em_event_group_t event_group_alloc (void)
 
em_status_t event_group_free (em_event_group_t event_group)
 
unsigned int event_group_count (void)
 
em_status_t send_ctrl_queue (em_event_t event, em_queue_t queue, em_event_group_t event_group)
 
void event_group_info_print (void)
 

Detailed Description

EM internal event group functions

Definition in file em_event_group.h.

Macro Definition Documentation

◆ EGRP_CNT_ERROR

#define EGRP_CNT_ERROR (   err,
  escope,
  egrp_cnt,
  fmt,
  ... 
)
Value:
INTERNAL_ERROR((err), (escope), \
fmt "\n post_cnt:%u gen:%u applied:%s\n", \
##__VA_ARGS__, \
(uint32_t)(egrp_cnt).post_cnt, (uint32_t)(egrp_cnt).gen, \
(egrp_cnt).applied ? "true" : "false")
#define INTERNAL_ERROR(error, escope, fmt,...)
Definition em_error.h:58

Error reporting macro for event group counters in non-safe mode (only .post_cnt)

Definition at line 66 of file em_event_group.h.

◆ invalid_egrp

#define invalid_egrp (   event_group)     ((unsigned int)egrp_hdl2idx((event_group)) >= EM_MAX_EVENT_GROUPS)

Definition at line 74 of file em_event_group.h.

Function Documentation

◆ event_group_alloc()

em_event_group_t event_group_alloc ( void  )

Definition at line 162 of file em_event_group.c.

◆ event_group_count()

unsigned int event_group_count ( void  )

Definition at line 202 of file em_event_group.c.

◆ event_group_free()

em_status_t event_group_free ( em_event_group_t  event_group)

Definition at line 181 of file em_event_group.c.

◆ event_group_info_print()

void event_group_info_print ( void  )

Print information about all event groups

Definition at line 215 of file em_event_group.c.

◆ event_group_init()

em_status_t event_group_init ( event_group_tbl_t *const  event_group_tbl,
odp_stash_t *const  event_group_pool 
)

Definition at line 60 of file em_event_group.c.

◆ event_group_term()

em_status_t event_group_term ( void  )

Definition at line 138 of file em_event_group.c.

◆ send_ctrl_queue()

em_status_t send_ctrl_queue ( em_event_t  event,
em_queue_t  queue,
em_event_group_t  event_group 
)

Send an internal control event to an EM unscheduled control queue, tagged to an event group.

Internal counterpart to em_send_group() for EM's own control-event plumbing: the per-core/shared unscheduled ctrl queues are dispatched by EM, so the event group count is decremented normally. Unlike em_send_group() this skips the user-facing argument checks, the unscheduled-queue restriction and the user API send-hooks. The caller must pass valid internal arguments.

Returns
EM_OK if successful.

Definition at line 921 of file event_machine_event_group.c.