mirror of https://github.com/zeldaret/tp.git
39 lines
821 B
C
39 lines
821 B
C
#ifndef OSMUTEX_H
|
|
#define OSMUTEX_H
|
|
|
|
#include "dolphin/os/OSThread.h"
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
typedef struct OSMutex {
|
|
/* 0x00 */ OSThreadQueue queue;
|
|
/* 0x08 */ OSThread* thread;
|
|
/* 0x0C */ s32 count;
|
|
/* 0x10 */ OSMutexLink link;
|
|
} OSMutex; // Size: 0x18
|
|
|
|
typedef struct OSCond {
|
|
OSThreadQueue queue;
|
|
} OSCond;
|
|
|
|
void OSInitMutex(OSMutex* mutex);
|
|
void OSLockMutex(OSMutex* mutex);
|
|
void OSUnlockMutex(OSMutex* mutex);
|
|
s32 OSTryLockMutex(OSMutex* mutex);
|
|
void OSInitCond(OSCond* cond);
|
|
void OSWaitCond(OSCond* cond, OSMutex* mutex);
|
|
void OSSignalCond(OSCond* cond);
|
|
|
|
void __OSUnlockAllMutex(OSThread* thread);
|
|
s32 __OSCheckMutex(OSThread* thread);
|
|
BOOL __OSCheckDeadLock(OSThread* thread);
|
|
BOOL __OSCheckMutexes(OSThread* thread);
|
|
|
|
#ifdef __cplusplus
|
|
};
|
|
#endif
|
|
|
|
#endif /* OSMUTEX_H */
|