mirror of
https://github.com/zeldaret/tp
synced 2026-06-07 12:07:34 -04:00
@@ -14,12 +14,12 @@ class JKRDvdFile : public JKRFile {
|
||||
~JKRDvdFile();
|
||||
|
||||
void initiate(void);
|
||||
void sync(void);
|
||||
s32 sync(void);
|
||||
static void doneProcess(long, DVDFileInfo*);
|
||||
|
||||
virtual bool open(char const*);
|
||||
virtual void close(void);
|
||||
virtual void readData(void*, long, long);
|
||||
virtual s32 readData(void*, long, long);
|
||||
virtual s32 writeData(void const*, long, long);
|
||||
virtual s32 getFileSize(void) const;
|
||||
virtual bool open(long);
|
||||
@@ -36,9 +36,9 @@ class JKRDvdFile : public JKRFile {
|
||||
return DVDGetCommandBlockStatus(&this->mDvdCommandBlock[0]);
|
||||
}
|
||||
|
||||
public:
|
||||
u8 mMutex1[24];
|
||||
u8 mMutex2[24];
|
||||
protected:
|
||||
OSMutex mMutex1;
|
||||
OSMutex mMutex2;
|
||||
u32 field_0x4c;
|
||||
u32 field_0x50;
|
||||
u32 field_0x54;
|
||||
@@ -48,12 +48,12 @@ class JKRDvdFile : public JKRFile {
|
||||
s32 mFileSize;
|
||||
u32 field_0x94;
|
||||
JKRDvdFile* mDvdFile;
|
||||
u8 mQueue1[32];
|
||||
void* mMessages1[1];
|
||||
u8 mQueue2[32];
|
||||
void* mMessages2[1];
|
||||
OSMessageQueue mQueue1;
|
||||
OSMessage mMessages1[1];
|
||||
OSMessageQueue mQueue2;
|
||||
OSMessage mMessages2[1];
|
||||
JSULink<JKRDvdFile> mDvdLink;
|
||||
void* mOSThread;
|
||||
OSThread* mOSThread;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -6,19 +6,19 @@
|
||||
|
||||
class JKRFile : public JKRDisposer {
|
||||
public:
|
||||
JKRFile();
|
||||
virtual ~JKRFile();
|
||||
JKRFile() : mIsOpen(false) {}
|
||||
virtual ~JKRFile() {}
|
||||
|
||||
virtual bool open(const char*);
|
||||
virtual void close();
|
||||
virtual void readData(void*, long, long);
|
||||
virtual s32 readData(void*, long, long);
|
||||
virtual s32 writeData(const void*, long, long);
|
||||
virtual s32 getFileSize();
|
||||
virtual bool open(long);
|
||||
|
||||
s32 read(void*, long, long);
|
||||
|
||||
private:
|
||||
protected:
|
||||
bool mIsOpen;
|
||||
u8 field_0x19[3];
|
||||
};
|
||||
|
||||
@@ -127,11 +127,11 @@ class JKRHeap : public JKRDisposer {
|
||||
}
|
||||
|
||||
void lock() {
|
||||
OSLockMutex(this->mMutex);
|
||||
OSLockMutex(&this->mMutex);
|
||||
}
|
||||
|
||||
void unlock() {
|
||||
OSUnlockMutex(this->mMutex);
|
||||
OSUnlockMutex(&this->mMutex);
|
||||
}
|
||||
|
||||
public:
|
||||
@@ -158,7 +158,7 @@ class JKRHeap : public JKRDisposer {
|
||||
virtual void state_dump();
|
||||
|
||||
public:
|
||||
u8 mMutex[24];
|
||||
OSMutex mMutex;
|
||||
u32 mStart;
|
||||
u32 mEnd;
|
||||
u32 mSize;
|
||||
|
||||
@@ -3,19 +3,7 @@
|
||||
|
||||
#include "dolphin/types.h"
|
||||
#include "JSystem/JKernel/JKRDisposer/JKRDisposer.h"
|
||||
|
||||
struct OSThread {
|
||||
u8 unkn[0x318];
|
||||
};
|
||||
|
||||
struct OSMessageQueue {
|
||||
u8 unkn[0x20];
|
||||
};
|
||||
|
||||
typedef void* OSMessage;
|
||||
|
||||
class JKRThread;
|
||||
extern JSUList<JKRThread> lbl_8043428C; // JSUList<JKRThread> JKRThread::sThreadList
|
||||
#include "global.h"
|
||||
|
||||
class JKRThreadName_;
|
||||
class JUTConsole;
|
||||
@@ -31,7 +19,7 @@ class JKRThread : JKRDisposer {
|
||||
void setCommon_heapSpecified(JKRHeap* heap, u32 stack_size, int param_3);
|
||||
|
||||
OSThread* getThreadRecord() {
|
||||
return this->mOsThread;
|
||||
return this->mOSThread;
|
||||
}
|
||||
|
||||
static void* start(void* param_1);
|
||||
@@ -45,7 +33,7 @@ class JKRThread : JKRDisposer {
|
||||
public:
|
||||
JSULink<JKRThread> mThreadListLink;
|
||||
JKRHeap* mHeap;
|
||||
OSThread* mOsThread;
|
||||
OSThread* mOSThread;
|
||||
OSMessageQueue mQueue;
|
||||
OSMessage* mMessages;
|
||||
int mMessageCount;
|
||||
|
||||
+5
-49
@@ -212,60 +212,16 @@ extern "C" {
|
||||
void func_80365470(void);
|
||||
}
|
||||
|
||||
// OS
|
||||
struct OSThread;
|
||||
struct OSMessageQueue;
|
||||
typedef void* OSMessage;
|
||||
extern "C" {
|
||||
void OSInitMutex(u8[24]);
|
||||
void OSLockMutex(u8[24]);
|
||||
void OSUnlockMutex(u8[24]);
|
||||
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);
|
||||
void 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(void);
|
||||
void OSSendMessage(void);
|
||||
}
|
||||
|
||||
// DVD
|
||||
class DVDFileInfo;
|
||||
extern "C" {
|
||||
void DVDOpen(void);
|
||||
void DVDClose(void);
|
||||
s32 DVDOpen(const char*, u8[48]);
|
||||
s32 DVDClose(u8[48]);
|
||||
void DVDReadPrio(void);
|
||||
void DVDGetCurrentDiskID(void);
|
||||
void DVDFastOpen(void);
|
||||
s32 DVDFastOpen(long, u8[48]);
|
||||
int DVDGetCommandBlockStatus(u8[48]);
|
||||
void DVDReadAsyncPrio(void);
|
||||
s32 DVDReadAsyncPrio(u8[48], void*, long, long, void(*)(long,DVDFileInfo*), long);
|
||||
void DVDConvertPathToEntrynum(void);
|
||||
|
||||
void DVDChangeDir(void);
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
|
||||
#include "dolphin/types.h"
|
||||
|
||||
#include "os/OS.h"
|
||||
#include "functions.h"
|
||||
#include "variables.h"
|
||||
|
||||
|
||||
@@ -0,0 +1,59 @@
|
||||
#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
|
||||
+6
-2
@@ -213,7 +213,7 @@ class JKRDvdFile;
|
||||
extern JSUList<JKRDvdFile> lbl_8043436C; // JKRDvdFile::sDvdList
|
||||
extern u8 lbl_803CC438; // JKRDvdFile::__vt
|
||||
extern u8 lbl_80434360; // JKernel::@657 (global destructor chain)
|
||||
extern u8 lbl_8039D260; // "JKRDvdFile.cpp"
|
||||
extern char lbl_8039D260[12]; // "JKRDvdFile.cpp"
|
||||
extern u8 lbl_803CC328; // JKRFile::__vt
|
||||
|
||||
class JKRFileLoader;
|
||||
@@ -258,4 +258,8 @@ struct unkEvent{ //figure out what this is later
|
||||
u8 unk567[0x439];
|
||||
};
|
||||
extern unkEvent lbl_803A7288;
|
||||
extern u8 lbl_8037B0D0[0x8];
|
||||
extern u8 lbl_8037B0D0[0x8];
|
||||
|
||||
class JKRThread;
|
||||
extern JSUList<JKRThread> lbl_8043428C; // JSUList<JKRThread> JKRThread::sThreadList
|
||||
|
||||
|
||||
Reference in New Issue
Block a user