Add initializers

This commit is contained in:
2026-10-23 00:35:11 +02:00
parent b83f1fe6d9
commit 92787ddd75
4 changed files with 12 additions and 0 deletions
+4
View File
@@ -32,6 +32,10 @@ static inline bool owner_is_running(uintptr_t owner) {
return atomic_load(&((struct task*)owner)->on_cpu, ATOMIC_RELAXED);
}
void mutex_init(mutex_t* mutex) {
atomic_store(mutex, 0, ATOMIC_RELAXED);
}
bool mutex_trylock(mutex_t* mutex) {
uintptr_t self = self_token();
uintptr_t word = atomic_load(mutex, ATOMIC_RELAXED);
+4
View File
@@ -41,6 +41,10 @@ static inline uint8_t priority_of(struct task* task) {
return atomic_load(&task->priority, ATOMIC_RELAXED);
}
void rwlock_init(struct rwlock* rw) {
atomic_store(&rw->word, 0, ATOMIC_RELAXED);
}
bool rwlock_try_read_lock(struct rwlock* rw) {
uintptr_t word = atomic_load(&rw->word, ATOMIC_RELAXED);
while (!(word & (RW_WRITE_LOCK | RW_WRITE_WANT))) {