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
|
.include "macros.inc"
.section .text, "ax" # 0x80006980 - 0x803E1E60
.global NWC24iSetRtcCounter
NWC24iSetRtcCounter:
/* 803044A0 00300100 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 803044A4 00300104 7C 08 02 A6 */ mflr r0
/* 803044A8 00300108 90 01 00 34 */ stw r0, 0x34(r1)
/* 803044AC 0030010C 39 61 00 30 */ addi r11, r1, 0x30
/* 803044B0 00300110 4B EC 2C 79 */ bl _savegpr_27
/* 803044B4 00300114 3F C0 80 58 */ lis r30, lbl_8057E920@ha
/* 803044B8 00300118 7C 7B 1B 78 */ mr r27, r3
/* 803044BC 0030011C 7C 9C 23 78 */ mr r28, r4
/* 803044C0 00300120 3B DE E9 20 */ addi r30, r30, lbl_8057E920@l
/* 803044C4 00300124 4B F6 CE 35 */ bl OSGetCurrentThread
/* 803044C8 00300128 2C 03 00 00 */ cmpwi r3, 0
/* 803044CC 0030012C 40 82 00 0C */ bne lbl_803044D8
/* 803044D0 00300130 38 60 FF FF */ li r3, -1
/* 803044D4 00300134 48 00 00 08 */ b lbl_803044DC
lbl_803044D8:
/* 803044D8 00300138 38 60 00 00 */ li r3, 0
lbl_803044DC:
/* 803044DC 0030013C 2C 03 00 00 */ cmpwi r3, 0
/* 803044E0 00300140 40 80 00 08 */ bge lbl_803044E8
/* 803044E4 00300144 48 00 00 EC */ b lbl_803045D0
lbl_803044E8:
/* 803044E8 00300148 80 0D AF C0 */ lwz r0, lbl_80640280-_SDA_BASE_(r13)
/* 803044EC 0030014C 2C 00 00 00 */ cmpwi r0, 0
/* 803044F0 00300150 40 82 00 50 */ bne lbl_80304540
/* 803044F4 00300154 4B F6 A2 69 */ bl OSDisableInterrupts
/* 803044F8 00300158 80 0D AF C0 */ lwz r0, lbl_80640280-_SDA_BASE_(r13)
/* 803044FC 0030015C 7C 7F 1B 78 */ mr r31, r3
/* 80304500 00300160 2C 00 00 00 */ cmpwi r0, 0
/* 80304504 00300164 40 82 00 34 */ bne lbl_80304538
/* 80304508 00300168 38 7E 00 80 */ addi r3, r30, 0x80
/* 8030450C 0030016C 4B F6 B4 05 */ bl OSInitMutex
/* 80304510 00300170 38 7E 00 A0 */ addi r3, r30, 0xa0
/* 80304514 00300174 38 80 00 00 */ li r4, 0
/* 80304518 00300178 38 A0 00 20 */ li r5, 0x20
/* 8030451C 0030017C 4B CF FB E9 */ bl memset
/* 80304520 00300180 38 7E 00 C0 */ addi r3, r30, 0xc0
/* 80304524 00300184 38 80 00 00 */ li r4, 0
/* 80304528 00300188 38 A0 00 20 */ li r5, 0x20
/* 8030452C 0030018C 4B CF FB D9 */ bl memset
/* 80304530 00300190 38 00 00 01 */ li r0, 1
/* 80304534 00300194 90 0D AF C0 */ stw r0, lbl_80640280-_SDA_BASE_(r13)
lbl_80304538:
/* 80304538 00300198 7F E3 FB 78 */ mr r3, r31
/* 8030453C 0030019C 4B F6 A2 49 */ bl OSRestoreInterrupts
lbl_80304540:
/* 80304540 003001A0 38 7E 00 80 */ addi r3, r30, 0x80
/* 80304544 003001A4 4B F6 B4 05 */ bl OSLockMutex
/* 80304548 003001A8 3F E0 80 44 */ lis r31, lbl_8044655C@ha
/* 8030454C 003001AC 3C 80 80 44 */ lis r4, lbl_80446548@ha
/* 80304550 003001B0 38 7F 65 5C */ addi r3, r31, lbl_8044655C@l
/* 80304554 003001B4 38 A1 00 08 */ addi r5, r1, 8
/* 80304558 003001B8 38 84 65 48 */ addi r4, r4, lbl_80446548@l
/* 8030455C 003001BC 38 C0 00 00 */ li r6, 0
/* 80304560 003001C0 48 00 01 1D */ bl NWC24iOpenResourceManager
/* 80304564 003001C4 2C 03 00 00 */ cmpwi r3, 0
/* 80304568 003001C8 7C 7D 1B 78 */ mr r29, r3
/* 8030456C 003001CC 41 80 00 58 */ blt lbl_803045C4
/* 80304570 003001D0 38 DE 00 A0 */ addi r6, r30, 0xa0
/* 80304574 003001D4 93 7E 00 A0 */ stw r27, 0xa0(r30)
/* 80304578 003001D8 80 81 00 08 */ lwz r4, 8(r1)
/* 8030457C 003001DC 38 7F 65 5C */ addi r3, r31, 0x655c
/* 80304580 003001E0 93 86 00 04 */ stw r28, 4(r6)
/* 80304584 003001E4 39 1E 00 C0 */ addi r8, r30, 0xc0
/* 80304588 003001E8 38 A0 00 17 */ li r5, 0x17
/* 8030458C 003001EC 38 E0 00 20 */ li r7, 0x20
/* 80304590 003001F0 39 20 00 20 */ li r9, 0x20
/* 80304594 003001F4 48 00 01 95 */ bl NWC24iIoctlResourceManager
/* 80304598 003001F8 2C 03 00 00 */ cmpwi r3, 0
/* 8030459C 003001FC 7C 7D 1B 78 */ mr r29, r3
/* 803045A0 00300200 41 80 00 08 */ blt lbl_803045A8
/* 803045A4 00300204 83 BE 00 C0 */ lwz r29, 0xc0(r30)
lbl_803045A8:
/* 803045A8 00300208 3C 60 80 44 */ lis r3, lbl_8044655C@ha
/* 803045AC 0030020C 80 81 00 08 */ lwz r4, 8(r1)
/* 803045B0 00300210 38 63 65 5C */ addi r3, r3, lbl_8044655C@l
/* 803045B4 00300214 48 00 01 41 */ bl NWC24iCloseResourceManager
/* 803045B8 00300218 2C 1D 00 00 */ cmpwi r29, 0
/* 803045BC 0030021C 41 80 00 08 */ blt lbl_803045C4
/* 803045C0 00300220 7C 7D 1B 78 */ mr r29, r3
lbl_803045C4:
/* 803045C4 00300224 38 7E 00 80 */ addi r3, r30, 0x80
/* 803045C8 00300228 4B F6 B4 5D */ bl OSUnlockMutex
/* 803045CC 0030022C 7F A3 EB 78 */ mr r3, r29
lbl_803045D0:
/* 803045D0 00300230 39 61 00 30 */ addi r11, r1, 0x30
/* 803045D4 00300234 4B EC 2B A1 */ bl _restgpr_27
/* 803045D8 00300238 80 01 00 34 */ lwz r0, 0x34(r1)
/* 803045DC 0030023C 7C 08 03 A6 */ mtlr r0
/* 803045E0 00300240 38 21 00 30 */ addi r1, r1, 0x30
/* 803045E4 00300244 4E 80 00 20 */ blr
.global NWC24iSynchronizeRtcCounter
NWC24iSynchronizeRtcCounter:
/* 803045E8 00300248 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 803045EC 0030024C 7C 08 02 A6 */ mflr r0
/* 803045F0 00300250 90 01 00 14 */ stw r0, 0x14(r1)
/* 803045F4 00300254 93 E1 00 0C */ stw r31, 0xc(r1)
/* 803045F8 00300258 93 C1 00 08 */ stw r30, 8(r1)
/* 803045FC 0030025C 7C 7E 1B 78 */ mr r30, r3
lbl_80304600:
/* 80304600 00300260 4B FE 63 ED */ bl SCCheckStatus
/* 80304604 00300264 28 03 00 02 */ cmplwi r3, 2
/* 80304608 00300268 40 82 00 0C */ bne lbl_80304614
/* 8030460C 0030026C 38 60 FF FF */ li r3, -1
/* 80304610 00300270 48 00 00 34 */ b lbl_80304644
lbl_80304614:
/* 80304614 00300274 2C 03 00 00 */ cmpwi r3, 0
/* 80304618 00300278 40 82 FF E8 */ bne lbl_80304600
/* 8030461C 0030027C 4B FE 7F A5 */ bl SCGetCounterBias
/* 80304620 00300280 7C 7F 1B 78 */ mr r31, r3
/* 80304624 00300284 4B F6 E1 95 */ bl OSGetTime
/* 80304628 00300288 3C C0 80 00 */ lis r6, 0x800000F8@ha
/* 8030462C 0030028C 38 A0 00 00 */ li r5, 0
/* 80304630 00300290 80 06 00 F8 */ lwz r0, 0x800000F8@l(r6)
/* 80304634 00300294 54 06 F0 BE */ srwi r6, r0, 2
/* 80304638 00300298 4B EC 2C 41 */ bl __div2i
/* 8030463C 0030029C 7F FF 20 10 */ subfc r31, r31, r4
/* 80304640 003002A0 38 60 00 00 */ li r3, 0
lbl_80304644:
/* 80304644 003002A4 2C 03 00 00 */ cmpwi r3, 0
/* 80304648 003002A8 41 82 00 08 */ beq lbl_80304650
/* 8030464C 003002AC 48 00 00 18 */ b lbl_80304664
lbl_80304650:
/* 80304650 003002B0 7C 1E 00 D0 */ neg r0, r30
/* 80304654 003002B4 7F E3 FB 78 */ mr r3, r31
/* 80304658 003002B8 7C 00 F3 78 */ or r0, r0, r30
/* 8030465C 003002BC 54 04 0F FE */ srwi r4, r0, 0x1f
/* 80304660 003002C0 4B FF FE 41 */ bl NWC24iSetRtcCounter
lbl_80304664:
/* 80304664 003002C4 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80304668 003002C8 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8030466C 003002CC 83 C1 00 08 */ lwz r30, 8(r1)
/* 80304670 003002D0 7C 08 03 A6 */ mtlr r0
/* 80304674 003002D4 38 21 00 10 */ addi r1, r1, 0x10
/* 80304678 003002D8 4E 80 00 20 */ blr
|