Synopsis
#include <ctl_api.h>
unsigned ctl_events_wait(CTL_EVENT_WAIT_TYPE_t waitType,
CTL_EVENT_SET_t *eventSet,
CTL_EVENT_SET_t events,
CTL_TIMEOUT_t timeoutType,
CTL_TIME_t timeout);
Description
The ctl_events_wait function waits for events to be set (value 1) in the event set pointed to by eventSet with an optional timeout applied if timeoutType is non-zero.
The waitType can be one of the following:
- CTL_EVENT_WAIT_ANY_EVENTS — wait for any of the events in *eventSet to be set.
- CTL_EVENT_WAIT_ANY_EVENTS_WITH_AUTO_CLEAR — wait for any of the events in *eventSet to be set and reset (value 0) them.
- CTL_EVENT_WAIT_ALL_EVENTS — wait for all of the events in *eventSet to be set.
- CTL_EVENT_WAIT_ALL_EVENTS_WITH_AUTO_CLEAR — wait for all of the events in *eventSet to be set and reset (value 0) them.
The ctl_events_wait function returns the value pointed to by eventSet before any auto-clearing occurred or zero if the timeout occured.
Restrictions
This function should not be called from an interrupt service routine.
Portability
ctl_events_wait is provided in every implementation of the CrossWorks tasking library.