// // Generated By: dol2asm // Translation Unit: m_Do/m_Do_MemCard // #include "dol2asm.h" #include "dolphin/types.h" #include "m_Do/m_Do_MemCard.h" // // Types: // struct mDoMemCd_Ctrl_c { /* 8001672C */ mDoMemCd_Ctrl_c(); /* 80016730 */ void ThdInit(); /* 800167D0 */ void main(); /* 80016894 */ void update(); /* 800169B4 */ void load(); /* 80016A0C */ void restore(); /* 80016AB0 */ void LoadSync(void*, u32, u32); /* 80016B58 */ void save(void*, u32, u32); /* 80016BD4 */ void store(); /* 80016CE0 */ void SaveSync(); /* 80016D74 */ void getStatus(u32); /* 80016E58 */ void command_format(); /* 80016EA8 */ void format(); /* 80016F2C */ void FormatSync(); /* 80016FB8 */ void attach(); /* 800170B8 */ void command_attach(); /* 80017110 */ void detach(); /* 80017148 */ void mount(); /* 80017274 */ void loadfile(); /* 800172D4 */ void checkspace(); /* 80017360 */ void setCardState(s32); }; struct OSThread { }; struct JKRThread { /* 802D16B8 */ JKRThread(OSThread*, int); /* 802D1758 */ ~JKRThread(); }; struct JKRHeap { /* 802CE438 */ void becomeCurrentHeap(); }; struct CARDFileInfo { }; // // Forward References: // static void mDoMemCd_main(void*); extern "C" extern char const* const m_Do_m_Do_MemCard__stringBase0; extern "C" extern u8 g_mDoMemCd_control[8192]; extern "C" void __ct__15mDoMemCd_Ctrl_cFv(); extern "C" void ThdInit__15mDoMemCd_Ctrl_cFv(); extern "C" void main__15mDoMemCd_Ctrl_cFv(); extern "C" void update__15mDoMemCd_Ctrl_cFv(); extern "C" void load__15mDoMemCd_Ctrl_cFv(); extern "C" void restore__15mDoMemCd_Ctrl_cFv(); extern "C" void LoadSync__15mDoMemCd_Ctrl_cFPvUlUl(); extern "C" void save__15mDoMemCd_Ctrl_cFPvUlUl(); extern "C" void store__15mDoMemCd_Ctrl_cFv(); extern "C" void SaveSync__15mDoMemCd_Ctrl_cFv(); extern "C" void getStatus__15mDoMemCd_Ctrl_cFUl(); extern "C" void command_format__15mDoMemCd_Ctrl_cFv(); extern "C" void format__15mDoMemCd_Ctrl_cFv(); extern "C" void FormatSync__15mDoMemCd_Ctrl_cFv(); extern "C" void attach__15mDoMemCd_Ctrl_cFv(); extern "C" void command_attach__15mDoMemCd_Ctrl_cFv(); extern "C" void detach__15mDoMemCd_Ctrl_cFv(); extern "C" void mount__15mDoMemCd_Ctrl_cFv(); extern "C" void loadfile__15mDoMemCd_Ctrl_cFv(); extern "C" void checkspace__15mDoMemCd_Ctrl_cFv(); extern "C" void setCardState__15mDoMemCd_Ctrl_cFl(); extern "C" static void mDoMemCd_main__FPv(); extern "C" void __sinit_m_Do_MemCard_cpp(); extern "C" extern char const* const m_Do_m_Do_MemCard__stringBase0; extern "C" extern u8 g_mDoMemCd_control[8192]; // // External References: // void mDoExt_getAssertHeap(); void mDoMemCdRWm_Store(CARDFileInfo*, void*, u32); void mDoMemCdRWm_Restore(CARDFileInfo*, void*, u32); extern "C" extern u8 mResetData__6mDoRst[4 + 4 /* padding */]; SECTION_INIT void memcpy(); extern "C" void mDoExt_getAssertHeap__Fv(); extern "C" void mDoMemCdRWm_Store__FP12CARDFileInfoPvUl(); extern "C" void mDoMemCdRWm_Restore__FP12CARDFileInfoPvUl(); extern "C" void becomeCurrentHeap__7JKRHeapFv(); extern "C" void __ct__9JKRThreadFP8OSThreadi(); extern "C" void __dt__9JKRThreadFv(); extern "C" void OSInitMutex(); extern "C" void OSLockMutex(); extern "C" void OSUnlockMutex(); extern "C" void OSTryLockMutex(); extern "C" void OSInitCond(); extern "C" void OSWaitCond(); extern "C" void OSSignalCond(); extern "C" void OSGetCurrentThread(); extern "C" void OSCreateThread(); extern "C" void OSResumeThread(); extern "C" void OSGetThreadPriority(); extern "C" void CARDInit(); extern "C" void CARDFreeBlocks(); extern "C" void CARDCheck(); extern "C" void CARDProbe(); extern "C" void CARDProbeEx(); extern "C" void CARDMount(); extern "C" void CARDUnmount(); extern "C" void CARDFormat(); extern "C" void CARDOpen(); extern "C" void CARDClose(); extern "C" void CARDCreate(); extern "C" void _savegpr_27(); extern "C" void _savegpr_28(); extern "C" void _restgpr_27(); extern "C" void _restgpr_28(); extern "C" extern u8 mResetData__6mDoRst[4 + 4 /* padding */]; // // Declarations: // /* 8001672C-80016730 0004+00 s=1 e=0 z=0 None .text __ct__15mDoMemCd_Ctrl_cFv */ mDoMemCd_Ctrl_c::mDoMemCd_Ctrl_c() { /* empty function */ } /* ############################################################################################## */ /* 803DFC20-803E0C20 1000+00 s=1 e=0 z=0 None .bss MemCardStack */ static u8 MemCardStack[4096]; /* 803E0C20-803E0F40 0318+08 s=1 e=0 z=0 None .bss MemCardThread */ static u8 MemCardThread[792 + 8 /* padding */]; /* 80016730-800167D0 00A0+00 s=0 e=1 z=0 None .text ThdInit__15mDoMemCd_Ctrl_cFv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void mDoMemCd_Ctrl_c::ThdInit() { nofralloc #include "asm/m_Do/m_Do_MemCard/ThdInit__15mDoMemCd_Ctrl_cFv.s" } #pragma pop /* 800167D0-80016894 00C4+00 s=1 e=0 z=0 None .text main__15mDoMemCd_Ctrl_cFv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void mDoMemCd_Ctrl_c::main() { nofralloc #include "asm/m_Do/m_Do_MemCard/main__15mDoMemCd_Ctrl_cFv.s" } #pragma pop /* 80016894-800169B4 0120+00 s=0 e=1 z=0 None .text update__15mDoMemCd_Ctrl_cFv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void mDoMemCd_Ctrl_c::update() { nofralloc #include "asm/m_Do/m_Do_MemCard/update__15mDoMemCd_Ctrl_cFv.s" } #pragma pop /* 800169B4-80016A0C 0058+00 s=0 e=2 z=0 None .text load__15mDoMemCd_Ctrl_cFv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void mDoMemCd_Ctrl_c::load() { nofralloc #include "asm/m_Do/m_Do_MemCard/load__15mDoMemCd_Ctrl_cFv.s" } #pragma pop /* ############################################################################################## */ /* 803743F8-80374408 0009+07 s=3 e=0 z=0 None .rodata @stringBase0 */ #pragma push #pragma force_active on #pragma section ".dead" SECTION_DEAD char const* const stringBase_803743F8 = "gczelda2"; /* @stringBase0 padding */ SECTION_DEAD static char const* const pad_80374401 = "\0\0\0\0\0\0"; #pragma pop /* 80016A0C-80016AB0 00A4+00 s=1 e=0 z=0 None .text restore__15mDoMemCd_Ctrl_cFv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void mDoMemCd_Ctrl_c::restore() { nofralloc #include "asm/m_Do/m_Do_MemCard/restore__15mDoMemCd_Ctrl_cFv.s" } #pragma pop /* 80016AB0-80016B58 00A8+00 s=0 e=2 z=0 None .text LoadSync__15mDoMemCd_Ctrl_cFPvUlUl */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void mDoMemCd_Ctrl_c::LoadSync(void* param_0, u32 param_1, u32 param_2) { nofralloc #include "asm/m_Do/m_Do_MemCard/LoadSync__15mDoMemCd_Ctrl_cFPvUlUl.s" } #pragma pop /* 80016B58-80016BD4 007C+00 s=0 e=2 z=0 None .text save__15mDoMemCd_Ctrl_cFPvUlUl */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void mDoMemCd_Ctrl_c::save(void* param_0, u32 param_1, u32 param_2) { nofralloc #include "asm/m_Do/m_Do_MemCard/save__15mDoMemCd_Ctrl_cFPvUlUl.s" } #pragma pop /* 80016BD4-80016CE0 010C+00 s=1 e=0 z=0 None .text store__15mDoMemCd_Ctrl_cFv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void mDoMemCd_Ctrl_c::store() { nofralloc #include "asm/m_Do/m_Do_MemCard/store__15mDoMemCd_Ctrl_cFv.s" } #pragma pop /* 80016CE0-80016D74 0094+00 s=0 e=6 z=0 None .text SaveSync__15mDoMemCd_Ctrl_cFv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void mDoMemCd_Ctrl_c::SaveSync() { nofralloc #include "asm/m_Do/m_Do_MemCard/SaveSync__15mDoMemCd_Ctrl_cFv.s" } #pragma pop /* ############################################################################################## */ /* 803A34F8-803A3530 0038+00 s=1 e=0 z=0 None .data @3770 */ SECTION_DATA static void* lit_3770[14] = { (void*)(((char*)getStatus__15mDoMemCd_Ctrl_cFUl)+0x74), (void*)(((char*)getStatus__15mDoMemCd_Ctrl_cFUl)+0x4C), (void*)(((char*)getStatus__15mDoMemCd_Ctrl_cFUl)+0x54), (void*)(((char*)getStatus__15mDoMemCd_Ctrl_cFUl)+0x5C), (void*)(((char*)getStatus__15mDoMemCd_Ctrl_cFUl)+0x64), (void*)(((char*)getStatus__15mDoMemCd_Ctrl_cFUl)+0x6C), (void*)(((char*)getStatus__15mDoMemCd_Ctrl_cFUl)+0x7C), (void*)(((char*)getStatus__15mDoMemCd_Ctrl_cFUl)+0x84), (void*)(((char*)getStatus__15mDoMemCd_Ctrl_cFUl)+0x8C), (void*)(((char*)getStatus__15mDoMemCd_Ctrl_cFUl)+0x94), (void*)(((char*)getStatus__15mDoMemCd_Ctrl_cFUl)+0x9C), (void*)(((char*)getStatus__15mDoMemCd_Ctrl_cFUl)+0xA4), (void*)(((char*)getStatus__15mDoMemCd_Ctrl_cFUl)+0xAC), (void*)(((char*)getStatus__15mDoMemCd_Ctrl_cFUl)+0xB4), }; /* 80016D74-80016E58 00E4+00 s=2 e=2 z=0 None .text getStatus__15mDoMemCd_Ctrl_cFUl */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void mDoMemCd_Ctrl_c::getStatus(u32 param_0) { nofralloc #include "asm/m_Do/m_Do_MemCard/getStatus__15mDoMemCd_Ctrl_cFUl.s" } #pragma pop /* 80016E58-80016EA8 0050+00 s=0 e=2 z=0 None .text command_format__15mDoMemCd_Ctrl_cFv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void mDoMemCd_Ctrl_c::command_format() { nofralloc #include "asm/m_Do/m_Do_MemCard/command_format__15mDoMemCd_Ctrl_cFv.s" } #pragma pop /* 80016EA8-80016F2C 0084+00 s=1 e=0 z=0 None .text format__15mDoMemCd_Ctrl_cFv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void mDoMemCd_Ctrl_c::format() { nofralloc #include "asm/m_Do/m_Do_MemCard/format__15mDoMemCd_Ctrl_cFv.s" } #pragma pop /* 80016F2C-80016FB8 008C+00 s=0 e=2 z=0 None .text FormatSync__15mDoMemCd_Ctrl_cFv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void mDoMemCd_Ctrl_c::FormatSync() { nofralloc #include "asm/m_Do/m_Do_MemCard/FormatSync__15mDoMemCd_Ctrl_cFv.s" } #pragma pop /* 80016FB8-800170B8 0100+00 s=1 e=0 z=0 None .text attach__15mDoMemCd_Ctrl_cFv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void mDoMemCd_Ctrl_c::attach() { nofralloc #include "asm/m_Do/m_Do_MemCard/attach__15mDoMemCd_Ctrl_cFv.s" } #pragma pop /* 800170B8-80017110 0058+00 s=0 e=1 z=0 None .text command_attach__15mDoMemCd_Ctrl_cFv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void mDoMemCd_Ctrl_c::command_attach() { nofralloc #include "asm/m_Do/m_Do_MemCard/command_attach__15mDoMemCd_Ctrl_cFv.s" } #pragma pop /* 80017110-80017148 0038+00 s=1 e=0 z=0 None .text detach__15mDoMemCd_Ctrl_cFv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void mDoMemCd_Ctrl_c::detach() { nofralloc #include "asm/m_Do/m_Do_MemCard/detach__15mDoMemCd_Ctrl_cFv.s" } #pragma pop /* ############################################################################################## */ /* 803A3530-803A3568 0038+00 s=1 e=0 z=0 None .data @3850 */ SECTION_DATA static void* lit_3850[14] = { (void*)(((char*)mount__15mDoMemCd_Ctrl_cFv)+0xF4), (void*)(((char*)mount__15mDoMemCd_Ctrl_cFv)+0x114), (void*)(((char*)mount__15mDoMemCd_Ctrl_cFv)+0x114), (void*)(((char*)mount__15mDoMemCd_Ctrl_cFv)+0x114), (void*)(((char*)mount__15mDoMemCd_Ctrl_cFv)+0x114), (void*)(((char*)mount__15mDoMemCd_Ctrl_cFv)+0x114), (void*)(((char*)mount__15mDoMemCd_Ctrl_cFv)+0x114), (void*)(((char*)mount__15mDoMemCd_Ctrl_cFv)+0xC4), (void*)(((char*)mount__15mDoMemCd_Ctrl_cFv)+0xD4), (void*)(((char*)mount__15mDoMemCd_Ctrl_cFv)+0x114), (void*)(((char*)mount__15mDoMemCd_Ctrl_cFv)+0xE4), (void*)(((char*)mount__15mDoMemCd_Ctrl_cFv)+0x114), (void*)(((char*)mount__15mDoMemCd_Ctrl_cFv)+0x114), (void*)(((char*)mount__15mDoMemCd_Ctrl_cFv)+0xBC), }; /* 803E0F40-803EAF40 A000+00 s=1 e=0 z=0 None .bss MemCardWorkArea0 */ static u8 MemCardWorkArea0[40960]; /* 80017148-80017274 012C+00 s=2 e=0 z=0 None .text mount__15mDoMemCd_Ctrl_cFv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void mDoMemCd_Ctrl_c::mount() { nofralloc #include "asm/m_Do/m_Do_MemCard/mount__15mDoMemCd_Ctrl_cFv.s" } #pragma pop /* 80017274-800172D4 0060+00 s=1 e=0 z=0 None .text loadfile__15mDoMemCd_Ctrl_cFv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void mDoMemCd_Ctrl_c::loadfile() { nofralloc #include "asm/m_Do/m_Do_MemCard/loadfile__15mDoMemCd_Ctrl_cFv.s" } #pragma pop /* 800172D4-80017360 008C+00 s=1 e=0 z=0 None .text checkspace__15mDoMemCd_Ctrl_cFv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void mDoMemCd_Ctrl_c::checkspace() { nofralloc #include "asm/m_Do/m_Do_MemCard/checkspace__15mDoMemCd_Ctrl_cFv.s" } #pragma pop /* 80017360-8001741C 00BC+00 s=5 e=0 z=0 None .text setCardState__15mDoMemCd_Ctrl_cFl */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void mDoMemCd_Ctrl_c::setCardState(s32 param_0) { nofralloc #include "asm/m_Do/m_Do_MemCard/setCardState__15mDoMemCd_Ctrl_cFl.s" } #pragma pop /* ############################################################################################## */ /* 803EAF40-803ECF40 2000+00 s=2 e=27 z=0 None .bss g_mDoMemCd_control */ u8 g_mDoMemCd_control[8192]; /* 8001741C-80017470 0054+00 s=1 e=0 z=0 None .text mDoMemCd_main__FPv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm static void mDoMemCd_main(void* param_0) { nofralloc #include "asm/m_Do/m_Do_MemCard/mDoMemCd_main__FPv.s" } #pragma pop /* 80017470-80017498 0028+00 s=0 e=1 z=0 None .text __sinit_m_Do_MemCard_cpp */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off extern "C" asm void __sinit_m_Do_MemCard_cpp() { nofralloc #include "asm/m_Do/m_Do_MemCard/__sinit_m_Do_MemCard_cpp.s" } #pragma pop