Port stackcheck.c from oot decomp

This commit is contained in:
rozlette 2020-01-12 20:18:31 -06:00
parent 76c3d660a9
commit 30daa16255
13 changed files with 203 additions and 81 deletions

View File

@ -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)

View File

@ -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

View File

@ -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;

View File

@ -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

View File

@ -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)

121
src/boot_O2/stackcheck.c Normal file
View File

@ -0,0 +1,121 @@
#include <ultra64.h>
#include <global.h>
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);
}
}

View File

@ -1,14 +1,14 @@
#include <ultra64.h>
#include <global.h>
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);
}

View File

@ -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);
}

View File

@ -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

View File

@ -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"),

View File

@ -12,7 +12,7 @@
0x80084940:"loadfragment",
0x80084DB0:"loadfragment2",
0x80085130:"",
0x80085320:"",
0x80085320:"stackcheck",
0x80085570:"",
0x80086110:"mtxuty-cvt",
0x80086280:"",

View File

@ -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",""),

View File

@ -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;