tp/include/os/OS.h

59 lines
1.6 KiB
C

#ifndef __OS_H_
#define __OS_H_
struct OSThread {
u8 unkn[0x318];
};
struct OSMessageQueue {
u8 unkn[0x20];
};
struct OSMutex {
u8 unkn[24];
};
typedef void* OSMessage;
extern "C" {
void OSInitMutex(OSMutex*);
void OSLockMutex(OSMutex*);
void OSUnlockMutex(OSMutex*);
void OSEnableScheduler(void);
void OSDisableScheduler(void);
void OSCheckActiveThreads(void);
void OSReport_Error(char*,...);
u32 OSGetSoundMode(void);
void OSSuspendThread(void);
void OSSetThreadPriority(void);
void OSResumeThread(void);
void OSGetThreadPriority(void);
void OSGetConsoleType(void);
void OSGetResetCode(void);
void OSAllocFromArenaLo(void);
void OSReportInit(void);
OSThread* OSGetCurrentThread(void);
void OSTicksToCalendarTime(void);
u32 OSGetArenaLo();
u32 OSGetArenaHi();
u32 OSInitAlloc(u32 low, u32 high, int param_3);
void OSSetArenaLo(u32 param_1);
void OSSetArenaHi(u32 param_1);
void OSGetTick(void);
void OSCreateThread(OSThread* thread, void* (*func)(void*), void* param,
void* stack, u32 stackSize, int param_6, int param_7);
void OSCancelThread(OSThread* thread);
void OSDetachThread(OSThread* thread);
bool OSIsThreadSuspended(OSThread* thread);
bool OSIsThreadTerminated(OSThread* thread);
void OSInitMessageQueue(OSMessageQueue *queue, OSMessage* messages, int message_count);
void OSSetSwitchThreadCallback(void);
void OSReceiveMessage(OSMessageQueue *queue, OSMessage message, int flags);
void OSSendMessage(OSMessageQueue *queue, OSMessage message, int flags);
}
#endif