39 if (mtx->
owner == self)
#define assert(expression)
#define WAIT_BLOCK_LOCK_TIMEOUT(waitQueue, lock, condition, timeout)
Block with a spinlock and timeout.
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_BLOCK_LOCK(waitQueue, lock, condition)
Block with a spinlock.
void wait_queue_deinit(wait_queue_t *waitQueue)
Deinitialize wait queue.
thread_t * sched_thread(void)
Retrieves the currently running thread.
thread_t * sched_thread_unsafe(void)
Retrieves the currently running thread without disabling interrupts.
static void lock_init(lock_t *lock)
Initializes a lock.
#define LOCK_SCOPE(lock)
Acquires a lock for the reminder of the current scope.
static void lock_release(lock_t *lock)
Releases a lock.
static void lock_acquire(lock_t *lock)
Acquires a lock, blocking until it is available.
bool mutex_acquire_timeout(mutex_t *mtx, clock_t timeout)
Acquires a mutex, blocking until it is available or the timeout is reached.
void mutex_release(mutex_t *mtx)
Releases a mutex.
void mutex_acquire(mutex_t *mtx)
Acquires a mutex, blocking until it is available.
void mutex_deinit(mutex_t *mtx)
Deinitializes a mutex.
void mutex_init(mutex_t *mtx)
Initializes a mutex.
clock_t timer_uptime(void)
Time since boot.
#define CONFIG_MUTEX_MAX_SLOW_SPIN
Maximum mutex slow spin configuration.
#define NULL
Pointer error value.
#define ERR
Integer error value.
__UINT64_TYPE__ clock_t
A nanosecond time.
Thread of execution structure.