PatchworkOS
Loading...
Searching...
No Matches
rwmutex.c File Reference
#include <kernel/sync/rwmutex.h>
#include <kernel/log/panic.h>
#include <kernel/sched/wait.h>
#include <kernel/sync/lock.h>
#include <assert.h>
#include <errno.h>

Go to the source code of this file.

Functions

void rwmutex_init (rwmutex_t *mtx)
 Initializes a rwmutex.
 
void rwmutex_deinit (rwmutex_t *mtx)
 Deinitializes a rwmutex.
 
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_write_acquire (rwmutex_t *mtx)
 Acquires a rwmutex for writing, blocking until it is available.
 
uint64_t rwmutex_write_try_acquire (rwmutex_t *mtx)
 Tries to acquire a rwmutex for writing.
 
void rwmutex_write_release (rwmutex_t *mtx)
 Releases a rwmutex from writing.