Decompile __osSiGetAccess

This commit is contained in:
Ryan Dwyer 2021-01-26 23:35:06 +10:00
parent 6bc6a80a58
commit 9387bcb52d
3 changed files with 15 additions and 24 deletions

View File

@ -2295,7 +2295,7 @@ OSThread *__osRunningThread = NULL;
u32 var80060944 = 0x00000000;
u32 var80060948 = 0x00000000;
u32 var8006094c = 0x00000000;
u32 var80060950 = 0x00000000;
u32 __osSiAccessQueueEnabled = 0x00000000;
u32 var80060954 = 0x00000000;
u32 var80060958 = 0x00000000;
u32 var8006095c = 0x00000000;

View File

@ -187,6 +187,7 @@ extern u32 __osThreadTail;
extern OSThread *__osRunQueue;
extern OSThread *__osActiveQueue;
extern OSThread *__osRunningThread;
extern u32 __osSiAccessQueueEnabled;
extern u32 var80060970;
extern u32 var800609a0;
extern u32 var800609c4;

View File

@ -1,4 +1,5 @@
#include <libultra_internal.h>
#include "game/data/data_000000.h"
#include "gvars/gvars.h"
GLOBAL_ASM(
@ -6,10 +7,10 @@ glabel __osSiCreateAccessQueue
/* 4a810: 27bdffe8 */ addiu $sp,$sp,-24
/* 4a814: afbf0014 */ sw $ra,0x14($sp)
/* 4a818: 240e0001 */ addiu $t6,$zero,0x1
/* 4a81c: 3c018006 */ lui $at,%hi(var80060950)
/* 4a81c: 3c018006 */ lui $at,%hi(__osSiAccessQueueEnabled)
/* 4a820: 3c04800a */ lui $a0,%hi(__osSiAccessQueue)
/* 4a824: 3c05800a */ lui $a1,%hi(var8009c7c0)
/* 4a828: ac2e0950 */ sw $t6,%lo(var80060950)($at)
/* 4a828: ac2e0950 */ sw $t6,%lo(__osSiAccessQueueEnabled)($at)
/* 4a82c: 24a5c7c0 */ addiu $a1,$a1,%lo(var8009c7c0)
/* 4a830: 2484c7c8 */ addiu $a0,$a0,%lo(__osSiAccessQueue)
/* 4a834: 0c0120d0 */ jal osCreateMesgQueue
@ -25,27 +26,16 @@ glabel __osSiCreateAccessQueue
/* 4a85c: 00000000 */ nop
);
GLOBAL_ASM(
glabel __osSiGetAccess
/* 4a860: 3c0e8006 */ lui $t6,%hi(var80060950)
/* 4a864: 8dce0950 */ lw $t6,%lo(var80060950)($t6)
/* 4a868: 27bdffe0 */ addiu $sp,$sp,-32
/* 4a86c: afbf0014 */ sw $ra,0x14($sp)
/* 4a870: 15c00003 */ bnez $t6,.L0004a880
/* 4a874: 00000000 */ nop
/* 4a878: 0c012a04 */ jal __osSiCreateAccessQueue
/* 4a87c: 00000000 */ nop
.L0004a880:
/* 4a880: 3c04800a */ lui $a0,%hi(__osSiAccessQueue)
/* 4a884: 2484c7c8 */ addiu $a0,$a0,%lo(__osSiAccessQueue)
/* 4a888: 27a5001c */ addiu $a1,$sp,0x1c
/* 4a88c: 0c0121bc */ jal osRecvMesg
/* 4a890: 24060001 */ addiu $a2,$zero,0x1
/* 4a894: 8fbf0014 */ lw $ra,0x14($sp)
/* 4a898: 27bd0020 */ addiu $sp,$sp,0x20
/* 4a89c: 03e00008 */ jr $ra
/* 4a8a0: 00000000 */ nop
);
void __osSiGetAccess(void)
{
OSMesg dummyMesg;
if (!__osSiAccessQueueEnabled) {
__osSiCreateAccessQueue();
}
osRecvMesg(&__osSiAccessQueue, &dummyMesg, OS_MESG_BLOCK);
}
void __osSiRelAccess(void)
{