// // Generated By: dol2asm // Translation Unit: JASHeapCtrl // #include "dol2asm.h" #include "dolphin/types.h" #include "JSystem/JAudio2/JASHeapCtrl.h" // // Types: // struct JSUPtrLink { /* 802DBDFC */ // False False // void* False // void False JSUPtrLink(void*); /* 802DBE14 */ // False False ~JSUPtrLink(); }; struct JSUPtrList { /* 802DBEAC */ // False False ~JSUPtrList(); /* 802DBF14 */ // False False void initiate(); /* 802DC094 */ // False False // JSUPtrLink* False // JSUPtrLink False // JSUPtrLink* False // JSUPtrLink False void insert(JSUPtrLink*, JSUPtrLink*); /* 802DC15C */ // False False // JSUPtrLink* False // JSUPtrLink False void remove(JSUPtrLink*); }; struct JKRSolidHeap { }; struct JKRHeap { }; struct JKRExpHeap { /* 802CEE2C */ // False False // u32 False // JKRHeap* False // JKRHeap False // bool False void create(u32, JKRHeap*, bool); }; struct JASKernel { /* 802909B8 */ // False False // JKRSolidHeap* False // JKRSolidHeap False // u32 False void setupRootHeap(JKRSolidHeap*, u32); /* 80290AC0 */ // False False void getSystemHeap(); /* 80290AC8 */ // False False void getCommandHeap(); /* 80290AD0 */ // False False // u32 False // u32 False void setupAramHeap(u32, u32); /* 80290B08 */ // False False void getAramHeap(); }; struct JASDisposer { /* 80290BCC */ // False False // void False void onDispose(); }; struct JASHeap { /* 80290140 */ // False False // JASDisposer* False // JASDisposer False JASHeap(JASDisposer*); /* 802901AC */ // True False // void* False // void False // u32 False void initRootHeap(void*, u32); /* 8029021C */ // False False // JASHeap* False // JASHeap False // u32 False void alloc(JASHeap*, u32); /* 802903F4 */ // False False // JASHeap* False // JASHeap False // u32 False void allocTail(JASHeap*, u32); /* 802904E4 */ // False False void free(); /* 80290608 */ // True False // JASHeap* False // JASHeap False // JASHeap* False // JASHeap False // void* False // void False // u32 False // bool False void insertChild(JASHeap*, JASHeap*, void*, u32, bool); /* 802906F0 */ // True False void getTailHeap(); /* 8029077C */ // True False void getTailOffset(); /* 802907E0 */ // True False void getCurOffset(); /* 80290B54 */ // False False ~JASHeap(); }; struct JASGenericMemPool { /* 80290848 */ // False False JASGenericMemPool(); /* 80290860 */ // False False ~JASGenericMemPool(); /* 802908C8 */ // False False // u32 False // int False void newMemPool(u32, int); /* 80290948 */ // False False // u32 False void alloc(u32); /* 80290994 */ // False False // void* False // void False // u32 False void free(void*, u32); }; // // Forward References: // // False False // JASDisposer* False // JASDisposer False extern "C" void __ct__7JASHeapFP11JASDisposer(); // True False // void* False // void False // u32 False extern "C" void initRootHeap__7JASHeapFPvUl(); // False False // JASHeap* False // JASHeap False // u32 False extern "C" void alloc__7JASHeapFP7JASHeapUl(); // False False // JASHeap* False // JASHeap False // u32 False extern "C" void allocTail__7JASHeapFP7JASHeapUl(); // False False extern "C" void free__7JASHeapFv(); // True False // JASHeap* False // JASHeap False // JASHeap* False // JASHeap False // void* False // void False // u32 False // bool False extern "C" void insertChild__7JASHeapFP7JASHeapP7JASHeapPvUlb(); // True False extern "C" void getTailHeap__7JASHeapFv(); // True False extern "C" void getTailOffset__7JASHeapFv(); // True False extern "C" void getCurOffset__7JASHeapFv(); // False False extern "C" void __ct__17JASGenericMemPoolFv(); // False False extern "C" void __dt__17JASGenericMemPoolFv(); // False False // u32 False // int False extern "C" void newMemPool__17JASGenericMemPoolFUli(); // False False // u32 False extern "C" void alloc__17JASGenericMemPoolFUl(); // False False // void* False // void False // u32 False extern "C" void free__17JASGenericMemPoolFPvUl(); // False False // JKRSolidHeap* False // JKRSolidHeap False // u32 False extern "C" void setupRootHeap__9JASKernelFP12JKRSolidHeapUl(); // False False extern "C" void getSystemHeap__9JASKernelFv(); // False False extern "C" void getCommandHeap__9JASKernelFv(); // False False // u32 False // u32 False extern "C" void setupAramHeap__9JASKernelFUlUl(); // False False extern "C" void getAramHeap__9JASKernelFv(); // False False extern "C" void __sinit_JASHeapCtrl_cpp(); // False False extern "C" void __dt__7JASHeapFv(); // False False // void False extern "C" void onDispose__11JASDisposerFv(); extern "C" extern u8 JASDram[4]; // // External References: // // False False // void* False // void False // u32 False // JKRHeap* False // JKRHeap False // int False void* operator new(u32, JKRHeap*, int); // False False // void* False // void False // u32 False // JKRHeap* False // JKRHeap False // int False void* operator new[](u32, JKRHeap*, int); // False False // void False // void* False // void False void operator delete(void*); // False False // void False // void* False // void False void operator delete[](void*); // False False // void* False // void False // u32 False // JKRHeap* False // JKRHeap False // int False extern "C" void* __nw__FUlP7JKRHeapi(); // False False // void* False // void False // u32 False // JKRHeap* False // JKRHeap False // int False extern "C" void* __nwa__FUlP7JKRHeapi(); // False False // void False // void* False // void False extern "C" void __dl__FPv(); // False False // void False // void* False // void False extern "C" void __dla__FPv(); // False False // u32 False // JKRHeap* False // JKRHeap False // bool False extern "C" void create__10JKRExpHeapFUlP7JKRHeapb(); // False False // void* False // void False extern "C" void __ct__10JSUPtrLinkFPv(); // False False extern "C" void __dt__10JSUPtrLinkFv(); // False False extern "C" void __dt__10JSUPtrListFv(); // False False extern "C" void initiate__10JSUPtrListFv(); // False False // JSUPtrLink* False // JSUPtrLink False // JSUPtrLink* False // JSUPtrLink False extern "C" void insert__10JSUPtrListFP10JSUPtrLinkP10JSUPtrLink(); // False False // JSUPtrLink* False // JSUPtrLink False extern "C" void remove__10JSUPtrListFP10JSUPtrLink(); // False False extern "C" void OSInitMutex(); // False False extern "C" void OSLockMutex(); // False False extern "C" void OSUnlockMutex(); // False False extern "C" void __register_global_object(); // False False extern "C" void _savegpr_26(); // False False extern "C" void _savegpr_27(); // False False extern "C" void _savegpr_28(); // False False extern "C" void _savegpr_29(); // False False extern "C" void _restgpr_26(); // False False extern "C" void _restgpr_27(); // False False extern "C" void _restgpr_28(); // False False extern "C" void _restgpr_29(); extern "C" extern u8 sSystemHeap__7JKRHeap[4]; // // Declarations: // /* 80290140-802901AC 006C+00 s=1 e=2 z=0 None .text __ct__7JASHeapFP11JASDisposer */ // 80290150: 803621DC (_savegpr_29) // 80290164: 802DBF14 (initiate__10JSUPtrListFv) // 80290170: 802DBDFC (__ct__10JSUPtrLinkFPv) // 8029018C: 8033F008 (OSInitMutex) // 80290198: 80362228 (_restgpr_29) #pragma push #pragma optimization_level 0 #pragma optimizewithasm off // False False // JASDisposer* False // JASDisposer False asm JASHeap::JASHeap(JASDisposer* param_0) { nofralloc #include "asm/JSystem/JAudio2/JASHeapCtrl/__ct__7JASHeapFP11JASDisposer.s" } #pragma pop /* 802901AC-8029021C 0070+00 s=1 e=0 z=0 None .text initRootHeap__7JASHeapFPvUl */ // 802901BC: 803621DC (_savegpr_29) // 802901D4: 8033F040 (OSLockMutex) // 80290200: 8033F11C (OSUnlockMutex) // 80290208: 80362228 (_restgpr_29) #pragma push #pragma optimization_level 0 #pragma optimizewithasm off // True False // void* False // void False // u32 False asm void JASHeap::initRootHeap(void* param_0, u32 param_1) { nofralloc #include "asm/JSystem/JAudio2/JASHeapCtrl/initRootHeap__7JASHeapFPvUl.s" } #pragma pop /* 8029021C-802903F4 01D8+00 s=0 e=2 z=0 None .text alloc__7JASHeapFP7JASHeapUl */ // 8029022C: 803621D4 (_savegpr_27) // 80290244: 8033F040 (OSLockMutex) // 80290258: 8033F11C (OSUnlockMutex) // 80290274: 8033F11C (OSUnlockMutex) // 8029028C: 802907E0 (getCurOffset__7JASHeapFv) // 80290298: 8029077C (getTailOffset__7JASHeapFv) // 802902AC: 802906F0 (getTailHeap__7JASHeapFv) // 802902CC: 80290608 (insertChild__7JASHeapFP7JASHeapP7JASHeapPvUlb) // 802902D4: 8033F11C (OSUnlockMutex) // 802903AC: 8033F11C (OSUnlockMutex) // 802903CC: 80290608 (insertChild__7JASHeapFP7JASHeapP7JASHeapPvUlb) // 802903D4: 8033F11C (OSUnlockMutex) // 802903E0: 80362220 (_restgpr_27) #pragma push #pragma optimization_level 0 #pragma optimizewithasm off // False False // JASHeap* False // JASHeap False // u32 False asm void JASHeap::alloc(JASHeap* param_0, u32 param_1) { nofralloc #include "asm/JSystem/JAudio2/JASHeapCtrl/alloc__7JASHeapFP7JASHeapUl.s" } #pragma pop /* 802903F4-802904E4 00F0+00 s=0 e=1 z=0 None .text allocTail__7JASHeapFP7JASHeapUl */ // 80290404: 803621D4 (_savegpr_27) // 8029041C: 8033F040 (OSLockMutex) // 80290430: 8033F11C (OSUnlockMutex) // 8029044C: 8033F11C (OSUnlockMutex) // 80290464: 802907E0 (getCurOffset__7JASHeapFv) // 80290470: 8029077C (getTailOffset__7JASHeapFv) // 80290488: 8033F11C (OSUnlockMutex) // 80290498: 802906F0 (getTailHeap__7JASHeapFv) // 802904BC: 80290608 (insertChild__7JASHeapFP7JASHeapP7JASHeapPvUlb) // 802904C4: 8033F11C (OSUnlockMutex) // 802904D0: 80362220 (_restgpr_27) #pragma push #pragma optimization_level 0 #pragma optimizewithasm off // False False // JASHeap* False // JASHeap False // u32 False asm void JASHeap::allocTail(JASHeap* param_0, u32 param_1) { nofralloc #include "asm/JSystem/JAudio2/JASHeapCtrl/allocTail__7JASHeapFP7JASHeapUl.s" } #pragma pop /* 802904E4-80290608 0124+00 s=0 e=4 z=0 None .text free__7JASHeapFv */ // 80290504: 8033F040 (OSLockMutex) // 80290518: 8033F11C (OSUnlockMutex) // 802905B4: 802DC15C (remove__10JSUPtrListFP10JSUPtrLink) // 802905E8: 8033F11C (OSUnlockMutex) #pragma push #pragma optimization_level 0 #pragma optimizewithasm off // False False asm void JASHeap::free() { nofralloc #include "asm/JSystem/JAudio2/JASHeapCtrl/free__7JASHeapFv.s" } #pragma pop /* 80290608-802906F0 00E8+00 s=2 e=0 z=0 None .text insertChild__7JASHeapFP7JASHeapP7JASHeapPvUlb */ // 80290618: 803621D0 (_savegpr_26) // 8029063C: 8033F040 (OSLockMutex) // 802906CC: 802DC094 (insert__10JSUPtrListFP10JSUPtrLinkP10JSUPtrLink) // 802906D4: 8033F11C (OSUnlockMutex) // 802906DC: 8036221C (_restgpr_26) #pragma push #pragma optimization_level 0 #pragma optimizewithasm off // True False // JASHeap* False // JASHeap False // JASHeap* False // JASHeap False // void* False // void False // u32 False // bool False asm void JASHeap::insertChild(JASHeap* param_0, JASHeap* param_1, void* param_2, u32 param_3, bool param_4) { nofralloc #include "asm/JSystem/JAudio2/JASHeapCtrl/insertChild__7JASHeapFP7JASHeapP7JASHeapPvUlb.s" } #pragma pop /* 802906F0-8029077C 008C+00 s=3 e=0 z=0 None .text getTailHeap__7JASHeapFv */ // 8029070C: 8033F040 (OSLockMutex) // 8029074C: 8033F11C (OSUnlockMutex) // 80290760: 8033F11C (OSUnlockMutex) #pragma push #pragma optimization_level 0 #pragma optimizewithasm off // True False asm void JASHeap::getTailHeap() { nofralloc #include "asm/JSystem/JAudio2/JASHeapCtrl/getTailHeap__7JASHeapFv.s" } #pragma pop /* 8029077C-802907E0 0064+00 s=2 e=0 z=0 None .text getTailOffset__7JASHeapFv */ // 80290798: 8033F040 (OSLockMutex) // 802907A0: 802906F0 (getTailHeap__7JASHeapFv) // 802907C4: 8033F11C (OSUnlockMutex) #pragma push #pragma optimization_level 0 #pragma optimizewithasm off // True False asm void JASHeap::getTailOffset() { nofralloc #include "asm/JSystem/JAudio2/JASHeapCtrl/getTailOffset__7JASHeapFv.s" } #pragma pop /* 802907E0-80290848 0068+00 s=2 e=0 z=0 None .text getCurOffset__7JASHeapFv */ // 802907FC: 8033F040 (OSLockMutex) // 8029082C: 8033F11C (OSUnlockMutex) #pragma push #pragma optimization_level 0 #pragma optimizewithasm off // True False asm void JASHeap::getCurOffset() { nofralloc #include "asm/JSystem/JAudio2/JASHeapCtrl/getCurOffset__7JASHeapFv.s" } #pragma pop /* 80290848-80290860 0018+00 s=0 e=32 z=0 None .text __ct__17JASGenericMemPoolFv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off // False False asm JASGenericMemPool::JASGenericMemPool() { nofralloc #include "asm/JSystem/JAudio2/JASHeapCtrl/__ct__17JASGenericMemPoolFv.s" } #pragma pop /* 80290860-802908C8 0068+00 s=0 e=9 z=0 None .text __dt__17JASGenericMemPoolFv */ // 80290870: 803621DC (_savegpr_29) // 8029088C: 802CED60 (__dla__FPv) // 802908A8: 802CED3C (__dl__FPv) // 802908B4: 80362228 (_restgpr_29) #pragma push #pragma optimization_level 0 #pragma optimizewithasm off // False False asm JASGenericMemPool::~JASGenericMemPool() { nofralloc #include "asm/JSystem/JAudio2/JASHeapCtrl/__dt__17JASGenericMemPoolFv.s" } #pragma pop /* ############################################################################################## */ /* 80451210-80451214 0004+00 s=2 e=15 z=0 None .sbss JASDram */ u8 JASDram[4]; /* 802908C8-80290948 0080+00 s=0 e=4 z=0 None .text newMemPool__17JASGenericMemPoolFUli */ // 802908D8: 803621D8 (_savegpr_28) // 802908F4: 80451210 (JASDram) // 802908FC: 802CED10 (__nwa__FUlP7JKRHeapi) // 80290934: 80362224 (_restgpr_28) #pragma push #pragma optimization_level 0 #pragma optimizewithasm off // False False // u32 False // int False asm void JASGenericMemPool::newMemPool(u32 param_0, int param_1) { nofralloc #include "asm/JSystem/JAudio2/JASHeapCtrl/newMemPool__17JASGenericMemPoolFUli.s" } #pragma pop /* 80290948-80290994 004C+00 s=0 e=13 z=0 None .text alloc__17JASGenericMemPoolFUl */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off // False False // u32 False asm void JASGenericMemPool::alloc(u32 param_0) { nofralloc #include "asm/JSystem/JAudio2/JASHeapCtrl/alloc__17JASGenericMemPoolFUl.s" } #pragma pop /* 80290994-802909B8 0024+00 s=0 e=15 z=0 None .text free__17JASGenericMemPoolFPvUl */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off // False False // void* False // void False // u32 False asm void JASGenericMemPool::free(void* param_0, u32 param_1) { nofralloc #include "asm/JSystem/JAudio2/JASHeapCtrl/free__17JASGenericMemPoolFPvUl.s" } #pragma pop /* ############################################################################################## */ /* 80451214-80451218 0004+00 s=1 e=0 z=0 None .sbss sAramBase__9JASKernel */ static u8 sAramBase__9JASKernel[4]; /* 80451218-8045121C 0004+00 s=2 e=0 z=0 None .sbss sSystemHeap__9JASKernel */ static u8 sSystemHeap__9JASKernel[4]; /* 8045121C-80451220 0004+00 s=2 e=0 z=0 None .sbss sCommandHeap__9JASKernel */ static u8 sCommandHeap__9JASKernel[4]; /* 802909B8-80290AC0 0108+00 s=0 e=1 z=0 None .text setupRootHeap__9JASKernelFP12JKRSolidHeapUl */ // 802909C8: 803621DC (_savegpr_29) // 802909DC: 802CEE2C (create__10JKRExpHeapFUlP7JKRHeapb) // 802909E0: 80451218 (sSystemHeap__9JASKernel) // 802909F0: 802CEC98 (__nw__FUlP7JKRHeapi) // 802909FC: 8033F008 (OSInitMutex) // 80290A28: 80290AC0 (getSystemHeap__9JASKernelFv) // 80290A38: 802CEC98 (__nw__FUlP7JKRHeapi) // 80290A68: 80451370 (sSystemHeap__7JKRHeap) // 80290A70: 802CEC98 (__nw__FUlP7JKRHeapi) // 80290AA0: 8045121C (sCommandHeap__9JASKernel) // 80290AA4: 80451210 (JASDram) // 80290AAC: 80362228 (_restgpr_29) #pragma push #pragma optimization_level 0 #pragma optimizewithasm off // False False // JKRSolidHeap* False // JKRSolidHeap False // u32 False asm void JASKernel::setupRootHeap(JKRSolidHeap* param_0, u32 param_1) { nofralloc #include "asm/JSystem/JAudio2/JASHeapCtrl/setupRootHeap__9JASKernelFP12JKRSolidHeapUl.s" } #pragma pop /* 80290AC0-80290AC8 0008+00 s=1 e=3 z=0 None .text getSystemHeap__9JASKernelFv */ // 80290AC0: 80451218 (sSystemHeap__9JASKernel) #pragma push #pragma optimization_level 0 #pragma optimizewithasm off // False False asm void JASKernel::getSystemHeap() { nofralloc #include "asm/JSystem/JAudio2/JASHeapCtrl/getSystemHeap__9JASKernelFv.s" } #pragma pop /* 80290AC8-80290AD0 0008+00 s=0 e=6 z=0 None .text getCommandHeap__9JASKernelFv */ // 80290AC8: 8045121C (sCommandHeap__9JASKernel) #pragma push #pragma optimization_level 0 #pragma optimizewithasm off // False False asm void JASKernel::getCommandHeap() { nofralloc #include "asm/JSystem/JAudio2/JASHeapCtrl/getCommandHeap__9JASKernelFv.s" } #pragma pop /* ############################################################################################## */ /* 804315D0-804315DC 000C+00 s=1 e=0 z=0 None .bss @313 */ static u8 lit_313[12]; /* 804315DC-80431620 0044+00 s=3 e=0 z=0 None .bss audioAramHeap__9JASKernel */ static u8 audioAramHeap__9JASKernel[68]; /* 80290AD0-80290B08 0038+00 s=0 e=1 z=0 None .text setupAramHeap__9JASKernelFUlUl */ // 80290AE4: 80451214 (sAramBase__9JASKernel) // 80290AE8: 804315DC (audioAramHeap__9JASKernel) // 80290AEC: 804315DC (audioAramHeap__9JASKernel) // 80290AF4: 802901AC (initRootHeap__7JASHeapFPvUl) #pragma push #pragma optimization_level 0 #pragma optimizewithasm off // False False // u32 False // u32 False asm void JASKernel::setupAramHeap(u32 param_0, u32 param_1) { nofralloc #include "asm/JSystem/JAudio2/JASHeapCtrl/setupAramHeap__9JASKernelFUlUl.s" } #pragma pop /* 80290B08-80290B14 000C+00 s=0 e=3 z=0 None .text getAramHeap__9JASKernelFv */ // 80290B08: 804315DC (audioAramHeap__9JASKernel) // 80290B0C: 804315DC (audioAramHeap__9JASKernel) #pragma push #pragma optimization_level 0 #pragma optimizewithasm off // False False asm void JASKernel::getAramHeap() { nofralloc #include "asm/JSystem/JAudio2/JASHeapCtrl/getAramHeap__9JASKernelFv.s" } #pragma pop /* 80290B14-80290B54 0040+00 s=0 e=0 z=0 None .text __sinit_JASHeapCtrl_cpp */ // 80290B20: 804315DC (audioAramHeap__9JASKernel) // 80290B24: 804315DC (audioAramHeap__9JASKernel) // 80290B2C: 80290140 (__ct__7JASHeapFP11JASDisposer) // 80290B30: 80290B54 (__dt__7JASHeapFv) // 80290B34: 80290B54 (__dt__7JASHeapFv) // 80290B38: 804315D0 (lit_313) // 80290B3C: 804315D0 (lit_313) // 80290B40: 80361C24 (__register_global_object) #pragma push #pragma optimization_level 0 #pragma optimizewithasm off // False False extern "C" asm void __sinit_JASHeapCtrl_cpp() { nofralloc #include "asm/JSystem/JAudio2/JASHeapCtrl/__sinit_JASHeapCtrl_cpp.s" } #pragma pop #pragma push #pragma force_active on #pragma section ".ctors$15" __declspec(section ".ctors$15") void* const _ctors_80290B14 = (void*)__sinit_JASHeapCtrl_cpp; #pragma pop /* 80290B54-80290BCC 0078+00 s=1 e=3 z=0 None .text __dt__7JASHeapFv */ // 80290B88: 802DBE14 (__dt__10JSUPtrLinkFv) // 80290B9C: 802DBEAC (__dt__10JSUPtrListFv) // 80290BAC: 802CED3C (__dl__FPv) #pragma push #pragma optimization_level 0 #pragma optimizewithasm off // False False asm JASHeap::~JASHeap() { nofralloc #include "asm/JSystem/JAudio2/JASHeapCtrl/__dt__7JASHeapFv.s" } #pragma pop /* 80290BCC-80290BD0 0004+00 s=0 e=1 z=0 None .text onDispose__11JASDisposerFv */ // False False // void False void JASDisposer::onDispose() { /* empty function */ }