Mutex.
More...
#include "st/bits.h"
#include <stdbool.h>
Go to the source code of this file.
|
#define | ST_MUTEX_BF(attr, opt) ST_BITFIELD(ST_MUTEX_##attr##_MASK, (opt)) |
| Create a bitfield for the mutex attribute option.
|
|
#define | ST_MUTEX_POLICY_MASK ST_BITMASK(2, 0) |
| mutex policy setting bits.
|
|
#define | ST_MUTEX_TYPE_MASK ST_BITMASK(6, 3) |
| mutex type setting bits.
|
|
#define | ST_MUTEX_UNUSED_MASK ST_BITMASK(31, 7) |
| mutex settings unused bits.
|
|
#define | ST_MUTEX_POLICY_NONE ST_MUTEX_BF(POLICY, 0) |
| mutex policy none.
|
|
#define | ST_MUTEX_POLICY_PRIO_INHERIT ST_MUTEX_BF(POLICY, 1) |
| mutex policy priority inherit.
|
|
#define | ST_MUTEX_POLICY_DELIM ST_MUTEX_BF(POLICY, 8) |
| mutex policy deliminator.
|
|
#define | ST_MUTEX_TYPE_NONE ST_MUTEX_BF(TYPE, 0) |
| mutex type none.
|
|
#define | ST_MUTEX_TYPE_RECURSIVE ST_MUTEX_BF(TYPE, 1) |
| mutex type recursive.
|
|
#define | ST_MUTEX_TYPE_DELIM ST_MUTEX_BF(TYPE, 16) |
| mutex type deliminator.
|
|
|
typedef struct StMutex | StMutex |
| Mutex.
|
|
◆ ST_MUTEX_BF
#define ST_MUTEX_BF |
( |
|
attr, |
|
|
|
opt |
|
) |
| ST_BITFIELD(ST_MUTEX_##attr##_MASK, (opt)) |
Create a bitfield for the mutex attribute option.
- Parameters
-
[in] | attr | The attribute: POLICY or TYPE. |
[in] | opt | The unique integer identifier for the option. |
- Returns
- The bitfield.
◆ st_mutex_create()
Create a mutex.
- Parameters
-
[in] | args | The configuration arguments. |
Create a recursive mutex with a priority inherit policy.
StMutex * st_mutex_create(StBits args)
Create a mutex.
#define ST_MUTEX_TYPE_RECURSIVE
mutex type recursive.
Definition mutex.h:66
#define ST_MUTEX_POLICY_PRIO_INHERIT
mutex policy priority inherit.
Definition mutex.h:62
- Returns
- The new mutex.
◆ st_mutex_destroy()
void st_mutex_destroy |
( |
StMutex * |
mutex | ) |
|
Destroy a mutex.
- Parameters
-
◆ st_mutex_lock()
void st_mutex_lock |
( |
StMutex * |
mutex | ) |
|
Block the calling thread until the mutex is unlocked.
Lock the mutex.
- Parameters
-
◆ st_mutex_trylock()
bool st_mutex_trylock |
( |
StMutex * |
mutex | ) |
|
Lock the mutex if it is not locked.
Do not block the calling thread.
- Parameters
-
- Returns
- True, if the mutex has been successfully locked.
◆ st_mutex_unlock()
bool st_mutex_unlock |
( |
StMutex * |
mutex | ) |
|
Unlock a mutex.
- Parameters
-