tp/libs/dolphin/os/OSLink.c

215 lines
9.1 KiB
C

//
// Generated By: dol2asm
// Translation Unit: OSLink
//
#include "dolphin/os/OSLink.h"
#include "dol2asm.h"
#include "dolphin/types.h"
#define SHN_UNDEF 0
#define SHN_LORESERVE 0xff00
#define SHN_LOPROC 0xff00
#define SHN_HIPROC 0xff1f
#define SHN_ABS 0xfff1
#define SHN_COMMON 0xfff2
#define SHN_HIRESERVE 0xffff
#define ELF32_R_SYM(i) ((i) >> 8)
#define ELF32_R_TYPE(i) ((unsigned char)(i))
#define ELF32_R_INFO(s, t) (((s) << 8) + (unsigned char)(t))
// Name Value Field Calculation
#define R_PPC_NONE 0 // none none
#define R_PPC_ADDR32 1 // word32 S + A
#define R_PPC_ADDR24 2 // low24* (S + A) >> 2
#define R_PPC_ADDR16 3 // half16* S + A
#define R_PPC_ADDR16_LO 4 // half16 #lo(S + A)
#define R_PPC_ADDR16_HI 5 // half16 #hi(S + A)
#define R_PPC_ADDR16_HA 6 // half16 #ha(S + A)
#define R_PPC_ADDR14 7 // low14* (S + A) >> 2
#define R_PPC_ADDR14_BRTAKEN 8 // low14* (S + A) >> 2
#define R_PPC_ADDR14_BRNTAKEN 9 // low14* (S + A) >> 2
#define R_PPC_REL24 10 // low24* (S + A - P) >> 2
#define R_PPC_REL14 11 // low14* (S + A - P) >> 2
#define R_PPC_REL14_BRTAKEN 12 // low14* (S + A - P) >> 2
#define R_PPC_REL14_BRNTAKEN 13 // low14* (S + A - P) >> 2
#define R_PPC_GOT16 14 // half16* G + A
#define R_PPC_GOT16_LO 15 // half16 #lo(G + A)
#define R_PPC_GOT16_HI 16 // half16 #hi(G + A)
#define R_PPC_GOT16_HA 17 // half16 #ha(G + A)
#define R_PPC_PLTREL24 18 // low24* (L + A - P) >> 2
#define R_PPC_COPY 19 // none none
#define R_PPC_GLOB_DAT 20 // word32 S + A
#define R_PPC_JMP_SLOT 21 // none
#define R_PPC_RELATIVE 22 // word32 B + A
#define R_PPC_LOCAL24PC 23 // low24*
#define R_PPC_UADDR32 24 // word32 S + A
#define R_PPC_UADDR16 25 // half16* S + A
#define R_PPC_REL32 26 // word32 S + A - P
#define R_PPC_PLT32 27 // word32 L + A
#define R_PPC_PLTREL32 28 // word32 L + A - P
#define R_PPC_PLT16_LO 29 // half16 #lo(L + A)
#define R_PPL_PLT16_HI 30 // half16 #hi(L + A)
#define R_PPC_PLT16_HA 31 // half16 #ha(L + A)
#define R_PPC_SDAREL16 32 // half16* S + A - _SDA_BASE_
#define R_PPC_SECTOFF 33 // half16* R + A
#define R_PPC_SECTOFF_LO 34 // half16 #lo(R + A)
#define R_PPC_SECTOFF_HI 35 // half16 #hi(R + A)
#define R_PPC_SECTOFF_HA 36 // half16 #ha(R + A)
#define R_PPC_ADDR30 37 // word30 (S + A - P) >> 2
#define R_PPC_EMB_NADDR32 101 // uword32 N (A - S)
#define R_PPC_EMB_NADDR16 102 // uhalf16 Y (A - S)
#define R_PPC_EMB_NADDR16_LO 103 // uhalf16 N #lo(A - S)
#define R_PPC_EMB_NADDR16_HI 104 // uhalf16 N #hi(A - S)
#define R_PPC_EMB_NADDR16_HA 105 // uhalf16 N #ha(A - S)
#define R_PPC_EMB_SDAI16 106 // uhalf16 Y T
#define R_PPC_EMB_SDA2I16 107 // uhalf16 Y U
#define R_PPC_EMB_SDA2REL 108 // uhalf16 Y S + A - _SDA2_BASE_
#define R_PPC_EMB_SDA21 109 // ulow21 N
#define R_PPC_EMB_MRKREF 110 // none N
#define R_PPC_EMB_RELSEC16 111 // uhalf16 Y V + A
#define R_PPC_EMB_RELST_LO 112 // uhalf16 N #lo(W + A)
#define R_PPC_EMB_RELST_HI 113 // uhalf16 N #hi(W + A)
#define R_PPC_EMB_RELST_HA 114 // uhalf16 N #ha(W + A)
#define R_PPC_EMB_BIT_FLD 115 // uword32 Y
#define R_PPC_EMB_RELSDA 116 // uhalf16 Y
#define EnqueueTail(queue, moduleInfo, link) \
do { \
OSModuleInfo* __prev; \
\
__prev = (queue)->tail; \
if (__prev == NULL) \
(queue)->head = (moduleInfo); \
else \
__prev->link.next = (moduleInfo); \
(moduleInfo)->link.prev = __prev; \
(moduleInfo)->link.next = NULL; \
(queue)->tail = (moduleInfo); \
} while (0)
#define DequeueItem(queue, moduleInfo, link) \
do { \
OSModuleInfo* __next; \
OSModuleInfo* __prev; \
\
__next = (moduleInfo)->link.next; \
__prev = (moduleInfo)->link.prev; \
\
if (__next == NULL) \
(queue)->tail = __prev; \
else \
__next->link.prev = __prev; \
\
if (__prev == NULL) \
(queue)->head = __next; \
else \
__prev->link.next = __next; \
} while (0)
//
// External References:
//
SECTION_INIT void memset();
void OSReport();
void DCFlushRange();
void ICInvalidateRange();
//
// Declarations:
//
/* 8033DF60-8033DF64 3388A0 0004+00 1/1 0/0 0/0 .text OSNotifyLink */
static void OSNotifyLink(void) {}
/* 8033DF64-8033DF68 3388A4 0004+00 1/1 0/0 0/0 .text OSNotifyUnlink */
static void OSNotifyUnlink(void) {}
/* 8033DF68-8033DF74 3388A8 000C+00 0/0 1/1 0/0 .text OSSetStringTable */
void OSSetStringTable(void* string_table) {
__OSStringTable = string_table;
}
/* ############################################################################################## */
/* 803D0788-803D07B0 02D8A8 0025+03 1/1 0/0 0/0 .data @62 */
SECTION_DATA static char lit_62[] = "OSLink: unknown relocation type %3d\n";
/* 8033DF74-8033E230 3388B4 02BC+00 1/1 0/0 0/0 .text Relocate */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm BOOL Relocate(OSModuleInfo* param_0, OSModuleInfo* param_1) {
nofralloc
#include "asm/dolphin/os/OSLink/Relocate.s"
}
#pragma pop
/* 8033E230-8033E510 338B70 02E0+00 2/2 0/0 0/0 .text Link */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm BOOL Link(OSModuleInfo* module, u32 param_1) {
nofralloc
#include "asm/dolphin/os/OSLink/Link.s"
}
#pragma pop
/* 8033E510-8033E534 338E50 0024+00 0/0 1/1 0/0 .text OSLink */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm BOOL OSLink(OSModuleInfo* module) {
nofralloc
#include "asm/dolphin/os/OSLink/OSLink.s"
}
#pragma pop
/* 8033E534-8033E570 338E74 003C+00 0/0 1/1 0/0 .text OSLinkFixed */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm BOOL OSLinkFixed(OSModuleInfo* module, u32 param_1) {
nofralloc
#include "asm/dolphin/os/OSLink/OSLinkFixed.s"
}
#pragma pop
/* ############################################################################################## */
/* 803D07B0-803D07D8 02D8D0 0027+01 1/1 0/0 0/0 .data @189 */
SECTION_DATA static char lit_189[] = "OSUnlink: unknown relocation type %3d\n";
/* 8033E570-8033E7A8 338EB0 0238+00 1/1 0/0 0/0 .text Undo */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm BOOL Undo(OSModuleInfo* param_0, OSModuleInfo* param_1) {
nofralloc
#include "asm/dolphin/os/OSLink/Undo.s"
}
#pragma pop
/* 8033E7A8-8033E97C 3390E8 01D4+00 0/0 1/1 0/0 .text OSUnlink */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm BOOL OSUnlink(OSModuleInfo* module) {
nofralloc
#include "asm/dolphin/os/OSLink/OSUnlink.s"
}
#pragma pop
/* 8033E97C-8033E994 3392BC 0018+00 0/0 1/1 0/0 .text __OSModuleInit */
void __OSModuleInit(void) {
__OSModuleList.last = NULL;
__OSModuleList.first = NULL;
__OSStringTable = NULL;
}