summaryrefslogtreecommitdiff
path: root/src/boot_O2/stackcheck.c
diff options
context:
space:
mode:
authorLucas Shaw <49287729+shawlucas@users.noreply.github.com>2021-03-27 14:17:41 -0700
committerGitHub <noreply@github.com>2021-03-27 16:17:41 -0500
commit623b6d531855aecb3f64cdb678843e9d423ce415 (patch)
treebfa2514d5320425eb74764290057f2a21155f4d7 /src/boot_O2/stackcheck.c
parentfee7a49abc84fbe91116f969a90570cff15decde (diff)
Some OOT transfers, some renaming, etc (#75)
* Progress on various files * gfxprint stuff * split some rodata, add iconv for rodata string parsing * z_std_dma rodata * 2 nonmatchings in gfxprint * mtxuty-cvt ok * more * match a function in idle.c * progress * Cleanup * Rename BgPolygon to CollisionPoly * progress * some effect stuff * more effect progress * updates * made suggested changes * z_effect_soft_sprite_old_init mostly ok Co-authored-by: Lucas Shaw <lucas.shaw1123@gmail.com> Co-authored-by: Rozelette <Rozelette@users.noreply.github.com>
Diffstat (limited to 'src/boot_O2/stackcheck.c')
-rw-r--r--src/boot_O2/stackcheck.c23
1 files changed, 9 insertions, 14 deletions
diff --git a/src/boot_O2/stackcheck.c b/src/boot_O2/stackcheck.c
index 1c7790d97..142f824a7 100644
--- a/src/boot_O2/stackcheck.c
+++ b/src/boot_O2/stackcheck.c
@@ -69,13 +69,11 @@ void StackCheck_Cleanup(StackEntry* entry) {
if (inconsistency) {}
}
-#ifdef NON_MATCHING
-// Missing useless move
-s32 StackCheck_GetState(StackEntry* entry) {
+StackStatus StackCheck_GetState(StackEntry* entry) {
u32* last;
u32 used;
u32 free;
- s32 ret;
+ s32 status;
for (last = (u32*)entry->head; (u32)last < entry->tail; last++) {
if (entry->initValue != *last) {
@@ -87,23 +85,20 @@ s32 StackCheck_GetState(StackEntry* entry) {
free = (u32)last - entry->head;
if (free == 0) {
- return 2;
- }
-
- if (free < entry->minSpace && entry->minSpace != -1) {
- return 1;
+ status = STACK_STATUS_OVERFLOW;
+ } else if (free < (u32)entry->minSpace && entry->minSpace != -1) {
+ status = STACK_STATUS_WARNING;
+ } else {
+ status = STACK_STATUS_OK;
}
- return 0;
+ return status;
}
-#else
-#pragma GLOBAL_ASM("./asm/non_matchings/boot/stackcheck/StackCheck_GetState.asm")
-#endif
u32 StackCheck_CheckAll() {
u32 ret = 0;
-
StackEntry* iter = sStackInfoListStart;
+
while(iter) {
u32 state = StackCheck_GetState(iter);
if (state) {