summaryrefslogtreecommitdiff
path: root/asm/SDK/BTE/bta_sys_main.s
blob: 344ca135320a2fe5a6ef3cf36aa3a6a14572d50f (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
.include "macros.inc"

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

.global bta_sys_init
bta_sys_init:
/* 802BD888 002B94E8  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 802BD88C 002B94EC  7C 08 02 A6 */	mflr r0
/* 802BD890 002B94F0  38 80 00 00 */	li r4, 0
/* 802BD894 002B94F4  38 A0 00 8C */	li r5, 0x8c
/* 802BD898 002B94F8  90 01 00 14 */	stw r0, 0x14(r1)
/* 802BD89C 002B94FC  93 E1 00 0C */	stw r31, 0xc(r1)
/* 802BD8A0 002B9500  3F E0 80 57 */	lis r31, lbl_805686D8@ha
/* 802BD8A4 002B9504  38 7F 86 D8 */	addi r3, r31, lbl_805686D8@l
/* 802BD8A8 002B9508  4B D4 68 5D */	bl memset
/* 802BD8AC 002B950C  80 AD 8A 10 */	lwz r5, lbl_8063DCD0-_SDA_BASE_(r13)
/* 802BD8B0 002B9510  3B FF 86 D8 */	addi r31, r31, -31016
/* 802BD8B4 002B9514  38 7F 00 68 */	addi r3, r31, 0x68
/* 802BD8B8 002B9518  38 80 03 E8 */	li r4, 0x3e8
/* 802BD8BC 002B951C  88 A5 00 03 */	lbz r5, 3(r5)
/* 802BD8C0 002B9520  48 00 02 0D */	bl ptim_init
/* 802BD8C4 002B9524  4B FF D8 91 */	bl GKI_get_taskid
/* 802BD8C8 002B9528  98 7F 00 7D */	stb r3, 0x7d(r31)
/* 802BD8CC 002B952C  80 6D 8A 10 */	lwz r3, lbl_8063DCD0-_SDA_BASE_(r13)
/* 802BD8D0 002B9530  88 03 00 04 */	lbz r0, 4(r3)
/* 802BD8D4 002B9534  98 0D AE F8 */	stb r0, lbl_806401B8-_SDA_BASE_(r13)
/* 802BD8D8 002B9538  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 802BD8DC 002B953C  80 01 00 14 */	lwz r0, 0x14(r1)
/* 802BD8E0 002B9540  7C 08 03 A6 */	mtlr r0
/* 802BD8E4 002B9544  38 21 00 10 */	addi r1, r1, 0x10
/* 802BD8E8 002B9548  4E 80 00 20 */	blr

.global bta_sys_event
bta_sys_event:
/* 802BD8EC 002B954C  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 802BD8F0 002B9550  7C 08 02 A6 */	mflr r0
/* 802BD8F4 002B9554  90 01 00 14 */	stw r0, 0x14(r1)
/* 802BD8F8 002B9558  93 E1 00 0C */	stw r31, 0xc(r1)
/* 802BD8FC 002B955C  3B E0 00 01 */	li r31, 1
/* 802BD900 002B9560  93 C1 00 08 */	stw r30, 8(r1)
/* 802BD904 002B9564  7C 7E 1B 78 */	mr r30, r3
/* 802BD908 002B9568  88 0D AE F8 */	lbz r0, lbl_806401B8-_SDA_BASE_(r13)
/* 802BD90C 002B956C  28 00 00 04 */	cmplwi r0, 4
/* 802BD910 002B9570  41 80 00 18 */	blt lbl_802BD928
/* 802BD914 002B9574  3C 80 80 44 */	lis r4, lbl_80440030@ha
/* 802BD918 002B9578  A0 BE 00 00 */	lhz r5, 0(r30)
/* 802BD91C 002B957C  38 84 00 30 */	addi r4, r4, lbl_80440030@l
/* 802BD920 002B9580  38 60 05 03 */	li r3, 0x503
/* 802BD924 002B9584  4B FF F6 05 */	bl LogMsg_1
lbl_802BD928:
/* 802BD928 002B9588  3C 60 80 57 */	lis r3, lbl_805686D8@ha
/* 802BD92C 002B958C  A0 9E 00 00 */	lhz r4, 0(r30)
/* 802BD930 002B9590  38 63 86 D8 */	addi r3, r3, lbl_805686D8@l
/* 802BD934 002B9594  88 03 00 7E */	lbz r0, 0x7e(r3)
/* 802BD938 002B9598  7C 85 46 70 */	srawi r5, r4, 8
/* 802BD93C 002B959C  2C 00 00 00 */	cmpwi r0, 0
/* 802BD940 002B95A0  41 82 00 1C */	beq lbl_802BD95C
/* 802BD944 002B95A4  28 04 01 01 */	cmplwi r4, 0x101
/* 802BD948 002B95A8  40 82 00 08 */	bne lbl_802BD950
/* 802BD94C 002B95AC  48 00 26 71 */	bl bta_dm_immediate_disable
lbl_802BD950:
/* 802BD950 002B95B0  7F C3 F3 78 */	mr r3, r30
/* 802BD954 002B95B4  4B FF C3 E1 */	bl GKI_freebuf
/* 802BD958 002B95B8  48 00 00 68 */	b lbl_802BD9C0
lbl_802BD95C:
/* 802BD95C 002B95BC  54 A0 06 3E */	clrlwi r0, r5, 0x18
/* 802BD960 002B95C0  28 00 00 1A */	cmplwi r0, 0x1a
/* 802BD964 002B95C4  40 80 00 2C */	bge lbl_802BD990
/* 802BD968 002B95C8  54 A0 15 BA */	rlwinm r0, r5, 2, 0x16, 0x1d
/* 802BD96C 002B95CC  7C 63 00 2E */	lwzx r3, r3, r0
/* 802BD970 002B95D0  2C 03 00 00 */	cmpwi r3, 0
/* 802BD974 002B95D4  41 82 00 1C */	beq lbl_802BD990
/* 802BD978 002B95D8  81 83 00 00 */	lwz r12, 0(r3)
/* 802BD97C 002B95DC  7F C3 F3 78 */	mr r3, r30
/* 802BD980 002B95E0  7D 89 03 A6 */	mtctr r12
/* 802BD984 002B95E4  4E 80 04 21 */	bctrl
/* 802BD988 002B95E8  7C 7F 1B 78 */	mr r31, r3
/* 802BD98C 002B95EC  48 00 00 24 */	b lbl_802BD9B0
lbl_802BD990:
/* 802BD990 002B95F0  88 0D AE F8 */	lbz r0, lbl_806401B8-_SDA_BASE_(r13)
/* 802BD994 002B95F4  28 00 00 02 */	cmplwi r0, 2
/* 802BD998 002B95F8  41 80 00 18 */	blt lbl_802BD9B0
/* 802BD99C 002B95FC  3C 80 80 44 */	lis r4, lbl_80440044@ha
/* 802BD9A0 002B9600  54 A5 06 3E */	clrlwi r5, r5, 0x18
/* 802BD9A4 002B9604  38 84 00 44 */	addi r4, r4, lbl_80440044@l
/* 802BD9A8 002B9608  38 60 05 01 */	li r3, 0x501
/* 802BD9AC 002B960C  4B FF F5 7D */	bl LogMsg_1
lbl_802BD9B0:
/* 802BD9B0 002B9610  57 E0 06 3F */	clrlwi. r0, r31, 0x18
/* 802BD9B4 002B9614  41 82 00 0C */	beq lbl_802BD9C0
/* 802BD9B8 002B9618  7F C3 F3 78 */	mr r3, r30
/* 802BD9BC 002B961C  4B FF C3 79 */	bl GKI_freebuf
lbl_802BD9C0:
/* 802BD9C0 002B9620  80 01 00 14 */	lwz r0, 0x14(r1)
/* 802BD9C4 002B9624  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 802BD9C8 002B9628  83 C1 00 08 */	lwz r30, 8(r1)
/* 802BD9CC 002B962C  7C 08 03 A6 */	mtlr r0
/* 802BD9D0 002B9630  38 21 00 10 */	addi r1, r1, 0x10
/* 802BD9D4 002B9634  4E 80 00 20 */	blr

.global bta_sys_timer_update
bta_sys_timer_update:
/* 802BD9D8 002B9638  3C 60 80 57 */	lis r3, lbl_805686D8@ha
/* 802BD9DC 002B963C  38 63 86 D8 */	addi r3, r3, lbl_805686D8@l
/* 802BD9E0 002B9640  88 03 00 7C */	lbz r0, 0x7c(r3)
/* 802BD9E4 002B9644  2C 00 00 00 */	cmpwi r0, 0
/* 802BD9E8 002B9648  4C 82 00 20 */	bnelr
/* 802BD9EC 002B964C  38 63 00 68 */	addi r3, r3, 0x68
/* 802BD9F0 002B9650  48 00 01 28 */	b ptim_timer_update
/* 802BD9F4 002B9654  4E 80 00 20 */	blr

.global bta_sys_register
bta_sys_register:
/* 802BD9F8 002B9658  3C A0 80 57 */	lis r5, lbl_805686D8@ha
/* 802BD9FC 002B965C  54 60 15 BA */	rlwinm r0, r3, 2, 0x16, 0x1d
/* 802BDA00 002B9660  38 A5 86 D8 */	addi r5, r5, lbl_805686D8@l
/* 802BDA04 002B9664  7C 85 01 2E */	stwx r4, r5, r0
/* 802BDA08 002B9668  4E 80 00 20 */	blr

.global bta_sys_sendmsg
bta_sys_sendmsg:
/* 802BDA0C 002B966C  80 8D 8A 10 */	lwz r4, lbl_8063DCD0-_SDA_BASE_(r13)
/* 802BDA10 002B9670  3C C0 80 57 */	lis r6, lbl_805686D8@ha
/* 802BDA14 002B9674  38 C6 86 D8 */	addi r6, r6, lbl_805686D8@l
/* 802BDA18 002B9678  7C 65 1B 78 */	mr r5, r3
/* 802BDA1C 002B967C  88 66 00 7D */	lbz r3, 0x7d(r6)
/* 802BDA20 002B9680  88 84 00 02 */	lbz r4, 2(r4)
/* 802BDA24 002B9684  4B FF C4 C4 */	b GKI_send_msg

.global bta_sys_start_timer
bta_sys_start_timer:
/* 802BDA28 002B9688  3C E0 80 57 */	lis r7, lbl_805686D8@ha
/* 802BDA2C 002B968C  7C 80 23 78 */	mr r0, r4
/* 802BDA30 002B9690  38 E7 86 D8 */	addi r7, r7, lbl_805686D8@l
/* 802BDA34 002B9694  7C A6 2B 78 */	mr r6, r5
/* 802BDA38 002B9698  7C 64 1B 78 */	mr r4, r3
/* 802BDA3C 002B969C  7C 05 03 78 */	mr r5, r0
/* 802BDA40 002B96A0  38 67 00 68 */	addi r3, r7, 0x68
/* 802BDA44 002B96A4  48 00 01 88 */	b ptim_start_timer

.global bta_sys_stop_timer
bta_sys_stop_timer:
/* 802BDA48 002B96A8  3C A0 80 57 */	lis r5, lbl_805686D8@ha
/* 802BDA4C 002B96AC  7C 64 1B 78 */	mr r4, r3
/* 802BDA50 002B96B0  38 A5 86 D8 */	addi r5, r5, lbl_805686D8@l
/* 802BDA54 002B96B4  38 65 00 68 */	addi r3, r5, 0x68
/* 802BDA58 002B96B8  48 00 02 14 */	b ptim_stop_timer

.global bta_sys_disable
bta_sys_disable:
/* 802BDA5C 002B96BC  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 802BDA60 002B96C0  7C 08 02 A6 */	mflr r0
/* 802BDA64 002B96C4  90 01 00 14 */	stw r0, 0x14(r1)
/* 802BDA68 002B96C8  93 E1 00 0C */	stw r31, 0xc(r1)
/* 802BDA6C 002B96CC  3F E0 80 57 */	lis r31, lbl_805686D8@ha
/* 802BDA70 002B96D0  3B FF 86 D8 */	addi r31, r31, lbl_805686D8@l
/* 802BDA74 002B96D4  93 C1 00 08 */	stw r30, 8(r1)
/* 802BDA78 002B96D8  3B C0 00 00 */	li r30, 0
lbl_802BDA7C:
/* 802BDA7C 002B96DC  80 7F 00 00 */	lwz r3, 0(r31)
/* 802BDA80 002B96E0  2C 03 00 00 */	cmpwi r3, 0
/* 802BDA84 002B96E4  41 82 00 18 */	beq lbl_802BDA9C
/* 802BDA88 002B96E8  81 83 00 04 */	lwz r12, 4(r3)
/* 802BDA8C 002B96EC  2C 0C 00 00 */	cmpwi r12, 0
/* 802BDA90 002B96F0  41 82 00 0C */	beq lbl_802BDA9C
/* 802BDA94 002B96F4  7D 89 03 A6 */	mtctr r12
/* 802BDA98 002B96F8  4E 80 04 21 */	bctrl
lbl_802BDA9C:
/* 802BDA9C 002B96FC  3B DE 00 01 */	addi r30, r30, 1
/* 802BDAA0 002B9700  3B FF 00 04 */	addi r31, r31, 4
/* 802BDAA4 002B9704  2C 1E 00 1A */	cmpwi r30, 0x1a
/* 802BDAA8 002B9708  41 80 FF D4 */	blt lbl_802BDA7C
/* 802BDAAC 002B970C  80 01 00 14 */	lwz r0, 0x14(r1)
/* 802BDAB0 002B9710  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 802BDAB4 002B9714  83 C1 00 08 */	lwz r30, 8(r1)
/* 802BDAB8 002B9718  7C 08 03 A6 */	mtlr r0
/* 802BDABC 002B971C  38 21 00 10 */	addi r1, r1, 0x10
/* 802BDAC0 002B9720  4E 80 00 20 */	blr

.global bta_sys_set_trace_level
bta_sys_set_trace_level:
/* 802BDAC4 002B9724  98 6D AE F8 */	stb r3, lbl_806401B8-_SDA_BASE_(r13)
/* 802BDAC8 002B9728  4E 80 00 20 */	blr