OS.h and JKRDvdFile (#19)

* OS header

* JKRFile and JKRDvdFile
This commit is contained in:
Jonathan Wase
2020-12-06 06:40:34 +01:00
committed by GitHub
parent 89385fe8fd
commit 59a3d00209
12 changed files with 223 additions and 132 deletions
+10 -10
View File
@@ -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
+4 -4
View File
@@ -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];
};
+3 -3
View File
@@ -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 -15
View File
@@ -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;