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
172
173
174
175
176
177
178
|
.include "macros.inc"
.section .text, "ax" # 0x80006980 - 0x803E1E60
.global NHTTPi_InitMutexInfo
NHTTPi_InitMutexInfo:
/* 802F83F4 002F4054 38 00 00 00 */ li r0, 0
/* 802F83F8 002F4058 90 03 00 18 */ stw r0, 0x18(r3)
/* 802F83FC 002F405C 4E 80 00 20 */ blr
.global NHTTPi_initLockReqList
NHTTPi_initLockReqList:
/* 802F8400 002F4060 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802F8404 002F4064 7C 08 02 A6 */ mflr r0
/* 802F8408 002F4068 90 01 00 14 */ stw r0, 0x14(r1)
/* 802F840C 002F406C 93 E1 00 0C */ stw r31, 0xc(r1)
/* 802F8410 002F4070 7C 7F 1B 78 */ mr r31, r3
/* 802F8414 002F4074 80 03 00 18 */ lwz r0, 0x18(r3)
/* 802F8418 002F4078 2C 00 00 00 */ cmpwi r0, 0
/* 802F841C 002F407C 40 82 00 10 */ bne lbl_802F842C
/* 802F8420 002F4080 4B F7 74 F1 */ bl OSInitMutex
/* 802F8424 002F4084 38 00 00 01 */ li r0, 1
/* 802F8428 002F4088 90 1F 00 18 */ stw r0, 0x18(r31)
lbl_802F842C:
/* 802F842C 002F408C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802F8430 002F4090 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 802F8434 002F4094 7C 08 03 A6 */ mtlr r0
/* 802F8438 002F4098 38 21 00 10 */ addi r1, r1, 0x10
/* 802F843C 002F409C 4E 80 00 20 */ blr
.global NHTTPi_exitLockReqList
NHTTPi_exitLockReqList:
/* 802F8440 002F40A0 4E 80 00 20 */ blr
.global NHTTPi_lockReqList
NHTTPi_lockReqList:
/* 802F8444 002F40A4 4B F7 75 04 */ b OSLockMutex
.global NHTTPi_unlockReqList
NHTTPi_unlockReqList:
/* 802F8448 002F40A8 4B F7 75 DC */ b OSUnlockMutex
.global NHTTPi_createCommThread
NHTTPi_createCommThread:
/* 802F844C 002F40AC 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 802F8450 002F40B0 7C 08 02 A6 */ mflr r0
/* 802F8454 002F40B4 90 01 00 24 */ stw r0, 0x24(r1)
/* 802F8458 002F40B8 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 802F845C 002F40BC 7C BF 2B 78 */ mr r31, r5
/* 802F8460 002F40C0 93 C1 00 18 */ stw r30, 0x18(r1)
/* 802F8464 002F40C4 7C 9E 23 78 */ mr r30, r4
/* 802F8468 002F40C8 93 A1 00 14 */ stw r29, 0x14(r1)
/* 802F846C 002F40CC 7C 7D 1B 78 */ mr r29, r3
/* 802F8470 002F40D0 48 00 25 F9 */ bl NHTTPi_IsCreateCommThreadMessageQueue
/* 802F8474 002F40D4 2C 03 00 00 */ cmpwi r3, 0
/* 802F8478 002F40D8 40 82 00 1C */ bne lbl_802F8494
/* 802F847C 002F40DC 7F A3 EB 78 */ mr r3, r29
/* 802F8480 002F40E0 38 9D 00 20 */ addi r4, r29, 0x20
/* 802F8484 002F40E4 38 A0 00 03 */ li r5, 3
/* 802F8488 002F40E8 4B F7 6A 71 */ bl OSInitMessageQueue
/* 802F848C 002F40EC 7F A3 EB 78 */ mr r3, r29
/* 802F8490 002F40F0 48 00 25 CD */ bl NHTTPi_IsCreateCommThreadMessageQueueOn
lbl_802F8494:
/* 802F8494 002F40F4 3C 80 80 30 */ lis r4, NHTTPi_CommThreadProc@ha
/* 802F8498 002F40F8 7F C8 F3 78 */ mr r8, r30
/* 802F849C 002F40FC 38 7D 00 30 */ addi r3, r29, 0x30
/* 802F84A0 002F4100 38 DF 20 00 */ addi r6, r31, 0x2000
/* 802F84A4 002F4104 38 84 85 F4 */ addi r4, r4, NHTTPi_CommThreadProc@l
/* 802F84A8 002F4108 38 A0 00 00 */ li r5, 0
/* 802F84AC 002F410C 38 E0 20 00 */ li r7, 0x2000
/* 802F84B0 002F4110 39 20 00 00 */ li r9, 0
/* 802F84B4 002F4114 4B F7 94 2D */ bl OSCreateThread
/* 802F84B8 002F4118 38 7D 00 30 */ addi r3, r29, 0x30
/* 802F84BC 002F411C 4B F7 9A 8D */ bl OSResumeThread
/* 802F84C0 002F4120 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 802F84C4 002F4124 38 60 00 01 */ li r3, 1
/* 802F84C8 002F4128 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 802F84CC 002F412C 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 802F84D0 002F4130 80 01 00 24 */ lwz r0, 0x24(r1)
/* 802F84D4 002F4134 7C 08 03 A6 */ mtlr r0
/* 802F84D8 002F4138 38 21 00 20 */ addi r1, r1, 0x20
/* 802F84DC 002F413C 4E 80 00 20 */ blr
.global NHTTPi_destroyCommThread
NHTTPi_destroyCommThread:
/* 802F84E0 002F4140 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802F84E4 002F4144 7C 08 02 A6 */ mflr r0
/* 802F84E8 002F4148 38 A0 00 00 */ li r5, 0
/* 802F84EC 002F414C 90 01 00 14 */ stw r0, 0x14(r1)
/* 802F84F0 002F4150 38 00 00 01 */ li r0, 1
/* 802F84F4 002F4154 93 E1 00 0C */ stw r31, 0xc(r1)
/* 802F84F8 002F4158 7C 7F 1B 78 */ mr r31, r3
/* 802F84FC 002F415C 90 04 07 DC */ stw r0, 0x7dc(r4)
/* 802F8500 002F4160 38 80 00 00 */ li r4, 0
/* 802F8504 002F4164 4B F7 6A 55 */ bl OSSendMessage
/* 802F8508 002F4168 38 7F 00 30 */ addi r3, r31, 0x30
/* 802F850C 002F416C 38 80 00 00 */ li r4, 0
/* 802F8510 002F4170 4B F7 98 F9 */ bl OSJoinThread
/* 802F8514 002F4174 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802F8518 002F4178 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 802F851C 002F417C 7C 08 03 A6 */ mtlr r0
/* 802F8520 002F4180 38 21 00 10 */ addi r1, r1, 0x10
/* 802F8524 002F4184 4E 80 00 20 */ blr
.global NHTTPi_idleCommThread
NHTTPi_idleCommThread:
/* 802F8528 002F4188 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802F852C 002F418C 7C 08 02 A6 */ mflr r0
/* 802F8530 002F4190 38 A0 00 01 */ li r5, 1
/* 802F8534 002F4194 90 01 00 14 */ stw r0, 0x14(r1)
/* 802F8538 002F4198 38 81 00 08 */ addi r4, r1, 8
/* 802F853C 002F419C 4B F7 6A E5 */ bl OSReceiveMessage
/* 802F8540 002F41A0 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802F8544 002F41A4 7C 08 03 A6 */ mtlr r0
/* 802F8548 002F41A8 38 21 00 10 */ addi r1, r1, 0x10
/* 802F854C 002F41AC 4E 80 00 20 */ blr
.global NHTTPi_kickCommThread
NHTTPi_kickCommThread:
/* 802F8550 002F41B0 38 80 00 00 */ li r4, 0
/* 802F8554 002F41B4 38 A0 00 00 */ li r5, 0
/* 802F8558 002F41B8 4B F7 6A 00 */ b OSSendMessage
.global NHTTPi_CheckCurrentThread
NHTTPi_CheckCurrentThread:
/* 802F855C 002F41BC 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 802F8560 002F41C0 7C 08 02 A6 */ mflr r0
/* 802F8564 002F41C4 90 01 00 24 */ stw r0, 0x24(r1)
/* 802F8568 002F41C8 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 802F856C 002F41CC 3F E0 80 44 */ lis r31, lbl_80446078@ha
/* 802F8570 002F41D0 3B FF 60 78 */ addi r31, r31, lbl_80446078@l
/* 802F8574 002F41D4 93 C1 00 18 */ stw r30, 0x18(r1)
/* 802F8578 002F41D8 7C 9E 23 78 */ mr r30, r4
/* 802F857C 002F41DC 93 A1 00 14 */ stw r29, 0x14(r1)
/* 802F8580 002F41E0 7C 7D 1B 78 */ mr r29, r3
/* 802F8584 002F41E4 4B F7 8D 75 */ bl OSGetCurrentThread
/* 802F8588 002F41E8 2C 03 00 00 */ cmpwi r3, 0
/* 802F858C 002F41EC 38 1D 00 30 */ addi r0, r29, 0x30
/* 802F8590 002F41F0 41 82 00 48 */ beq lbl_802F85D8
/* 802F8594 002F41F4 2C 1E 00 00 */ cmpwi r30, 0
/* 802F8598 002F41F8 40 82 00 0C */ bne lbl_802F85A4
/* 802F859C 002F41FC 7C 03 00 40 */ cmplw r3, r0
/* 802F85A0 002F4200 40 82 00 14 */ bne lbl_802F85B4
lbl_802F85A4:
/* 802F85A4 002F4204 2C 1E 00 00 */ cmpwi r30, 0
/* 802F85A8 002F4208 41 82 00 30 */ beq lbl_802F85D8
/* 802F85AC 002F420C 7C 03 00 40 */ cmplw r3, r0
/* 802F85B0 002F4210 40 82 00 28 */ bne lbl_802F85D8
lbl_802F85B4:
/* 802F85B4 002F4214 38 7F 00 1C */ addi r3, r31, 0x1c
/* 802F85B8 002F4218 38 9F 00 00 */ addi r4, r31, 0
/* 802F85BC 002F421C 4C C6 31 82 */ crclr 6
/* 802F85C0 002F4220 4B D0 F5 05 */ bl OSReport
/* 802F85C4 002F4224 38 7F 00 30 */ addi r3, r31, 0x30
/* 802F85C8 002F4228 38 80 00 DF */ li r4, 0xdf
/* 802F85CC 002F422C 38 AD 8C 10 */ addi r5, r13, lbl_8063DED0-_SDA_BASE_
/* 802F85D0 002F4230 4C C6 31 82 */ crclr 6
/* 802F85D4 002F4234 4B F7 2E C9 */ bl OSPanic
lbl_802F85D8:
/* 802F85D8 002F4238 80 01 00 24 */ lwz r0, 0x24(r1)
/* 802F85DC 002F423C 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 802F85E0 002F4240 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 802F85E4 002F4244 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 802F85E8 002F4248 7C 08 03 A6 */ mtlr r0
/* 802F85EC 002F424C 38 21 00 20 */ addi r1, r1, 0x20
/* 802F85F0 002F4250 4E 80 00 20 */ blr
.global NHTTPi_CommThreadProc
NHTTPi_CommThreadProc:
/* 802F85F4 002F4254 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802F85F8 002F4258 7C 08 02 A6 */ mflr r0
/* 802F85FC 002F425C 90 01 00 14 */ stw r0, 0x14(r1)
/* 802F8600 002F4260 48 00 63 15 */ bl NHTTPi_CommThreadProcMain
/* 802F8604 002F4264 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802F8608 002F4268 38 60 00 00 */ li r3, 0
/* 802F860C 002F426C 7C 08 03 A6 */ mtlr r0
/* 802F8610 002F4270 38 21 00 10 */ addi r1, r1, 0x10
/* 802F8614 002F4274 4E 80 00 20 */ blr
|