c: _VirtualToPhysicalTask

This commit is contained in:
Mittenz
2020-08-19 18:42:51 -05:00
parent 142dda8043
commit ca8efa863f
2 changed files with 25 additions and 85 deletions
@@ -1,80 +0,0 @@
glabel _VirtualToPhysicalTask
/* 0D2AF0 800D1EF0 27BDFFE0 */ addiu $sp, $sp, -0x20
/* 0D2AF4 800D1EF4 3C0E8013 */ lui $t6, %hi(D_8012D1A0) # $t6, 0x8013
/* 0D2AF8 800D1EF8 AFBF0014 */ sw $ra, 0x14($sp)
/* 0D2AFC 800D1EFC AFA40020 */ sw $a0, 0x20($sp)
/* 0D2B00 800D1F00 25CED1A0 */ addiu $t6, %lo(D_8012D1A0) # addiu $t6, $t6, -0x2e60
/* 0D2B04 800D1F04 AFAE001C */ sw $t6, 0x1c($sp)
/* 0D2B08 800D1F08 01C02825 */ move $a1, $t6
/* 0D2B0C 800D1F0C 8FA40020 */ lw $a0, 0x20($sp)
/* 0D2B10 800D1F10 0C032768 */ jal bcopy
/* 0D2B14 800D1F14 24060040 */ li $a2, 64
/* 0D2B18 800D1F18 8FAF001C */ lw $t7, 0x1c($sp)
/* 0D2B1C 800D1F1C 8DF80010 */ lw $t8, 0x10($t7)
/* 0D2B20 800D1F20 13000005 */ beqz $t8, .L800D1F38
/* 0D2B24 800D1F24 00000000 */ nop
/* 0D2B28 800D1F28 0C03233C */ jal osVirtualToPhysical
/* 0D2B2C 800D1F2C 03002025 */ move $a0, $t8
/* 0D2B30 800D1F30 8FB9001C */ lw $t9, 0x1c($sp)
/* 0D2B34 800D1F34 AF220010 */ sw $v0, 0x10($t9)
.L800D1F38:
/* 0D2B38 800D1F38 8FA8001C */ lw $t0, 0x1c($sp)
/* 0D2B3C 800D1F3C 8D090018 */ lw $t1, 0x18($t0)
/* 0D2B40 800D1F40 11200005 */ beqz $t1, .L800D1F58
/* 0D2B44 800D1F44 00000000 */ nop
/* 0D2B48 800D1F48 0C03233C */ jal osVirtualToPhysical
/* 0D2B4C 800D1F4C 01202025 */ move $a0, $t1
/* 0D2B50 800D1F50 8FAA001C */ lw $t2, 0x1c($sp)
/* 0D2B54 800D1F54 AD420018 */ sw $v0, 0x18($t2)
.L800D1F58:
/* 0D2B58 800D1F58 8FAB001C */ lw $t3, 0x1c($sp)
/* 0D2B5C 800D1F5C 8D6C0020 */ lw $t4, 0x20($t3)
/* 0D2B60 800D1F60 11800005 */ beqz $t4, .L800D1F78
/* 0D2B64 800D1F64 00000000 */ nop
/* 0D2B68 800D1F68 0C03233C */ jal osVirtualToPhysical
/* 0D2B6C 800D1F6C 01802025 */ move $a0, $t4
/* 0D2B70 800D1F70 8FAD001C */ lw $t5, 0x1c($sp)
/* 0D2B74 800D1F74 ADA20020 */ sw $v0, 0x20($t5)
.L800D1F78:
/* 0D2B78 800D1F78 8FAE001C */ lw $t6, 0x1c($sp)
/* 0D2B7C 800D1F7C 8DCF0028 */ lw $t7, 0x28($t6)
/* 0D2B80 800D1F80 11E00005 */ beqz $t7, .L800D1F98
/* 0D2B84 800D1F84 00000000 */ nop
/* 0D2B88 800D1F88 0C03233C */ jal osVirtualToPhysical
/* 0D2B8C 800D1F8C 01E02025 */ move $a0, $t7
/* 0D2B90 800D1F90 8FB8001C */ lw $t8, 0x1c($sp)
/* 0D2B94 800D1F94 AF020028 */ sw $v0, 0x28($t8)
.L800D1F98:
/* 0D2B98 800D1F98 8FB9001C */ lw $t9, 0x1c($sp)
/* 0D2B9C 800D1F9C 8F28002C */ lw $t0, 0x2c($t9)
/* 0D2BA0 800D1FA0 11000005 */ beqz $t0, .L800D1FB8
/* 0D2BA4 800D1FA4 00000000 */ nop
/* 0D2BA8 800D1FA8 0C03233C */ jal osVirtualToPhysical
/* 0D2BAC 800D1FAC 01002025 */ move $a0, $t0
/* 0D2BB0 800D1FB0 8FA9001C */ lw $t1, 0x1c($sp)
/* 0D2BB4 800D1FB4 AD22002C */ sw $v0, 0x2c($t1)
.L800D1FB8:
/* 0D2BB8 800D1FB8 8FAA001C */ lw $t2, 0x1c($sp)
/* 0D2BBC 800D1FBC 8D4B0030 */ lw $t3, 0x30($t2)
/* 0D2BC0 800D1FC0 11600005 */ beqz $t3, .L800D1FD8
/* 0D2BC4 800D1FC4 00000000 */ nop
/* 0D2BC8 800D1FC8 0C03233C */ jal osVirtualToPhysical
/* 0D2BCC 800D1FCC 01602025 */ move $a0, $t3
/* 0D2BD0 800D1FD0 8FAC001C */ lw $t4, 0x1c($sp)
/* 0D2BD4 800D1FD4 AD820030 */ sw $v0, 0x30($t4)
.L800D1FD8:
/* 0D2BD8 800D1FD8 8FAD001C */ lw $t5, 0x1c($sp)
/* 0D2BDC 800D1FDC 8DAE0038 */ lw $t6, 0x38($t5)
/* 0D2BE0 800D1FE0 11C00005 */ beqz $t6, .L800D1FF8
/* 0D2BE4 800D1FE4 00000000 */ nop
/* 0D2BE8 800D1FE8 0C03233C */ jal osVirtualToPhysical
/* 0D2BEC 800D1FEC 01C02025 */ move $a0, $t6
/* 0D2BF0 800D1FF0 8FAF001C */ lw $t7, 0x1c($sp)
/* 0D2BF4 800D1FF4 ADE20038 */ sw $v0, 0x38($t7)
.L800D1FF8:
/* 0D2BF8 800D1FF8 8FBF0014 */ lw $ra, 0x14($sp)
/* 0D2BFC 800D1FFC 8FA2001C */ lw $v0, 0x1c($sp)
/* 0D2C00 800D2000 27BD0020 */ addiu $sp, $sp, 0x20
/* 0D2C04 800D2004 03E00008 */ jr $ra
/* 0D2C08 800D2008 00000000 */ nop
+25 -5
View File
@@ -50,6 +50,9 @@ void *osViGetNextFramebuffer(void){
return framep;
}
//TODO Split into sptask.c and seperate header
#define OS_TASK_YIELDED 0x0001
#define SP_CLR_HALT 0x00001 /* Bit 0: clear halt */
@@ -68,11 +71,30 @@ void *osViGetNextFramebuffer(void){
#define SP_IMEM_START 0x04001000 /* read/write */
#define _osVirtualToPhysical(ptr) \
if (ptr != NULL) \
{ \
ptr = (void *)osVirtualToPhysical(ptr); \
}
GLOBAL_ASM("lib/asm/non_matchings/unknown_0D29F0/_VirtualToPhysicalTask.s")
void osSpTaskLoad(OSTask *intp)
OSTask D_8012D1A0;
OSTask *_VirtualToPhysicalTask(OSTask *intp)
{
OSTask *tp;
tp = &D_8012D1A0;
bcopy(intp, tp, sizeof(OSTask));
_osVirtualToPhysical(tp->t.ucode);
_osVirtualToPhysical(tp->t.ucode_data);
_osVirtualToPhysical(tp->t.dram_stack);
_osVirtualToPhysical(tp->t.output_buff);
_osVirtualToPhysical(tp->t.output_buff_size);
_osVirtualToPhysical(tp->t.data_ptr);
_osVirtualToPhysical(tp->t.yield_data_ptr);
return tp;
}
void osSpTaskLoad(OSTask *intp){
OSTask *tp;
tp = _VirtualToPhysicalTask(intp);
@@ -99,8 +121,6 @@ void osSpTaskLoad(OSTask *intp)
;
}
void osSpTaskStartGo(OSTask *tp){
while (__osSpDeviceBusy());