32 #ifndef EVENT_MACHINE_TYPES_H_
33 #define EVENT_MACHINE_TYPES_H_
35 #pragma GCC visibility push(default)
62 #define EM_EVENT_UNDEF EM_STATIC_CAST(em_event_t, EM_HDL_UNDEF)
64 #define PRI_EVENT PRI_HDL
95 #define EM_EO_UNDEF EM_STATIC_CAST(em_eo_t, EM_HDL_UNDEF)
97 #define PRI_EO PRI_HDL
107 #define EM_QUEUE_UNDEF EM_STATIC_CAST(em_queue_t, EM_HDL_UNDEF)
109 #define PRI_QUEUE PRI_HDL
127 #define EM_QUEUE_GROUP_UNDEF EM_STATIC_CAST(em_queue_group_t, EM_HDL_UNDEF)
129 #define PRI_QGRP PRI_HDL
141 #define EM_EVENT_GROUP_UNDEF EM_STATIC_CAST(em_event_group_t, EM_HDL_UNDEF)
143 #define PRI_EGRP PRI_HDL
156 #define EM_ATOMIC_GROUP_UNDEF EM_STATIC_CAST(em_atomic_group_t, EM_HDL_UNDEF)
158 #define PRI_AGRP PRI_HDL
169 #define PRI_QTYPE PRIu32
187 #define PRI_QPRIO PRIu32
205 #define EM_QUEUE_FLAG_MASK 0x0000FFFF
322 #define PRI_STAT PRIu32
323 #define PRIxSTAT PRIx32
337 #define EM_ERROR 0xffffffff
349 #define PRI_ESCOPE PRIu32
350 #define PRIxESCOPE PRIx32
359 #define EM_ESCOPE_BIT (0x80000000u)
365 #define EM_ESCOPE(escope) (EM_ESCOPE_BIT & (escope))
371 #define EM_ESCOPE_MASK (0xFF000000)
377 #define EM_ESCOPE_API_TYPE (0xFFu)
383 #define EM_ESCOPE_API_MASK (EM_ESCOPE_BIT | (EM_ESCOPE_API_TYPE << 24))
389 #define EM_ESCOPE_API(escope) (((escope) & EM_ESCOPE_MASK) == \
397 #define EM_ESCOPE_ATOMIC_GROUP_CREATE (EM_ESCOPE_API_MASK | 0x0001)
398 #define EM_ESCOPE_ATOMIC_GROUP_DELETE (EM_ESCOPE_API_MASK | 0x0002)
399 #define EM_ESCOPE_QUEUE_CREATE_AG (EM_ESCOPE_API_MASK | 0x0003)
400 #define EM_ESCOPE_QUEUE_CREATE_STATIC_AG (EM_ESCOPE_API_MASK | 0x0004)
401 #define EM_ESCOPE_ATOMIC_GROUP_GET (EM_ESCOPE_API_MASK | 0x0005)
402 #define EM_ESCOPE_ATOMIC_GROUP_GET_NAME (EM_ESCOPE_API_MASK | 0x0006)
403 #define EM_ESCOPE_ATOMIC_GROUP_FIND (EM_ESCOPE_API_MASK | 0x0007)
404 #define EM_ESCOPE_ATOMIC_GROUP_GET_FIRST (EM_ESCOPE_API_MASK | 0x0008)
405 #define EM_ESCOPE_ATOMIC_GROUP_GET_NEXT (EM_ESCOPE_API_MASK | 0x0009)
406 #define EM_ESCOPE_ATOMIC_GROUP_QUEUE_GET_FIRST (EM_ESCOPE_API_MASK | 0x000A)
407 #define EM_ESCOPE_ATOMIC_GROUP_QUEUE_GET_NEXT (EM_ESCOPE_API_MASK | 0x000B)
410 #define EM_ESCOPE_CORE_ID (EM_ESCOPE_API_MASK | 0x0101)
411 #define EM_ESCOPE_CORE_COUNT (EM_ESCOPE_API_MASK | 0x0102)
414 #define EM_ESCOPE_DISPATCH (EM_ESCOPE_API_MASK | 0x0201)
415 #define EM_ESCOPE_DISPATCH_OPT_INIT (EM_ESCOPE_API_MASK | 0x0202)
416 #define EM_ESCOPE_DISPATCH_DURATION (EM_ESCOPE_API_MASK | 0x0203)
417 #define EM_ESCOPE_DISPATCH_NS (EM_ESCOPE_API_MASK | 0x0204)
418 #define EM_ESCOPE_DISPATCH_EVENTS (EM_ESCOPE_API_MASK | 0x0205)
419 #define EM_ESCOPE_DISPATCH_ROUNDS (EM_ESCOPE_API_MASK | 0x0206)
420 #define EM_ESCOPE_DISPATCH_REGISTER_ENTER_CB (EM_ESCOPE_API_MASK | 0x0207)
421 #define EM_ESCOPE_DISPATCH_UNREGISTER_ENTER_CB (EM_ESCOPE_API_MASK | 0x0208)
422 #define EM_ESCOPE_DISPATCH_REGISTER_EXIT_CB (EM_ESCOPE_API_MASK | 0x0209)
423 #define EM_ESCOPE_DISPATCH_UNREGISTER_EXIT_CB (EM_ESCOPE_API_MASK | 0x020A)
426 #define EM_ESCOPE_EO_CREATE (EM_ESCOPE_API_MASK | 0x0301)
427 #define EM_ESCOPE_EO_CREATE_MULTIRCV (EM_ESCOPE_API_MASK | 0x0302)
428 #define EM_ESCOPE_EO_MULTIRCV_PARAM_INIT (EM_ESCOPE_API_MASK | 0x0303)
429 #define EM_ESCOPE_EO_DELETE (EM_ESCOPE_API_MASK | 0x0304)
430 #define EM_ESCOPE_EO_GET_NAME (EM_ESCOPE_API_MASK | 0x0305)
431 #define EM_ESCOPE_EO_FIND (EM_ESCOPE_API_MASK | 0x0306)
432 #define EM_ESCOPE_EO_ADD_QUEUE (EM_ESCOPE_API_MASK | 0x0307)
433 #define EM_ESCOPE_EO_ADD_QUEUE_SYNC (EM_ESCOPE_API_MASK | 0x0308)
434 #define EM_ESCOPE_EO_REMOVE_QUEUE (EM_ESCOPE_API_MASK | 0x0309)
435 #define EM_ESCOPE_EO_REMOVE_QUEUE_SYNC (EM_ESCOPE_API_MASK | 0x030A)
436 #define EM_ESCOPE_EO_REMOVE_QUEUE_ALL (EM_ESCOPE_API_MASK | 0x030B)
437 #define EM_ESCOPE_EO_REMOVE_QUEUE_ALL_SYNC (EM_ESCOPE_API_MASK | 0x030C)
438 #define EM_ESCOPE_EO_REGISTER_ERROR_HANDLER (EM_ESCOPE_API_MASK | 0x030D)
439 #define EM_ESCOPE_EO_UNREGISTER_ERROR_HANDLER (EM_ESCOPE_API_MASK | 0x030E)
440 #define EM_ESCOPE_EO_START (EM_ESCOPE_API_MASK | 0x030F)
441 #define EM_ESCOPE_EO_START_SYNC (EM_ESCOPE_API_MASK | 0x0310)
442 #define EM_ESCOPE_EO_STOP (EM_ESCOPE_API_MASK | 0x0311)
443 #define EM_ESCOPE_EO_STOP_SYNC (EM_ESCOPE_API_MASK | 0x0312)
444 #define EM_ESCOPE_EO_CURRENT (EM_ESCOPE_API_MASK | 0x0313)
445 #define EM_ESCOPE_EO_GET_CONTEXT (EM_ESCOPE_API_MASK | 0x0314)
446 #define EM_ESCOPE_EO_GET_FIRST (EM_ESCOPE_API_MASK | 0x0315)
447 #define EM_ESCOPE_EO_GET_NEXT (EM_ESCOPE_API_MASK | 0x0316)
448 #define EM_ESCOPE_EO_GET_STATE (EM_ESCOPE_API_MASK | 0x0317)
449 #define EM_ESCOPE_EO_QUEUE_GET_FIRST (EM_ESCOPE_API_MASK | 0x0318)
450 #define EM_ESCOPE_EO_QUEUE_GET_NEXT (EM_ESCOPE_API_MASK | 0x0319)
453 #define EM_ESCOPE_REGISTER_ERROR_HANDLER (EM_ESCOPE_API_MASK | 0x0401)
454 #define EM_ESCOPE_UNREGISTER_ERROR_HANDLER (EM_ESCOPE_API_MASK | 0x0402)
455 #define EM_ESCOPE_ERROR (EM_ESCOPE_API_MASK | 0x0403)
458 #define EM_ESCOPE_EVENT_GROUP_CREATE (EM_ESCOPE_API_MASK | 0x0501)
459 #define EM_ESCOPE_EVENT_GROUP_DELETE (EM_ESCOPE_API_MASK | 0x0502)
460 #define EM_ESCOPE_EVENT_GROUP_APPLY (EM_ESCOPE_API_MASK | 0x0503)
461 #define EM_ESCOPE_EVENT_GROUP_INCREMENT (EM_ESCOPE_API_MASK | 0x0504)
462 #define EM_ESCOPE_EVENT_GROUP_CURRENT (EM_ESCOPE_API_MASK | 0x0505)
463 #define EM_ESCOPE_EVENT_GROUP_IS_READY (EM_ESCOPE_API_MASK | 0x0506)
464 #define EM_ESCOPE_SEND_GROUP (EM_ESCOPE_API_MASK | 0x0507)
465 #define EM_ESCOPE_SEND_GROUP_MULTI (EM_ESCOPE_API_MASK | 0x0508)
466 #define EM_ESCOPE_EVENT_GROUP_PROCESSING_END (EM_ESCOPE_API_MASK | 0x0509)
467 #define EM_ESCOPE_EVENT_GROUP_ASSIGN (EM_ESCOPE_API_MASK | 0x050A)
468 #define EM_ESCOPE_EVENT_GROUP_ABORT (EM_ESCOPE_API_MASK | 0x050B)
469 #define EM_ESCOPE_EVENT_GROUP_GET_NOTIF (EM_ESCOPE_API_MASK | 0x050C)
470 #define EM_ESCOPE_EVENT_GROUP_GET_FIRST (EM_ESCOPE_API_MASK | 0x050D)
471 #define EM_ESCOPE_EVENT_GROUP_GET_NEXT (EM_ESCOPE_API_MASK | 0x050E)
474 #define EM_ESCOPE_ALLOC (EM_ESCOPE_API_MASK | 0x0601)
475 #define EM_ESCOPE_ALLOC_MULTI (EM_ESCOPE_API_MASK | 0x0602)
476 #define EM_ESCOPE_FREE (EM_ESCOPE_API_MASK | 0x0603)
477 #define EM_ESCOPE_FREE_MULTI (EM_ESCOPE_API_MASK | 0x0604)
478 #define EM_ESCOPE_SEND (EM_ESCOPE_API_MASK | 0x0605)
479 #define EM_ESCOPE_SEND_MULTI (EM_ESCOPE_API_MASK | 0x0606)
480 #define EM_ESCOPE_EVENT_POINTER (EM_ESCOPE_API_MASK | 0x0607)
481 #define EM_ESCOPE_EVENT_POINTER_AND_SIZE (EM_ESCOPE_API_MASK | 0x0608)
482 #define EM_ESCOPE_EVENT_GET_SIZE (EM_ESCOPE_API_MASK | 0x0609)
483 #define EM_ESCOPE_EVENT_GET_POOL (EM_ESCOPE_API_MASK | 0x060A)
484 #define EM_ESCOPE_EVENT_GET_POOL_SUBPOOL (EM_ESCOPE_API_MASK | 0x060B)
485 #define EM_ESCOPE_EVENT_SET_TYPE (EM_ESCOPE_API_MASK | 0x060C)
486 #define EM_ESCOPE_EVENT_GET_TYPE (EM_ESCOPE_API_MASK | 0x060D)
487 #define EM_ESCOPE_EVENT_GET_TYPE_MULTI (EM_ESCOPE_API_MASK | 0x060E)
488 #define EM_ESCOPE_EVENT_SAME_TYPE_MULTI (EM_ESCOPE_API_MASK | 0x060F)
489 #define EM_ESCOPE_EVENT_MARK_SEND (EM_ESCOPE_API_MASK | 0x0610)
490 #define EM_ESCOPE_EVENT_UNMARK_SEND (EM_ESCOPE_API_MASK | 0x0611)
491 #define EM_ESCOPE_EVENT_MARK_FREE (EM_ESCOPE_API_MASK | 0x0612)
492 #define EM_ESCOPE_EVENT_UNMARK_FREE (EM_ESCOPE_API_MASK | 0x0613)
493 #define EM_ESCOPE_EVENT_MARK_FREE_MULTI (EM_ESCOPE_API_MASK | 0x0614)
494 #define EM_ESCOPE_EVENT_UNMARK_FREE_MULTI (EM_ESCOPE_API_MASK | 0x0615)
495 #define EM_ESCOPE_EVENT_CLONE (EM_ESCOPE_API_MASK | 0x0616)
496 #define EM_ESCOPE_EVENT_CLONE_PART (EM_ESCOPE_API_MASK | 0x0617)
497 #define EM_ESCOPE_EVENT_UAREA_GET (EM_ESCOPE_API_MASK | 0x0618)
498 #define EM_ESCOPE_EVENT_UAREA_ID_GET (EM_ESCOPE_API_MASK | 0x0619)
499 #define EM_ESCOPE_EVENT_UAREA_ID_SET (EM_ESCOPE_API_MASK | 0x061A)
500 #define EM_ESCOPE_EVENT_UAREA_INFO (EM_ESCOPE_API_MASK | 0x061B)
501 #define EM_ESCOPE_EVENT_REF (EM_ESCOPE_API_MASK | 0x061C)
502 #define EM_ESCOPE_EVENT_HAS_REF (EM_ESCOPE_API_MASK | 0x061D)
503 #define EM_ESCOPE_EVENT_VECTOR_FREE (EM_ESCOPE_API_MASK | 0x061E)
504 #define EM_ESCOPE_EVENT_VECTOR_TBL (EM_ESCOPE_API_MASK | 0x061F)
505 #define EM_ESCOPE_EVENT_VECTOR_SIZE (EM_ESCOPE_API_MASK | 0x0620)
506 #define EM_ESCOPE_EVENT_VECTOR_SIZE_SET (EM_ESCOPE_API_MASK | 0x0621)
507 #define EM_ESCOPE_EVENT_VECTOR_MAX_SIZE (EM_ESCOPE_API_MASK | 0x0622)
508 #define EM_ESCOPE_EVENT_VECTOR_INFO (EM_ESCOPE_API_MASK | 0x0623)
511 #define EM_ESCOPE_PACKET_POINTER (EM_ESCOPE_API_MASK | 0x0701)
512 #define EM_ESCOPE_PACKET_SIZE (EM_ESCOPE_API_MASK | 0x0702)
513 #define EM_ESCOPE_PACKET_POINTER_AND_SIZE (EM_ESCOPE_API_MASK | 0x0703)
514 #define EM_ESCOPE_PACKET_RESIZE (EM_ESCOPE_API_MASK | 0x0704)
515 #define EM_ESCOPE_PACKET_HEADROOM (EM_ESCOPE_API_MASK | 0x0705)
516 #define EM_ESCOPE_PACKET_TAILROOM (EM_ESCOPE_API_MASK | 0x0706)
517 #define EM_ESCOPE_PACKET_PUSH_HEAD (EM_ESCOPE_API_MASK | 0x0707)
518 #define EM_ESCOPE_PACKET_PULL_HEAD (EM_ESCOPE_API_MASK | 0x0708)
519 #define EM_ESCOPE_PACKET_PUSH_TAIL (EM_ESCOPE_API_MASK | 0x0709)
520 #define EM_ESCOPE_PACKET_PULL_TAIL (EM_ESCOPE_API_MASK | 0x070A)
521 #define EM_ESCOPE_PACKET_RESET (EM_ESCOPE_API_MASK | 0x070B)
524 #define EM_ESCOPE_QUEUE_GROUP_CREATE (EM_ESCOPE_API_MASK | 0x0801)
525 #define EM_ESCOPE_QUEUE_GROUP_CREATE_SYNC (EM_ESCOPE_API_MASK | 0x0802)
526 #define EM_ESCOPE_QUEUE_GROUP_DELETE (EM_ESCOPE_API_MASK | 0x0803)
527 #define EM_ESCOPE_QUEUE_GROUP_DELETE_SYNC (EM_ESCOPE_API_MASK | 0x0804)
528 #define EM_ESCOPE_QUEUE_GROUP_MODIFY (EM_ESCOPE_API_MASK | 0x0805)
529 #define EM_ESCOPE_QUEUE_GROUP_MODIFY_SYNC (EM_ESCOPE_API_MASK | 0x0806)
530 #define EM_ESCOPE_QUEUE_GROUP_FIND (EM_ESCOPE_API_MASK | 0x0807)
531 #define EM_ESCOPE_QUEUE_GROUP_MASK (EM_ESCOPE_API_MASK | 0x0808)
532 #define EM_ESCOPE_QUEUE_GROUP_GET_NAME (EM_ESCOPE_API_MASK | 0x0809)
533 #define EM_ESCOPE_QUEUE_GROUP_GET_FIRST (EM_ESCOPE_API_MASK | 0x080A)
534 #define EM_ESCOPE_QUEUE_GROUP_GET_NEXT (EM_ESCOPE_API_MASK | 0x080B)
535 #define EM_ESCOPE_QUEUE_GROUP_QUEUE_GET_FIRST (EM_ESCOPE_API_MASK | 0x080C)
536 #define EM_ESCOPE_QUEUE_GROUP_QUEUE_GET_NEXT (EM_ESCOPE_API_MASK | 0x080D)
539 #define EM_ESCOPE_QUEUE_CREATE (EM_ESCOPE_API_MASK | 0x0901)
540 #define EM_ESCOPE_QUEUE_CREATE_STATIC (EM_ESCOPE_API_MASK | 0x0902)
541 #define EM_ESCOPE_QUEUE_DELETE (EM_ESCOPE_API_MASK | 0x0903)
542 #define EM_ESCOPE_QUEUE_SET_CONTEXT (EM_ESCOPE_API_MASK | 0x0904)
543 #define EM_ESCOPE_QUEUE_GET_CONTEXT (EM_ESCOPE_API_MASK | 0x0905)
544 #define EM_ESCOPE_QUEUE_GET_NAME (EM_ESCOPE_API_MASK | 0x0906)
545 #define EM_ESCOPE_QUEUE_GET_PRIORITY (EM_ESCOPE_API_MASK | 0x0907)
546 #define EM_ESCOPE_QUEUE_GET_TYPE (EM_ESCOPE_API_MASK | 0x0908)
547 #define EM_ESCOPE_QUEUE_GET_GROUP (EM_ESCOPE_API_MASK | 0x0909)
548 #define EM_ESCOPE_QUEUE_FIND (EM_ESCOPE_API_MASK | 0x090A)
549 #define EM_ESCOPE_QUEUE_DEQUEUE (EM_ESCOPE_API_MASK | 0x090B)
550 #define EM_ESCOPE_QUEUE_DEQUEUE_MULTI (EM_ESCOPE_API_MASK | 0x090C)
551 #define EM_ESCOPE_QUEUE_CURRENT (EM_ESCOPE_API_MASK | 0x090D)
552 #define EM_ESCOPE_QUEUE_GET_FIRST (EM_ESCOPE_API_MASK | 0x090E)
553 #define EM_ESCOPE_QUEUE_GET_NEXT (EM_ESCOPE_API_MASK | 0x090F)
554 #define EM_ESCOPE_QUEUE_GET_INDEX (EM_ESCOPE_API_MASK | 0x0910)
555 #define EM_ESCOPE_QUEUE_GET_NUM_PRIO (EM_ESCOPE_API_MASK | 0x0911)
558 #define EM_ESCOPE_ATOMIC_PROCESSING_END (EM_ESCOPE_API_MASK | 0x0A01)
559 #define EM_ESCOPE_ORDERED_PROCESSING_END (EM_ESCOPE_API_MASK | 0x0A02)
560 #define EM_ESCOPE_PRESCHEDULE (EM_ESCOPE_API_MASK | 0x0A03)
561 #define EM_ESCOPE_SCHED_CONTEXT_TYPE_CURRENT (EM_ESCOPE_API_MASK | 0x0A04)
564 #define EM_ESCOPE_TIMER_CREATE (EM_ESCOPE_API_MASK | 0x0B00)
565 #define EM_ESCOPE_TIMER_DELETE (EM_ESCOPE_API_MASK | 0x0B01)
566 #define EM_ESCOPE_TIMER_CUR_TICK (EM_ESCOPE_API_MASK | 0x0B02)
567 #define EM_ESCOPE_TIMER_GET_ALL (EM_ESCOPE_API_MASK | 0x0B03)
568 #define EM_ESCOPE_TIMER_GET_ATTR (EM_ESCOPE_API_MASK | 0x0B04)
569 #define EM_ESCOPE_TIMER_GET_FREQ (EM_ESCOPE_API_MASK | 0x0B05)
570 #define EM_ESCOPE_TMO_CREATE (EM_ESCOPE_API_MASK | 0x0B06)
571 #define EM_ESCOPE_TMO_DELETE (EM_ESCOPE_API_MASK | 0x0B07)
572 #define EM_ESCOPE_TMO_SET_ABS (EM_ESCOPE_API_MASK | 0x0B08)
573 #define EM_ESCOPE_TMO_SET_REL (EM_ESCOPE_API_MASK | 0x0B09)
574 #define EM_ESCOPE_TMO_CANCEL (EM_ESCOPE_API_MASK | 0x0B0A)
575 #define EM_ESCOPE_TMO_ACK (EM_ESCOPE_API_MASK | 0x0B0B)
576 #define EM_ESCOPE_TMO_GET_STATE (EM_ESCOPE_API_MASK | 0x0B0C)
577 #define EM_ESCOPE_TMO_SET_PERIODIC (EM_ESCOPE_API_MASK | 0x0B0D)
578 #define EM_ESCOPE_TMO_GET_STATS (EM_ESCOPE_API_MASK | 0x0B0E)
579 #define EM_ESCOPE_TIMER_ATTR_INIT (EM_ESCOPE_API_MASK | 0x0B0F)
580 #define EM_ESCOPE_TIMER_CAPABILITY (EM_ESCOPE_API_MASK | 0x0B10)
581 #define EM_ESCOPE_TIMER_RES_CAPABILITY (EM_ESCOPE_API_MASK | 0x0B11)
582 #define EM_ESCOPE_TIMER_NS_TO_TICK (EM_ESCOPE_API_MASK | 0x0B12)
583 #define EM_ESCOPE_TIMER_TICK_TO_NS (EM_ESCOPE_API_MASK | 0x0B13)
584 #define EM_ESCOPE_TMO_GET_TYPE (EM_ESCOPE_API_MASK | 0x0B14)
585 #define EM_ESCOPE_TIMER_RING_CREATE (EM_ESCOPE_API_MASK | 0x0B15)
586 #define EM_ESCOPE_TMO_SET_PERIODIC_RING (EM_ESCOPE_API_MASK | 0x0B16)
587 #define EM_ESCOPE_TMO_GET_USERPTR (EM_ESCOPE_API_MASK | 0x0B17)
588 #define EM_ESCOPE_TMO_CREATE_ARG (EM_ESCOPE_API_MASK | 0x0B18)
589 #define EM_ESCOPE_TMO_GET_TIMER (EM_ESCOPE_API_MASK | 0x0B19)
592 #define EM_ESCOPE_ADD_ON_API_BASE (EM_ESCOPE_API_MASK | 0x1000)
598 #pragma GCC visibility pop
@ EM_SCHED_CONTEXT_TYPE_ORDERED
@ EM_SCHED_CONTEXT_TYPE_NONE
@ EM_SCHED_CONTEXT_TYPE_ATOMIC