summaryrefslogtreecommitdiff
path: root/asm/SDK/OS/OSStateTM.s
blob: 47737e7e07b9cf2c1b78f61a3e806d06cbd4558f (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
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
.include "macros.inc"

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

.global OSSetResetCallback
OSSetResetCallback:
/* 802730CC 0026ED2C  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 802730D0 0026ED30  7C 08 02 A6 */	mflr r0
/* 802730D4 0026ED34  90 01 00 24 */	stw r0, 0x24(r1)
/* 802730D8 0026ED38  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 802730DC 0026ED3C  7C 7F 1B 78 */	mr r31, r3
/* 802730E0 0026ED40  93 C1 00 18 */	stw r30, 0x18(r1)
/* 802730E4 0026ED44  93 A1 00 14 */	stw r29, 0x14(r1)
/* 802730E8 0026ED48  4B FF B6 75 */	bl OSDisableInterrupts
/* 802730EC 0026ED4C  80 0D A8 50 */	lwz r0, lbl_8063FB10-_SDA_BASE_(r13)
/* 802730F0 0026ED50  7C 7E 1B 78 */	mr r30, r3
/* 802730F4 0026ED54  83 AD A8 5C */	lwz r29, lbl_8063FB1C-_SDA_BASE_(r13)
/* 802730F8 0026ED58  2C 00 00 00 */	cmpwi r0, 0
/* 802730FC 0026ED5C  93 ED A8 5C */	stw r31, lbl_8063FB1C-_SDA_BASE_(r13)
/* 80273100 0026ED60  40 82 00 60 */	bne lbl_80273160
/* 80273104 0026ED64  4B FF B6 59 */	bl OSDisableInterrupts
/* 80273108 0026ED68  7C 7F 1B 78 */	mr r31, r3
/* 8027310C 0026ED6C  3C A0 80 51 */	lis r5, lbl_805151E0@ha
/* 80273110 0026ED70  3C E0 80 51 */	lis r7, lbl_80515200@ha
/* 80273114 0026ED74  3D 20 80 27 */	lis r9, __OSStateEventHandler@ha
/* 80273118 0026ED78  80 6D A8 4C */	lwz r3, lbl_8063FB0C-_SDA_BASE_(r13)
/* 8027311C 0026ED7C  38 A5 51 E0 */	addi r5, r5, lbl_805151E0@l
/* 80273120 0026ED80  38 E7 52 00 */	addi r7, r7, lbl_80515200@l
/* 80273124 0026ED84  39 29 36 BC */	addi r9, r9, __OSStateEventHandler@l
/* 80273128 0026ED88  38 80 10 00 */	li r4, 0x1000
/* 8027312C 0026ED8C  38 C0 00 20 */	li r6, 0x20
/* 80273130 0026ED90  39 00 00 20 */	li r8, 0x20
/* 80273134 0026ED94  39 40 00 00 */	li r10, 0
/* 80273138 0026ED98  48 03 08 81 */	bl IOS_IoctlAsync
/* 8027313C 0026ED9C  2C 03 00 00 */	cmpwi r3, 0
/* 80273140 0026EDA0  40 82 00 10 */	bne lbl_80273150
/* 80273144 0026EDA4  38 00 00 01 */	li r0, 1
/* 80273148 0026EDA8  90 0D A8 50 */	stw r0, lbl_8063FB10-_SDA_BASE_(r13)
/* 8027314C 0026EDAC  48 00 00 0C */	b lbl_80273158
lbl_80273150:
/* 80273150 0026EDB0  38 00 00 00 */	li r0, 0
/* 80273154 0026EDB4  90 0D A8 50 */	stw r0, lbl_8063FB10-_SDA_BASE_(r13)
lbl_80273158:
/* 80273158 0026EDB8  7F E3 FB 78 */	mr r3, r31
/* 8027315C 0026EDBC  4B FF B6 29 */	bl OSRestoreInterrupts
lbl_80273160:
/* 80273160 0026EDC0  7F C3 F3 78 */	mr r3, r30
/* 80273164 0026EDC4  4B FF B6 21 */	bl OSRestoreInterrupts
/* 80273168 0026EDC8  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 8027316C 0026EDCC  7F A3 EB 78 */	mr r3, r29
/* 80273170 0026EDD0  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 80273174 0026EDD4  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 80273178 0026EDD8  80 01 00 24 */	lwz r0, 0x24(r1)
/* 8027317C 0026EDDC  7C 08 03 A6 */	mtlr r0
/* 80273180 0026EDE0  38 21 00 20 */	addi r1, r1, 0x20
/* 80273184 0026EDE4  4E 80 00 20 */	blr

.global OSSetPowerCallback
OSSetPowerCallback:
/* 80273188 0026EDE8  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 8027318C 0026EDEC  7C 08 02 A6 */	mflr r0
/* 80273190 0026EDF0  90 01 00 24 */	stw r0, 0x24(r1)
/* 80273194 0026EDF4  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 80273198 0026EDF8  7C 7F 1B 78 */	mr r31, r3
/* 8027319C 0026EDFC  93 C1 00 18 */	stw r30, 0x18(r1)
/* 802731A0 0026EE00  93 A1 00 14 */	stw r29, 0x14(r1)
/* 802731A4 0026EE04  4B FF B5 B9 */	bl OSDisableInterrupts
/* 802731A8 0026EE08  80 0D A8 50 */	lwz r0, lbl_8063FB10-_SDA_BASE_(r13)
/* 802731AC 0026EE0C  7C 7E 1B 78 */	mr r30, r3
/* 802731B0 0026EE10  83 AD A8 58 */	lwz r29, lbl_8063FB18-_SDA_BASE_(r13)
/* 802731B4 0026EE14  2C 00 00 00 */	cmpwi r0, 0
/* 802731B8 0026EE18  93 ED A8 58 */	stw r31, lbl_8063FB18-_SDA_BASE_(r13)
/* 802731BC 0026EE1C  40 82 00 60 */	bne lbl_8027321C
/* 802731C0 0026EE20  4B FF B5 9D */	bl OSDisableInterrupts
/* 802731C4 0026EE24  7C 7F 1B 78 */	mr r31, r3
/* 802731C8 0026EE28  3C A0 80 51 */	lis r5, lbl_805151E0@ha
/* 802731CC 0026EE2C  3C E0 80 51 */	lis r7, lbl_80515200@ha
/* 802731D0 0026EE30  3D 20 80 27 */	lis r9, __OSStateEventHandler@ha
/* 802731D4 0026EE34  80 6D A8 4C */	lwz r3, lbl_8063FB0C-_SDA_BASE_(r13)
/* 802731D8 0026EE38  38 A5 51 E0 */	addi r5, r5, lbl_805151E0@l
/* 802731DC 0026EE3C  38 E7 52 00 */	addi r7, r7, lbl_80515200@l
/* 802731E0 0026EE40  39 29 36 BC */	addi r9, r9, __OSStateEventHandler@l
/* 802731E4 0026EE44  38 80 10 00 */	li r4, 0x1000
/* 802731E8 0026EE48  38 C0 00 20 */	li r6, 0x20
/* 802731EC 0026EE4C  39 00 00 20 */	li r8, 0x20
/* 802731F0 0026EE50  39 40 00 00 */	li r10, 0
/* 802731F4 0026EE54  48 03 07 C5 */	bl IOS_IoctlAsync
/* 802731F8 0026EE58  2C 03 00 00 */	cmpwi r3, 0
/* 802731FC 0026EE5C  40 82 00 10 */	bne lbl_8027320C
/* 80273200 0026EE60  38 00 00 01 */	li r0, 1
/* 80273204 0026EE64  90 0D A8 50 */	stw r0, lbl_8063FB10-_SDA_BASE_(r13)
/* 80273208 0026EE68  48 00 00 0C */	b lbl_80273214
lbl_8027320C:
/* 8027320C 0026EE6C  38 00 00 00 */	li r0, 0
/* 80273210 0026EE70  90 0D A8 50 */	stw r0, lbl_8063FB10-_SDA_BASE_(r13)
lbl_80273214:
/* 80273214 0026EE74  7F E3 FB 78 */	mr r3, r31
/* 80273218 0026EE78  4B FF B5 6D */	bl OSRestoreInterrupts
lbl_8027321C:
/* 8027321C 0026EE7C  7F C3 F3 78 */	mr r3, r30
/* 80273220 0026EE80  4B FF B5 65 */	bl OSRestoreInterrupts
/* 80273224 0026EE84  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 80273228 0026EE88  7F A3 EB 78 */	mr r3, r29
/* 8027322C 0026EE8C  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 80273230 0026EE90  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 80273234 0026EE94  80 01 00 24 */	lwz r0, 0x24(r1)
/* 80273238 0026EE98  7C 08 03 A6 */	mtlr r0
/* 8027323C 0026EE9C  38 21 00 20 */	addi r1, r1, 0x20
/* 80273240 0026EEA0  4E 80 00 20 */	blr

# could also be OSGetResetSwitchState
.global OSGetResetButtonState
OSGetResetButtonState:
/* 80273244 0026EEA4  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 80273248 0026EEA8  7C 08 02 A6 */	mflr r0
/* 8027324C 0026EEAC  90 01 00 24 */	stw r0, 0x24(r1)
/* 80273250 0026EEB0  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 80273254 0026EEB4  93 C1 00 18 */	stw r30, 0x18(r1)
/* 80273258 0026EEB8  93 A1 00 14 */	stw r29, 0x14(r1)
/* 8027325C 0026EEBC  4B FF B5 01 */	bl OSDisableInterrupts
/* 80273260 0026EEC0  83 AD A8 40 */	lwz r29, lbl_8063FB00-_SDA_BASE_(r13)
/* 80273264 0026EEC4  3B E0 00 00 */	li r31, 0
/* 80273268 0026EEC8  93 ED A8 40 */	stw r31, lbl_8063FB00-_SDA_BASE_(r13)
/* 8027326C 0026EECC  4B FF B5 19 */	bl OSRestoreInterrupts
/* 80273270 0026EED0  80 0D A8 50 */	lwz r0, lbl_8063FB10-_SDA_BASE_(r13)
/* 80273274 0026EED4  2C 00 00 00 */	cmpwi r0, 0
/* 80273278 0026EED8  40 82 00 5C */	bne lbl_802732D4
/* 8027327C 0026EEDC  4B FF B4 E1 */	bl OSDisableInterrupts
/* 80273280 0026EEE0  7C 7E 1B 78 */	mr r30, r3
/* 80273284 0026EEE4  3C A0 80 51 */	lis r5, lbl_805151E0@ha
/* 80273288 0026EEE8  3C E0 80 51 */	lis r7, lbl_80515200@ha
/* 8027328C 0026EEEC  3D 20 80 27 */	lis r9, __OSStateEventHandler@ha
/* 80273290 0026EEF0  80 6D A8 4C */	lwz r3, lbl_8063FB0C-_SDA_BASE_(r13)
/* 80273294 0026EEF4  38 A5 51 E0 */	addi r5, r5, lbl_805151E0@l
/* 80273298 0026EEF8  38 E7 52 00 */	addi r7, r7, lbl_80515200@l
/* 8027329C 0026EEFC  39 29 36 BC */	addi r9, r9, __OSStateEventHandler@l
/* 802732A0 0026EF00  38 80 10 00 */	li r4, 0x1000
/* 802732A4 0026EF04  38 C0 00 20 */	li r6, 0x20
/* 802732A8 0026EF08  39 00 00 20 */	li r8, 0x20
/* 802732AC 0026EF0C  39 40 00 00 */	li r10, 0
/* 802732B0 0026EF10  48 03 07 09 */	bl IOS_IoctlAsync
/* 802732B4 0026EF14  2C 03 00 00 */	cmpwi r3, 0
/* 802732B8 0026EF18  40 82 00 10 */	bne lbl_802732C8
/* 802732BC 0026EF1C  38 00 00 01 */	li r0, 1
/* 802732C0 0026EF20  90 0D A8 50 */	stw r0, lbl_8063FB10-_SDA_BASE_(r13)
/* 802732C4 0026EF24  48 00 00 08 */	b lbl_802732CC
lbl_802732C8:
/* 802732C8 0026EF28  93 ED A8 50 */	stw r31, lbl_8063FB10-_SDA_BASE_(r13)
lbl_802732CC:
/* 802732CC 0026EF2C  7F C3 F3 78 */	mr r3, r30
/* 802732D0 0026EF30  4B FF B4 B5 */	bl OSRestoreInterrupts
lbl_802732D4:
/* 802732D4 0026EF34  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 802732D8 0026EF38  7F A3 EB 78 */	mr r3, r29
/* 802732DC 0026EF3C  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 802732E0 0026EF40  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 802732E4 0026EF44  80 01 00 24 */	lwz r0, 0x24(r1)
/* 802732E8 0026EF48  7C 08 03 A6 */	mtlr r0
/* 802732EC 0026EF4C  38 21 00 20 */	addi r1, r1, 0x20
/* 802732F0 0026EF50  4E 80 00 20 */	blr

.global __OSInitSTM
__OSInitSTM:
/* 802732F4 0026EF54  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 802732F8 0026EF58  7C 08 02 A6 */	mflr r0
/* 802732FC 0026EF5C  3C 80 80 27 */	lis r4, __OSDefaultPowerCallback@ha
/* 80273300 0026EF60  3C 60 80 27 */	lis r3, __OSDefaultResetCallback@ha
/* 80273304 0026EF64  90 01 00 14 */	stw r0, 0x14(r1)
/* 80273308 0026EF68  38 84 36 B8 */	addi r4, r4, __OSDefaultPowerCallback@l
/* 8027330C 0026EF6C  38 63 36 B4 */	addi r3, r3, __OSDefaultResetCallback@l
/* 80273310 0026EF70  93 E1 00 0C */	stw r31, 0xc(r1)
/* 80273314 0026EF74  3B E0 00 00 */	li r31, 0
/* 80273318 0026EF78  93 C1 00 08 */	stw r30, 8(r1)
/* 8027331C 0026EF7C  80 0D A8 44 */	lwz r0, lbl_8063FB04-_SDA_BASE_(r13)
/* 80273320 0026EF80  90 8D A8 58 */	stw r4, lbl_8063FB18-_SDA_BASE_(r13)
/* 80273324 0026EF84  2C 00 00 00 */	cmpwi r0, 0
/* 80273328 0026EF88  90 6D A8 5C */	stw r3, lbl_8063FB1C-_SDA_BASE_(r13)
/* 8027332C 0026EF8C  93 ED A8 40 */	stw r31, lbl_8063FB00-_SDA_BASE_(r13)
/* 80273330 0026EF90  41 82 00 0C */	beq lbl_8027333C
/* 80273334 0026EF94  38 60 00 01 */	li r3, 1
/* 80273338 0026EF98  48 00 00 BC */	b lbl_802733F4
lbl_8027333C:
/* 8027333C 0026EF9C  3C 60 80 43 */	lis r3, lbl_80433C68@ha
/* 80273340 0026EFA0  93 ED A8 54 */	stw r31, lbl_8063FB14-_SDA_BASE_(r13)
/* 80273344 0026EFA4  38 80 00 00 */	li r4, 0
/* 80273348 0026EFA8  38 63 3C 68 */	addi r3, r3, lbl_80433C68@l
/* 8027334C 0026EFAC  48 02 FE 0D */	bl IOS_Open
/* 80273350 0026EFB0  2C 03 00 00 */	cmpwi r3, 0
/* 80273354 0026EFB4  90 6D A8 48 */	stw r3, lbl_8063FB08-_SDA_BASE_(r13)
/* 80273358 0026EFB8  40 80 00 10 */	bge lbl_80273368
/* 8027335C 0026EFBC  93 ED A8 44 */	stw r31, lbl_8063FB04-_SDA_BASE_(r13)
/* 80273360 0026EFC0  38 60 00 00 */	li r3, 0
/* 80273364 0026EFC4  48 00 00 90 */	b lbl_802733F4
lbl_80273368:
/* 80273368 0026EFC8  3C 60 80 43 */	lis r3, lbl_80433C7C@ha
/* 8027336C 0026EFCC  38 80 00 00 */	li r4, 0
/* 80273370 0026EFD0  38 63 3C 7C */	addi r3, r3, lbl_80433C7C@l
/* 80273374 0026EFD4  48 02 FD E5 */	bl IOS_Open
/* 80273378 0026EFD8  2C 03 00 00 */	cmpwi r3, 0
/* 8027337C 0026EFDC  90 6D A8 4C */	stw r3, lbl_8063FB0C-_SDA_BASE_(r13)
/* 80273380 0026EFE0  40 80 00 10 */	bge lbl_80273390
/* 80273384 0026EFE4  93 ED A8 44 */	stw r31, lbl_8063FB04-_SDA_BASE_(r13)
/* 80273388 0026EFE8  38 60 00 00 */	li r3, 0
/* 8027338C 0026EFEC  48 00 00 68 */	b lbl_802733F4
lbl_80273390:
/* 80273390 0026EFF0  4B FF B3 CD */	bl OSDisableInterrupts
/* 80273394 0026EFF4  7C 7E 1B 78 */	mr r30, r3
/* 80273398 0026EFF8  3C A0 80 51 */	lis r5, lbl_805151E0@ha
/* 8027339C 0026EFFC  3C E0 80 51 */	lis r7, lbl_80515200@ha
/* 802733A0 0026F000  3D 20 80 27 */	lis r9, __OSStateEventHandler@ha
/* 802733A4 0026F004  80 6D A8 4C */	lwz r3, lbl_8063FB0C-_SDA_BASE_(r13)
/* 802733A8 0026F008  38 A5 51 E0 */	addi r5, r5, lbl_805151E0@l
/* 802733AC 0026F00C  38 E7 52 00 */	addi r7, r7, lbl_80515200@l
/* 802733B0 0026F010  39 29 36 BC */	addi r9, r9, __OSStateEventHandler@l
/* 802733B4 0026F014  38 80 10 00 */	li r4, 0x1000
/* 802733B8 0026F018  38 C0 00 20 */	li r6, 0x20
/* 802733BC 0026F01C  39 00 00 20 */	li r8, 0x20
/* 802733C0 0026F020  39 40 00 00 */	li r10, 0
/* 802733C4 0026F024  48 03 05 F5 */	bl IOS_IoctlAsync
/* 802733C8 0026F028  2C 03 00 00 */	cmpwi r3, 0
/* 802733CC 0026F02C  40 82 00 10 */	bne lbl_802733DC
/* 802733D0 0026F030  38 00 00 01 */	li r0, 1
/* 802733D4 0026F034  90 0D A8 50 */	stw r0, lbl_8063FB10-_SDA_BASE_(r13)
/* 802733D8 0026F038  48 00 00 08 */	b lbl_802733E0
lbl_802733DC:
/* 802733DC 0026F03C  93 ED A8 50 */	stw r31, lbl_8063FB10-_SDA_BASE_(r13)
lbl_802733E0:
/* 802733E0 0026F040  7F C3 F3 78 */	mr r3, r30
/* 802733E4 0026F044  4B FF B3 A1 */	bl OSRestoreInterrupts
/* 802733E8 0026F048  38 00 00 01 */	li r0, 1
/* 802733EC 0026F04C  38 60 00 01 */	li r3, 1
/* 802733F0 0026F050  90 0D A8 44 */	stw r0, lbl_8063FB04-_SDA_BASE_(r13)
lbl_802733F4:
/* 802733F4 0026F054  80 01 00 14 */	lwz r0, 0x14(r1)
/* 802733F8 0026F058  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 802733FC 0026F05C  83 C1 00 08 */	lwz r30, 8(r1)
/* 80273400 0026F060  7C 08 03 A6 */	mtlr r0
/* 80273404 0026F064  38 21 00 10 */	addi r1, r1, 0x10
/* 80273408 0026F068  4E 80 00 20 */	blr

.global __OSShutdownToSBY
__OSShutdownToSBY:
/* 8027340C 0026F06C  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 80273410 0026F070  7C 08 02 A6 */	mflr r0
/* 80273414 0026F074  3C 60 CC 00 */	lis r3, 0xCC002002@ha
/* 80273418 0026F078  90 01 00 14 */	stw r0, 0x14(r1)
/* 8027341C 0026F07C  38 00 00 00 */	li r0, 0
/* 80273420 0026F080  B0 03 20 02 */	sth r0, 0xCC002002@l(r3)
/* 80273424 0026F084  80 0D A8 44 */	lwz r0, lbl_8063FB04-_SDA_BASE_(r13)
/* 80273428 0026F088  2C 00 00 00 */	cmpwi r0, 0
/* 8027342C 0026F08C  40 82 00 20 */	bne lbl_8027344C
/* 80273430 0026F090  3C 60 80 43 */	lis r3, lbl_80433C90@ha
/* 80273434 0026F094  3C A0 80 43 */	lis r5, lbl_80433C9C@ha
/* 80273438 0026F098  38 63 3C 90 */	addi r3, r3, lbl_80433C90@l
/* 8027343C 0026F09C  38 80 01 14 */	li r4, 0x114
/* 80273440 0026F0A0  38 A5 3C 9C */	addi r5, r5, lbl_80433C9C@l
/* 80273444 0026F0A4  4C C6 31 82 */	crclr 6
/* 80273448 0026F0A8  4B FF 80 55 */	bl OSPanic
lbl_8027344C:
/* 8027344C 0026F0AC  3C 80 80 51 */	lis r4, lbl_80515220@ha
/* 80273450 0026F0B0  38 00 00 00 */	li r0, 0
/* 80273454 0026F0B4  3C E0 80 51 */	lis r7, lbl_80515240@ha
/* 80273458 0026F0B8  90 04 52 20 */	stw r0, lbl_80515220@l(r4)
/* 8027345C 0026F0BC  38 A4 52 20 */	addi r5, r4, 0x5220
/* 80273460 0026F0C0  80 6D A8 48 */	lwz r3, lbl_8063FB08-_SDA_BASE_(r13)
/* 80273464 0026F0C4  38 E7 52 40 */	addi r7, r7, lbl_80515240@l
/* 80273468 0026F0C8  38 80 20 03 */	li r4, 0x2003
/* 8027346C 0026F0CC  38 C0 00 20 */	li r6, 0x20
/* 80273470 0026F0D0  39 00 00 20 */	li r8, 0x20
/* 80273474 0026F0D4  48 03 06 7D */	bl IOS_Ioctl
/* 80273478 0026F0D8  4B FF B2 E5 */	bl OSDisableInterrupts
/* 8027347C 0026F0DC  4B FF 72 F1 */	bl ICFlashInvalidate
lbl_80273480:
/* 80273480 0026F0E0  48 00 00 00 */	b lbl_80273480

.global __OSHotReset
__OSHotReset:
/* 80273484 0026F0E4  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 80273488 0026F0E8  7C 08 02 A6 */	mflr r0
/* 8027348C 0026F0EC  3C 60 CC 00 */	lis r3, 0xCC002002@ha
/* 80273490 0026F0F0  90 01 00 14 */	stw r0, 0x14(r1)
/* 80273494 0026F0F4  38 00 00 00 */	li r0, 0
/* 80273498 0026F0F8  B0 03 20 02 */	sth r0, 0xCC002002@l(r3)
/* 8027349C 0026F0FC  80 0D A8 44 */	lwz r0, lbl_8063FB04-_SDA_BASE_(r13)
/* 802734A0 0026F100  2C 00 00 00 */	cmpwi r0, 0
/* 802734A4 0026F104  40 82 00 20 */	bne lbl_802734C4
/* 802734A8 0026F108  3C 60 80 43 */	lis r3, lbl_80433C90@ha
/* 802734AC 0026F10C  3C A0 80 43 */	lis r5, lbl_80433CD4@ha
/* 802734B0 0026F110  38 63 3C 90 */	addi r3, r3, lbl_80433C90@l
/* 802734B4 0026F114  38 80 01 54 */	li r4, 0x154
/* 802734B8 0026F118  38 A5 3C D4 */	addi r5, r5, lbl_80433CD4@l
/* 802734BC 0026F11C  4C C6 31 82 */	crclr 6
/* 802734C0 0026F120  4B FF 7F DD */	bl OSPanic
lbl_802734C4:
/* 802734C4 0026F124  3C A0 80 51 */	lis r5, lbl_80515220@ha
/* 802734C8 0026F128  3C E0 80 51 */	lis r7, lbl_80515240@ha
/* 802734CC 0026F12C  80 6D A8 48 */	lwz r3, lbl_8063FB08-_SDA_BASE_(r13)
/* 802734D0 0026F130  38 A5 52 20 */	addi r5, r5, lbl_80515220@l
/* 802734D4 0026F134  38 E7 52 40 */	addi r7, r7, lbl_80515240@l
/* 802734D8 0026F138  38 80 20 01 */	li r4, 0x2001
/* 802734DC 0026F13C  38 C0 00 20 */	li r6, 0x20
/* 802734E0 0026F140  39 00 00 20 */	li r8, 0x20
/* 802734E4 0026F144  48 03 06 0D */	bl IOS_Ioctl
/* 802734E8 0026F148  4B FF B2 75 */	bl OSDisableInterrupts
/* 802734EC 0026F14C  4B FF 72 81 */	bl ICFlashInvalidate
lbl_802734F0:
/* 802734F0 0026F150  48 00 00 00 */	b lbl_802734F0

.global __OSSetVIForceDimming
__OSSetVIForceDimming:
/* 802734F4 0026F154  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 802734F8 0026F158  7C 08 02 A6 */	mflr r0
/* 802734FC 0026F15C  90 01 00 24 */	stw r0, 0x24(r1)
/* 80273500 0026F160  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 80273504 0026F164  7C BF 2B 78 */	mr r31, r5
/* 80273508 0026F168  93 C1 00 18 */	stw r30, 0x18(r1)
/* 8027350C 0026F16C  7C 9E 23 78 */	mr r30, r4
/* 80273510 0026F170  93 A1 00 14 */	stw r29, 0x14(r1)
/* 80273514 0026F174  7C 7D 1B 78 */	mr r29, r3
/* 80273518 0026F178  80 0D A8 44 */	lwz r0, lbl_8063FB04-_SDA_BASE_(r13)
/* 8027351C 0026F17C  2C 00 00 00 */	cmpwi r0, 0
/* 80273520 0026F180  40 82 00 0C */	bne lbl_8027352C
/* 80273524 0026F184  38 60 FF F6 */	li r3, -10
/* 80273528 0026F188  48 00 00 A8 */	b lbl_802735D0
lbl_8027352C:
/* 8027352C 0026F18C  4B FF B2 31 */	bl OSDisableInterrupts
/* 80273530 0026F190  80 0D A8 54 */	lwz r0, lbl_8063FB14-_SDA_BASE_(r13)
/* 80273534 0026F194  2C 00 00 00 */	cmpwi r0, 0
/* 80273538 0026F198  41 82 00 10 */	beq lbl_80273548
/* 8027353C 0026F19C  4B FF B2 49 */	bl OSRestoreInterrupts
/* 80273540 0026F1A0  38 60 00 00 */	li r3, 0
/* 80273544 0026F1A4  48 00 00 8C */	b lbl_802735D0
lbl_80273548:
/* 80273548 0026F1A8  38 00 00 01 */	li r0, 1
/* 8027354C 0026F1AC  90 0D A8 54 */	stw r0, lbl_8063FB14-_SDA_BASE_(r13)
/* 80273550 0026F1B0  4B FF B2 35 */	bl OSRestoreInterrupts
/* 80273554 0026F1B4  57 A0 38 30 */	slwi r0, r29, 7
/* 80273558 0026F1B8  3C 60 80 51 */	lis r3, lbl_80515260@ha
/* 8027355C 0026F1BC  7C 04 FB 78 */	or r4, r0, r31
/* 80273560 0026F1C0  3C E0 80 51 */	lis r7, lbl_80515280@ha
/* 80273564 0026F1C4  57 C0 18 38 */	slwi r0, r30, 3
/* 80273568 0026F1C8  38 A3 52 60 */	addi r5, r3, lbl_80515260@l
/* 8027356C 0026F1CC  39 80 00 00 */	li r12, 0
/* 80273570 0026F1D0  39 60 FF FF */	li r11, -1
/* 80273574 0026F1D4  7C 84 03 78 */	or r4, r4, r0
/* 80273578 0026F1D8  3C 00 FF FF */	lis r0, 0xffff
/* 8027357C 0026F1DC  90 83 52 60 */	stw r4, 0x5260(r3)
/* 80273580 0026F1E0  3D 20 80 27 */	lis r9, __OSVIDimReplyHandler@ha
/* 80273584 0026F1E4  80 6D A8 48 */	lwz r3, lbl_8063FB08-_SDA_BASE_(r13)
/* 80273588 0026F1E8  38 E7 52 80 */	addi r7, r7, lbl_80515280@l
/* 8027358C 0026F1EC  91 85 00 04 */	stw r12, 4(r5)
/* 80273590 0026F1F0  39 29 36 A4 */	addi r9, r9, __OSVIDimReplyHandler@l
/* 80273594 0026F1F4  38 80 50 01 */	li r4, 0x5001
/* 80273598 0026F1F8  38 C0 00 20 */	li r6, 0x20
/* 8027359C 0026F1FC  91 85 00 08 */	stw r12, 8(r5)
/* 802735A0 0026F200  39 00 00 20 */	li r8, 0x20
/* 802735A4 0026F204  39 40 00 00 */	li r10, 0
/* 802735A8 0026F208  91 85 00 0C */	stw r12, 0xc(r5)
/* 802735AC 0026F20C  91 85 00 10 */	stw r12, 0x10(r5)
/* 802735B0 0026F210  91 65 00 14 */	stw r11, 0x14(r5)
/* 802735B4 0026F214  90 05 00 18 */	stw r0, 0x18(r5)
/* 802735B8 0026F218  91 85 00 1C */	stw r12, 0x1c(r5)
/* 802735BC 0026F21C  48 03 03 FD */	bl IOS_IoctlAsync
/* 802735C0 0026F220  2C 03 00 00 */	cmpwi r3, 0
/* 802735C4 0026F224  41 82 00 08 */	beq lbl_802735CC
/* 802735C8 0026F228  48 00 00 08 */	b lbl_802735D0
lbl_802735CC:
/* 802735CC 0026F22C  38 60 00 01 */	li r3, 1
lbl_802735D0:
/* 802735D0 0026F230  80 01 00 24 */	lwz r0, 0x24(r1)
/* 802735D4 0026F234  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 802735D8 0026F238  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 802735DC 0026F23C  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 802735E0 0026F240  7C 08 03 A6 */	mtlr r0
/* 802735E4 0026F244  38 21 00 20 */	addi r1, r1, 0x20
/* 802735E8 0026F248  4E 80 00 20 */	blr

.global __OSSetIdleLEDMode
__OSSetIdleLEDMode:
/* 802735EC 0026F24C  80 0D A8 44 */	lwz r0, lbl_8063FB04-_SDA_BASE_(r13)
/* 802735F0 0026F250  2C 00 00 00 */	cmpwi r0, 0
/* 802735F4 0026F254  40 82 00 0C */	bne lbl_80273600
/* 802735F8 0026F258  38 60 FF FA */	li r3, -6
/* 802735FC 0026F25C  4E 80 00 20 */	blr
lbl_80273600:
/* 80273600 0026F260  3C 80 80 51 */	lis r4, lbl_80515220@ha
/* 80273604 0026F264  3C E0 80 51 */	lis r7, lbl_80515240@ha
/* 80273608 0026F268  90 64 52 20 */	stw r3, lbl_80515220@l(r4)
/* 8027360C 0026F26C  38 A4 52 20 */	addi r5, r4, 0x5220
/* 80273610 0026F270  80 6D A8 48 */	lwz r3, lbl_8063FB08-_SDA_BASE_(r13)
/* 80273614 0026F274  38 E7 52 40 */	addi r7, r7, lbl_80515240@l
/* 80273618 0026F278  38 80 60 02 */	li r4, 0x6002
/* 8027361C 0026F27C  38 C0 00 20 */	li r6, 0x20
/* 80273620 0026F280  39 00 00 20 */	li r8, 0x20
/* 80273624 0026F284  48 03 04 CC */	b IOS_Ioctl
/* 80273628 0026F288  4E 80 00 20 */	blr

.global __OSUnRegisterStateEvent
__OSUnRegisterStateEvent:
/* 8027362C 0026F28C  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 80273630 0026F290  7C 08 02 A6 */	mflr r0
/* 80273634 0026F294  90 01 00 14 */	stw r0, 0x14(r1)
/* 80273638 0026F298  80 0D A8 50 */	lwz r0, lbl_8063FB10-_SDA_BASE_(r13)
/* 8027363C 0026F29C  2C 00 00 00 */	cmpwi r0, 0
/* 80273640 0026F2A0  40 82 00 0C */	bne lbl_8027364C
/* 80273644 0026F2A4  38 60 00 00 */	li r3, 0
/* 80273648 0026F2A8  48 00 00 4C */	b lbl_80273694
lbl_8027364C:
/* 8027364C 0026F2AC  80 0D A8 44 */	lwz r0, lbl_8063FB04-_SDA_BASE_(r13)
/* 80273650 0026F2B0  2C 00 00 00 */	cmpwi r0, 0
/* 80273654 0026F2B4  40 82 00 0C */	bne lbl_80273660
/* 80273658 0026F2B8  38 60 FF FA */	li r3, -6
/* 8027365C 0026F2BC  48 00 00 38 */	b lbl_80273694
lbl_80273660:
/* 80273660 0026F2C0  3C A0 80 51 */	lis r5, lbl_80515220@ha
/* 80273664 0026F2C4  3C E0 80 51 */	lis r7, lbl_80515240@ha
/* 80273668 0026F2C8  80 6D A8 48 */	lwz r3, lbl_8063FB08-_SDA_BASE_(r13)
/* 8027366C 0026F2CC  38 A5 52 20 */	addi r5, r5, lbl_80515220@l
/* 80273670 0026F2D0  38 E7 52 40 */	addi r7, r7, lbl_80515240@l
/* 80273674 0026F2D4  38 80 30 02 */	li r4, 0x3002
/* 80273678 0026F2D8  38 C0 00 20 */	li r6, 0x20
/* 8027367C 0026F2DC  39 00 00 20 */	li r8, 0x20
/* 80273680 0026F2E0  48 03 04 71 */	bl IOS_Ioctl
/* 80273684 0026F2E4  2C 03 00 00 */	cmpwi r3, 0
/* 80273688 0026F2E8  40 82 00 0C */	bne lbl_80273694
/* 8027368C 0026F2EC  38 00 00 00 */	li r0, 0
/* 80273690 0026F2F0  90 0D A8 50 */	stw r0, lbl_8063FB10-_SDA_BASE_(r13)
lbl_80273694:
/* 80273694 0026F2F4  80 01 00 14 */	lwz r0, 0x14(r1)
/* 80273698 0026F2F8  7C 08 03 A6 */	mtlr r0
/* 8027369C 0026F2FC  38 21 00 10 */	addi r1, r1, 0x10
/* 802736A0 0026F300  4E 80 00 20 */	blr

.global __OSVIDimReplyHandler
__OSVIDimReplyHandler:
/* 802736A4 0026F304  38 00 00 00 */	li r0, 0
/* 802736A8 0026F308  38 60 00 00 */	li r3, 0
/* 802736AC 0026F30C  90 0D A8 54 */	stw r0, lbl_8063FB14-_SDA_BASE_(r13)
/* 802736B0 0026F310  4E 80 00 20 */	blr

.global __OSDefaultResetCallback
__OSDefaultResetCallback:
/* 802736B4 0026F314  4E 80 00 20 */	blr

.global __OSDefaultPowerCallback
__OSDefaultPowerCallback:
/* 802736B8 0026F318  4E 80 00 20 */	blr

.global __OSStateEventHandler
__OSStateEventHandler:
/* 802736BC 0026F31C  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 802736C0 0026F320  7C 08 02 A6 */	mflr r0
/* 802736C4 0026F324  2C 03 00 00 */	cmpwi r3, 0
/* 802736C8 0026F328  90 01 00 14 */	stw r0, 0x14(r1)
/* 802736CC 0026F32C  93 E1 00 0C */	stw r31, 0xc(r1)
/* 802736D0 0026F330  41 82 00 20 */	beq lbl_802736F0
/* 802736D4 0026F334  3C 60 80 43 */	lis r3, lbl_80433C90@ha
/* 802736D8 0026F338  3C A0 80 43 */	lis r5, lbl_80433D0C@ha
/* 802736DC 0026F33C  38 63 3C 90 */	addi r3, r3, lbl_80433C90@l
/* 802736E0 0026F340  38 80 02 EC */	li r4, 0x2ec
/* 802736E4 0026F344  38 A5 3D 0C */	addi r5, r5, lbl_80433D0C@l
/* 802736E8 0026F348  4C C6 31 82 */	crclr 6
/* 802736EC 0026F34C  4B FF 7D B1 */	bl OSPanic
lbl_802736F0:
/* 802736F0 0026F350  3C 60 80 51 */	lis r3, lbl_80515200@ha
/* 802736F4 0026F354  38 00 00 00 */	li r0, 0
/* 802736F8 0026F358  80 63 52 00 */	lwz r3, lbl_80515200@l(r3)
/* 802736FC 0026F35C  90 0D A8 50 */	stw r0, lbl_8063FB10-_SDA_BASE_(r13)
/* 80273700 0026F360  3C 03 FF FE */	addis r0, r3, 0xfffe
/* 80273704 0026F364  28 00 00 00 */	cmplwi r0, 0
/* 80273708 0026F368  40 82 00 B4 */	bne lbl_802737BC
/* 8027370C 0026F36C  3C 60 CC 00 */	lis r3, 0xCC003000@ha
/* 80273710 0026F370  80 03 30 00 */	lwz r0, 0xCC003000@l(r3)
/* 80273714 0026F374  54 00 03 DF */	rlwinm. r0, r0, 0, 0xf, 0xf
/* 80273718 0026F378  40 82 00 0C */	bne lbl_80273724
/* 8027371C 0026F37C  38 00 00 01 */	li r0, 1
/* 80273720 0026F380  48 00 00 08 */	b lbl_80273728
lbl_80273724:
/* 80273724 0026F384  38 00 00 00 */	li r0, 0
lbl_80273728:
/* 80273728 0026F388  2C 00 00 00 */	cmpwi r0, 0
/* 8027372C 0026F38C  41 82 00 34 */	beq lbl_80273760
/* 80273730 0026F390  4B FF B0 2D */	bl OSDisableInterrupts
/* 80273734 0026F394  3C 80 80 27 */	lis r4, __OSDefaultResetCallback@ha
/* 80273738 0026F398  81 8D A8 5C */	lwz r12, lbl_8063FB1C-_SDA_BASE_(r13)
/* 8027373C 0026F39C  38 84 36 B4 */	addi r4, r4, __OSDefaultResetCallback@l
/* 80273740 0026F3A0  38 00 00 01 */	li r0, 1
/* 80273744 0026F3A4  7C 7F 1B 78 */	mr r31, r3
/* 80273748 0026F3A8  90 0D A8 40 */	stw r0, lbl_8063FB00-_SDA_BASE_(r13)
/* 8027374C 0026F3AC  90 8D A8 5C */	stw r4, lbl_8063FB1C-_SDA_BASE_(r13)
/* 80273750 0026F3B0  7D 89 03 A6 */	mtctr r12
/* 80273754 0026F3B4  4E 80 04 21 */	bctrl
/* 80273758 0026F3B8  7F E3 FB 78 */	mr r3, r31
/* 8027375C 0026F3BC  4B FF B0 29 */	bl OSRestoreInterrupts
lbl_80273760:
/* 80273760 0026F3C0  4B FF AF FD */	bl OSDisableInterrupts
/* 80273764 0026F3C4  7C 7F 1B 78 */	mr r31, r3
/* 80273768 0026F3C8  3C A0 80 51 */	lis r5, lbl_805151E0@ha
/* 8027376C 0026F3CC  3C E0 80 51 */	lis r7, lbl_80515200@ha
/* 80273770 0026F3D0  3D 20 80 27 */	lis r9, __OSStateEventHandler@ha
/* 80273774 0026F3D4  80 6D A8 4C */	lwz r3, lbl_8063FB0C-_SDA_BASE_(r13)
/* 80273778 0026F3D8  38 A5 51 E0 */	addi r5, r5, lbl_805151E0@l
/* 8027377C 0026F3DC  38 E7 52 00 */	addi r7, r7, lbl_80515200@l
/* 80273780 0026F3E0  39 29 36 BC */	addi r9, r9, __OSStateEventHandler@l
/* 80273784 0026F3E4  38 80 10 00 */	li r4, 0x1000
/* 80273788 0026F3E8  38 C0 00 20 */	li r6, 0x20
/* 8027378C 0026F3EC  39 00 00 20 */	li r8, 0x20
/* 80273790 0026F3F0  39 40 00 00 */	li r10, 0
/* 80273794 0026F3F4  48 03 02 25 */	bl IOS_IoctlAsync
/* 80273798 0026F3F8  2C 03 00 00 */	cmpwi r3, 0
/* 8027379C 0026F3FC  40 82 00 10 */	bne lbl_802737AC
/* 802737A0 0026F400  38 00 00 01 */	li r0, 1
/* 802737A4 0026F404  90 0D A8 50 */	stw r0, lbl_8063FB10-_SDA_BASE_(r13)
/* 802737A8 0026F408  48 00 00 0C */	b lbl_802737B4
lbl_802737AC:
/* 802737AC 0026F40C  38 00 00 00 */	li r0, 0
/* 802737B0 0026F410  90 0D A8 50 */	stw r0, lbl_8063FB10-_SDA_BASE_(r13)
lbl_802737B4:
/* 802737B4 0026F414  7F E3 FB 78 */	mr r3, r31
/* 802737B8 0026F418  4B FF AF CD */	bl OSRestoreInterrupts
lbl_802737BC:
/* 802737BC 0026F41C  3C 60 80 51 */	lis r3, lbl_80515200@ha
/* 802737C0 0026F420  80 03 52 00 */	lwz r0, lbl_80515200@l(r3)
/* 802737C4 0026F424  28 00 08 00 */	cmplwi r0, 0x800
/* 802737C8 0026F428  40 82 00 2C */	bne lbl_802737F4
/* 802737CC 0026F42C  4B FF AF 91 */	bl OSDisableInterrupts
/* 802737D0 0026F430  3C 80 80 27 */	lis r4, __OSDefaultPowerCallback@ha
/* 802737D4 0026F434  81 8D A8 58 */	lwz r12, lbl_8063FB18-_SDA_BASE_(r13)
/* 802737D8 0026F438  38 84 36 B8 */	addi r4, r4, __OSDefaultPowerCallback@l
/* 802737DC 0026F43C  7C 7F 1B 78 */	mr r31, r3
/* 802737E0 0026F440  90 8D A8 58 */	stw r4, lbl_8063FB18-_SDA_BASE_(r13)
/* 802737E4 0026F444  7D 89 03 A6 */	mtctr r12
/* 802737E8 0026F448  4E 80 04 21 */	bctrl
/* 802737EC 0026F44C  7F E3 FB 78 */	mr r3, r31
/* 802737F0 0026F450  4B FF AF 95 */	bl OSRestoreInterrupts
lbl_802737F4:
/* 802737F4 0026F454  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 802737F8 0026F458  38 60 00 00 */	li r3, 0
/* 802737FC 0026F45C  80 01 00 14 */	lwz r0, 0x14(r1)
/* 80273800 0026F460  7C 08 03 A6 */	mtlr r0
/* 80273804 0026F464  38 21 00 10 */	addi r1, r1, 0x10
/* 80273808 0026F468  4E 80 00 20 */	blr