#define assert(expression)
uint64_t wait_unblock(wait_queue_t *waitQueue, uint64_t amount, errno_t err)
Unblock threads waiting on a wait queue.
void wait_queue_init(wait_queue_t *waitQueue)
Initialize wait queue.
#define WAIT_ALL
Wait for all.
#define WAIT_BLOCK_LOCK(waitQueue, lock, condition)
Block with a spinlock.
void wait_queue_deinit(wait_queue_t *waitQueue)
Deinitialize wait queue.
static void lock_init(lock_t *lock)
Initializes a lock.
#define LOCK_SCOPE(lock)
Acquires a lock for the reminder of the current scope.
void rwmutex_write_acquire(rwmutex_t *mtx)
Acquires a rwmutex for writing, blocking until it is available.
void rwmutex_init(rwmutex_t *mtx)
Initializes a rwmutex.
uint64_t rwmutex_write_try_acquire(rwmutex_t *mtx)
Tries to acquire a rwmutex for writing.
void rwmutex_read_acquire(rwmutex_t *mtx)
Acquires a rwmutex for reading, blocking until it is available.
uint64_t rwmutex_read_try_acquire(rwmutex_t *mtx)
Tries to acquire a rwmutex for reading.
void rwmutex_read_release(rwmutex_t *mtx)
Releases a rwmutex from reading.
void rwmutex_deinit(rwmutex_t *mtx)
Deinitializes a rwmutex.
void rwmutex_write_release(rwmutex_t *mtx)
Releases a rwmutex from writing.
#define EINVAL
Invalid argument.
#define EWOULDBLOCK
Operation would block.
#define errno
Error number variable.
#define NULL
Pointer error value.
#define ERR
Integer error value.
Read-Write Mutex structure.