Files
tp/libs/dolphin/os/OSInterrupt.cpp
T

268 lines
8.2 KiB
C++
Raw Normal View History

2021-03-31 23:22:32 +02:00
//
2021-03-28 22:49:05 +02:00
// Generated By: dol2asm
// Translation Unit: OSInterrupt
2021-03-31 23:22:32 +02:00
//
2021-03-28 22:49:05 +02:00
#include "dol2asm.h"
#include "dolphin/types.h"
2021-03-31 23:22:32 +02:00
#include "dolphin/os/OSInterrupt.h"
2021-03-28 22:49:05 +02:00
2021-03-31 23:22:32 +02:00
//
2021-03-28 22:49:05 +02:00
// Forward References:
2021-03-31 23:22:32 +02:00
//
2021-03-28 22:49:05 +02:00
2021-03-31 23:22:32 +02:00
// False False
2021-03-28 22:49:05 +02:00
extern "C" void OSDisableInterrupts();
2021-03-31 23:22:32 +02:00
// False False
2021-03-28 22:49:05 +02:00
extern "C" void __RAS_OSDisableInterrupts_end();
2021-03-31 23:22:32 +02:00
// False False
2021-03-28 22:49:05 +02:00
extern "C" void OSEnableInterrupts();
2021-03-31 23:22:32 +02:00
// False False
2021-03-28 22:49:05 +02:00
extern "C" void OSRestoreInterrupts();
2021-03-31 23:22:32 +02:00
// False False
2021-03-28 22:49:05 +02:00
extern "C" void __OSSetInterruptHandler();
2021-03-31 23:22:32 +02:00
// False False
2021-03-28 22:49:05 +02:00
extern "C" void __OSGetInterruptHandler();
2021-03-31 23:22:32 +02:00
// False False
2021-03-28 22:49:05 +02:00
extern "C" void __OSInterruptInit();
2021-03-31 23:22:32 +02:00
// True False
2021-03-28 22:49:05 +02:00
extern "C" static void SetInterruptMask();
2021-03-31 23:22:32 +02:00
// False False
2021-03-28 22:49:05 +02:00
extern "C" void __OSMaskInterrupts();
2021-03-31 23:22:32 +02:00
// False False
2021-03-28 22:49:05 +02:00
extern "C" void __OSUnmaskInterrupts();
2021-03-31 23:22:32 +02:00
// True False
2021-03-28 22:49:05 +02:00
extern "C" static void __OSDispatchInterrupt();
2021-03-31 23:22:32 +02:00
// True False
2021-03-28 22:49:05 +02:00
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];
2021-03-31 23:22:32 +02:00
//
2021-03-28 22:49:05 +02:00
// External References:
2021-03-31 23:22:32 +02:00
//
2021-03-28 22:49:05 +02:00
2021-03-31 23:22:32 +02:00
// False False
2021-03-28 22:49:05 +02:00
SECTION_INIT void memset();
2021-03-31 23:22:32 +02:00
// False False
2021-03-28 22:49:05 +02:00
extern "C" void __OSSetExceptionHandler();
2021-03-31 23:22:32 +02:00
// False False
2021-03-28 22:49:05 +02:00
extern "C" void OSLoadContext();
2021-03-31 23:22:32 +02:00
// False False
2021-03-28 22:49:05 +02:00
extern "C" void OSDisableScheduler();
2021-03-31 23:22:32 +02:00
// False False
2021-03-28 22:49:05 +02:00
extern "C" void OSEnableScheduler();
2021-03-31 23:22:32 +02:00
// False False
2021-03-28 22:49:05 +02:00
extern "C" void __OSReschedule();
2021-03-31 23:22:32 +02:00
// False False
2021-03-28 22:49:05 +02:00
extern "C" void OSGetTime();
2021-03-31 23:22:32 +02:00
//
2021-03-28 22:49:05 +02:00
// Declarations:
2021-03-31 23:22:32 +02:00
//
2021-03-28 22:49:05 +02:00
2021-03-31 23:22:32 +02:00
/* 8033D6F4-8033D700 000C+00 s=2 e=200 z=5 None .text OSDisableInterrupts */
2021-03-28 22:49:05 +02:00
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
2021-03-31 23:22:32 +02:00
// False False
2021-03-28 22:49:05 +02:00
extern "C" asm void OSDisableInterrupts() {
2021-03-31 23:22:32 +02:00
nofralloc
2021-03-28 22:49:05 +02:00
#include "asm/dolphin/os/OSInterrupt/OSDisableInterrupts.s"
}
#pragma pop
2021-03-31 23:22:32 +02:00
/* 8033D700-8033D708 0008+00 s=0 e=1 z=0 None .text __RAS_OSDisableInterrupts_end */
2021-03-28 22:49:05 +02:00
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
2021-03-31 23:22:32 +02:00
// False False
2021-03-28 22:49:05 +02:00
extern "C" asm void __RAS_OSDisableInterrupts_end() {
2021-03-31 23:22:32 +02:00
nofralloc
2021-03-28 22:49:05 +02:00
#include "asm/dolphin/os/OSInterrupt/__RAS_OSDisableInterrupts_end.s"
}
#pragma pop
2021-03-31 23:22:32 +02:00
/* 8033D708-8033D71C 0014+00 s=0 e=10 z=1 None .text OSEnableInterrupts */
2021-03-28 22:49:05 +02:00
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
2021-03-31 23:22:32 +02:00
// False False
2021-03-28 22:49:05 +02:00
extern "C" asm void OSEnableInterrupts() {
2021-03-31 23:22:32 +02:00
nofralloc
2021-03-28 22:49:05 +02:00
#include "asm/dolphin/os/OSInterrupt/OSEnableInterrupts.s"
}
#pragma pop
2021-03-31 23:22:32 +02:00
/* 8033D71C-8033D740 0024+00 s=2 e=197 z=6 None .text OSRestoreInterrupts */
2021-03-28 22:49:05 +02:00
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
2021-03-31 23:22:32 +02:00
// False False
2021-03-28 22:49:05 +02:00
extern "C" asm void OSRestoreInterrupts() {
2021-03-31 23:22:32 +02:00
nofralloc
2021-03-28 22:49:05 +02:00
#include "asm/dolphin/os/OSInterrupt/OSRestoreInterrupts.s"
}
#pragma pop
2021-03-31 23:22:32 +02:00
2021-03-28 22:49:05 +02:00
/* ############################################################################################## */
2021-03-31 23:22:32 +02:00
/* 80451670-80451674 0004+00 s=4 e=0 z=0 None .sbss InterruptHandlerTable */
2021-03-28 22:49:05 +02:00
static u8 InterruptHandlerTable[4];
2021-03-31 23:22:32 +02:00
/* 8033D740-8033D75C 001C+00 s=0 e=12 z=0 None .text __OSSetInterruptHandler */
// 8033D744: 80451670 (InterruptHandlerTable)
2021-03-28 22:49:05 +02:00
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
2021-03-31 23:22:32 +02:00
// False False
2021-03-28 22:49:05 +02:00
extern "C" asm void __OSSetInterruptHandler() {
2021-03-31 23:22:32 +02:00
nofralloc
2021-03-28 22:49:05 +02:00
#include "asm/dolphin/os/OSInterrupt/__OSSetInterruptHandler.s"
}
#pragma pop
2021-03-31 23:22:32 +02:00
/* 8033D75C-8033D770 0014+00 s=0 e=1 z=0 None .text __OSGetInterruptHandler */
// 8033D760: 80451670 (InterruptHandlerTable)
2021-03-28 22:49:05 +02:00
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
2021-03-31 23:22:32 +02:00
// False False
2021-03-28 22:49:05 +02:00
extern "C" asm void __OSGetInterruptHandler() {
2021-03-31 23:22:32 +02:00
nofralloc
2021-03-28 22:49:05 +02:00
#include "asm/dolphin/os/OSInterrupt/__OSGetInterruptHandler.s"
}
#pragma pop
2021-03-31 23:22:32 +02:00
/* 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)
2021-03-28 22:49:05 +02:00
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
2021-03-31 23:22:32 +02:00
// False False
2021-03-28 22:49:05 +02:00
extern "C" asm void __OSInterruptInit() {
2021-03-31 23:22:32 +02:00
nofralloc
2021-03-28 22:49:05 +02:00
#include "asm/dolphin/os/OSInterrupt/__OSInterruptInit.s"
}
#pragma pop
2021-03-31 23:22:32 +02:00
/* 8033D7E4-8033DABC 02D8+00 s=2 e=0 z=0 None .text SetInterruptMask */
2021-03-28 22:49:05 +02:00
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
2021-03-31 23:22:32 +02:00
// True False
2021-03-28 22:49:05 +02:00
extern "C" asm static void SetInterruptMask() {
2021-03-31 23:22:32 +02:00
nofralloc
2021-03-28 22:49:05 +02:00
#include "asm/dolphin/os/OSInterrupt/SetInterruptMask.s"
}
#pragma pop
2021-03-31 23:22:32 +02:00
/* 8033DABC-8033DB44 0088+00 s=1 e=15 z=0 None .text __OSMaskInterrupts */
// 8033DAD8: 8033D6F4 (OSDisableInterrupts)
// 8033DB10: 8033D7E4 (SetInterruptMask)
// 8033DB20: 8033D71C (OSRestoreInterrupts)
2021-03-28 22:49:05 +02:00
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
2021-03-31 23:22:32 +02:00
// False False
2021-03-28 22:49:05 +02:00
extern "C" asm void __OSMaskInterrupts() {
2021-03-31 23:22:32 +02:00
nofralloc
2021-03-28 22:49:05 +02:00
#include "asm/dolphin/os/OSInterrupt/__OSMaskInterrupts.s"
}
#pragma pop
2021-03-31 23:22:32 +02:00
/* 8033DB44-8033DBCC 0088+00 s=0 e=18 z=0 None .text __OSUnmaskInterrupts */
// 8033DB60: 8033D6F4 (OSDisableInterrupts)
// 8033DB98: 8033D7E4 (SetInterruptMask)
// 8033DBA8: 8033D71C (OSRestoreInterrupts)
2021-03-28 22:49:05 +02:00
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
2021-03-31 23:22:32 +02:00
// False False
2021-03-28 22:49:05 +02:00
extern "C" asm void __OSUnmaskInterrupts() {
2021-03-31 23:22:32 +02:00
nofralloc
2021-03-28 22:49:05 +02:00
#include "asm/dolphin/os/OSInterrupt/__OSUnmaskInterrupts.s"
}
#pragma pop
2021-03-31 23:22:32 +02:00
2021-03-28 22:49:05 +02:00
/* ############################################################################################## */
2021-03-31 23:22:32 +02:00
/* 803D0758-803D0788 002C+04 s=1 e=0 z=0 None .data InterruptPrioTable */
2021-03-28 22:49:05 +02:00
SECTION_DATA static u8 InterruptPrioTable[44 + 4 /* padding */] = {
2021-03-31 23:22:32 +02:00
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,
2021-03-28 22:49:05 +02:00
};
2021-03-31 23:22:32 +02:00
/* 80451674-80451678 0004+00 s=1 e=1 z=0 None .sbss __OSLastInterruptSrr0 */
2021-03-28 22:49:05 +02:00
u8 __OSLastInterruptSrr0[4];
2021-03-31 23:22:32 +02:00
/* 80451678-80451680 0002+06 s=1 e=1 z=0 None .sbss __OSLastInterrupt */
2021-03-28 22:49:05 +02:00
u8 __OSLastInterrupt[2 + 6 /* padding */];
2021-03-31 23:22:32 +02:00
/* 80451680-80451684 0004+00 s=1 e=1 z=0 None .sbss __OSLastInterruptTime */
2021-03-28 22:49:05 +02:00
u8 __OSLastInterruptTime[4];
2021-03-31 23:22:32 +02:00
/* 80451684-80451688 0004+00 s=1 e=1 z=0 None .sbss None */
2021-03-28 22:49:05 +02:00
u8 data_80451684[4];
2021-03-31 23:22:32 +02:00
/* 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)
2021-03-28 22:49:05 +02:00
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
2021-03-31 23:22:32 +02:00
// True False
2021-03-28 22:49:05 +02:00
extern "C" asm static void __OSDispatchInterrupt() {
2021-03-31 23:22:32 +02:00
nofralloc
2021-03-28 22:49:05 +02:00
#include "asm/dolphin/os/OSInterrupt/__OSDispatchInterrupt.s"
}
#pragma pop
2021-03-31 23:22:32 +02:00
/* 8033DF10-8033DF60 0050+00 s=1 e=0 z=0 None .text ExternalInterruptHandler */
// 8033DF5C: 8033DBCC (__OSDispatchInterrupt)
2021-03-28 22:49:05 +02:00
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
2021-03-31 23:22:32 +02:00
// True False
2021-03-28 22:49:05 +02:00
extern "C" asm static void ExternalInterruptHandler() {
2021-03-31 23:22:32 +02:00
nofralloc
2021-03-28 22:49:05 +02:00
#include "asm/dolphin/os/OSInterrupt/ExternalInterruptHandler.s"
}
#pragma pop
2021-03-31 23:22:32 +02:00