54#define ST_MUTEX_BF(attr, opt) ST_BITFIELD(ST_MUTEX_##attr##_MASK, (opt))
57#define ST_MUTEX_POLICY_MASK ST_BITMASK(2, 0)
58#define ST_MUTEX_TYPE_MASK ST_BITMASK(6, 3)
59#define ST_MUTEX_UNUSED_MASK ST_BITMASK(31, 7)
61#define ST_MUTEX_POLICY_NONE ST_MUTEX_BF(POLICY, 0)
62#define ST_MUTEX_POLICY_PRIO_INHERIT ST_MUTEX_BF(POLICY, 1)
63#define ST_MUTEX_POLICY_DELIM ST_MUTEX_BF(POLICY, 8)
65#define ST_MUTEX_TYPE_NONE ST_MUTEX_BF(TYPE, 0)
66#define ST_MUTEX_TYPE_RECURSIVE ST_MUTEX_BF(TYPE, 1)
67#define ST_MUTEX_TYPE_DELIM ST_MUTEX_BF(TYPE, 16)
StMutex * st_mutex_create(StBits args)
Create a mutex.
bool st_mutex_trylock(StMutex *mutex)
Lock the mutex if it is not locked.
void st_mutex_destroy(StMutex *mutex)
Destroy a mutex.
void st_mutex_lock(StMutex *mutex)
Block the calling thread until the mutex is unlocked.
struct StMutex StMutex
Mutex.
Definition mutex.h:75
void st_mutex_unlock(StMutex *mutex)
Unlock a mutex.
int StBits
The data type for bitwise operations.
Definition bits.h:114