EM-ODP
3.7.0
Event Machine on ODP
|
#include <inttypes.h>
#include <stdarg.h>
#include <stddef.h>
#include <stdbool.h>
Go to the source code of this file.
Data Structures | |
struct | em_queue_conf_t |
struct | em_eo_conf_t |
struct | em_notif_t |
Macros | |
#define | EM_TRUE 1 |
#define | EM_FALSE 0 |
#define | EM_EVENT_UNDEF EM_STATIC_CAST(em_event_t, EM_HDL_UNDEF) |
#define | PRI_EVENT 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 |
#define | PRI_QTYPE PRIu32 |
#define | PRI_QPRIO PRIu32 |
#define | EM_QUEUE_FLAG_MASK 0x0000FFFF |
#define | PRI_STAT PRIu32 |
#define | PRIxSTAT PRIx32 |
#define | EM_OK 0 |
#define | EM_ERROR 0xffffffff |
#define | PRI_ESCOPE PRIu32 |
#define | PRIxESCOPE PRIx32 |
#define | EM_ESCOPE_BIT (0x80000000u) |
#define | EM_ESCOPE(escope) (EM_ESCOPE_BIT & (escope)) |
#define | EM_ESCOPE_MASK (0xFF000000) |
#define | EM_ESCOPE_API_TYPE (0xFFu) |
#define | EM_ESCOPE_API_MASK (EM_ESCOPE_BIT | (EM_ESCOPE_API_TYPE << 24)) |
#define | EM_ESCOPE_API(escope) |
#define | EM_ESCOPE_ATOMIC_GROUP_CREATE (EM_ESCOPE_API_MASK | 0x0001) |
#define | EM_ESCOPE_ATOMIC_GROUP_DELETE (EM_ESCOPE_API_MASK | 0x0002) |
#define | EM_ESCOPE_QUEUE_CREATE_AG (EM_ESCOPE_API_MASK | 0x0003) |
#define | EM_ESCOPE_QUEUE_CREATE_STATIC_AG (EM_ESCOPE_API_MASK | 0x0004) |
#define | EM_ESCOPE_ATOMIC_GROUP_GET (EM_ESCOPE_API_MASK | 0x0005) |
#define | EM_ESCOPE_ATOMIC_GROUP_GET_NAME (EM_ESCOPE_API_MASK | 0x0006) |
#define | EM_ESCOPE_ATOMIC_GROUP_FIND (EM_ESCOPE_API_MASK | 0x0007) |
#define | EM_ESCOPE_ATOMIC_GROUP_GET_FIRST (EM_ESCOPE_API_MASK | 0x0008) |
#define | EM_ESCOPE_ATOMIC_GROUP_GET_NEXT (EM_ESCOPE_API_MASK | 0x0009) |
#define | EM_ESCOPE_ATOMIC_GROUP_QUEUE_GET_FIRST (EM_ESCOPE_API_MASK | 0x000A) |
#define | EM_ESCOPE_ATOMIC_GROUP_QUEUE_GET_NEXT (EM_ESCOPE_API_MASK | 0x000B) |
#define | EM_ESCOPE_CORE_ID (EM_ESCOPE_API_MASK | 0x0101) |
#define | EM_ESCOPE_CORE_COUNT (EM_ESCOPE_API_MASK | 0x0102) |
#define | EM_ESCOPE_DISPATCH (EM_ESCOPE_API_MASK | 0x0201) |
#define | EM_ESCOPE_DISPATCH_OPT_INIT (EM_ESCOPE_API_MASK | 0x0202) |
#define | EM_ESCOPE_DISPATCH_DURATION (EM_ESCOPE_API_MASK | 0x0203) |
#define | EM_ESCOPE_DISPATCH_NS (EM_ESCOPE_API_MASK | 0x0204) |
#define | EM_ESCOPE_DISPATCH_EVENTS (EM_ESCOPE_API_MASK | 0x0205) |
#define | EM_ESCOPE_DISPATCH_ROUNDS (EM_ESCOPE_API_MASK | 0x0206) |
#define | EM_ESCOPE_DISPATCH_REGISTER_ENTER_CB (EM_ESCOPE_API_MASK | 0x0207) |
#define | EM_ESCOPE_DISPATCH_UNREGISTER_ENTER_CB (EM_ESCOPE_API_MASK | 0x0208) |
#define | EM_ESCOPE_DISPATCH_REGISTER_EXIT_CB (EM_ESCOPE_API_MASK | 0x0209) |
#define | EM_ESCOPE_DISPATCH_UNREGISTER_EXIT_CB (EM_ESCOPE_API_MASK | 0x020A) |
#define | EM_ESCOPE_EO_CREATE (EM_ESCOPE_API_MASK | 0x0301) |
#define | EM_ESCOPE_EO_CREATE_MULTIRCV (EM_ESCOPE_API_MASK | 0x0302) |
#define | EM_ESCOPE_EO_MULTIRCV_PARAM_INIT (EM_ESCOPE_API_MASK | 0x0303) |
#define | EM_ESCOPE_EO_DELETE (EM_ESCOPE_API_MASK | 0x0304) |
#define | EM_ESCOPE_EO_GET_NAME (EM_ESCOPE_API_MASK | 0x0305) |
#define | EM_ESCOPE_EO_FIND (EM_ESCOPE_API_MASK | 0x0306) |
#define | EM_ESCOPE_EO_ADD_QUEUE (EM_ESCOPE_API_MASK | 0x0307) |
#define | EM_ESCOPE_EO_ADD_QUEUE_SYNC (EM_ESCOPE_API_MASK | 0x0308) |
#define | EM_ESCOPE_EO_REMOVE_QUEUE (EM_ESCOPE_API_MASK | 0x0309) |
#define | EM_ESCOPE_EO_REMOVE_QUEUE_SYNC (EM_ESCOPE_API_MASK | 0x030A) |
#define | EM_ESCOPE_EO_REMOVE_QUEUE_ALL (EM_ESCOPE_API_MASK | 0x030B) |
#define | EM_ESCOPE_EO_REMOVE_QUEUE_ALL_SYNC (EM_ESCOPE_API_MASK | 0x030C) |
#define | EM_ESCOPE_EO_REGISTER_ERROR_HANDLER (EM_ESCOPE_API_MASK | 0x030D) |
#define | EM_ESCOPE_EO_UNREGISTER_ERROR_HANDLER (EM_ESCOPE_API_MASK | 0x030E) |
#define | EM_ESCOPE_EO_START (EM_ESCOPE_API_MASK | 0x030F) |
#define | EM_ESCOPE_EO_START_SYNC (EM_ESCOPE_API_MASK | 0x0310) |
#define | EM_ESCOPE_EO_STOP (EM_ESCOPE_API_MASK | 0x0311) |
#define | EM_ESCOPE_EO_STOP_SYNC (EM_ESCOPE_API_MASK | 0x0312) |
#define | EM_ESCOPE_EO_CURRENT (EM_ESCOPE_API_MASK | 0x0313) |
#define | EM_ESCOPE_EO_GET_CONTEXT (EM_ESCOPE_API_MASK | 0x0314) |
#define | EM_ESCOPE_EO_GET_FIRST (EM_ESCOPE_API_MASK | 0x0315) |
#define | EM_ESCOPE_EO_GET_NEXT (EM_ESCOPE_API_MASK | 0x0316) |
#define | EM_ESCOPE_EO_GET_STATE (EM_ESCOPE_API_MASK | 0x0317) |
#define | EM_ESCOPE_EO_QUEUE_GET_FIRST (EM_ESCOPE_API_MASK | 0x0318) |
#define | EM_ESCOPE_EO_QUEUE_GET_NEXT (EM_ESCOPE_API_MASK | 0x0319) |
#define | EM_ESCOPE_REGISTER_ERROR_HANDLER (EM_ESCOPE_API_MASK | 0x0401) |
#define | EM_ESCOPE_UNREGISTER_ERROR_HANDLER (EM_ESCOPE_API_MASK | 0x0402) |
#define | EM_ESCOPE_ERROR (EM_ESCOPE_API_MASK | 0x0403) |
#define | EM_ESCOPE_EVENT_GROUP_CREATE (EM_ESCOPE_API_MASK | 0x0501) |
#define | EM_ESCOPE_EVENT_GROUP_DELETE (EM_ESCOPE_API_MASK | 0x0502) |
#define | EM_ESCOPE_EVENT_GROUP_APPLY (EM_ESCOPE_API_MASK | 0x0503) |
#define | EM_ESCOPE_EVENT_GROUP_INCREMENT (EM_ESCOPE_API_MASK | 0x0504) |
#define | EM_ESCOPE_EVENT_GROUP_CURRENT (EM_ESCOPE_API_MASK | 0x0505) |
#define | EM_ESCOPE_EVENT_GROUP_IS_READY (EM_ESCOPE_API_MASK | 0x0506) |
#define | EM_ESCOPE_SEND_GROUP (EM_ESCOPE_API_MASK | 0x0507) |
#define | EM_ESCOPE_SEND_GROUP_MULTI (EM_ESCOPE_API_MASK | 0x0508) |
#define | EM_ESCOPE_EVENT_GROUP_PROCESSING_END (EM_ESCOPE_API_MASK | 0x0509) |
#define | EM_ESCOPE_EVENT_GROUP_ASSIGN (EM_ESCOPE_API_MASK | 0x050A) |
#define | EM_ESCOPE_EVENT_GROUP_ABORT (EM_ESCOPE_API_MASK | 0x050B) |
#define | EM_ESCOPE_EVENT_GROUP_GET_NOTIF (EM_ESCOPE_API_MASK | 0x050C) |
#define | EM_ESCOPE_EVENT_GROUP_GET_FIRST (EM_ESCOPE_API_MASK | 0x050D) |
#define | EM_ESCOPE_EVENT_GROUP_GET_NEXT (EM_ESCOPE_API_MASK | 0x050E) |
#define | EM_ESCOPE_ALLOC (EM_ESCOPE_API_MASK | 0x0601) |
#define | EM_ESCOPE_ALLOC_MULTI (EM_ESCOPE_API_MASK | 0x0602) |
#define | EM_ESCOPE_FREE (EM_ESCOPE_API_MASK | 0x0603) |
#define | EM_ESCOPE_FREE_MULTI (EM_ESCOPE_API_MASK | 0x0604) |
#define | EM_ESCOPE_SEND (EM_ESCOPE_API_MASK | 0x0605) |
#define | EM_ESCOPE_SEND_MULTI (EM_ESCOPE_API_MASK | 0x0606) |
#define | EM_ESCOPE_EVENT_POINTER (EM_ESCOPE_API_MASK | 0x0607) |
#define | EM_ESCOPE_EVENT_POINTER_AND_SIZE (EM_ESCOPE_API_MASK | 0x0608) |
#define | EM_ESCOPE_EVENT_GET_SIZE (EM_ESCOPE_API_MASK | 0x0609) |
#define | EM_ESCOPE_EVENT_GET_POOL (EM_ESCOPE_API_MASK | 0x060A) |
#define | EM_ESCOPE_EVENT_GET_POOL_SUBPOOL (EM_ESCOPE_API_MASK | 0x060B) |
#define | EM_ESCOPE_EVENT_SET_TYPE (EM_ESCOPE_API_MASK | 0x060C) |
#define | EM_ESCOPE_EVENT_GET_TYPE (EM_ESCOPE_API_MASK | 0x060D) |
#define | EM_ESCOPE_EVENT_GET_TYPE_MULTI (EM_ESCOPE_API_MASK | 0x060E) |
#define | EM_ESCOPE_EVENT_SAME_TYPE_MULTI (EM_ESCOPE_API_MASK | 0x060F) |
#define | EM_ESCOPE_EVENT_MARK_SEND (EM_ESCOPE_API_MASK | 0x0610) |
#define | EM_ESCOPE_EVENT_UNMARK_SEND (EM_ESCOPE_API_MASK | 0x0611) |
#define | EM_ESCOPE_EVENT_MARK_FREE (EM_ESCOPE_API_MASK | 0x0612) |
#define | EM_ESCOPE_EVENT_UNMARK_FREE (EM_ESCOPE_API_MASK | 0x0613) |
#define | EM_ESCOPE_EVENT_MARK_FREE_MULTI (EM_ESCOPE_API_MASK | 0x0614) |
#define | EM_ESCOPE_EVENT_UNMARK_FREE_MULTI (EM_ESCOPE_API_MASK | 0x0615) |
#define | EM_ESCOPE_EVENT_CLONE (EM_ESCOPE_API_MASK | 0x0616) |
#define | EM_ESCOPE_EVENT_CLONE_PART (EM_ESCOPE_API_MASK | 0x0617) |
#define | EM_ESCOPE_EVENT_UAREA_GET (EM_ESCOPE_API_MASK | 0x0618) |
#define | EM_ESCOPE_EVENT_UAREA_ID_GET (EM_ESCOPE_API_MASK | 0x0619) |
#define | EM_ESCOPE_EVENT_UAREA_ID_SET (EM_ESCOPE_API_MASK | 0x061A) |
#define | EM_ESCOPE_EVENT_UAREA_INFO (EM_ESCOPE_API_MASK | 0x061B) |
#define | EM_ESCOPE_EVENT_REF (EM_ESCOPE_API_MASK | 0x061C) |
#define | EM_ESCOPE_EVENT_HAS_REF (EM_ESCOPE_API_MASK | 0x061D) |
#define | EM_ESCOPE_EVENT_VECTOR_FREE (EM_ESCOPE_API_MASK | 0x061E) |
#define | EM_ESCOPE_EVENT_VECTOR_TBL (EM_ESCOPE_API_MASK | 0x061F) |
#define | EM_ESCOPE_EVENT_VECTOR_SIZE (EM_ESCOPE_API_MASK | 0x0620) |
#define | EM_ESCOPE_EVENT_VECTOR_SIZE_SET (EM_ESCOPE_API_MASK | 0x0621) |
#define | EM_ESCOPE_EVENT_VECTOR_MAX_SIZE (EM_ESCOPE_API_MASK | 0x0622) |
#define | EM_ESCOPE_EVENT_VECTOR_INFO (EM_ESCOPE_API_MASK | 0x0623) |
#define | EM_ESCOPE_PACKET_POINTER (EM_ESCOPE_API_MASK | 0x0701) |
#define | EM_ESCOPE_PACKET_SIZE (EM_ESCOPE_API_MASK | 0x0702) |
#define | EM_ESCOPE_PACKET_POINTER_AND_SIZE (EM_ESCOPE_API_MASK | 0x0703) |
#define | EM_ESCOPE_PACKET_RESIZE (EM_ESCOPE_API_MASK | 0x0704) |
#define | EM_ESCOPE_PACKET_HEADROOM (EM_ESCOPE_API_MASK | 0x0705) |
#define | EM_ESCOPE_PACKET_TAILROOM (EM_ESCOPE_API_MASK | 0x0706) |
#define | EM_ESCOPE_PACKET_PUSH_HEAD (EM_ESCOPE_API_MASK | 0x0707) |
#define | EM_ESCOPE_PACKET_PULL_HEAD (EM_ESCOPE_API_MASK | 0x0708) |
#define | EM_ESCOPE_PACKET_PUSH_TAIL (EM_ESCOPE_API_MASK | 0x0709) |
#define | EM_ESCOPE_PACKET_PULL_TAIL (EM_ESCOPE_API_MASK | 0x070A) |
#define | EM_ESCOPE_PACKET_RESET (EM_ESCOPE_API_MASK | 0x070B) |
#define | EM_ESCOPE_QUEUE_GROUP_CREATE (EM_ESCOPE_API_MASK | 0x0801) |
#define | EM_ESCOPE_QUEUE_GROUP_CREATE_SYNC (EM_ESCOPE_API_MASK | 0x0802) |
#define | EM_ESCOPE_QUEUE_GROUP_DELETE (EM_ESCOPE_API_MASK | 0x0803) |
#define | EM_ESCOPE_QUEUE_GROUP_DELETE_SYNC (EM_ESCOPE_API_MASK | 0x0804) |
#define | EM_ESCOPE_QUEUE_GROUP_MODIFY (EM_ESCOPE_API_MASK | 0x0805) |
#define | EM_ESCOPE_QUEUE_GROUP_MODIFY_SYNC (EM_ESCOPE_API_MASK | 0x0806) |
#define | EM_ESCOPE_QUEUE_GROUP_FIND (EM_ESCOPE_API_MASK | 0x0807) |
#define | EM_ESCOPE_QUEUE_GROUP_MASK (EM_ESCOPE_API_MASK | 0x0808) |
#define | EM_ESCOPE_QUEUE_GROUP_GET_NAME (EM_ESCOPE_API_MASK | 0x0809) |
#define | EM_ESCOPE_QUEUE_GROUP_GET_FIRST (EM_ESCOPE_API_MASK | 0x080A) |
#define | EM_ESCOPE_QUEUE_GROUP_GET_NEXT (EM_ESCOPE_API_MASK | 0x080B) |
#define | EM_ESCOPE_QUEUE_GROUP_QUEUE_GET_FIRST (EM_ESCOPE_API_MASK | 0x080C) |
#define | EM_ESCOPE_QUEUE_GROUP_QUEUE_GET_NEXT (EM_ESCOPE_API_MASK | 0x080D) |
#define | EM_ESCOPE_QUEUE_CREATE (EM_ESCOPE_API_MASK | 0x0901) |
#define | EM_ESCOPE_QUEUE_CREATE_STATIC (EM_ESCOPE_API_MASK | 0x0902) |
#define | EM_ESCOPE_QUEUE_DELETE (EM_ESCOPE_API_MASK | 0x0903) |
#define | EM_ESCOPE_QUEUE_SET_CONTEXT (EM_ESCOPE_API_MASK | 0x0904) |
#define | EM_ESCOPE_QUEUE_GET_CONTEXT (EM_ESCOPE_API_MASK | 0x0905) |
#define | EM_ESCOPE_QUEUE_GET_NAME (EM_ESCOPE_API_MASK | 0x0906) |
#define | EM_ESCOPE_QUEUE_GET_PRIORITY (EM_ESCOPE_API_MASK | 0x0907) |
#define | EM_ESCOPE_QUEUE_GET_TYPE (EM_ESCOPE_API_MASK | 0x0908) |
#define | EM_ESCOPE_QUEUE_GET_GROUP (EM_ESCOPE_API_MASK | 0x0909) |
#define | EM_ESCOPE_QUEUE_FIND (EM_ESCOPE_API_MASK | 0x090A) |
#define | EM_ESCOPE_QUEUE_DEQUEUE (EM_ESCOPE_API_MASK | 0x090B) |
#define | EM_ESCOPE_QUEUE_DEQUEUE_MULTI (EM_ESCOPE_API_MASK | 0x090C) |
#define | EM_ESCOPE_QUEUE_CURRENT (EM_ESCOPE_API_MASK | 0x090D) |
#define | EM_ESCOPE_QUEUE_GET_FIRST (EM_ESCOPE_API_MASK | 0x090E) |
#define | EM_ESCOPE_QUEUE_GET_NEXT (EM_ESCOPE_API_MASK | 0x090F) |
#define | EM_ESCOPE_QUEUE_GET_INDEX (EM_ESCOPE_API_MASK | 0x0910) |
#define | EM_ESCOPE_QUEUE_GET_NUM_PRIO (EM_ESCOPE_API_MASK | 0x0911) |
#define | EM_ESCOPE_ATOMIC_PROCESSING_END (EM_ESCOPE_API_MASK | 0x0A01) |
#define | EM_ESCOPE_ORDERED_PROCESSING_END (EM_ESCOPE_API_MASK | 0x0A02) |
#define | EM_ESCOPE_PRESCHEDULE (EM_ESCOPE_API_MASK | 0x0A03) |
#define | EM_ESCOPE_SCHED_CONTEXT_TYPE_CURRENT (EM_ESCOPE_API_MASK | 0x0A04) |
#define | EM_ESCOPE_TIMER_CREATE (EM_ESCOPE_API_MASK | 0x0B00) |
#define | EM_ESCOPE_TIMER_DELETE (EM_ESCOPE_API_MASK | 0x0B01) |
#define | EM_ESCOPE_TIMER_CUR_TICK (EM_ESCOPE_API_MASK | 0x0B02) |
#define | EM_ESCOPE_TIMER_GET_ALL (EM_ESCOPE_API_MASK | 0x0B03) |
#define | EM_ESCOPE_TIMER_GET_ATTR (EM_ESCOPE_API_MASK | 0x0B04) |
#define | EM_ESCOPE_TIMER_GET_FREQ (EM_ESCOPE_API_MASK | 0x0B05) |
#define | EM_ESCOPE_TMO_CREATE (EM_ESCOPE_API_MASK | 0x0B06) |
#define | EM_ESCOPE_TMO_DELETE (EM_ESCOPE_API_MASK | 0x0B07) |
#define | EM_ESCOPE_TMO_SET_ABS (EM_ESCOPE_API_MASK | 0x0B08) |
#define | EM_ESCOPE_TMO_SET_REL (EM_ESCOPE_API_MASK | 0x0B09) |
#define | EM_ESCOPE_TMO_CANCEL (EM_ESCOPE_API_MASK | 0x0B0A) |
#define | EM_ESCOPE_TMO_ACK (EM_ESCOPE_API_MASK | 0x0B0B) |
#define | EM_ESCOPE_TMO_GET_STATE (EM_ESCOPE_API_MASK | 0x0B0C) |
#define | EM_ESCOPE_TMO_SET_PERIODIC (EM_ESCOPE_API_MASK | 0x0B0D) |
#define | EM_ESCOPE_TMO_GET_STATS (EM_ESCOPE_API_MASK | 0x0B0E) |
#define | EM_ESCOPE_TIMER_ATTR_INIT (EM_ESCOPE_API_MASK | 0x0B0F) |
#define | EM_ESCOPE_TIMER_CAPABILITY (EM_ESCOPE_API_MASK | 0x0B10) |
#define | EM_ESCOPE_TIMER_RES_CAPABILITY (EM_ESCOPE_API_MASK | 0x0B11) |
#define | EM_ESCOPE_TIMER_NS_TO_TICK (EM_ESCOPE_API_MASK | 0x0B12) |
#define | EM_ESCOPE_TIMER_TICK_TO_NS (EM_ESCOPE_API_MASK | 0x0B13) |
#define | EM_ESCOPE_TMO_GET_TYPE (EM_ESCOPE_API_MASK | 0x0B14) |
#define | EM_ESCOPE_TIMER_RING_CREATE (EM_ESCOPE_API_MASK | 0x0B15) |
#define | EM_ESCOPE_TMO_SET_PERIODIC_RING (EM_ESCOPE_API_MASK | 0x0B16) |
#define | EM_ESCOPE_TMO_GET_USERPTR (EM_ESCOPE_API_MASK | 0x0B17) |
#define | EM_ESCOPE_TMO_CREATE_ARG (EM_ESCOPE_API_MASK | 0x0B18) |
#define | EM_ESCOPE_TMO_GET_TIMER (EM_ESCOPE_API_MASK | 0x0B19) |
#define | EM_ESCOPE_ADD_ON_API_BASE (EM_ESCOPE_API_MASK | 0x1000) |
Typedefs | |
typedef uint32_t | em_event_type_t |
typedef uint32_t | em_queue_type_t |
typedef uint32_t | em_queue_prio_t |
typedef uint32_t | em_queue_flag_t |
typedef uint32_t | em_status_t |
typedef uint32_t | em_escope_t |
Enumerations | |
enum | em_sched_context_type_t { EM_SCHED_CONTEXT_TYPE_NONE = 0, EM_SCHED_CONTEXT_TYPE_ATOMIC = 1, EM_SCHED_CONTEXT_TYPE_ORDERED = 2 } |
enum | em_eo_state_t { EM_EO_STATE_UNDEF = 0, EM_EO_STATE_CREATED = 1, EM_EO_STATE_STARTING = 2, EM_EO_STATE_RUNNING = 3, EM_EO_STATE_STOPPING = 4, EM_EO_STATE_ERROR = 5 } |
Functions | |
EM_HANDLE_T (em_event_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) | |
Event Machine basic types
Definition in file event_machine_types.h.
#define EM_ATOMIC_GROUP_UNDEF EM_STATIC_CAST(em_atomic_group_t, EM_HDL_UNDEF) |
Undefined atomic group
Definition at line 156 of file event_machine_types.h.
#define EM_EO_UNDEF EM_STATIC_CAST(em_eo_t, EM_HDL_UNDEF) |
Undefined EO
Definition at line 95 of file event_machine_types.h.
#define EM_ERROR 0xffffffff |
Operation not successful.
Generic error code, other error codes are system specific.
Definition at line 337 of file event_machine_types.h.
#define EM_ESCOPE | ( | escope | ) | (EM_ESCOPE_BIT & (escope)) |
Test if the error scope identifies an EM function (API or other internal)
Definition at line 365 of file event_machine_types.h.
#define EM_ESCOPE_API | ( | escope | ) |
Test if the error scope identifies an EM API function
Definition at line 389 of file event_machine_types.h.
#define EM_ESCOPE_API_MASK (EM_ESCOPE_BIT | (EM_ESCOPE_API_TYPE << 24)) |
EM API functions error mask
Definition at line 383 of file event_machine_types.h.
#define EM_ESCOPE_API_TYPE (0xFFu) |
EM API functions error scope
Definition at line 377 of file event_machine_types.h.
#define EM_ESCOPE_BIT (0x80000000u) |
All EM internal error scopes should have bit 31 set
NOTE: High bit is RESERVED for EM internal escopes and should not be used by the application.
Definition at line 359 of file event_machine_types.h.
#define EM_ESCOPE_MASK (0xFF000000) |
Mask selects the high byte of the 32-bit escope
Definition at line 371 of file event_machine_types.h.
#define EM_EVENT_GROUP_UNDEF EM_STATIC_CAST(em_event_group_t, EM_HDL_UNDEF) |
Undefined event group
Definition at line 141 of file event_machine_types.h.
#define EM_EVENT_UNDEF EM_STATIC_CAST(em_event_t, EM_HDL_UNDEF) |
Undefined event
Definition at line 62 of file event_machine_types.h.
#define EM_FALSE 0 |
False
Definition at line 54 of file event_machine_types.h.
#define EM_OK 0 |
Operation successful
Definition at line 329 of file event_machine_types.h.
#define EM_QUEUE_FLAG_MASK 0x0000FFFF |
The low 16 bits are reserved for EM, the upper bits are free for system-specific use.
Definition at line 205 of file event_machine_types.h.
#define EM_QUEUE_GROUP_UNDEF EM_STATIC_CAST(em_queue_group_t, EM_HDL_UNDEF) |
Undefined queue group
Definition at line 127 of file event_machine_types.h.
#define EM_QUEUE_UNDEF EM_STATIC_CAST(em_queue_t, EM_HDL_UNDEF) |
Undefined queue
Definition at line 107 of file event_machine_types.h.
#define EM_TRUE 1 |
EM boolean values. True
Definition at line 53 of file event_machine_types.h.
#define PRI_AGRP PRI_HDL |
em_atomic_group_t printf format
Definition at line 158 of file event_machine_types.h.
#define PRI_EGRP PRI_HDL |
em_event_group_t printf format
Definition at line 143 of file event_machine_types.h.
#define PRI_EO PRI_HDL |
em_eo_t printf format
Definition at line 97 of file event_machine_types.h.
#define PRI_EVENT PRI_HDL |
#define PRI_QGRP PRI_HDL |
em_queue_group_t printf format
Definition at line 129 of file event_machine_types.h.
#define PRI_QUEUE PRI_HDL |
em_queue_t printf format
Definition at line 109 of file event_machine_types.h.
Error scope.
Identifies the error scope for interpreting error codes and variable arguments.
Definition at line 348 of file event_machine_types.h.
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 integer that is 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).
Definition at line 85 of file event_machine_types.h.
typedef uint32_t em_queue_flag_t |
Type for queue flags.
This is an unsigned integer with defined flags, that can be combined by bitwise 'OR' only. EM_QUEUE_FLAG_DEFAULT can be used in most cases. Unused bits must be set to zero. The actual values are system specific, but the implementation need to define at least: EM_QUEUE_FLAG_DEFAULT, EM_QUEUE_FLAG_BLOCKING, EM_QUEUE_FLAG_NONBLOCKING_LF and EM_QUEUE_FLAG_NONBLOCKING_WF even if those would not be supported.
Definition at line 199 of file event_machine_types.h.
Queue priority
Queue priority defines implementation specific QoS class for event scheduling. Priority is an integer in range 0 (lowest) to num priorities - 1. Note, that the exact scheduling rules are not defined by EM and all available priorities may not be relative to the adjacent one (e.g. using dynamic priority, rate limiting or other more complex scheduling discipline). There are 5 generic predefined values (em_queue_prio_e) mapped to available runtime priorities for portability.
Definition at line 186 of file event_machine_types.h.
Error/Status code.
EM_OK (0) is the general code for success, other values describe failed operation. There is a generic error code EM_ERROR, but application should normally test for not equal to EM_OK.
Definition at line 321 of file event_machine_types.h.
enum em_eo_state_t |
EO running state. Event dispatching is only enabled in running state.
Definition at line 295 of file event_machine_types.h.
Scheduling context types
Enumerator | |
---|---|
EM_SCHED_CONTEXT_TYPE_NONE | Parallel or released context |
EM_SCHED_CONTEXT_TYPE_ATOMIC | Atomic context |
EM_SCHED_CONTEXT_TYPE_ORDERED | Ordered context |
Definition at line 277 of file event_machine_types.h.