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/code/main.c | |
| 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/code/main.c')
| -rw-r--r-- | src/code/main.c | 45 |
1 files changed, 33 insertions, 12 deletions
diff --git a/src/code/main.c b/src/code/main.c index 59ffb6a32..b036123be 100644 --- a/src/code/main.c +++ b/src/code/main.c @@ -3,7 +3,29 @@ * reordering than just prevent_bss_reordering.h: there is too much of it to control, and it cannot be split into * separate files since most of it is at addresses ending in 8. */ + #include "global.h" +#include "buffers.h" +#include "stack.h" + +extern OSMesgQueue sSiIntMsgQ; +extern OSMesg sSiIntMsgBuf[1]; +extern u32 gSegments[NUM_SEGMENTS]; +extern SchedContext gSchedContext; +extern IrqMgrClient irqClient; +extern OSMesgQueue irqMgrMsgQ; +extern OSMesg irqMgrMsgBuf[60]; +extern OSThread gGraphThread; +extern STACK(sGraphStack, 0x1800); +extern STACK(sSchedStack, 0x600); +extern STACK(sAudioStack, 0x800); +extern STACK(sPadMgrStack, 0x500); +extern StackEntry sGraphStackInfo; +extern StackEntry sSchedStackInfo; +extern StackEntry sAudioStackInfo; +extern StackEntry sPadMgrStackInfo; +extern AudioMgr sAudioMgr; +extern PadMgr gPadMgr; void Main(void* arg) { intptr_t fb; @@ -33,25 +55,24 @@ void Main(void* arg) { osCreateMesgQueue(&irqMgrMsgQ, irqMgrMsgBuf, ARRAY_COUNT(irqMgrMsgBuf)); - StackCheck_Init(&schedStackEntry, schedStack, schedStack + sizeof(schedStack), 0, 0x100, "sched"); - Sched_Init(&gSchedContext, schedStack + sizeof(schedStack), Z_PRIORITY_SCHED, D_8009B290, 1, &gIrqMgr); + StackCheck_Init(&sSchedStackInfo, sSchedStack, STACK_TOP(sSchedStack), 0, 0x100, "sched"); + Sched_Init(&gSchedContext, STACK_TOP(sSchedStack), Z_PRIORITY_SCHED, D_8009B290, 1, &gIrqMgr); CIC6105_AddRomInfoFaultPage(); IrqMgr_AddClient(&gIrqMgr, &irqClient, &irqMgrMsgQ); - StackCheck_Init(&audioStackEntry, audioStack, audioStack + sizeof(audioStack), 0, 0x100, "audio"); - AudioMgr_Init(&audioContext, audioStack + sizeof(audioStack), Z_PRIORITY_AUDIOMGR, 0xA, &gSchedContext, &gIrqMgr); + StackCheck_Init(&sAudioStackInfo, sAudioStack, STACK_TOP(sAudioStack), 0, 0x100, "audio"); + AudioMgr_Init(&sAudioMgr, STACK_TOP(sAudioStack), Z_PRIORITY_AUDIOMGR, 0xA, &gSchedContext, &gIrqMgr); - StackCheck_Init(&padmgrStackEntry, padmgrStack, padmgrStack + sizeof(padmgrStack), 0, 0x100, "padmgr"); - PadMgr_Init(&sSiIntMsgQ, &gIrqMgr, 7, Z_PRIORITY_PADMGR, padmgrStack + sizeof(padmgrStack)); + StackCheck_Init(&sPadMgrStackInfo, sPadMgrStack, STACK_TOP(sPadMgrStack), 0, 0x100, "padmgr"); + PadMgr_Init(&sSiIntMsgQ, &gIrqMgr, 7, Z_PRIORITY_PADMGR, STACK_TOP(sPadMgrStack)); - AudioMgr_Unlock(&audioContext); + AudioMgr_Unlock(&sAudioMgr); - StackCheck_Init(&sGraphStackInfo, sGraphStack, sGraphStack + sizeof(sGraphStack), 0, 0x100, "graph"); - osCreateThread(&sGraphThread, Z_THREAD_ID_GRAPH, Graph_ThreadEntry, arg, sGraphStack + sizeof(sGraphStack), - Z_PRIORITY_GRAPH); - osStartThread(&sGraphThread); + StackCheck_Init(&sGraphStackInfo, sGraphStack, STACK_TOP(sGraphStack), 0, 0x100, "graph"); + osCreateThread(&gGraphThread, Z_THREAD_ID_GRAPH, Graph_ThreadEntry, arg, STACK_TOP(sGraphStack), Z_PRIORITY_GRAPH); + osStartThread(&gGraphThread); exit = false; @@ -73,5 +94,5 @@ void Main(void* arg) { } IrqMgr_RemoveClient(&gIrqMgr, &irqClient); - osDestroyThread(&sGraphThread); + osDestroyThread(&gGraphThread); } |
