summaryrefslogtreecommitdiff
path: root/asm/SDK/VF/d_common.s
blob: c7014dfad77988f1bf84b5f9ed4c8f3767cd1e07 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
.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