mirror of
https://github.com/TwilitRealm/dusklight
synced 2026-07-12 05:28:43 -04:00
JKRExpHeap matching + other minor (#2243)
This commit is contained in:
@@ -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
|
||||
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"; }
|
||||
|
||||
Reference in New Issue
Block a user