summaryrefslogtreecommitdiff
path: root/asm/SDK/NHTTP/NHTTP_os_RVL.s
blob: 06f6ffb2b191b6035e1db9f9a49ae77654c54df1 (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
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