donut-decomp/asm/bte/port_utils.s

560 lines
23 KiB
ArmAsm
Raw Permalink Normal View History

2022-10-16 16:05:58 +00:00
.include "macros.inc"
.section .text, "ax" # 0x80006A00 - 0x80406260 ; 0x003FF860
2022-10-16 16:31:36 +00:00
.global port_select_mtu
port_select_mtu:
2022-10-16 16:05:58 +00:00
/* 80097750 00093590 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80097754 00093594 7C 08 02 A6 */ mflr r0
/* 80097758 00093598 90 01 00 14 */ stw r0, 0x14(r1)
/* 8009775C 0009359C 93 E1 00 0C */ stw r31, 0xc(r1)
2022-10-16 16:31:36 +00:00
/* 80097760 000935A0 3F E0 80 44 */ lis r31, "@1174_8043EF80"@ha
/* 80097764 000935A4 3B FF EF 80 */ addi r31, r31, "@1174_8043EF80"@l
2022-10-16 16:05:58 +00:00
/* 80097768 000935A8 93 C1 00 08 */ stw r30, 0x8(r1)
/* 8009776C 000935AC 7C 7E 1B 78 */ mr r30, r3
/* 80097770 000935B0 A0 A3 00 12 */ lhz r5, 0x12(r3)
/* 80097774 000935B4 2C 05 00 00 */ cmpwi r5, 0x0
/* 80097778 000935B8 40 82 00 C0 */ bne lbl_80097838
/* 8009777C 000935BC 38 63 00 06 */ addi r3, r3, 0x6
2022-10-16 16:31:36 +00:00
/* 80097780 000935C0 4B FE 79 65 */ bl btm_get_max_packet_size
2022-10-16 16:05:58 +00:00
/* 80097784 000935C4 54 65 04 3F */ clrlwi. r5, r3, 16
/* 80097788 000935C8 40 82 00 34 */ bne lbl_800977BC
2022-10-16 16:31:36 +00:00
/* 8009778C 000935CC 3C 60 80 50 */ lis r3, rfc_cb@ha
/* 80097790 000935D0 38 63 98 08 */ addi r3, r3, rfc_cb@l
2022-10-16 16:05:58 +00:00
/* 80097794 000935D4 88 03 04 14 */ lbz r0, 0x414(r3)
/* 80097798 000935D8 28 00 00 02 */ cmplwi r0, 0x2
/* 8009779C 000935DC 41 80 00 14 */ blt lbl_800977B0
/* 800977A0 000935E0 3C 60 00 09 */ lis r3, 0x9
/* 800977A4 000935E4 38 9F 00 00 */ addi r4, r31, 0x0
/* 800977A8 000935E8 38 63 00 01 */ addi r3, r3, 0x1
2022-10-16 16:31:36 +00:00
/* 800977AC 000935EC 4B FE 01 B5 */ bl LogMsg_0
2022-10-16 16:05:58 +00:00
.global lbl_800977B0
lbl_800977B0:
/* 800977B0 000935F0 38 00 00 7F */ li r0, 0x7f
/* 800977B4 000935F4 B0 1E 00 12 */ sth r0, 0x12(r30)
/* 800977B8 000935F8 48 00 00 A4 */ b lbl_8009785C
.global lbl_800977BC
lbl_800977BC:
/* 800977BC 000935FC 28 05 06 9F */ cmplwi r5, 0x69f
/* 800977C0 00093600 41 81 00 44 */ bgt lbl_80097804
/* 800977C4 00093604 38 00 06 9F */ li r0, 0x69f
2022-10-16 16:31:36 +00:00
/* 800977C8 00093608 3C 80 80 50 */ lis r4, rfc_cb@ha
2022-10-16 16:05:58 +00:00
/* 800977CC 0009360C 7C 00 2B D6 */ divw r0, r0, r5
2022-10-16 16:31:36 +00:00
/* 800977D0 00093610 38 84 98 08 */ addi r4, r4, rfc_cb@l
2022-10-16 16:05:58 +00:00
/* 800977D4 00093614 7C 60 19 D6 */ mullw r3, r0, r3
/* 800977D8 00093618 38 A3 FF F6 */ addi r5, r3, -0xa
/* 800977DC 0009361C B0 BE 00 12 */ sth r5, 0x12(r30)
/* 800977E0 00093620 88 04 04 14 */ lbz r0, 0x414(r4)
/* 800977E4 00093624 28 00 00 05 */ cmplwi r0, 0x5
/* 800977E8 00093628 41 80 00 74 */ blt lbl_8009785C
/* 800977EC 0009362C 3C 60 00 09 */ lis r3, 0x9
/* 800977F0 00093630 38 9F 00 20 */ addi r4, r31, 0x20
/* 800977F4 00093634 38 63 00 04 */ addi r3, r3, 0x4
/* 800977F8 00093638 54 A5 04 3E */ clrlwi r5, r5, 16
2022-10-16 16:31:36 +00:00
/* 800977FC 0009363C 4B FE 01 65 */ bl LogMsg_0
2022-10-16 16:05:58 +00:00
/* 80097800 00093640 48 00 00 5C */ b lbl_8009785C
.global lbl_80097804
lbl_80097804:
/* 80097804 00093644 38 00 06 95 */ li r0, 0x695
2022-10-16 16:31:36 +00:00
/* 80097808 00093648 3C 60 80 50 */ lis r3, rfc_cb@ha
2022-10-16 16:05:58 +00:00
/* 8009780C 0009364C B0 1E 00 12 */ sth r0, 0x12(r30)
2022-10-16 16:31:36 +00:00
/* 80097810 00093650 38 63 98 08 */ addi r3, r3, rfc_cb@l
2022-10-16 16:05:58 +00:00
/* 80097814 00093654 88 03 04 14 */ lbz r0, 0x414(r3)
/* 80097818 00093658 28 00 00 05 */ cmplwi r0, 0x5
/* 8009781C 0009365C 41 80 00 40 */ blt lbl_8009785C
/* 80097820 00093660 3C 60 00 09 */ lis r3, 0x9
/* 80097824 00093664 38 9F 00 58 */ addi r4, r31, 0x58
/* 80097828 00093668 38 63 00 04 */ addi r3, r3, 0x4
/* 8009782C 0009366C 38 A0 06 95 */ li r5, 0x695
2022-10-16 16:31:36 +00:00
/* 80097830 00093670 4B FE 01 31 */ bl LogMsg_0
2022-10-16 16:05:58 +00:00
/* 80097834 00093674 48 00 00 28 */ b lbl_8009785C
.global lbl_80097838
lbl_80097838:
2022-10-16 16:31:36 +00:00
/* 80097838 00093678 3C 60 80 50 */ lis r3, rfc_cb@ha
/* 8009783C 0009367C 38 63 98 08 */ addi r3, r3, rfc_cb@l
2022-10-16 16:05:58 +00:00
/* 80097840 00093680 88 03 04 14 */ lbz r0, 0x414(r3)
/* 80097844 00093684 28 00 00 05 */ cmplwi r0, 0x5
/* 80097848 00093688 41 80 00 14 */ blt lbl_8009785C
/* 8009784C 0009368C 3C 60 00 09 */ lis r3, 0x9
/* 80097850 00093690 38 9F 00 90 */ addi r4, r31, 0x90
/* 80097854 00093694 38 63 00 04 */ addi r3, r3, 0x4
2022-10-16 16:31:36 +00:00
/* 80097858 00093698 4B FE 01 09 */ bl LogMsg_0
2022-10-16 16:05:58 +00:00
.global lbl_8009785C
lbl_8009785C:
/* 8009785C 0009369C A0 FE 00 12 */ lhz r7, 0x12(r30)
/* 80097860 000936A0 38 60 1F 40 */ li r3, 0x1f40
/* 80097864 000936A4 38 80 13 88 */ li r4, 0x1388
/* 80097868 000936A8 38 00 2E E0 */ li r0, 0x2ee0
/* 8009786C 000936AC 7C A3 3B D6 */ divw r5, r3, r7
2022-10-16 16:31:36 +00:00
/* 80097870 000936B0 3C 60 80 50 */ lis r3, rfc_cb@ha
/* 80097874 000936B4 38 63 98 08 */ addi r3, r3, rfc_cb@l
2022-10-16 16:05:58 +00:00
/* 80097878 000936B8 7C C4 3B D6 */ divw r6, r4, r7
/* 8009787C 000936BC B0 BE 00 9C */ sth r5, 0x9c(r30)
/* 80097880 000936C0 7C E0 3B D6 */ divw r7, r0, r7
/* 80097884 000936C4 B0 DE 00 9E */ sth r6, 0x9e(r30)
/* 80097888 000936C8 B0 FE 00 A0 */ sth r7, 0xa0(r30)
/* 8009788C 000936CC 88 03 04 14 */ lbz r0, 0x414(r3)
/* 80097890 000936D0 28 00 00 05 */ cmplwi r0, 0x5
/* 80097894 000936D4 41 80 00 20 */ blt lbl_800978B4
/* 80097898 000936D8 3C 60 00 09 */ lis r3, 0x9
/* 8009789C 000936DC 38 9F 00 B8 */ addi r4, r31, 0xb8
/* 800978A0 000936E0 38 63 00 04 */ addi r3, r3, 0x4
/* 800978A4 000936E4 54 A5 04 3E */ clrlwi r5, r5, 16
/* 800978A8 000936E8 54 C6 04 3E */ clrlwi r6, r6, 16
/* 800978AC 000936EC 54 E7 04 3E */ clrlwi r7, r7, 16
2022-10-16 16:31:36 +00:00
/* 800978B0 000936F0 4B FE 00 B1 */ bl LogMsg_0
2022-10-16 16:05:58 +00:00
.global lbl_800978B4
lbl_800978B4:
/* 800978B4 000936F4 80 01 00 14 */ lwz r0, 0x14(r1)
/* 800978B8 000936F8 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 800978BC 000936FC 83 C1 00 08 */ lwz r30, 0x8(r1)
/* 800978C0 00093700 7C 08 03 A6 */ mtlr r0
/* 800978C4 00093704 38 21 00 10 */ addi r1, r1, 0x10
/* 800978C8 00093708 4E 80 00 20 */ blr
2022-10-16 16:31:36 +00:00
.global port_release_port
port_release_port:
2022-10-16 16:05:58 +00:00
/* 800978CC 0009370C 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 800978D0 00093710 7C 08 02 A6 */ mflr r0
/* 800978D4 00093714 90 01 00 14 */ stw r0, 0x14(r1)
/* 800978D8 00093718 93 E1 00 0C */ stw r31, 0xc(r1)
/* 800978DC 0009371C 7C 7F 1B 78 */ mr r31, r3
/* 800978E0 00093720 48 00 00 08 */ b lbl_800978E8
.global lbl_800978E4
lbl_800978E4:
2022-10-16 16:31:36 +00:00
/* 800978E4 00093724 4B FD D6 2D */ bl GKI_freebuf
2022-10-16 16:05:58 +00:00
.global lbl_800978E8
lbl_800978E8:
/* 800978E8 00093728 38 7F 00 30 */ addi r3, r31, 0x30
2022-10-16 16:31:36 +00:00
/* 800978EC 0009372C 4B FD DC D5 */ bl GKI_dequeue
2022-10-16 16:05:58 +00:00
/* 800978F0 00093730 2C 03 00 00 */ cmpwi r3, 0x0
/* 800978F4 00093734 40 82 FF F0 */ bne lbl_800978E4
/* 800978F8 00093738 38 00 00 00 */ li r0, 0x0
/* 800978FC 0009373C 90 1F 00 40 */ stw r0, 0x40(r31)
/* 80097900 00093740 48 00 00 08 */ b lbl_80097908
.global lbl_80097904
lbl_80097904:
2022-10-16 16:31:36 +00:00
/* 80097904 00093744 4B FD D6 0D */ bl GKI_freebuf
2022-10-16 16:05:58 +00:00
.global lbl_80097908
lbl_80097908:
/* 80097908 00093748 38 7F 00 18 */ addi r3, r31, 0x18
2022-10-16 16:31:36 +00:00
/* 8009790C 0009374C 4B FD DC B5 */ bl GKI_dequeue
2022-10-16 16:05:58 +00:00
/* 80097910 00093750 2C 03 00 00 */ cmpwi r3, 0x0
/* 80097914 00093754 40 82 FF F0 */ bne lbl_80097904
/* 80097918 00093758 88 1F 00 68 */ lbz r0, 0x68(r31)
/* 8009791C 0009375C 38 60 00 00 */ li r3, 0x0
/* 80097920 00093760 90 7F 00 28 */ stw r3, 0x28(r31)
/* 80097924 00093764 2C 00 00 00 */ cmpwi r0, 0x0
/* 80097928 00093768 98 7F 00 02 */ stb r3, 0x2(r31)
/* 8009792C 0009376C 40 82 00 68 */ bne lbl_80097994
2022-10-16 16:31:36 +00:00
/* 80097930 00093770 3C 60 80 50 */ lis r3, rfc_cb@ha
/* 80097934 00093774 38 63 98 08 */ addi r3, r3, rfc_cb@l
2022-10-16 16:05:58 +00:00
/* 80097938 00093778 88 03 04 14 */ lbz r0, 0x414(r3)
/* 8009793C 0009377C 28 00 00 05 */ cmplwi r0, 0x5
/* 80097940 00093780 41 80 00 18 */ blt lbl_80097958
/* 80097944 00093784 3C 60 00 09 */ lis r3, 0x9
2022-10-16 16:31:36 +00:00
/* 80097948 00093788 3C 80 80 44 */ lis r4, "@1192"@ha
2022-10-16 16:05:58 +00:00
/* 8009794C 0009378C 38 63 00 04 */ addi r3, r3, 0x4
2022-10-16 16:31:36 +00:00
/* 80097950 00093790 38 84 F0 80 */ addi r4, r4, "@1192"@l
/* 80097954 00093794 4B FE 00 0D */ bl LogMsg_0
2022-10-16 16:05:58 +00:00
.global lbl_80097958
lbl_80097958:
/* 80097958 00093798 80 7F 00 6C */ lwz r3, 0x6c(r31)
/* 8009795C 0009379C 2C 03 00 00 */ cmpwi r3, 0x0
/* 80097960 000937A0 41 82 00 1C */ beq lbl_8009797C
/* 80097964 000937A4 88 1F 00 0D */ lbz r0, 0xd(r31)
/* 80097968 000937A8 38 80 00 00 */ li r4, 0x0
/* 8009796C 000937AC 7C 63 02 14 */ add r3, r3, r0
/* 80097970 000937B0 98 83 00 24 */ stb r4, 0x24(r3)
/* 80097974 000937B4 80 7F 00 6C */ lwz r3, 0x6c(r31)
2022-10-16 16:31:36 +00:00
/* 80097978 000937B8 48 00 4A 41 */ bl rfc_check_mcb_active
2022-10-16 16:05:58 +00:00
.global lbl_8009797C
lbl_8009797C:
/* 8009797C 000937BC 7F E3 FB 78 */ mr r3, r31
2022-10-16 16:31:36 +00:00
/* 80097980 000937C0 48 00 49 E1 */ bl rfc_port_timer_stop
2022-10-16 16:05:58 +00:00
/* 80097984 000937C4 7F E3 FB 78 */ mr r3, r31
/* 80097988 000937C8 38 80 00 00 */ li r4, 0x0
/* 8009798C 000937CC 38 A0 00 A4 */ li r5, 0xa4
2022-10-16 16:31:36 +00:00
/* 80097990 000937D0 4B F6 C9 C1 */ bl memset
2022-10-16 16:05:58 +00:00
.global lbl_80097994
lbl_80097994:
/* 80097994 000937D4 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80097998 000937D8 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8009799C 000937DC 7C 08 03 A6 */ mtlr r0
/* 800979A0 000937E0 38 21 00 10 */ addi r1, r1, 0x10
/* 800979A4 000937E4 4E 80 00 20 */ blr
2022-10-16 16:31:36 +00:00
.global port_find_mcb_dlci_port
port_find_mcb_dlci_port:
2022-10-16 16:05:58 +00:00
/* 800979A8 000937E8 2C 03 00 00 */ cmpwi r3, 0x0
/* 800979AC 000937EC 40 82 00 0C */ bne lbl_800979B8
/* 800979B0 000937F0 38 60 00 00 */ li r3, 0x0
/* 800979B4 000937F4 4E 80 00 20 */ blr
.global lbl_800979B8
lbl_800979B8:
/* 800979B8 000937F8 28 04 00 3D */ cmplwi r4, 0x3d
/* 800979BC 000937FC 40 81 00 0C */ ble lbl_800979C8
/* 800979C0 00093800 38 60 00 00 */ li r3, 0x0
/* 800979C4 00093804 4E 80 00 20 */ blr
.global lbl_800979C8
lbl_800979C8:
/* 800979C8 00093808 7C 63 22 14 */ add r3, r3, r4
/* 800979CC 0009380C 88 63 00 24 */ lbz r3, 0x24(r3)
/* 800979D0 00093810 2C 03 00 00 */ cmpwi r3, 0x0
/* 800979D4 00093814 40 82 00 0C */ bne lbl_800979E0
/* 800979D8 00093818 38 60 00 00 */ li r3, 0x0
/* 800979DC 0009381C 4E 80 00 20 */ blr
.global lbl_800979E0
lbl_800979E0:
/* 800979E0 00093820 38 03 FF FF */ addi r0, r3, -0x1
2022-10-16 16:31:36 +00:00
/* 800979E4 00093824 3C 60 80 50 */ lis r3, rfc_cb@ha
2022-10-16 16:05:58 +00:00
/* 800979E8 00093828 1C 00 00 A4 */ mulli r0, r0, 0xa4
2022-10-16 16:31:36 +00:00
/* 800979EC 0009382C 38 63 98 08 */ addi r3, r3, rfc_cb@l
2022-10-16 16:05:58 +00:00
/* 800979F0 00093830 7C 63 02 14 */ add r3, r3, r0
/* 800979F4 00093834 38 63 00 68 */ addi r3, r3, 0x68
/* 800979F8 00093838 4E 80 00 20 */ blr
2022-10-16 16:31:36 +00:00
.global port_find_dlci_port
port_find_dlci_port:
/* 800979FC 0009383C 3C A0 80 50 */ lis r5, rfc_cb@ha
2022-10-16 16:05:58 +00:00
/* 80097A00 00093840 38 00 00 05 */ li r0, 0x5
/* 80097A04 00093844 54 66 07 FE */ clrlwi r6, r3, 31
/* 80097A08 00093848 38 E3 FF FF */ addi r7, r3, -0x1
2022-10-16 16:31:36 +00:00
/* 80097A0C 0009384C 38 A5 98 08 */ addi r5, r5, rfc_cb@l
2022-10-16 16:05:58 +00:00
/* 80097A10 00093850 39 00 00 00 */ li r8, 0x0
/* 80097A14 00093854 7C 09 03 A6 */ mtctr r0
.global lbl_80097A18
lbl_80097A18:
/* 80097A18 00093858 55 00 04 3E */ clrlwi r0, r8, 16
/* 80097A1C 0009385C 1C 00 00 A4 */ mulli r0, r0, 0xa4
/* 80097A20 00093860 7C 85 02 14 */ add r4, r5, r0
/* 80097A24 00093864 88 04 00 69 */ lbz r0, 0x69(r4)
/* 80097A28 00093868 39 24 00 68 */ addi r9, r4, 0x68
/* 80097A2C 0009386C 2C 00 00 00 */ cmpwi r0, 0x0
/* 80097A30 00093870 41 82 00 44 */ beq lbl_80097A74
/* 80097A34 00093874 80 09 00 6C */ lwz r0, 0x6c(r9)
/* 80097A38 00093878 2C 00 00 00 */ cmpwi r0, 0x0
/* 80097A3C 0009387C 40 82 00 38 */ bne lbl_80097A74
/* 80097A40 00093880 88 89 00 0D */ lbz r4, 0xd(r9)
/* 80097A44 00093884 7C 04 18 40 */ cmplw r4, r3
/* 80097A48 00093888 40 82 00 0C */ bne lbl_80097A54
/* 80097A4C 0009388C 7D 23 4B 78 */ mr r3, r9
/* 80097A50 00093890 4E 80 00 20 */ blr
.global lbl_80097A54
lbl_80097A54:
/* 80097A54 00093894 2C 06 00 00 */ cmpwi r6, 0x0
/* 80097A58 00093898 41 82 00 1C */ beq lbl_80097A74
/* 80097A5C 0009389C 7C 04 38 00 */ cmpw r4, r7
/* 80097A60 000938A0 40 82 00 14 */ bne lbl_80097A74
/* 80097A64 000938A4 38 04 00 01 */ addi r0, r4, 0x1
/* 80097A68 000938A8 7D 23 4B 78 */ mr r3, r9
/* 80097A6C 000938AC 98 09 00 0D */ stb r0, 0xd(r9)
/* 80097A70 000938B0 4E 80 00 20 */ blr
.global lbl_80097A74
lbl_80097A74:
/* 80097A74 000938B4 39 08 00 01 */ addi r8, r8, 0x1
/* 80097A78 000938B8 42 00 FF A0 */ bdnz lbl_80097A18
/* 80097A7C 000938BC 38 60 00 00 */ li r3, 0x0
/* 80097A80 000938C0 4E 80 00 20 */ blr
2022-10-16 16:31:36 +00:00
.global port_flow_control_user
port_flow_control_user:
2022-10-16 16:05:58 +00:00
/* 80097A84 000938C4 88 03 00 24 */ lbz r0, 0x24(r3)
/* 80097A88 000938C8 38 A0 00 00 */ li r5, 0x0
/* 80097A8C 000938CC 2C 00 00 00 */ cmpwi r0, 0x0
/* 80097A90 000938D0 40 82 00 34 */ bne lbl_80097AC4
/* 80097A94 000938D4 80 83 00 6C */ lwz r4, 0x6c(r3)
/* 80097A98 000938D8 2C 04 00 00 */ cmpwi r4, 0x0
/* 80097A9C 000938DC 41 82 00 28 */ beq lbl_80097AC4
/* 80097AA0 000938E0 88 04 00 71 */ lbz r0, 0x71(r4)
/* 80097AA4 000938E4 2C 00 00 00 */ cmpwi r0, 0x0
/* 80097AA8 000938E8 41 82 00 1C */ beq lbl_80097AC4
/* 80097AAC 000938EC 80 03 00 28 */ lwz r0, 0x28(r3)
/* 80097AB0 000938F0 28 00 1F 40 */ cmplwi r0, 0x1f40
/* 80097AB4 000938F4 41 81 00 10 */ bgt lbl_80097AC4
/* 80097AB8 000938F8 A0 03 00 20 */ lhz r0, 0x20(r3)
/* 80097ABC 000938FC 28 00 00 10 */ cmplwi r0, 0x10
/* 80097AC0 00093900 40 81 00 08 */ ble lbl_80097AC8
.global lbl_80097AC4
lbl_80097AC4:
/* 80097AC4 00093904 38 A0 00 01 */ li r5, 0x1
.global lbl_80097AC8
lbl_80097AC8:
/* 80097AC8 00093908 88 03 00 25 */ lbz r0, 0x25(r3)
/* 80097ACC 0009390C 7C 00 28 40 */ cmplw r0, r5
/* 80097AD0 00093910 40 82 00 0C */ bne lbl_80097ADC
/* 80097AD4 00093914 38 60 00 00 */ li r3, 0x0
/* 80097AD8 00093918 4E 80 00 20 */ blr
.global lbl_80097ADC
lbl_80097ADC:
/* 80097ADC 0009391C 2C 05 00 00 */ cmpwi r5, 0x0
/* 80097AE0 00093920 98 A3 00 25 */ stb r5, 0x25(r3)
/* 80097AE4 00093924 3C 60 00 03 */ lis r3, 0x3
/* 80097AE8 00093928 4D 82 00 20 */ beqlr
/* 80097AEC 0009392C 3C 60 00 01 */ lis r3, 0x1
/* 80097AF0 00093930 4E 80 00 20 */ blr
2022-10-16 16:31:36 +00:00
.global port_get_signal_changes
port_get_signal_changes:
2022-10-16 16:05:58 +00:00
/* 80097AF4 00093934 7C A4 22 78 */ xor r4, r5, r4
/* 80097AF8 00093938 38 C0 00 00 */ li r6, 0x0
/* 80097AFC 0009393C 54 80 07 FF */ clrlwi. r0, r4, 31
/* 80097B00 00093940 41 82 00 14 */ beq lbl_80097B14
/* 80097B04 00093944 54 A0 07 FF */ clrlwi. r0, r5, 31
/* 80097B08 00093948 60 C6 00 10 */ ori r6, r6, 0x10
/* 80097B0C 0009394C 41 82 00 08 */ beq lbl_80097B14
/* 80097B10 00093950 60 C6 08 00 */ ori r6, r6, 0x800
.global lbl_80097B14
lbl_80097B14:
/* 80097B14 00093954 54 80 07 BD */ rlwinm. r0, r4, 0, 30, 30
/* 80097B18 00093958 41 82 00 14 */ beq lbl_80097B2C
/* 80097B1C 0009395C 54 A0 07 BD */ rlwinm. r0, r5, 0, 30, 30
/* 80097B20 00093960 60 C6 00 08 */ ori r6, r6, 0x8
/* 80097B24 00093964 41 82 00 08 */ beq lbl_80097B2C
/* 80097B28 00093968 60 C6 04 00 */ ori r6, r6, 0x400
.global lbl_80097B2C
lbl_80097B2C:
/* 80097B2C 0009396C 54 80 07 7B */ rlwinm. r0, r4, 0, 29, 29
/* 80097B30 00093970 41 82 00 08 */ beq lbl_80097B38
/* 80097B34 00093974 60 C6 01 00 */ ori r6, r6, 0x100
.global lbl_80097B38
lbl_80097B38:
/* 80097B38 00093978 54 80 07 39 */ rlwinm. r0, r4, 0, 28, 28
/* 80097B3C 0009397C 41 82 00 14 */ beq lbl_80097B50
/* 80097B40 00093980 54 A0 07 39 */ rlwinm. r0, r5, 0, 28, 28
/* 80097B44 00093984 60 C6 00 20 */ ori r6, r6, 0x20
/* 80097B48 00093988 41 82 00 08 */ beq lbl_80097B50
/* 80097B4C 0009398C 60 C6 10 00 */ ori r6, r6, 0x1000
.global lbl_80097B50
lbl_80097B50:
/* 80097B50 00093990 80 03 00 88 */ lwz r0, 0x88(r3)
/* 80097B54 00093994 7C 03 30 38 */ and r3, r0, r6
/* 80097B58 00093998 4E 80 00 20 */ blr
2022-10-16 16:31:36 +00:00
.global port_flow_control_peer
port_flow_control_peer:
2022-10-16 16:05:58 +00:00
/* 80097B5C 0009399C 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80097B60 000939A0 7C 08 02 A6 */ mflr r0
/* 80097B64 000939A4 90 01 00 14 */ stw r0, 0x14(r1)
/* 80097B68 000939A8 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80097B6C 000939AC 7C 7F 1B 78 */ mr r31, r3
/* 80097B70 000939B0 80 C3 00 6C */ lwz r6, 0x6c(r3)
/* 80097B74 000939B4 2C 06 00 00 */ cmpwi r6, 0x0
/* 80097B78 000939B8 41 82 01 9C */ beq lbl_80097D14
/* 80097B7C 000939BC 88 06 00 72 */ lbz r0, 0x72(r6)
/* 80097B80 000939C0 28 00 00 02 */ cmplwi r0, 0x2
/* 80097B84 000939C4 40 82 00 B0 */ bne lbl_80097C34
/* 80097B88 000939C8 2C 04 00 00 */ cmpwi r4, 0x0
/* 80097B8C 000939CC 41 82 00 74 */ beq lbl_80097C00
/* 80097B90 000939D0 A0 03 00 9A */ lhz r0, 0x9a(r3)
/* 80097B94 000939D4 7C 05 00 40 */ cmplw r5, r0
/* 80097B98 000939D8 40 81 00 10 */ ble lbl_80097BA8
/* 80097B9C 000939DC 38 00 00 00 */ li r0, 0x0
/* 80097BA0 000939E0 B0 03 00 9A */ sth r0, 0x9a(r3)
/* 80097BA4 000939E4 48 00 00 0C */ b lbl_80097BB0
.global lbl_80097BA8
lbl_80097BA8:
/* 80097BA8 000939E8 7C 05 00 50 */ subf r0, r5, r0
/* 80097BAC 000939EC B0 03 00 9A */ sth r0, 0x9a(r3)
.global lbl_80097BB0
lbl_80097BB0:
/* 80097BB0 000939F0 A0 83 00 9A */ lhz r4, 0x9a(r3)
/* 80097BB4 000939F4 A0 03 00 9E */ lhz r0, 0x9e(r3)
/* 80097BB8 000939F8 7C 04 00 40 */ cmplw r4, r0
/* 80097BBC 000939FC 41 81 01 58 */ bgt lbl_80097D14
/* 80097BC0 00093A00 88 03 00 3D */ lbz r0, 0x3d(r3)
/* 80097BC4 00093A04 2C 00 00 00 */ cmpwi r0, 0x0
/* 80097BC8 00093A08 40 82 01 4C */ bne lbl_80097D14
/* 80097BCC 00093A0C A0 03 00 9C */ lhz r0, 0x9c(r3)
/* 80097BD0 00093A10 7C 00 20 40 */ cmplw r0, r4
/* 80097BD4 00093A14 40 81 01 40 */ ble lbl_80097D14
/* 80097BD8 00093A18 7C 04 00 50 */ subf r0, r4, r0
/* 80097BDC 00093A1C 80 63 00 6C */ lwz r3, 0x6c(r3)
/* 80097BE0 00093A20 88 9F 00 0D */ lbz r4, 0xd(r31)
/* 80097BE4 00093A24 54 05 06 3E */ clrlwi r5, r0, 24
2022-10-16 16:31:36 +00:00
/* 80097BE8 00093A28 48 00 37 71 */ bl rfc_send_credit
2022-10-16 16:05:58 +00:00
/* 80097BEC 00093A2C A0 7F 00 9C */ lhz r3, 0x9c(r31)
/* 80097BF0 00093A30 38 00 00 00 */ li r0, 0x0
/* 80097BF4 00093A34 98 1F 00 3C */ stb r0, 0x3c(r31)
/* 80097BF8 00093A38 B0 7F 00 9A */ sth r3, 0x9a(r31)
/* 80097BFC 00093A3C 48 00 01 18 */ b lbl_80097D14
.global lbl_80097C00
lbl_80097C00:
/* 80097C00 00093A40 80 03 00 94 */ lwz r0, 0x94(r3)
/* 80097C04 00093A44 2C 00 00 00 */ cmpwi r0, 0x0
/* 80097C08 00093A48 41 82 00 10 */ beq lbl_80097C18
/* 80097C0C 00093A4C 38 00 00 01 */ li r0, 0x1
/* 80097C10 00093A50 98 03 00 3C */ stb r0, 0x3c(r3)
/* 80097C14 00093A54 48 00 01 00 */ b lbl_80097D14
.global lbl_80097C18
lbl_80097C18:
/* 80097C18 00093A58 A0 83 00 38 */ lhz r4, 0x38(r3)
/* 80097C1C 00093A5C A0 03 00 9C */ lhz r0, 0x9c(r3)
/* 80097C20 00093A60 7C 04 00 40 */ cmplw r4, r0
/* 80097C24 00093A64 41 80 00 F0 */ blt lbl_80097D14
/* 80097C28 00093A68 38 00 00 01 */ li r0, 0x1
/* 80097C2C 00093A6C 98 03 00 3C */ stb r0, 0x3c(r3)
/* 80097C30 00093A70 48 00 00 E4 */ b lbl_80097D14
.global lbl_80097C34
lbl_80097C34:
/* 80097C34 00093A74 2C 04 00 00 */ cmpwi r4, 0x0
/* 80097C38 00093A78 41 82 00 50 */ beq lbl_80097C88
/* 80097C3C 00093A7C 88 03 00 3C */ lbz r0, 0x3c(r3)
/* 80097C40 00093A80 2C 00 00 00 */ cmpwi r0, 0x0
/* 80097C44 00093A84 41 82 00 D0 */ beq lbl_80097D14
/* 80097C48 00093A88 80 03 00 40 */ lwz r0, 0x40(r3)
/* 80097C4C 00093A8C 28 00 13 88 */ cmplwi r0, 0x1388
/* 80097C50 00093A90 40 80 00 C4 */ bge lbl_80097D14
/* 80097C54 00093A94 A0 03 00 38 */ lhz r0, 0x38(r3)
/* 80097C58 00093A98 28 00 00 08 */ cmplwi r0, 0x8
/* 80097C5C 00093A9C 40 80 00 B8 */ bge lbl_80097D14
/* 80097C60 00093AA0 88 03 00 3D */ lbz r0, 0x3d(r3)
/* 80097C64 00093AA4 38 80 00 00 */ li r4, 0x0
/* 80097C68 00093AA8 98 83 00 3C */ stb r4, 0x3c(r3)
/* 80097C6C 00093AAC 2C 00 00 00 */ cmpwi r0, 0x0
/* 80097C70 00093AB0 40 82 00 A4 */ bne lbl_80097D14
/* 80097C74 00093AB4 88 9F 00 0D */ lbz r4, 0xd(r31)
/* 80097C78 00093AB8 7C C3 33 78 */ mr r3, r6
/* 80097C7C 00093ABC 38 A0 00 01 */ li r5, 0x1
2022-10-16 16:31:36 +00:00
/* 80097C80 00093AC0 48 00 2B 49 */ bl RFCOMM_FlowReq
2022-10-16 16:05:58 +00:00
/* 80097C84 00093AC4 48 00 00 90 */ b lbl_80097D14
.global lbl_80097C88
lbl_80097C88:
/* 80097C88 00093AC8 80 03 00 94 */ lwz r0, 0x94(r3)
/* 80097C8C 00093ACC 2C 00 00 00 */ cmpwi r0, 0x0
/* 80097C90 00093AD0 41 82 00 20 */ beq lbl_80097CB0
/* 80097C94 00093AD4 38 00 00 01 */ li r0, 0x1
/* 80097C98 00093AD8 88 9F 00 0D */ lbz r4, 0xd(r31)
/* 80097C9C 00093ADC 98 03 00 3C */ stb r0, 0x3c(r3)
/* 80097CA0 00093AE0 7C C3 33 78 */ mr r3, r6
/* 80097CA4 00093AE4 38 A0 00 00 */ li r5, 0x0
2022-10-16 16:31:36 +00:00
/* 80097CA8 00093AE8 48 00 2B 21 */ bl RFCOMM_FlowReq
2022-10-16 16:05:58 +00:00
/* 80097CAC 00093AEC 48 00 00 68 */ b lbl_80097D14
.global lbl_80097CB0
lbl_80097CB0:
/* 80097CB0 00093AF0 80 03 00 40 */ lwz r0, 0x40(r3)
/* 80097CB4 00093AF4 28 00 1F 40 */ cmplwi r0, 0x1f40
/* 80097CB8 00093AF8 41 81 00 10 */ bgt lbl_80097CC8
/* 80097CBC 00093AFC A0 03 00 38 */ lhz r0, 0x38(r3)
/* 80097CC0 00093B00 28 00 00 10 */ cmplwi r0, 0x10
/* 80097CC4 00093B04 40 81 00 50 */ ble lbl_80097D14
.global lbl_80097CC8
lbl_80097CC8:
/* 80097CC8 00093B08 88 03 00 3C */ lbz r0, 0x3c(r3)
/* 80097CCC 00093B0C 2C 00 00 00 */ cmpwi r0, 0x0
/* 80097CD0 00093B10 40 82 00 44 */ bne lbl_80097D14
2022-10-16 16:31:36 +00:00
/* 80097CD4 00093B14 3C 60 80 50 */ lis r3, rfc_cb@ha
/* 80097CD8 00093B18 38 63 98 08 */ addi r3, r3, rfc_cb@l
2022-10-16 16:05:58 +00:00
/* 80097CDC 00093B1C 88 03 04 14 */ lbz r0, 0x414(r3)
/* 80097CE0 00093B20 28 00 00 04 */ cmplwi r0, 0x4
/* 80097CE4 00093B24 41 80 00 18 */ blt lbl_80097CFC
/* 80097CE8 00093B28 3C 60 00 09 */ lis r3, 0x9
2022-10-16 16:31:36 +00:00
/* 80097CEC 00093B2C 3C 80 80 44 */ lis r4, "@1272"@ha
2022-10-16 16:05:58 +00:00
/* 80097CF0 00093B30 38 63 00 03 */ addi r3, r3, 0x3
2022-10-16 16:31:36 +00:00
/* 80097CF4 00093B34 38 84 F0 98 */ addi r4, r4, "@1272"@l
/* 80097CF8 00093B38 4B FD FC 69 */ bl LogMsg_0
2022-10-16 16:05:58 +00:00
.global lbl_80097CFC
lbl_80097CFC:
/* 80097CFC 00093B3C 38 00 00 01 */ li r0, 0x1
/* 80097D00 00093B40 80 7F 00 6C */ lwz r3, 0x6c(r31)
/* 80097D04 00093B44 98 1F 00 3C */ stb r0, 0x3c(r31)
/* 80097D08 00093B48 38 A0 00 00 */ li r5, 0x0
/* 80097D0C 00093B4C 88 9F 00 0D */ lbz r4, 0xd(r31)
2022-10-16 16:31:36 +00:00
/* 80097D10 00093B50 48 00 2A B9 */ bl RFCOMM_FlowReq
2022-10-16 16:05:58 +00:00
.global lbl_80097D14
lbl_80097D14:
/* 80097D14 00093B54 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80097D18 00093B58 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80097D1C 00093B5C 7C 08 03 A6 */ mtlr r0
/* 80097D20 00093B60 38 21 00 10 */ addi r1, r1, 0x10
/* 80097D24 00093B64 4E 80 00 20 */ blr
2022-10-17 08:41:13 +00:00
.include "macros.inc"
.section .data, "wa" # 0x80421040 - 0x80496700 ; 0x000756C0
.global "@1174_8043EF80"
"@1174_8043EF80":
.4byte 0x706F7274
.4byte 0x5F73656C
.4byte 0x6563745F
.4byte 0x6D747520
.4byte 0x62616420
.4byte 0x7061636B
.4byte 0x65742073
.4byte 0x697A6500
.4byte 0x706F7274
.4byte 0x5F73656C
.4byte 0x6563745F
.4byte 0x6D747520
.4byte 0x73656C65
.4byte 0x63746564
.4byte 0x20256420
.4byte 0x62617365
.4byte 0x64206F6E
.4byte 0x20636F6E
.4byte 0x6E656374
.4byte 0x696F6E20
.4byte 0x73706565
.4byte 0x64000000
.4byte 0x706F7274
.4byte 0x5F73656C
.4byte 0x6563745F
.4byte 0x6D747520
.4byte 0x73656C65
.4byte 0x63746564
.4byte 0x20256420
.4byte 0x62617365
.4byte 0x64206F6E
.4byte 0x206C3263
.4byte 0x61702050
.4byte 0x44552073
.4byte 0x697A6500
.4byte 0
.4byte 0x706F7274
.4byte 0x5F73656C
.4byte 0x6563745F
.4byte 0x6D747520
.4byte 0x6170706C
.4byte 0x69636174
.4byte 0x696F6E20
.4byte 0x73656C65
.4byte 0x63746564
.4byte 0x20256400
.4byte 0x706F7274
.4byte 0x5F73656C
.4byte 0x6563745F
.4byte 0x6D747520
.4byte 0x63726564
.4byte 0x69745F72
.4byte 0x785F6D61
.4byte 0x78202564
.4byte 0x2C206372
.4byte 0x65646974
.4byte 0x5F72785F
.4byte 0x6C6F7720
.4byte 0x25642C20
.4byte 0x72785F62
.4byte 0x75665F63
.4byte 0x72697469
.4byte 0x63616C20
.4byte 0x25640000
.global "@1192"
"@1192":
.4byte 0x7266635F
.4byte 0x706F7274
.4byte 0x5F636C6F
.4byte 0x73656420
.4byte 0x444F4E45
.4byte 0
.global "@1272"
"@1272":
.4byte 0x504F5254
.4byte 0x5F446174
.4byte 0x61496E64
.4byte 0x20446174
.4byte 0x61207265
.4byte 0x61636865
.4byte 0x64204857
.4byte 0x2E205365
.4byte 0x6E64696E
.4byte 0x67204643
.4byte 0x20736574
.4byte 0x2E000000