summaryrefslogtreecommitdiff
path: root/include/dolphin/os/OSMutex.h
diff options
context:
space:
mode:
authormrb0nk500 <b0nk@b0nk.xyz>2023-02-01 18:45:02 -0400
committermrb0nk500 <b0nk@b0nk.xyz>2023-02-01 18:50:25 -0400
commit9fa0a7f1da1b70bee995f53c6c96c43189018772 (patch)
tree114548896790eaff23cdca84a025281de86bbb51 /include/dolphin/os/OSMutex.h
parent2ba3289286bbfcf9fcc13fd135d976058d8b6c2e (diff)
global: Import Dolphin SDK
This version comes from the Metroid Prime decompilation project. https://github.com/PrimeDecomp/prime
Diffstat (limited to 'include/dolphin/os/OSMutex.h')
-rw-r--r--include/dolphin/os/OSMutex.h35
1 files changed, 35 insertions, 0 deletions
diff --git a/include/dolphin/os/OSMutex.h b/include/dolphin/os/OSMutex.h
new file mode 100644
index 0000000..9ee6ffe
--- /dev/null
+++ b/include/dolphin/os/OSMutex.h
@@ -0,0 +1,35 @@
+#ifndef _DOLPHIN_OSMUTEX
+#define _DOLPHIN_OSMUTEX
+
+#include "types.h"
+
+#include "dolphin/os/OSThread.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+struct OSMutex {
+ OSThreadQueue queue;
+ OSThread* thread; // the current owner
+ s32 count; // lock count
+ OSMutexLink link; // for OSThread.queueMutex
+};
+
+struct OSCond {
+ OSThreadQueue queue;
+};
+
+void OSInitMutex(OSMutex* mutex);
+void OSLockMutex(OSMutex* mutex);
+void OSUnlockMutex(OSMutex* mutex);
+BOOL OSTryLockMutex(OSMutex* mutex);
+void OSInitCond(OSCond* cond);
+void OSWaitCond(OSCond* cond, OSMutex* mutex);
+void OSSignalCond(OSCond* cond);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // _DOLPHIN_OSMUTEX