EM-ODP 4.4.0
Event Machine on ODP
Loading...
Searching...
No Matches
event_machine_types.h File Reference
#include <inttypes.h>
#include <stdarg.h>
#include <stddef.h>
#include <stdbool.h>
#include <odp/api/cpumask.h>
#include <event_machine/api/event_machine_config.h>
Include dependency graph for event_machine_types.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  em_notif_t
 

Macros

#define EM_TRUE   1
 
#define EM_FALSE   0
 
#define EM_UNDEF_U64   0
 
#define EM_UNDEF_U32   0
 
#define EM_UNDEF_U16   0
 
#define EM_UNDEF_U8   0
 
#define EM_UNDEF_UINTPTR   EM_STATIC_CAST(uintptr_t, NULL)
 
#define EM_UNDEF_PTR   NULL
 
#define EM_HANDLE_T(type_t)
 
#define EM_HDL_UNDEF   NULL
 
#define PRI_HDL   "p"
 
#define EM_EVENT_UNDEF   EM_STATIC_CAST(em_event_t, EM_HDL_UNDEF)
 
#define PRI_EVENT   PRI_HDL
 
#define EM_POOL_UNDEF   EM_STATIC_CAST(em_pool_t, EM_HDL_UNDEF)
 
#define PRI_POOL   PRI_HDL
 
#define EM_EO_UNDEF   EM_STATIC_CAST(em_eo_t, EM_HDL_UNDEF)
 
#define PRI_EO   PRI_HDL
 
#define EM_QUEUE_UNDEF   EM_STATIC_CAST(em_queue_t, EM_HDL_UNDEF)
 
#define PRI_QUEUE   PRI_HDL
 
#define EM_QUEUE_GROUP_UNDEF   EM_STATIC_CAST(em_queue_group_t, EM_HDL_UNDEF)
 
#define PRI_QGRP   PRI_HDL
 
#define EM_EVENT_GROUP_UNDEF   EM_STATIC_CAST(em_event_group_t, EM_HDL_UNDEF)
 
#define PRI_EGRP   PRI_HDL
 
#define EM_ATOMIC_GROUP_UNDEF   EM_STATIC_CAST(em_atomic_group_t, EM_HDL_UNDEF)
 
#define PRI_AGRP   PRI_HDL
 

Typedefs

typedef uint32_t em_event_type_t
 

Functions

 EM_HANDLE_T (em_event_t)
 
 EM_HANDLE_T (em_pool_t)
 
 EM_HANDLE_T (em_eo_t)
 
 EM_HANDLE_T (em_queue_t)
 
 EM_HANDLE_T (em_queue_group_t)
 
 EM_HANDLE_T (em_event_group_t)
 
 EM_HANDLE_T (em_atomic_group_t)
 

Detailed Description

Event Machine basic types and defines

Definition in file event_machine_types.h.

Macro Definition Documentation

◆ EM_ATOMIC_GROUP_UNDEF

#define EM_ATOMIC_GROUP_UNDEF   EM_STATIC_CAST(em_atomic_group_t, EM_HDL_UNDEF)

Undefined atomic group

Examples
event_types.c, loop_united.c, queue_types_ag.c, queue_types_local.c, and timer_test_periodic.c.

Definition at line 197 of file event_machine_types.h.

◆ EM_EO_UNDEF

◆ EM_EVENT_GROUP_UNDEF

#define EM_EVENT_GROUP_UNDEF   EM_STATIC_CAST(em_event_group_t, EM_HDL_UNDEF)

◆ EM_EVENT_UNDEF

◆ EM_FALSE

#define EM_FALSE   0

EM boolean value: False

Examples
event_group.c, event_group_chaining.c, queue_types_ag.c, and queue_types_local.c.

Definition at line 59 of file event_machine_types.h.

◆ EM_HANDLE_T

#define EM_HANDLE_T (   type_t)
Value:
typedef struct _##type_t { \
void *unused; \
} *(type_t)

Define 'type_t' as a struct ptr to improve type safety

Definition at line 82 of file event_machine_types.h.

◆ EM_HDL_UNDEF

#define EM_HDL_UNDEF   NULL

Undefined EM-handle

Definition at line 92 of file event_machine_types.h.

◆ EM_POOL_UNDEF

◆ EM_QUEUE_GROUP_UNDEF

◆ EM_QUEUE_UNDEF

◆ EM_TRUE

◆ EM_UNDEF_PTR

#define EM_UNDEF_PTR   NULL

EM undefined pointer

Definition at line 73 of file event_machine_types.h.

◆ EM_UNDEF_U16

#define EM_UNDEF_U16   0

EM undefined u16

Definition at line 66 of file event_machine_types.h.

◆ EM_UNDEF_U32

#define EM_UNDEF_U32   0

EM undefined u32

Definition at line 64 of file event_machine_types.h.

◆ EM_UNDEF_U64

#define EM_UNDEF_U64   0

EM undefined u64

Definition at line 62 of file event_machine_types.h.

◆ EM_UNDEF_U8

#define EM_UNDEF_U8   0

EM undefined u8

Definition at line 68 of file event_machine_types.h.

◆ EM_UNDEF_UINTPTR

#define EM_UNDEF_UINTPTR   EM_STATIC_CAST(uintptr_t, NULL)

EM undefined uintptr

Definition at line 70 of file event_machine_types.h.

◆ PRI_AGRP

#define PRI_AGRP   PRI_HDL

em_atomic_group_t printf format

Examples
queue_types_ag.c.

Definition at line 199 of file event_machine_types.h.

◆ PRI_EGRP

#define PRI_EGRP   PRI_HDL

◆ PRI_EO

◆ PRI_EVENT

#define PRI_EVENT   PRI_HDL

em_event_t printf format

Examples
api_hooks.c.

Definition at line 112 of file event_machine_types.h.

◆ PRI_HDL

#define PRI_HDL   "p"

EM-handle printf format

Definition at line 101 of file event_machine_types.h.

◆ PRI_POOL

◆ PRI_QGRP

#define PRI_QGRP   PRI_HDL

em_queue_group_t printf format

Examples
dyn_cores.c, queue_group.c, and queue_groups.c.

Definition at line 170 of file event_machine_types.h.

◆ PRI_QUEUE

Typedef Documentation

◆ em_event_type_t

Event type

The event type is given to the EO-receive function for each received event and is also needed for event allocation. This type is an unsigned integer split into major and minor parts: 1) the major-field categorizes the event and 2) the minor is a more detailed system specific description. The major-part will not change by HW, but the minor-part can be HW/SW platform specific and thus could be split into more sub-fields as needed. The application should use the access functions for reading major and minor parts.

The only event type with defined content is EM_EVENT_TYPE_SW with minor type 0, which needs to be portable (direct pointer to data).

See also
em_event_type_major_e, em_event_type_sw_minor_e for named type constants
em_event_type_major(), em_event_type_minor(), em_receive_func_t()
Examples
timer_test_periodic.c.

Definition at line 221 of file event_machine_types.h.