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>
This commit is contained in:
Anghelo Carvajal
2023-03-08 15:25:51 -03:00
committed by GitHub
parent 9f529aaf2a
commit 2f1e7b3de8
25 changed files with 192 additions and 169 deletions
+10 -4
View File
@@ -1,4 +1,5 @@
#include "global.h"
#include "stack.h"
/**
* Assigns the "save" values in PreRender
@@ -410,19 +411,24 @@ void PreRender_ApplyFilters(PreRender* this) {
}
}
extern SlowlyTask D_801F6E00;
extern s32 D_801F6FC0;
extern StackEntry sSlowlyStackInfo;
extern STACK(sSlowlyStack, 0x1000);
/**
* Initializes `PreRender_ApplyFilters` onto a new "slowly" thread
*/
void PreRender_ApplyFiltersSlowlyInit(PreRender* this) {
if ((this->cvgSave != NULL) && (this->fbufSave != NULL)) {
if (D_801F6FC0) {
StackCheck_Cleanup(&slowlyStackEntry);
StackCheck_Cleanup(&sSlowlyStackInfo);
Slowly_Stop(&D_801F6E00);
}
this->unk_4D = 1;
StackCheck_Init(&slowlyStackEntry, slowlyStack, &slowlyStack[4096], 0, 0x100, "slowly");
Slowly_Start(&D_801F6E00, &D_801F7FE8, PreRender_ApplyFilters, this, NULL);
StackCheck_Init(&sSlowlyStackInfo, sSlowlyStack, STACK_TOP(sSlowlyStack), 0, 0x100, "slowly");
Slowly_Start(&D_801F6E00, STACK_TOP(sSlowlyStack), PreRender_ApplyFilters, this, NULL);
D_801F6FC0 = true;
}
}
@@ -432,7 +438,7 @@ void PreRender_ApplyFiltersSlowlyInit(PreRender* this) {
*/
void PreRender_ApplyFiltersSlowlyDestroy(PreRender* this) {
if (D_801F6FC0) {
StackCheck_Cleanup(&slowlyStackEntry);
StackCheck_Cleanup(&sSlowlyStackInfo);
Slowly_Stop(&D_801F6E00);
D_801F6FC0 = false;
}
+1
View File
@@ -1,4 +1,5 @@
#include "global.h"
#include "buffers.h"
#include "system_malloc.h"
#include "overlays/gamestates/ovl_daytelop/z_daytelop.h"
#include "overlays/gamestates/ovl_file_choose/z_file_choose.h"
+33 -12
View File
@@ -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);
}
+1
View File
@@ -1,4 +1,5 @@
#include "global.h"
#include "buffers.h"
#include "system_malloc.h"
#pragma GLOBAL_ASM("asm/non_matchings/code/sys_cfb/func_80178750.s")
+11
View File
@@ -1,6 +1,17 @@
#include "global.h"
#include "stack.h"
#include "system_malloc.h"
// extern UNK_TYPE1 D_801FBE10;
// extern UNK_TYPE1 D_801FBE28;
// extern UNK_TYPE1 D_801FBE2C;
// extern UNK_TYPE4 D_801FBE30;
extern STACK(sSysFlashromStack, 0x1000);
extern StackEntry sys_flashromStackEntry;
extern OSThread sys_flashromOSThread;
extern s80185D40 D_801FD008;
extern OSMesg D_801FD034;
#pragma GLOBAL_ASM("asm/non_matchings/code/sys_flashrom/func_801857C0.s")
#pragma GLOBAL_ASM("asm/non_matchings/code/sys_flashrom/func_801857D0.s")
+1
View File
@@ -1,4 +1,5 @@
#include "global.h"
#include "buffers.h"
#include "z64debug_display.h"
#include "z64quake.h"
#include "z64rumble.h"
+1
View File
@@ -1,3 +1,4 @@
#include "prevent_bss_reordering.h"
#include "global.h"
#include "overlays/gamestates/ovl_file_choose/z_file_choose.h"