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
+303 -118
View File
@@ -1,133 +1,318 @@
#include "JSystem/JKernel/JKRDvdFile/JKRDvdFile.h"
#include "global.h"
//
// Generated By: dol2asm
// Translation Unit: JKRDvdFile
//
extern "C" {
void panic_f__12JUTExceptionFPCciPCce(const char* filename, int line, const char* format, ...);
#include "dol2asm.h"
#include "dolphin/types.h"
#include "JSystem/JKernel/JKRDvdFile.h"
//
// Types:
//
struct JUTException {
/* 802E21FC */ void panic_f(char const*, int, char const*, ...);
};
struct JSUPtrLink {
/* 802DBDFC */ JSUPtrLink(void*);
/* 802DBE14 */ ~JSUPtrLink();
};
struct JSUPtrList {
/* 802DBEAC */ ~JSUPtrList();
/* 802DBF14 */ void initiate();
/* 802DBF4C */ void append(JSUPtrLink*);
/* 802DC15C */ void remove(JSUPtrLink*);
};
template <typename A0>
struct JSUList { };
/* JSUList<JKRDvdFile> */
struct JSUList__template8 {
/* 802D9B44 */ ~JSUList__template8();
};
struct DVDFileInfo {
};
struct JKRDvdFile {
/* 802D96A0 */ JKRDvdFile(s32);
/* 802D9584 */ JKRDvdFile();
/* 802D95F8 */ JKRDvdFile(char const*);
/* 802D9748 */ ~JKRDvdFile();
/* 802D97E4 */ void initiate();
/* 802D98C4 */ void open(s32);
/* 802D9850 */ void open(char const*);
/* 802D9938 */ void close();
/* 802D99B4 */ void readData(void*, s32, s32);
/* 802D9A68 */ s32 writeData(void const*, s32, s32);
/* 802D9A70 */ void sync();
/* 802D9AC4 */ void doneProcess(s32, DVDFileInfo*);
/* 802D9AF8 */ void getFileSize() const;
};
struct JKRDisposer {
/* 802D147C */ JKRDisposer();
/* 802D14E4 */ ~JKRDisposer();
};
//
// Forward References:
//
extern "C" extern char const* const JKRDvdFile__stringBase0;
extern "C" void __ct__10JKRDvdFileFv();
extern "C" void __ct__10JKRDvdFileFPCc();
extern "C" void __ct__10JKRDvdFileFl();
extern "C" void __dt__10JKRDvdFileFv();
extern "C" void initiate__10JKRDvdFileFv();
extern "C" void open__10JKRDvdFileFPCc();
extern "C" void open__10JKRDvdFileFl();
extern "C" void close__10JKRDvdFileFv();
extern "C" void readData__10JKRDvdFileFPvll();
extern "C" s32 writeData__10JKRDvdFileFPCvll();
extern "C" void sync__10JKRDvdFileFv();
extern "C" void doneProcess__10JKRDvdFileFlP11DVDFileInfo();
extern "C" void getFileSize__10JKRDvdFileCFv();
extern "C" void __sinit_JKRDvdFile_cpp();
extern "C" void func_802D9B44();
extern "C" extern char const* const JKRDvdFile__stringBase0;
//
// External References:
//
void operator delete(void*);
extern "C" extern void* __vt__7JKRFile[8];
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 append__10JSUPtrListFP10JSUPtrLink();
extern "C" void remove__10JSUPtrListFP10JSUPtrLink();
extern "C" void panic_f__12JUTExceptionFPCciPCce();
extern "C" void OSInitMessageQueue();
extern "C" void OSSendMessage();
extern "C" void OSReceiveMessage();
extern "C" void OSInitMutex();
extern "C" void OSLockMutex();
extern "C" void OSUnlockMutex();
extern "C" void OSGetCurrentThread();
extern "C" void DVDFastOpen();
extern "C" void DVDOpen();
extern "C" void DVDClose();
extern "C" void DVDReadAsyncPrio();
extern "C" void DVDGetCommandBlockStatus();
extern "C" void __register_global_object();
extern "C" void _savegpr_27();
extern "C" void _savegpr_29();
extern "C" void _restgpr_27();
extern "C" void _restgpr_29();
extern "C" extern void* __vt__7JKRFile[8];
//
// Declarations:
//
/* ############################################################################################## */
/* 803CC438-803CC460 0024+04 s=4 e=0 z=0 None .data __vt__10JKRDvdFile */
SECTION_DATA static void* __vt__10JKRDvdFile[9 + 1 /* padding */] = {
(void*)NULL,
(void*)NULL,
(void*)__dt__10JKRDvdFileFv,
(void*)open__10JKRDvdFileFPCc,
(void*)close__10JKRDvdFileFv,
(void*)readData__10JKRDvdFileFPvll,
(void*)writeData__10JKRDvdFileFPCvll,
(void*)getFileSize__10JKRDvdFileCFv,
(void*)open__10JKRDvdFileFl,
/* padding */
NULL,
};
/* 802D9584-802D95F8 0074+00 s=0 e=3 z=0 None .text __ct__10JKRDvdFileFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm JKRDvdFile::JKRDvdFile() {
nofralloc
#include "asm/JSystem/JKernel/JKRDvdFile/__ct__10JKRDvdFileFv.s"
}
#pragma pop
/* 802D95F8-802D96A0 00A8+00 s=0 e=2 z=0 None .text __ct__10JKRDvdFileFPCc */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm JKRDvdFile::JKRDvdFile(char const* param_0) {
nofralloc
#include "asm/JSystem/JKernel/JKRDvdFile/__ct__10JKRDvdFileFPCc.s"
}
#pragma pop
/* 802D96A0-802D9748 00A8+00 s=0 e=3 z=0 None .text __ct__10JKRDvdFileFl */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm JKRDvdFile::JKRDvdFile(s32 param_0) {
nofralloc
#include "asm/JSystem/JKernel/JKRDvdFile/__ct__10JKRDvdFileFl.s"
}
#pragma pop
/* 802D9748-802D97E4 009C+00 s=1 e=5 z=0 None .text __dt__10JKRDvdFileFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm JKRDvdFile::~JKRDvdFile() {
nofralloc
#include "asm/JSystem/JKernel/JKRDvdFile/__dt__10JKRDvdFileFv.s"
}
#pragma pop
/* 802D97E4-802D9850 006C+00 s=3 e=0 z=0 None .text initiate__10JKRDvdFileFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void JKRDvdFile::initiate() {
nofralloc
#include "asm/JSystem/JKernel/JKRDvdFile/initiate__10JKRDvdFileFv.s"
}
#pragma pop
/* ############################################################################################## */
/* 80434360-8043436C 000C+00 s=1 e=0 z=0 None .bss @657 */
static u8 lit_657[12];
/* 8043436C-80434378 000C+00 s=4 e=0 z=0 None .bss sDvdList__10JKRDvdFile */
static u8 sDvdList__10JKRDvdFile[12];
/* 802D9850-802D98C4 0074+00 s=1 e=1 z=0 None .text open__10JKRDvdFileFPCc */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void JKRDvdFile::open(char const* param_0) {
nofralloc
#include "asm/JSystem/JKernel/JKRDvdFile/open__10JKRDvdFileFPCc.s"
}
#pragma pop
/* 802D98C4-802D9938 0074+00 s=1 e=2 z=0 None .text open__10JKRDvdFileFl */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void JKRDvdFile::open(s32 param_0) {
nofralloc
#include "asm/JSystem/JKernel/JKRDvdFile/open__10JKRDvdFileFl.s"
}
#pragma pop
/* ############################################################################################## */
/* 8039D260-8039D290 0029+07 s=1 e=0 z=0 None .rodata @stringBase0 */
#pragma push
#pragma force_active on
#pragma section ".dead"
SECTION_DEAD char const* const stringBase_8039D260 = "JKRDvdFile.cpp";
SECTION_DEAD char const* const stringBase_8039D26F = "%s";
SECTION_DEAD char const* const stringBase_8039D272 = "cannot close DVD file\n";
/* @stringBase0 padding */
SECTION_DEAD static char const* const pad_8039D289 = "\0\0\0\0\0\0";
#pragma pop
/* 802D9938-802D99B4 007C+00 s=1 e=0 z=0 None .text close__10JKRDvdFileFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void JKRDvdFile::close() {
nofralloc
#include "asm/JSystem/JKernel/JKRDvdFile/close__10JKRDvdFileFv.s"
}
#pragma pop
/* 802D99B4-802D9A68 00B4+00 s=1 e=0 z=0 None .text readData__10JKRDvdFileFPvll */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void JKRDvdFile::readData(void* param_0, s32 param_1, s32 param_2) {
nofralloc
#include "asm/JSystem/JKernel/JKRDvdFile/readData__10JKRDvdFileFPvll.s"
}
#pragma pop
/* 802D9A68-802D9A70 0008+00 s=1 e=0 z=0 None .text writeData__10JKRDvdFileFPCvll */
s32 JKRDvdFile::writeData(void const* param_0, s32 param_1, s32 param_2) {
return -1;
}
extern char lbl_8039D260[12]; // "JKRDvdFile.cpp"
JKRDvdFile::JKRDvdFile() : JKRFile(), mDvdLink(this) {
initiate();
/* 802D9A70-802D9AC4 0054+00 s=1 e=0 z=0 None .text sync__10JKRDvdFileFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void JKRDvdFile::sync() {
nofralloc
#include "asm/JSystem/JKernel/JKRDvdFile/sync__10JKRDvdFileFv.s"
}
#pragma pop
JKRDvdFile::JKRDvdFile(const char* name) : JKRFile(), mDvdLink(this) {
initiate();
bool result = open(name);
mIsAvailable = result;
// weird code. doesn't match without this, maybe remains from assert or something?
if (mIsAvailable)
return;
else
return;
/* 802D9AC4-802D9AF8 0034+00 s=1 e=0 z=0 None .text doneProcess__10JKRDvdFileFlP11DVDFileInfo */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void JKRDvdFile::doneProcess(s32 param_0, DVDFileInfo* param_1) {
nofralloc
#include "asm/JSystem/JKernel/JKRDvdFile/doneProcess__10JKRDvdFileFlP11DVDFileInfo.s"
}
#pragma pop
JKRDvdFile::JKRDvdFile(long entryNum) : JKRFile(), mDvdLink(this) {
initiate();
bool result = open(entryNum);
mIsAvailable = result;
// weird code. doesn't match without this, maybe remains from assert or something?
if (mIsAvailable)
return;
else
return;
/* 802D9AF8-802D9B00 0008+00 s=1 e=0 z=0 None .text getFileSize__10JKRDvdFileCFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void JKRDvdFile::getFileSize() const {
nofralloc
#include "asm/JSystem/JKernel/JKRDvdFile/getFileSize__10JKRDvdFileCFv.s"
}
#pragma pop
JKRDvdFile::~JKRDvdFile() {
close();
/* 802D9B00-802D9B44 0044+00 s=0 e=1 z=0 None .text __sinit_JKRDvdFile_cpp */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
extern "C" asm void __sinit_JKRDvdFile_cpp() {
nofralloc
#include "asm/JSystem/JKernel/JKRDvdFile/__sinit_JKRDvdFile_cpp.s"
}
#pragma pop
void JKRDvdFile::initiate(void) {
mDvdFile = this;
OSInitMutex(&mMutex1);
OSInitMutex(&mMutex2);
OSInitMessageQueue(&mMessageQueue2, &mMessage2, 1);
OSInitMessageQueue(&mMessageQueue1, &mMessage1, 1);
mOSThread = NULL;
field_0x50 = 0;
field_0x58 = 0;
/* 802D9B44-802D9B98 0054+00 s=1 e=0 z=0 None .text __dt__21JSUList<10JKRDvdFile>Fv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm JSUList__template8::~JSUList__template8() {
nofralloc
#include "asm/JSystem/JKernel/JKRDvdFile/func_802D9B44.s"
}
#pragma pop
bool JKRDvdFile::open(const char* param_1) {
if (!mIsAvailable) {
mIsAvailable = DVDOpen(param_1, &mFileInfo);
if (mIsAvailable) {
getDvdList().append(&mDvdLink);
getStatus();
}
}
return mIsAvailable;
}
bool JKRDvdFile::open(long entryNum) {
if (!mIsAvailable) {
mIsAvailable = DVDFastOpen(entryNum, &mFileInfo);
if (mIsAvailable) {
getDvdList().append(&mDvdLink);
getStatus();
}
}
return mIsAvailable;
}
void JKRDvdFile::close() {
if (mIsAvailable) {
s32 result = DVDClose(&mFileInfo);
if (result != 0) {
mIsAvailable = false;
getDvdList().remove(&mDvdLink);
} else {
const char* filename = lbl_8039D260; // "JKRDvdFile.cpp"
const char* format = lbl_8039D260 + 0x0F; // "%s"
const char* arg1 = lbl_8039D260 + 0x12; // "cannot close DVD file\n"
panic_f__12JUTExceptionFPCciPCce(filename, 0xd5, format, arg1);
}
}
}
s32 JKRDvdFile::readData(void* param_1, long length, long param_3) {
JUT_ASSERT((length & 0x1f) == 0);
OSLockMutex(&mMutex1);
if (mOSThread) {
OSUnlockMutex(&mMutex1);
return -1;
}
mOSThread = OSGetCurrentThread();
s32 result = -1;
s32 readAsyncResult =
DVDReadAsyncPrio(&mFileInfo, param_1, length, param_3, JKRDvdFile::doneProcess, 2);
if (readAsyncResult) {
result = sync();
}
mOSThread = NULL;
OSUnlockMutex(&mMutex1);
return result;
}
s32 JKRDvdFile::writeData(const void*, long, long) {
return -1;
}
s32 JKRDvdFile::sync(void) {
OSMessage message;
OSLockMutex(&mMutex1);
OSReceiveMessage(&mMessageQueue2, &message, 1);
mOSThread = NULL;
OSUnlockMutex(&mMutex1);
return (int)message;
}
void JKRDvdFile::doneProcess(long id, DVDFileInfo* fileInfo) {
// fileInfo->field_0x3c looks like some kind of user pointer?
JKRDvdFile* dvdFile = *(JKRDvdFile**)((u8*)fileInfo + 0x3c);
OSSendMessage(&dvdFile->mMessageQueue2, (OSMessage)id, OS_MESSAGE_NON_BLOCKING);
}
s32 JKRDvdFile::getFileSize(void) const {
return mFileInfo.length;
}