25 #include "lwpa_common.h"
26 #include "lwpa_bool.h"
36 #define lwpa_mutex_give(idptr) ((void)_lwsem_post((LWSEM_STRUCT_PTR)(idptr)))
37 #define lwpa_mutex_destroy(idptr) ((void)_lwsem_destroy((LWSEM_STRUCT_PTR)(idptr)))
43 #define lwpa_signal_post(idptr) ((void)_lwevent_set((LWEVENT_STRUCT_PTR)(idptr), 1u))
44 #define lwpa_signal_destroy(idptr) ((void)_lwevent_destroy((LWEVENT_STRUCT_PTR)(idptr)))
49 unsigned int reader_count;
57 #define lwpa_rwlock_destroy(idptr) ((void)_lwsem_destroy(&((idptr)->sem)))
bool lwpa_mutex_create(lwpa_mutex_t *id)
Create a new mutex.
Definition: lwpa_lock.c:26
bool lwpa_mutex_take(lwpa_mutex_t *id, int wait_ms)
Acquire a mutex.
Definition: lwpa_lock.c:31
UNDEFINED lwpa_mutex_t
The mutex identifier.
Definition: lwpa_lock.dox:38
bool lwpa_rwlock_writelock(lwpa_rwlock_t *id, int wait_ms)
Access a read-write lock for writing.
Definition: lwpa_lock.c:127
void lwpa_rwlock_writeunlock(lwpa_rwlock_t *id)
Release a write lock on a read-write lock object.
Definition: lwpa_lock.c:165
UNDEFINED lwpa_rwlock_t
The read-write lock identifier.
Definition: lwpa_lock.dox:147
bool lwpa_rwlock_create(lwpa_rwlock_t *id)
Create a new read-write lock.
Definition: lwpa_lock.c:95
void lwpa_rwlock_readunlock(lwpa_rwlock_t *id)
Release a read lock on a read-write lock object.
Definition: lwpa_lock.c:121
bool lwpa_rwlock_readlock(lwpa_rwlock_t *id, int wait_ms)
Access a read-write lock for reading.
Definition: lwpa_lock.c:105
bool lwpa_signal_wait(lwpa_signal_t *id, int wait_ms)
Wait for a signal.
Definition: lwpa_lock.c:61
bool lwpa_signal_create(lwpa_signal_t *id)
Create a new signal.
Definition: lwpa_lock.c:56
UNDEFINED lwpa_signal_t
The signal identifier.
Definition: lwpa_lock.dox:83
Definition: lwpa_lock.h:35
Definition: lwpa_lock.h:47