2023-08-26 11:35:18 +00:00
|
|
|
|
|
|
|
#pragma once
|
|
|
|
|
2023-08-27 02:51:35 +00:00
|
|
|
#include <stdatomic.h>
|
2023-08-26 11:35:18 +00:00
|
|
|
|
2023-08-27 02:51:35 +00:00
|
|
|
int cia_wait(u32 *addr, u32 compare_with, u64 time);
|
|
|
|
int cia_wake_one(u32 *addr, u32 *n_woken);
|
|
|
|
int cia_wake_all(u32 *addr, u32 *n_woken);
|
|
|
|
|
|
|
|
struct Cia_Mutex typedef Cia_Mutex;
|
|
|
|
struct Cia_Mutex {
|
2023-09-10 06:53:22 +00:00
|
|
|
_Atomic(u32) tag;
|
2023-08-27 02:51:35 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
void cia_mutex_init(Cia_Mutex *mutex);
|
|
|
|
void cia_mutex_lock(Cia_Mutex *mutex);
|
|
|
|
void cia_mutex_unlock(Cia_Mutex *mutex);
|
2023-09-05 20:55:45 +00:00
|
|
|
|