.include "macros.inc" .section .text, "ax" # 0x80006980 - 0x803E1E60 .global dCommon_initDriveInfo dCommon_initDriveInfo: /* 8031BBE0 00317840 3C 80 80 61 */ lis r4, lbl_8060F848@ha /* 8031BBE4 00317844 38 00 00 03 */ li r0, 3 /* 8031BBE8 00317848 38 84 F8 48 */ addi r4, r4, lbl_8060F848@l /* 8031BBEC 0031784C 38 60 00 00 */ li r3, 0 /* 8031BBF0 00317850 7C 09 03 A6 */ mtctr r0 lbl_8031BBF4: /* 8031BBF4 00317854 90 64 00 00 */ stw r3, 0(r4) /* 8031BBF8 00317858 90 64 00 04 */ stw r3, 4(r4) /* 8031BBFC 0031785C 90 64 00 08 */ stw r3, 8(r4) /* 8031BC00 00317860 90 64 00 0C */ stw r3, 0xc(r4) /* 8031BC04 00317864 90 64 00 10 */ stw r3, 0x10(r4) /* 8031BC08 00317868 90 64 00 14 */ stw r3, 0x14(r4) /* 8031BC0C 0031786C 90 64 00 18 */ stw r3, 0x18(r4) /* 8031BC10 00317870 90 64 00 1C */ stw r3, 0x1c(r4) /* 8031BC14 00317874 90 64 00 20 */ stw r3, 0x20(r4) /* 8031BC18 00317878 90 64 00 24 */ stw r3, 0x24(r4) /* 8031BC1C 0031787C 90 64 00 28 */ stw r3, 0x28(r4) /* 8031BC20 00317880 90 64 00 2C */ stw r3, 0x2c(r4) /* 8031BC24 00317884 90 64 00 30 */ stw r3, 0x30(r4) /* 8031BC28 00317888 90 64 00 34 */ stw r3, 0x34(r4) /* 8031BC2C 0031788C 90 64 00 38 */ stw r3, 0x38(r4) /* 8031BC30 00317890 90 64 00 3C */ stw r3, 0x3c(r4) /* 8031BC34 00317894 90 64 00 40 */ stw r3, 0x40(r4) /* 8031BC38 00317898 90 64 00 44 */ stw r3, 0x44(r4) /* 8031BC3C 0031789C 90 64 00 48 */ stw r3, 0x48(r4) /* 8031BC40 003178A0 90 64 00 4C */ stw r3, 0x4c(r4) /* 8031BC44 003178A4 90 64 00 50 */ stw r3, 0x50(r4) /* 8031BC48 003178A8 90 64 00 54 */ stw r3, 0x54(r4) /* 8031BC4C 003178AC 90 64 00 58 */ stw r3, 0x58(r4) /* 8031BC50 003178B0 90 64 00 5C */ stw r3, 0x5c(r4) /* 8031BC54 003178B4 90 64 00 60 */ stw r3, 0x60(r4) /* 8031BC58 003178B8 90 64 00 64 */ stw r3, 0x64(r4) /* 8031BC5C 003178BC 90 64 00 68 */ stw r3, 0x68(r4) /* 8031BC60 003178C0 90 64 00 6C */ stw r3, 0x6c(r4) /* 8031BC64 003178C4 90 64 00 70 */ stw r3, 0x70(r4) /* 8031BC68 003178C8 90 64 00 74 */ stw r3, 0x74(r4) /* 8031BC6C 003178CC 90 64 00 78 */ stw r3, 0x78(r4) /* 8031BC70 003178D0 90 64 00 7C */ stw r3, 0x7c(r4) /* 8031BC74 003178D4 90 64 00 80 */ stw r3, 0x80(r4) /* 8031BC78 003178D8 90 64 00 84 */ stw r3, 0x84(r4) /* 8031BC7C 003178DC 90 64 00 88 */ stw r3, 0x88(r4) /* 8031BC80 003178E0 90 64 00 8C */ stw r3, 0x8c(r4) /* 8031BC84 003178E4 90 64 00 90 */ stw r3, 0x90(r4) /* 8031BC88 003178E8 90 64 00 94 */ stw r3, 0x94(r4) /* 8031BC8C 003178EC 90 64 00 98 */ stw r3, 0x98(r4) /* 8031BC90 003178F0 90 64 00 9C */ stw r3, 0x9c(r4) /* 8031BC94 003178F4 38 84 00 A0 */ addi r4, r4, 0xa0 /* 8031BC98 003178F8 42 00 FF 5C */ bdnz lbl_8031BBF4 /* 8031BC9C 003178FC 38 00 00 00 */ li r0, 0 /* 8031BCA0 00317900 90 04 00 00 */ stw r0, 0(r4) /* 8031BCA4 00317904 90 04 00 04 */ stw r0, 4(r4) /* 8031BCA8 00317908 90 04 00 08 */ stw r0, 8(r4) /* 8031BCAC 0031790C 90 04 00 0C */ stw r0, 0xc(r4) /* 8031BCB0 00317910 90 04 00 10 */ stw r0, 0x10(r4) /* 8031BCB4 00317914 90 04 00 14 */ stw r0, 0x14(r4) /* 8031BCB8 00317918 90 04 00 18 */ stw r0, 0x18(r4) /* 8031BCBC 0031791C 90 04 00 1C */ stw r0, 0x1c(r4) /* 8031BCC0 00317920 90 04 00 20 */ stw r0, 0x20(r4) /* 8031BCC4 00317924 90 04 00 24 */ stw r0, 0x24(r4) /* 8031BCC8 00317928 4E 80 00 20 */ blr .global dCommon_getLastDeviceErrorFromDisk dCommon_getLastDeviceErrorFromDisk: /* 8031BCCC 0031792C 94 21 FF F0 */ stwu r1, -0x10(r1) /* 8031BCD0 00317930 7C 08 02 A6 */ mflr r0 /* 8031BCD4 00317934 90 01 00 14 */ stw r0, 0x14(r1) /* 8031BCD8 00317938 4B FF EE A5 */ bl VFSysPDMDisk2HandleIdx /* 8031BCDC 0031793C 28 03 00 1A */ cmplwi r3, 0x1a /* 8031BCE0 00317940 40 80 00 18 */ bge lbl_8031BCF8 /* 8031BCE4 00317944 1C 03 00 14 */ mulli r0, r3, 0x14 /* 8031BCE8 00317948 3C 60 80 61 */ lis r3, lbl_8060F848@ha /* 8031BCEC 0031794C 38 63 F8 48 */ addi r3, r3, lbl_8060F848@l /* 8031BCF0 00317950 7C 63 02 14 */ add r3, r3, r0 /* 8031BCF4 00317954 48 00 00 08 */ b lbl_8031BCFC lbl_8031BCF8: /* 8031BCF8 00317958 38 60 00 00 */ li r3, 0 lbl_8031BCFC: /* 8031BCFC 0031795C 2C 03 00 00 */ cmpwi r3, 0 /* 8031BD00 00317960 41 82 00 0C */ beq lbl_8031BD0C /* 8031BD04 00317964 80 63 00 04 */ lwz r3, 4(r3) /* 8031BD08 00317968 48 00 00 08 */ b lbl_8031BD10 lbl_8031BD0C: /* 8031BD0C 0031796C 38 60 00 00 */ li r3, 0 lbl_8031BD10: /* 8031BD10 00317970 80 01 00 14 */ lwz r0, 0x14(r1) /* 8031BD14 00317974 7C 08 03 A6 */ mtlr r0 /* 8031BD18 00317978 38 21 00 10 */ addi r1, r1, 0x10 /* 8031BD1C 0031797C 4E 80 00 20 */ blr .global dCommon_setLastDeviceErrorToDisk dCommon_setLastDeviceErrorToDisk: /* 8031BD20 00317980 94 21 FF F0 */ stwu r1, -0x10(r1) /* 8031BD24 00317984 7C 08 02 A6 */ mflr r0 /* 8031BD28 00317988 90 01 00 14 */ stw r0, 0x14(r1) /* 8031BD2C 0031798C 93 E1 00 0C */ stw r31, 0xc(r1) /* 8031BD30 00317990 7C 9F 23 78 */ mr r31, r4 /* 8031BD34 00317994 4B FF EE 49 */ bl VFSysPDMDisk2HandleIdx /* 8031BD38 00317998 28 03 00 1A */ cmplwi r3, 0x1a /* 8031BD3C 0031799C 40 80 00 18 */ bge lbl_8031BD54 /* 8031BD40 003179A0 1C 03 00 14 */ mulli r0, r3, 0x14 /* 8031BD44 003179A4 3C 60 80 61 */ lis r3, lbl_8060F848@ha /* 8031BD48 003179A8 38 63 F8 48 */ addi r3, r3, lbl_8060F848@l /* 8031BD4C 003179AC 7C 63 02 14 */ add r3, r3, r0 /* 8031BD50 003179B0 48 00 00 08 */ b lbl_8031BD58 lbl_8031BD54: /* 8031BD54 003179B4 38 60 00 00 */ li r3, 0 lbl_8031BD58: /* 8031BD58 003179B8 2C 03 00 00 */ cmpwi r3, 0 /* 8031BD5C 003179BC 41 82 00 08 */ beq lbl_8031BD64 /* 8031BD60 003179C0 93 E3 00 04 */ stw r31, 4(r3) lbl_8031BD64: /* 8031BD64 003179C4 80 01 00 14 */ lwz r0, 0x14(r1) /* 8031BD68 003179C8 83 E1 00 0C */ lwz r31, 0xc(r1) /* 8031BD6C 003179CC 7C 08 03 A6 */ mtlr r0 /* 8031BD70 003179D0 38 21 00 10 */ addi r1, r1, 0x10 /* 8031BD74 003179D4 4E 80 00 20 */ blr .global dCommon_setLastDeviceErrorToDisk2 dCommon_setLastDeviceErrorToDisk2: /* 8031BD78 003179D8 2C 03 00 00 */ cmpwi r3, 0 /* 8031BD7C 003179DC 4D 80 00 20 */ bltlr /* 8031BD80 003179E0 2C 03 00 1A */ cmpwi r3, 0x1a /* 8031BD84 003179E4 4C 80 00 20 */ bgelr /* 8031BD88 003179E8 1C 03 00 14 */ mulli r0, r3, 0x14 /* 8031BD8C 003179EC 3C 60 80 61 */ lis r3, lbl_8060F848@ha /* 8031BD90 003179F0 38 63 F8 48 */ addi r3, r3, lbl_8060F848@l /* 8031BD94 003179F4 7C 63 02 14 */ add r3, r3, r0 /* 8031BD98 003179F8 90 83 00 04 */ stw r4, 4(r3) /* 8031BD9C 003179FC 4E 80 00 20 */ blr .global dCommon_FlushFromVol dCommon_FlushFromVol: /* 8031BDA0 00317A00 94 21 FF F0 */ stwu r1, -0x10(r1) /* 8031BDA4 00317A04 7C 08 02 A6 */ mflr r0 /* 8031BDA8 00317A08 90 01 00 14 */ stw r0, 0x14(r1) /* 8031BDAC 00317A0C 93 E1 00 0C */ stw r31, 0xc(r1) /* 8031BDB0 00317A10 93 C1 00 08 */ stw r30, 8(r1) /* 8031BDB4 00317A14 7C 9E 23 78 */ mr r30, r4 /* 8031BDB8 00317A18 4B FF ED 51 */ bl VFSysVol2HandleP /* 8031BDBC 00317A1C 2C 03 00 00 */ cmpwi r3, 0 /* 8031BDC0 00317A20 3B E0 FF FF */ li r31, -1 /* 8031BDC4 00317A24 41 82 00 3C */ beq lbl_8031BE00 /* 8031BDC8 00317A28 80 83 00 00 */ lwz r4, 0(r3) /* 8031BDCC 00317A2C 2C 04 00 00 */ cmpwi r4, 0 /* 8031BDD0 00317A30 41 82 00 30 */ beq lbl_8031BE00 /* 8031BDD4 00317A34 80 04 00 08 */ lwz r0, 8(r4) /* 8031BDD8 00317A38 2C 00 00 00 */ cmpwi r0, 0 /* 8031BDDC 00317A3C 40 82 00 20 */ bne lbl_8031BDFC /* 8031BDE0 00317A40 4B FF EC C9 */ bl VFSysHandleP2Idx /* 8031BDE4 00317A44 2C 03 FF FF */ cmpwi r3, -1 /* 8031BDE8 00317A48 41 82 00 18 */ beq lbl_8031BE00 /* 8031BDEC 00317A4C 7F C4 F3 78 */ mr r4, r30 /* 8031BDF0 00317A50 48 00 00 2D */ bl VFi_NandFlushNANDFromHandleIdx /* 8031BDF4 00317A54 7C 7F 1B 78 */ mr r31, r3 /* 8031BDF8 00317A58 48 00 00 08 */ b lbl_8031BE00 lbl_8031BDFC: /* 8031BDFC 00317A5C 3B E0 00 00 */ li r31, 0 lbl_8031BE00: /* 8031BE00 00317A60 7F E3 FB 78 */ mr r3, r31 /* 8031BE04 00317A64 83 E1 00 0C */ lwz r31, 0xc(r1) /* 8031BE08 00317A68 83 C1 00 08 */ lwz r30, 8(r1) /* 8031BE0C 00317A6C 80 01 00 14 */ lwz r0, 0x14(r1) /* 8031BE10 00317A70 7C 08 03 A6 */ mtlr r0 /* 8031BE14 00317A74 38 21 00 10 */ addi r1, r1, 0x10 /* 8031BE18 00317A78 4E 80 00 20 */ blr