diff --git a/Makefile b/Makefile index 66dacf5f..024dca4b 100755 --- a/Makefile +++ b/Makefile @@ -190,6 +190,8 @@ $(BUILD_DIR)/lib/src/osSendMesg.o : OPT_FLAGS := -O1 $(BUILD_DIR)/lib/src/osSetEventMesg.o: OPT_FLAGS := -O1 $(BUILD_DIR)/lib/src/osSetTime.o: OPT_FLAGS := -O1 $(BUILD_DIR)/lib/src/osSetTimer.o: OPT_FLAGS := -O1 +$(BUILD_DIR)/lib/src/__osSiRawReadIo.o: OPT_FLAGS := -O1 +$(BUILD_DIR)/lib/src/__osSiRawWriteIo.o: OPT_FLAGS := -O1 $(BUILD_DIR)/lib/src/osStartThread.o: OPT_FLAGS := -O1 $(BUILD_DIR)/lib/src/osStopThread.o: OPT_FLAGS := -O1 $(BUILD_DIR)/lib/src/osTimer.o: OPT_FLAGS := -O1 diff --git a/lib/asm/non_matchings/unknown_0D3020/__osPiCreateAccessQueue.s b/lib/asm/non_matchings/unknown_0D3020/__osPiCreateAccessQueue.s deleted file mode 100644 index 1aa0a41e..00000000 --- a/lib/asm/non_matchings/unknown_0D3020/__osPiCreateAccessQueue.s +++ /dev/null @@ -1,53 +0,0 @@ -glabel __osPiCreateAccessQueue -/* 0D3080 800D2480 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 0D3084 800D2484 AFBF0014 */ sw $ra, 0x14($sp) -/* 0D3088 800D2488 240E0001 */ li $t6, 1 -/* 0D308C 800D248C 3C01800E */ lui $at, %hi(D_800E4800) # $at, 0x800e -/* 0D3090 800D2490 3C048013 */ lui $a0, %hi(D_8012D1E8) # $a0, 0x8013 -/* 0D3094 800D2494 3C058013 */ lui $a1, %hi(D_8012D1E0) # $a1, 0x8013 -/* 0D3098 800D2498 AC2E4800 */ sw $t6, %lo(D_800E4800)($at) -/* 0D309C 800D249C 24A5D1E0 */ addiu $a1, %lo(D_8012D1E0) # addiu $a1, $a1, -0x2e20 -/* 0D30A0 800D24A0 2484D1E8 */ addiu $a0, %lo(D_8012D1E8) # addiu $a0, $a0, -0x2e18 -/* 0D30A4 800D24A4 0C032208 */ jal osCreateMesgQueue -/* 0D30A8 800D24A8 24060001 */ li $a2, 1 -/* 0D30AC 800D24AC 3C048013 */ lui $a0, %hi(D_8012D1E8) # $a0, 0x8013 -/* 0D30B0 800D24B0 2484D1E8 */ addiu $a0, %lo(D_8012D1E8) # addiu $a0, $a0, -0x2e18 -/* 0D30B4 800D24B4 00002825 */ move $a1, $zero -/* 0D30B8 800D24B8 0C03238C */ jal osSendMesg -/* 0D30BC 800D24BC 00003025 */ move $a2, $zero -/* 0D30C0 800D24C0 8FBF0014 */ lw $ra, 0x14($sp) -/* 0D30C4 800D24C4 27BD0018 */ addiu $sp, $sp, 0x18 -/* 0D30C8 800D24C8 03E00008 */ jr $ra -/* 0D30CC 800D24CC 00000000 */ nop - -/* 0D30D0 800D24D0 3C0E800E */ lui $t6, %hi(D_800E4800) # $t6, 0x800e -/* 0D30D4 800D24D4 8DCE4800 */ lw $t6, %lo(D_800E4800)($t6) -/* 0D30D8 800D24D8 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* 0D30DC 800D24DC AFBF0014 */ sw $ra, 0x14($sp) -/* 0D30E0 800D24E0 15C00003 */ bnez $t6, .L800D24F0 -/* 0D30E4 800D24E4 00000000 */ nop -/* 0D30E8 800D24E8 0C034920 */ jal __osPiCreateAccessQueue -/* 0D30EC 800D24EC 00000000 */ nop -.L800D24F0: -/* 0D30F0 800D24F0 3C048013 */ lui $a0, %hi(D_8012D1E8) # $a0, 0x8013 -/* 0D30F4 800D24F4 2484D1E8 */ addiu $a0, %lo(D_8012D1E8) # addiu $a0, $a0, -0x2e18 -/* 0D30F8 800D24F8 27A5001C */ addiu $a1, $sp, 0x1c -/* 0D30FC 800D24FC 0C0322EC */ jal osRecvMesg -/* 0D3100 800D2500 24060001 */ li $a2, 1 -/* 0D3104 800D2504 8FBF0014 */ lw $ra, 0x14($sp) -/* 0D3108 800D2508 27BD0020 */ addiu $sp, $sp, 0x20 -/* 0D310C 800D250C 03E00008 */ jr $ra -/* 0D3110 800D2510 00000000 */ nop - -/* 0D3114 800D2514 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 0D3118 800D2518 AFBF0014 */ sw $ra, 0x14($sp) -/* 0D311C 800D251C 3C048013 */ lui $a0, %hi(D_8012D1E8) # $a0, 0x8013 -/* 0D3120 800D2520 2484D1E8 */ addiu $a0, %lo(D_8012D1E8) # addiu $a0, $a0, -0x2e18 -/* 0D3124 800D2524 00002825 */ move $a1, $zero -/* 0D3128 800D2528 0C03238C */ jal osSendMesg -/* 0D312C 800D252C 00003025 */ move $a2, $zero -/* 0D3130 800D2530 8FBF0014 */ lw $ra, 0x14($sp) -/* 0D3134 800D2534 27BD0018 */ addiu $sp, $sp, 0x18 -/* 0D3138 800D2538 03E00008 */ jr $ra -/* 0D313C 800D253C 00000000 */ nop - diff --git a/lib/asm/non_matchings/unknown_0D5190/__osSiRawReadIo.s b/lib/asm/non_matchings/unknown_0D5190/__osSiRawReadIo.s deleted file mode 100644 index ff6bb665..00000000 --- a/lib/asm/non_matchings/unknown_0D5190/__osSiRawReadIo.s +++ /dev/null @@ -1,24 +0,0 @@ -glabel __osSiRawReadIo -/* 0D5190 800D4590 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 0D5194 800D4594 AFBF0014 */ sw $ra, 0x14($sp) -/* 0D5198 800D4598 AFA40018 */ sw $a0, 0x18($sp) -/* 0D519C 800D459C 0C0354B0 */ jal __osSiDeviceBusy -/* 0D51A0 800D45A0 AFA5001C */ sw $a1, 0x1c($sp) -/* 0D51A4 800D45A4 10400003 */ beqz $v0, .L800D45B4 -/* 0D51A8 800D45A8 00000000 */ nop -/* 0D51AC 800D45AC 10000008 */ b .L800D45D0 -/* 0D51B0 800D45B0 2402FFFF */ li $v0, -1 -.L800D45B4: -/* 0D51B4 800D45B4 8FAE0018 */ lw $t6, 0x18($sp) -/* 0D51B8 800D45B8 3C01A000 */ lui $at, 0xa000 -/* 0D51BC 800D45BC 8FB9001C */ lw $t9, 0x1c($sp) -/* 0D51C0 800D45C0 01C17825 */ or $t7, $t6, $at -/* 0D51C4 800D45C4 8DF80000 */ lw $t8, ($t7) -/* 0D51C8 800D45C8 00001025 */ move $v0, $zero -/* 0D51CC 800D45CC AF380000 */ sw $t8, ($t9) -.L800D45D0: -/* 0D51D0 800D45D0 8FBF0014 */ lw $ra, 0x14($sp) -/* 0D51D4 800D45D4 27BD0018 */ addiu $sp, $sp, 0x18 -/* 0D51D8 800D45D8 03E00008 */ jr $ra -/* 0D51DC 800D45DC 00000000 */ nop - diff --git a/lib/asm/non_matchings/unknown_0D5190/__osSiRawWriteIo.s b/lib/asm/non_matchings/unknown_0D5190/__osSiRawWriteIo.s deleted file mode 100644 index cbf0d0b1..00000000 --- a/lib/asm/non_matchings/unknown_0D5190/__osSiRawWriteIo.s +++ /dev/null @@ -1,24 +0,0 @@ -glabel __osSiRawWriteIo -/* 0D51E0 800D45E0 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 0D51E4 800D45E4 AFBF0014 */ sw $ra, 0x14($sp) -/* 0D51E8 800D45E8 AFA40018 */ sw $a0, 0x18($sp) -/* 0D51EC 800D45EC 0C0354B0 */ jal __osSiDeviceBusy -/* 0D51F0 800D45F0 AFA5001C */ sw $a1, 0x1c($sp) -/* 0D51F4 800D45F4 10400003 */ beqz $v0, .L800D4604 -/* 0D51F8 800D45F8 00000000 */ nop -/* 0D51FC 800D45FC 10000007 */ b .L800D461C -/* 0D5200 800D4600 2402FFFF */ li $v0, -1 -.L800D4604: -/* 0D5204 800D4604 8FAF0018 */ lw $t7, 0x18($sp) -/* 0D5208 800D4608 8FAE001C */ lw $t6, 0x1c($sp) -/* 0D520C 800D460C 3C01A000 */ lui $at, 0xa000 -/* 0D5210 800D4610 01E1C025 */ or $t8, $t7, $at -/* 0D5214 800D4614 00001025 */ move $v0, $zero -/* 0D5218 800D4618 AF0E0000 */ sw $t6, ($t8) -.L800D461C: -/* 0D521C 800D461C 8FBF0014 */ lw $ra, 0x14($sp) -/* 0D5220 800D4620 27BD0018 */ addiu $sp, $sp, 0x18 -/* 0D5224 800D4624 03E00008 */ jr $ra -/* 0D5228 800D4628 00000000 */ nop - -/* 0D522C 800D462C 00000000 */ nop diff --git a/lib/src/__osSiRawReadIo.c b/lib/src/__osSiRawReadIo.c new file mode 100644 index 00000000..3da94aef --- /dev/null +++ b/lib/src/__osSiRawReadIo.c @@ -0,0 +1,18 @@ +/* The comment below is needed for this file to be picked up by generate_ld */ +/* 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()) + return -1; + *data = IO_READ(devAddr); + return 0; +} diff --git a/lib/src/__osSiRawWriteIo.c b/lib/src/__osSiRawWriteIo.c new file mode 100644 index 00000000..ba8f340e --- /dev/null +++ b/lib/src/__osSiRawWriteIo.c @@ -0,0 +1,16 @@ +/* The comment below is needed for this file to be picked up by generate_ld */ +/* RAM_POS: 0x800D45E0 */ + +#include "types.h" + +#define PHYS_TO_K1(x) ((u32)(x)|0xA0000000) /* physical to kseg1 */ +#define IO_WRITE(addr,data) (*(vu32 *)PHYS_TO_K1(addr)=(u32)(data)) + +s32 __osSiRawWriteIo(u32 devAddr, u32 data) +{ + + if (__osSiDeviceBusy()) + return -1; + IO_WRITE(devAddr, data); + return 0; +} \ No newline at end of file diff --git a/lib/src/unknown_0D5190.c b/lib/src/unknown_0D5190.c deleted file mode 100644 index 36dca54f..00000000 --- a/lib/src/unknown_0D5190.c +++ /dev/null @@ -1,8 +0,0 @@ -/* The comment below is needed for this file to be picked up by generate_ld */ -/* RAM_POS: 0x800D4590 */ - -#include "types.h" -#include "macros.h" - -GLOBAL_ASM("lib/asm/non_matchings/unknown_0D5190/__osSiRawReadIo.s") -GLOBAL_ASM("lib/asm/non_matchings/unknown_0D5190/__osSiRawWriteIo.s")