Xenomai
3.1
|
Functions | |
void | rtdm_mutex_init (rtdm_mutex_t *mutex) |
Initialise a mutex More... | |
void | rtdm_mutex_destroy (rtdm_mutex_t *mutex) |
Destroy a mutex More... | |
void | rtdm_mutex_unlock (rtdm_mutex_t *mutex) |
Release a mutex More... | |
int | rtdm_mutex_lock (rtdm_mutex_t *mutex) |
Request a mutex More... | |
int | rtdm_mutex_timedlock (rtdm_mutex_t *mutex, nanosecs_rel_t timeout, rtdm_toseq_t *timeout_seq) |
Request a mutex with timeout More... | |
void rtdm_mutex_destroy | ( | rtdm_mutex_t * | mutex | ) |
Destroy a mutex
[in,out] | mutex | Mutex handle as returned by rtdm_mutex_init() |
void rtdm_mutex_init | ( | rtdm_mutex_t * | mutex | ) |
Initialise a mutex
This function initalises a basic mutex with priority inversion protection. "Basic", as it does not allow a mutex owner to recursively lock the same mutex again.
[in,out] | mutex | Mutex handle |
int rtdm_mutex_lock | ( | rtdm_mutex_t * | mutex | ) |
Request a mutex
This is the light-weight version of rtdm_mutex_timedlock(), implying an infinite timeout.
[in,out] | mutex | Mutex handle as returned by rtdm_mutex_init() |
int rtdm_mutex_timedlock | ( | rtdm_mutex_t * | mutex, |
nanosecs_rel_t | timeout, | ||
rtdm_toseq_t * | timeout_seq | ||
) |
Request a mutex with timeout
This function tries to acquire the given mutex. If it is not available, the caller is blocked unless non-blocking operation was selected.
[in,out] | mutex | Mutex handle as returned by rtdm_mutex_init() |
[in] | timeout | Relative timeout in nanoseconds, see RTDM_TIMEOUT_xxx for special values |
[in,out] | timeout_seq | Handle of a timeout sequence as returned by rtdm_toseq_init() or NULL |
void rtdm_mutex_unlock | ( | rtdm_mutex_t * | mutex | ) |
Release a mutex
This function releases the given mutex, waking up a potential waiter which was blocked upon rtdm_mutex_lock() or rtdm_mutex_timedlock().
[in,out] | mutex | Mutex handle as returned by rtdm_mutex_init() |