Files | |
file | event.c |
This file is part of the Xenomai project. | |
Functions | |
int | rt_event_create (RT_EVENT *event, const char *name, unsigned long ivalue, int mode) |
Create an event group. | |
int | rt_event_delete (RT_EVENT *event) |
Delete an event group. | |
int | rt_event_signal (RT_EVENT *event, unsigned long mask) |
Post an event group. | |
int | rt_event_wait (RT_EVENT *event, unsigned long mask, unsigned long *mask_r, int mode, RTIME timeout) |
Pend on an event group. | |
int | rt_event_clear (RT_EVENT *event, unsigned long mask, unsigned long *mask_r) |
Clear an event group. | |
int | rt_event_inquire (RT_EVENT *event, RT_EVENT_INFO *info) |
Inquire about an event group. | |
int | rt_event_bind (RT_EVENT *event, const char *name, RTIME timeout) |
Bind to an event flag group. | |
static int | rt_event_unbind (RT_EVENT *event) |
Unbind from an event flag group. |
|
Bind to an event flag group. This user-space only service retrieves the uniform descriptor of a given Xenomai event flag group identified by its symbolic name. If the event flag group does not exist on entry, this service blocks the caller until a event flag group of the given name is created.
Environments: This service can be called from:
Rescheduling: always unless the request is immediately satisfied or timeout specifies a non-blocking operation.
|
|
Clear an event group. Clears a set of flags from an event mask.
Environments: This service can be called from:
Rescheduling: never. |
|
Create an event group. Event groups provide for task synchronization by allowing a set of flags (or "events") to be waited for and posted atomically. An event group contains a mask of received events; any set of bits from the event mask can be pended or posted in a single operation. Tasks can wait for a conjunctive (AND) or disjunctive (OR) set of events to occur. A task pending on an event group in conjunctive mode is woken up as soon as all awaited events are set in the event mask. A task pending on an event group in disjunctive mode is woken up as soon as any awaited event is set in the event mask.
Environments: This service can be called from:
Rescheduling: possible. |
|
Delete an event group. Destroy an event group and release all the tasks currently pending on it. An event group exists in the system since rt_event_create() has been called to create it, so this service must be called in order to destroy it afterwards.
Environments: This service can be called from:
Rescheduling: possible. |
|
Inquire about an event group. Return various information about the status of a specified event group.
Environments: This service can be called from:
Rescheduling: never. |
|
Post an event group. Post a set of bits to the event mask. All tasks having their wait request fulfilled by the posted events are resumed.
Environments: This service can be called from:
Rescheduling: possible. |
|
Unbind from an event flag group. This user-space only service unbinds the calling task from the event flag group object previously retrieved by a call to rt_event_bind().
Rescheduling: never. |
|
Pend on an event group. Waits for one or more events on the specified event group, either in conjunctive or disjunctive mode. If the specified set of bits is not set, the calling task is blocked. The task is not resumed until the request is fulfilled. The event bits are NOT cleared from the event group when a request is satisfied; rt_event_wait() will return immediately with success for the same event mask until rt_event_clear() is called to clear those bits.
Environments: This service can be called from:
Rescheduling: always unless the request is immediately satisfied or timeout specifies a non-blocking operation.
|