diff options
| author | Anghelo Carvajal <angheloalf95@gmail.com> | 2023-03-08 15:25:51 -0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-03-08 15:25:51 -0300 |
| commit | 2f1e7b3de8695c8f093c18ee6fe2e9e5c4c9e15a (patch) | |
| tree | ad11aaf28012ed42d6cdda9a8ae6ca55bad1387f /src/boot_O2_g3 | |
| parent | 9f529aaf2a3aa2d5a10e1273babf7781ab9faabc (diff) | |
Stack cleanups (#1193)
* Use STACK and STACK_TOP everywhere
* format
* remove fake variable
* bss
* review
Co-authored-by: Derek Hensley <hensley.derek58@gmail.com>
* Update src/boot_O2_g3/boot_main.c
Co-authored-by: Derek Hensley <hensley.derek58@gmail.com>
* review
* renames
* more renames
* and more
* whoopsie, forgot those too
* hopefully the last cleanup
* forgot some stuff
* a
* bss
---------
Co-authored-by: Derek Hensley <hensley.derek58@gmail.com>
Diffstat (limited to 'src/boot_O2_g3')
| -rw-r--r-- | src/boot_O2_g3/boot_main.c | 15 | ||||
| -rw-r--r-- | src/boot_O2_g3/fault.c | 18 | ||||
| -rw-r--r-- | src/boot_O2_g3/idle.c | 19 | ||||
| -rw-r--r-- | src/boot_O2_g3/z_std_dma.c | 7 |
4 files changed, 35 insertions, 24 deletions
diff --git a/src/boot_O2_g3/boot_main.c b/src/boot_O2_g3/boot_main.c index 87bee5da4..061458a1d 100644 --- a/src/boot_O2_g3/boot_main.c +++ b/src/boot_O2_g3/boot_main.c @@ -1,21 +1,22 @@ #include "prevent_bss_reordering.h" #include "global.h" +#include "stack.h" -StackEntry sBootThreadInfo; +StackEntry sBootStackInfo; OSThread sIdleThread; -u8 sIdleThreadStack[0x400]; -StackEntry sIdleThreadInfo; -u8 sBootThreadStack[0x400]; +STACK(sIdleThreadStack, 0x400); +StackEntry sIdleStackInfo; +STACK(sBootThreadStack, 0x400); void bootproc(void) { - StackCheck_Init(&sBootThreadInfo, sBootThreadStack, sBootThreadStack + sizeof(sBootThreadStack), 0, -1, "boot"); + StackCheck_Init(&sBootStackInfo, sBootThreadStack, STACK_TOP(sBootThreadStack), 0, -1, "boot"); osMemSize = osGetMemSize(); func_800818F4(); osInitialize(); osUnmapTLBAll(); gCartHandle = osCartRomInit(); - StackCheck_Init(&sIdleThreadInfo, sIdleThreadStack, sIdleThreadStack + sizeof(sIdleThreadStack), 0, 256, "idle"); - osCreateThread(&sIdleThread, Z_THREAD_ID_IDLE, Idle_ThreadEntry, NULL, sIdleThreadStack + sizeof(sIdleThreadStack), + StackCheck_Init(&sIdleStackInfo, sIdleThreadStack, STACK_TOP(sIdleThreadStack), 0, 0x100, "idle"); + osCreateThread(&sIdleThread, Z_THREAD_ID_IDLE, Idle_ThreadEntry, NULL, STACK_TOP(sIdleThreadStack), Z_PRIORITY_IDLE); osStartThread(&sIdleThread); } diff --git a/src/boot_O2_g3/fault.c b/src/boot_O2_g3/fault.c index e648275b6..134b120dc 100644 --- a/src/boot_O2_g3/fault.c +++ b/src/boot_O2_g3/fault.c @@ -1,7 +1,15 @@ #include "ultra64.h" #include "global.h" +#include "stack.h" #include "vt.h" +extern FaultThreadStruct* sFaultContext; +extern f32 D_8009BE54; +extern u32 faultCustomOptions; +extern u32 faultCopyToLog; +extern STACK(sFaultStack, 0x600); +extern StackEntry sFaultStackInfo; + // data const char* sCpuExceptions[] = { "Interrupt", @@ -759,9 +767,9 @@ void Fault_SetOptionsFromController3(void) { } if (faultCustomOptions) { - graphPC = sGraphThread.context.pc; - graphRA = sGraphThread.context.ra; - graphSP = sGraphThread.context.sp; + graphPC = gGraphThread.context.pc; + graphRA = gGraphThread.context.ra; + graphSP = gGraphThread.context.sp; if (CHECK_BTN_ALL(input3->cur.button, BTN_R)) { static u32 faultCopyToLog; @@ -889,8 +897,8 @@ void Fault_Start(void) { sFaultContext->faultActive = 0; gFaultStruct.faultHandlerEnabled = 1; osCreateMesgQueue(&sFaultContext->queue, sFaultContext->msg, ARRAY_COUNT(sFaultContext->msg)); - StackCheck_Init(&sFaultThreadInfo, sFaultStack, sFaultStack + sizeof(sFaultStack), 0, 0x100, "fault"); - osCreateThread(&sFaultContext->thread, 2, Fault_ThreadEntry, NULL, sFaultStack + sizeof(sFaultStack), 0x7F); + StackCheck_Init(&sFaultStackInfo, sFaultStack, STACK_TOP(sFaultStack), 0, 0x100, "fault"); + osCreateThread(&sFaultContext->thread, 2, Fault_ThreadEntry, NULL, STACK_TOP(sFaultStack), 0x7F); osStartThread(&sFaultContext->thread); } diff --git a/src/boot_O2_g3/idle.c b/src/boot_O2_g3/idle.c index da93f13fd..40bcf5d0e 100644 --- a/src/boot_O2_g3/idle.c +++ b/src/boot_O2_g3/idle.c @@ -1,5 +1,7 @@ #include "prevent_bss_reordering.h" #include "global.h" +#include "stack.h" +#include "buffers.h" u8 D_80096B20 = 1; vu8 gViConfigUseDefault = 1; @@ -9,10 +11,10 @@ f32 gViConfigXScale = 1.0f; f32 gViConfigYScale = 1.0f; IrqMgr gIrqMgr; -u8 sIrqMgrStack[0x500]; +STACK(sIrqMgrStack, 0x500); StackEntry sIrqMgrStackInfo; -OSThread gMainThread; -u8 sMainStack[0x900]; +OSThread sMainThread; +STACK(sMainStack, 0x900); StackEntry sMainStackInfo; OSMesg sPiMgrCmdBuff[50]; OSMesgQueue gPiMgrCmdQ; @@ -71,8 +73,8 @@ void Idle_InitCodeAndMemory(void) { } void Main_ThreadEntry(void* arg) { - StackCheck_Init(&sIrqMgrStackInfo, sIrqMgrStack, sIrqMgrStack + sizeof(sIrqMgrStack), 0, 0x100, "irqmgr"); - IrqMgr_Init(&gIrqMgr, &sIrqMgrStackInfo, Z_PRIORITY_IRQMGR, 1); + StackCheck_Init(&sIrqMgrStackInfo, sIrqMgrStack, STACK_TOP(sIrqMgrStack), 0, 0x100, "irqmgr"); + IrqMgr_Init(&gIrqMgr, STACK_TOP(sIrqMgrStack), Z_PRIORITY_IRQMGR, 1); DmaMgr_Start(); Idle_InitCodeAndMemory(); Main(arg); @@ -108,10 +110,9 @@ void Idle_InitVideo(void) { void Idle_ThreadEntry(void* arg) { Idle_InitVideo(); osCreatePiManager(150, &gPiMgrCmdQ, sPiMgrCmdBuff, ARRAY_COUNT(sPiMgrCmdBuff)); - StackCheck_Init(&sMainStackInfo, sMainStack, sMainStack + sizeof(sMainStack), 0, 0x400, "main"); - osCreateThread(&gMainThread, Z_THREAD_ID_MAIN, Main_ThreadEntry, arg, sMainStack + sizeof(sMainStack), - Z_PRIORITY_MAIN); - osStartThread(&gMainThread); + StackCheck_Init(&sMainStackInfo, sMainStack, STACK_TOP(sMainStack), 0, 0x400, "main"); + osCreateThread(&sMainThread, Z_THREAD_ID_MAIN, Main_ThreadEntry, arg, STACK_TOP(sMainStack), Z_PRIORITY_MAIN); + osStartThread(&sMainThread); osSetThreadPri(NULL, 0); do { } while (true); } diff --git a/src/boot_O2_g3/z_std_dma.c b/src/boot_O2_g3/z_std_dma.c index 8e9d83872..dd34d9e87 100644 --- a/src/boot_O2_g3/z_std_dma.c +++ b/src/boot_O2_g3/z_std_dma.c @@ -1,5 +1,6 @@ #include "prevent_bss_reordering.h" #include "global.h" +#include "stack.h" u32 sDmaMgrDmaBuffSize = 0x2000; @@ -8,7 +9,7 @@ u16 numDmaEntries; OSMesgQueue sDmaMgrMsgQueue; OSMesg sDmaMgrMsgs[32]; OSThread sDmaMgrThread; -u8 sDmaMgrStack[0x500]; +STACK(sDmaMgrStack, 0x500); s32 DmaMgr_DmaRomToRam(uintptr_t rom, void* ram, size_t size) { OSIoMesg ioMsg; @@ -226,8 +227,8 @@ void DmaMgr_Start(void) { } osCreateMesgQueue(&sDmaMgrMsgQueue, sDmaMgrMsgs, ARRAY_COUNT(sDmaMgrMsgs)); - StackCheck_Init(&sDmaMgrStackInfo, sDmaMgrStack, sDmaMgrStack + sizeof(sDmaMgrStack), 0, 0x100, "dmamgr"); - osCreateThread(&sDmaMgrThread, Z_THREAD_ID_DMAMGR, DmaMgr_ThreadEntry, NULL, sDmaMgrStack + sizeof(sDmaMgrStack), + StackCheck_Init(&sDmaMgrStackInfo, sDmaMgrStack, STACK_TOP(sDmaMgrStack), 0, 0x100, "dmamgr"); + osCreateThread(&sDmaMgrThread, Z_THREAD_ID_DMAMGR, DmaMgr_ThreadEntry, NULL, STACK_TOP(sDmaMgrStack), Z_PRIORITY_DMAMGR); osStartThread(&sDmaMgrThread); |
