summaryrefslogtreecommitdiff
path: root/include/JSystem
diff options
context:
space:
mode:
authorJonathan Wase <jonathan@familjenwase.se>2020-12-06 06:40:34 +0100
committerGitHub <noreply@github.com>2020-12-06 00:40:34 -0500
commit59a3d0020959bbb765e98c80e01eb13963fa74ec (patch)
treed6a07b16e77e63c352898803808f8eecfd695e91 /include/JSystem
parent89385fe8fd3832541f5e8182afdf60d6b644916f (diff)
OS.h and JKRDvdFile (#19)
* OS header * JKRFile and JKRDvdFile
Diffstat (limited to 'include/JSystem')
-rw-r--r--include/JSystem/JKernel/JKRDvdFile/JKRDvdFile.h20
-rw-r--r--include/JSystem/JKernel/JKRFile/JKRFile.h8
-rw-r--r--include/JSystem/JKernel/JKRHeap/JKRHeap.h6
-rw-r--r--include/JSystem/JKernel/JKRThread/JKRThread.h18
4 files changed, 20 insertions, 32 deletions
diff --git a/include/JSystem/JKernel/JKRDvdFile/JKRDvdFile.h b/include/JSystem/JKernel/JKRDvdFile/JKRDvdFile.h
index d0870c3033..47eae12215 100644
--- a/include/JSystem/JKernel/JKRDvdFile/JKRDvdFile.h
+++ b/include/JSystem/JKernel/JKRDvdFile/JKRDvdFile.h
@@ -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
diff --git a/include/JSystem/JKernel/JKRFile/JKRFile.h b/include/JSystem/JKernel/JKRFile/JKRFile.h
index 3594b48126..bc1e850481 100644
--- a/include/JSystem/JKernel/JKRFile/JKRFile.h
+++ b/include/JSystem/JKernel/JKRFile/JKRFile.h
@@ -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];
};
diff --git a/include/JSystem/JKernel/JKRHeap/JKRHeap.h b/include/JSystem/JKernel/JKRHeap/JKRHeap.h
index 48364f52af..1c1d043328 100644
--- a/include/JSystem/JKernel/JKRHeap/JKRHeap.h
+++ b/include/JSystem/JKernel/JKRHeap/JKRHeap.h
@@ -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;
diff --git a/include/JSystem/JKernel/JKRThread/JKRThread.h b/include/JSystem/JKernel/JKRThread/JKRThread.h
index f5b3d6cfa6..9efba043c4 100644
--- a/include/JSystem/JKernel/JKRThread/JKRThread.h
+++ b/include/JSystem/JKernel/JKRThread/JKRThread.h
@@ -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;