summaryrefslogtreecommitdiff
path: root/asm/SDK/BTE/bta_hh_api.s
blob: a7184b3f574a4f9f26294b41cfa3719891003d10 (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
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
.include "macros.inc"

.section .text, "ax"  # 0x80006980 - 0x803E1E60

.global BTA_HhEnable
BTA_HhEnable:
/* 802C275C 002BE3BC  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 802C2760 002BE3C0  7C 08 02 A6 */	mflr r0
/* 802C2764 002BE3C4  90 01 00 24 */	stw r0, 0x24(r1)
/* 802C2768 002BE3C8  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 802C276C 002BE3CC  93 C1 00 18 */	stw r30, 0x18(r1)
/* 802C2770 002BE3D0  7C 9E 23 78 */	mr r30, r4
/* 802C2774 002BE3D4  93 A1 00 14 */	stw r29, 0x14(r1)
/* 802C2778 002BE3D8  7C 7D 1B 78 */	mr r29, r3
/* 802C277C 002BE3DC  4B FF 89 29 */	bl GKI_sched_lock
/* 802C2780 002BE3E0  38 60 00 17 */	li r3, 0x17
/* 802C2784 002BE3E4  38 82 A4 68 */	addi r4, r2, lbl_80642A68-_SDA2_BASE_
/* 802C2788 002BE3E8  4B FF B2 71 */	bl bta_sys_register
/* 802C278C 002BE3EC  4B FF 89 1D */	bl GKI_sched_unlock
/* 802C2790 002BE3F0  38 60 00 34 */	li r3, 0x34
/* 802C2794 002BE3F4  4B FF 73 19 */	bl GKI_getbuf
/* 802C2798 002BE3F8  2C 03 00 00 */	cmpwi r3, 0
/* 802C279C 002BE3FC  7C 7F 1B 78 */	mr r31, r3
/* 802C27A0 002BE400  41 82 00 28 */	beq lbl_802C27C8
/* 802C27A4 002BE404  38 80 00 00 */	li r4, 0
/* 802C27A8 002BE408  38 A0 00 34 */	li r5, 0x34
/* 802C27AC 002BE40C  4B D4 19 59 */	bl memset
/* 802C27B0 002BE410  38 00 17 0C */	li r0, 0x170c
/* 802C27B4 002BE414  7F E3 FB 78 */	mr r3, r31
/* 802C27B8 002BE418  B0 1F 00 00 */	sth r0, 0(r31)
/* 802C27BC 002BE41C  93 DF 00 30 */	stw r30, 0x30(r31)
/* 802C27C0 002BE420  9B BF 00 08 */	stb r29, 8(r31)
/* 802C27C4 002BE424  4B FF B2 49 */	bl bta_sys_sendmsg
lbl_802C27C8:
/* 802C27C8 002BE428  80 01 00 24 */	lwz r0, 0x24(r1)
/* 802C27CC 002BE42C  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 802C27D0 002BE430  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 802C27D4 002BE434  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 802C27D8 002BE438  7C 08 03 A6 */	mtlr r0
/* 802C27DC 002BE43C  38 21 00 20 */	addi r1, r1, 0x20
/* 802C27E0 002BE440  4E 80 00 20 */	blr
/* 802C27E4 002BE444  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 802C27E8 002BE448  7C 08 02 A6 */	mflr r0
/* 802C27EC 002BE44C  38 60 00 08 */	li r3, 8
/* 802C27F0 002BE450  90 01 00 14 */	stw r0, 0x14(r1)
/* 802C27F4 002BE454  4B FF 72 B9 */	bl GKI_getbuf
/* 802C27F8 002BE458  2C 03 00 00 */	cmpwi r3, 0
/* 802C27FC 002BE45C  41 82 00 10 */	beq lbl_802C280C
/* 802C2800 002BE460  38 00 17 0D */	li r0, 0x170d
/* 802C2804 002BE464  B0 03 00 00 */	sth r0, 0(r3)
/* 802C2808 002BE468  4B FF B2 05 */	bl bta_sys_sendmsg
lbl_802C280C:
/* 802C280C 002BE46C  80 01 00 14 */	lwz r0, 0x14(r1)
/* 802C2810 002BE470  7C 08 03 A6 */	mtlr r0
/* 802C2814 002BE474  38 21 00 10 */	addi r1, r1, 0x10
/* 802C2818 002BE478  4E 80 00 20 */	blr

.global BTA_HhClose
BTA_HhClose:
/* 802C281C 002BE47C  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 802C2820 002BE480  7C 08 02 A6 */	mflr r0
/* 802C2824 002BE484  90 01 00 14 */	stw r0, 0x14(r1)
/* 802C2828 002BE488  93 E1 00 0C */	stw r31, 0xc(r1)
/* 802C282C 002BE48C  93 C1 00 08 */	stw r30, 8(r1)
/* 802C2830 002BE490  7C 7E 1B 78 */	mr r30, r3
/* 802C2834 002BE494  38 60 00 08 */	li r3, 8
/* 802C2838 002BE498  4B FF 72 75 */	bl GKI_getbuf
/* 802C283C 002BE49C  2C 03 00 00 */	cmpwi r3, 0
/* 802C2840 002BE4A0  7C 7F 1B 78 */	mr r31, r3
/* 802C2844 002BE4A4  41 82 00 24 */	beq lbl_802C2868
/* 802C2848 002BE4A8  38 80 00 00 */	li r4, 0
/* 802C284C 002BE4AC  38 A0 00 08 */	li r5, 8
/* 802C2850 002BE4B0  4B D4 18 B5 */	bl memset
/* 802C2854 002BE4B4  38 00 17 01 */	li r0, 0x1701
/* 802C2858 002BE4B8  7F E3 FB 78 */	mr r3, r31
/* 802C285C 002BE4BC  B0 1F 00 00 */	sth r0, 0(r31)
/* 802C2860 002BE4C0  B3 DF 00 06 */	sth r30, 6(r31)
/* 802C2864 002BE4C4  4B FF B1 A9 */	bl bta_sys_sendmsg
lbl_802C2868:
/* 802C2868 002BE4C8  80 01 00 14 */	lwz r0, 0x14(r1)
/* 802C286C 002BE4CC  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 802C2870 002BE4D0  83 C1 00 08 */	lwz r30, 8(r1)
/* 802C2874 002BE4D4  7C 08 03 A6 */	mtlr r0
/* 802C2878 002BE4D8  38 21 00 10 */	addi r1, r1, 0x10
/* 802C287C 002BE4DC  4E 80 00 20 */	blr

.global BTA_HhOpen
BTA_HhOpen:
/* 802C2880 002BE4E0  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 802C2884 002BE4E4  7C 08 02 A6 */	mflr r0
/* 802C2888 002BE4E8  90 01 00 24 */	stw r0, 0x24(r1)
/* 802C288C 002BE4EC  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 802C2890 002BE4F0  93 C1 00 18 */	stw r30, 0x18(r1)
/* 802C2894 002BE4F4  7C BE 2B 78 */	mr r30, r5
/* 802C2898 002BE4F8  93 A1 00 14 */	stw r29, 0x14(r1)
/* 802C289C 002BE4FC  7C 9D 23 78 */	mr r29, r4
/* 802C28A0 002BE500  93 81 00 10 */	stw r28, 0x10(r1)
/* 802C28A4 002BE504  7C 7C 1B 78 */	mr r28, r3
/* 802C28A8 002BE508  38 60 00 10 */	li r3, 0x10
/* 802C28AC 002BE50C  4B FF 72 01 */	bl GKI_getbuf
/* 802C28B0 002BE510  2C 03 00 00 */	cmpwi r3, 0
/* 802C28B4 002BE514  7C 7F 1B 78 */	mr r31, r3
/* 802C28B8 002BE518  41 82 00 40 */	beq lbl_802C28F8
/* 802C28BC 002BE51C  38 80 00 00 */	li r4, 0
/* 802C28C0 002BE520  38 A0 00 10 */	li r5, 0x10
/* 802C28C4 002BE524  4B D4 18 41 */	bl memset
/* 802C28C8 002BE528  38 60 17 00 */	li r3, 0x1700
/* 802C28CC 002BE52C  38 00 00 FF */	li r0, 0xff
/* 802C28D0 002BE530  B0 7F 00 00 */	sth r3, 0(r31)
/* 802C28D4 002BE534  7F 84 E3 78 */	mr r4, r28
/* 802C28D8 002BE538  38 7F 00 08 */	addi r3, r31, 8
/* 802C28DC 002BE53C  B0 1F 00 06 */	sth r0, 6(r31)
/* 802C28E0 002BE540  9B DF 00 0E */	stb r30, 0xe(r31)
/* 802C28E4 002BE544  9B BF 00 0F */	stb r29, 0xf(r31)
/* 802C28E8 002BE548  4B FF AC 79 */	bl bdcpy
/* 802C28EC 002BE54C  7F E3 FB 78 */	mr r3, r31
/* 802C28F0 002BE550  4B FF B1 1D */	bl bta_sys_sendmsg
/* 802C28F4 002BE554  48 00 00 20 */	b lbl_802C2914
lbl_802C28F8:
/* 802C28F8 002BE558  88 0D AE F8 */	lbz r0, lbl_806401B8-_SDA_BASE_(r13)
/* 802C28FC 002BE55C  28 00 00 01 */	cmplwi r0, 1
/* 802C2900 002BE560  41 80 00 14 */	blt lbl_802C2914
/* 802C2904 002BE564  3C 80 80 44 */	lis r4, lbl_804406F0@ha
/* 802C2908 002BE568  38 60 05 00 */	li r3, 0x500
/* 802C290C 002BE56C  38 84 06 F0 */	addi r4, r4, lbl_804406F0@l
/* 802C2910 002BE570  4B FF A6 01 */	bl LogMsg_0
lbl_802C2914:
/* 802C2914 002BE574  80 01 00 24 */	lwz r0, 0x24(r1)
/* 802C2918 002BE578  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 802C291C 002BE57C  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 802C2920 002BE580  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 802C2924 002BE584  83 81 00 10 */	lwz r28, 0x10(r1)
/* 802C2928 002BE588  7C 08 03 A6 */	mtlr r0
/* 802C292C 002BE58C  38 21 00 20 */	addi r1, r1, 0x20
/* 802C2930 002BE590  4E 80 00 20 */	blr

.global BTA_HhSendData
BTA_HhSendData:
/* 802C2934 002BE594  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 802C2938 002BE598  7C 08 02 A6 */	mflr r0
/* 802C293C 002BE59C  90 01 00 24 */	stw r0, 0x24(r1)
/* 802C2940 002BE5A0  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 802C2944 002BE5A4  93 C1 00 18 */	stw r30, 0x18(r1)
/* 802C2948 002BE5A8  7C 9E 23 78 */	mr r30, r4
/* 802C294C 002BE5AC  93 A1 00 14 */	stw r29, 0x14(r1)
/* 802C2950 002BE5B0  7C 7D 1B 78 */	mr r29, r3
/* 802C2954 002BE5B4  38 60 00 14 */	li r3, 0x14
/* 802C2958 002BE5B8  4B FF 71 55 */	bl GKI_getbuf
/* 802C295C 002BE5BC  2C 03 00 00 */	cmpwi r3, 0
/* 802C2960 002BE5C0  7C 7F 1B 78 */	mr r31, r3
/* 802C2964 002BE5C4  41 82 00 44 */	beq lbl_802C29A8
/* 802C2968 002BE5C8  38 80 00 00 */	li r4, 0
/* 802C296C 002BE5CC  38 A0 00 14 */	li r5, 0x14
/* 802C2970 002BE5D0  4B D4 17 95 */	bl memset
/* 802C2974 002BE5D4  38 00 17 08 */	li r0, 0x1708
/* 802C2978 002BE5D8  38 A0 00 0A */	li r5, 0xa
/* 802C297C 002BE5DC  B0 1F 00 00 */	sth r0, 0(r31)
/* 802C2980 002BE5E0  38 80 00 00 */	li r4, 0
/* 802C2984 002BE5E4  38 00 00 02 */	li r0, 2
/* 802C2988 002BE5E8  7F E3 FB 78 */	mr r3, r31
/* 802C298C 002BE5EC  B3 BF 00 06 */	sth r29, 6(r31)
/* 802C2990 002BE5F0  98 BF 00 08 */	stb r5, 8(r31)
/* 802C2994 002BE5F4  B0 9F 00 0C */	sth r4, 0xc(r31)
/* 802C2998 002BE5F8  98 1F 00 09 */	stb r0, 9(r31)
/* 802C299C 002BE5FC  93 DF 00 10 */	stw r30, 0x10(r31)
/* 802C29A0 002BE600  98 9F 00 0A */	stb r4, 0xa(r31)
/* 802C29A4 002BE604  4B FF B0 69 */	bl bta_sys_sendmsg
lbl_802C29A8:
/* 802C29A8 002BE608  80 01 00 24 */	lwz r0, 0x24(r1)
/* 802C29AC 002BE60C  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 802C29B0 002BE610  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 802C29B4 002BE614  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 802C29B8 002BE618  7C 08 03 A6 */	mtlr r0
/* 802C29BC 002BE61C  38 21 00 20 */	addi r1, r1, 0x20
/* 802C29C0 002BE620  4E 80 00 20 */	blr

.global BTA_HhAddDev
BTA_HhAddDev:
/* 802C29C4 002BE624  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 802C29C8 002BE628  7C 08 02 A6 */	mflr r0
/* 802C29CC 002BE62C  90 01 00 24 */	stw r0, 0x24(r1)
/* 802C29D0 002BE630  39 61 00 20 */	addi r11, r1, 0x20
/* 802C29D4 002BE634  4B F0 47 51 */	bl _savegpr_26
/* 802C29D8 002BE638  7C 7A 1B 78 */	mr r26, r3
/* 802C29DC 002BE63C  7C 9B 23 78 */	mr r27, r4
/* 802C29E0 002BE640  7C BC 2B 78 */	mr r28, r5
/* 802C29E4 002BE644  7C DD 33 78 */	mr r29, r6
/* 802C29E8 002BE648  7C FE 3B 78 */	mr r30, r7
/* 802C29EC 002BE64C  38 60 00 1C */	li r3, 0x1c
/* 802C29F0 002BE650  4B FF 70 BD */	bl GKI_getbuf
/* 802C29F4 002BE654  2C 03 00 00 */	cmpwi r3, 0
/* 802C29F8 002BE658  7C 7F 1B 78 */	mr r31, r3
/* 802C29FC 002BE65C  41 82 00 58 */	beq lbl_802C2A54
/* 802C2A00 002BE660  38 80 00 00 */	li r4, 0
/* 802C2A04 002BE664  38 A0 00 1C */	li r5, 0x1c
/* 802C2A08 002BE668  4B D4 16 FD */	bl memset
/* 802C2A0C 002BE66C  38 00 17 0A */	li r0, 0x170a
/* 802C2A10 002BE670  38 A0 00 0B */	li r5, 0xb
/* 802C2A14 002BE674  B0 1F 00 00 */	sth r0, 0(r31)
/* 802C2A18 002BE678  38 00 00 FF */	li r0, 0xff
/* 802C2A1C 002BE67C  7F C4 F3 78 */	mr r4, r30
/* 802C2A20 002BE680  38 7F 00 14 */	addi r3, r31, 0x14
/* 802C2A24 002BE684  B0 BF 00 10 */	sth r5, 0x10(r31)
/* 802C2A28 002BE688  38 A0 00 08 */	li r5, 8
/* 802C2A2C 002BE68C  B0 1F 00 06 */	sth r0, 6(r31)
/* 802C2A30 002BE690  B3 7F 00 0E */	sth r27, 0xe(r31)
/* 802C2A34 002BE694  9B 9F 00 12 */	stb r28, 0x12(r31)
/* 802C2A38 002BE698  9B BF 00 13 */	stb r29, 0x13(r31)
/* 802C2A3C 002BE69C  4B D4 15 C5 */	bl memcpy
/* 802C2A40 002BE6A0  7F 44 D3 78 */	mr r4, r26
/* 802C2A44 002BE6A4  38 7F 00 08 */	addi r3, r31, 8
/* 802C2A48 002BE6A8  4B FF AB 19 */	bl bdcpy
/* 802C2A4C 002BE6AC  7F E3 FB 78 */	mr r3, r31
/* 802C2A50 002BE6B0  4B FF AF BD */	bl bta_sys_sendmsg
lbl_802C2A54:
/* 802C2A54 002BE6B4  39 61 00 20 */	addi r11, r1, 0x20
/* 802C2A58 002BE6B8  4B F0 47 19 */	bl _restgpr_26
/* 802C2A5C 002BE6BC  80 01 00 24 */	lwz r0, 0x24(r1)
/* 802C2A60 002BE6C0  7C 08 03 A6 */	mtlr r0
/* 802C2A64 002BE6C4  38 21 00 20 */	addi r1, r1, 0x20
/* 802C2A68 002BE6C8  4E 80 00 20 */	blr

.global BTA_HhRemoveDev
BTA_HhRemoveDev:
/* 802C2A6C 002BE6CC  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 802C2A70 002BE6D0  7C 08 02 A6 */	mflr r0
/* 802C2A74 002BE6D4  90 01 00 14 */	stw r0, 0x14(r1)
/* 802C2A78 002BE6D8  93 E1 00 0C */	stw r31, 0xc(r1)
/* 802C2A7C 002BE6DC  93 C1 00 08 */	stw r30, 8(r1)
/* 802C2A80 002BE6E0  7C 7E 1B 78 */	mr r30, r3
/* 802C2A84 002BE6E4  38 60 00 1C */	li r3, 0x1c
/* 802C2A88 002BE6E8  4B FF 70 25 */	bl GKI_getbuf
/* 802C2A8C 002BE6EC  2C 03 00 00 */	cmpwi r3, 0
/* 802C2A90 002BE6F0  7C 7F 1B 78 */	mr r31, r3
/* 802C2A94 002BE6F4  41 82 00 2C */	beq lbl_802C2AC0
/* 802C2A98 002BE6F8  38 80 00 00 */	li r4, 0
/* 802C2A9C 002BE6FC  38 A0 00 1C */	li r5, 0x1c
/* 802C2AA0 002BE700  4B D4 16 65 */	bl memset
/* 802C2AA4 002BE704  38 60 17 0A */	li r3, 0x170a
/* 802C2AA8 002BE708  38 00 00 0C */	li r0, 0xc
/* 802C2AAC 002BE70C  B0 7F 00 00 */	sth r3, 0(r31)
/* 802C2AB0 002BE710  7F E3 FB 78 */	mr r3, r31
/* 802C2AB4 002BE714  B0 1F 00 10 */	sth r0, 0x10(r31)
/* 802C2AB8 002BE718  B3 DF 00 06 */	sth r30, 6(r31)
/* 802C2ABC 002BE71C  4B FF AF 51 */	bl bta_sys_sendmsg
lbl_802C2AC0:
/* 802C2AC0 002BE720  80 01 00 14 */	lwz r0, 0x14(r1)
/* 802C2AC4 002BE724  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 802C2AC8 002BE728  83 C1 00 08 */	lwz r30, 8(r1)
/* 802C2ACC 002BE72C  7C 08 03 A6 */	mtlr r0
/* 802C2AD0 002BE730  38 21 00 10 */	addi r1, r1, 0x10
/* 802C2AD4 002BE734  4E 80 00 20 */	blr

.global BTA_HhGetAclQueueInfo
BTA_HhGetAclQueueInfo:
/* 802C2AD8 002BE738  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 802C2ADC 002BE73C  7C 08 02 A6 */	mflr r0
/* 802C2AE0 002BE740  38 60 00 08 */	li r3, 8
/* 802C2AE4 002BE744  90 01 00 14 */	stw r0, 0x14(r1)
/* 802C2AE8 002BE748  93 E1 00 0C */	stw r31, 0xc(r1)
/* 802C2AEC 002BE74C  4B FF 6F C1 */	bl GKI_getbuf
/* 802C2AF0 002BE750  2C 03 00 00 */	cmpwi r3, 0
/* 802C2AF4 002BE754  7C 7F 1B 78 */	mr r31, r3
/* 802C2AF8 002BE758  41 82 00 20 */	beq lbl_802C2B18
/* 802C2AFC 002BE75C  38 80 00 00 */	li r4, 0
/* 802C2B00 002BE760  38 A0 00 08 */	li r5, 8
/* 802C2B04 002BE764  4B D4 16 01 */	bl memset
/* 802C2B08 002BE768  38 00 17 0E */	li r0, 0x170e
/* 802C2B0C 002BE76C  7F E3 FB 78 */	mr r3, r31
/* 802C2B10 002BE770  B0 1F 00 00 */	sth r0, 0(r31)
/* 802C2B14 002BE774  4B FF AE F9 */	bl bta_sys_sendmsg
lbl_802C2B18:
/* 802C2B18 002BE778  80 01 00 14 */	lwz r0, 0x14(r1)
/* 802C2B1C 002BE77C  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 802C2B20 002BE780  7C 08 03 A6 */	mtlr r0
/* 802C2B24 002BE784  38 21 00 10 */	addi r1, r1, 0x10
/* 802C2B28 002BE788  4E 80 00 20 */	blr