diff options
| author | hatal175 <hatal175@users.noreply.github.com> | 2024-11-10 13:38:10 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-11-10 06:38:10 -0500 |
| commit | 7c20cdb8b33e4118a80bbb9d34b48302bf2b833d (patch) | |
| tree | 69105520299f09332baf10c3fa3458ade79b93bc /src/JSystem/JKernel/JKRExpHeap.cpp | |
| parent | aec7c1df12ab40607e02bf67363fe59d3c1643a6 (diff) | |
JKRExpHeap matching + other minor (#2243)
Diffstat (limited to 'src/JSystem/JKernel/JKRExpHeap.cpp')
| -rw-r--r-- | src/JSystem/JKernel/JKRExpHeap.cpp | 175 |
1 files changed, 17 insertions, 158 deletions
diff --git a/src/JSystem/JKernel/JKRExpHeap.cpp b/src/JSystem/JKernel/JKRExpHeap.cpp index a731271071..cb9dc2b18c 100644 --- a/src/JSystem/JKernel/JKRExpHeap.cpp +++ b/src/JSystem/JKernel/JKRExpHeap.cpp @@ -1,99 +1,11 @@ // -// Generated By: dol2asm -// Translation Unit: JKRExpHeap +// JKRExpHeap // #include "JSystem/JKernel/JKRExpHeap.h" #include "JSystem/JSupport/JSupport.h" +#include "JSystem/JUtility/JUTConsole.h" #include "JSystem/JUtility/JUTException.h" -#include "dol2asm.h" - -// -// Forward References: -// - -extern "C" void createRoot__10JKRExpHeapFib(); -extern "C" void create__10JKRExpHeapFUlP7JKRHeapb(); -extern "C" void create__10JKRExpHeapFPvUlP7JKRHeapb(); -extern "C" void do_destroy__10JKRExpHeapFv(); -extern "C" void __ct__10JKRExpHeapFPvUlP7JKRHeapb(); -extern "C" void __dt__10JKRExpHeapFv(); -extern "C" void do_alloc__10JKRExpHeapFUli(); -extern "C" void allocFromHead__10JKRExpHeapFUli(); -extern "C" void allocFromHead__10JKRExpHeapFUl(); -extern "C" void allocFromTail__10JKRExpHeapFUli(); -extern "C" void allocFromTail__10JKRExpHeapFUl(); -extern "C" void do_free__10JKRExpHeapFPv(); -extern "C" void do_freeAll__10JKRExpHeapFv(); -extern "C" void do_freeTail__10JKRExpHeapFv(); -extern "C" void do_fillFreeArea__10JKRExpHeapFv(); -extern "C" void do_changeGroupID__10JKRExpHeapFUc(); -extern "C" void do_resize__10JKRExpHeapFPvUl(); -extern "C" void do_getSize__10JKRExpHeapFPv(); -extern "C" void do_getFreeSize__10JKRExpHeapFv(); -extern "C" void do_getMaxFreeBlock__10JKRExpHeapFv(); -extern "C" void do_getTotalFreeSize__10JKRExpHeapFv(); -extern "C" void getUsedSize__10JKRExpHeapCFUc(); -extern "C" void getTotalUsedSize__10JKRExpHeapCFv(); -extern "C" void appendUsedList__10JKRExpHeapFPQ210JKRExpHeap9CMemBlock(); -extern "C" void -setFreeBlock__10JKRExpHeapFPQ210JKRExpHeap9CMemBlockPQ210JKRExpHeap9CMemBlockPQ210JKRExpHeap9CMemBlock(); -extern "C" void removeFreeBlock__10JKRExpHeapFPQ210JKRExpHeap9CMemBlock(); -extern "C" void removeUsedBlock__10JKRExpHeapFPQ210JKRExpHeap9CMemBlock(); -extern "C" void recycleFreeBlock__10JKRExpHeapFPQ210JKRExpHeap9CMemBlock(); -extern "C" void joinTwoBlocks__10JKRExpHeapFPQ210JKRExpHeap9CMemBlock(); -extern "C" void check__10JKRExpHeapFv(); -extern "C" void dump__10JKRExpHeapFv(); -extern "C" void dump_sort__10JKRExpHeapFv(); -extern "C" void -initiate__Q210JKRExpHeap9CMemBlockFPQ210JKRExpHeap9CMemBlockPQ210JKRExpHeap9CMemBlockUlUcUc(); -extern "C" void allocFore__Q210JKRExpHeap9CMemBlockFUlUcUcUcUc(); -extern "C" void allocBack__Q210JKRExpHeap9CMemBlockFUlUcUcUcUc(); -extern "C" void free__Q210JKRExpHeap9CMemBlockFP10JKRExpHeap(); -extern "C" void getHeapBlock__Q210JKRExpHeap9CMemBlockFPv(); -extern "C" void state_register__10JKRExpHeapCFPQ27JKRHeap6TStateUl(); -extern "C" void state_compare__10JKRExpHeapCFRCQ27JKRHeap6TStateRCQ27JKRHeap6TState(); -extern "C" void getHeapType__10JKRExpHeapFv(); -extern "C" void do_getCurrentGroupId__10JKRExpHeapFv(); -extern "C" extern char const* const JKRExpHeap__stringBase0; - -// -// External References: -// - -extern "C" void __ct__7JKRHeapFPvUlP7JKRHeapb(); -extern "C" void __dt__7JKRHeapFv(); -extern "C" void initArena__7JKRHeapFPPcPUli(); -extern "C" void alloc__7JKRHeapFUliP7JKRHeap(); -extern "C" void free__7JKRHeapFPvP7JKRHeap(); -extern "C" void callAllDisposer__7JKRHeapFv(); -extern "C" void getTotalFreeSize__7JKRHeapFv(); -extern "C" void getMaxAllocatableSize__7JKRHeapFi(); -extern "C" void find__7JKRHeapCFPv(); -extern "C" void dispose__7JKRHeapFPvUl(); -extern "C" void dispose__7JKRHeapFv(); -extern "C" void __dl__FPv(); -extern "C" void state_dump__7JKRHeapCFRCQ27JKRHeap6TState(); -extern "C" void panic_f__12JUTExceptionFPCciPCce(); -extern "C" void JUTReportConsole_f(const char*, ...); -extern "C" void JUTReportConsole(const char*); -extern "C" void JUTWarningConsole_f(const char*, ...); -extern "C" void JUTWarningConsole(const char*); -extern "C" void _savegpr_25(); -extern "C" void _savegpr_27(); -extern "C" void _savegpr_28(); -extern "C" void _savegpr_29(); -extern "C" void _restgpr_25(); -extern "C" void _restgpr_27(); -extern "C" void _restgpr_28(); -extern "C" void _restgpr_29(); -extern "C" u8 sCurrentHeap__7JKRHeap[4]; -extern "C" u8 sRootHeap__7JKRHeap[4]; -extern "C" u8 mErrorHandler__7JKRHeap[4]; - -// -// Declarations: -// /* 802CEDB4-802CEE2C 2C96F4 0078+00 0/0 1/1 0/0 .text createRoot__10JKRExpHeapFib */ JKRExpHeap* JKRExpHeap::createRoot(int maxHeaps, bool errorFlag) { @@ -256,8 +168,6 @@ static JKRExpHeap::CMemBlock* DBnewFreeBlock; static JKRExpHeap::CMemBlock* DBnewUsedBlock; /* 802CF234-802CF490 2C9B74 025C+00 1/1 0/0 0/0 .text allocFromHead__10JKRExpHeapFUli */ -// wrong register at end -#ifdef NONMATCHING void* JKRExpHeap::allocFromHead(u32 size, int align) { u32 foundOffset; int foundSize; @@ -342,16 +252,16 @@ void* JKRExpHeap::allocFromHead(u32 size, int align) { CMemBlock* prev = foundBlock->mPrev; CMemBlock* next = foundBlock->mNext; // Works but very fake match - /*size = (u32)foundBlock->allocFore(size, mCurrentGroupId, 0, 0, 0); + size = (u32)foundBlock->allocFore(size, mCurrentGroupId, 0, 0, 0); removeFreeBlock(foundBlock); if (size) { setFreeBlock((CMemBlock*)size, prev, next); - }*/ - newFreeBlock = foundBlock->allocFore(size, mCurrentGroupId, 0, 0, 0); - removeFreeBlock(foundBlock); - if (newFreeBlock) { - setFreeBlock(newFreeBlock, prev, next); } + // newFreeBlock = foundBlock->allocFore(size, mCurrentGroupId, 0, 0, 0); + // removeFreeBlock(foundBlock); + // if (newFreeBlock) { + // setFreeBlock(newFreeBlock, prev, next); + // } appendUsedList(foundBlock); return foundBlock->getContent(); } @@ -360,11 +270,6 @@ void* JKRExpHeap::allocFromHead(u32 size, int align) { return NULL; } -#else -void* JKRExpHeap::allocFromHead(u32 param_0, int param_1) { - // NONMATCHING -} -#endif /* 802CF490-802CF574 2C9DD0 00E4+00 1/1 0/0 0/0 .text allocFromHead__10JKRExpHeapFUl */ void* JKRExpHeap::allocFromHead(u32 size) { @@ -1126,58 +1031,12 @@ u8 JKRExpHeap::do_getCurrentGroupId() { return mCurrentGroupId; } -/* ############################################################################################## */ -/* 8039CD84-8039CDA0 0293E4 001C+00 0/0 0/0 0/0 .rodata None */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8039CD84 = "+---------------JKRExpHeap\n"; -#pragma pop - -/* 8039CDA0-8039CDD0 029400 0030+00 0/0 0/0 0/0 .rodata None */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8039CDA0 = - "| Align Group size ( prev , next )\n"; -#pragma pop - -/* 8039CDD0-8039CDE2 029430 0012+00 0/0 0/0 0/0 .rodata None */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8039CDD0 = "| ---- FreeFirst\n"; -#pragma pop - -/* 8039CDE2-8039CDEB 029442 0009+00 0/0 0/0 0/0 .rodata None */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8039CDE2 = "| %08x "; -#pragma pop - -/* 8039CDEB-8039CE07 02944B 001C+00 0/0 0/0 0/0 .rodata None */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8039CDEB = "%2x %3d %6x (%08x %08x)\n"; -#pragma pop - -/* 8039CE07-8039CE18 029467 0011+00 0/0 0/0 0/0 .rodata None */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8039CE07 = "| ---- FreeLast\n"; -#pragma pop - -/* 8039CE18-8039CE2A 029478 0012+00 0/0 0/0 0/0 .rodata None */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8039CE18 = "| ---- UsedFirst\n"; -#pragma pop - -/* 8039CE2A-8039CE3B 02948A 0011+00 0/0 0/0 0/0 .rodata None */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8039CE2A = "| ---- UsedLast\n"; -#pragma pop - -/* 8039CE3B-8039CE50 02949B 0015+00 0/0 0/0 0/0 .rodata None */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8039CE3B = "+---------------End\n"; -#pragma pop
\ No newline at end of file +static char* dummyLiteral1() { return "+---------------JKRExpHeap\n"; } +static char* dummyLiteral2() { return "| Align Group size ( prev , next )\n"; } +static char* dummyLiteral3() { return "| ---- FreeFirst\n"; } +static char* dummyLiteral4() { return "| %08x "; } +static char* dummyLiteral5() { return "%2x %3d %6x (%08x %08x)\n"; } +static char* dummyLiteral6() { return "| ---- FreeLast\n"; } +static char* dummyLiteral7() { return "| ---- UsedFirst\n"; } +static char* dummyLiteral8() { return "| ---- UsedLast\n"; } +static char* dummyLiteral9() { return "+---------------End\n"; } |
