c: osPiGetCmdQueue

This commit is contained in:
Mittenshugg
2020-08-04 16:17:46 -05:00
parent 90dc1f3056
commit bfe4858ca2
11 changed files with 59 additions and 118 deletions
+2
View File
@@ -183,7 +183,9 @@ $(BUILD_DIR)/lib/src/unknown_0CDE90.o: OPT_FLAGS := -O1
$(BUILD_DIR)/lib/src/unknown_0D3160.o: OPT_FLAGS := -O1
$(BUILD_DIR)/lib/src/osCreateThread.o : OPT_FLAGS := -O1
$(BUILD_DIR)/lib/src/osGetThreadPri.o : OPT_FLAGS := -O1
$(BUILD_DIR)/lib/src/osJamMesg.o : OPT_FLAGS := -O1
$(BUILD_DIR)/lib/src/osPfsFreeBlocks.o: OPT_FLAGS := -O1
$(BUILD_DIR)/lib/src/osPiGetCmdQueue.o : OPT_FLAGS := -O1
$(BUILD_DIR)/lib/src/osPiStartDma.o : OPT_FLAGS := -O1
$(BUILD_DIR)/lib/src/osRecvMesg.o : OPT_FLAGS := -O1
$(BUILD_DIR)/lib/src/osSendMesg.o : OPT_FLAGS := -O1
@@ -1,94 +0,0 @@
glabel osJamMesg
/* 0D42A0 800D36A0 27BDFFD8 */ addiu $sp, $sp, -0x28
/* 0D42A4 800D36A4 AFBF001C */ sw $ra, 0x1c($sp)
/* 0D42A8 800D36A8 AFA40028 */ sw $a0, 0x28($sp)
/* 0D42AC 800D36AC AFA5002C */ sw $a1, 0x2c($sp)
/* 0D42B0 800D36B0 AFA60030 */ sw $a2, 0x30($sp)
/* 0D42B4 800D36B4 AFB10018 */ sw $s1, 0x18($sp)
/* 0D42B8 800D36B8 0C034958 */ jal __osDisableInt
/* 0D42BC 800D36BC AFB00014 */ sw $s0, 0x14($sp)
/* 0D42C0 800D36C0 8FAE0028 */ lw $t6, 0x28($sp)
/* 0D42C4 800D36C4 00408025 */ move $s0, $v0
/* 0D42C8 800D36C8 8DCF0008 */ lw $t7, 8($t6)
/* 0D42CC 800D36CC 8DD80010 */ lw $t8, 0x10($t6)
/* 0D42D0 800D36D0 01F8082A */ slt $at, $t7, $t8
/* 0D42D4 800D36D4 14200018 */ bnez $at, .L800D3738
/* 0D42D8 800D36D8 00000000 */ nop
.L800D36DC:
/* 0D42DC 800D36DC 8FB90030 */ lw $t9, 0x30($sp)
/* 0D42E0 800D36E0 24010001 */ li $at, 1
/* 0D42E4 800D36E4 1721000A */ bne $t9, $at, .L800D3710
/* 0D42E8 800D36E8 00000000 */ nop
/* 0D42EC 800D36EC 3C09800E */ lui $t1, %hi(__osRunningThread) # $t1, 0x800e
/* 0D42F0 800D36F0 8D294890 */ lw $t1, %lo(__osRunningThread)($t1)
/* 0D42F4 800D36F4 24080008 */ li $t0, 8
/* 0D42F8 800D36F8 A5280010 */ sh $t0, 0x10($t1)
/* 0D42FC 800D36FC 8FA40028 */ lw $a0, 0x28($sp)
/* 0D4300 800D3700 0C034CB3 */ jal __osEnqueueAndYield
/* 0D4304 800D3704 24840004 */ addiu $a0, $a0, 4
/* 0D4308 800D3708 10000005 */ b .L800D3720
/* 0D430C 800D370C 00000000 */ nop
.L800D3710:
/* 0D4310 800D3710 0C034960 */ jal __osRestoreInt
/* 0D4314 800D3714 02002025 */ move $a0, $s0
/* 0D4318 800D3718 10000030 */ b .L800D37DC
/* 0D431C 800D371C 2402FFFF */ li $v0, -1
.L800D3720:
/* 0D4320 800D3720 8FAA0028 */ lw $t2, 0x28($sp)
/* 0D4324 800D3724 8D4B0008 */ lw $t3, 8($t2)
/* 0D4328 800D3728 8D4C0010 */ lw $t4, 0x10($t2)
/* 0D432C 800D372C 016C082A */ slt $at, $t3, $t4
/* 0D4330 800D3730 1020FFEA */ beqz $at, .L800D36DC
/* 0D4334 800D3734 00000000 */ nop
.L800D3738:
/* 0D4338 800D3738 8FAD0028 */ lw $t5, 0x28($sp)
/* 0D433C 800D373C 8DAE000C */ lw $t6, 0xc($t5)
/* 0D4340 800D3740 8DAF0010 */ lw $t7, 0x10($t5)
/* 0D4344 800D3744 01CFC021 */ addu $t8, $t6, $t7
/* 0D4348 800D3748 2719FFFF */ addiu $t9, $t8, -1
/* 0D434C 800D374C 032F001A */ div $zero, $t9, $t7
/* 0D4350 800D3750 00004010 */ mfhi $t0
/* 0D4354 800D3754 ADA8000C */ sw $t0, 0xc($t5)
/* 0D4358 800D3758 8FAA0028 */ lw $t2, 0x28($sp)
/* 0D435C 800D375C 8FA9002C */ lw $t1, 0x2c($sp)
/* 0D4360 800D3760 15E00002 */ bnez $t7, .L800D376C
/* 0D4364 800D3764 00000000 */ nop
/* 0D4368 800D3768 0007000D */ break 7
.L800D376C:
/* 0D436C 800D376C 2401FFFF */ li $at, -1
/* 0D4370 800D3770 15E10004 */ bne $t7, $at, .L800D3784
/* 0D4374 800D3774 3C018000 */ lui $at, 0x8000
/* 0D4378 800D3778 17210002 */ bne $t9, $at, .L800D3784
/* 0D437C 800D377C 00000000 */ nop
/* 0D4380 800D3780 0006000D */ break 6
.L800D3784:
/* 0D4384 800D3784 8D4C000C */ lw $t4, 0xc($t2)
/* 0D4388 800D3788 8D4B0014 */ lw $t3, 0x14($t2)
/* 0D438C 800D378C 000C7080 */ sll $t6, $t4, 2
/* 0D4390 800D3790 016EC021 */ addu $t8, $t3, $t6
/* 0D4394 800D3794 AF090000 */ sw $t1, ($t8)
/* 0D4398 800D3798 8FB90028 */ lw $t9, 0x28($sp)
/* 0D439C 800D379C 8F2F0008 */ lw $t7, 8($t9)
/* 0D43A0 800D37A0 25E80001 */ addiu $t0, $t7, 1
/* 0D43A4 800D37A4 AF280008 */ sw $t0, 8($t9)
/* 0D43A8 800D37A8 8FAD0028 */ lw $t5, 0x28($sp)
/* 0D43AC 800D37AC 8DAA0000 */ lw $t2, ($t5)
/* 0D43B0 800D37B0 8D4C0000 */ lw $t4, ($t2)
/* 0D43B4 800D37B4 11800006 */ beqz $t4, .L800D37D0
/* 0D43B8 800D37B8 00000000 */ nop
/* 0D43BC 800D37BC 0C034D05 */ jal __osPopThread
/* 0D43C0 800D37C0 01A02025 */ move $a0, $t5
/* 0D43C4 800D37C4 00408825 */ move $s1, $v0
/* 0D43C8 800D37C8 0C032268 */ jal osStartThread
/* 0D43CC 800D37CC 02202025 */ move $a0, $s1
.L800D37D0:
/* 0D43D0 800D37D0 0C034960 */ jal __osRestoreInt
/* 0D43D4 800D37D4 02002025 */ move $a0, $s0
/* 0D43D8 800D37D8 00001025 */ move $v0, $zero
.L800D37DC:
/* 0D43DC 800D37DC 8FBF001C */ lw $ra, 0x1c($sp)
/* 0D43E0 800D37E0 8FB00014 */ lw $s0, 0x14($sp)
/* 0D43E4 800D37E4 8FB10018 */ lw $s1, 0x18($sp)
/* 0D43E8 800D37E8 03E00008 */ jr $ra
/* 0D43EC 800D37EC 27BD0028 */ addiu $sp, $sp, 0x28
@@ -1,16 +0,0 @@
glabel osPiGetCmdQueue
/* 0D43F0 800D37F0 3C0E800E */ lui $t6, %hi(__osPiDevMgr) # $t6, 0x800e
/* 0D43F4 800D37F4 8DCE3740 */ lw $t6, %lo(__osPiDevMgr)($t6)
/* 0D43F8 800D37F8 15C00003 */ bnez $t6, .L800D3808
/* 0D43FC 800D37FC 00000000 */ nop
/* 0D4400 800D3800 03E00008 */ jr $ra
/* 0D4404 800D3804 00001025 */ move $v0, $zero
.L800D3808:
/* 0D4408 800D3808 3C02800E */ lui $v0, %hi(D_800E3748) # $v0, 0x800e
/* 0D440C 800D380C 8C423748 */ lw $v0, %lo(D_800E3748)($v0)
/* 0D4410 800D3810 03E00008 */ jr $ra
/* 0D4414 800D3814 00000000 */ nop
/* 0D4418 800D3818 00000000 */ nop
/* 0D441C 800D381C 00000000 */ nop
-3
View File
@@ -2,13 +2,10 @@
/* RAM_POS: 0x800D4590 */
#include "types.h"
//#include "macros.h"
#define PHYS_TO_K1(x) ((u32)(x)|0xA0000000) /* physical to kseg1 */
#define IO_READ(addr) (*(vu32 *)PHYS_TO_K1(addr))
//GLOBAL_ASM("lib/asm/non_matchings/unknown_0D5190/__osSiRawReadIo.s")
s32 __osSiRawReadIo(u32 devAddr, u32 *data)
{
if (__osSiDeviceBusy())
+35
View File
@@ -0,0 +1,35 @@
/* The comment below is needed for this file to be picked up by generate_ld */
/* RAM_POS: 0x800D36A0 */
#include "libultra_internal.h"
extern OSThread* __osRunningThread;
s32 osJamMesg(OSMesgQueue *mq, OSMesg msg, s32 flag)
{
register u32 saveMask = __osDisableInt();
while (mq->validCount >= mq->msgCount)
{
if (flag == OS_MESG_BLOCK)
{
__osRunningThread->state = OS_STATE_WAITING;
__osEnqueueAndYield(&mq->fullqueue);
}
else
{
__osRestoreInt(saveMask);
return -1;
}
}
mq->first = (mq->first + mq->msgCount - 1) % mq->msgCount;
mq->msg[mq->first] = msg;
mq->validCount++;
if (mq->mtqueue->next != NULL)
{
osStartThread(__osPopThread(&mq->mtqueue));
}
__osRestoreInt(saveMask);
return 0;
}
+13
View File
@@ -0,0 +1,13 @@
/* The comment below is needed for this file to be picked up by generate_ld */
/* RAM_POS: 0x800D37F0 */
#include "libultra_internal.h"
extern OSDevMgr __osPiDevMgr;
OSMesgQueue *osPiGetCmdQueue(void)
{
if (!__osPiDevMgr.active)
return NULL;
return __osPiDevMgr.cmdQueue;
}
-5
View File
@@ -5,8 +5,3 @@
#include "macros.h"
GLOBAL_ASM("lib/asm/non_matchings/unknown_0D4270/func_800D3670.s")
GLOBAL_ASM("lib/asm/non_matchings/unknown_0D4270/osJamMesg.s")
GLOBAL_ASM("lib/asm/non_matchings/unknown_0D4270/osPiGetCmdQueue.s")
GLOBAL_ASM("lib/asm/non_matchings/unknown_0D4270/func_800D3820.s")
GLOBAL_ASM("lib/asm/non_matchings/unknown_0D4270/_Putfld.s")
GLOBAL_ASM("lib/asm/non_matchings/unknown_0D4270/_Printf.s")
+9
View File
@@ -0,0 +1,9 @@
/* The comment below is needed for this file to be picked up by generate_ld */
/* RAM_POS: 0x800D3820 */
#include "types.h"
#include "macros.h"
GLOBAL_ASM("lib/asm/non_matchings/unknown_0D43F0/func_800D3820.s")
GLOBAL_ASM("lib/asm/non_matchings/unknown_0D43F0/_Putfld.s")
GLOBAL_ASM("lib/asm/non_matchings/unknown_0D43F0/_Printf.s")