// // 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; }