34 #if (CH_CFG_USE_EVENTS == TRUE) || defined(__DOXYGEN__)    92 #define ALL_EVENTS      ((eventmask_t)-1)    97 #define EVENT_MASK(eid) ((eventmask_t)1 << (eventmask_t)(eid))   105 #define _EVENTSOURCE_DATA(name) {(event_listener_t *)(&name)}   114 #define EVENTSOURCE_DECL(name) event_source_t name = _EVENTSOURCE_DATA(name)   138 #if (CH_CFG_OPTIMIZE_SPEED == TRUE) || (CH_CFG_USE_EVENTS_TIMEOUT == FALSE)   143 #if CH_CFG_USE_EVENTS_TIMEOUT == TRUE   152 #if (CH_CFG_OPTIMIZE_SPEED == FALSE) && (CH_CFG_USE_EVENTS_TIMEOUT == TRUE)   153 #define chEvtWaitOne(mask) chEvtWaitOneTimeout(mask, TIME_INFINITE)   154 #define chEvtWaitAny(mask) chEvtWaitAnyTimeout(mask, TIME_INFINITE)   155 #define chEvtWaitAll(mask) chEvtWaitAllTimeout(mask, TIME_INFINITE)   284   return currp->epending;
 eventmask_t chEvtWaitOne(eventmask_t events)
Waits for exactly one of the specified events. 
 
void chEvtRegisterMaskWithFlags(event_source_t *esp, event_listener_t *elp, eventmask_t events, eventflags_t wflags)
Registers an Event Listener on an Event Source. 
 
eventmask_t chEvtAddEvents(eventmask_t events)
Adds (OR) a set of events to the current thread, this is much faster than using chEvtBroadcast() or c...
 
eventmask_t chEvtGetAndClearEventsI(eventmask_t events)
Clears the pending events specified in the events mask. 
 
eventflags_t wflags
Flags that this listener interested in. 
 
uint64_t sysinterval_t
Type of time interval. 
 
eventmask_t events
Events to be set in the listening thread. 
 
eventflags_t chEvtGetAndClearFlags(event_listener_t *elp)
Returns the flags associated to an event_listener_t. 
 
#define EVENT_MASK(eid)
Returns an event mask from an event identifier. 
 
#define currp
Current thread pointer access macro. 
 
static void chEvtBroadcast(event_source_t *esp)
Signals all the Event Listeners registered on the specified Event Source. 
 
void chEvtBroadcastFlags(event_source_t *esp, eventflags_t flags)
Signals all the Event Listeners registered on the specified Event Source. 
 
static void chEvtBroadcastI(event_source_t *esp)
Signals all the Event Listeners registered on the specified Event Source. 
 
void chEvtSignal(thread_t *tp, eventmask_t events)
Adds a set of event flags directly to the specified thread_t. 
 
thread_t * listener
Thread interested in the event source. 
 
void chEvtUnregister(event_source_t *esp, event_listener_t *elp)
Unregisters an Event Listener from its Event Source. 
 
void chEvtBroadcastFlagsI(event_source_t *esp, eventflags_t flags)
Signals all the Event Listeners registered on the specified Event Source. 
 
event_listener_t * next
First Event Listener registered on the Event Source. 
 
static eventmask_t chEvtAddEventsI(eventmask_t events)
Adds (OR) a set of events to the current thread, this is much faster than using chEvtBroadcast() or c...
 
void chEvtSignalI(thread_t *tp, eventmask_t events)
Adds a set of event flags directly to the specified thread_t. 
 
Event Listener structure. 
 
event_listener_t * next
Next Event Listener registered on the event source. 
 
eventmask_t chEvtWaitAny(eventmask_t events)
Waits for any of the specified events. 
 
eventmask_t chEvtWaitAllTimeout(eventmask_t events, sysinterval_t timeout)
Waits for all the specified events. 
 
void(* evhandler_t)(eventid_t id)
Event Handler callback function. 
 
eventmask_t chEvtWaitAnyTimeout(eventmask_t events, sysinterval_t timeout)
Waits for any of the specified events. 
 
struct event_source event_source_t
Event Source structure. 
 
static eventmask_t chEvtGetEventsX(void)
Returns the events mask. 
 
static void chEvtRegisterMask(event_source_t *esp, event_listener_t *elp, eventmask_t events)
Registers an Event Listener on an Event Source. 
 
eventmask_t chEvtGetAndClearEvents(eventmask_t events)
Clears the pending events specified in the events mask. 
 
eventmask_t chEvtWaitAll(eventmask_t events)
Waits for all the specified events. 
 
eventflags_t flags
Flags added to the listener by the event source. 
 
static void chEvtRegister(event_source_t *esp, event_listener_t *elp, eventid_t event)
Registers an Event Listener on an Event Source. 
 
eventflags_t chEvtGetAndClearFlagsI(event_listener_t *elp)
Returns the flags associated to an event_listener_t. 
 
void chEvtDispatch(const evhandler_t *handlers, eventmask_t events)
Invokes the event handlers associated to an event flags mask. 
 
eventmask_t chEvtWaitOneTimeout(eventmask_t events, sysinterval_t timeout)
Waits for exactly one of the specified events. 
 
Structure representing a thread. 
 
static bool chEvtIsListeningI(event_source_t *esp)
Verifies if there is at least one event_listener_t registered. 
 
static void chEvtObjectInit(event_source_t *esp)
Initializes an Event Source.