diff --git a/Makefile b/Makefile index a60372a478..264b142930 100644 --- a/Makefile +++ b/Makefile @@ -19,18 +19,20 @@ build/src/libultra/gu/%: OPTIMIZATION := -O2 build/src/libultra/%: CC := $(QEMU_IRIX) -L $(IRIX_53_ROOT) $(IRIX_53_ROOT)/usr/bin/cc build/src/libultra/%: CFLAGS := $(CFLAGS) -Wab,-r4300_mul build/src/boot_O1/%: OPTIMIZATION := -O1 +build/src/boot_O2/%: OPTIMIZATION := -O2 build/src/boot_O2_g3/%: OPTIMIZATION := -O2 -g3 build/src/boot_O2_g3_trapuv/%: OPTIMIZATION := -O2 -g3 build/src/code/%: CFLAGS := $(CFLAGS) -Wab,-r4300_mul build/src/actors/%: CFLAGS := $(CFLAGS) -Wab,-r4300_mul build/src/boot_O2_g3_trapuv/%: CFLAGS := $(CFLAGS) -trapuv -test.txt: OPTIMIZATION := -O2 -g3 +test.txt: OPTIMIZATION := -O2 test.txt: CC := $(QEMU_IRIX) -L $(IRIX_71_ROOT) $(IRIX_71_ROOT)/usr/bin/cc -test.txt: CFLAGS := $(CFLAGS) -Wab,-r4300_mul -trapuv +test.txt: CFLAGS := $(CFLAGS) -Wab,-r4300_mul CC := $(QEMU_IRIX) -L $(IRIX_71_ROOT) $(IRIX_71_ROOT)/usr/bin/cc test.txt: CC := ./tools/preprocess.py $(CC) -- $(AS) $(ASFLAGS) -- +build/src/boot_O2/%: CC := ./tools/preprocess.py $(CC) -- $(AS) $(ASFLAGS) -- build/src/boot_O2_g3/%: CC := ./tools/preprocess.py $(CC) -- $(AS) $(ASFLAGS) -- build/src/boot_O2_g3_trapuv/%: CC := ./tools/preprocess.py $(CC) -- $(AS) $(ASFLAGS) -- build/src/code/%: CC := ./tools/preprocess.py $(CC) -- $(AS) $(ASFLAGS) -- @@ -55,6 +57,7 @@ C_FILES := $(wildcard src/libultra/*) \ $(wildcard src/libultra/libc/*) \ $(wildcard src/libultra/gu/*) \ $(wildcard src/code/*) \ + $(wildcard src/boot_O2/*) \ $(wildcard src/boot_O2_g3/*) \ $(wildcard src/boot_O2_g3_trapuv/*) \ $(wildcard src/boot_O1/*) \ @@ -82,6 +85,7 @@ $(shell mkdir -p $(BUILD_DIR)/src/libultra/io) $(shell mkdir -p $(BUILD_DIR)/src/libultra/libc) $(shell mkdir -p $(BUILD_DIR)/src/libultra/gu) $(shell mkdir -p $(BUILD_DIR)/src/code) +$(shell mkdir -p $(BUILD_DIR)/src/boot_O2) $(shell mkdir -p $(BUILD_DIR)/src/boot_O2_g3) $(shell mkdir -p $(BUILD_DIR)/src/boot_O2_g3_trapuv) $(shell mkdir -p $(BUILD_DIR)/src/boot_O1) diff --git a/include/functions.h b/include/functions.h index 4c6a0c7f87..f4d5827ae5 100644 --- a/include/functions.h +++ b/include/functions.h @@ -134,11 +134,11 @@ void func_80085204(void); // func_80085204 void func_8008520C(void); // func_8008520C void func_8008522C(void); // func_8008522C void func_8008524C(void); // func_8008524C -void thread_info_init(ThreadInfo* info, u8* stackBegin, u8* stackEnd, s32 initStackValue, s32 stackWarningThreshold, char* threadName); // func_80085320 -void func_800853F8(void); // func_800853F8 -ThreadStackStatus get_thread_stack_status(ThreadInfo* threadInfo); // func_80085468 -ThreadStackStatus check_all_thread_status(void); // func_800854E0 -ThreadStackStatus check_thread_status(ThreadInfo* threadInfo); // func_80085538 +void StackCheck_Init(StackEntry* entry, u32 stackTop, u32 stackBottom, u32 initValue, s32 minSpace, char* name); // func_80085320 +void StackCheck_Cleanup(StackEntry* entry); // func_800853F8 +s32 StackCheck_GetState(StackEntry* entry); // func_80085468 +u32 StackCheck_CheckAll(void); // func_800854E0 +u32 StackCheck_Check(StackEntry* entry); // func_80085538 void func_80085570(void); // func_80085570 void func_800859BC(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5); // func_800859BC void func_80085A08(void); // func_80085A08 diff --git a/include/structs.h b/include/structs.h index 52ff4fe936..d0fbfe3388 100644 --- a/include/structs.h +++ b/include/structs.h @@ -629,12 +629,6 @@ typedef struct { /* 0x10 */ ColorRGBA8 unk10; } TargetContextEntry; -typedef enum ThreadStackStatus { - THREAD_STACK_STATUS_GOOD = 0x0, - THREAD_STACK_STATUS_WARNING = 0x1, - THREAD_STACK_STATUS_FULL = 0x2 -} ThreadStackStatus; - typedef struct { /* 0x0 */ u32 texture; /* 0x4 */ s16 unk4; @@ -1754,6 +1748,18 @@ typedef struct { /* 0x18 */ u32 unk18; // Always 0x01000000? } ParticleOverlayTableEntry; +typedef struct StackEntry StackEntry; + +struct StackEntry { +/* 0x00 */ StackEntry* next; +/* 0x04 */ StackEntry* prev; +/* 0x08 */ u32 head; +/* 0x0C */ u32 tail; +/* 0x10 */ s32 initValue; +/* 0x14 */ s32 minSpace; +/* 0x18 */ char* name; +}; + typedef struct TargetContext TargetContext; typedef struct ActorContext ActorContext; @@ -1819,18 +1825,6 @@ typedef struct Camera Camera; typedef s32(*camera_update_func)(Camera* camera); -typedef struct ThreadInfo ThreadInfo; - -struct ThreadInfo { -/* 0x00 */ ThreadInfo* next; -/* 0x04 */ ThreadInfo* prev; -/* 0x08 */ u8* stackBegin; -/* 0x0C */ u8* stackEnd; -/* 0x10 */ s32 initStackValue; -/* 0x14 */ s32 stackWarningThreshold; -/* 0x18 */ s8* name; -}; - typedef struct s800B948C s800B948C; typedef struct z_Light z_Light; diff --git a/include/variables.h b/include/variables.h index a450393547..a3533fb53e 100644 --- a/include/variables.h +++ b/include/variables.h @@ -25,8 +25,8 @@ extern FaultDrawer* faultDrawContext; // D_80096BE0 extern FaultDrawer faultDrawContextInit; // D_80096BE4 extern UNK_TYPE4 D_80096C20; // D_80096C20 extern UNK_TYPE4 D_80096C30; // D_80096C30 -extern ThreadInfo* ThreadInfoListHead; // D_80096C40 -extern ThreadInfo* ThreadInfoListTail; // D_80096C44 +extern StackEntry* sStackInfoListStart; // D_80096C40 +extern StackEntry* sStackInfoListEnd; // D_80096C44 extern UNK_TYPE1 D_80096C50; // D_80096C50 extern UNK_TYPE1 D_80096CD0; // D_80096CD0 extern UNK_TYPE1 D_80096CF0; // D_80096CF0 @@ -265,22 +265,22 @@ extern UNK_TYPE1 D_800994C0; // D_800994C0 extern UNK_TYPE1 D_800994C8; // D_800994C8 extern char D_800994D0[]; // D_800994D0 extern char D_800994DC[]; // D_800994DC -extern ThreadInfo bootThreadInfo; // D_80099500 +extern StackEntry bootStackEntry; // D_80099500 extern OSThread idleOSThread; // D_80099520 extern u8 idleStack[1024]; // D_800996D0 -extern ThreadInfo idleTreadInfo; // D_80099AD0 +extern StackEntry idleStackEntry; // D_80099AD0 extern u8 bootStack[1024]; // D_80099AF0 extern Irqmgr irqmgrContext; // D_80099EF0 extern u8 irqmgrStack[1280]; // D_8009A170 -extern ThreadInfo irqmgrThreadInfo; // D_8009A670 +extern StackEntry irqmgrStackEntry; // D_8009A670 extern OSThread mainOSThread; // D_8009A690 extern u8 mainStack[2304]; // D_8009A840 -extern ThreadInfo mainThreadInfo; // D_8009B140 +extern StackEntry mainStackEntry; // D_8009B140 extern UNK_TYPE4 D_8009B160[50]; // D_8009B160 extern OSMesgQueue D_8009B228; // D_8009B228 extern OSViMode D_8009B240; // D_8009B240 extern u8 D_8009B290; // D_8009B290 -extern ThreadInfo dmamgrThreadInfo; // D_8009B2A0 +extern StackEntry dmamgrStackEntry; // D_8009B2A0 extern u16 numDmaEntries; // D_8009B2BC extern OSMesgQueue dmamgrMsq; // D_8009B2C0 extern OSMesg dmamgrMsqMessages[32]; // D_8009B2D8 @@ -297,7 +297,7 @@ extern f32 D_8009BE54; // D_8009BE54 extern u32 faultCustomOptions; // D_8009BE58 extern u32 faultCopyToLog; // D_8009BE5C extern u8 faultStack[1536]; // D_8009BE60 -extern ThreadInfo faultThreadInfo; // D_8009C460 +extern StackEntry faultStackEntry; // D_8009C460 extern FaultContext faultContextStruct; // D_8009C480 extern FaultDrawer faultDrawContextStruct; // D_8009CCD0 extern UNK_TYPE4 D_8009CD10; // D_8009CD10 @@ -2769,7 +2769,7 @@ extern u8 D_801F6DFC; // D_801F6DFC extern UNK_TYPE1 D_801F6DFD; // D_801F6DFD extern s8018571C D_801F6E00; // D_801F6E00 extern UNK_TYPE1 D_801F6FC0; // D_801F6FC0 -extern ThreadInfo slowlyThreadInfo; // D_801F6FC8 +extern StackEntry slowlyStackEntry; // D_801F6FC8 extern u8 slowlyStack[4096]; // D_801F6FE8 extern UNK_TYPE1 D_801F7FE8; // D_801F7FE8 extern UNK_TYPE1 D_801F7FF0; // D_801F7FF0 @@ -2794,10 +2794,10 @@ extern u8 graphStack[6144]; // D_801F87B8 extern u8 schedStack[1536]; // D_801F9FB8 extern u8 audioStack[2048]; // D_801FA5B8 extern u8 padmgrStack[1280]; // D_801FADB8 -extern ThreadInfo graphThreadInfo; // D_801FB2B8 -extern ThreadInfo schedThreadInfo; // D_801FB2D8 -extern ThreadInfo audioThreadInfo; // D_801FB2F8 -extern ThreadInfo padmgrThreadInfo; // D_801FB318 +extern StackEntry graphStackEntry; // D_801FB2B8 +extern StackEntry schedStackEntry; // D_801FB2D8 +extern StackEntry audioStackEntry; // D_801FB2F8 +extern StackEntry padmgrStackEntry; // D_801FB318 extern AudioThreadStruct audioContext; // D_801FB338 extern UNK_TYPE1 D_801FBAA0; // D_801FBAA0 extern UNK_TYPE1 D_801FBAB0; // D_801FBAB0 @@ -2909,7 +2909,7 @@ extern UNK_TYPE1 D_801FBE28; // D_801FBE28 extern UNK_TYPE1 D_801FBE2C; // D_801FBE2C extern UNK_TYPE4 D_801FBE30; // D_801FBE30 extern u8 sys_flashromStack[4096]; // D_801FBE38 -extern ThreadInfo sys_flashromThreadInfo; // D_801FCE38 +extern StackEntry sys_flashromStackEntry; // D_801FCE38 extern OSThread sys_flashromOSThread; // D_801FCE58 extern s80185D40 D_801FD008; // D_801FD008 extern OSMesg D_801FD034; // D_801FD034 diff --git a/linker_scripts/code_script.txt b/linker_scripts/code_script.txt index 24526cf2a4..f18dae3e23 100644 --- a/linker_scripts/code_script.txt +++ b/linker_scripts/code_script.txt @@ -18,7 +18,7 @@ SECTIONS build/asm/loadfragment.o(.text) build/asm/loadfragment2.o(.text) build/asm/boot_0x80085130.o(.text) - build/asm/boot_0x80085320.o(.text) + build/src/boot_O2/stackcheck.o(.text) build/asm/boot_0x80085570.o(.text) build/asm/mtxuty-cvt.o(.text) build/asm/boot_0x80086280.o(.text) diff --git a/src/boot_O2/stackcheck.c b/src/boot_O2/stackcheck.c new file mode 100644 index 0000000000..b2e28a34d7 --- /dev/null +++ b/src/boot_O2/stackcheck.c @@ -0,0 +1,121 @@ +#include +#include + +void StackCheck_Init(StackEntry* entry, u32 stackTop, u32 stackBottom, u32 initValue, s32 minSpace, char* name) { + StackEntry* iter; + u32* addr; + + if (!entry) { + sStackInfoListStart = NULL; + } else { + entry->head = stackTop; + entry->tail = stackBottom; + entry->initValue = initValue; + entry->minSpace = minSpace; + entry->name = name; + iter = sStackInfoListStart; + while (iter) { + if (iter == entry) { + return; + } + iter = iter->next; + } + + entry->prev = sStackInfoListEnd; + entry->next = NULL; + + if (sStackInfoListEnd) { + sStackInfoListEnd->next = entry; + } + + sStackInfoListEnd = entry; + if (!sStackInfoListStart) { + sStackInfoListStart = entry; + } + + if (entry->minSpace != -1) { + addr = (u32*)entry->head; + while ((u32)addr < entry->tail) { + *addr++ = entry->initValue; + } + } + } +} + +void StackCheck_Cleanup(StackEntry* entry) { + u32 inconsistency = 0; // unused variable needed to match + + if (!entry->prev) { + if (entry == sStackInfoListStart) { + sStackInfoListStart = entry->next; + } else { + inconsistency = 1; + } + } else { + entry->prev->next = entry->next; + } + + if (!entry->next) { + if (entry == sStackInfoListEnd) { + sStackInfoListEnd = entry->prev; + } else { + inconsistency = 1; + } + } + + if (inconsistency) {} +} + +#ifdef NON_MATCHING +// Missing useless move +s32 StackCheck_GetState(StackEntry* entry) { + u32* last; + u32 used; + u32 free; + s32 ret; + + for (last = (u32*)entry->head; (u32)last < entry->tail; last++) { + if (entry->initValue != *last) { + break; + } + } + + used = entry->tail - (u32)last; + free = (u32)last - entry->head; + + if (free == 0) { + return 2; + } + + if (free < entry->minSpace && entry->minSpace != -1) { + return 1; + } + + return 0; +} +#else +GLOBAL_ASM("asm/nonmatching/stackcheck/StackCheck_GetState.asm") +#endif + +u32 StackCheck_CheckAll() { + u32 ret = 0; + + StackEntry* iter = sStackInfoListStart; + while(iter) { + u32 state = StackCheck_GetState(iter); + if (state) { + ret = 1; + } + iter = iter->next; + } + + return ret; +} + +u32 StackCheck_Check(StackEntry* entry) { + if (!entry) { + return StackCheck_CheckAll(); + } else { + return StackCheck_GetState(entry); + } +} diff --git a/src/boot_O2_g3/boot_0x80080060.c b/src/boot_O2_g3/boot_0x80080060.c index 5fa6daa6d9..d73ada89f7 100644 --- a/src/boot_O2_g3/boot_0x80080060.c +++ b/src/boot_O2_g3/boot_0x80080060.c @@ -1,14 +1,14 @@ #include #include -UNK_RET start(void) { - thread_info_init(&bootThreadInfo, bootStack, &bootStack[1024], 0, -1, bootThreadName); +void start(void) { + StackCheck_Init(&bootStackEntry, (u32)bootStack, (u32)&bootStack[1024], 0, -1, bootThreadName); osMemSize = func_8008D350(); func_800818F4(); osInitialize(); osUnmapTLBAll(); D_80096B40 = func_80092920(); - thread_info_init(&idleTreadInfo, idleStack, &idleStack[1024], 0, 256, idleThreadName); - osCreateThread(&idleOSThread, 1, (osCreateThread_func)Idle_ThreadEntry, 0, &idleTreadInfo, 12); + StackCheck_Init(&idleStackEntry, (u32)idleStack, (u32)&idleStack[1024], 0, 256, idleThreadName); + osCreateThread(&idleOSThread, 1, (osCreateThread_func)Idle_ThreadEntry, 0, &idleStack[1024], 12); osStartThread(&idleOSThread); } diff --git a/src/boot_O2_g3_trapuv/fault.c b/src/boot_O2_g3_trapuv/fault.c index 98af262883..8fa4a6b1ad 100644 --- a/src/boot_O2_g3_trapuv/fault.c +++ b/src/boot_O2_g3_trapuv/fault.c @@ -896,8 +896,8 @@ void Fault_Start(void){ faultCtxt->faultActive = 0; faultContextStruct.faultHandlerEnabled = 1; osCreateMesgQueue(&faultCtxt->queue, faultCtxt->msg, 1); - thread_info_init(&faultThreadInfo, faultStack, &faultStack[1536], 0, 0x100, faultThreadName); - osCreateThread(&faultCtxt->thread, 2, (osCreateThread_func)Fault_ThreadEntry, 0, &faultThreadInfo, 0x7f); + StackCheck_Init(&faultStackEntry, (u32)faultStack, (u32)&faultStack[1536], 0, 0x100, faultThreadName); + osCreateThread(&faultCtxt->thread, 2, (osCreateThread_func)Fault_ThreadEntry, 0, &faultStack[1536], 0x7f); osStartThread(&faultCtxt->thread); } diff --git a/tables/files_with_nonmatching.txt b/tables/files_with_nonmatching.txt index 5bdc438d54..5a8d6fa331 100644 --- a/tables/files_with_nonmatching.txt +++ b/tables/files_with_nonmatching.txt @@ -1,10 +1,13 @@ boot_0x800805E0 boot_0x800968B0 -z_std_dma -z_effect_soft_sprite -z_lib +fault +fault_drawer +stackcheck z_actor z_DLF +z_effect_soft_sprite +z_lib z_lights z_room z_scene_proc +z_std_dma diff --git a/tables/functions.py b/tables/functions.py index 7a6dc2f8c6..b869f1ff84 100644 --- a/tables/functions.py +++ b/tables/functions.py @@ -131,11 +131,11 @@ 0x8008520C:("func_8008520C","void","void"), 0x8008522C:("func_8008522C","void","void"), 0x8008524C:("func_8008524C","void","void"), - 0x80085320:("thread_info_init","void","ThreadInfo* info, u8* stackBegin, u8* stackEnd, s32 initStackValue, s32 stackWarningThreshold, char* threadName"), - 0x800853F8:("func_800853F8","void","void"), - 0x80085468:("get_thread_stack_status","ThreadStackStatus","ThreadInfo* threadInfo"), - 0x800854E0:("check_all_thread_status","ThreadStackStatus","void"), - 0x80085538:("check_thread_status","ThreadStackStatus","ThreadInfo* threadInfo"), + 0x80085320:("StackCheck_Init","void","StackEntry* entry, u32 stackTop, u32 stackBottom, u32 initValue, s32 minSpace, char* name"), + 0x800853F8:("StackCheck_Cleanup","void","StackEntry* entry"), + 0x80085468:("StackCheck_GetState","s32","StackEntry* entry"), + 0x800854E0:("StackCheck_CheckAll","u32","void"), + 0x80085538:("StackCheck_Check","u32","StackEntry* entry"), 0x80085570:("func_80085570","void","void"), 0x800859BC:("func_800859BC","void","UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5"), 0x80085A08:("func_80085A08","void","void"), diff --git a/tables/objects.py b/tables/objects.py index 430c9b1ac3..db6014b557 100644 --- a/tables/objects.py +++ b/tables/objects.py @@ -12,7 +12,7 @@ 0x80084940:"loadfragment", 0x80084DB0:"loadfragment2", 0x80085130:"", - 0x80085320:"", + 0x80085320:"stackcheck", 0x80085570:"", 0x80086110:"mtxuty-cvt", 0x80086280:"", diff --git a/tables/variables.py b/tables/variables.py index c98bdfe533..a9dfd26a04 100644 --- a/tables/variables.py +++ b/tables/variables.py @@ -19,8 +19,8 @@ 0x80096BE4:("faultDrawContextInit","FaultDrawer",""), 0x80096C20:("D_80096C20","UNK_TYPE4",""), 0x80096C30:("D_80096C30","UNK_TYPE4",""), - 0x80096C40:("ThreadInfoListHead","ThreadInfo*",""), - 0x80096C44:("ThreadInfoListTail","ThreadInfo*",""), + 0x80096C40:("sStackInfoListStart","StackEntry*",""), + 0x80096C44:("sStackInfoListEnd","StackEntry*",""), 0x80096C50:("D_80096C50","UNK_TYPE1",""), 0x80096CD0:("D_80096CD0","UNK_TYPE1",""), 0x80096CF0:("D_80096CF0","UNK_TYPE1",""), @@ -259,22 +259,22 @@ 0x800994C8:("D_800994C8","UNK_TYPE1",""), 0x800994D0:("D_800994D0","char","[]"), 0x800994DC:("D_800994DC","char","[]"), - 0x80099500:("bootThreadInfo","ThreadInfo",""), + 0x80099500:("bootStackEntry","StackEntry",""), 0x80099520:("idleOSThread","OSThread",""), 0x800996D0:("idleStack","u8","[1024]"), - 0x80099AD0:("idleTreadInfo","ThreadInfo",""), + 0x80099AD0:("idleStackEntry","StackEntry",""), 0x80099AF0:("bootStack","u8","[1024]"), 0x80099EF0:("irqmgrContext","Irqmgr",""), 0x8009A170:("irqmgrStack","u8","[1280]"), - 0x8009A670:("irqmgrThreadInfo","ThreadInfo",""), + 0x8009A670:("irqmgrStackEntry","StackEntry",""), 0x8009A690:("mainOSThread","OSThread",""), 0x8009A840:("mainStack","u8","[2304]"), - 0x8009B140:("mainThreadInfo","ThreadInfo",""), + 0x8009B140:("mainStackEntry","StackEntry",""), 0x8009B160:("D_8009B160","UNK_TYPE4","[50]"), 0x8009B228:("D_8009B228","OSMesgQueue",""), 0x8009B240:("D_8009B240","OSViMode",""), 0x8009B290:("D_8009B290","u8",""), - 0x8009B2A0:("dmamgrThreadInfo","ThreadInfo",""), + 0x8009B2A0:("dmamgrStackEntry","StackEntry",""), 0x8009B2BC:("numDmaEntries","u16",""), 0x8009B2C0:("dmamgrMsq","OSMesgQueue",""), 0x8009B2D8:("dmamgrMsqMessages","OSMesg","[32]"), @@ -291,7 +291,7 @@ 0x8009BE58:("faultCustomOptions","u32",""), 0x8009BE5C:("faultCopyToLog","u32",""), 0x8009BE60:("faultStack","u8","[1536]"), - 0x8009C460:("faultThreadInfo","ThreadInfo",""), + 0x8009C460:("faultStackEntry","StackEntry",""), 0x8009C480:("faultContextStruct","FaultContext",""), 0x8009CCD0:("faultDrawContextStruct","FaultDrawer",""), 0x8009CD10:("D_8009CD10","UNK_TYPE4",""), @@ -2763,7 +2763,7 @@ 0x801F6DFD:("D_801F6DFD","UNK_TYPE1",""), 0x801F6E00:("D_801F6E00","s8018571C",""), 0x801F6FC0:("D_801F6FC0","UNK_TYPE1",""), - 0x801F6FC8:("slowlyThreadInfo","ThreadInfo",""), + 0x801F6FC8:("slowlyStackEntry","StackEntry",""), 0x801F6FE8:("slowlyStack","u8","[4096]"), 0x801F7FE8:("D_801F7FE8","UNK_TYPE1",""), 0x801F7FF0:("D_801F7FF0","UNK_TYPE1",""), @@ -2788,10 +2788,10 @@ 0x801F9FB8:("schedStack","u8","[1536]"), 0x801FA5B8:("audioStack","u8","[2048]"), 0x801FADB8:("padmgrStack","u8","[1280]"), - 0x801FB2B8:("graphThreadInfo","ThreadInfo",""), - 0x801FB2D8:("schedThreadInfo","ThreadInfo",""), - 0x801FB2F8:("audioThreadInfo","ThreadInfo",""), - 0x801FB318:("padmgrThreadInfo","ThreadInfo",""), + 0x801FB2B8:("graphStackEntry","StackEntry",""), + 0x801FB2D8:("schedStackEntry","StackEntry",""), + 0x801FB2F8:("audioStackEntry","StackEntry",""), + 0x801FB318:("padmgrStackEntry","StackEntry",""), 0x801FB338:("audioContext","AudioThreadStruct",""), 0x801FBAA0:("D_801FBAA0","UNK_TYPE1",""), 0x801FBAB0:("D_801FBAB0","UNK_TYPE1",""), @@ -2903,7 +2903,7 @@ 0x801FBE2C:("D_801FBE2C","UNK_TYPE1",""), 0x801FBE30:("D_801FBE30","UNK_TYPE4",""), 0x801FBE38:("sys_flashromStack","u8","[4096]"), - 0x801FCE38:("sys_flashromThreadInfo","ThreadInfo",""), + 0x801FCE38:("sys_flashromStackEntry","StackEntry",""), 0x801FCE58:("sys_flashromOSThread","OSThread",""), 0x801FD008:("D_801FD008","s80185D40",""), 0x801FD034:("D_801FD034","OSMesg",""), diff --git a/undef.txt b/undef.txt index cf9bcf7213..509937a112 100644 --- a/undef.txt +++ b/undef.txt @@ -8,22 +8,22 @@ osMemSize = 0x80000318; D_8000031C = 0x8000031C; D_80000500 = 0x80000500; D_80025D00 = 0x80025D00; -bootThreadInfo = boot_bss_start + 0x00000000; +bootStackEntry = boot_bss_start + 0x00000000; idleOSThread = boot_bss_start + 0x00000020; idleStack = boot_bss_start + 0x000001D0; -idleTreadInfo = boot_bss_start + 0x000005D0; +idleStackEntry = boot_bss_start + 0x000005D0; bootStack = boot_bss_start + 0x000005F0; irqmgrContext = boot_bss_start + 0x000009F0; irqmgrStack = boot_bss_start + 0x00000C70; -irqmgrThreadInfo = boot_bss_start + 0x00001170; +irqmgrStackEntry = boot_bss_start + 0x00001170; mainOSThread = boot_bss_start + 0x00001190; mainStack = boot_bss_start + 0x00001340; -mainThreadInfo = boot_bss_start + 0x00001C40; +mainStackEntry = boot_bss_start + 0x00001C40; D_8009B160 = boot_bss_start + 0x00001C60; D_8009B228 = boot_bss_start + 0x00001D28; D_8009B240 = boot_bss_start + 0x00001D40; D_8009B290 = boot_bss_start + 0x00001D90; -dmamgrThreadInfo = boot_bss_start + 0x00001DA0; +dmamgrStackEntry = boot_bss_start + 0x00001DA0; numDmaEntries = boot_bss_start + 0x00001DBC; dmamgrMsq = boot_bss_start + 0x00001DC0; dmamgrMsqMessages = boot_bss_start + 0x00001DD8; @@ -40,7 +40,7 @@ D_8009BE54 = boot_bss_start + 0x00002954; faultCustomOptions = boot_bss_start + 0x00002958; faultCopyToLog = boot_bss_start + 0x0000295C; faultStack = boot_bss_start + 0x00002960; -faultThreadInfo = boot_bss_start + 0x00002F60; +faultStackEntry = boot_bss_start + 0x00002F60; faultContextStruct = boot_bss_start + 0x00002F80; faultDrawContextStruct = boot_bss_start + 0x000037D0; D_8009CD10 = boot_bss_start + 0x00003810; @@ -389,7 +389,7 @@ D_801F6DFC = code_bss_start + 0x00012E5C; D_801F6DFD = code_bss_start + 0x00012E5D; D_801F6E00 = code_bss_start + 0x00012E60; D_801F6FC0 = code_bss_start + 0x00013020; -slowlyThreadInfo = code_bss_start + 0x00013028; +slowlyStackEntry = code_bss_start + 0x00013028; slowlyStack = code_bss_start + 0x00013048; D_801F7FE8 = code_bss_start + 0x00014048; D_801F7FF0 = code_bss_start + 0x00014050; @@ -414,10 +414,10 @@ graphStack = code_bss_start + 0x00014818; schedStack = code_bss_start + 0x00016018; audioStack = code_bss_start + 0x00016618; padmgrStack = code_bss_start + 0x00016E18; -graphThreadInfo = code_bss_start + 0x00017318; -schedThreadInfo = code_bss_start + 0x00017338; -audioThreadInfo = code_bss_start + 0x00017358; -padmgrThreadInfo = code_bss_start + 0x00017378; +graphStackEntry = code_bss_start + 0x00017318; +schedStackEntry = code_bss_start + 0x00017338; +audioStackEntry = code_bss_start + 0x00017358; +padmgrStackEntry = code_bss_start + 0x00017378; audioContext = code_bss_start + 0x00017398; D_801FBAA0 = code_bss_start + 0x00017B00; D_801FBAB0 = code_bss_start + 0x00017B10; @@ -529,7 +529,7 @@ D_801FBE28 = code_bss_start + 0x00017E88; D_801FBE2C = code_bss_start + 0x00017E8C; D_801FBE30 = code_bss_start + 0x00017E90; sys_flashromStack = code_bss_start + 0x00017E98; -sys_flashromThreadInfo = code_bss_start + 0x00018E98; +sys_flashromStackEntry = code_bss_start + 0x00018E98; sys_flashromOSThread = code_bss_start + 0x00018EB8; D_801FD008 = code_bss_start + 0x00019068; D_801FD034 = code_bss_start + 0x00019094;