ported over f_pc

This commit is contained in:
lepelog
2021-04-01 12:06:29 +02:00
parent 87bc0e711b
commit 53c6aa6c8b
62 changed files with 2202 additions and 3049 deletions
+23 -53
View File
@@ -6,73 +6,43 @@
#include "f_pc/f_pc_load.h"
#include "dol2asm.h"
#include "dolphin/types.h"
#include "SSystem/SComponent/c_phase.h"
//
// Forward References:
//
void fpcLd_Use(s16);
static void fpcLd_IsLoaded(s16);
void fpcLd_Free(s16);
void fpcLd_Load(s16);
extern "C" void fpcLd_Use__Fs();
extern "C" static void fpcLd_IsLoaded__Fs();
extern "C" void fpcLd_Free__Fs();
extern "C" void fpcLd_Load__Fs();
//
// External References:
//
void cDyl_IsLinked(s16);
void cDyl_Unlink(s16);
void cDyl_LinkASync(s16);
extern "C" void cDyl_IsLinked__Fs();
extern "C" void cDyl_Unlink__Fs();
extern "C" void cDyl_LinkASync__Fs();
extern s32 cDyl_IsLinked(s16 procName);
extern s32 cDyl_Unlink(s16 procName);
extern s32 cDyl_LinkASync(s16 procName);
//
// Declarations:
//
/* 80021FB8-80022008 0050+00 s=0 e=1 z=0 None .text fpcLd_Use__Fs */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void fpcLd_Use(s16 param_0) {
nofralloc
#include "asm/f_pc/f_pc_load/fpcLd_Use__Fs.s"
BOOL fpcLd_Use(s16 procName) {
if (fpcLd_IsLoaded(procName) == TRUE && fpcLd_Load(procName) == cPhs_COMPLEATE_e)
return TRUE;
return FALSE;
}
#pragma pop
/* 80022008-8002202C 0024+00 s=1 e=0 z=0 None .text fpcLd_IsLoaded__Fs */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm static void fpcLd_IsLoaded(s16 param_0) {
nofralloc
#include "asm/f_pc/f_pc_load/fpcLd_IsLoaded__Fs.s"
s32 fpcLd_IsLoaded(s16 procName) {
return cDyl_IsLinked((int)procName);
}
#pragma pop
/* 8002202C-80022050 0024+00 s=0 e=2 z=0 None .text fpcLd_Free__Fs */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void fpcLd_Free(s16 param_0) {
nofralloc
#include "asm/f_pc/f_pc_load/fpcLd_Free__Fs.s"
void fpcLd_Free(s16 procName) {
cDyl_Unlink((int)procName);
}
#pragma pop
/* 80022050-800220A0 0050+00 s=1 e=1 z=0 None .text fpcLd_Load__Fs */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void fpcLd_Load(s16 param_0) {
nofralloc
#include "asm/f_pc/f_pc_load/fpcLd_Load__Fs.s"
s32 fpcLd_Load(s16 procName) {
s32 phase = cDyl_LinkASync((int)procName);
switch (phase) {
case cPhs_COMPLEATE_e:
return cPhs_COMPLEATE_e;
case 0:
return 0;
default:
return cPhs_ERROR_e;
}
}
#pragma pop