summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorJonathan Wase <jonathan@familjenwase.se>2021-01-04 03:26:25 +0100
committerGitHub <noreply@github.com>2021-01-03 21:26:25 -0500
commit5217a4189e0697995e9de0130fa6bfda0146f2f5 (patch)
tree41b073c30c4eb3525080062bc821e757e620ab8e /include
parent409257b111085cf9503e6bcfd0358455271bc901 (diff)
JKernel cleanup and DVD types (#59)
* JKRDecomp OK * JKRFile and JKRDvdFile cleanup * more DVD stuff and cleanup JKRDvdFile more * formatting * JKRHeap cleanup * formatting * JKRDisposer cleanup * JKRAramBlock and JKRAramHeap cleanup * fix merge error * fixed comments * forgot to save file... * fix DVDCBcallback Co-authored-by: Julgodis <>
Diffstat (limited to 'include')
-rw-r--r--include/JSystem/JKernel/JKRAramBlock/JKRAramBlock.h15
-rw-r--r--include/JSystem/JKernel/JKRAramHeap/JKRAramHeap.h16
-rw-r--r--include/JSystem/JKernel/JKRDisposer/JKRDisposer.h5
-rw-r--r--include/JSystem/JKernel/JKRDvdFile/JKRDvdFile.h45
-rw-r--r--include/JSystem/JKernel/JKRFile/JKRFile.h12
-rw-r--r--include/JSystem/JKernel/JKRHeap/JKRHeap.h44
-rw-r--r--include/dvd/dvd.h25
-rw-r--r--include/functions.h18
-rw-r--r--include/global.h2
9 files changed, 87 insertions, 95 deletions
diff --git a/include/JSystem/JKernel/JKRAramBlock/JKRAramBlock.h b/include/JSystem/JKernel/JKRAramBlock/JKRAramBlock.h
index 3b3a18a696..a850898bee 100644
--- a/include/JSystem/JKernel/JKRAramBlock/JKRAramBlock.h
+++ b/include/JSystem/JKernel/JKRAramBlock/JKRAramBlock.h
@@ -24,13 +24,14 @@ public:
void newGroupID(u8 groupId) { mGroupId = groupId; }
public:
- JSULink<JKRAramBlock> mBlockLink;
- u32 mAddress;
- u32 mSize;
- u32 mFreeSize;
- u8 mGroupId;
- u8 mIsTempMemory;
- u8 padding[2];
+ /* 0x00 */ // vtable
+ /* 0x04 */ JSULink<JKRAramBlock> mBlockLink;
+ /* 0x14 */ u32 mAddress;
+ /* 0x18 */ u32 mSize;
+ /* 0x1C */ u32 mFreeSize;
+ /* 0x20 */ u8 mGroupId;
+ /* 0x21 */ u8 mIsTempMemory;
+ /* 0x22 */ u8 padding[2];
};
#endif
diff --git a/include/JSystem/JKernel/JKRAramHeap/JKRAramHeap.h b/include/JSystem/JKernel/JKRAramHeap/JKRAramHeap.h
index 36edff7dbd..1ccb6eb93b 100644
--- a/include/JSystem/JKernel/JKRAramHeap/JKRAramHeap.h
+++ b/include/JSystem/JKernel/JKRAramHeap/JKRAramHeap.h
@@ -37,13 +37,15 @@ private:
void unlock() { OSUnlockMutex(&mMutex); }
public:
- OSMutex mMutex;
- JKRHeap* mHeap;
- u32 mHeadAddress;
- u32 mTailAddress;
- u32 mSize;
- u8 mGroupId;
- u8 padding_0x41[3];
+ /* 0x00 */ // vtable
+ /* 0x04 */ // JKRDisposer
+ /* 0x18 */ OSMutex mMutex;
+ /* 0x30 */ JKRHeap* mHeap;
+ /* 0x34 */ u32 mHeadAddress;
+ /* 0x38 */ u32 mTailAddress;
+ /* 0x3C */ u32 mSize;
+ /* 0x40 */ u8 mGroupId;
+ /* 0x41 */ u8 padding_0x41[3];
};
#endif
diff --git a/include/JSystem/JKernel/JKRDisposer/JKRDisposer.h b/include/JSystem/JKernel/JKRDisposer/JKRDisposer.h
index 7b13b5ff83..bd37317174 100644
--- a/include/JSystem/JKernel/JKRDisposer/JKRDisposer.h
+++ b/include/JSystem/JKernel/JKRDisposer/JKRDisposer.h
@@ -11,8 +11,9 @@ public:
virtual ~JKRDisposer();
public:
- JKRHeap* mHeap;
- JSULink<JKRDisposer> mLink;
+ /* 0x00 */ // vtable
+ /* 0x04 */ JKRHeap* mHeap;
+ /* 0x08 */ JSULink<JKRDisposer> mLink;
};
#endif
diff --git a/include/JSystem/JKernel/JKRDvdFile/JKRDvdFile.h b/include/JSystem/JKernel/JKRDvdFile/JKRDvdFile.h
index 6191bf98b4..c2d8006691 100644
--- a/include/JSystem/JKernel/JKRDvdFile/JKRDvdFile.h
+++ b/include/JSystem/JKernel/JKRDvdFile/JKRDvdFile.h
@@ -11,45 +11,44 @@ class JSUFileInputStream;
class JKRDvdFile : public JKRFile {
public:
JKRDvdFile();
- JKRDvdFile(char const*);
+ JKRDvdFile(const char*);
JKRDvdFile(long);
virtual ~JKRDvdFile();
void initiate(void);
s32 sync(void);
- int getFileID() const { return this->file_info.start_address << 2; }
+ int getFileID() const { return mFileInfo.start_address << 2; }
- const DVDFileInfo* getFileInfo() const { return &this->file_info; }
+ const DVDFileInfo& getFileInfo() const { return mFileInfo; }
- int getStatus() { return DVDGetCommandBlockStatus(&this->file_info); }
+ int getStatus() { return DVDGetCommandBlockStatus(&mFileInfo.block); }
public:
- /* vt[03] */ virtual bool open(char const*); /* override */
+ /* vt[03] */ virtual bool open(const char*); /* override */
/* vt[04] */ virtual void close(void); /* override */
/* vt[05] */ virtual s32 readData(void*, long, long); /* override */
- /* vt[06] */ virtual s32 writeData(void const*, long, long); /* override */
+ /* vt[06] */ virtual s32 writeData(const void*, long, long); /* override */
/* vt[07] */ virtual s32 getFileSize(void) const; /* override */
/* vt[08] */ virtual bool open(long);
private:
- OSMutex mMutex1;
- OSMutex mMutex2;
- JKRADCommand* field_0x4c;
- OSThread* field_0x50;
- JSUFileInputStream* field_0x54;
- u32 field_0x58;
- DVDFileInfo file_info;
- // s32 mFileID;
- // s32 mFileSize;
- // u32 field_0x94;
- JKRDvdFile* mDvdFile;
- OSMessageQueue mQueue1;
- OSMessage mMessages1[1];
- OSMessageQueue mQueue2;
- OSMessage mMessages2[1];
- JSULink<JKRDvdFile> mDvdLink;
- OSThread* mOSThread;
+ /* 0x00 */ // vtable
+ /* 0x04 */ // JKRFile
+ /* 0x1C */ OSMutex mMutex1;
+ /* 0x34 */ OSMutex mMutex2;
+ /* 0x4C */ u32 field_0x4c;
+ /* 0x50 */ u32 field_0x50;
+ /* 0x54 */ u32 field_0x54;
+ /* 0x58 */ u32 field_0x58;
+ /* 0x5C */ DVDFileInfo mFileInfo;
+ /* 0x98 */ JKRDvdFile* mDvdFile;
+ /* 0x9C */ OSMessageQueue mMessageQueue1;
+ /* 0xBC */ OSMessage mMessage1;
+ /* 0xC0 */ OSMessageQueue mMessageQueue2;
+ /* 0xE0 */ OSMessage mMessage2;
+ /* 0xE4 */ JSULink<JKRDvdFile> mDvdLink;
+ /* 0xF4 */ OSThread* mOSThread;
public:
static void doneProcess(long, DVDFileInfo*);
diff --git a/include/JSystem/JKernel/JKRFile/JKRFile.h b/include/JSystem/JKernel/JKRFile/JKRFile.h
index 009741a875..6e38eb001c 100644
--- a/include/JSystem/JKernel/JKRFile/JKRFile.h
+++ b/include/JSystem/JKernel/JKRFile/JKRFile.h
@@ -11,18 +11,20 @@ public:
s32 read(void*, long, long);
- bool isAvailable() { return this->mIsAvailable; }
+ bool isAvailable() const { return this->mIsAvailable; }
public:
/* vt[03] */ virtual bool open(const char*) = 0;
/* vt[04] */ virtual void close() = 0;
- /* vt[05] */ virtual s32 readData(void*, long, long) = 0;
- /* vt[06] */ virtual s32 writeData(const void*, long, long) = 0;
+ /* vt[05] */ virtual s32 readData(void*, s32, s32) = 0;
+ /* vt[06] */ virtual s32 writeData(const void*, s32, s32) = 0;
/* vt[07] */ virtual s32 getFileSize() const = 0;
protected:
- bool mIsAvailable;
- u8 field_0x19[3];
+ /* 0x00 */ // vtable
+ /* 0x04 */ // JKRDisposer
+ /* 0x18 */ bool mIsAvailable;
+ /* 0x19 */ u8 field_0x19[3];
};
#endif
diff --git a/include/JSystem/JKernel/JKRHeap/JKRHeap.h b/include/JSystem/JKernel/JKRHeap/JKRHeap.h
index 5af14cedce..32fe08a30b 100644
--- a/include/JSystem/JKernel/JKRHeap/JKRHeap.h
+++ b/include/JSystem/JKernel/JKRHeap/JKRHeap.h
@@ -27,7 +27,7 @@ public:
s32 getFreeSize();
void* getMaxFreeBlock();
s32 getTotalFreeSize();
- u8 changeGroupID(u8 param_1);
+ u8 changeGroupID(u8 newGroupId);
s32 getMaxAllocatableSize(int alignment);
JKRHeap* find(void* ptr) const;
@@ -63,7 +63,7 @@ public:
/* vt[22] */ virtual bool state_compare(JKRHeap::TState const&, JKRHeap::TState const&) const;
/* vt[23] */ virtual void state_dump();
- void setDebugFill(bool debugFill) { this->mDebugFill = debugFill; }
+ void setDebugFill(bool debugFill) { mDebugFill = debugFill; }
void* getStartAddr() const { return (void*)mStart; }
@@ -71,37 +71,39 @@ public:
u32 getSize() const { return mSize; }
- bool getErrorFlag() { return mErrorFlag; }
+ bool getErrorFlag() const { return mErrorFlag; }
- JKRHeap* getParent() {
- JSUTree<JKRHeap>* parent = this->mChildTree.getParent();
+ JKRHeap* getParent() const {
+ JSUTree<JKRHeap>* parent = mChildTree.getParent();
return parent->getObject();
}
- JSUTree<JKRHeap>& getHeapTree() { return this->mChildTree; }
+ JSUTree<JKRHeap>& getHeapTree() { return mChildTree; }
void appendDisposer(JKRDisposer* disposer) { mDisposerList.append(&disposer->mLink); }
void removeDisposer(JKRDisposer* disposer) { mDisposerList.remove(&disposer->mLink); }
- void lock() { OSLockMutex(&this->mMutex); }
+ void lock() { OSLockMutex(&mMutex); }
- void unlock() { OSUnlockMutex(&this->mMutex); }
+ void unlock() { OSUnlockMutex(&mMutex); }
protected:
- OSMutex mMutex;
- u32 mStart;
- u32 mEnd;
- u32 mSize;
- bool mDebugFill;
- bool mCheckMemoryFilled;
- u8 mAllocationMode; // EAllocMode?
- u8 mGroupId;
- JSUTree<JKRHeap> mChildTree;
- JSUList<JKRDisposer> mDisposerList;
- bool mErrorFlag;
- bool mInitFlag;
- u8 padding_0x6a[2];
+ /* 0x00 */ // vtable
+ /* 0x04 */ // JKRDisposer
+ /* 0x18 */ OSMutex mMutex;
+ /* 0x30 */ u32 mStart;
+ /* 0x34 */ u32 mEnd;
+ /* 0x38 */ u32 mSize;
+ /* 0x3C */ bool mDebugFill;
+ /* 0x3D */ bool mCheckMemoryFilled;
+ /* 0x3E */ u8 mAllocationMode; // EAllocMode?
+ /* 0x3F */ u8 mGroupId;
+ /* 0x40 */ JSUTree<JKRHeap> mChildTree;
+ /* 0x5C */ JSUList<JKRDisposer> mDisposerList;
+ /* 0x68 */ bool mErrorFlag;
+ /* 0x69 */ bool mInitFlag;
+ /* 0x6A */ u8 padding_0x6a[2];
public:
static bool initArena(char**, u32*, int);
diff --git a/include/dvd/dvd.h b/include/dvd/dvd.h
index 918ae6d396..f1134eebbc 100644
--- a/include/dvd/dvd.h
+++ b/include/dvd/dvd.h
@@ -20,7 +20,7 @@ typedef enum DVDState {
} DVDState;
}
-class DVDDiskID {
+struct DVDDiskID {
char game_name[4];
char company[2];
u8 disk_number;
@@ -30,10 +30,14 @@ class DVDDiskID {
u8 padding[22];
};
-class DVDCommandBlock {
-public:
+struct DVDFileInfo;
+struct DVDCommandBlock;
+typedef void (*DVDCBCallback)(s32 result, DVDCommandBlock* block);
+typedef void (*DVDCallback)(s32 result, DVDFileInfo* info);
+
+struct DVDCommandBlock {
DVDCommandBlock* next;
- DVDCommandBlock* previous;
+ DVDCommandBlock* prev;
u32 command;
s32 state;
u32 offset;
@@ -42,18 +46,15 @@ public:
u32 current_transfer_size;
u32 transferred_size;
DVDDiskID* disk_id;
- u8 callback[4];
+ DVDCBCallback callback;
void* user_data;
};
-// typedef void (*DVDCallback)(u32 result, DVDFileInfo *info);
-
-class DVDFileInfo {
-public:
+struct DVDFileInfo {
DVDCommandBlock block;
u32 start_address;
u32 length;
- u8 callback[4];
+ DVDCallback callback;
};
extern "C" {
@@ -62,8 +63,8 @@ s32 DVDClose(DVDFileInfo*);
void DVDReadPrio(DVDFileInfo*, void*, s32, s32, s32);
void DVDGetCurrentDiskID(void);
s32 DVDFastOpen(long, DVDFileInfo*);
-int DVDGetCommandBlockStatus(DVDFileInfo*);
-s32 DVDReadAsyncPrio(DVDFileInfo*, void*, long, long, void (*)(long, DVDFileInfo*), long);
+int DVDGetCommandBlockStatus(DVDCommandBlock*);
+s32 DVDReadAsyncPrio(DVDFileInfo*, void*, long, long, DVDCallback, long);
void DVDConvertPathToEntrynum(void);
DVDState DVDGetDriveStatus(void);
s32 DVDCheckDisk(void);
diff --git a/include/functions.h b/include/functions.h
index 1de4a704db..08e082fbaa 100644
--- a/include/functions.h
+++ b/include/functions.h
@@ -441,24 +441,6 @@ void initiate__6JUTXfbFUsUsP7JKRHeapl(void);
void common_init__6JUTXfbFl(void);
}
-// DVD
-// class DVDFileInfo;
-// extern "C" {
-// s32 DVDOpen(const char*, DVDFileInfo*);
-// s32 DVDClose(DVDFileInfo*);
-// void DVDReadPrio(DVDFileInfo*, void*, s32, s32, s32);
-// void DVDGetCurrentDiskID(void);
-// s32 DVDFastOpen(long, u8[48]);
-// int DVDGetCommandBlockStatus(u8[48]);
-// s32 DVDReadAsyncPrio(u8[48], void*, long, long, void (*)(long, DVDFileInfo*), long);
-// void DVDConvertPathToEntrynum(void);
-
-// void DVDChangeDir(void);
-// void DVDCloseDir(void);
-// void DVDOpenDir(void);
-// void DVDReadDir(void);
-// }
-
class mDoCPd_c;
extern "C" {
void mDoCPd_c_NS_recalibrate(void);
diff --git a/include/global.h b/include/global.h
index 36d9d0c1d8..7a76277774 100644
--- a/include/global.h
+++ b/include/global.h
@@ -12,6 +12,8 @@ struct Vec {
float x, y, z;
};
+#define JUT_ASSERT(...)
+
#include "dolphin/types.h"
#include "ar/ARQ.h"