25 #include <nucleus/synch.h>
29 #define EV_PRIO XNSYNCH_PRIO
30 #define EV_FIFO XNSYNCH_FIFO
36 typedef struct rt_event_info {
42 char name[XNOBJECT_NAME_LEN];
46 typedef struct rt_event_placeholder {
48 } RT_EVENT_PLACEHOLDER;
50 #if (defined(__KERNEL__) || defined(__XENO_SIM__)) && !defined(DOXYGEN_CPP)
54 #define XENO_EVENT_MAGIC 0x55550404
56 typedef struct rt_event {
66 char name[XNOBJECT_NAME_LEN];
68 #ifdef CONFIG_XENO_OPT_PERVASIVE
74 #define rlink2event(ln) container_of(ln, RT_EVENT, rlink)
84 #ifdef CONFIG_XENO_OPT_NATIVE_EVENT
86 int __native_event_pkg_init(
void);
88 void __native_event_pkg_cleanup(
void);
90 static inline void __native_event_flush_rq(xnqueue_t *rq)
92 xeno_flush_rq(RT_EVENT, rq, event);
95 int rt_event_wait_inner(RT_EVENT *event,
97 unsigned long *mask_r,
98 int mode, xntmode_t timeout_mode, RTIME timeout);
102 #define __native_event_pkg_init() ({ 0; })
103 #define __native_event_pkg_cleanup() do { } while(0)
104 #define __native_event_flush_rq(rq) do { } while(0)
114 typedef RT_EVENT_PLACEHOLDER RT_EVENT;
127 event->opaque = XN_NO_HANDLE;
145 unsigned long ivalue,
155 unsigned long *mask_r,
161 unsigned long *mask_r,
167 unsigned long *mask_r);
170 RT_EVENT_INFO *info);