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
|
.include "macros.inc"
.section .text, "ax" # 0x80006980 - 0x803E1E60
.global WDi_GetWork
WDi_GetWork:
/* 802EDD5C 002E99BC 3C 60 80 44 */ lis r3, lbl_80445BB0@ha
/* 802EDD60 002E99C0 38 63 5B B0 */ addi r3, r3, lbl_80445BB0@l
/* 802EDD64 002E99C4 4E 80 00 20 */ blr
.global WDi_Ioctlv
WDi_Ioctlv:
/* 802EDD68 002E99C8 3D 00 80 44 */ lis r8, lbl_80445BB0@ha
/* 802EDD6C 002E99CC 7C 8A 23 78 */ mr r10, r4
/* 802EDD70 002E99D0 80 08 5B B0 */ lwz r0, lbl_80445BB0@l(r8)
/* 802EDD74 002E99D4 7C A9 2B 78 */ mr r9, r5
/* 802EDD78 002E99D8 7C C7 33 78 */ mr r7, r6
/* 802EDD7C 002E99DC 2C 00 00 00 */ cmpwi r0, 0
/* 802EDD80 002E99E0 40 80 00 10 */ bge lbl_802EDD90
/* 802EDD84 002E99E4 3C 60 80 01 */ lis r3, -0x7fff
/* 802EDD88 002E99E8 38 63 80 00 */ subi r3, r3, 0x8000
/* 802EDD8C 002E99EC 4E 80 00 20 */ blr
lbl_802EDD90:
/* 802EDD90 002E99F0 80 08 5B B0 */ lwz r0, 0x5bb0(r8)
/* 802EDD94 002E99F4 7C 64 1B 78 */ mr r4, r3
/* 802EDD98 002E99F8 7D 45 53 78 */ mr r5, r10
/* 802EDD9C 002E99FC 7D 26 4B 78 */ mr r6, r9
/* 802EDDA0 002E9A00 7C 03 03 78 */ mr r3, r0
/* 802EDDA4 002E9A04 4B FB 60 9C */ b IOS_Ioctlv
/* 802EDDA8 002E9A08 4E 80 00 20 */ blr
.global WDi_SetupHeap
WDi_SetupHeap:
/* 802EDDAC 002E9A0C 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 802EDDB0 002E9A10 7C 08 02 A6 */ mflr r0
/* 802EDDB4 002E9A14 90 01 00 24 */ stw r0, 0x24(r1)
/* 802EDDB8 002E9A18 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 802EDDBC 002E9A1C 93 C1 00 18 */ stw r30, 0x18(r1)
/* 802EDDC0 002E9A20 93 A1 00 14 */ stw r29, 0x14(r1)
/* 802EDDC4 002E9A24 7C 7D 1B 78 */ mr r29, r3
/* 802EDDC8 002E9A28 4B FB 4B 2D */ bl IPCGetBufferLo
/* 802EDDCC 002E9A2C 3F E0 80 44 */ lis r31, lbl_80445BB0@ha
/* 802EDDD0 002E9A30 7C 7E 1B 78 */ mr r30, r3
/* 802EDDD4 002E9A34 3B FF 5B B0 */ addi r31, r31, lbl_80445BB0@l
/* 802EDDD8 002E9A38 80 1F 00 08 */ lwz r0, 8(r31)
/* 802EDDDC 002E9A3C 2C 00 FF FF */ cmpwi r0, -1
/* 802EDDE0 002E9A40 40 82 00 48 */ bne lbl_802EDE28
/* 802EDDE4 002E9A44 4B FB 4B 09 */ bl IPCGetBufferHi
/* 802EDDE8 002E9A48 7C 1E EA 14 */ add r0, r30, r29
/* 802EDDEC 002E9A4C 7C 00 18 40 */ cmplw r0, r3
/* 802EDDF0 002E9A50 40 81 00 0C */ ble lbl_802EDDFC
/* 802EDDF4 002E9A54 38 60 FF EA */ li r3, -22
/* 802EDDF8 002E9A58 48 00 00 34 */ b lbl_802EDE2C
lbl_802EDDFC:
/* 802EDDFC 002E9A5C 7F C3 F3 78 */ mr r3, r30
/* 802EDE00 002E9A60 7F A4 EB 78 */ mr r4, r29
/* 802EDE04 002E9A64 4B FB 62 01 */ bl iosCreateHeap
/* 802EDE08 002E9A68 90 7F 00 08 */ stw r3, 8(r31)
/* 802EDE0C 002E9A6C 80 1F 00 08 */ lwz r0, 8(r31)
/* 802EDE10 002E9A70 2C 00 00 00 */ cmpwi r0, 0
/* 802EDE14 002E9A74 40 80 00 0C */ bge lbl_802EDE20
/* 802EDE18 002E9A78 80 7F 00 08 */ lwz r3, 8(r31)
/* 802EDE1C 002E9A7C 48 00 00 10 */ b lbl_802EDE2C
lbl_802EDE20:
/* 802EDE20 002E9A80 7C 7E EA 14 */ add r3, r30, r29
/* 802EDE24 002E9A84 4B FB 4A D9 */ bl IPCSetBufferLo
lbl_802EDE28:
/* 802EDE28 002E9A88 38 60 00 00 */ li r3, 0
lbl_802EDE2C:
/* 802EDE2C 002E9A8C 80 01 00 24 */ lwz r0, 0x24(r1)
/* 802EDE30 002E9A90 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 802EDE34 002E9A94 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 802EDE38 002E9A98 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 802EDE3C 002E9A9C 7C 08 03 A6 */ mtlr r0
/* 802EDE40 002E9AA0 38 21 00 20 */ addi r1, r1, 0x20
/* 802EDE44 002E9AA4 4E 80 00 20 */ blr
.global WDi_CleanupHeap
WDi_CleanupHeap:
/* 802EDE48 002E9AA8 38 60 00 00 */ li r3, 0
/* 802EDE4C 002E9AAC 4E 80 00 20 */ blr
|