Decompile osScAddClient

This commit is contained in:
Ryan Dwyer 2021-01-25 22:34:41 +10:00
parent 6450aa8188
commit 688d6156df
4 changed files with 19 additions and 33 deletions

View File

@ -1312,7 +1312,7 @@ glabel func000019f4
/* 1a70: 24c6db30 */ addiu $a2,$a2,%lo(var8008db30)
/* 1a74: 24a5dca8 */ addiu $a1,$a1,%lo(var8008dca8)
/* 1a78: 2484dbd0 */ addiu $a0,$a0,%lo(var8008dbd0)
/* 1a7c: 0c00078c */ jal func00001e30
/* 1a7c: 0c00078c */ jal osScAddClient
/* 1a80: 00003825 */ or $a3,$zero,$zero
/* 1a84: 3c048009 */ lui $a0,%hi(var8008dbd0)
/* 1a88: 0c0007a3 */ jal func00001e8c
@ -1535,36 +1535,23 @@ void osCreateScheduler(OSSched *sc, void *stack, u8 mode, u32 numFields)
osStartThread(sc->thread);
}
GLOBAL_ASM(
glabel func00001e30
/* 1e30: 27bdffe8 */ addiu $sp,$sp,-24
/* 1e34: afbf0014 */ sw $ra,0x14($sp)
/* 1e38: afa40018 */ sw $a0,0x18($sp)
/* 1e3c: afa60020 */ sw $a2,0x20($sp)
/* 1e40: afa70024 */ sw $a3,0x24($sp)
/* 1e44: 24040001 */ addiu $a0,$zero,0x1
/* 1e48: 0c012194 */ jal osSetIntMask
/* 1e4c: afa5001c */ sw $a1,0x1c($sp)
/* 1e50: 8fa5001c */ lw $a1,0x1c($sp)
/* 1e54: 8fae0020 */ lw $t6,0x20($sp)
/* 1e58: 8fa30018 */ lw $v1,0x18($sp)
/* 1e5c: 00402025 */ or $a0,$v0,$zero
/* 1e60: acae0004 */ sw $t6,0x4($a1)
/* 1e64: 8faf0024 */ lw $t7,0x24($sp)
/* 1e68: acaf0008 */ sw $t7,0x8($a1)
/* 1e6c: 8c7800b4 */ lw $t8,0xb4($v1)
/* 1e70: acb80000 */ sw $t8,0x0($a1)
/* 1e74: 0c012194 */ jal osSetIntMask
/* 1e78: ac6500b4 */ sw $a1,0xb4($v1)
/* 1e7c: 8fbf0014 */ lw $ra,0x14($sp)
/* 1e80: 27bd0018 */ addiu $sp,$sp,0x18
/* 1e84: 03e00008 */ jr $ra
/* 1e88: 00000000 */ nop
);
void osScAddClient(OSSched *sc, OSScClient *c, OSMesgQueue *msgQ, OSScClient *next)
{
OSIntMask mask;
mask = osSetIntMask(1);
c->msgQ = msgQ;
c[1].next = next;
c->next = sc->clientList;
sc->clientList = c;
osSetIntMask(mask);
}
#if VERSION == VERSION_NTSC_BETA
GLOBAL_ASM(
glabel func0000205cnb
glabel osScRemoveClient
/* 205c: 27bdffe0 */ addiu $sp,$sp,-32
/* 2060: afbf0014 */ sw $ra,0x14($sp)
/* 2064: afa40020 */ sw $a0,0x20($sp)
@ -1572,7 +1559,7 @@ glabel func0000205cnb
/* 206c: afa00018 */ sw $zero,0x18($sp)
/* 2070: afa50024 */ sw $a1,0x24($sp)
/* 2074: 24040001 */ li $a0,0x1
/* 2078: 0c012688 */ jal 0x49a20
/* 2078: 0c012688 */ jal osSetIntMask
/* 207c: afa3001c */ sw $v1,0x1c($sp)
/* 2080: 8fa3001c */ lw $v1,0x1c($sp)
/* 2084: 8fa50024 */ lw $a1,0x24($sp)
@ -1597,7 +1584,7 @@ glabel func0000205cnb
/* 20c4: 1460fff3 */ bnez $v1,.L00002094
/* 20c8: 00000000 */ nop
.L000020cc:
/* 20cc: 0c012688 */ jal 0x49a20
/* 20cc: 0c012688 */ jal osSetIntMask
/* 20d0: 00000000 */ nop
/* 20d4: 8fbf0014 */ lw $ra,0x14($sp)
/* 20d8: 27bd0020 */ addiu $sp,$sp,0x20

View File

@ -99,7 +99,7 @@ typedef struct {
} OSSched;
void osCreateScheduler(OSSched *s, void *stack, u8 mode, u32 numFields);
void osScAddClient(OSSched *s, OSScClient *c, OSMesgQueue *msgQ);
void osScAddClient(OSSched *sc, OSScClient *c, OSMesgQueue *msgQ, OSScClient *next);
void osScRemoveClient(OSSched *s, OSScClient *c);
OSMesgQueue *osScGetCmdQ(OSSched *s);

View File

@ -9,7 +9,6 @@ s32 func000016cc(void);
s32 osGetMemSize(void);
void *allocateStack(s32 threadid, s32 size);
void func00001b28(u32 arg0);
s32 func00001e30(void);
s32 func00001fa8(void);
s32 func00002078(OSSched *sc);
void __scHandleRSP(OSSched *sc);

View File

@ -536,7 +536,7 @@ glabel func00009154
/* 91b0: 24c61810 */ addiu $a2,$a2,%lo(var80091810)
/* 91b4: 24a518d0 */ addiu $a1,$a1,%lo(var800918d0)
/* 91b8: 2484dbd0 */ addiu $a0,$a0,%lo(var8008dbd0)
/* 91bc: 0c00078c */ jal func00001e30
/* 91bc: 0c00078c */ jal osScAddClient
/* 91c0: 2dc70001 */ sltiu $a3,$t6,0x1
/* 91c4: 3c158009 */ lui $s5,%hi(var80091590)
/* 91c8: 3c148009 */ lui $s4,%hi(var80091588)