// // Generated By: dol2asm // Translation Unit: OSInterrupt // #include "dol2asm.h" #include "dolphin/types.h" #include "dolphin/os/OSInterrupt.h" // // Forward References: // // False False extern "C" void OSDisableInterrupts(); // False False extern "C" void __RAS_OSDisableInterrupts_end(); // False False extern "C" void OSEnableInterrupts(); // False False extern "C" void OSRestoreInterrupts(); // False False extern "C" void __OSSetInterruptHandler(); // False False extern "C" void __OSGetInterruptHandler(); // False False extern "C" void __OSInterruptInit(); // True False extern "C" static void SetInterruptMask(); // False False extern "C" void __OSMaskInterrupts(); // False False extern "C" void __OSUnmaskInterrupts(); // True False extern "C" static void __OSDispatchInterrupt(); // True False extern "C" static void ExternalInterruptHandler(); extern "C" extern u8 __OSLastInterruptSrr0[4]; extern "C" extern u8 __OSLastInterrupt[2 + 6 /* padding */]; extern "C" extern u8 __OSLastInterruptTime[4]; extern "C" extern u8 data_80451684[4]; // // External References: // // False False SECTION_INIT void memset(); // False False extern "C" void __OSSetExceptionHandler(); // False False extern "C" void OSLoadContext(); // False False extern "C" void OSDisableScheduler(); // False False extern "C" void OSEnableScheduler(); // False False extern "C" void __OSReschedule(); // False False extern "C" void OSGetTime(); // // Declarations: // /* 8033D6F4-8033D700 000C+00 s=2 e=200 z=5 None .text OSDisableInterrupts */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off // False False extern "C" asm void OSDisableInterrupts() { nofralloc #include "asm/dolphin/os/OSInterrupt/OSDisableInterrupts.s" } #pragma pop /* 8033D700-8033D708 0008+00 s=0 e=1 z=0 None .text __RAS_OSDisableInterrupts_end */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off // False False extern "C" asm void __RAS_OSDisableInterrupts_end() { nofralloc #include "asm/dolphin/os/OSInterrupt/__RAS_OSDisableInterrupts_end.s" } #pragma pop /* 8033D708-8033D71C 0014+00 s=0 e=10 z=1 None .text OSEnableInterrupts */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off // False False extern "C" asm void OSEnableInterrupts() { nofralloc #include "asm/dolphin/os/OSInterrupt/OSEnableInterrupts.s" } #pragma pop /* 8033D71C-8033D740 0024+00 s=2 e=197 z=6 None .text OSRestoreInterrupts */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off // False False extern "C" asm void OSRestoreInterrupts() { nofralloc #include "asm/dolphin/os/OSInterrupt/OSRestoreInterrupts.s" } #pragma pop /* ############################################################################################## */ /* 80451670-80451674 0004+00 s=4 e=0 z=0 None .sbss InterruptHandlerTable */ static u8 InterruptHandlerTable[4]; /* 8033D740-8033D75C 001C+00 s=0 e=12 z=0 None .text __OSSetInterruptHandler */ // 8033D744: 80451670 (InterruptHandlerTable) #pragma push #pragma optimization_level 0 #pragma optimizewithasm off // False False extern "C" asm void __OSSetInterruptHandler() { nofralloc #include "asm/dolphin/os/OSInterrupt/__OSSetInterruptHandler.s" } #pragma pop /* 8033D75C-8033D770 0014+00 s=0 e=1 z=0 None .text __OSGetInterruptHandler */ // 8033D760: 80451670 (InterruptHandlerTable) #pragma push #pragma optimization_level 0 #pragma optimizewithasm off // False False extern "C" asm void __OSGetInterruptHandler() { nofralloc #include "asm/dolphin/os/OSInterrupt/__OSGetInterruptHandler.s" } #pragma pop /* 8033D770-8033D7E4 0074+00 s=0 e=1 z=0 None .text __OSInterruptInit */ // 8033D788: 80451670 (InterruptHandlerTable) // 8033D794: 80451670 (InterruptHandlerTable) // 8033D798: 80003458 (memset) // 8033D7BC: 8033DABC (__OSMaskInterrupts) // 8033D7C0: 8033DF10 (ExternalInterruptHandler) // 8033D7C4: 8033DF10 (ExternalInterruptHandler) // 8033D7CC: 8033A6E8 (__OSSetExceptionHandler) #pragma push #pragma optimization_level 0 #pragma optimizewithasm off // False False extern "C" asm void __OSInterruptInit() { nofralloc #include "asm/dolphin/os/OSInterrupt/__OSInterruptInit.s" } #pragma pop /* 8033D7E4-8033DABC 02D8+00 s=2 e=0 z=0 None .text SetInterruptMask */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off // True False extern "C" asm static void SetInterruptMask() { nofralloc #include "asm/dolphin/os/OSInterrupt/SetInterruptMask.s" } #pragma pop /* 8033DABC-8033DB44 0088+00 s=1 e=15 z=0 None .text __OSMaskInterrupts */ // 8033DAD8: 8033D6F4 (OSDisableInterrupts) // 8033DB10: 8033D7E4 (SetInterruptMask) // 8033DB20: 8033D71C (OSRestoreInterrupts) #pragma push #pragma optimization_level 0 #pragma optimizewithasm off // False False extern "C" asm void __OSMaskInterrupts() { nofralloc #include "asm/dolphin/os/OSInterrupt/__OSMaskInterrupts.s" } #pragma pop /* 8033DB44-8033DBCC 0088+00 s=0 e=18 z=0 None .text __OSUnmaskInterrupts */ // 8033DB60: 8033D6F4 (OSDisableInterrupts) // 8033DB98: 8033D7E4 (SetInterruptMask) // 8033DBA8: 8033D71C (OSRestoreInterrupts) #pragma push #pragma optimization_level 0 #pragma optimizewithasm off // False False extern "C" asm void __OSUnmaskInterrupts() { nofralloc #include "asm/dolphin/os/OSInterrupt/__OSUnmaskInterrupts.s" } #pragma pop /* ############################################################################################## */ /* 803D0758-803D0788 002C+04 s=1 e=0 z=0 None .data InterruptPrioTable */ SECTION_DATA static u8 InterruptPrioTable[44 + 4 /* padding */] = { 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x40, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x20, 0x03, 0xFF, 0x8C, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, /* padding */ 0x00, 0x00, 0x00, 0x00, }; /* 80451674-80451678 0004+00 s=1 e=1 z=0 None .sbss __OSLastInterruptSrr0 */ u8 __OSLastInterruptSrr0[4]; /* 80451678-80451680 0002+06 s=1 e=1 z=0 None .sbss __OSLastInterrupt */ u8 __OSLastInterrupt[2 + 6 /* padding */]; /* 80451680-80451684 0004+00 s=1 e=1 z=0 None .sbss __OSLastInterruptTime */ u8 __OSLastInterruptTime[4]; /* 80451684-80451688 0004+00 s=1 e=1 z=0 None .sbss None */ u8 data_80451684[4]; /* 8033DBCC-8033DF10 0344+00 s=1 e=0 z=0 None .text __OSDispatchInterrupt */ // 8033DC14: 8033BF20 (OSLoadContext) // 8033DE58: 803D0758 (InterruptPrioTable) // 8033DE5C: 803D0758 (InterruptPrioTable) // 8033DE90: 80451670 (InterruptHandlerTable) // 8033DEAC: 80451678 (__OSLastInterrupt) // 8033DEB0: 803426FC (OSGetTime) // 8033DEB4: 80451684 (data_80451684) // 8033DEB8: 80451680 (__OSLastInterruptTime) // 8033DEC0: 80451674 (__OSLastInterruptSrr0) // 8033DEC4: 80340CC4 (OSDisableScheduler) // 8033DEDC: 80340D04 (OSEnableScheduler) // 8033DEE0: 80341220 (__OSReschedule) // 8033DEE8: 8033BF20 (OSLoadContext) // 8033DEF0: 8033BF20 (OSLoadContext) #pragma push #pragma optimization_level 0 #pragma optimizewithasm off // True False extern "C" asm static void __OSDispatchInterrupt() { nofralloc #include "asm/dolphin/os/OSInterrupt/__OSDispatchInterrupt.s" } #pragma pop /* 8033DF10-8033DF60 0050+00 s=1 e=0 z=0 None .text ExternalInterruptHandler */ // 8033DF5C: 8033DBCC (__OSDispatchInterrupt) #pragma push #pragma optimization_level 0 #pragma optimizewithasm off // True False extern "C" asm static void ExternalInterruptHandler() { nofralloc #include "asm/dolphin/os/OSInterrupt/ExternalInterruptHandler.s" } #pragma pop