mirror of https://github.com/zeldaret/tp.git
421 lines
14 KiB
C++
421 lines
14 KiB
C++
//
|
|
// Generated By: dol2asm
|
|
// Translation Unit: JKRAram
|
|
//
|
|
|
|
#include "JSystem/JKernel/JKRAram.h"
|
|
#include "dol2asm.h"
|
|
#include "dolphin/types.h"
|
|
|
|
//
|
|
// Types:
|
|
//
|
|
|
|
struct JUTException {
|
|
/* 802E21FC */ void panic_f(char const*, int, char const*, ...);
|
|
};
|
|
|
|
struct JSUPtrList {
|
|
/* 802DBEAC */ ~JSUPtrList();
|
|
/* 802DBF14 */ void initiate();
|
|
};
|
|
|
|
template <typename A0>
|
|
struct JSUList {};
|
|
/* JSUList<JKRAMCommand> */
|
|
struct JSUList__template5 {
|
|
/* 802D2DF0 */ void func_802D2DF0();
|
|
};
|
|
|
|
struct JKRThread {
|
|
/* 802D1568 */ JKRThread(u32, int, int);
|
|
/* 802D1758 */ ~JKRThread();
|
|
};
|
|
|
|
struct JKRHeap {
|
|
/* 802CE4D4 */ void alloc(u32, int);
|
|
/* 802CE474 */ void alloc(u32, int, JKRHeap*);
|
|
/* 802CE500 */ void free(void*, JKRHeap*);
|
|
|
|
static u8 sSystemHeap[4];
|
|
static u8 sCurrentHeap[4];
|
|
};
|
|
|
|
struct JKRExpandSwitch {};
|
|
|
|
struct JKRDecomp {
|
|
/* 802DB680 */ void create(s32);
|
|
/* 802DB988 */ void orderSync(u8*, u8*, u32, u32);
|
|
/* 802DBCF8 */ void checkCompressed(u8*);
|
|
};
|
|
|
|
struct JKRAramStream {
|
|
/* 802D3B48 */ void create(s32);
|
|
};
|
|
|
|
struct JKRAMCommand {};
|
|
|
|
struct JKRAramBlock {};
|
|
|
|
struct JKRAramPiece {
|
|
/* 802D3838 */ void orderSync(int, u32, u32, u32, JKRAramBlock*);
|
|
/* 802D38CC */ void startDMA(JKRAMCommand*);
|
|
};
|
|
|
|
struct JKRAramHeap {
|
|
struct EAllocMode {};
|
|
|
|
/* 802D2E44 */ JKRAramHeap(u32, u32);
|
|
/* 802D2FBC */ void alloc(u32, JKRAramHeap::EAllocMode);
|
|
};
|
|
|
|
struct JKRAram {
|
|
/* 802D1FA4 */ void create(u32, u32, s32, s32, s32);
|
|
/* 802D2040 */ JKRAram(u32, u32, s32);
|
|
/* 802D214C */ ~JKRAram();
|
|
/* 802D21DC */ void run();
|
|
/* 802D2248 */ void checkOkAddress(u8*, u32, JKRAramBlock*, u32);
|
|
/* 802D22DC */ void changeGroupIdIfNeed(u8*, int);
|
|
/* 802D233C */ void mainRamToAram(u8*, u32, u32, JKRExpandSwitch, u32, JKRHeap*, int, u32*);
|
|
/* 802D25B4 */ void aramToMainRam(u32, u8*, u32, JKRExpandSwitch, u32, JKRHeap*, int, u32*);
|
|
|
|
static u8 sMessageBuffer[16];
|
|
static u8 sMessageQueue[32];
|
|
static u8 sAramCommandList[12];
|
|
static u32 sSZSBufferSize[1 + 1 /* padding */];
|
|
static u8 sAramObject[4];
|
|
};
|
|
|
|
//
|
|
// Forward References:
|
|
//
|
|
|
|
extern "C" void create__7JKRAramFUlUllll();
|
|
extern "C" void __ct__7JKRAramFUlUll();
|
|
extern "C" void __dt__7JKRAramFv();
|
|
extern "C" void run__7JKRAramFv();
|
|
extern "C" void checkOkAddress__7JKRAramFPUcUlP12JKRAramBlockUl();
|
|
extern "C" void changeGroupIdIfNeed__7JKRAramFPUci();
|
|
extern "C" void mainRamToAram__7JKRAramFPUcUlUl15JKRExpandSwitchUlP7JKRHeapiPUl();
|
|
extern "C" void aramToMainRam__7JKRAramFUlPUcUl15JKRExpandSwitchUlP7JKRHeapiPUl();
|
|
extern "C" static void JKRDecompressFromAramToMainRam__FUlPvUlUlUlPUl();
|
|
extern "C" static void decompSZS_subroutine__FPUcPUc();
|
|
extern "C" static void firstSrcData__Fv();
|
|
extern "C" static void nextSrcData__FPUc();
|
|
extern "C" void __sinit_JKRAram_cpp();
|
|
extern "C" void func_802D2DF0();
|
|
extern "C" extern char const* const JKRAram__stringBase0;
|
|
extern "C" u8 sMessageBuffer__7JKRAram[16];
|
|
extern "C" u8 sMessageQueue__7JKRAram[32];
|
|
extern "C" u8 sAramCommandList__7JKRAram[12];
|
|
extern "C" u32 sSZSBufferSize__7JKRAram[1 + 1 /* padding */];
|
|
extern "C" u8 sAramObject__7JKRAram[4];
|
|
|
|
//
|
|
// External References:
|
|
//
|
|
|
|
SECTION_INIT void memcpy();
|
|
extern "C" void alloc__7JKRHeapFUliP7JKRHeap();
|
|
extern "C" void alloc__7JKRHeapFUli();
|
|
extern "C" void free__7JKRHeapFPvP7JKRHeap();
|
|
extern "C" void* __nw__FUlP7JKRHeapi();
|
|
extern "C" void __dl__FPv();
|
|
extern "C" void __ct__9JKRThreadFUlii();
|
|
extern "C" void __dt__9JKRThreadFv();
|
|
extern "C" void __ct__11JKRAramHeapFUlUl();
|
|
extern "C" void alloc__11JKRAramHeapFUlQ211JKRAramHeap10EAllocMode();
|
|
extern "C" void orderSync__12JKRAramPieceFiUlUlUlP12JKRAramBlock();
|
|
extern "C" void startDMA__12JKRAramPieceFP12JKRAMCommand();
|
|
extern "C" void create__13JKRAramStreamFl();
|
|
extern "C" void create__9JKRDecompFl();
|
|
extern "C" void orderSync__9JKRDecompFPUcPUcUlUl();
|
|
extern "C" void checkCompressed__9JKRDecompFPUc();
|
|
extern "C" void __dt__10JSUPtrListFv();
|
|
extern "C" void initiate__10JSUPtrListFv();
|
|
extern "C" void panic_f__12JUTExceptionFPCciPCce();
|
|
extern "C" void DCStoreRangeNoSync();
|
|
extern "C" void OSDisableInterrupts();
|
|
extern "C" void OSRestoreInterrupts();
|
|
extern "C" void OSInitMessageQueue();
|
|
extern "C" void OSReceiveMessage();
|
|
extern "C" void OSInitMutex();
|
|
extern "C" void OSLockMutex();
|
|
extern "C" void OSUnlockMutex();
|
|
extern "C" void OSResumeThread();
|
|
extern "C" void ARAlloc();
|
|
extern "C" void ARInit();
|
|
extern "C" void ARGetSize();
|
|
extern "C" void ARQInit();
|
|
extern "C" void __register_global_object();
|
|
extern "C" void _savegpr_22();
|
|
extern "C" void _savegpr_23();
|
|
extern "C" void _savegpr_25();
|
|
extern "C" void _savegpr_27();
|
|
extern "C" void _savegpr_28();
|
|
extern "C" void _savegpr_29();
|
|
extern "C" void _restgpr_22();
|
|
extern "C" void _restgpr_23();
|
|
extern "C" void _restgpr_25();
|
|
extern "C" void _restgpr_27();
|
|
extern "C" void _restgpr_28();
|
|
extern "C" void _restgpr_29();
|
|
extern "C" u8 sSystemHeap__7JKRHeap[4];
|
|
extern "C" u8 sCurrentHeap__7JKRHeap[4];
|
|
|
|
//
|
|
// Declarations:
|
|
//
|
|
|
|
/* ############################################################################################## */
|
|
/* 804513C8-804513CC 0008C8 0004+00 3/3 9/9 0/0 .sbss sAramObject__7JKRAram */
|
|
u8 JKRAram::sAramObject[4];
|
|
|
|
/* 802D1FA4-802D2040 2CC8E4 009C+00 0/0 1/1 0/0 .text create__7JKRAramFUlUllll */
|
|
#pragma push
|
|
#pragma optimization_level 0
|
|
#pragma optimizewithasm off
|
|
asm void JKRAram::create(u32 param_0, u32 param_1, s32 param_2, s32 param_3, s32 param_4) {
|
|
nofralloc
|
|
#include "asm/JSystem/JKernel/JKRAram/create__7JKRAramFUlUllll.s"
|
|
}
|
|
#pragma pop
|
|
|
|
/* ############################################################################################## */
|
|
/* 803CC128-803CC138 029248 0010+00 1/1 0/0 0/0 .data sMessageBuffer__7JKRAram */
|
|
SECTION_DATA u8 JKRAram::sMessageBuffer[16] = {
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
};
|
|
|
|
/* 803CC138-803CC158 029258 0020+00 1/1 1/1 0/0 .data sMessageQueue__7JKRAram */
|
|
SECTION_DATA u8 JKRAram::sMessageQueue[32] = {
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
};
|
|
|
|
/* 803CC158-803CC168 029278 0010+00 2/2 0/0 0/0 .data __vt__7JKRAram */
|
|
SECTION_DATA extern void* __vt__7JKRAram[4] = {
|
|
(void*)NULL /* RTTI */,
|
|
(void*)NULL,
|
|
(void*)__dt__7JKRAramFv,
|
|
(void*)run__7JKRAramFv,
|
|
};
|
|
|
|
/* 802D2040-802D214C 2CC980 010C+00 1/1 0/0 0/0 .text __ct__7JKRAramFUlUll */
|
|
#pragma push
|
|
#pragma optimization_level 0
|
|
#pragma optimizewithasm off
|
|
asm JKRAram::JKRAram(u32 param_0, u32 param_1, s32 param_2) {
|
|
nofralloc
|
|
#include "asm/JSystem/JKernel/JKRAram/__ct__7JKRAramFUlUll.s"
|
|
}
|
|
#pragma pop
|
|
|
|
/* 802D214C-802D21DC 2CCA8C 0090+00 1/0 0/0 0/0 .text __dt__7JKRAramFv */
|
|
#pragma push
|
|
#pragma optimization_level 0
|
|
#pragma optimizewithasm off
|
|
asm JKRAram::~JKRAram() {
|
|
nofralloc
|
|
#include "asm/JSystem/JKernel/JKRAram/__dt__7JKRAramFv.s"
|
|
}
|
|
#pragma pop
|
|
|
|
/* 802D21DC-802D2248 2CCB1C 006C+00 1/0 0/0 0/0 .text run__7JKRAramFv */
|
|
#pragma push
|
|
#pragma optimization_level 0
|
|
#pragma optimizewithasm off
|
|
asm void JKRAram::run() {
|
|
nofralloc
|
|
#include "asm/JSystem/JKernel/JKRAram/run__7JKRAramFv.s"
|
|
}
|
|
#pragma pop
|
|
|
|
/* 802D2248-802D22DC 2CCB88 0094+00 2/2 0/0 0/0 .text
|
|
* checkOkAddress__7JKRAramFPUcUlP12JKRAramBlockUl */
|
|
#pragma push
|
|
#pragma optimization_level 0
|
|
#pragma optimizewithasm off
|
|
asm void JKRAram::checkOkAddress(u8* param_0, u32 param_1, JKRAramBlock* param_2, u32 param_3) {
|
|
nofralloc
|
|
#include "asm/JSystem/JKernel/JKRAram/checkOkAddress__7JKRAramFPUcUlP12JKRAramBlockUl.s"
|
|
}
|
|
#pragma pop
|
|
|
|
/* 802D22DC-802D233C 2CCC1C 0060+00 1/1 0/0 0/0 .text changeGroupIdIfNeed__7JKRAramFPUci
|
|
*/
|
|
#pragma push
|
|
#pragma optimization_level 0
|
|
#pragma optimizewithasm off
|
|
asm void JKRAram::changeGroupIdIfNeed(u8* param_0, int param_1) {
|
|
nofralloc
|
|
#include "asm/JSystem/JKernel/JKRAram/changeGroupIdIfNeed__7JKRAramFPUci.s"
|
|
}
|
|
#pragma pop
|
|
|
|
/* 802D233C-802D25B4 2CCC7C 0278+00 0/0 3/3 0/0 .text
|
|
* mainRamToAram__7JKRAramFPUcUlUl15JKRExpandSwitchUlP7JKRHeapiPUl */
|
|
#pragma push
|
|
#pragma optimization_level 0
|
|
#pragma optimizewithasm off
|
|
asm void JKRAram::mainRamToAram(u8* param_0, u32 param_1, u32 param_2, JKRExpandSwitch param_3,
|
|
u32 param_4, JKRHeap* param_5, int param_6, u32* param_7) {
|
|
nofralloc
|
|
#include "asm/JSystem/JKernel/JKRAram/mainRamToAram__7JKRAramFPUcUlUl15JKRExpandSwitchUlP7JKRHeapiPUl.s"
|
|
}
|
|
#pragma pop
|
|
|
|
/* 802D25B4-802D2830 2CCEF4 027C+00 0/0 6/6 0/0 .text
|
|
* aramToMainRam__7JKRAramFUlPUcUl15JKRExpandSwitchUlP7JKRHeapiPUl */
|
|
#pragma push
|
|
#pragma optimization_level 0
|
|
#pragma optimizewithasm off
|
|
asm void JKRAram::aramToMainRam(u32 param_0, u8* param_1, u32 param_2, JKRExpandSwitch param_3,
|
|
u32 param_4, JKRHeap* param_5, int param_6, u32* param_7) {
|
|
nofralloc
|
|
#include "asm/JSystem/JKernel/JKRAram/aramToMainRam__7JKRAramFUlPUcUl15JKRExpandSwitchUlP7JKRHeapiPUl.s"
|
|
}
|
|
#pragma pop
|
|
|
|
/* ############################################################################################## */
|
|
/* 804342D0-804342DC 060FF0 000C+00 1/1 0/0 0/0 .bss @492 */
|
|
static u8 lit_492[12];
|
|
|
|
/* 804342DC-804342E8 060FFC 000C+00 1/1 0/0 0/0 .bss sAramCommandList__7JKRAram */
|
|
u8 JKRAram::sAramCommandList[12];
|
|
|
|
/* 804342E8-80434300 061008 0018+00 1/1 0/0 0/0 .bss decompMutex */
|
|
static u8 decompMutex[24];
|
|
|
|
/* 804508B8-804508C0 000338 0004+04 1/1 1/1 0/0 .sdata sSZSBufferSize__7JKRAram */
|
|
SECTION_SDATA u32 JKRAram::sSZSBufferSize[1 + 1 /* padding */] = {
|
|
0x00000400,
|
|
/* padding */
|
|
0x00000000,
|
|
};
|
|
|
|
/* 804513CC-804513D0 0008CC 0004+00 3/3 0/0 0/0 .sbss szpBuf */
|
|
static u8 szpBuf[4];
|
|
|
|
/* 804513D0-804513D4 0008D0 0004+00 3/3 0/0 0/0 .sbss szpEnd */
|
|
static u8 szpEnd[4];
|
|
|
|
/* 804513D4-804513D8 0008D4 0004+00 2/2 0/0 0/0 .sbss refBuf */
|
|
static u8 refBuf[4];
|
|
|
|
/* 804513D8-804513DC 0008D8 0004+00 2/2 0/0 0/0 .sbss refEnd */
|
|
static u8 refEnd[4];
|
|
|
|
/* 804513DC-804513E0 0008DC 0004+00 2/2 0/0 0/0 .sbss refCurrent */
|
|
static u8 refCurrent[4];
|
|
|
|
/* 804513E0-804513E4 0008E0 0004+00 3/3 0/0 0/0 .sbss srcOffset */
|
|
static u8 srcOffset[4];
|
|
|
|
/* 804513E4-804513E8 0008E4 0004+00 4/4 0/0 0/0 .sbss transLeft */
|
|
static u8 transLeft[4];
|
|
|
|
/* 804513E8-804513EC 0008E8 0004+00 3/3 0/0 0/0 .sbss srcLimit */
|
|
static u8 srcLimit[4];
|
|
|
|
/* 804513EC-804513F0 0008EC 0004+00 3/3 0/0 0/0 .sbss srcAddress */
|
|
static u8 srcAddress[4];
|
|
|
|
/* 804513F0-804513F4 0008F0 0004+00 2/2 0/0 0/0 .sbss fileOffset */
|
|
static u8 fileOffset[4];
|
|
|
|
/* 804513F4-804513F8 0008F4 0004+00 2/2 0/0 0/0 .sbss readCount */
|
|
static u8 readCount[4];
|
|
|
|
/* 804513F8-804513FC 0008F8 0004+00 2/2 0/0 0/0 .sbss maxDest */
|
|
static u8 maxDest[4];
|
|
|
|
/* 804513FC-80451400 0008FC 0004+00 1/1 0/0 0/0 .sbss None */
|
|
static u8 data_804513FC[4];
|
|
|
|
/* 80451400-80451404 000900 0004+00 2/2 0/0 0/0 .sbss tsPtr */
|
|
static u8 tsPtr[4];
|
|
|
|
/* 80451404-80451408 000904 0004+00 1/1 0/0 0/0 .sbss tsArea */
|
|
static u8 tsArea[4];
|
|
|
|
/* 802D2830-802D29A0 2CD170 0170+00 1/1 0/0 0/0 .text
|
|
* JKRDecompressFromAramToMainRam__FUlPvUlUlUlPUl */
|
|
#pragma push
|
|
#pragma optimization_level 0
|
|
#pragma optimizewithasm off
|
|
static asm void JKRDecompressFromAramToMainRam(u32 param_0, void* param_1, u32 param_2, u32 param_3,
|
|
u32 param_4, u32* param_5) {
|
|
nofralloc
|
|
#include "asm/JSystem/JKernel/JKRAram/JKRDecompressFromAramToMainRam__FUlPvUlUlUlPUl.s"
|
|
}
|
|
#pragma pop
|
|
|
|
/* 802D29A0-802D2C40 2CD2E0 02A0+00 1/1 0/0 0/0 .text decompSZS_subroutine__FPUcPUc */
|
|
#pragma push
|
|
#pragma optimization_level 0
|
|
#pragma optimizewithasm off
|
|
static asm void decompSZS_subroutine(u8* param_0, u8* param_1) {
|
|
nofralloc
|
|
#include "asm/JSystem/JKernel/JKRAram/decompSZS_subroutine__FPUcPUc.s"
|
|
}
|
|
#pragma pop
|
|
|
|
/* 802D2C40-802D2CE4 2CD580 00A4+00 1/1 0/0 0/0 .text firstSrcData__Fv */
|
|
#pragma push
|
|
#pragma optimization_level 0
|
|
#pragma optimizewithasm off
|
|
static asm void firstSrcData() {
|
|
nofralloc
|
|
#include "asm/JSystem/JKernel/JKRAram/firstSrcData__Fv.s"
|
|
}
|
|
#pragma pop
|
|
|
|
/* 802D2CE4-802D2DAC 2CD624 00C8+00 1/1 0/0 0/0 .text nextSrcData__FPUc */
|
|
#pragma push
|
|
#pragma optimization_level 0
|
|
#pragma optimizewithasm off
|
|
static asm void nextSrcData(u8* param_0) {
|
|
nofralloc
|
|
#include "asm/JSystem/JKernel/JKRAram/nextSrcData__FPUc.s"
|
|
}
|
|
#pragma pop
|
|
|
|
/* 802D2DAC-802D2DF0 2CD6EC 0044+00 0/0 1/0 0/0 .text __sinit_JKRAram_cpp */
|
|
#pragma push
|
|
#pragma optimization_level 0
|
|
#pragma optimizewithasm off
|
|
asm void __sinit_JKRAram_cpp() {
|
|
nofralloc
|
|
#include "asm/JSystem/JKernel/JKRAram/__sinit_JKRAram_cpp.s"
|
|
}
|
|
#pragma pop
|
|
|
|
#pragma push
|
|
#pragma force_active on
|
|
SECTION_CTORS void* const _ctors_802D2DAC = (void*)__sinit_JKRAram_cpp;
|
|
#pragma pop
|
|
|
|
/* 802D2DF0-802D2E44 2CD730 0054+00 1/1 1/1 0/0 .text __dt__23JSUList<12JKRAMCommand>Fv
|
|
*/
|
|
#pragma push
|
|
#pragma optimization_level 0
|
|
#pragma optimizewithasm off
|
|
extern "C" asm void func_802D2DF0() {
|
|
nofralloc
|
|
#include "asm/JSystem/JKernel/JKRAram/func_802D2DF0.s"
|
|
}
|
|
#pragma pop
|
|
|
|
/* 8039D078-8039D0B8 0296D8 003C+04 1/1 0/0 0/0 .rodata @stringBase0 */
|
|
#pragma push
|
|
#pragma force_active on
|
|
#pragma section ".dead"
|
|
SECTION_DEAD static char const* const stringBase_8039D078 = "JKRAram.cpp";
|
|
SECTION_DEAD static char const* const stringBase_8039D084 = "%s";
|
|
SECTION_DEAD static char const* const stringBase_8039D087 = ":::address not 32Byte aligned.";
|
|
SECTION_DEAD static char const* const stringBase_8039D0A6 = "bad aramSync\n";
|
|
/* @stringBase0 padding */
|
|
SECTION_DEAD static char const* const pad_8039D0B4 = "\0\0\0";
|
|
#pragma pop
|