From 59a3d0020959bbb765e98c80e01eb13963fa74ec Mon Sep 17 00:00:00 2001 From: Jonathan Wase Date: Sun, 6 Dec 2020 06:40:34 +0100 Subject: OS.h and JKRDvdFile (#19) * OS header * JKRFile and JKRDvdFile --- include/JSystem/JKernel/JKRDvdFile/JKRDvdFile.h | 20 ++++++++++---------- include/JSystem/JKernel/JKRFile/JKRFile.h | 8 ++++---- include/JSystem/JKernel/JKRHeap/JKRHeap.h | 6 +++--- include/JSystem/JKernel/JKRThread/JKRThread.h | 18 +++--------------- 4 files changed, 20 insertions(+), 32 deletions(-) (limited to 'include/JSystem') 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 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 lbl_8043428C; // JSUList 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 mThreadListLink; JKRHeap* mHeap; - OSThread* mOsThread; + OSThread* mOSThread; OSMessageQueue mQueue; OSMessage* mMessages; int mMessageCount; -- cgit v1.2.3