summaryrefslogtreecommitdiff
path: root/src/f_pc/f_pc_load.cpp
blob: ae8cbf425df81c38e13b1bcefa34cd03383e5404 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
//
// Generated By: dol2asm
// Translation Unit: f_pc/f_pc_load
//

#include "f_pc/f_pc_load.h"
#include "SSystem/SComponent/c_phase.h"
#include "dol2asm.h"
#include "dolphin/types.h"

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 */
BOOL fpcLd_Use(s16 procName) {
    if (fpcLd_IsLoaded(procName) == TRUE && fpcLd_Load(procName) == cPhs_COMPLEATE_e)
        return TRUE;
    return FALSE;
}

/* 80022008-8002202C 0024+00 s=1 e=0 z=0  None .text      fpcLd_IsLoaded__Fs */
s32 fpcLd_IsLoaded(s16 procName) {
    return cDyl_IsLinked((int)procName);
}

/* 8002202C-80022050 0024+00 s=0 e=2 z=0  None .text      fpcLd_Free__Fs */
void fpcLd_Free(s16 procName) {
    cDyl_Unlink((int)procName);
}

/* 80022050-800220A0 0050+00 s=1 e=1 z=0  None .text      fpcLd_Load__Fs */
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;
    }
}