dol2asm OK

This commit is contained in:
Julgodis
2021-03-28 22:49:05 +02:00
parent 3d66902e1a
commit 1e95d29b60
60106 changed files with 4755966 additions and 1107376 deletions
+237 -131
View File
@@ -1,160 +1,266 @@
#include "JSystem/JKernel/JKRFileLoader/JKRFileLoader.h"
#include "global.h"
//
// Generated By: dol2asm
// Translation Unit: JKRFileLoader
//
extern "C" {
char* strcpy(char*, const char*);
int strcmp(const char*, const char*);
#include "dol2asm.h"
#include "dolphin/types.h"
#include "JSystem/JKernel/JKRFileLoader.h"
//
// Types:
//
struct JSUPtrList {
/* 802DBEAC */ ~JSUPtrList();
/* 802DBF14 */ void initiate();
};
struct JSUPtrLink {
/* 802DBDFC */ JSUPtrLink(void*);
/* 802DBE14 */ ~JSUPtrLink();
};
template <typename A0>
struct JSUList { };
/* JSUList<JKRFileLoader> */
struct JSUList__template7 {
/* 802D45E4 */ ~JSUList__template7();
};
struct JKRFileLoader {
/* 802D40F0 */ JKRFileLoader();
/* 802D4148 */ ~JKRFileLoader();
/* 802D41D4 */ void unmount();
/* 802D4224 */ void getGlbResource(char const*);
/* 802D4270 */ void getGlbResource(char const*, JKRFileLoader*);
/* 802D4308 */ void removeResource(void*, JKRFileLoader*);
/* 802D43A0 */ void detachResource(void*, JKRFileLoader*);
/* 802D4438 */ void findVolume(char const**);
/* 802D44C4 */ void fetchVolumeName(char*, s32, char const*);
};
struct JKRDisposer {
/* 802D147C */ JKRDisposer();
/* 802D14E4 */ ~JKRDisposer();
};
//
// Forward References:
//
extern "C" extern char const* const JKRFileLoader__stringBase0;
extern "C" extern u8 sVolumeList__13JKRFileLoader[12];
extern "C" extern u8 sCurrentVolume__13JKRFileLoader[4 + 4 /* padding */];
extern "C" void __ct__13JKRFileLoaderFv();
extern "C" void __dt__13JKRFileLoaderFv();
extern "C" void unmount__13JKRFileLoaderFv();
extern "C" void getGlbResource__13JKRFileLoaderFPCc();
extern "C" void getGlbResource__13JKRFileLoaderFPCcP13JKRFileLoader();
extern "C" void removeResource__13JKRFileLoaderFPvP13JKRFileLoader();
extern "C" void detachResource__13JKRFileLoaderFPvP13JKRFileLoader();
extern "C" void findVolume__13JKRFileLoaderFPPCc();
extern "C" void fetchVolumeName__13JKRFileLoaderFPclPCc();
extern "C" void __sinit_JKRFileLoader_cpp();
extern "C" void func_802D45E4();
extern "C" extern char const* const JKRFileLoader__stringBase0;
extern "C" extern u8 sVolumeList__13JKRFileLoader[12];
extern "C" extern u8 sCurrentVolume__13JKRFileLoader[4 + 4 /* padding */];
//
// External References:
//
void operator delete(void*);
extern "C" extern u8 __lower_map[256];
extern "C" void __dl__FPv();
extern "C" void __ct__11JKRDisposerFv();
extern "C" void __dt__11JKRDisposerFv();
extern "C" void __ct__10JSUPtrLinkFPv();
extern "C" void __dt__10JSUPtrLinkFv();
extern "C" void __dt__10JSUPtrListFv();
extern "C" void initiate__10JSUPtrListFv();
extern "C" void __register_global_object();
extern "C" void _savegpr_29();
extern "C" void _restgpr_29();
extern "C" void strcmp();
extern "C" void strcpy();
extern "C" extern u8 __lower_map[256];
//
// Declarations:
//
/* ############################################################################################## */
/* 803CC1C8-803CC208 003C+04 s=2 e=0 z=0 None .data __vt__13JKRFileLoader */
SECTION_DATA static void* __vt__13JKRFileLoader[15 + 1 /* padding */] = {
(void*)NULL,
(void*)NULL,
(void*)__dt__13JKRFileLoaderFv,
(void*)unmount__13JKRFileLoaderFv,
(void*)NULL,
(void*)NULL,
(void*)NULL,
(void*)NULL,
(void*)NULL,
(void*)NULL,
(void*)NULL,
(void*)NULL,
(void*)NULL,
(void*)NULL,
(void*)NULL,
/* padding */
NULL,
};
/* 802D40F0-802D4148 0058+00 s=0 e=2 z=0 None .text __ct__13JKRFileLoaderFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm JKRFileLoader::JKRFileLoader() {
nofralloc
#include "asm/JSystem/JKernel/JKRFileLoader/__ct__13JKRFileLoaderFv.s"
}
#pragma pop
extern const char lbl_8039D150[16]; // "/"
extern const char lbl_803D2D18[256]; // MSL_C.PPCEABI.bare.H::__lower_map
// todo: static initialization is working uncomment this
// JSUList<JKRFileLoader> JKRFileLoader::sVolumeList;
/* ############################################################################################## */
/* 80451418-80451420 0004+04 s=2 e=3 z=0 None .sbss sCurrentVolume__13JKRFileLoader */
u8 sCurrentVolume__13JKRFileLoader[4 + 4 /* padding */];
JKRFileLoader::JKRFileLoader(void)
: mFileLoaderLink(this), mVolumeName(NULL), mVolumeType(0), mMountCount(0) {}
JKRFileLoader::~JKRFileLoader() {
if (getCurrentVolume() == this) {
setCurrentVolume(NULL);
}
/* 802D4148-802D41D4 008C+00 s=1 e=2 z=0 None .text __dt__13JKRFileLoaderFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm JKRFileLoader::~JKRFileLoader() {
nofralloc
#include "asm/JSystem/JKernel/JKRFileLoader/__dt__13JKRFileLoaderFv.s"
}
#pragma pop
void JKRFileLoader::unmount(void) {
s32 count = mMountCount;
if (mMountCount != 0) {
count--;
mMountCount = count;
if (count == 0) {
delete this;
}
}
/* 802D41D4-802D4224 0050+00 s=1 e=6 z=0 None .text unmount__13JKRFileLoaderFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void JKRFileLoader::unmount() {
nofralloc
#include "asm/JSystem/JKernel/JKRFileLoader/unmount__13JKRFileLoaderFv.s"
}
#pragma pop
void* JKRFileLoader::getGlbResource(const char* name) {
const char* name_reference[1];
name_reference[0] = name;
JKRFileLoader* fileLoader = findVolume(name_reference);
void* resource;
if (fileLoader == NULL) {
resource = NULL;
} else {
resource = fileLoader->getResource(name_reference[0]);
}
return resource;
/* 802D4224-802D4270 004C+00 s=0 e=2 z=0 None .text getGlbResource__13JKRFileLoaderFPCc */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void JKRFileLoader::getGlbResource(char const* param_0) {
nofralloc
#include "asm/JSystem/JKernel/JKRFileLoader/getGlbResource__13JKRFileLoaderFPCc.s"
}
#pragma pop
void* JKRFileLoader::getGlbResource(const char* name, JKRFileLoader* fileLoader) {
void* resource = NULL;
if (fileLoader) {
return fileLoader->getResource(0, name);
}
JSUList<JKRFileLoader>& volumeList = getVolumeList();
JSUListIterator<JKRFileLoader> iterator;
for (iterator = volumeList.getFirst(); iterator != volumeList.getEnd(); ++iterator) {
resource = iterator->getResource(0, name);
if (resource)
break;
}
return resource;
/* ############################################################################################## */
/* 80434348-80434354 000C+00 s=1 e=0 z=0 None .bss @2182 */
static u8 lit_2182[12];
/* 80434354-80434360 000C+00 s=5 e=14 z=0 None .bss sVolumeList__13JKRFileLoader */
u8 sVolumeList__13JKRFileLoader[12];
/* 802D4270-802D4308 0098+00 s=0 e=29 z=1 None .text getGlbResource__13JKRFileLoaderFPCcP13JKRFileLoader */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void JKRFileLoader::getGlbResource(char const* param_0, JKRFileLoader* param_1) {
nofralloc
#include "asm/JSystem/JKernel/JKRFileLoader/getGlbResource__13JKRFileLoaderFPCcP13JKRFileLoader.s"
}
#pragma pop
bool JKRFileLoader::removeResource(void* resource, JKRFileLoader* fileLoader) {
if (fileLoader) {
return fileLoader->removeResource(resource);
}
JSUList<JKRFileLoader>& volumeList = getVolumeList();
JSUListIterator<JKRFileLoader> iterator;
for (iterator = volumeList.getFirst(); iterator != volumeList.getEnd(); ++iterator) {
if (iterator->removeResource(resource)) {
return true;
}
}
return false;
/* 802D4308-802D43A0 0098+00 s=0 e=1 z=0 None .text removeResource__13JKRFileLoaderFPvP13JKRFileLoader */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void JKRFileLoader::removeResource(void* param_0, JKRFileLoader* param_1) {
nofralloc
#include "asm/JSystem/JKernel/JKRFileLoader/removeResource__13JKRFileLoaderFPvP13JKRFileLoader.s"
}
#pragma pop
bool JKRFileLoader::detachResource(void* resource, JKRFileLoader* fileLoader) {
if (fileLoader) {
return fileLoader->detachResource(resource);
}
JSUList<JKRFileLoader>& volumeList = getVolumeList();
JSUListIterator<JKRFileLoader> iterator;
for (iterator = volumeList.getFirst(); iterator != volumeList.getEnd(); ++iterator) {
if (iterator->detachResource(resource)) {
return true;
}
}
return false;
/* 802D43A0-802D4438 0098+00 s=0 e=2 z=0 None .text detachResource__13JKRFileLoaderFPvP13JKRFileLoader */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void JKRFileLoader::detachResource(void* param_0, JKRFileLoader* param_1) {
nofralloc
#include "asm/JSystem/JKernel/JKRFileLoader/detachResource__13JKRFileLoaderFPvP13JKRFileLoader.s"
}
#pragma pop
JKRFileLoader* JKRFileLoader::findVolume(const char** volumeName) {
if (*volumeName[0] != '/') {
return getCurrentVolume();
}
char volumeNameBuffer[0x101];
*volumeName = fetchVolumeName(volumeNameBuffer, ARRAY_SIZE(volumeNameBuffer), *volumeName);
JSUList<JKRFileLoader>& volumeList = getVolumeList();
JSUListIterator<JKRFileLoader> iterator;
for (iterator = volumeList.getFirst(); iterator != volumeList.getEnd(); ++iterator) {
if (strcmp(volumeNameBuffer, iterator->mVolumeName) == 0) {
return iterator.getObject();
}
}
return NULL;
/* 802D4438-802D44C4 008C+00 s=1 e=0 z=0 None .text findVolume__13JKRFileLoaderFPPCc */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void JKRFileLoader::findVolume(char const** param_0) {
nofralloc
#include "asm/JSystem/JKernel/JKRFileLoader/findVolume__13JKRFileLoaderFPPCc.s"
}
#pragma pop
// matches, but lbl_804508C0 is accessed through r13
#ifdef NONMATCHING
const char* JKRFileLoader::fetchVolumeName(char* buffer, long bufferSize, const char* path) {
// lbl_803D2D18 = MSL_C.PPCEABI.bare.H::__lower_map
// lbl_8039D150 = JKernel::@stringBase0 "/"
// lbl_804508C0 = JKernel::rootPath$2498 "/"
// lbl_803D2D18 = MSL_C.PPCEABI.bare.H::__lower_map
if (strcmp(path, lbl_8039D150) == 0) {
strcpy(buffer, lbl_804508C0);
return lbl_804508C0;
}
/* ############################################################################################## */
/* 8039D150-8039D158 0002+06 s=1 e=0 z=0 None .rodata @stringBase0 */
#pragma push
#pragma force_active on
#pragma section ".dead"
SECTION_DEAD char const* const stringBase_8039D150 = "/";
/* @stringBase0 padding */
SECTION_DEAD static char const* const pad_8039D152 = "\0\0\0\0\0";
#pragma pop
path++;
while (*path != 0 && *path != '/') {
if (1 < bufferSize) {
u8 lower_char;
int ch = (int)*path;
if (ch == -1) {
lower_char = -1;
} else {
lower_char = lbl_803D2D18[ch & 0xFF];
}
/* 804508C0-804508C8 0002+06 s=1 e=0 z=0 None .sdata rootPath$2498 */
SECTION_SDATA static u8 rootPath[2 + 6 /* padding */] = {
0x2F, 0x00,
/* padding */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
*buffer = lower_char;
buffer++;
bufferSize--;
}
path++;
}
*buffer = '\0';
if (*path == '\0') {
path = lbl_804508C0;
}
return path;
/* 802D44C4-802D45A0 00DC+00 s=1 e=0 z=0 None .text fetchVolumeName__13JKRFileLoaderFPclPCc */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void JKRFileLoader::fetchVolumeName(char* param_0, s32 param_1, char const* param_2) {
nofralloc
#include "asm/JSystem/JKernel/JKRFileLoader/fetchVolumeName__13JKRFileLoaderFPclPCc.s"
}
#else
asm const char* JKRFileLoader::fetchVolumeName(char* buffer, long bufferSize, const char* path) {
nofralloc
#include "JSystem/JKernel/JKRFileLoader/asm/func_802D44C4.s"
#pragma pop
/* 802D45A0-802D45E4 0044+00 s=0 e=1 z=0 None .text __sinit_JKRFileLoader_cpp */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
extern "C" asm void __sinit_JKRFileLoader_cpp() {
nofralloc
#include "asm/JSystem/JKernel/JKRFileLoader/__sinit_JKRFileLoader_cpp.s"
}
#endif
#pragma pop
/* 802D45E4-802D4638 0054+00 s=1 e=0 z=0 None .text __dt__24JSUList<13JKRFileLoader>Fv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm JSUList__template7::~JSUList__template7() {
nofralloc
#include "asm/JSystem/JKernel/JKRFileLoader/func_802D45E4.s"
}
#pragma pop