summaryrefslogtreecommitdiff
path: root/asm/SDK/IPC/ipcMain.s
blob: 783c5c4d62ddd89044452ff744981ef3e7961af0 (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
.include "macros.inc"

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

.global IPCInit
IPCInit:
/* 802A2880 0029E4E0  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 802A2884 0029E4E4  7C 08 02 A6 */	mflr r0
/* 802A2888 0029E4E8  90 01 00 14 */	stw r0, 0x14(r1)
/* 802A288C 0029E4EC  88 0D AD E8 */	lbz r0, lbl_806400A8-_SDA_BASE_(r13)
/* 802A2890 0029E4F0  2C 00 00 00 */	cmpwi r0, 0
/* 802A2894 0029E4F4  40 82 00 28 */	bne lbl_802A28BC
/* 802A2898 0029E4F8  4B FD 08 0D */	bl __OSGetIPCBufferHi
/* 802A289C 0029E4FC  90 6D AD F8 */	stw r3, lbl_806400B8-_SDA_BASE_(r13)
/* 802A28A0 0029E500  4B FD 08 0D */	bl __OSGetIPCBufferLo
/* 802A28A4 0029E504  80 8D AD F8 */	lwz r4, lbl_806400B8-_SDA_BASE_(r13)
/* 802A28A8 0029E508  38 00 00 01 */	li r0, 1
/* 802A28AC 0029E50C  90 6D AD F4 */	stw r3, lbl_806400B4-_SDA_BASE_(r13)
/* 802A28B0 0029E510  90 8D AD F0 */	stw r4, lbl_806400B0-_SDA_BASE_(r13)
/* 802A28B4 0029E514  90 6D AD EC */	stw r3, lbl_806400AC-_SDA_BASE_(r13)
/* 802A28B8 0029E518  98 0D AD E8 */	stb r0, lbl_806400A8-_SDA_BASE_(r13)
lbl_802A28BC:
/* 802A28BC 0029E51C  80 01 00 14 */	lwz r0, 0x14(r1)
/* 802A28C0 0029E520  7C 08 03 A6 */	mtlr r0
/* 802A28C4 0029E524  38 21 00 10 */	addi r1, r1, 0x10
/* 802A28C8 0029E528  4E 80 00 20 */	blr

.global IPCReadReg
IPCReadReg:
/* 802A28CC 0029E52C  54 60 10 3A */	slwi r0, r3, 2
/* 802A28D0 0029E530  3C 60 CD 00 */	lis r3, 0xcd00
/* 802A28D4 0029E534  7C 63 00 2E */	lwzx r3, r3, r0
/* 802A28D8 0029E538  4E 80 00 20 */	blr

.global IPCWriteReg
IPCWriteReg:
/* 802A28DC 0029E53C  54 60 10 3A */	slwi r0, r3, 2
/* 802A28E0 0029E540  3C 60 CD 00 */	lis r3, 0xcd00
/* 802A28E4 0029E544  7C 83 01 2E */	stwx r4, r3, r0
/* 802A28E8 0029E548  4E 80 00 20 */	blr

.global IPCGetBufferHi
IPCGetBufferHi:
/* 802A28EC 0029E54C  80 6D AD F0 */	lwz r3, lbl_806400B0-_SDA_BASE_(r13)
/* 802A28F0 0029E550  4E 80 00 20 */	blr

.global IPCGetBufferLo
IPCGetBufferLo:
/* 802A28F4 0029E554  80 6D AD EC */	lwz r3, lbl_806400AC-_SDA_BASE_(r13)
/* 802A28F8 0029E558  4E 80 00 20 */	blr

.global IPCSetBufferLo
IPCSetBufferLo:
/* 802A28FC 0029E55C  90 6D AD EC */	stw r3, lbl_806400AC-_SDA_BASE_(r13)
/* 802A2900 0029E560  4E 80 00 20 */	blr