summaryrefslogtreecommitdiff
path: root/include/JSystem/JKernel
diff options
context:
space:
mode:
authorJonathan Wase <jonathan@familjenwase.se>2021-01-07 02:33:03 +0100
committerGitHub <noreply@github.com>2021-01-06 20:33:03 -0500
commit88fca194f819728591935b3de9dd8fcd1cd4e827 (patch)
tree3a1f10c3a50ac30de41c2162ffdb0971bb9b3575 /include/JSystem/JKernel
parent0cf65151b3a1a85a5d3ad74a367045e596aee1aa (diff)
JKRSolidHeap (#69)
* JKRSolidHeap progress * JKRSolidHeap, added const to virtual functions, and JKRHeap::TState * fixed braces * fix function overload * clang-format Co-authored-by: Julgodis <> Co-authored-by: Pheenoh <pheenoh@gmail.com>
Diffstat (limited to 'include/JSystem/JKernel')
-rw-r--r--include/JSystem/JKernel/JKRAssertHeap/JKRAssertHeap.h34
-rw-r--r--include/JSystem/JKernel/JKRExpHeap/JKRExpHeap.h33
-rw-r--r--include/JSystem/JKernel/JKRExpHeap/asm/func_802CEE2C.s2
-rw-r--r--include/JSystem/JKernel/JKRExpHeap/asm/func_802D0938.s2
-rw-r--r--include/JSystem/JKernel/JKRHeap/JKRHeap.h81
-rw-r--r--include/JSystem/JKernel/JKRHeap/asm/func_802CE6B0.s2
-rw-r--r--include/JSystem/JKernel/JKRHeap/asm/func_802CE7DC.s4
-rw-r--r--include/JSystem/JKernel/JKRSolidHeap/JKRSolidHeap.h59
-rw-r--r--include/JSystem/JKernel/JKRSolidHeap/asm/func_802D0A24.s51
-rw-r--r--include/JSystem/JKernel/JKRSolidHeap/asm/func_802D0AD0.s27
-rw-r--r--include/JSystem/JKernel/JKRSolidHeap/asm/func_802D0B30.s25
-rw-r--r--include/JSystem/JKernel/JKRSolidHeap/asm/func_802D0B8C.s29
-rw-r--r--include/JSystem/JKernel/JKRSolidHeap/asm/func_802D0CB0.s49
-rw-r--r--include/JSystem/JKernel/JKRSolidHeap/asm/func_802D0EE4.s14
-rw-r--r--include/JSystem/JKernel/JKRSolidHeap/asm/func_802D0F14.s26
-rw-r--r--include/JSystem/JKernel/JKRSolidHeap/asm/func_802D0F74.s40
-rw-r--r--include/JSystem/JKernel/JKRSolidHeap/asm/func_802D1000.s3
-rw-r--r--include/JSystem/JKernel/JKRSolidHeap/asm/func_802D1004.s15
-rw-r--r--include/JSystem/JKernel/JKRSolidHeap/asm/func_802D1038.s15
-rw-r--r--include/JSystem/JKernel/JKRSolidHeap/asm/func_802D106C.s39
-rw-r--r--include/JSystem/JKernel/JKRSolidHeap/asm/func_802D11FC.s2
-rw-r--r--include/JSystem/JKernel/JKRSolidHeap/asm/func_802D1258.s15
-rw-r--r--include/JSystem/JKernel/JKRSolidHeap/asm/func_802D1288.s5
-rw-r--r--include/JSystem/JKernel/JKRSolidHeap/asm/func_802D1294.s4
-rw-r--r--include/JSystem/JKernel/JKRSolidHeap/asm/func_802D129C.s4
-rw-r--r--include/JSystem/JKernel/JKRSolidHeap/asm/func_802D12A4.s10
26 files changed, 121 insertions, 469 deletions
diff --git a/include/JSystem/JKernel/JKRAssertHeap/JKRAssertHeap.h b/include/JSystem/JKernel/JKRAssertHeap/JKRAssertHeap.h
index b7a1e74297..c97484f7af 100644
--- a/include/JSystem/JKernel/JKRAssertHeap/JKRAssertHeap.h
+++ b/include/JSystem/JKernel/JKRAssertHeap/JKRAssertHeap.h
@@ -10,23 +10,23 @@ protected:
virtual ~JKRAssertHeap();
public:
- /* vt[04] */ virtual u32 getHeapType(void); /* override */
- /* vt[05] */ virtual bool check(void); /* override */
- /* vt[06] */ virtual bool dump_sort(void); /* override */
- /* vt[07] */ virtual bool dump(void); /* override */
- /* vt[08] */ virtual void do_destroy(void); /* override */
- /* vt[09] */ virtual void* do_alloc(u32, int); /* override */
- /* vt[10] */ virtual void do_free(void*); /* override */
- /* vt[11] */ virtual void do_freeAll(void); /* override */
- /* vt[12] */ virtual void do_freeTail(void); /* override */
- /* vt[13] */ virtual void do_fillFreeArea(void); /* override */
- /* vt[14] */ virtual s32 do_resize(void*, u32); /* override */
- /* vt[15] */ virtual s32 do_getSize(void*); /* override */
- /* vt[16] */ virtual s32 do_getFreeSize(void); /* override */
- /* vt[17] */ virtual void* do_getMaxFreeBlock(void); /* override */
- /* vt[18] */ virtual s32 do_getTotalFreeSize(void); /* override */
- /* vt[19] */ virtual u8 do_changeGroupID(u8 param_1); /* override */
- /* vt[20] */ virtual u8 do_getCurrentGroupId(void); /* override */
+ /* vt[04] */ virtual u32 getHeapType(void) const; /* override */
+ /* vt[05] */ virtual bool check(void); /* override */
+ /* vt[06] */ virtual bool dump_sort(void); /* override */
+ /* vt[07] */ virtual bool dump(void); /* override */
+ /* vt[08] */ virtual void do_destroy(void); /* override */
+ /* vt[09] */ virtual void* do_alloc(u32, int); /* override */
+ /* vt[10] */ virtual void do_free(void*); /* override */
+ /* vt[11] */ virtual void do_freeAll(void); /* override */
+ /* vt[12] */ virtual void do_freeTail(void); /* override */
+ /* vt[13] */ virtual void do_fillFreeArea(void); /* override */
+ /* vt[14] */ virtual s32 do_resize(void*, u32); /* override */
+ /* vt[15] */ virtual s32 do_getSize(void*) const; /* override */
+ /* vt[16] */ virtual s32 do_getFreeSize(void) const; /* override */
+ /* vt[17] */ virtual void* do_getMaxFreeBlock(void) const; /* override */
+ /* vt[18] */ virtual s32 do_getTotalFreeSize(void) const; /* override */
+ /* vt[19] */ virtual u8 do_changeGroupID(u8 param_1); /* override */
+ /* vt[20] */ virtual u8 do_getCurrentGroupId(void) const; /* override */
public:
static JKRAssertHeap* create(JKRHeap*);
diff --git a/include/JSystem/JKernel/JKRExpHeap/JKRExpHeap.h b/include/JSystem/JKernel/JKRExpHeap/JKRExpHeap.h
index 02705f338f..0b40a15bb4 100644
--- a/include/JSystem/JKernel/JKRExpHeap/JKRExpHeap.h
+++ b/include/JSystem/JKernel/JKRExpHeap/JKRExpHeap.h
@@ -15,20 +15,13 @@ public:
void getHeapBlock(void*);
void newGroupId(u8 groupId) { this->mGroupId = groupId; }
-
- bool isValid() { return this->mMagic == 0x484d; }
-
- bool _isTempMemBlock() { return (this->mFlags & 0x80) ? true : false; }
-
+ bool isValid() const { return this->mMagic == 0x484d; }
+ bool _isTempMemBlock() const { return (this->mFlags & 0x80) ? true : false; }
int getAlignment() const { return this->mFlags & 0x7f; }
-
- void* getContent() { return (void*)(this + 1); }
-
- CMemBlock* getPrevBlock() { return this->mPrev; }
-
- CMemBlock* getNextBlock() { return this->mNext; }
-
- u32 getSize() { return this->size; }
+ void* getContent() const { return (void*)(this + 1); }
+ CMemBlock* getPrevBlock() const { return this->mPrev; }
+ CMemBlock* getNextBlock() const { return this->mNext; }
+ u32 getSize() const { return this->size; }
private:
u16 mMagic;
@@ -57,10 +50,10 @@ protected:
public:
s32 getUsedSize(u8) const;
s32 getTotalUsedSize(void) const;
- CMemBlock* getHeadUsedList() { return mHeadUsedList; }
+ CMemBlock* getHeadUsedList() const { return mHeadUsedList; }
public:
- /* vt[04] */ virtual u32 getHeapType(); /* override */
+ /* vt[04] */ virtual u32 getHeapType() const; /* override */
/* vt[05] */ virtual bool check(); /* override */
/* vt[06] */ virtual bool dump_sort(); /* override */
/* vt[07] */ virtual bool dump(); /* override */
@@ -71,12 +64,12 @@ public:
/* vt[12] */ virtual void do_freeTail(); /* override */
/* vt[13] */ virtual void do_fillFreeArea(); /* override */
/* vt[14] */ virtual s32 do_resize(void* ptr, u32 size); /* override */
- /* vt[15] */ virtual s32 do_getSize(void* ptr); /* override */
- /* vt[16] */ virtual s32 do_getFreeSize(); /* override */
- /* vt[17] */ virtual void* do_getMaxFreeBlock(); /* override */
- /* vt[18] */ virtual s32 do_getTotalFreeSize(); /* override */
+ /* vt[15] */ virtual s32 do_getSize(void* ptr) const; /* override */
+ /* vt[16] */ virtual s32 do_getFreeSize() const; /* override */
+ /* vt[17] */ virtual void* do_getMaxFreeBlock() const; /* override */
+ /* vt[18] */ virtual s32 do_getTotalFreeSize() const; /* override */
/* vt[19] */ virtual u8 do_changeGroupID(u8 newGroupID); /* override */
- /* vt[20] */ virtual u8 do_getCurrentGroupId(); /* override */
+ /* vt[20] */ virtual u8 do_getCurrentGroupId() const; /* override */
/* vt[21] */ virtual void state_register(JKRHeap::TState*, u32) const; /* override */
/* vt[22] */ virtual bool state_compare(JKRHeap::TState const&,
JKRHeap::TState const&) const; /* override */
diff --git a/include/JSystem/JKernel/JKRExpHeap/asm/func_802CEE2C.s b/include/JSystem/JKernel/JKRExpHeap/asm/func_802CEE2C.s
index eea4c8257f..aa24a4db22 100644
--- a/include/JSystem/JKernel/JKRExpHeap/asm/func_802CEE2C.s
+++ b/include/JSystem/JKernel/JKRExpHeap/asm/func_802CEE2C.s
@@ -15,7 +15,7 @@ lbl_802CEE50:
/* 802CEE58 002CBD98 40 82 00 10 */ bne lbl_802CEE68
/* 802CEE5C 002CBD9C 7F 83 E3 78 */ mr r3, r28
/* 802CEE60 002CBDA0 38 80 00 10 */ li r4, 0x10
-/* 802CEE64 002CBDA4 4B FF F9 79 */ bl getMaxAllocatableSize__7JKRHeapFi
+/* 802CEE64 002CBDA4 4B FF F9 79 */ bl getMaxAllocatableSize__7JKRHeapCFi
lbl_802CEE68:
/* 802CEE68 002CBDA8 54 7F 00 36 */ rlwinm r31, r3, 0, 0, 0x1b
/* 802CEE6C 002CBDAC 28 1F 00 A0 */ cmplwi r31, 0xa0
diff --git a/include/JSystem/JKernel/JKRExpHeap/asm/func_802D0938.s b/include/JSystem/JKernel/JKRExpHeap/asm/func_802D0938.s
index 7be4bc642e..6ecd30811c 100644
--- a/include/JSystem/JKernel/JKRExpHeap/asm/func_802D0938.s
+++ b/include/JSystem/JKernel/JKRExpHeap/asm/func_802D0938.s
@@ -16,7 +16,7 @@
/* 802D096C 002CD8AC 90 7E 00 00 */ stw r3, 0(r30)
/* 802D0970 002CD8B0 48 00 00 14 */ b lbl_802D0984
lbl_802D0974:
-/* 802D0974 002CD8B4 4B FF DE 11 */ bl getTotalFreeSize__7JKRHeapFv
+/* 802D0974 002CD8B4 4B FF DE 11 */ bl getTotalFreeSize__7JKRHeapCFv
/* 802D0978 002CD8B8 80 1D 00 38 */ lwz r0, 0x38(r29)
/* 802D097C 002CD8BC 7C 03 00 50 */ subf r0, r3, r0
/* 802D0980 002CD8C0 90 1E 00 00 */ stw r0, 0(r30)
diff --git a/include/JSystem/JKernel/JKRHeap/JKRHeap.h b/include/JSystem/JKernel/JKRHeap/JKRHeap.h
index 183f0d4c4c..a7470eda21 100644
--- a/include/JSystem/JKernel/JKRHeap/JKRHeap.h
+++ b/include/JSystem/JKernel/JKRHeap/JKRHeap.h
@@ -5,10 +5,27 @@
#include "dolphin/types.h"
#include "global.h"
-typedef void (*JKRErrorHandler)(void*, u32, int);
+class JKRHeap;
+typedef void (*JKRErrorHandler)(JKRHeap*, u32, int);
+extern JKRErrorHandler lbl_8045137C; // JKRHeap::mErrorHandler
+
class JKRHeap : public JKRDisposer {
public:
- class TState {};
+ class TState {
+ public:
+ u32 mUsedSize;
+ u32 mCheckCode;
+ u32 mBuf;
+ u32 field_0xc;
+ JKRHeap* mHeap;
+ u32 mId;
+
+ public:
+ u32 getUsedSize() const { return mUsedSize; }
+ u32 getCheckCode() const { return mCheckCode; }
+ JKRHeap* getHeap() const { return mHeap; }
+ u32 getId() const { return mId; }
+ };
public:
JKRHeap(void*, u32, JKRHeap*, bool);
@@ -23,12 +40,12 @@ public:
void freeAll();
void freeTail();
s32 resize(void* ptr, u32 size);
- s32 getSize(void* ptr);
- s32 getFreeSize();
- void* getMaxFreeBlock();
- s32 getTotalFreeSize();
+ s32 getSize(void* ptr) const;
+ s32 getFreeSize() const;
+ void* getMaxFreeBlock() const;
+ s32 getTotalFreeSize() const;
u8 changeGroupID(u8 newGroupId);
- s32 getMaxAllocatableSize(int alignment);
+ u32 getMaxAllocatableSize(int alignment) const;
JKRHeap* find(void* ptr) const;
JKRHeap* findAllHeap(void* ptr) const;
@@ -42,7 +59,7 @@ public:
bool isSubHeap(JKRHeap* heap) const;
/* vt[03] */ virtual void callAllDisposer();
- /* vt[04] */ virtual u32 getHeapType() = 0;
+ /* vt[04] */ virtual u32 getHeapType() const = 0;
/* vt[05] */ virtual bool check() = 0;
/* vt[06] */ virtual bool dump_sort();
/* vt[07] */ virtual bool dump() = 0;
@@ -53,25 +70,28 @@ public:
/* vt[12] */ virtual void do_freeTail() = 0;
/* vt[13] */ virtual void do_fillFreeArea() = 0;
/* vt[14] */ virtual s32 do_resize(void* ptr, u32 size) = 0;
- /* vt[15] */ virtual s32 do_getSize(void* ptr) = 0;
- /* vt[16] */ virtual s32 do_getFreeSize() = 0;
- /* vt[17] */ virtual void* do_getMaxFreeBlock() = 0;
- /* vt[18] */ virtual s32 do_getTotalFreeSize() = 0;
+ /* vt[15] */ virtual s32 do_getSize(void* ptr) const = 0;
+ /* vt[16] */ virtual s32 do_getFreeSize() const = 0;
+ /* vt[17] */ virtual void* do_getMaxFreeBlock() const = 0;
+ /* vt[18] */ virtual s32 do_getTotalFreeSize() const = 0;
/* vt[19] */ virtual u8 do_changeGroupID(u8 newGroupID);
- /* vt[20] */ virtual u8 do_getCurrentGroupId();
+ /* vt[20] */ virtual u8 do_getCurrentGroupId() const;
/* vt[21] */ virtual void state_register(JKRHeap::TState*, unsigned long) const;
/* vt[22] */ virtual bool state_compare(JKRHeap::TState const&, JKRHeap::TState const&) const;
- /* vt[23] */ virtual void state_dump();
+ /* vt[23] */ virtual void state_dump(JKRHeap::TState const&) const;
void setDebugFill(bool debugFill) { mDebugFill = debugFill; }
-
+ bool getDebugFill() const { return mDebugFill; }
void* getStartAddr() const { return (void*)mStart; }
-
void* getEndAddr() const { return (void*)mEnd; }
-
u32 getSize() const { return mSize; }
-
bool getErrorFlag() const { return mErrorFlag; }
+ void callErrorHandler(JKRHeap* heap, u32 size, int alignment) {
+ // lbl_8045137C = JKRHeap::mErrorHandler
+ if (lbl_8045137C) {
+ (*lbl_8045137C)(heap, size, alignment);
+ }
+ }
JKRHeap* getParent() const {
JSUTree<JKRHeap>* parent = mChildTree.getParent();
@@ -79,21 +99,17 @@ public:
}
JSUTree<JKRHeap>& getHeapTree() { return mChildTree; }
-
void appendDisposer(JKRDisposer* disposer) { mDisposerList.append(&disposer->mLink); }
-
void removeDisposer(JKRDisposer* disposer) { mDisposerList.remove(&disposer->mLink); }
-
void lock() { OSLockMutex(&mMutex); }
-
void unlock() { OSUnlockMutex(&mMutex); }
protected:
/* 0x00 */ // vtable
/* 0x04 */ // JKRDisposer
/* 0x18 */ OSMutex mMutex;
- /* 0x30 */ u32 mStart;
- /* 0x34 */ u32 mEnd;
+ /* 0x30 */ u8* mStart;
+ /* 0x34 */ u8* mEnd;
/* 0x38 */ u32 mSize;
/* 0x3C */ bool mDebugFill;
/* 0x3D */ bool mCheckMemoryFilled;
@@ -118,23 +134,24 @@ public:
static bool checkMemoryFilled(void* src, u32 size, u8 value);
static void JKRDefaultMemoryErrorRoutine(JKRHeap* heap, u32 size, int alignment);
- static JKRErrorHandler setErrorHandler(JKRErrorHandler error_handler);
+ static JKRErrorHandler setErrorHandler(JKRErrorHandler errorHandler);
static void* getCodeStart(void) { return lbl_80451384; }
-
static void* getCodeEnd(void) { return lbl_80451388; }
-
static void* getUserRamStart(void) { return lbl_8045138C; }
-
static void* getUserRamEnd(void) { return lbl_80451390; }
-
static u32 getMemorySize(void) { return lbl_80451394; }
-
static JKRHeap* getRootHeap() { return lbl_80451378; }
-
static JKRHeap* getSystemHeap() { return lbl_80451370; }
-
static JKRHeap* getCurrentHeap() { return lbl_80451374; }
+
+ static void setState_u32ID_(TState* state, u32 id) { state->mId = id; }
+ static void setState_uUsedSize_(TState* state, u32 usedSize) { state->mUsedSize = usedSize; }
+ static void setState_u32CheckCode_(TState* state, u32 checkCode) {
+ state->mCheckCode = checkCode;
+ }
+ static void* getState_buf_(TState* state) { return &state->mBuf; }
+ static void* getState_(TState* state) { return getState_buf_(state); }
};
void* operator new(u32 size);
diff --git a/include/JSystem/JKernel/JKRHeap/asm/func_802CE6B0.s b/include/JSystem/JKernel/JKRHeap/asm/func_802CE6B0.s
index fa01007842..e3bce8140a 100644
--- a/include/JSystem/JKernel/JKRHeap/asm/func_802CE6B0.s
+++ b/include/JSystem/JKernel/JKRHeap/asm/func_802CE6B0.s
@@ -13,7 +13,7 @@
lbl_802CE6E0:
/* 802CE6E0 002CB620 7C 83 23 78 */ mr r3, r4
/* 802CE6E4 002CB624 7F E4 FB 78 */ mr r4, r31
-/* 802CE6E8 002CB628 48 00 00 19 */ bl getSize__7JKRHeapFPv
+/* 802CE6E8 002CB628 48 00 00 19 */ bl getSize__7JKRHeapCFPv
lbl_802CE6EC:
/* 802CE6EC 002CB62C 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 802CE6F0 002CB630 80 01 00 14 */ lwz r0, 0x14(r1)
diff --git a/include/JSystem/JKernel/JKRHeap/asm/func_802CE7DC.s b/include/JSystem/JKernel/JKRHeap/asm/func_802CE7DC.s
index db15ed3a64..7aa4377b04 100644
--- a/include/JSystem/JKernel/JKRHeap/asm/func_802CE7DC.s
+++ b/include/JSystem/JKernel/JKRHeap/asm/func_802CE7DC.s
@@ -5,10 +5,10 @@
/* 802CE7EC 002CB72C 48 09 39 F1 */ bl _savegpr_29
/* 802CE7F0 002CB730 7C 7D 1B 78 */ mr r29, r3
/* 802CE7F4 002CB734 7C 9E 23 78 */ mr r30, r4
-/* 802CE7F8 002CB738 4B FF FF 61 */ bl getMaxFreeBlock__7JKRHeapFv
+/* 802CE7F8 002CB738 4B FF FF 61 */ bl getMaxFreeBlock__7JKRHeapCFv
/* 802CE7FC 002CB73C 7C 7F 1B 78 */ mr r31, r3
/* 802CE800 002CB740 7F A3 EB 78 */ mr r3, r29
-/* 802CE804 002CB744 4B FF FF 29 */ bl getFreeSize__7JKRHeapFv
+/* 802CE804 002CB744 4B FF FF 29 */ bl getFreeSize__7JKRHeapCFv
/* 802CE808 002CB748 38 9E FF FF */ addi r4, r30, -1
/* 802CE80C 002CB74C 57 E0 07 3E */ clrlwi r0, r31, 0x1c
/* 802CE810 002CB750 7C 00 F0 50 */ subf r0, r0, r30
diff --git a/include/JSystem/JKernel/JKRSolidHeap/JKRSolidHeap.h b/include/JSystem/JKernel/JKRSolidHeap/JKRSolidHeap.h
index d2650dd780..671becc552 100644
--- a/include/JSystem/JKernel/JKRSolidHeap/JKRSolidHeap.h
+++ b/include/JSystem/JKernel/JKRSolidHeap/JKRSolidHeap.h
@@ -5,43 +5,56 @@
#include "dolphin/types.h"
class JKRSolidHeap : public JKRHeap {
+public:
+ struct Unknown {
+ u32 field_0x0;
+ u32 field_0x4;
+ u32 field_0x8;
+ void* field_0xc;
+ Unknown* mNext;
+ };
+
protected:
JKRSolidHeap(void*, u32, JKRHeap*, bool);
virtual ~JKRSolidHeap();
- void adjustSize(void);
- void allocFromHead(u32, int);
- void allocFromTail(u32, int);
+ s32 adjustSize(void);
+ void* allocFromHead(u32, int);
+ void* allocFromTail(u32, int);
+
+ s32 getUsedSize() const { return mSize - getTotalFreeSize(); }
public:
- /* vt[04] */ virtual u32 getHeapType(void); /* override */
- /* vt[05] */ virtual bool check(void); /* override */
-
- /* vt[07] */ virtual bool dump(void); /* override */
- /* vt[08] */ virtual void do_destroy(void); /* override */
- /* vt[09] */ virtual void* do_alloc(u32, int); /* override */
- /* vt[10] */ virtual void do_free(void*); /* override */
- /* vt[11] */ virtual void do_freeAll(void); /* override */
- /* vt[12] */ virtual void do_freeTail(void); /* override */
- /* vt[13] */ virtual void do_fillFreeArea(void); /* override */
- /* vt[14] */ virtual s32 do_resize(void*, u32); /* override */
- /* vt[15] */ virtual s32 do_getSize(void*); /* override */
- /* vt[16] */ virtual s32 do_getFreeSize(void); /* override */
- /* vt[17] */ virtual void* do_getMaxFreeBlock(void); /* override */
- /* vt[18] */ virtual s32 do_getTotalFreeSize(void); /* override */
+ /* vt[04] */ virtual u32 getHeapType(void) const; /* override */
+ /* vt[05] */ virtual bool check(void); /* override */
+
+ /* vt[07] */ virtual bool dump(void); /* override */
+ /* vt[08] */ virtual void do_destroy(void); /* override */
+ /* vt[09] */ virtual void* do_alloc(u32, int); /* override */
+ /* vt[10] */ virtual void do_free(void*); /* override */
+ /* vt[11] */ virtual void do_freeAll(void); /* override */
+ /* vt[12] */ virtual void do_freeTail(void); /* override */
+ /* vt[13] */ virtual void do_fillFreeArea(void); /* override */
+ /* vt[14] */ virtual s32 do_resize(void*, u32); /* override */
+ /* vt[15] */ virtual s32 do_getSize(void*) const; /* override */
+ /* vt[16] */ virtual s32 do_getFreeSize(void) const; /* override */
+ /* vt[17] */ virtual void* do_getMaxFreeBlock(void) const; /* override */
+ /* vt[18] */ virtual s32 do_getTotalFreeSize(void) const; /* override */
/* vt[21] */ virtual void state_register(JKRHeap::TState*, u32) const; /* override */
/* vt[22] */ virtual bool state_compare(JKRHeap::TState const&,
JKRHeap::TState const&) const; /* override */
private:
- u32 mFreeSize;
- void* mSolidStart;
- void* mSolidEnd;
- u32 field_0x78;
+ /* 0x00 */ // vtable
+ /* 0x04 */ // JKRHeap
+ /* 0x6C */ u32 mFreeSize;
+ /* 0x70 */ u8* mSolidHead;
+ /* 0x74 */ u8* mSolidTail;
+ /* 0x78 */ Unknown* field_0x78;
public:
- static void create(u32, JKRHeap*, bool);
+ static JKRSolidHeap* create(u32, JKRHeap*, bool);
};
#endif
diff --git a/include/JSystem/JKernel/JKRSolidHeap/asm/func_802D0A24.s b/include/JSystem/JKernel/JKRSolidHeap/asm/func_802D0A24.s
deleted file mode 100644
index f18ffe9441..0000000000
--- a/include/JSystem/JKernel/JKRSolidHeap/asm/func_802D0A24.s
+++ /dev/null
@@ -1,51 +0,0 @@
-/* create__12JKRSolidHeapFUlP7JKRHeapb __ct__12JKRSolidHeapFPvUlP7JKRHeapb::create(unsigned long, JKRHeap *, bool) */
-/* JKRSolidHeap_NS_create */
-/* 802D0A24 002CD964 94 21 FF E0 */ stwu r1, -0x20(r1)
-/* 802D0A28 002CD968 7C 08 02 A6 */ mflr r0
-/* 802D0A2C 002CD96C 90 01 00 24 */ stw r0, 0x24(r1)
-/* 802D0A30 002CD970 39 61 00 20 */ addi r11, r1, 0x20
-/* 802D0A34 002CD974 48 09 17 A9 */ bl _savegpr_29
-/* 802D0A38 002CD978 7C 9D 23 79 */ or. r29, r4, r4
-/* 802D0A3C 002CD97C 7C BE 2B 78 */ mr r30, r5
-/* 802D0A40 002CD980 40 82 00 08 */ bne lbl_802D0A48
-/* 802D0A44 002CD984 83 AD 8D F8 */ lwz r29, lbl_80451378-_SDA_BASE_(r13)
-lbl_802D0A48:
-/* 802D0A48 002CD988 3C 03 00 01 */ addis r0, r3, 1
-/* 802D0A4C 002CD98C 28 00 FF FF */ cmplwi r0, 0xffff
-/* 802D0A50 002CD990 40 82 00 10 */ bne lbl_802D0A60
-/* 802D0A54 002CD994 7F A3 EB 78 */ mr r3, r29
-/* 802D0A58 002CD998 38 80 00 10 */ li r4, 0x10
-/* 802D0A5C 002CD99C 4B FF DD 81 */ bl getMaxAllocatableSize__7JKRHeapFi
-lbl_802D0A60:
-/* 802D0A60 002CD9A0 54 7F 00 36 */ rlwinm r31, r3, 0, 0, 0x1b
-/* 802D0A64 002CD9A4 28 1F 00 80 */ cmplwi r31, 0x80
-/* 802D0A68 002CD9A8 40 80 00 0C */ bge lbl_802D0A74
-/* 802D0A6C 002CD9AC 38 60 00 00 */ li r3, 0
-/* 802D0A70 002CD9B0 48 00 00 48 */ b lbl_802D0AB8
-lbl_802D0A74:
-/* 802D0A74 002CD9B4 7F E3 FB 78 */ mr r3, r31
-/* 802D0A78 002CD9B8 38 80 00 10 */ li r4, 0x10
-/* 802D0A7C 002CD9BC 7F A5 EB 78 */ mr r5, r29
-/* 802D0A80 002CD9C0 4B FF D9 F5 */ bl alloc__7JKRHeapFUliP7JKRHeap
-/* 802D0A84 002CD9C4 7C 60 1B 78 */ mr r0, r3
-/* 802D0A88 002CD9C8 7C 05 03 79 */ or. r5, r0, r0
-/* 802D0A8C 002CD9CC 38 85 00 80 */ addi r4, r5, 0x80
-/* 802D0A90 002CD9D0 40 82 00 0C */ bne lbl_802D0A9C
-/* 802D0A94 002CD9D4 38 60 00 00 */ li r3, 0
-/* 802D0A98 002CD9D8 48 00 00 20 */ b lbl_802D0AB8
-lbl_802D0A9C:
-/* 802D0A9C 002CD9DC 41 82 00 18 */ beq lbl_802D0AB4
-/* 802D0AA0 002CD9E0 38 BF FF 80 */ addi r5, r31, -128
-/* 802D0AA4 002CD9E4 7F A6 EB 78 */ mr r6, r29
-/* 802D0AA8 002CD9E8 7F C7 F3 78 */ mr r7, r30
-/* 802D0AAC 002CD9EC 48 00 00 85 */ bl __ct__12JKRSolidHeapFPvUlP7JKRHeapb
-/* 802D0AB0 002CD9F0 7C 60 1B 78 */ mr r0, r3
-lbl_802D0AB4:
-/* 802D0AB4 002CD9F4 7C 03 03 78 */ mr r3, r0
-lbl_802D0AB8:
-/* 802D0AB8 002CD9F8 39 61 00 20 */ addi r11, r1, 0x20
-/* 802D0ABC 002CD9FC 48 09 17 6D */ bl _restgpr_29
-/* 802D0AC0 002CDA00 80 01 00 24 */ lwz r0, 0x24(r1)
-/* 802D0AC4 002CDA04 7C 08 03 A6 */ mtlr r0
-/* 802D0AC8 002CDA08 38 21 00 20 */ addi r1, r1, 0x20
-/* 802D0ACC 002CDA0C 4E 80 00 20 */ blr
diff --git a/include/JSystem/JKernel/JKRSolidHeap/asm/func_802D0AD0.s b/include/JSystem/JKernel/JKRSolidHeap/asm/func_802D0AD0.s
deleted file mode 100644
index 931ff26c62..0000000000
--- a/include/JSystem/JKernel/JKRSolidHeap/asm/func_802D0AD0.s
+++ /dev/null
@@ -1,27 +0,0 @@
-/* do_destroy__12JKRSolidHeapFv __ct__12JKRSolidHeapFPvUlP7JKRHeapb::do_destroy(void) */
-/* missing reference */
-/* 802D0AD0 002CDA10 94 21 FF F0 */ stwu r1, -0x10(r1)
-/* 802D0AD4 002CDA14 7C 08 02 A6 */ mflr r0
-/* 802D0AD8 002CDA18 90 01 00 14 */ stw r0, 0x14(r1)
-/* 802D0ADC 002CDA1C 93 E1 00 0C */ stw r31, 0xc(r1)
-/* 802D0AE0 002CDA20 93 C1 00 08 */ stw r30, 8(r1)
-/* 802D0AE4 002CDA24 7C 7E 1B 78 */ mr r30, r3
-/* 802D0AE8 002CDA28 80 83 00 50 */ lwz r4, 0x50(r3)
-/* 802D0AEC 002CDA2C 83 E4 00 0C */ lwz r31, 0xc(r4)
-/* 802D0AF0 002CDA30 28 1F 00 00 */ cmplwi r31, 0
-/* 802D0AF4 002CDA34 41 82 00 24 */ beq lbl_802D0B18
-/* 802D0AF8 002CDA38 38 80 FF FF */ li r4, -1
-/* 802D0AFC 002CDA3C 81 83 00 00 */ lwz r12, 0(r3)
-/* 802D0B00 002CDA40 81 8C 00 08 */ lwz r12, 8(r12)
-/* 802D0B04 002CDA44 7D 89 03 A6 */ mtctr r12
-/* 802D0B08 002CDA48 4E 80 04 21 */ bctrl
-/* 802D0B0C 002CDA4C 7F C3 F3 78 */ mr r3, r30
-/* 802D0B10 002CDA50 7F E4 FB 78 */ mr r4, r31
-/* 802D0B14 002CDA54 4B FF D9 ED */ bl free__7JKRHeapFPvP7JKRHeap
-lbl_802D0B18:
-/* 802D0B18 002CDA58 83 E1 00 0C */ lwz r31, 0xc(r1)
-/* 802D0B1C 002CDA5C 83 C1 00 08 */ lwz r30, 8(r1)
-/* 802D0B20 002CDA60 80 01 00 14 */ lwz r0, 0x14(r1)
-/* 802D0B24 002CDA64 7C 08 03 A6 */ mtlr r0
-/* 802D0B28 002CDA68 38 21 00 10 */ addi r1, r1, 0x10
-/* 802D0B2C 002CDA6C 4E 80 00 20 */ blr
diff --git a/include/JSystem/JKernel/JKRSolidHeap/asm/func_802D0B30.s b/include/JSystem/JKernel/JKRSolidHeap/asm/func_802D0B30.s
deleted file mode 100644
index 3c590f5055..0000000000
--- a/include/JSystem/JKernel/JKRSolidHeap/asm/func_802D0B30.s
+++ /dev/null
@@ -1,25 +0,0 @@
-/* __ct__12JKRSolidHeapFPvUlP7JKRHeapb __ct__12JKRSolidHeapFPvUlP7JKRHeapb::__ct(void *, unsigned long, JKRHeap *, bool) */
-/* JKRSolidHeap */
-/* 802D0B30 002CDA70 94 21 FF F0 */ stwu r1, -0x10(r1)
-/* 802D0B34 002CDA74 7C 08 02 A6 */ mflr r0
-/* 802D0B38 002CDA78 90 01 00 14 */ stw r0, 0x14(r1)
-/* 802D0B3C 002CDA7C 93 E1 00 0C */ stw r31, 0xc(r1)
-/* 802D0B40 002CDA80 7C 7F 1B 78 */ mr r31, r3
-/* 802D0B44 002CDA84 4B FF D5 F5 */ bl __ct__7JKRHeapFPvUlP7JKRHeapb
-/* 802D0B48 002CDA88 3C 60 80 3D */ lis r3, lbl_803CC030@ha
-/* 802D0B4C 002CDA8C 38 03 C0 30 */ addi r0, r3, lbl_803CC030@l
-/* 802D0B50 002CDA90 90 1F 00 00 */ stw r0, 0(r31)
-/* 802D0B54 002CDA94 80 1F 00 38 */ lwz r0, 0x38(r31)
-/* 802D0B58 002CDA98 90 1F 00 6C */ stw r0, 0x6c(r31)
-/* 802D0B5C 002CDA9C 80 1F 00 30 */ lwz r0, 0x30(r31)
-/* 802D0B60 002CDAA0 90 1F 00 70 */ stw r0, 0x70(r31)
-/* 802D0B64 002CDAA4 80 1F 00 34 */ lwz r0, 0x34(r31)
-/* 802D0B68 002CDAA8 90 1F 00 74 */ stw r0, 0x74(r31)
-/* 802D0B6C 002CDAAC 38 00 00 00 */ li r0, 0
-/* 802D0B70 002CDAB0 90 1F 00 78 */ stw r0, 0x78(r31)
-/* 802D0B74 002CDAB4 7F E3 FB 78 */ mr r3, r31
-/* 802D0B78 002CDAB8 83 E1 00 0C */ lwz r31, 0xc(r1)
-/* 802D0B7C 002CDABC 80 01 00 14 */ lwz r0, 0x14(r1)
-/* 802D0B80 002CDAC0 7C 08 03 A6 */ mtlr r0
-/* 802D0B84 002CDAC4 38 21 00 10 */ addi r1, r1, 0x10
-/* 802D0B88 002CDAC8 4E 80 00 20 */ blr
diff --git a/include/JSystem/JKernel/JKRSolidHeap/asm/func_802D0B8C.s b/include/JSystem/JKernel/JKRSolidHeap/asm/func_802D0B8C.s
deleted file mode 100644
index 1582bc1f27..0000000000
--- a/include/JSystem/JKernel/JKRSolidHeap/asm/func_802D0B8C.s
+++ /dev/null
@@ -1,29 +0,0 @@
-/* __dt__12JKRSolidHeapFv __ct__12JKRSolidHeapFPvUlP7JKRHeapb::__dt(void) */
-/* missing reference */
-/* 802D0B8C 002CDACC 94 21 FF F0 */ stwu r1, -0x10(r1)
-/* 802D0B90 002CDAD0 7C 08 02 A6 */ mflr r0
-/* 802D0B94 002CDAD4 90 01 00 14 */ stw r0, 0x14(r1)
-/* 802D0B98 002CDAD8 93 E1 00 0C */ stw r31, 0xc(r1)
-/* 802D0B9C 002CDADC 93 C1 00 08 */ stw r30, 8(r1)
-/* 802D0BA0 002CDAE0 7C 7E 1B 79 */ or. r30, r3, r3
-/* 802D0BA4 002CDAE4 7C 9F 23 78 */ mr r31, r4
-/* 802D0BA8 002CDAE8 41 82 00 30 */ beq lbl_802D0BD8
-/* 802D0BAC 002CDAEC 3C 80 80 3D */ lis r4, lbl_803CC030@ha
-/* 802D0BB0 002CDAF0 38 04 C0 30 */ addi r0, r4, lbl_803CC030@l
-/* 802D0BB4 002CDAF4 90 1E 00 00 */ stw r0, 0(r30)
-/* 802D0BB8 002CDAF8 4B FF DF 09 */ bl dispose__7JKRHeapFv
-/* 802D0BBC 002CDAFC 7F C3 F3 78 */ mr r3, r30
-/* 802D0BC0 002CDB00 38 80 00 00 */ li r4, 0
-/* 802D0BC4 002CDB04 4B FF D6 A1 */ bl __dt__7JKRHeapFv
-/* 802D0BC8 002CDB08 7F E0 07 35 */ extsh. r0, r31
-/* 802D0BCC 002CDB0C 40 81 00 0C */ ble lbl_802D0BD8
-/* 802D0BD0 002CDB10 7F C3 F3 78 */ mr r3, r30
-/* 802D0BD4 002CDB14 4B FF E1 69 */ bl __dl__FPv
-lbl_802D0BD8:
-/* 802D0BD8 002CDB18 7F C3 F3 78 */ mr r3, r30
-/* 802D0BDC 002CDB1C 83 E1 00 0C */ lwz r31, 0xc(r1)
-/* 802D0BE0 002CDB20 83 C1 00 08 */ lwz r30, 8(r1)
-/* 802D0BE4 002CDB24 80 01 00 14 */ lwz r0, 0x14(r1)
-/* 802D0BE8 002CDB28 7C 08 03 A6 */ mtlr r0
-/* 802D0BEC 002CDB2C 38 21 00 10 */ addi r1, r1, 0x10
-/* 802D0BF0 002CDB30 4E 80 00 20 */ blr
diff --git a/include/JSystem/JKernel/JKRSolidHeap/asm/func_802D0CB0.s b/include/JSystem/JKernel/JKRSolidHeap/asm/func_802D0CB0.s
deleted file mode 100644
index 59024a0ba1..0000000000
--- a/include/JSystem/JKernel/JKRSolidHeap/asm/func_802D0CB0.s
+++ /dev/null
@@ -1,49 +0,0 @@
-/* do_alloc__12JKRSolidHeapFUli __ct__12JKRSolidHeapFPvUlP7JKRHeapb::do_alloc(unsigned long, int) */
-/* missing reference */
-/* 802D0CB0 002CDBF0 94 21 FF E0 */ stwu r1, -0x20(r1)
-/* 802D0CB4 002CDBF4 7C 08 02 A6 */ mflr r0
-/* 802D0CB8 002CDBF8 90 01 00 24 */ stw r0, 0x24(r1)
-/* 802D0CBC 002CDBFC 39 61 00 20 */ addi r11, r1, 0x20
-/* 802D0CC0 002CDC00 48 09 15 1D */ bl _savegpr_29
-/* 802D0CC4 002CDC04 7C 7D 1B 78 */ mr r29, r3
-/* 802D0CC8 002CDC08 7C 9E 23 78 */ mr r30, r4
-/* 802D0CCC 002CDC0C 7C BF 2B 78 */ mr r31, r5
-/* 802D0CD0 002CDC10 38 7D 00 18 */ addi r3, r29, 0x18
-/* 802D0CD4 002CDC14 48 06 E3 6D */ bl OSLockMutex
-/* 802D0CD8 002CDC18 28 1E 00 04 */ cmplwi r30, 4
-/* 802D0CDC 002CDC1C 40 80 00 08 */ bge lbl_802D0CE4
-/* 802D0CE0 002CDC20 3B C0 00 04 */ li r30, 4
-lbl_802D0CE4:
-/* 802D0CE4 002CDC24 2C 1F 00 00 */ cmpwi r31, 0
-/* 802D0CE8 002CDC28 41 80 00 28 */ blt lbl_802D0D10
-/* 802D0CEC 002CDC2C 7F A3 EB 78 */ mr r3, r29
-/* 802D0CF0 002CDC30 7F C4 F3 78 */ mr r4, r30
-/* 802D0CF4 002CDC34 2C 1F 00 04 */ cmpwi r31, 4
-/* 802D0CF8 002CDC38 38 A0 00 04 */ li r5, 4
-/* 802D0CFC 002CDC3C 41 80 00 08 */ blt lbl_802D0D04
-/* 802D0D00 002CDC40 7F E5 FB 78 */ mr r5, r31
-lbl_802D0D04:
-/* 802D0D04 002CDC44 48 00 00 55 */ bl allocFromHead__12JKRSolidHeapFUli
-/* 802D0D08 002CDC48 7C 7F 1B 78 */ mr r31, r3
-/* 802D0D0C 002CDC4C 48 00 00 28 */ b lbl_802D0D34
-lbl_802D0D10:
-/* 802D0D10 002CDC50 7C 1F 00 D0 */ neg r0, r31
-/* 802D0D14 002CDC54 2C 00 00 04 */ cmpwi r0, 4
-/* 802D0D18 002CDC58 38 A0 00 04 */ li r5, 4
-/* 802D0D1C 002CDC5C 41 80 00 08 */ blt lbl_802D0D24
-/* 802D0D20 002CDC60 7C 05 03 78 */ mr r5, r0
-lbl_802D0D24:
-/* 802D0D24 002CDC64 7F A3 EB 78 */ mr r3, r29
-/* 802D0D28 002CDC68 7F C4 F3 78 */ mr r4, r30
-/* 802D0D2C 002CDC6C 48 00 00 F5 */ bl allocFromTail__12JKRSolidHeapFUli
-/* 802D0D30 002CDC70 7C 7F 1B 78 */ mr r31, r3
-lbl_802D0D34:
-/* 802D0D34 002CDC74 38 7D 00 18 */ addi r3, r29, 0x18
-/* 802D0D38 002CDC78 48 06 E3 E5 */ bl OSUnlockMutex
-/* 802D0D3C 002CDC7C 7F E3 FB 78 */ mr r3, r31
-/* 802D0D40 002CDC80 39 61 00 20 */ addi r11, r1, 0x20
-/* 802D0D44 002CDC84 48 09 14 E5 */ bl _restgpr_29
-/* 802D0D48 002CDC88 80 01 00 24 */ lwz r0, 0x24(r1)
-/* 802D0D4C 002CDC8C 7C 08 03 A6 */ mtlr r0
-/* 802D0D50 002CDC90 38 21 00 20 */ addi r1, r1, 0x20
-/* 802D0D54 002CDC94 4E 80 00 20 */ blr
diff --git a/include/JSystem/JKernel/JKRSolidHeap/asm/func_802D0EE4.s b/include/JSystem/JKernel/JKRSolidHeap/asm/func_802D0EE4.s
deleted file mode 100644
index 166f327a5f..0000000000
--- a/include/JSystem/JKernel/JKRSolidHeap/asm/func_802D0EE4.s
+++ /dev/null
@@ -1,14 +0,0 @@
-/* do_free__12JKRSolidHeapFPv __ct__12JKRSolidHeapFPvUlP7JKRHeapb::do_free(void *) */
-/* missing reference */
-/* 802D0EE4 002CDE24 94 21 FF F0 */ stwu r1, -0x10(r1)
-/* 802D0EE8 002CDE28 7C 08 02 A6 */ mflr r0
-/* 802D0EEC 002CDE2C 90 01 00 14 */ stw r0, 0x14(r1)
-/* 802D0EF0 002CDE30 3C 60 80 3A */ lis r3, lbl_8039CE50@ha
-/* 802D0EF4 002CDE34 38 63 CE 50 */ addi r3, r3, lbl_8039CE50@l
-/* 802D0EF8 002CDE38 38 63 00 62 */ addi r3, r3, 0x62
-/* 802D0EFC 002CDE3C 4C C6 31 82 */ crclr 6
-/* 802D0F00 002CDE40 48 01 77 7D */ bl JUTWarningConsole_f
-/* 802D0F04 002CDE44 80 01 00 14 */ lwz r0, 0x14(r1)
-/* 802D0F08 002CDE48 7C 08 03 A6 */ mtlr r0
-/* 802D0F0C 002CDE4C 38 21 00 10 */ addi r1, r1, 0x10
-/* 802D0F10 002CDE50 4E 80 00 20 */ blr
diff --git a/include/JSystem/JKernel/JKRSolidHeap/asm/func_802D0F14.s b/include/JSystem/JKernel/JKRSolidHeap/asm/func_802D0F14.s
deleted file mode 100644
index 84fb558616..0000000000
--- a/include/JSystem/JKernel/JKRSolidHeap/asm/func_802D0F14.s
+++ /dev/null
@@ -1,26 +0,0 @@
-/* do_freeAll__12JKRSolidHeapFv __ct__12JKRSolidHeapFPvUlP7JKRHeapb::do_freeAll(void) */
-/* missing reference */
-/* 802D0F14 002CDE54 94 21 FF F0 */ stwu r1, -0x10(r1)
-/* 802D0F18 002CDE58 7C 08 02 A6 */ mflr r0
-/* 802D0F1C 002CDE5C 90 01 00 14 */ stw r0, 0x14(r1)
-/* 802D0F20 002CDE60 93 E1 00 0C */ stw r31, 0xc(r1)
-/* 802D0F24 002CDE64 7C 7F 1B 78 */ mr r31, r3
-/* 802D0F28 002CDE68 38 7F 00 18 */ addi r3, r31, 0x18
-/* 802D0F2C 002CDE6C 48 06 E1 15 */ bl OSLockMutex
-/* 802D0F30 002CDE70 7F E3 FB 78 */ mr r3, r31
-/* 802D0F34 002CDE74 4B FF D6 41 */ bl callAllDisposer__7JKRHeapFv
-/* 802D0F38 002CDE78 80 1F 00 38 */ lwz r0, 0x38(r31)
-/* 802D0F3C 002CDE7C 90 1F 00 6C */ stw r0, 0x6c(r31)
-/* 802D0F40 002CDE80 80 1F 00 30 */ lwz r0, 0x30(r31)
-/* 802D0F44 002CDE84 90 1F 00 70 */ stw r0, 0x70(r31)
-/* 802D0F48 002CDE88 80 1F 00 34 */ lwz r0, 0x34(r31)
-/* 802D0F4C 002CDE8C 90 1F 00 74 */ stw r0, 0x74(r31)
-/* 802D0F50 002CDE90 38 00 00 00 */ li r0, 0
-/* 802D0F54 002CDE94 90 1F 00 78 */ stw r0, 0x78(r31)
-/* 802D0F58 002CDE98 38 7F 00 18 */ addi r3, r31, 0x18
-/* 802D0F5C 002CDE9C 48 06 E1 C1 */ bl OSUnlockMutex
-/* 802D0F60 002CDEA0 83 E1 00 0C */ lwz r31, 0xc(r1)
-/* 802D0F64 002CDEA4 80 01 00 14 */ lwz r0, 0x14(r1)
-/* 802D0F68 002CDEA8 7C 08 03 A6 */ mtlr r0
-/* 802D0F6C 002CDEAC 38 21 00 10 */ addi r1, r1, 0x10
-/* 802D0F70 002CDEB0 4E 80 00 20 */ blr
diff --git a/include/JSystem/JKernel/JKRSolidHeap/asm/func_802D0F74.s b/include/JSystem/JKernel/JKRSolidHeap/asm/func_802D0F74.s
deleted file mode 100644
index 2fa8e99e1d..0000000000
--- a/include/JSystem/JKernel/JKRSolidHeap/asm/func_802D0F74.s
+++ /dev/null
@@ -1,40 +0,0 @@
-/* do_freeTail__12JKRSolidHeapFv __ct__12JKRSolidHeapFPvUlP7JKRHeapb::do_freeTail(void) */
-/* missing reference */
-/* 802D0F74 002CDEB4 94 21 FF F0 */ stwu r1, -0x10(r1)
-/* 802D0F78 002CDEB8 7C 08 02 A6 */ mflr r0
-/* 802D0F7C 002CDEBC 90 01 00 14 */ stw r0, 0x14(r1)
-/* 802D0F80 002CDEC0 93 E1 00 0C */ stw r31, 0xc(r1)
-/* 802D0F84 002CDEC4 7C 7F 1B 78 */ mr r31, r3
-/* 802D0F88 002CDEC8 38 7F 00 18 */ addi r3, r31, 0x18
-/* 802D0F8C 002CDECC 48 06 E0 B5 */ bl OSLockMutex
-/* 802D0F90 002CDED0 80 9F 00 74 */ lwz r4, 0x74(r31)
-/* 802D0F94 002CDED4 80 BF 00 34 */ lwz r5, 0x34(r31)
-/* 802D0F98 002CDED8 7C 04 28 40 */ cmplw r4, r5
-/* 802D0F9C 002CDEDC 41 82 00 0C */ beq lbl_802D0FA8
-/* 802D0FA0 002CDEE0 7F E3 FB 78 */ mr r3, r31
-/* 802D0FA4 002CDEE4 4B FF DA FD */ bl dispose__7JKRHeapFPvPv
-lbl_802D0FA8:
-/* 802D0FA8 002CDEE8 80 9F 00 6C */ lwz r4, 0x6c(r31)
-/* 802D0FAC 002CDEEC 80 7F 00 74 */ lwz r3, 0x74(r31)
-/* 802D0FB0 002CDEF0 80 1F 00 34 */ lwz r0, 0x34(r31)
-/* 802D0FB4 002CDEF4 7C 03 00 50 */ subf r0, r3, r0
-/* 802D0FB8 002CDEF8 7C 04 02 14 */ add r0, r4, r0
-/* 802D0FBC 002CDEFC 90 1F 00 6C */ stw r0, 0x6c(r31)
-/* 802D0FC0 002CDF00 80 1F 00 34 */ lwz r0, 0x34(r31)
-/* 802D0FC4 002CDF04 90 1F 00 74 */ stw r0, 0x74(r31)
-/* 802D0FC8 002CDF08 80 7F 00 78 */ lwz r3, 0x78(r31)
-/* 802D0FCC 002CDF0C 48 00 00 10 */ b lbl_802D0FDC
-lbl_802D0FD0:
-/* 802D0FD0 002CDF10 80 1F 00 34 */ lwz r0, 0x34(r31)
-/* 802D0FD4 002CDF14 90 03 00 0C */ stw r0, 0xc(r3)
-/* 802D0FD8 002CDF18 80 63 00 10 */ lwz r3, 0x10(r3)
-lbl_802D0FDC:
-/* 802D0FDC 002CDF1C 28 03 00 00 */ cmplwi r3, 0
-/* 802D0FE0 002CDF20 40 82 FF F0 */ bne lbl_802D0FD0
-/* 802D0FE4 002CDF24 38 7F 00 18 */ addi r3, r31, 0x18
-/* 802D0FE8 002CDF28 48 06 E1 35 */ bl OSUnlockMutex
-/* 802D0FEC 002CDF2C 83 E1 00 0C */ lwz r31, 0xc(r1)
-/* 802D0FF0 002CDF30 80 01 00 14 */ lwz r0, 0x14(r1)
-/* 802D0FF4 002CDF34 7C 08 03 A6 */ mtlr r0
-/* 802D0FF8 002CDF38 38 21 00 10 */ addi r1, r1, 0x10
-/* 802D0FFC 002CDF3C 4E 80 00 20 */ blr
diff --git a/include/JSystem/JKernel/JKRSolidHeap/asm/func_802D1000.s b/include/JSystem/JKernel/JKRSolidHeap/asm/func_802D1000.s
deleted file mode 100644
index b96236a1e2..0000000000
--- a/include/JSystem/JKernel/JKRSolidHeap/asm/func_802D1000.s
+++ /dev/null
@@ -1,3 +0,0 @@
-/* do_fillFreeArea__12JKRSolidHeapFv __ct__12JKRSolidHeapFPvUlP7JKRHeapb::do_fillFreeArea(void) */
-/* missing reference */
-/* 802D1000 002CDF40 4E 80 00 20 */ blr
diff --git a/include/JSystem/JKernel/JKRSolidHeap/asm/func_802D1004.s b/include/JSystem/JKernel/JKRSolidHeap/asm/func_802D1004.s
deleted file mode 100644
index 148ba65bba..0000000000
--- a/include/JSystem/JKernel/JKRSolidHeap/asm/func_802D1004.s
+++ /dev/null
@@ -1,15 +0,0 @@
-/* do_resize__12JKRSolidHeapFPvUl __ct__12JKRSolidHeapFPvUlP7JKRHeapb::do_resize(void *, unsigned long) */
-/* missing reference */
-/* 802D1004 002CDF44 94 21 FF F0 */ stwu r1, -0x10(r1)
-/* 802D1008 002CDF48 7C 08 02 A6 */ mflr r0
-/* 802D100C 002CDF4C 90 01 00 14 */ stw r0, 0x14(r1)
-/* 802D1010 002CDF50 3C 60 80 3A */ lis r3, lbl_8039CE50@ha
-/* 802D1014 002CDF54 38 63 CE 50 */ addi r3, r3, lbl_8039CE50@l
-/* 802D1018 002CDF58 38 63 00 89 */ addi r3, r3, 0x89
-/* 802D101C 002CDF5C 4C C6 31 82 */ crclr 6
-/* 802D1020 002CDF60 48 01 76 5D */ bl JUTWarningConsole_f
-/* 802D1024 002CDF64 38 60 FF FF */ li r3, -1
-/* 802D1028 002CDF68 80 01 00 14 */ lwz r0, 0x14(r1)
-/* 802D102C 002CDF6C 7C 08 03 A6 */ mtlr r0
-/* 802D1030 002CDF70 38 21 00 10 */ addi r1, r1, 0x10
-/* 802D1034 002CDF74 4E 80 00 20 */ blr
diff --git a/include/JSystem/JKernel/JKRSolidHeap/asm/func_802D1038.s b/include/JSystem/JKernel/JKRSolidHeap/asm/func_802D1038.s
deleted file mode 100644
index 0e7f75f848..0000000000
--- a/include/JSystem/JKernel/JKRSolidHeap/asm/func_802D1038.s
+++ /dev/null
@@ -1,15 +0,0 @@
-/* do_getSize__12JKRSolidHeapFPv __ct__12JKRSolidHeapFPvUlP7JKRHeapb::do_getSize(void *) */
-/* missing reference */
-/* 802D1038 002CDF78 94 21 FF F0 */ stwu r1, -0x10(r1)
-/* 802D103C 002CDF7C 7C 08 02 A6 */ mflr r0
-/* 802D1040 002CDF80 90 01 00 14 */ stw r0, 0x14(r1)
-/* 802D1044 002CDF84 3C 60 80 3A */ lis r3, lbl_8039CE50@ha
-/* 802D1048 002CDF88 38 63 CE 50 */ addi r3, r3, lbl_8039CE50@l
-/* 802D104C 002CDF8C 38 63 00 B8 */ addi r3, r3, 0xb8
-/* 802D1050 002CDF90 4C C6 31 82 */ crclr 6
-/* 802D1054 002CDF94 48 01 76 29 */ bl JUTWarningConsole_f
-/* 802D1058 002CDF98 38 60 FF FF */ li r3, -1
-/* 802D105C 002CDF9C 80 01 00 14 */ lwz r0, 0x14(r1)
-/* 802D1060 002CDFA0 7C 08 03 A6 */ mtlr r0
-/* 802D1064 002CDFA4 38 21 00 10 */ addi r1, r1, 0x10
-/* 802D1068 002CDFA8 4E 80 00 20 */ blr
diff --git a/include/JSystem/JKernel/JKRSolidHeap/asm/func_802D106C.s b/include/JSystem/JKernel/JKRSolidHeap/asm/func_802D106C.s
deleted file mode 100644
index 07d4f7d1ff..0000000000
--- a/include/JSystem/JKernel/JKRSolidHeap/asm/func_802D106C.s
+++ /dev/null
@@ -1,39 +0,0 @@
-/* check__12JKRSolidHeapFv __ct__12JKRSolidHeapFPvUlP7JKRHeapb::check(void) */
-/* missing reference */
-/* 802D106C 002CDFAC 94 21 FF F0 */ stwu r1, -0x10(r1)
-/* 802D1070 002CDFB0 7C 08 02 A6 */ mflr r0
-/* 802D1074 002CDFB4 90 01 00 14 */ stw r0, 0x14(r1)
-/* 802D1078 002CDFB8 93 E1 00 0C */ stw r31, 0xc(r1)
-/* 802D107C 002CDFBC 93 C1 00 08 */ stw r30, 8(r1)
-/* 802D1080 002CDFC0 7C 7E 1B 78 */ mr r30, r3
-/* 802D1084 002CDFC4 38 7E 00 18 */ addi r3, r30, 0x18
-/* 802D1088 002CDFC8 48 06 DF B9 */ bl OSLockMutex
-/* 802D108C 002CDFCC 3B E0 00 01 */ li r31, 1
-/* 802D1090 002CDFD0 80 DE 00 6C */ lwz r6, 0x6c(r30)
-/* 802D1094 002CDFD4 80 7E 00 30 */ lwz r3, 0x30(r30)
-/* 802D1098 002CDFD8 80 1E 00 70 */ lwz r0, 0x70(r30)
-/* 802D109C 002CDFDC 7C 83 00 50 */ subf r4, r3, r0
-/* 802D10A0 002CDFE0 80 7E 00 74 */ lwz r3, 0x74(r30)
-/* 802D10A4 002CDFE4 80 1E 00 34 */ lwz r0, 0x34(r30)
-/* 802D10A8 002CDFE8 7C 03 00 50 */ subf r0, r3, r0
-/* 802D10AC 002CDFEC 7C A4 02 14 */ add r5, r4, r0
-/* 802D10B0 002CDFF0 7C A6 2A 14 */ add r5, r6, r5
-/* 802D10B4 002CDFF4 80 9E 00 38 */ lwz r4, 0x38(r30)
-/* 802D10B8 002CDFF8 7C 05 20 40 */ cmplw r5, r4
-/* 802D10BC 002CDFFC 41 82 00 1C */ beq lbl_802D10D8
-/* 802D10C0 002CE000 3B E0 00 00 */ li r31, 0
-/* 802D10C4 002CE004 3C 60 80 3A */ lis r3, lbl_8039CE50@ha
-/* 802D10C8 002CE008 38 63 CE 50 */ addi r3, r3, lbl_8039CE50@l
-/* 802D10CC 002CE00C 38 63 00 E6 */ addi r3, r3, 0xe6
-/* 802D10D0 002CE010 4C C6 31 82 */ crclr 6
-/* 802D10D4 002CE014 48 01 75 A9 */ bl JUTWarningConsole_f
-lbl_802D10D8:
-/* 802D10D8 002CE018 38 7E 00 18 */ addi r3, r30, 0x18
-/* 802D10DC 002CE01C 48 06 E0 41 */ bl OSUnlockMutex
-/* 802D10E0 002CE020 7F E3 FB 78 */ mr r3, r31
-/* 802D10E4 002CE024 83 E1 00 0C */ lwz r31, 0xc(r1)
-/* 802D10E8 002CE028 83 C1 00 08 */ lwz r30, 8(r1)
-/* 802D10EC 002CE02C 80 01 00 14 */ lwz r0, 0x14(r1)
-/* 802D10F0 002CE030 7C 08 03 A6 */ mtlr r0
-/* 802D10F4 002CE034 38 21 00 10 */ addi r1, r1, 0x10
-/* 802D10F8 002CE038 4E 80 00 20 */ blr
diff --git a/include/JSystem/JKernel/JKRSolidHeap/asm/func_802D11FC.s b/include/JSystem/JKernel/JKRSolidHeap/asm/func_802D11FC.s
index 6a6fe6fa45..53a7c0e5f5 100644
--- a/include/JSystem/JKernel/JKRSolidHeap/asm/func_802D11FC.s
+++ b/include/JSystem/JKernel/JKRSolidHeap/asm/func_802D11FC.s
@@ -8,7 +8,7 @@
/* 802D1210 002CE150 7C 7E 1B 78 */ mr r30, r3
/* 802D1214 002CE154 7C 9F 23 78 */ mr r31, r4
/* 802D1218 002CE158 90 A4 00 14 */ stw r5, 0x14(r4)
-/* 802D121C 002CE15C 4B FF D5 69 */ bl getTotalFreeSize__7JKRHeapFv
+/* 802D121C 002CE15C 4B FF D5 69 */ bl getTotalFreeSize__7JKRHeapCFv
/* 802D1220 002CE160 80 1E 00 38 */ lwz r0, 0x38(r30)
/* 802D1224 002CE164 7C 03 00 50 */ subf r0, r3, r0
/* 802D1228 002CE168 90 1F 00 00 */ stw r0, 0(r31)
diff --git a/include/JSystem/JKernel/JKRSolidHeap/asm/func_802D1258.s b/include/JSystem/JKernel/JKRSolidHeap/asm/func_802D1258.s
deleted file mode 100644
index f07e024f1e..0000000000
--- a/include/JSystem/JKernel/JKRSolidHeap/asm/func_802D1258.s
+++ /dev/null
@@ -1,15 +0,0 @@
-/* state_compare__12JKRSolidHeapCFRCQ27JKRHeap6TStateRCQ27JKRHeap6TState __ct__12JKRSolidHeapFPvUlP7JKRHeapb::state_compare( const(JKRHeap::TState const &, JKRHeap::TState const &)) */
-/* missing reference */
-/* 802D1258 002CE198 38 60 00 01 */ li r3, 1
-/* 802D125C 002CE19C 80 C4 00 04 */ lwz r6, 4(r4)
-/* 802D1260 002CE1A0 80 05 00 04 */ lwz r0, 4(r5)
-/* 802D1264 002CE1A4 7C 06 00 40 */ cmplw r6, r0
-/* 802D1268 002CE1A8 41 82 00 08 */ beq lbl_802D1270
-/* 802D126C 002CE1AC 38 60 00 00 */ li r3, 0
-lbl_802D1270:
-/* 802D1270 002CE1B0 80 84 00 00 */ lwz r4, 0(r4)
-/* 802D1274 002CE1B4 80 05 00 00 */ lwz r0, 0(r5)
-/* 802D1278 002CE1B8 7C 04 00 40 */ cmplw r4, r0
-/* 802D127C 002CE1BC 4D 82 00 20 */ beqlr
-/* 802D1280 002CE1C0 38 60 00 00 */ li r3, 0
-/* 802D1284 002CE1C4 4E 80 00 20 */ blr
diff --git a/include/JSystem/JKernel/JKRSolidHeap/asm/func_802D1288.s b/include/JSystem/JKernel/JKRSolidHeap/asm/func_802D1288.s
deleted file mode 100644
index 9036a98e4e..0000000000
--- a/include/JSystem/JKernel/JKRSolidHeap/asm/func_802D1288.s
+++ /dev/null
@@ -1,5 +0,0 @@
-/* getHeapType__12JKRSolidHeapFv __ct__12JKRSolidHeapFPvUlP7JKRHeapb::getHeapType(void) */
-/* missing reference */
-/* 802D1288 002CE1C8 3C 60 53 4C */ lis r3, 0x534C4944@ha
-/* 802D128C 002CE1CC 38 63 49 44 */ addi r3, r3, 0x534C4944@l
-/* 802D1290 002CE1D0 4E 80 00 20 */ blr
diff --git a/include/JSystem/JKernel/JKRSolidHeap/asm/func_802D1294.s b/include/JSystem/JKernel/JKRSolidHeap/asm/func_802D1294.s
deleted file mode 100644
index 5237eef313..0000000000
--- a/include/JSystem/JKernel/JKRSolidHeap/asm/func_802D1294.s
+++ /dev/null
@@ -1,4 +0,0 @@
-/* do_getFreeSize__12JKRSolidHeapFv __ct__12JKRSolidHeapFPvUlP7JKRHeapb::do_getFreeSize(void) */
-/* missing reference */
-/* 802D1294 002CE1D4 80 63 00 6C */ lwz r3, 0x6c(r3)
-/* 802D1298 002CE1D8 4E 80 00 20 */ blr
diff --git a/include/JSystem/JKernel/JKRSolidHeap/asm/func_802D129C.s b/include/JSystem/JKernel/JKRSolidHeap/asm/func_802D129C.s
deleted file mode 100644
index d92e6ab6dd..0000000000
--- a/include/JSystem/JKernel/JKRSolidHeap/asm/func_802D129C.s
+++ /dev/null
@@ -1,4 +0,0 @@
-/* do_getMaxFreeBlock__12JKRSolidHeapFv __ct__12JKRSolidHeapFPvUlP7JKRHeapb::do_getMaxFreeBlock(void) */
-/* missing reference */
-/* 802D129C 002CE1DC 80 63 00 70 */ lwz r3, 0x70(r3)
-/* 802D12A0 002CE1E0 4E 80 00 20 */ blr
diff --git a/include/JSystem/JKernel/JKRSolidHeap/asm/func_802D12A4.s b/include/JSystem/JKernel/JKRSolidHeap/asm/func_802D12A4.s
deleted file mode 100644
index 0ecd304340..0000000000
--- a/include/JSystem/JKernel/JKRSolidHeap/asm/func_802D12A4.s
+++ /dev/null
@@ -1,10 +0,0 @@
-/* do_getTotalFreeSize__12JKRSolidHeapFv __ct__12JKRSolidHeapFPvUlP7JKRHeapb::do_getTotalFreeSize(void) */
-/* missing reference */
-/* 802D12A4 002CE1E4 94 21 FF F0 */ stwu r1, -0x10(r1)
-/* 802D12A8 002CE1E8 7C 08 02 A6 */ mflr r0
-/* 802D12AC 002CE1EC 90 01 00 14 */ stw r0, 0x14(r1)
-/* 802D12B0 002CE1F0 4B FF D4 7D */ bl getFreeSize__7JKRHeapFv
-/* 802D12B4 002CE1F4 80 01 00 14 */ lwz r0, 0x14(r1)
-/* 802D12B8 002CE1F8 7C 08 03 A6 */ mtlr r0
-/* 802D12BC 002CE1FC 38 21 00 10 */ addi r1, r1, 0x10
-/* 802D12C0 002CE200 4E 80 00 20 */ blr