diff --git a/asm/J3DGraphLoader/J3DModelLoader.s b/asm/J3DGraphLoader/J3DModelLoader.s index 2fc8dc7cd60..580c5cc9283 100644 --- a/asm/J3DGraphLoader/J3DModelLoader.s +++ b/asm/J3DGraphLoader/J3DModelLoader.s @@ -110,7 +110,7 @@ J3DModelLoader_NS_load: /* 803347F8 00331738 7C 99 23 78 */ mr r25, r4 /* 803347FC 0033173C 7C BA 2B 78 */ mr r26, r5 /* 80334800 00331740 80 6D 8D F4 */ lwz r3, lbl_80451374-_SDA_BASE_(r13) -/* 80334804 00331744 4B F9 9F 81 */ bl getTotalFreeSize__7JKRHeapFv +/* 80334804 00331744 4B F9 9F 81 */ bl getTotalFreeSize__7JKRHeapCFv /* 80334808 00331748 38 60 00 E4 */ li r3, 0xe4 /* 8033480C 0033174C 4B F9 A4 41 */ bl __nw__FUl /* 80334810 00331750 7C 60 1B 79 */ or. r0, r3, r3 diff --git a/asm/JAudio2/JASBNKParser.s b/asm/JAudio2/JASBNKParser.s index 2835e7e90b9..41251dfa7f9 100644 --- a/asm/JAudio2/JASBNKParser.s +++ b/asm/JAudio2/JASBNKParser.s @@ -27,7 +27,7 @@ JASBNKParser_NS_createBasicBank: /* 80299578 002964B8 83 AD 8C 90 */ lwz r29, lbl_80451210-_SDA_BASE_(r13) lbl_8029957C: /* 8029957C 002964BC 7F A3 EB 78 */ mr r3, r29 -/* 80299580 002964C0 48 03 51 AD */ bl getFreeSize__7JKRHeapFv +/* 80299580 002964C0 48 03 51 AD */ bl getFreeSize__7JKRHeapCFv /* 80299584 002964C4 7C 7F 1B 78 */ mr r31, r3 /* 80299588 002964C8 3B C0 00 00 */ li r30, 0 /* 8029958C 002964CC 80 1C 00 0C */ lwz r0, 0xc(r28) @@ -50,7 +50,7 @@ lbl_802995BC: /* 802995C8 00296508 7C 7E 1B 78 */ mr r30, r3 lbl_802995CC: /* 802995CC 0029650C 7F A3 EB 78 */ mr r3, r29 -/* 802995D0 00296510 48 03 51 5D */ bl getFreeSize__7JKRHeapFv +/* 802995D0 00296510 48 03 51 5D */ bl getFreeSize__7JKRHeapCFv /* 802995D4 00296514 7C 63 F8 50 */ subf r3, r3, r31 /* 802995D8 00296518 80 0D 8D 08 */ lwz r0, lbl_80451288-_SDA_BASE_(r13) /* 802995DC 0029651C 7C 00 1A 14 */ add r0, r0, r3 diff --git a/asm/JAudio2/JASWSParser.s b/asm/JAudio2/JASWSParser.s index 313a1b0f83f..73d3e06228e 100644 --- a/asm/JAudio2/JASWSParser.s +++ b/asm/JAudio2/JASWSParser.s @@ -57,7 +57,7 @@ JASWSParser_NS_createBasicWaveBank: /* 80299054 00295F94 82 CD 8C 90 */ lwz r22, lbl_80451210-_SDA_BASE_(r13) lbl_80299058: /* 80299058 00295F98 7E C3 B3 78 */ mr r3, r22 -/* 8029905C 00295F9C 48 03 56 D1 */ bl getFreeSize__7JKRHeapFv +/* 8029905C 00295F9C 48 03 56 D1 */ bl getFreeSize__7JKRHeapCFv /* 80299060 00295FA0 7C 7D 1B 78 */ mr r29, r3 /* 80299064 00295FA4 7E 9A A3 78 */ mr r26, r20 /* 80299068 00295FA8 38 60 00 28 */ li r3, 0x28 @@ -181,7 +181,7 @@ lbl_80299224: /* 80299228 00296168 7C 19 00 40 */ cmplw r25, r0 /* 8029922C 0029616C 41 80 FE A8 */ blt lbl_802990D4 /* 80299230 00296170 7E C3 B3 78 */ mr r3, r22 -/* 80299234 00296174 48 03 54 F9 */ bl getFreeSize__7JKRHeapFv +/* 80299234 00296174 48 03 54 F9 */ bl getFreeSize__7JKRHeapCFv /* 80299238 00296178 7C 63 E8 50 */ subf r3, r3, r29 /* 8029923C 0029617C 80 0D 8D 00 */ lwz r0, lbl_80451280-_SDA_BASE_(r13) /* 80299240 00296180 7C 00 1A 14 */ add r0, r0, r3 @@ -208,7 +208,7 @@ JASWSParser_NS_createSimpleWaveBank: /* 80299284 002961C4 83 2D 8C 90 */ lwz r25, lbl_80451210-_SDA_BASE_(r13) lbl_80299288: /* 80299288 002961C8 7F 23 CB 78 */ mr r3, r25 -/* 8029928C 002961CC 48 03 54 A1 */ bl getFreeSize__7JKRHeapFv +/* 8029928C 002961CC 48 03 54 A1 */ bl getFreeSize__7JKRHeapCFv /* 80299290 002961D0 7C 7E 1B 78 */ mr r30, r3 /* 80299294 002961D4 7E FB BB 78 */ mr r27, r23 /* 80299298 002961D8 7E E3 BB 78 */ mr r3, r23 @@ -333,7 +333,7 @@ lbl_80299444: /* 80299454 00296394 7F 84 E3 78 */ mr r4, r28 /* 80299458 00296398 48 00 12 B5 */ bl JASWaveArc_NS_setFileName /* 8029945C 0029639C 7F 23 CB 78 */ mr r3, r25 -/* 80299460 002963A0 48 03 52 CD */ bl getFreeSize__7JKRHeapFv +/* 80299460 002963A0 48 03 52 CD */ bl getFreeSize__7JKRHeapCFv /* 80299464 002963A4 7C 63 F0 50 */ subf r3, r3, r30 /* 80299468 002963A8 80 0D 8D 00 */ lwz r0, lbl_80451280-_SDA_BASE_(r13) /* 8029946C 002963AC 7C 00 1A 14 */ add r0, r0, r3 diff --git a/asm/JAudio2/JAUInitializer.s b/asm/JAudio2/JAUInitializer.s index 278feba4cc1..92789e9d109 100644 --- a/asm/JAudio2/JAUInitializer.s +++ b/asm/JAudio2/JAUInitializer.s @@ -203,7 +203,7 @@ JAU_JAIInitializer_NS_initJAInterface: /* 802A4D78 002A1CB8 3C 60 80 43 */ lis r3, lbl_80434110@ha /* 802A4D7C 002A1CBC 3B E3 41 10 */ addi r31, r3, lbl_80434110@l /* 802A4D80 002A1CC0 80 6D 8C 90 */ lwz r3, lbl_80451210-_SDA_BASE_(r13) -/* 802A4D84 002A1CC4 48 02 99 A9 */ bl getFreeSize__7JKRHeapFv +/* 802A4D84 002A1CC4 48 02 99 A9 */ bl getFreeSize__7JKRHeapCFv /* 802A4D88 002A1CC8 83 BE 00 08 */ lwz r29, 8(r30) /* 802A4D8C 002A1CCC 88 0D 8D A8 */ lbz r0, lbl_80451328-_SDA_BASE_(r13) /* 802A4D90 002A1CD0 7C 00 07 75 */ extsb. r0, r0 @@ -297,7 +297,7 @@ lbl_802A4EB4: /* 802A4EC0 002A1E00 7F A5 EB 78 */ mr r5, r29 /* 802A4EC4 002A1E04 4B FE BA 05 */ bl JASGenericMemPool_NS_newMemPool /* 802A4EC8 002A1E08 80 6D 8C 90 */ lwz r3, lbl_80451210-_SDA_BASE_(r13) -/* 802A4ECC 002A1E0C 48 02 98 61 */ bl getFreeSize__7JKRHeapFv +/* 802A4ECC 002A1E0C 48 02 98 61 */ bl getFreeSize__7JKRHeapCFv /* 802A4ED0 002A1E10 39 61 00 20 */ addi r11, r1, 0x20 /* 802A4ED4 002A1E14 48 0B D3 55 */ bl _restgpr_29 /* 802A4ED8 002A1E18 80 01 00 24 */ lwz r0, 0x24(r1) diff --git a/asm/JAudio2/JAUSectionHeap.s b/asm/JAudio2/JAUSectionHeap.s index 646d80973de..9cdc777b3b5 100644 --- a/asm/JAudio2/JAUSectionHeap.s +++ b/asm/JAudio2/JAUSectionHeap.s @@ -166,7 +166,7 @@ JAUSection_NS_finishBuild: /* 802A511C 002A205C 48 02 93 1D */ bl becomeCurrentHeap__7JKRHeapFv /* 802A5120 002A2060 80 7F 00 30 */ lwz r3, 0x30(r31) /* 802A5124 002A2064 80 63 00 E0 */ lwz r3, 0xe0(r3) -/* 802A5128 002A2068 48 02 96 05 */ bl getFreeSize__7JKRHeapFv +/* 802A5128 002A2068 48 02 96 05 */ bl getFreeSize__7JKRHeapCFv /* 802A512C 002A206C 80 1F 00 D0 */ lwz r0, 0xd0(r31) /* 802A5130 002A2070 7C 03 00 50 */ subf r0, r3, r0 /* 802A5134 002A2074 90 1F 00 D0 */ stw r0, 0xd0(r31) @@ -698,7 +698,7 @@ JAUSection_NS_newWaveBank: /* 802A5880 002A27C0 90 61 00 08 */ stw r3, 8(r1) /* 802A5884 002A27C4 80 7F 00 30 */ lwz r3, 0x30(r31) /* 802A5888 002A27C8 80 63 00 E0 */ lwz r3, 0xe0(r3) -/* 802A588C 002A27CC 48 02 8E A1 */ bl getFreeSize__7JKRHeapFv +/* 802A588C 002A27CC 48 02 8E A1 */ bl getFreeSize__7JKRHeapCFv /* 802A5890 002A27D0 7C 7E 1B 78 */ mr r30, r3 /* 802A5894 002A27D4 7F A3 EB 78 */ mr r3, r29 /* 802A5898 002A27D8 80 9F 00 30 */ lwz r4, 0x30(r31) @@ -728,7 +728,7 @@ lbl_802A58E8: /* 802A58F4 002A2834 48 00 0C E1 */ bl set__Q23std16__bitset_base /* 802A58F8 002A2838 80 7F 00 30 */ lwz r3, 0x30(r31) /* 802A58FC 002A283C 80 63 00 E0 */ lwz r3, 0xe0(r3) -/* 802A5900 002A2840 48 02 8E 2D */ bl getFreeSize__7JKRHeapFv +/* 802A5900 002A2840 48 02 8E 2D */ bl getFreeSize__7JKRHeapCFv /* 802A5904 002A2844 7C 63 F0 50 */ subf r3, r3, r30 /* 802A5908 002A2848 80 1F 00 D8 */ lwz r0, 0xd8(r31) /* 802A590C 002A284C 7C 00 1A 14 */ add r0, r0, r3 @@ -852,7 +852,7 @@ lbl_802A5A90: /* 802A5A9C 002A29DC 83 7F 00 08 */ lwz r27, 8(r31) /* 802A5AA0 002A29E0 80 7E 00 30 */ lwz r3, 0x30(r30) /* 802A5AA4 002A29E4 80 63 00 E0 */ lwz r3, 0xe0(r3) -/* 802A5AA8 002A29E8 48 02 8C 85 */ bl getFreeSize__7JKRHeapFv +/* 802A5AA8 002A29E8 48 02 8C 85 */ bl getFreeSize__7JKRHeapCFv /* 802A5AAC 002A29EC 7C 7D 1B 78 */ mr r29, r3 /* 802A5AB0 002A29F0 7F E3 FB 78 */ mr r3, r31 /* 802A5AB4 002A29F4 80 9E 00 30 */ lwz r4, 0x30(r30) @@ -892,7 +892,7 @@ lbl_802A5B30: /* 802A5B30 002A2A70 93 9F 00 04 */ stw r28, 4(r31) /* 802A5B34 002A2A74 80 7E 00 30 */ lwz r3, 0x30(r30) /* 802A5B38 002A2A78 80 63 00 E0 */ lwz r3, 0xe0(r3) -/* 802A5B3C 002A2A7C 48 02 8B F1 */ bl getFreeSize__7JKRHeapFv +/* 802A5B3C 002A2A7C 48 02 8B F1 */ bl getFreeSize__7JKRHeapCFv /* 802A5B40 002A2A80 7C 63 E8 50 */ subf r3, r3, r29 /* 802A5B44 002A2A84 80 1E 00 D4 */ lwz r0, 0xd4(r30) /* 802A5B48 002A2A88 7C 00 1A 14 */ add r0, r0, r3 @@ -1192,7 +1192,7 @@ JAUNewSectionHeap: /* 802A5F40 002A2E80 48 02 84 F9 */ bl becomeCurrentHeap__7JKRHeapFv /* 802A5F44 002A2E84 90 61 00 08 */ stw r3, 8(r1) /* 802A5F48 002A2E88 7F 83 E3 78 */ mr r3, r28 -/* 802A5F4C 002A2E8C 48 02 87 E1 */ bl getFreeSize__7JKRHeapFv +/* 802A5F4C 002A2E8C 48 02 87 E1 */ bl getFreeSize__7JKRHeapCFv /* 802A5F50 002A2E90 7C 7E 1B 78 */ mr r30, r3 /* 802A5F54 002A2E94 38 60 05 34 */ li r3, 0x534 /* 802A5F58 002A2E98 48 02 8C F5 */ bl __nw__FUl @@ -1222,7 +1222,7 @@ JAUNewSectionHeap_X1_: /* 802A5FA8 002A2EE8 93 E1 00 0C */ stw r31, 0xc(r1) /* 802A5FAC 002A2EEC 7C 7F 1B 78 */ mr r31, r3 /* 802A5FB0 002A2EF0 80 6D 8C 90 */ lwz r3, lbl_80451210-_SDA_BASE_(r13) -/* 802A5FB4 002A2EF4 48 02 87 79 */ bl getFreeSize__7JKRHeapFv +/* 802A5FB4 002A2EF4 48 02 87 79 */ bl getFreeSize__7JKRHeapCFv /* 802A5FB8 002A2EF8 80 8D 8C 90 */ lwz r4, lbl_80451210-_SDA_BASE_(r13) /* 802A5FBC 002A2EFC 38 A0 00 01 */ li r5, 1 /* 802A5FC0 002A2F00 48 02 AA 65 */ bl create__12JKRSolidHeapFUlP7JKRHeapb diff --git a/asm/JKernel/JKRExpHeap.s b/asm/JKernel/JKRExpHeap.s index aecfbb9b873..7ad4714373e 100644 --- a/asm/JKernel/JKRExpHeap.s +++ b/asm/JKernel/JKRExpHeap.s @@ -55,7 +55,7 @@ lbl_802CEE50: /* 802CEE58 002CBD98 40 82 00 10 */ bne lbl_802CEE68 /* 802CEE5C 002CBD9C 7F 83 E3 78 */ mr r3, r28 /* 802CEE60 002CBDA0 38 80 00 10 */ li r4, 0x10 -/* 802CEE64 002CBDA4 4B FF F9 79 */ bl getMaxAllocatableSize__7JKRHeapFi +/* 802CEE64 002CBDA4 4B FF F9 79 */ bl getMaxAllocatableSize__7JKRHeapCFi lbl_802CEE68: /* 802CEE68 002CBDA8 54 7F 00 36 */ rlwinm r31, r3, 0, 0, 0x1b /* 802CEE6C 002CBDAC 28 1F 00 A0 */ cmplwi r31, 0xa0 @@ -1999,7 +1999,7 @@ lbl_802D0930: /* 802D096C 002CD8AC 90 7E 00 00 */ stw r3, 0(r30) /* 802D0970 002CD8B0 48 00 00 14 */ b lbl_802D0984 lbl_802D0974: -/* 802D0974 002CD8B4 4B FF DE 11 */ bl getTotalFreeSize__7JKRHeapFv +/* 802D0974 002CD8B4 4B FF DE 11 */ bl getTotalFreeSize__7JKRHeapCFv /* 802D0978 002CD8B8 80 1D 00 38 */ lwz r0, 0x38(r29) /* 802D097C 002CD8BC 7C 03 00 50 */ subf r0, r3, r0 /* 802D0980 002CD8C0 90 1E 00 00 */ stw r0, 0(r30) diff --git a/asm/JKernel/JKRHeap.s b/asm/JKernel/JKRHeap.s deleted file mode 100644 index e57c21fdf7e..00000000000 --- a/asm/JKernel/JKRHeap.s +++ /dev/null @@ -1,30 +0,0 @@ -.include "macros.inc" - -.section .text, "ax" # 802CED84 - -.global JKRHeap_state_register -JKRHeap_state_register: -/* 802CED84 002CBCC4 4E 80 00 20 */ blr - -.global JKRHeap_state_compare -JKRHeap_state_compare: -/* 802CED88 002CBCC8 80 64 00 04 */ lwz r3, 4(r4) -/* 802CED8C 002CBCCC 80 05 00 04 */ lwz r0, 4(r5) -/* 802CED90 002CBCD0 7C 03 00 50 */ subf r0, r3, r0 -/* 802CED94 002CBCD4 7C 00 00 34 */ cntlzw r0, r0 -/* 802CED98 002CBCD8 54 03 D9 7E */ srwi r3, r0, 5 -/* 802CED9C 002CBCDC 4E 80 00 20 */ blr - -.global JKRHeap_state_dump -JKRHeap_state_dump: -/* 802CEDA0 002CBCE0 4E 80 00 20 */ blr - -.global JKRHeap_do_changeGroupID -JKRHeap_do_changeGroupID: -/* 802CEDA4 002CBCE4 38 60 00 00 */ li r3, 0 -/* 802CEDA8 002CBCE8 4E 80 00 20 */ blr - -.global JKRHeap_do_getCurrentGroupId -JKRHeap_do_getCurrentGroupId: -/* 802CEDAC 002CBCEC 38 60 00 00 */ li r3, 0 -/* 802CEDB0 002CBCF0 4E 80 00 20 */ blr \ No newline at end of file diff --git a/asm/JUtility/JUTProcBar.s b/asm/JUtility/JUTProcBar.s index b55e1275716..e0cf5e40035 100644 --- a/asm/JUtility/JUTProcBar.s +++ b/asm/JUtility/JUTProcBar.s @@ -1486,7 +1486,7 @@ heapBar: /* 802E6E4C 002E3D8C 4B FF FE F1 */ bl addrToXPos /* 802E6E50 002E3D90 7F 7B 1A 14 */ add r27, r27, r3 /* 802E6E54 002E3D94 7F E3 FB 78 */ mr r3, r31 -/* 802E6E58 002E3D98 4B FE 79 2D */ bl getTotalFreeSize__7JKRHeapFv +/* 802E6E58 002E3D98 4B FE 79 2D */ bl getTotalFreeSize__7JKRHeapCFv /* 802E6E5C 002E3D9C 7F C4 F3 78 */ mr r4, r30 /* 802E6E60 002E3DA0 4B FF FF 45 */ bl byteToXLen /* 802E6E64 002E3DA4 7C 7F 1B 78 */ mr r31, r3 @@ -1742,7 +1742,7 @@ JUTProcBar_NS_drawHeapBar: /* 802E7240 002E4180 38 61 00 14 */ addi r3, r1, 0x14 /* 802E7244 002E4184 48 00 28 81 */ bl J2DFillBox /* 802E7248 002E4188 80 6D 8D F8 */ lwz r3, lbl_80451378-_SDA_BASE_(r13) -/* 802E724C 002E418C 4B FE 75 39 */ bl getTotalFreeSize__7JKRHeapFv +/* 802E724C 002E418C 4B FE 75 39 */ bl getTotalFreeSize__7JKRHeapCFv /* 802E7250 002E4190 7F 44 D3 78 */ mr r4, r26 /* 802E7254 002E4194 4B FF FB 51 */ bl byteToXLen /* 802E7258 002E4198 38 00 00 00 */ li r0, 0 diff --git a/asm/d/com/inf/d_com_inf_game.s b/asm/d/com/inf/d_com_inf_game.s index d1f85fca875..3054282af80 100644 --- a/asm/d/com/inf/d_com_inf_game.s +++ b/asm/d/com/inf/d_com_inf_game.s @@ -3470,7 +3470,7 @@ dComIfGp_createSubExpHeap2D: /* 8002E240 0002B180 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 8002E244 0002B184 3B A3 61 C0 */ addi r29, r3, g_dComIfG_gameInfo@l /* 8002E248 0002B188 80 7D 5E BC */ lwz r3, 0x5ebc(r29) -/* 8002E24C 0002B18C 48 2A 05 39 */ bl getTotalFreeSize__7JKRHeapFv +/* 8002E24C 0002B18C 48 2A 05 39 */ bl getTotalFreeSize__7JKRHeapCFv /* 8002E250 0002B190 C8 22 83 10 */ lfd f1, lbl_80451D10-_SDA2_BASE_(r2) /* 8002E254 0002B194 6C 60 80 00 */ xoris r0, r3, 0x8000 /* 8002E258 0002B198 90 01 00 0C */ stw r0, 0xc(r1) diff --git a/asm/d/d_gameover.s b/asm/d/d_gameover.s index 1145239fd0f..0589569898e 100644 --- a/asm/d/d_gameover.s +++ b/asm/d/d_gameover.s @@ -294,7 +294,7 @@ lbl_8019B110: /* 8019B150 00198090 4B E7 40 7D */ bl mDoExt_setCurrentHeap /* 8019B154 00198094 7C 7E 1B 78 */ mr r30, r3 /* 8019B158 00198098 80 7D 01 10 */ lwz r3, 0x110(r29) -/* 8019B15C 0019809C 48 13 36 29 */ bl getTotalFreeSize__7JKRHeapFv +/* 8019B15C 0019809C 48 13 36 29 */ bl getTotalFreeSize__7JKRHeapCFv /* 8019B160 001980A0 38 60 00 18 */ li r3, 0x18 /* 8019B164 001980A4 48 13 3A E9 */ bl __nw__FUl /* 8019B168 001980A8 7C 60 1B 79 */ or. r0, r3, r3 diff --git a/asm/d/d_meter2.s b/asm/d/d_meter2.s index b5b8f66e4a1..72101362ca4 100644 --- a/asm/d/d_meter2.s +++ b/asm/d/d_meter2.s @@ -39,7 +39,7 @@ lbl_8021EA84: /* 8021EA88 0021B9C8 4B DF 07 45 */ bl mDoExt_setCurrentHeap /* 8021EA8C 0021B9CC 7C 7E 1B 78 */ mr r30, r3 /* 8021EA90 0021B9D0 80 7F 01 00 */ lwz r3, 0x100(r31) -/* 8021EA94 0021B9D4 48 0A FC F1 */ bl getTotalFreeSize__7JKRHeapFv +/* 8021EA94 0021B9D4 48 0A FC F1 */ bl getTotalFreeSize__7JKRHeapCFv /* 8021EA98 0021B9D8 38 7B 4E 00 */ addi r3, r27, 0x4e00 /* 8021EA9C 0021B9DC 3C 80 80 3A */ lis r4, lbl_80399338@ha /* 8021EAA0 0021B9E0 38 84 93 38 */ addi r4, r4, lbl_80399338@l @@ -330,7 +330,7 @@ lbl_8021EEE0: /* 8021EEE8 0021BE28 4B FF 6E C1 */ bl dMeter2Draw_c_NS_getNowLightDropRateCalc /* 8021EEEC 0021BE2C D0 3F 01 30 */ stfs f1, 0x130(r31) /* 8021EEF0 0021BE30 80 7F 01 00 */ lwz r3, 0x100(r31) -/* 8021EEF4 0021BE34 48 0A F8 91 */ bl getTotalFreeSize__7JKRHeapFv +/* 8021EEF4 0021BE34 48 0A F8 91 */ bl getTotalFreeSize__7JKRHeapCFv /* 8021EEF8 0021BE38 3B 20 00 00 */ li r25, 0 /* 8021EEFC 0021BE3C 3B 80 00 00 */ li r28, 0 lbl_8021EF00: @@ -461,7 +461,7 @@ lbl_8021F0B8: /* 8021F0C0 0021C000 38 63 01 88 */ addi r3, r3, lbl_80430188@l /* 8021F0C4 0021C004 90 03 00 20 */ stw r0, 0x20(r3) /* 8021F0C8 0021C008 80 7F 01 00 */ lwz r3, 0x100(r31) -/* 8021F0CC 0021C00C 48 0A F6 B9 */ bl getTotalFreeSize__7JKRHeapFv +/* 8021F0CC 0021C00C 48 0A F6 B9 */ bl getTotalFreeSize__7JKRHeapCFv /* 8021F0D0 0021C010 38 60 50 00 */ li r3, 0x5000 /* 8021F0D4 0021C014 80 9F 01 00 */ lwz r4, 0x100(r31) /* 8021F0D8 0021C018 4B E0 12 C5 */ bl fopMsgM_createExpHeap @@ -472,7 +472,7 @@ lbl_8021F0B8: /* 8021F0EC 0021C02C 90 1F 01 14 */ stw r0, 0x114(r31) /* 8021F0F0 0021C030 90 1F 01 18 */ stw r0, 0x118(r31) /* 8021F0F4 0021C034 80 7F 01 00 */ lwz r3, 0x100(r31) -/* 8021F0F8 0021C038 48 0A F6 8D */ bl getTotalFreeSize__7JKRHeapFv +/* 8021F0F8 0021C038 48 0A F6 8D */ bl getTotalFreeSize__7JKRHeapCFv /* 8021F0FC 0021C03C 38 00 00 00 */ li r0, 0 /* 8021F100 0021C040 90 1F 01 1C */ stw r0, 0x11c(r31) /* 8021F104 0021C044 7F C3 F3 78 */ mr r3, r30 @@ -733,7 +733,7 @@ dMeter2_c_NS__delete: /* 8021F4AC 0021C3EC 93 C1 00 18 */ stw r30, 0x18(r1) /* 8021F4B0 0021C3F0 7C 7E 1B 78 */ mr r30, r3 /* 8021F4B4 0021C3F4 80 63 01 00 */ lwz r3, 0x100(r3) -/* 8021F4B8 0021C3F8 48 0A F2 CD */ bl getTotalFreeSize__7JKRHeapFv +/* 8021F4B8 0021C3F8 48 0A F2 CD */ bl getTotalFreeSize__7JKRHeapCFv /* 8021F4BC 0021C3FC 80 7E 01 00 */ lwz r3, 0x100(r30) /* 8021F4C0 0021C400 4B DE FD 0D */ bl mDoExt_setCurrentHeap /* 8021F4C4 0021C404 7C 7F 1B 78 */ mr r31, r3 @@ -802,7 +802,7 @@ lbl_8021F574: /* 8021F5B4 0021C4F4 48 08 C3 D1 */ bl seStart__7Z2SeMgrF10JAISoundIDPC3VecUlScffffUc lbl_8021F5B8: /* 8021F5B8 0021C4F8 80 7E 01 00 */ lwz r3, 0x100(r30) -/* 8021F5BC 0021C4FC 48 0A F1 C9 */ bl getTotalFreeSize__7JKRHeapFv +/* 8021F5BC 0021C4FC 48 0A F1 C9 */ bl getTotalFreeSize__7JKRHeapCFv /* 8021F5C0 0021C500 80 7E 01 20 */ lwz r3, 0x120(r30) /* 8021F5C4 0021C504 28 03 00 00 */ cmplwi r3, 0 /* 8021F5C8 0021C508 41 82 00 24 */ beq lbl_8021F5EC @@ -817,7 +817,7 @@ lbl_8021F5E4: /* 8021F5E8 0021C528 90 1E 01 20 */ stw r0, 0x120(r30) lbl_8021F5EC: /* 8021F5EC 0021C52C 80 7E 01 00 */ lwz r3, 0x100(r30) -/* 8021F5F0 0021C530 48 0A F1 95 */ bl getTotalFreeSize__7JKRHeapFv +/* 8021F5F0 0021C530 48 0A F1 95 */ bl getTotalFreeSize__7JKRHeapCFv /* 8021F5F4 0021C534 80 7E 01 04 */ lwz r3, 0x104(r30) /* 8021F5F8 0021C538 4B DE FB D5 */ bl mDoExt_setCurrentHeap /* 8021F5FC 0021C53C 80 7E 01 10 */ lwz r3, 0x110(r30) @@ -847,7 +847,7 @@ lbl_8021F64C: /* 8021F650 0021C590 90 1E 01 14 */ stw r0, 0x114(r30) lbl_8021F654: /* 8021F654 0021C594 80 7E 01 00 */ lwz r3, 0x100(r30) -/* 8021F658 0021C598 48 0A F1 2D */ bl getTotalFreeSize__7JKRHeapFv +/* 8021F658 0021C598 48 0A F1 2D */ bl getTotalFreeSize__7JKRHeapCFv /* 8021F65C 0021C59C 80 7E 01 1C */ lwz r3, 0x11c(r30) /* 8021F660 0021C5A0 28 03 00 00 */ cmplwi r3, 0 /* 8021F664 0021C5A4 41 82 00 24 */ beq lbl_8021F688 @@ -5519,7 +5519,7 @@ lbl_80223890: /* 802238A0 002207E0 28 00 00 00 */ cmplwi r0, 0 /* 802238A4 002207E4 40 82 03 08 */ bne lbl_80223BAC /* 802238A8 002207E8 80 7F 01 04 */ lwz r3, 0x104(r31) -/* 802238AC 002207EC 48 0A AE D9 */ bl getTotalFreeSize__7JKRHeapFv +/* 802238AC 002207EC 48 0A AE D9 */ bl getTotalFreeSize__7JKRHeapCFv /* 802238B0 002207F0 38 60 01 18 */ li r3, 0x118 /* 802238B4 002207F4 48 0A B3 99 */ bl __nw__FUl /* 802238B8 002207F8 7C 60 1B 79 */ or. r0, r3, r3 diff --git a/asm/d/d_timer.s b/asm/d/d_timer.s index ed2069dbd8d..d0fa4375565 100644 --- a/asm/d/d_timer.s +++ b/asm/d/d_timer.s @@ -48,7 +48,7 @@ lbl_8025CA54: /* 8025CAA8 002599E8 80 7F 01 00 */ lwz r3, 0x100(r31) /* 8025CAAC 002599EC 28 03 00 00 */ cmplwi r3, 0 /* 8025CAB0 002599F0 41 82 00 70 */ beq lbl_8025CB20 -/* 8025CAB4 002599F4 48 07 1C D1 */ bl getTotalFreeSize__7JKRHeapFv +/* 8025CAB4 002599F4 48 07 1C D1 */ bl getTotalFreeSize__7JKRHeapCFv /* 8025CAB8 002599F8 38 60 03 E4 */ li r3, 0x3e4 /* 8025CABC 002599FC 48 07 21 91 */ bl __nw__FUl /* 8025CAC0 00259A00 7C 60 1B 79 */ or. r0, r3, r3 @@ -695,7 +695,7 @@ dTimer_c_NS__delete: /* 8025D3E0 0025A320 4B DB 1D ED */ bl mDoExt_setCurrentHeap /* 8025D3E4 0025A324 7C 7E 1B 78 */ mr r30, r3 /* 8025D3E8 0025A328 80 7F 01 00 */ lwz r3, 0x100(r31) -/* 8025D3EC 0025A32C 48 07 13 99 */ bl getTotalFreeSize__7JKRHeapFv +/* 8025D3EC 0025A32C 48 07 13 99 */ bl getTotalFreeSize__7JKRHeapCFv /* 8025D3F0 0025A330 80 7F 00 FC */ lwz r3, 0xfc(r31) /* 8025D3F4 0025A334 48 00 18 69 */ bl dDlst_TimerScrnDraw_c_NS_deleteScreen /* 8025D3F8 0025A338 80 7F 00 FC */ lwz r3, 0xfc(r31) diff --git a/asm/d/menu/d_menu_collect.s b/asm/d/menu/d_menu_collect.s index 874b0a316d2..c4c306959ac 100644 --- a/asm/d/menu/d_menu_collect.s +++ b/asm/d/menu/d_menu_collect.s @@ -105,7 +105,7 @@ dMenu_Collect2D_c_NS__create: /* 801AFEB4 001ACDF4 93 C1 00 18 */ stw r30, 0x18(r1) /* 801AFEB8 001ACDF8 7C 7F 1B 78 */ mr r31, r3 /* 801AFEBC 001ACDFC 80 63 00 04 */ lwz r3, 4(r3) -/* 801AFEC0 001ACE00 48 11 E8 C5 */ bl getTotalFreeSize__7JKRHeapFv +/* 801AFEC0 001ACE00 48 11 E8 C5 */ bl getTotalFreeSize__7JKRHeapCFv /* 801AFEC4 001ACE04 38 60 01 18 */ li r3, 0x118 /* 801AFEC8 001ACE08 48 11 ED 85 */ bl __nw__FUl /* 801AFECC 001ACE0C 7C 60 1B 79 */ or. r0, r3, r3 @@ -266,7 +266,7 @@ dMenu_Collect2D_c_NS__delete: /* 801B0110 001AD050 48 1B 20 B9 */ bl _savegpr_24 /* 801B0114 001AD054 7C 7F 1B 78 */ mr r31, r3 /* 801B0118 001AD058 80 63 00 04 */ lwz r3, 4(r3) -/* 801B011C 001AD05C 48 11 E6 69 */ bl getTotalFreeSize__7JKRHeapFv +/* 801B011C 001AD05C 48 11 E6 69 */ bl getTotalFreeSize__7JKRHeapCFv /* 801B0120 001AD060 88 9F 02 58 */ lbz r4, 0x258(r31) /* 801B0124 001AD064 88 1F 02 57 */ lbz r0, 0x257(r31) /* 801B0128 001AD068 3C 60 80 43 */ lis r3, lbl_80430188@ha @@ -7193,7 +7193,7 @@ dMenu_Collect3D_c_NS__create: /* 801B65B4 001B34F4 93 E1 00 0C */ stw r31, 0xc(r1) /* 801B65B8 001B34F8 7C 7F 1B 78 */ mr r31, r3 /* 801B65BC 001B34FC 80 63 00 04 */ lwz r3, 4(r3) -/* 801B65C0 001B3500 48 11 81 C5 */ bl getTotalFreeSize__7JKRHeapFv +/* 801B65C0 001B3500 48 11 81 C5 */ bl getTotalFreeSize__7JKRHeapCFv /* 801B65C4 001B3504 3C 60 00 02 */ lis r3, 0x00025800@ha /* 801B65C8 001B3508 38 63 58 00 */ addi r3, r3, 0x00025800@l /* 801B65CC 001B350C 80 9F 00 04 */ lwz r4, 4(r31) diff --git a/asm/d/menu/d_menu_dmap.s b/asm/d/menu/d_menu_dmap.s index 0a2a462b268..f1614446fbe 100644 --- a/asm/d/menu/d_menu_dmap.s +++ b/asm/d/menu/d_menu_dmap.s @@ -5355,9 +5355,9 @@ lbl_801BCDC4: /* 801BCE18 001B9D58 38 03 CB 10 */ addi r0, r3, lbl_803BCB10@l /* 801BCE1C 001B9D5C 90 1F 00 00 */ stw r0, 0(r31) /* 801BCE20 001B9D60 80 7F 00 E8 */ lwz r3, 0xe8(r31) -/* 801BCE24 001B9D64 48 11 19 61 */ bl getTotalFreeSize__7JKRHeapFv +/* 801BCE24 001B9D64 48 11 19 61 */ bl getTotalFreeSize__7JKRHeapCFv /* 801BCE28 001B9D68 80 7F 00 E8 */ lwz r3, 0xe8(r31) -/* 801BCE2C 001B9D6C 48 11 19 59 */ bl getTotalFreeSize__7JKRHeapFv +/* 801BCE2C 001B9D6C 48 11 19 59 */ bl getTotalFreeSize__7JKRHeapCFv /* 801BCE30 001B9D70 80 7F 00 08 */ lwz r3, 8(r31) /* 801BCE34 001B9D74 28 03 00 00 */ cmplwi r3, 0 /* 801BCE38 001B9D78 41 82 00 24 */ beq lbl_801BCE5C @@ -6055,10 +6055,10 @@ dMenu_Dmap_c_NS__create: /* 801BD7D0 001BA710 48 1A 4A 09 */ bl _savegpr_28 /* 801BD7D4 001BA714 7C 7F 1B 78 */ mr r31, r3 /* 801BD7D8 001BA718 80 63 00 E8 */ lwz r3, 0xe8(r3) -/* 801BD7DC 001BA71C 48 11 0F A9 */ bl getTotalFreeSize__7JKRHeapFv +/* 801BD7DC 001BA71C 48 11 0F A9 */ bl getTotalFreeSize__7JKRHeapCFv /* 801BD7E0 001BA720 83 BF 00 E8 */ lwz r29, 0xe8(r31) /* 801BD7E4 001BA724 7F A3 EB 78 */ mr r3, r29 -/* 801BD7E8 001BA728 48 11 0F 45 */ bl getFreeSize__7JKRHeapFv +/* 801BD7E8 001BA728 48 11 0F 45 */ bl getFreeSize__7JKRHeapCFv /* 801BD7EC 001BA72C 38 63 FF F0 */ addi r3, r3, -16 /* 801BD7F0 001BA730 7F A4 EB 78 */ mr r4, r29 /* 801BD7F4 001BA734 38 A0 00 00 */ li r5, 0 @@ -6068,7 +6068,7 @@ dMenu_Dmap_c_NS__create: /* 801BD804 001BA744 4B E5 19 C9 */ bl mDoExt_setCurrentHeap /* 801BD808 001BA748 7C 7E 1B 78 */ mr r30, r3 /* 801BD80C 001BA74C 80 7F 00 EC */ lwz r3, 0xec(r31) -/* 801BD810 001BA750 48 11 0F 75 */ bl getTotalFreeSize__7JKRHeapFv +/* 801BD810 001BA750 48 11 0F 75 */ bl getTotalFreeSize__7JKRHeapCFv /* 801BD814 001BA754 38 60 00 FC */ li r3, 0xfc /* 801BD818 001BA758 48 11 14 35 */ bl __nw__FUl /* 801BD81C 001BA75C 7C 7D 1B 79 */ or. r29, r3, r3 @@ -6173,7 +6173,7 @@ lbl_801BD984: /* 801BD98C 001BA8CC 80 7F 00 F0 */ lwz r3, 0xf0(r31) /* 801BD990 001BA8D0 B0 03 00 28 */ sth r0, 0x28(r3) /* 801BD994 001BA8D4 80 7F 00 E8 */ lwz r3, 0xe8(r31) -/* 801BD998 001BA8D8 48 11 0D ED */ bl getTotalFreeSize__7JKRHeapFv +/* 801BD998 001BA8D8 48 11 0D ED */ bl getTotalFreeSize__7JKRHeapCFv /* 801BD99C 001BA8DC 38 60 0D DC */ li r3, 0xddc /* 801BD9A0 001BA8E0 48 11 12 AD */ bl __nw__FUl /* 801BD9A4 001BA8E4 7C 60 1B 79 */ or. r0, r3, r3 diff --git a/asm/d/menu/d_menu_fmap.s b/asm/d/menu/d_menu_fmap.s index fc547354dd8..6f6647aaed7 100644 --- a/asm/d/menu/d_menu_fmap.s +++ b/asm/d/menu/d_menu_fmap.s @@ -353,7 +353,7 @@ lbl_801C6A70: /* 801C6AEC 001C3A2C 38 03 D6 64 */ addi r0, r3, lbl_803BD664@l /* 801C6AF0 001C3A30 90 1E 00 00 */ stw r0, 0(r30) /* 801C6AF4 001C3A34 80 7E 00 04 */ lwz r3, 4(r30) -/* 801C6AF8 001C3A38 48 10 7C 8D */ bl getTotalFreeSize__7JKRHeapFv +/* 801C6AF8 001C3A38 48 10 7C 8D */ bl getTotalFreeSize__7JKRHeapCFv /* 801C6AFC 001C3A3C 80 9E 00 8C */ lwz r4, 0x8c(r30) /* 801C6B00 001C3A40 28 04 00 00 */ cmplwi r4, 0 /* 801C6B04 001C3A44 41 82 00 14 */ beq lbl_801C6B18 @@ -537,7 +537,7 @@ dMenu_Fmap_c_NS__create: /* 801C6D74 001C3CB4 93 C1 00 28 */ stw r30, 0x28(r1) /* 801C6D78 001C3CB8 7C 7F 1B 78 */ mr r31, r3 /* 801C6D7C 001C3CBC 80 63 00 04 */ lwz r3, 4(r3) -/* 801C6D80 001C3CC0 48 10 7A 05 */ bl getTotalFreeSize__7JKRHeapFv +/* 801C6D80 001C3CC0 48 10 7A 05 */ bl getTotalFreeSize__7JKRHeapCFv /* 801C6D84 001C3CC4 38 60 12 48 */ li r3, 0x1248 /* 801C6D88 001C3CC8 48 10 7E C5 */ bl __nw__FUl /* 801C6D8C 001C3CCC 7C 60 1B 79 */ or. r0, r3, r3 diff --git a/asm/d/menu/d_menu_ring.s b/asm/d/menu/d_menu_ring.s index 180f78e222b..d49aed238da 100644 --- a/asm/d/menu/d_menu_ring.s +++ b/asm/d/menu/d_menu_ring.s @@ -31,7 +31,7 @@ dMenu_Ring_c: /* 801E9174 001E60B4 38 63 01 88 */ addi r3, r3, lbl_80430188@l /* 801E9178 001E60B8 98 03 00 E8 */ stb r0, 0xe8(r3) /* 801E917C 001E60BC 80 7F 00 04 */ lwz r3, 4(r31) -/* 801E9180 001E60C0 48 0E 56 05 */ bl getTotalFreeSize__7JKRHeapFv +/* 801E9180 001E60C0 48 0E 56 05 */ bl getTotalFreeSize__7JKRHeapCFv /* 801E9184 001E60C4 C0 02 A9 88 */ lfs f0, lbl_80454388-_SDA2_BASE_(r2) /* 801E9188 001E60C8 D0 1F 05 70 */ stfs f0, 0x570(r31) /* 801E918C 001E60CC 88 1F 06 BC */ lbz r0, 0x6bc(r31) @@ -1163,7 +1163,7 @@ lbl_801EA170: /* 801EA234 001E7174 3A D6 00 08 */ addi r22, r22, 8 /* 801EA238 001E7178 41 80 FF 38 */ blt lbl_801EA170 /* 801EA23C 001E717C 80 7F 00 04 */ lwz r3, 4(r31) -/* 801EA240 001E7180 48 0E 45 45 */ bl getTotalFreeSize__7JKRHeapFv +/* 801EA240 001E7180 48 0E 45 45 */ bl getTotalFreeSize__7JKRHeapCFv /* 801EA244 001E7184 80 7B 5D 30 */ lwz r3, 0x5d30(r27) /* 801EA248 001E7188 3C 80 54 49 */ lis r4, 0x54494D47@ha /* 801EA24C 001E718C 38 84 4D 47 */ addi r4, r4, 0x54494D47@l @@ -1493,7 +1493,7 @@ lbl_801EA6E4: /* 801EA72C 001E766C 38 03 DF 5C */ addi r0, r3, lbl_803BDF5C@l /* 801EA730 001E7670 90 1F 00 00 */ stw r0, 0(r31) /* 801EA734 001E7674 80 7F 00 04 */ lwz r3, 4(r31) -/* 801EA738 001E7678 48 0E 40 4D */ bl getTotalFreeSize__7JKRHeapFv +/* 801EA738 001E7678 48 0E 40 4D */ bl getTotalFreeSize__7JKRHeapCFv /* 801EA73C 001E767C 38 00 00 00 */ li r0, 0 /* 801EA740 001E7680 3C 60 80 43 */ lis r3, lbl_80430188@ha /* 801EA744 001E7684 38 63 01 88 */ addi r3, r3, lbl_80430188@l @@ -1663,7 +1663,7 @@ lbl_801EA95C: /* 801EA988 001E78C8 38 00 00 00 */ li r0, 0 /* 801EA98C 001E78CC 90 1F 00 14 */ stw r0, 0x14(r31) /* 801EA990 001E78D0 80 7F 00 04 */ lwz r3, 4(r31) -/* 801EA994 001E78D4 48 0E 3D F1 */ bl getTotalFreeSize__7JKRHeapFv +/* 801EA994 001E78D4 48 0E 3D F1 */ bl getTotalFreeSize__7JKRHeapCFv /* 801EA998 001E78D8 80 7F 01 B8 */ lwz r3, 0x1b8(r31) /* 801EA99C 001E78DC 28 03 00 00 */ cmplwi r3, 0 /* 801EA9A0 001E78E0 41 82 00 18 */ beq lbl_801EA9B8 diff --git a/asm/d/menu/d_menu_window.s b/asm/d/menu/d_menu_window.s index d9ae9d046ed..323e901293b 100644 --- a/asm/d/menu/d_menu_window.s +++ b/asm/d/menu/d_menu_window.s @@ -3491,7 +3491,7 @@ dMw_c_NS_markMemSize: /* 801FD0AC 001F9FEC 2C 00 00 00 */ cmpwi r0, 0 /* 801FD0B0 001F9FF0 40 82 00 10 */ bne lbl_801FD0C0 /* 801FD0B4 001F9FF4 80 7F 01 00 */ lwz r3, 0x100(r31) -/* 801FD0B8 001F9FF8 48 0D 16 CD */ bl getTotalFreeSize__7JKRHeapFv +/* 801FD0B8 001F9FF8 48 0D 16 CD */ bl getTotalFreeSize__7JKRHeapCFv /* 801FD0BC 001F9FFC 90 7F 01 38 */ stw r3, 0x138(r31) lbl_801FD0C0: /* 801FD0C0 001FA000 83 E1 00 0C */ lwz r31, 0xc(r1) @@ -3511,7 +3511,7 @@ dMw_c_NS_checkMemSize: /* 801FD0EC 001FA02C 2C 00 00 00 */ cmpwi r0, 0 /* 801FD0F0 001FA030 40 81 00 3C */ ble lbl_801FD12C /* 801FD0F4 001FA034 80 7F 01 00 */ lwz r3, 0x100(r31) -/* 801FD0F8 001FA038 48 0D 16 8D */ bl getTotalFreeSize__7JKRHeapFv +/* 801FD0F8 001FA038 48 0D 16 8D */ bl getTotalFreeSize__7JKRHeapCFv /* 801FD0FC 001FA03C 80 1F 01 38 */ lwz r0, 0x138(r31) /* 801FD100 001FA040 7C 00 18 51 */ subf. r0, r0, r3 /* 801FD104 001FA044 40 80 00 08 */ bge lbl_801FD10C diff --git a/asm/d/menu/item/d_menu_item_explain.s b/asm/d/menu/item/d_menu_item_explain.s index f4e1fbdc5c8..dcebf2096fa 100644 --- a/asm/d/menu/item/d_menu_item_explain.s +++ b/asm/d/menu/item/d_menu_item_explain.s @@ -38,7 +38,7 @@ dMenu_ItemExplain_c: /* 801DA7CC 001D770C 90 1F 00 08 */ stw r0, 8(r31) /* 801DA7D0 001D7710 93 DF 00 B8 */ stw r30, 0xb8(r31) /* 801DA7D4 001D7714 80 7F 00 04 */ lwz r3, 4(r31) -/* 801DA7D8 001D7718 48 0F 3F AD */ bl getTotalFreeSize__7JKRHeapFv +/* 801DA7D8 001D7718 48 0F 3F AD */ bl getTotalFreeSize__7JKRHeapCFv /* 801DA7DC 001D771C 38 00 00 00 */ li r0, 0 /* 801DA7E0 001D7720 90 1F 00 C8 */ stw r0, 0xc8(r31) /* 801DA7E4 001D7724 90 1F 00 CC */ stw r0, 0xcc(r31) diff --git a/asm/d/msg/d_msg_object.s b/asm/d/msg/d_msg_object.s index 3b94b5a8ce3..1324cff5004 100644 --- a/asm/d/msg/d_msg_object.s +++ b/asm/d/msg/d_msg_object.s @@ -3872,7 +3872,7 @@ lbl_802361F4: /* 80236208 00233148 90 7F 01 44 */ stw r3, 0x144(r31) lbl_8023620C: /* 8023620C 0023314C 80 7F 01 44 */ lwz r3, 0x144(r31) -/* 80236210 00233150 48 09 85 75 */ bl getTotalFreeSize__7JKRHeapFv +/* 80236210 00233150 48 09 85 75 */ bl getTotalFreeSize__7JKRHeapCFv /* 80236214 00233154 3B C0 00 00 */ li r30, 0 /* 80236218 00233158 80 1F 01 0C */ lwz r0, 0x10c(r31) /* 8023621C 0023315C 28 00 00 00 */ cmplwi r0, 0 @@ -6104,7 +6104,7 @@ dMsgObject_c_NS_setTalkActorLocal: /* 80237FA8 00234EE8 4B DD 72 25 */ bl mDoExt_setCurrentHeap /* 80237FAC 00234EEC 7C 7D 1B 78 */ mr r29, r3 /* 80237FB0 00234EF0 80 7F 5E C8 */ lwz r3, 0x5ec8(r31) -/* 80237FB4 00234EF4 48 09 67 D1 */ bl getTotalFreeSize__7JKRHeapFv +/* 80237FB4 00234EF4 48 09 67 D1 */ bl getTotalFreeSize__7JKRHeapCFv /* 80237FB8 00234EF8 7F C3 F3 78 */ mr r3, r30 /* 80237FBC 00234EFC 4B DE 79 F9 */ bl fopMsgM_setStageLayer /* 80237FC0 00234F00 38 00 00 00 */ li r0, 0 diff --git a/asm/d/msg/scrn/d_msg_scrn_kanban.s b/asm/d/msg/scrn/d_msg_scrn_kanban.s index d2cffff5681..8b6c0e77ae2 100644 --- a/asm/d/msg/scrn/d_msg_scrn_kanban.s +++ b/asm/d/msg/scrn/d_msg_scrn_kanban.s @@ -28,7 +28,7 @@ lbl_80244E7C: /* 80244E84 00241DC4 90 7F 00 D4 */ stw r3, 0xd4(r31) lbl_80244E88: /* 80244E88 00241DC8 80 7F 00 D4 */ lwz r3, 0xd4(r31) -/* 80244E8C 00241DCC 48 08 98 F9 */ bl getTotalFreeSize__7JKRHeapFv +/* 80244E8C 00241DCC 48 08 98 F9 */ bl getTotalFreeSize__7JKRHeapCFv /* 80244E90 00241DD0 7F E3 FB 78 */ mr r3, r31 /* 80244E94 00241DD4 4B FF 72 D9 */ bl dMsgScrnBase_c_NS_init /* 80244E98 00241DD8 38 60 01 18 */ li r3, 0x118 diff --git a/asm/d/msg/scrn/d_msg_scrn_tree.s b/asm/d/msg/scrn/d_msg_scrn_tree.s index afd12b2e1e7..9fe58e012df 100644 --- a/asm/d/msg/scrn/d_msg_scrn_tree.s +++ b/asm/d/msg/scrn/d_msg_scrn_tree.s @@ -29,7 +29,7 @@ lbl_8024899C: /* 802489A4 002458E4 90 7F 00 D8 */ stw r3, 0xd8(r31) lbl_802489A8: /* 802489A8 002458E8 80 7F 00 D8 */ lwz r3, 0xd8(r31) -/* 802489AC 002458EC 48 08 5D D9 */ bl getTotalFreeSize__7JKRHeapFv +/* 802489AC 002458EC 48 08 5D D9 */ bl getTotalFreeSize__7JKRHeapCFv /* 802489B0 002458F0 7F E3 FB 78 */ mr r3, r31 /* 802489B4 002458F4 4B FF 37 B9 */ bl dMsgScrnBase_c_NS_init /* 802489B8 002458F8 28 1C 00 00 */ cmplwi r28, 0 diff --git a/asm/f/op/actor/f_op_actor_mng.s b/asm/f/op/actor/f_op_actor_mng.s index c96e25dcb21..908771a21c1 100644 --- a/asm/f/op/actor/f_op_actor_mng.s +++ b/asm/f/op/actor/f_op_actor_mng.s @@ -728,7 +728,7 @@ lbl_8001A22C: /* 8001A260 000171A0 54 00 06 3F */ clrlwi. r0, r0, 0x18 /* 8001A264 000171A4 40 82 00 58 */ bne lbl_8001A2BC /* 8001A268 000171A8 7F C3 F3 78 */ mr r3, r30 -/* 8001A26C 000171AC 48 2B 44 C1 */ bl getFreeSize__7JKRHeapFv +/* 8001A26C 000171AC 48 2B 44 C1 */ bl getFreeSize__7JKRHeapCFv /* 8001A270 000171B0 7C 65 1B 78 */ mr r5, r3 /* 8001A274 000171B4 3C 60 80 38 */ lis r3, lbl_803788C8@ha /* 8001A278 000171B8 38 63 88 C8 */ addi r3, r3, lbl_803788C8@l @@ -775,7 +775,7 @@ lbl_8001A2F8: /* 8001A310 00017250 54 00 06 3F */ clrlwi. r0, r0, 0x18 /* 8001A314 00017254 40 82 00 38 */ bne lbl_8001A34C /* 8001A318 00017258 7F C3 F3 78 */ mr r3, r30 -/* 8001A31C 0001725C 48 2B 44 11 */ bl getFreeSize__7JKRHeapFv +/* 8001A31C 0001725C 48 2B 44 11 */ bl getFreeSize__7JKRHeapCFv /* 8001A320 00017260 7C 64 1B 78 */ mr r4, r3 /* 8001A324 00017264 3C 60 80 38 */ lis r3, lbl_803788C8@ha /* 8001A328 00017268 38 63 88 C8 */ addi r3, r3, lbl_803788C8@l @@ -802,12 +802,12 @@ lbl_8001A374: /* 8001A374 000172B4 3B 00 00 00 */ li r24, 0 /* 8001A378 000172B8 83 3E 00 38 */ lwz r25, 0x38(r30) /* 8001A37C 000172BC 7F C3 F3 78 */ mr r3, r30 -/* 8001A380 000172C0 48 2B 43 AD */ bl getFreeSize__7JKRHeapFv +/* 8001A380 000172C0 48 2B 43 AD */ bl getFreeSize__7JKRHeapCFv /* 8001A384 000172C4 7C 63 C8 50 */ subf r3, r3, r25 /* 8001A388 000172C8 38 03 00 1F */ addi r0, r3, 0x1f /* 8001A38C 000172CC 54 19 00 34 */ rlwinm r25, r0, 0, 0, 0x1a /* 8001A390 000172D0 4B FF 49 C1 */ bl mDoExt_getGameHeap -/* 8001A394 000172D4 48 2B 43 99 */ bl getFreeSize__7JKRHeapFv +/* 8001A394 000172D4 48 2B 43 99 */ bl getFreeSize__7JKRHeapCFv /* 8001A398 000172D8 38 19 00 90 */ addi r0, r25, 0x90 /* 8001A39C 000172DC 7C 00 18 40 */ cmplw r0, r3 /* 8001A3A0 000172E0 40 80 00 14 */ bge lbl_8001A3B4 diff --git a/asm/m/Do/dvd/m_Do_dvd_thread.s b/asm/m/Do/dvd/m_Do_dvd_thread.s index 372a39a7a1a..5a2d1dfbf18 100644 --- a/asm/m/Do/dvd/m_Do_dvd_thread.s +++ b/asm/m/Do/dvd/m_Do_dvd_thread.s @@ -969,7 +969,7 @@ lbl_8001651C: /* 80016530 00013470 28 04 00 00 */ cmplwi r4, 0 /* 80016534 00013474 41 82 00 10 */ beq lbl_80016544 /* 80016538 00013478 7F E3 FB 78 */ mr r3, r31 -/* 8001653C 0001347C 48 2B 81 C5 */ bl getSize__7JKRHeapFPv +/* 8001653C 0001347C 48 2B 81 C5 */ bl getSize__7JKRHeapCFPv /* 80016540 00013480 90 7E 00 20 */ stw r3, 0x20(r30) lbl_80016544: /* 80016544 00013484 38 00 00 01 */ li r0, 1 diff --git a/asm/m/Do/m_Do_machine.s b/asm/m/Do/m_Do_machine.s index 121b727f99b..30ffd81de8c 100644 --- a/asm/m/Do/m_Do_machine.s +++ b/asm/m/Do/m_Do_machine.s @@ -195,10 +195,10 @@ lbl_8000B45C: /* 8000B484 000083C4 4B FF FD 69 */ bl myGetHeapTypeByString /* 8000B488 000083C8 7C 7D 1B 78 */ mr r29, r3 /* 8000B48C 000083CC 7F E3 FB 78 */ mr r3, r31 -/* 8000B490 000083D0 48 2C 32 F5 */ bl getTotalFreeSize__7JKRHeapFv +/* 8000B490 000083D0 48 2C 32 F5 */ bl getTotalFreeSize__7JKRHeapCFv /* 8000B494 000083D4 7C 7E 1B 78 */ mr r30, r3 /* 8000B498 000083D8 7F E3 FB 78 */ mr r3, r31 -/* 8000B49C 000083DC 48 2C 32 91 */ bl getFreeSize__7JKRHeapFv +/* 8000B49C 000083DC 48 2C 32 91 */ bl getFreeSize__7JKRHeapCFv /* 8000B4A0 000083E0 7C 64 1B 78 */ mr r4, r3 /* 8000B4A4 000083E4 93 81 00 08 */ stw r28, 8(r1) /* 8000B4A8 000083E8 93 A1 00 0C */ stw r29, 0xc(r1) @@ -947,7 +947,7 @@ lbl_8000BED4: /* 8000BED4 00008E14 3C 60 80 01 */ lis r3, myMemoryErrorRoutine@ha .global myMemoryErrorRoutine /* 8000BED8 00008E18 38 63 B3 EC */ addi r3, r3, myMemoryErrorRoutine@l -/* 8000BEDC 00008E1C 48 2C 2C AD */ bl setErrorHandler__7JKRHeapFPFPvUli_v +/* 8000BEDC 00008E1C 48 2C 2C AD */ bl setErrorHandler__7JKRHeapFPFP7JKRHeapUli_v /* 8000BEE0 00008E20 80 6D 8D F8 */ lwz r3, lbl_80451378-_SDA_BASE_(r13) /* 8000BEE4 00008E24 38 80 00 01 */ li r4, 1 /* 8000BEE8 00008E28 48 2C 2C 91 */ bl setErrorFlag__7JKRHeapFb @@ -999,7 +999,7 @@ lbl_8000BED4: /* 8000BFA0 00008EE0 4B FF FD 59 */ bl my_SysPrintHeap /* 8000BFA4 00008EE4 83 ED 8D F0 */ lwz r31, lbl_80451370-_SDA_BASE_(r13) /* 8000BFA8 00008EE8 7F E3 FB 78 */ mr r3, r31 -/* 8000BFAC 00008EEC 48 2C 27 81 */ bl getFreeSize__7JKRHeapFv +/* 8000BFAC 00008EEC 48 2C 27 81 */ bl getFreeSize__7JKRHeapCFv /* 8000BFB0 00008EF0 3F C3 FF FF */ addis r30, r3, 0xffff /* 8000BFB4 00008EF4 7F C3 F3 78 */ mr r3, r30 /* 8000BFB8 00008EF8 7F E4 FB 78 */ mr r4, r31 diff --git a/asm/m/Do/machine/m_Do_machine_exception.s b/asm/m/Do/machine/m_Do_machine_exception.s index 294d4b83a88..93797487c02 100644 --- a/asm/m/Do/machine/m_Do_machine_exception.s +++ b/asm/m/Do/machine/m_Do_machine_exception.s @@ -66,22 +66,22 @@ dispHeapInfo: /* 80017E48 00014D88 7C 7F 1B 78 */ mr r31, r3 /* 80017E4C 00014D8C 83 CD 86 A8 */ lwz r30, lbl_80450C28-_SDA_BASE_(r13) /* 80017E50 00014D90 83 AD 86 B4 */ lwz r29, lbl_80450C34-_SDA_BASE_(r13) -/* 80017E54 00014D94 48 2B 68 D9 */ bl getFreeSize__7JKRHeapFv +/* 80017E54 00014D94 48 2B 68 D9 */ bl getFreeSize__7JKRHeapCFv /* 80017E58 00014D98 7C 77 1B 78 */ mr r23, r3 /* 80017E5C 00014D9C 7F C3 F3 78 */ mr r3, r30 -/* 80017E60 00014DA0 48 2B 68 CD */ bl getFreeSize__7JKRHeapFv +/* 80017E60 00014DA0 48 2B 68 CD */ bl getFreeSize__7JKRHeapCFv /* 80017E64 00014DA4 7C 78 1B 78 */ mr r24, r3 /* 80017E68 00014DA8 7F A3 EB 78 */ mr r3, r29 -/* 80017E6C 00014DAC 48 2B 68 C1 */ bl getFreeSize__7JKRHeapFv +/* 80017E6C 00014DAC 48 2B 68 C1 */ bl getFreeSize__7JKRHeapCFv /* 80017E70 00014DB0 7C 79 1B 78 */ mr r25, r3 /* 80017E74 00014DB4 7F E3 FB 78 */ mr r3, r31 -/* 80017E78 00014DB8 48 2B 69 0D */ bl getTotalFreeSize__7JKRHeapFv +/* 80017E78 00014DB8 48 2B 69 0D */ bl getTotalFreeSize__7JKRHeapCFv /* 80017E7C 00014DBC 7C 7A 1B 78 */ mr r26, r3 /* 80017E80 00014DC0 7F C3 F3 78 */ mr r3, r30 -/* 80017E84 00014DC4 48 2B 69 01 */ bl getTotalFreeSize__7JKRHeapFv +/* 80017E84 00014DC4 48 2B 69 01 */ bl getTotalFreeSize__7JKRHeapCFv /* 80017E88 00014DC8 7C 7B 1B 78 */ mr r27, r3 /* 80017E8C 00014DCC 7F A3 EB 78 */ mr r3, r29 -/* 80017E90 00014DD0 48 2B 68 F5 */ bl getTotalFreeSize__7JKRHeapFv +/* 80017E90 00014DD0 48 2B 68 F5 */ bl getTotalFreeSize__7JKRHeapCFv /* 80017E94 00014DD4 7C 7C 1B 78 */ mr r28, r3 /* 80017E98 00014DD8 3C 60 80 37 */ lis r3, lbl_80374460@ha /* 80017E9C 00014DDC 38 63 44 60 */ addi r3, r3, lbl_80374460@l diff --git a/include/JSystem/JKernel/JKRAssertHeap/JKRAssertHeap.h b/include/JSystem/JKernel/JKRAssertHeap/JKRAssertHeap.h index b7a1e742973..c97484f7af6 100644 --- a/include/JSystem/JKernel/JKRAssertHeap/JKRAssertHeap.h +++ b/include/JSystem/JKernel/JKRAssertHeap/JKRAssertHeap.h @@ -10,23 +10,23 @@ protected: virtual ~JKRAssertHeap(); public: - /* vt[04] */ virtual u32 getHeapType(void); /* override */ - /* vt[05] */ virtual bool check(void); /* override */ - /* vt[06] */ virtual bool dump_sort(void); /* override */ - /* vt[07] */ virtual bool dump(void); /* override */ - /* vt[08] */ virtual void do_destroy(void); /* override */ - /* vt[09] */ virtual void* do_alloc(u32, int); /* override */ - /* vt[10] */ virtual void do_free(void*); /* override */ - /* vt[11] */ virtual void do_freeAll(void); /* override */ - /* vt[12] */ virtual void do_freeTail(void); /* override */ - /* vt[13] */ virtual void do_fillFreeArea(void); /* override */ - /* vt[14] */ virtual s32 do_resize(void*, u32); /* override */ - /* vt[15] */ virtual s32 do_getSize(void*); /* override */ - /* vt[16] */ virtual s32 do_getFreeSize(void); /* override */ - /* vt[17] */ virtual void* do_getMaxFreeBlock(void); /* override */ - /* vt[18] */ virtual s32 do_getTotalFreeSize(void); /* override */ - /* vt[19] */ virtual u8 do_changeGroupID(u8 param_1); /* override */ - /* vt[20] */ virtual u8 do_getCurrentGroupId(void); /* override */ + /* vt[04] */ virtual u32 getHeapType(void) const; /* override */ + /* vt[05] */ virtual bool check(void); /* override */ + /* vt[06] */ virtual bool dump_sort(void); /* override */ + /* vt[07] */ virtual bool dump(void); /* override */ + /* vt[08] */ virtual void do_destroy(void); /* override */ + /* vt[09] */ virtual void* do_alloc(u32, int); /* override */ + /* vt[10] */ virtual void do_free(void*); /* override */ + /* vt[11] */ virtual void do_freeAll(void); /* override */ + /* vt[12] */ virtual void do_freeTail(void); /* override */ + /* vt[13] */ virtual void do_fillFreeArea(void); /* override */ + /* vt[14] */ virtual s32 do_resize(void*, u32); /* override */ + /* vt[15] */ virtual s32 do_getSize(void*) const; /* override */ + /* vt[16] */ virtual s32 do_getFreeSize(void) const; /* override */ + /* vt[17] */ virtual void* do_getMaxFreeBlock(void) const; /* override */ + /* vt[18] */ virtual s32 do_getTotalFreeSize(void) const; /* override */ + /* vt[19] */ virtual u8 do_changeGroupID(u8 param_1); /* override */ + /* vt[20] */ virtual u8 do_getCurrentGroupId(void) const; /* override */ public: static JKRAssertHeap* create(JKRHeap*); diff --git a/include/JSystem/JKernel/JKRExpHeap/JKRExpHeap.h b/include/JSystem/JKernel/JKRExpHeap/JKRExpHeap.h index 02705f338f9..0b40a15bb4f 100644 --- a/include/JSystem/JKernel/JKRExpHeap/JKRExpHeap.h +++ b/include/JSystem/JKernel/JKRExpHeap/JKRExpHeap.h @@ -15,20 +15,13 @@ public: void getHeapBlock(void*); void newGroupId(u8 groupId) { this->mGroupId = groupId; } - - bool isValid() { return this->mMagic == 0x484d; } - - bool _isTempMemBlock() { return (this->mFlags & 0x80) ? true : false; } - + bool isValid() const { return this->mMagic == 0x484d; } + bool _isTempMemBlock() const { return (this->mFlags & 0x80) ? true : false; } int getAlignment() const { return this->mFlags & 0x7f; } - - void* getContent() { return (void*)(this + 1); } - - CMemBlock* getPrevBlock() { return this->mPrev; } - - CMemBlock* getNextBlock() { return this->mNext; } - - u32 getSize() { return this->size; } + void* getContent() const { return (void*)(this + 1); } + CMemBlock* getPrevBlock() const { return this->mPrev; } + CMemBlock* getNextBlock() const { return this->mNext; } + u32 getSize() const { return this->size; } private: u16 mMagic; @@ -57,10 +50,10 @@ protected: public: s32 getUsedSize(u8) const; s32 getTotalUsedSize(void) const; - CMemBlock* getHeadUsedList() { return mHeadUsedList; } + CMemBlock* getHeadUsedList() const { return mHeadUsedList; } public: - /* vt[04] */ virtual u32 getHeapType(); /* override */ + /* vt[04] */ virtual u32 getHeapType() const; /* override */ /* vt[05] */ virtual bool check(); /* override */ /* vt[06] */ virtual bool dump_sort(); /* override */ /* vt[07] */ virtual bool dump(); /* override */ @@ -71,12 +64,12 @@ public: /* vt[12] */ virtual void do_freeTail(); /* override */ /* vt[13] */ virtual void do_fillFreeArea(); /* override */ /* vt[14] */ virtual s32 do_resize(void* ptr, u32 size); /* override */ - /* vt[15] */ virtual s32 do_getSize(void* ptr); /* override */ - /* vt[16] */ virtual s32 do_getFreeSize(); /* override */ - /* vt[17] */ virtual void* do_getMaxFreeBlock(); /* override */ - /* vt[18] */ virtual s32 do_getTotalFreeSize(); /* override */ + /* vt[15] */ virtual s32 do_getSize(void* ptr) const; /* override */ + /* vt[16] */ virtual s32 do_getFreeSize() const; /* override */ + /* vt[17] */ virtual void* do_getMaxFreeBlock() const; /* override */ + /* vt[18] */ virtual s32 do_getTotalFreeSize() const; /* override */ /* vt[19] */ virtual u8 do_changeGroupID(u8 newGroupID); /* override */ - /* vt[20] */ virtual u8 do_getCurrentGroupId(); /* override */ + /* vt[20] */ virtual u8 do_getCurrentGroupId() const; /* override */ /* vt[21] */ virtual void state_register(JKRHeap::TState*, u32) const; /* override */ /* vt[22] */ virtual bool state_compare(JKRHeap::TState const&, JKRHeap::TState const&) const; /* override */ diff --git a/include/JSystem/JKernel/JKRExpHeap/asm/func_802CEE2C.s b/include/JSystem/JKernel/JKRExpHeap/asm/func_802CEE2C.s index eea4c8257fc..aa24a4db220 100644 --- a/include/JSystem/JKernel/JKRExpHeap/asm/func_802CEE2C.s +++ b/include/JSystem/JKernel/JKRExpHeap/asm/func_802CEE2C.s @@ -15,7 +15,7 @@ lbl_802CEE50: /* 802CEE58 002CBD98 40 82 00 10 */ bne lbl_802CEE68 /* 802CEE5C 002CBD9C 7F 83 E3 78 */ mr r3, r28 /* 802CEE60 002CBDA0 38 80 00 10 */ li r4, 0x10 -/* 802CEE64 002CBDA4 4B FF F9 79 */ bl getMaxAllocatableSize__7JKRHeapFi +/* 802CEE64 002CBDA4 4B FF F9 79 */ bl getMaxAllocatableSize__7JKRHeapCFi lbl_802CEE68: /* 802CEE68 002CBDA8 54 7F 00 36 */ rlwinm r31, r3, 0, 0, 0x1b /* 802CEE6C 002CBDAC 28 1F 00 A0 */ cmplwi r31, 0xa0 diff --git a/include/JSystem/JKernel/JKRExpHeap/asm/func_802D0938.s b/include/JSystem/JKernel/JKRExpHeap/asm/func_802D0938.s index 7be4bc642e5..6ecd30811cb 100644 --- a/include/JSystem/JKernel/JKRExpHeap/asm/func_802D0938.s +++ b/include/JSystem/JKernel/JKRExpHeap/asm/func_802D0938.s @@ -16,7 +16,7 @@ /* 802D096C 002CD8AC 90 7E 00 00 */ stw r3, 0(r30) /* 802D0970 002CD8B0 48 00 00 14 */ b lbl_802D0984 lbl_802D0974: -/* 802D0974 002CD8B4 4B FF DE 11 */ bl getTotalFreeSize__7JKRHeapFv +/* 802D0974 002CD8B4 4B FF DE 11 */ bl getTotalFreeSize__7JKRHeapCFv /* 802D0978 002CD8B8 80 1D 00 38 */ lwz r0, 0x38(r29) /* 802D097C 002CD8BC 7C 03 00 50 */ subf r0, r3, r0 /* 802D0980 002CD8C0 90 1E 00 00 */ stw r0, 0(r30) diff --git a/include/JSystem/JKernel/JKRHeap/JKRHeap.h b/include/JSystem/JKernel/JKRHeap/JKRHeap.h index 183f0d4c4ca..a7470eda219 100644 --- a/include/JSystem/JKernel/JKRHeap/JKRHeap.h +++ b/include/JSystem/JKernel/JKRHeap/JKRHeap.h @@ -5,10 +5,27 @@ #include "dolphin/types.h" #include "global.h" -typedef void (*JKRErrorHandler)(void*, u32, int); +class JKRHeap; +typedef void (*JKRErrorHandler)(JKRHeap*, u32, int); +extern JKRErrorHandler lbl_8045137C; // JKRHeap::mErrorHandler + class JKRHeap : public JKRDisposer { public: - class TState {}; + class TState { + public: + u32 mUsedSize; + u32 mCheckCode; + u32 mBuf; + u32 field_0xc; + JKRHeap* mHeap; + u32 mId; + + public: + u32 getUsedSize() const { return mUsedSize; } + u32 getCheckCode() const { return mCheckCode; } + JKRHeap* getHeap() const { return mHeap; } + u32 getId() const { return mId; } + }; public: JKRHeap(void*, u32, JKRHeap*, bool); @@ -23,12 +40,12 @@ public: void freeAll(); void freeTail(); s32 resize(void* ptr, u32 size); - s32 getSize(void* ptr); - s32 getFreeSize(); - void* getMaxFreeBlock(); - s32 getTotalFreeSize(); + s32 getSize(void* ptr) const; + s32 getFreeSize() const; + void* getMaxFreeBlock() const; + s32 getTotalFreeSize() const; u8 changeGroupID(u8 newGroupId); - s32 getMaxAllocatableSize(int alignment); + u32 getMaxAllocatableSize(int alignment) const; JKRHeap* find(void* ptr) const; JKRHeap* findAllHeap(void* ptr) const; @@ -42,7 +59,7 @@ public: bool isSubHeap(JKRHeap* heap) const; /* vt[03] */ virtual void callAllDisposer(); - /* vt[04] */ virtual u32 getHeapType() = 0; + /* vt[04] */ virtual u32 getHeapType() const = 0; /* vt[05] */ virtual bool check() = 0; /* vt[06] */ virtual bool dump_sort(); /* vt[07] */ virtual bool dump() = 0; @@ -53,25 +70,28 @@ public: /* vt[12] */ virtual void do_freeTail() = 0; /* vt[13] */ virtual void do_fillFreeArea() = 0; /* vt[14] */ virtual s32 do_resize(void* ptr, u32 size) = 0; - /* vt[15] */ virtual s32 do_getSize(void* ptr) = 0; - /* vt[16] */ virtual s32 do_getFreeSize() = 0; - /* vt[17] */ virtual void* do_getMaxFreeBlock() = 0; - /* vt[18] */ virtual s32 do_getTotalFreeSize() = 0; + /* vt[15] */ virtual s32 do_getSize(void* ptr) const = 0; + /* vt[16] */ virtual s32 do_getFreeSize() const = 0; + /* vt[17] */ virtual void* do_getMaxFreeBlock() const = 0; + /* vt[18] */ virtual s32 do_getTotalFreeSize() const = 0; /* vt[19] */ virtual u8 do_changeGroupID(u8 newGroupID); - /* vt[20] */ virtual u8 do_getCurrentGroupId(); + /* vt[20] */ virtual u8 do_getCurrentGroupId() const; /* vt[21] */ virtual void state_register(JKRHeap::TState*, unsigned long) const; /* vt[22] */ virtual bool state_compare(JKRHeap::TState const&, JKRHeap::TState const&) const; - /* vt[23] */ virtual void state_dump(); + /* vt[23] */ virtual void state_dump(JKRHeap::TState const&) const; void setDebugFill(bool debugFill) { mDebugFill = debugFill; } - + bool getDebugFill() const { return mDebugFill; } void* getStartAddr() const { return (void*)mStart; } - void* getEndAddr() const { return (void*)mEnd; } - u32 getSize() const { return mSize; } - bool getErrorFlag() const { return mErrorFlag; } + void callErrorHandler(JKRHeap* heap, u32 size, int alignment) { + // lbl_8045137C = JKRHeap::mErrorHandler + if (lbl_8045137C) { + (*lbl_8045137C)(heap, size, alignment); + } + } JKRHeap* getParent() const { JSUTree* parent = mChildTree.getParent(); @@ -79,21 +99,17 @@ public: } JSUTree& getHeapTree() { return mChildTree; } - void appendDisposer(JKRDisposer* disposer) { mDisposerList.append(&disposer->mLink); } - void removeDisposer(JKRDisposer* disposer) { mDisposerList.remove(&disposer->mLink); } - void lock() { OSLockMutex(&mMutex); } - void unlock() { OSUnlockMutex(&mMutex); } protected: /* 0x00 */ // vtable /* 0x04 */ // JKRDisposer /* 0x18 */ OSMutex mMutex; - /* 0x30 */ u32 mStart; - /* 0x34 */ u32 mEnd; + /* 0x30 */ u8* mStart; + /* 0x34 */ u8* mEnd; /* 0x38 */ u32 mSize; /* 0x3C */ bool mDebugFill; /* 0x3D */ bool mCheckMemoryFilled; @@ -118,23 +134,24 @@ public: static bool checkMemoryFilled(void* src, u32 size, u8 value); static void JKRDefaultMemoryErrorRoutine(JKRHeap* heap, u32 size, int alignment); - static JKRErrorHandler setErrorHandler(JKRErrorHandler error_handler); + static JKRErrorHandler setErrorHandler(JKRErrorHandler errorHandler); static void* getCodeStart(void) { return lbl_80451384; } - static void* getCodeEnd(void) { return lbl_80451388; } - static void* getUserRamStart(void) { return lbl_8045138C; } - static void* getUserRamEnd(void) { return lbl_80451390; } - static u32 getMemorySize(void) { return lbl_80451394; } - static JKRHeap* getRootHeap() { return lbl_80451378; } - static JKRHeap* getSystemHeap() { return lbl_80451370; } - static JKRHeap* getCurrentHeap() { return lbl_80451374; } + + static void setState_u32ID_(TState* state, u32 id) { state->mId = id; } + static void setState_uUsedSize_(TState* state, u32 usedSize) { state->mUsedSize = usedSize; } + static void setState_u32CheckCode_(TState* state, u32 checkCode) { + state->mCheckCode = checkCode; + } + static void* getState_buf_(TState* state) { return &state->mBuf; } + static void* getState_(TState* state) { return getState_buf_(state); } }; void* operator new(u32 size); diff --git a/include/JSystem/JKernel/JKRHeap/asm/func_802CE6B0.s b/include/JSystem/JKernel/JKRHeap/asm/func_802CE6B0.s index fa01007842a..e3bce8140a0 100644 --- a/include/JSystem/JKernel/JKRHeap/asm/func_802CE6B0.s +++ b/include/JSystem/JKernel/JKRHeap/asm/func_802CE6B0.s @@ -13,7 +13,7 @@ lbl_802CE6E0: /* 802CE6E0 002CB620 7C 83 23 78 */ mr r3, r4 /* 802CE6E4 002CB624 7F E4 FB 78 */ mr r4, r31 -/* 802CE6E8 002CB628 48 00 00 19 */ bl getSize__7JKRHeapFPv +/* 802CE6E8 002CB628 48 00 00 19 */ bl getSize__7JKRHeapCFPv lbl_802CE6EC: /* 802CE6EC 002CB62C 83 E1 00 0C */ lwz r31, 0xc(r1) /* 802CE6F0 002CB630 80 01 00 14 */ lwz r0, 0x14(r1) diff --git a/include/JSystem/JKernel/JKRHeap/asm/func_802CE7DC.s b/include/JSystem/JKernel/JKRHeap/asm/func_802CE7DC.s index db15ed3a640..7aa4377b04b 100644 --- a/include/JSystem/JKernel/JKRHeap/asm/func_802CE7DC.s +++ b/include/JSystem/JKernel/JKRHeap/asm/func_802CE7DC.s @@ -5,10 +5,10 @@ /* 802CE7EC 002CB72C 48 09 39 F1 */ bl _savegpr_29 /* 802CE7F0 002CB730 7C 7D 1B 78 */ mr r29, r3 /* 802CE7F4 002CB734 7C 9E 23 78 */ mr r30, r4 -/* 802CE7F8 002CB738 4B FF FF 61 */ bl getMaxFreeBlock__7JKRHeapFv +/* 802CE7F8 002CB738 4B FF FF 61 */ bl getMaxFreeBlock__7JKRHeapCFv /* 802CE7FC 002CB73C 7C 7F 1B 78 */ mr r31, r3 /* 802CE800 002CB740 7F A3 EB 78 */ mr r3, r29 -/* 802CE804 002CB744 4B FF FF 29 */ bl getFreeSize__7JKRHeapFv +/* 802CE804 002CB744 4B FF FF 29 */ bl getFreeSize__7JKRHeapCFv /* 802CE808 002CB748 38 9E FF FF */ addi r4, r30, -1 /* 802CE80C 002CB74C 57 E0 07 3E */ clrlwi r0, r31, 0x1c /* 802CE810 002CB750 7C 00 F0 50 */ subf r0, r0, r30 diff --git a/include/JSystem/JKernel/JKRSolidHeap/JKRSolidHeap.h b/include/JSystem/JKernel/JKRSolidHeap/JKRSolidHeap.h index d2650dd7803..671becc5528 100644 --- a/include/JSystem/JKernel/JKRSolidHeap/JKRSolidHeap.h +++ b/include/JSystem/JKernel/JKRSolidHeap/JKRSolidHeap.h @@ -5,43 +5,56 @@ #include "dolphin/types.h" class JKRSolidHeap : public JKRHeap { +public: + struct Unknown { + u32 field_0x0; + u32 field_0x4; + u32 field_0x8; + void* field_0xc; + Unknown* mNext; + }; + protected: JKRSolidHeap(void*, u32, JKRHeap*, bool); virtual ~JKRSolidHeap(); - void adjustSize(void); - void allocFromHead(u32, int); - void allocFromTail(u32, int); + s32 adjustSize(void); + void* allocFromHead(u32, int); + void* allocFromTail(u32, int); + + s32 getUsedSize() const { return mSize - getTotalFreeSize(); } public: - /* vt[04] */ virtual u32 getHeapType(void); /* override */ - /* vt[05] */ virtual bool check(void); /* override */ + /* vt[04] */ virtual u32 getHeapType(void) const; /* override */ + /* vt[05] */ virtual bool check(void); /* override */ - /* vt[07] */ virtual bool dump(void); /* override */ - /* vt[08] */ virtual void do_destroy(void); /* override */ - /* vt[09] */ virtual void* do_alloc(u32, int); /* override */ - /* vt[10] */ virtual void do_free(void*); /* override */ - /* vt[11] */ virtual void do_freeAll(void); /* override */ - /* vt[12] */ virtual void do_freeTail(void); /* override */ - /* vt[13] */ virtual void do_fillFreeArea(void); /* override */ - /* vt[14] */ virtual s32 do_resize(void*, u32); /* override */ - /* vt[15] */ virtual s32 do_getSize(void*); /* override */ - /* vt[16] */ virtual s32 do_getFreeSize(void); /* override */ - /* vt[17] */ virtual void* do_getMaxFreeBlock(void); /* override */ - /* vt[18] */ virtual s32 do_getTotalFreeSize(void); /* override */ + /* vt[07] */ virtual bool dump(void); /* override */ + /* vt[08] */ virtual void do_destroy(void); /* override */ + /* vt[09] */ virtual void* do_alloc(u32, int); /* override */ + /* vt[10] */ virtual void do_free(void*); /* override */ + /* vt[11] */ virtual void do_freeAll(void); /* override */ + /* vt[12] */ virtual void do_freeTail(void); /* override */ + /* vt[13] */ virtual void do_fillFreeArea(void); /* override */ + /* vt[14] */ virtual s32 do_resize(void*, u32); /* override */ + /* vt[15] */ virtual s32 do_getSize(void*) const; /* override */ + /* vt[16] */ virtual s32 do_getFreeSize(void) const; /* override */ + /* vt[17] */ virtual void* do_getMaxFreeBlock(void) const; /* override */ + /* vt[18] */ virtual s32 do_getTotalFreeSize(void) const; /* override */ /* vt[21] */ virtual void state_register(JKRHeap::TState*, u32) const; /* override */ /* vt[22] */ virtual bool state_compare(JKRHeap::TState const&, JKRHeap::TState const&) const; /* override */ private: - u32 mFreeSize; - void* mSolidStart; - void* mSolidEnd; - u32 field_0x78; + /* 0x00 */ // vtable + /* 0x04 */ // JKRHeap + /* 0x6C */ u32 mFreeSize; + /* 0x70 */ u8* mSolidHead; + /* 0x74 */ u8* mSolidTail; + /* 0x78 */ Unknown* field_0x78; public: - static void create(u32, JKRHeap*, bool); + static JKRSolidHeap* create(u32, JKRHeap*, bool); }; #endif diff --git a/include/JSystem/JKernel/JKRSolidHeap/asm/func_802D0A24.s b/include/JSystem/JKernel/JKRSolidHeap/asm/func_802D0A24.s deleted file mode 100644 index f18ffe94419..00000000000 --- a/include/JSystem/JKernel/JKRSolidHeap/asm/func_802D0A24.s +++ /dev/null @@ -1,51 +0,0 @@ -/* create__12JKRSolidHeapFUlP7JKRHeapb __ct__12JKRSolidHeapFPvUlP7JKRHeapb::create(unsigned long, JKRHeap *, bool) */ -/* JKRSolidHeap_NS_create */ -/* 802D0A24 002CD964 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802D0A28 002CD968 7C 08 02 A6 */ mflr r0 -/* 802D0A2C 002CD96C 90 01 00 24 */ stw r0, 0x24(r1) -/* 802D0A30 002CD970 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D0A34 002CD974 48 09 17 A9 */ bl _savegpr_29 -/* 802D0A38 002CD978 7C 9D 23 79 */ or. r29, r4, r4 -/* 802D0A3C 002CD97C 7C BE 2B 78 */ mr r30, r5 -/* 802D0A40 002CD980 40 82 00 08 */ bne lbl_802D0A48 -/* 802D0A44 002CD984 83 AD 8D F8 */ lwz r29, lbl_80451378-_SDA_BASE_(r13) -lbl_802D0A48: -/* 802D0A48 002CD988 3C 03 00 01 */ addis r0, r3, 1 -/* 802D0A4C 002CD98C 28 00 FF FF */ cmplwi r0, 0xffff -/* 802D0A50 002CD990 40 82 00 10 */ bne lbl_802D0A60 -/* 802D0A54 002CD994 7F A3 EB 78 */ mr r3, r29 -/* 802D0A58 002CD998 38 80 00 10 */ li r4, 0x10 -/* 802D0A5C 002CD99C 4B FF DD 81 */ bl getMaxAllocatableSize__7JKRHeapFi -lbl_802D0A60: -/* 802D0A60 002CD9A0 54 7F 00 36 */ rlwinm r31, r3, 0, 0, 0x1b -/* 802D0A64 002CD9A4 28 1F 00 80 */ cmplwi r31, 0x80 -/* 802D0A68 002CD9A8 40 80 00 0C */ bge lbl_802D0A74 -/* 802D0A6C 002CD9AC 38 60 00 00 */ li r3, 0 -/* 802D0A70 002CD9B0 48 00 00 48 */ b lbl_802D0AB8 -lbl_802D0A74: -/* 802D0A74 002CD9B4 7F E3 FB 78 */ mr r3, r31 -/* 802D0A78 002CD9B8 38 80 00 10 */ li r4, 0x10 -/* 802D0A7C 002CD9BC 7F A5 EB 78 */ mr r5, r29 -/* 802D0A80 002CD9C0 4B FF D9 F5 */ bl alloc__7JKRHeapFUliP7JKRHeap -/* 802D0A84 002CD9C4 7C 60 1B 78 */ mr r0, r3 -/* 802D0A88 002CD9C8 7C 05 03 79 */ or. r5, r0, r0 -/* 802D0A8C 002CD9CC 38 85 00 80 */ addi r4, r5, 0x80 -/* 802D0A90 002CD9D0 40 82 00 0C */ bne lbl_802D0A9C -/* 802D0A94 002CD9D4 38 60 00 00 */ li r3, 0 -/* 802D0A98 002CD9D8 48 00 00 20 */ b lbl_802D0AB8 -lbl_802D0A9C: -/* 802D0A9C 002CD9DC 41 82 00 18 */ beq lbl_802D0AB4 -/* 802D0AA0 002CD9E0 38 BF FF 80 */ addi r5, r31, -128 -/* 802D0AA4 002CD9E4 7F A6 EB 78 */ mr r6, r29 -/* 802D0AA8 002CD9E8 7F C7 F3 78 */ mr r7, r30 -/* 802D0AAC 002CD9EC 48 00 00 85 */ bl __ct__12JKRSolidHeapFPvUlP7JKRHeapb -/* 802D0AB0 002CD9F0 7C 60 1B 78 */ mr r0, r3 -lbl_802D0AB4: -/* 802D0AB4 002CD9F4 7C 03 03 78 */ mr r3, r0 -lbl_802D0AB8: -/* 802D0AB8 002CD9F8 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D0ABC 002CD9FC 48 09 17 6D */ bl _restgpr_29 -/* 802D0AC0 002CDA00 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802D0AC4 002CDA04 7C 08 03 A6 */ mtlr r0 -/* 802D0AC8 002CDA08 38 21 00 20 */ addi r1, r1, 0x20 -/* 802D0ACC 002CDA0C 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRSolidHeap/asm/func_802D0AD0.s b/include/JSystem/JKernel/JKRSolidHeap/asm/func_802D0AD0.s deleted file mode 100644 index 931ff26c62f..00000000000 --- a/include/JSystem/JKernel/JKRSolidHeap/asm/func_802D0AD0.s +++ /dev/null @@ -1,27 +0,0 @@ -/* do_destroy__12JKRSolidHeapFv __ct__12JKRSolidHeapFPvUlP7JKRHeapb::do_destroy(void) */ -/* missing reference */ -/* 802D0AD0 002CDA10 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802D0AD4 002CDA14 7C 08 02 A6 */ mflr r0 -/* 802D0AD8 002CDA18 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D0ADC 002CDA1C 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802D0AE0 002CDA20 93 C1 00 08 */ stw r30, 8(r1) -/* 802D0AE4 002CDA24 7C 7E 1B 78 */ mr r30, r3 -/* 802D0AE8 002CDA28 80 83 00 50 */ lwz r4, 0x50(r3) -/* 802D0AEC 002CDA2C 83 E4 00 0C */ lwz r31, 0xc(r4) -/* 802D0AF0 002CDA30 28 1F 00 00 */ cmplwi r31, 0 -/* 802D0AF4 002CDA34 41 82 00 24 */ beq lbl_802D0B18 -/* 802D0AF8 002CDA38 38 80 FF FF */ li r4, -1 -/* 802D0AFC 002CDA3C 81 83 00 00 */ lwz r12, 0(r3) -/* 802D0B00 002CDA40 81 8C 00 08 */ lwz r12, 8(r12) -/* 802D0B04 002CDA44 7D 89 03 A6 */ mtctr r12 -/* 802D0B08 002CDA48 4E 80 04 21 */ bctrl -/* 802D0B0C 002CDA4C 7F C3 F3 78 */ mr r3, r30 -/* 802D0B10 002CDA50 7F E4 FB 78 */ mr r4, r31 -/* 802D0B14 002CDA54 4B FF D9 ED */ bl free__7JKRHeapFPvP7JKRHeap -lbl_802D0B18: -/* 802D0B18 002CDA58 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802D0B1C 002CDA5C 83 C1 00 08 */ lwz r30, 8(r1) -/* 802D0B20 002CDA60 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802D0B24 002CDA64 7C 08 03 A6 */ mtlr r0 -/* 802D0B28 002CDA68 38 21 00 10 */ addi r1, r1, 0x10 -/* 802D0B2C 002CDA6C 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRSolidHeap/asm/func_802D0B30.s b/include/JSystem/JKernel/JKRSolidHeap/asm/func_802D0B30.s deleted file mode 100644 index 3c590f5055c..00000000000 --- a/include/JSystem/JKernel/JKRSolidHeap/asm/func_802D0B30.s +++ /dev/null @@ -1,25 +0,0 @@ -/* __ct__12JKRSolidHeapFPvUlP7JKRHeapb __ct__12JKRSolidHeapFPvUlP7JKRHeapb::__ct(void *, unsigned long, JKRHeap *, bool) */ -/* JKRSolidHeap */ -/* 802D0B30 002CDA70 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802D0B34 002CDA74 7C 08 02 A6 */ mflr r0 -/* 802D0B38 002CDA78 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D0B3C 002CDA7C 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802D0B40 002CDA80 7C 7F 1B 78 */ mr r31, r3 -/* 802D0B44 002CDA84 4B FF D5 F5 */ bl __ct__7JKRHeapFPvUlP7JKRHeapb -/* 802D0B48 002CDA88 3C 60 80 3D */ lis r3, lbl_803CC030@ha -/* 802D0B4C 002CDA8C 38 03 C0 30 */ addi r0, r3, lbl_803CC030@l -/* 802D0B50 002CDA90 90 1F 00 00 */ stw r0, 0(r31) -/* 802D0B54 002CDA94 80 1F 00 38 */ lwz r0, 0x38(r31) -/* 802D0B58 002CDA98 90 1F 00 6C */ stw r0, 0x6c(r31) -/* 802D0B5C 002CDA9C 80 1F 00 30 */ lwz r0, 0x30(r31) -/* 802D0B60 002CDAA0 90 1F 00 70 */ stw r0, 0x70(r31) -/* 802D0B64 002CDAA4 80 1F 00 34 */ lwz r0, 0x34(r31) -/* 802D0B68 002CDAA8 90 1F 00 74 */ stw r0, 0x74(r31) -/* 802D0B6C 002CDAAC 38 00 00 00 */ li r0, 0 -/* 802D0B70 002CDAB0 90 1F 00 78 */ stw r0, 0x78(r31) -/* 802D0B74 002CDAB4 7F E3 FB 78 */ mr r3, r31 -/* 802D0B78 002CDAB8 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802D0B7C 002CDABC 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802D0B80 002CDAC0 7C 08 03 A6 */ mtlr r0 -/* 802D0B84 002CDAC4 38 21 00 10 */ addi r1, r1, 0x10 -/* 802D0B88 002CDAC8 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRSolidHeap/asm/func_802D0B8C.s b/include/JSystem/JKernel/JKRSolidHeap/asm/func_802D0B8C.s deleted file mode 100644 index 1582bc1f27a..00000000000 --- a/include/JSystem/JKernel/JKRSolidHeap/asm/func_802D0B8C.s +++ /dev/null @@ -1,29 +0,0 @@ -/* __dt__12JKRSolidHeapFv __ct__12JKRSolidHeapFPvUlP7JKRHeapb::__dt(void) */ -/* missing reference */ -/* 802D0B8C 002CDACC 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802D0B90 002CDAD0 7C 08 02 A6 */ mflr r0 -/* 802D0B94 002CDAD4 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D0B98 002CDAD8 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802D0B9C 002CDADC 93 C1 00 08 */ stw r30, 8(r1) -/* 802D0BA0 002CDAE0 7C 7E 1B 79 */ or. r30, r3, r3 -/* 802D0BA4 002CDAE4 7C 9F 23 78 */ mr r31, r4 -/* 802D0BA8 002CDAE8 41 82 00 30 */ beq lbl_802D0BD8 -/* 802D0BAC 002CDAEC 3C 80 80 3D */ lis r4, lbl_803CC030@ha -/* 802D0BB0 002CDAF0 38 04 C0 30 */ addi r0, r4, lbl_803CC030@l -/* 802D0BB4 002CDAF4 90 1E 00 00 */ stw r0, 0(r30) -/* 802D0BB8 002CDAF8 4B FF DF 09 */ bl dispose__7JKRHeapFv -/* 802D0BBC 002CDAFC 7F C3 F3 78 */ mr r3, r30 -/* 802D0BC0 002CDB00 38 80 00 00 */ li r4, 0 -/* 802D0BC4 002CDB04 4B FF D6 A1 */ bl __dt__7JKRHeapFv -/* 802D0BC8 002CDB08 7F E0 07 35 */ extsh. r0, r31 -/* 802D0BCC 002CDB0C 40 81 00 0C */ ble lbl_802D0BD8 -/* 802D0BD0 002CDB10 7F C3 F3 78 */ mr r3, r30 -/* 802D0BD4 002CDB14 4B FF E1 69 */ bl __dl__FPv -lbl_802D0BD8: -/* 802D0BD8 002CDB18 7F C3 F3 78 */ mr r3, r30 -/* 802D0BDC 002CDB1C 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802D0BE0 002CDB20 83 C1 00 08 */ lwz r30, 8(r1) -/* 802D0BE4 002CDB24 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802D0BE8 002CDB28 7C 08 03 A6 */ mtlr r0 -/* 802D0BEC 002CDB2C 38 21 00 10 */ addi r1, r1, 0x10 -/* 802D0BF0 002CDB30 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRSolidHeap/asm/func_802D0CB0.s b/include/JSystem/JKernel/JKRSolidHeap/asm/func_802D0CB0.s deleted file mode 100644 index 59024a0ba11..00000000000 --- a/include/JSystem/JKernel/JKRSolidHeap/asm/func_802D0CB0.s +++ /dev/null @@ -1,49 +0,0 @@ -/* do_alloc__12JKRSolidHeapFUli __ct__12JKRSolidHeapFPvUlP7JKRHeapb::do_alloc(unsigned long, int) */ -/* missing reference */ -/* 802D0CB0 002CDBF0 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802D0CB4 002CDBF4 7C 08 02 A6 */ mflr r0 -/* 802D0CB8 002CDBF8 90 01 00 24 */ stw r0, 0x24(r1) -/* 802D0CBC 002CDBFC 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D0CC0 002CDC00 48 09 15 1D */ bl _savegpr_29 -/* 802D0CC4 002CDC04 7C 7D 1B 78 */ mr r29, r3 -/* 802D0CC8 002CDC08 7C 9E 23 78 */ mr r30, r4 -/* 802D0CCC 002CDC0C 7C BF 2B 78 */ mr r31, r5 -/* 802D0CD0 002CDC10 38 7D 00 18 */ addi r3, r29, 0x18 -/* 802D0CD4 002CDC14 48 06 E3 6D */ bl OSLockMutex -/* 802D0CD8 002CDC18 28 1E 00 04 */ cmplwi r30, 4 -/* 802D0CDC 002CDC1C 40 80 00 08 */ bge lbl_802D0CE4 -/* 802D0CE0 002CDC20 3B C0 00 04 */ li r30, 4 -lbl_802D0CE4: -/* 802D0CE4 002CDC24 2C 1F 00 00 */ cmpwi r31, 0 -/* 802D0CE8 002CDC28 41 80 00 28 */ blt lbl_802D0D10 -/* 802D0CEC 002CDC2C 7F A3 EB 78 */ mr r3, r29 -/* 802D0CF0 002CDC30 7F C4 F3 78 */ mr r4, r30 -/* 802D0CF4 002CDC34 2C 1F 00 04 */ cmpwi r31, 4 -/* 802D0CF8 002CDC38 38 A0 00 04 */ li r5, 4 -/* 802D0CFC 002CDC3C 41 80 00 08 */ blt lbl_802D0D04 -/* 802D0D00 002CDC40 7F E5 FB 78 */ mr r5, r31 -lbl_802D0D04: -/* 802D0D04 002CDC44 48 00 00 55 */ bl allocFromHead__12JKRSolidHeapFUli -/* 802D0D08 002CDC48 7C 7F 1B 78 */ mr r31, r3 -/* 802D0D0C 002CDC4C 48 00 00 28 */ b lbl_802D0D34 -lbl_802D0D10: -/* 802D0D10 002CDC50 7C 1F 00 D0 */ neg r0, r31 -/* 802D0D14 002CDC54 2C 00 00 04 */ cmpwi r0, 4 -/* 802D0D18 002CDC58 38 A0 00 04 */ li r5, 4 -/* 802D0D1C 002CDC5C 41 80 00 08 */ blt lbl_802D0D24 -/* 802D0D20 002CDC60 7C 05 03 78 */ mr r5, r0 -lbl_802D0D24: -/* 802D0D24 002CDC64 7F A3 EB 78 */ mr r3, r29 -/* 802D0D28 002CDC68 7F C4 F3 78 */ mr r4, r30 -/* 802D0D2C 002CDC6C 48 00 00 F5 */ bl allocFromTail__12JKRSolidHeapFUli -/* 802D0D30 002CDC70 7C 7F 1B 78 */ mr r31, r3 -lbl_802D0D34: -/* 802D0D34 002CDC74 38 7D 00 18 */ addi r3, r29, 0x18 -/* 802D0D38 002CDC78 48 06 E3 E5 */ bl OSUnlockMutex -/* 802D0D3C 002CDC7C 7F E3 FB 78 */ mr r3, r31 -/* 802D0D40 002CDC80 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D0D44 002CDC84 48 09 14 E5 */ bl _restgpr_29 -/* 802D0D48 002CDC88 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802D0D4C 002CDC8C 7C 08 03 A6 */ mtlr r0 -/* 802D0D50 002CDC90 38 21 00 20 */ addi r1, r1, 0x20 -/* 802D0D54 002CDC94 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRSolidHeap/asm/func_802D0EE4.s b/include/JSystem/JKernel/JKRSolidHeap/asm/func_802D0EE4.s deleted file mode 100644 index 166f327a5ff..00000000000 --- a/include/JSystem/JKernel/JKRSolidHeap/asm/func_802D0EE4.s +++ /dev/null @@ -1,14 +0,0 @@ -/* do_free__12JKRSolidHeapFPv __ct__12JKRSolidHeapFPvUlP7JKRHeapb::do_free(void *) */ -/* missing reference */ -/* 802D0EE4 002CDE24 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802D0EE8 002CDE28 7C 08 02 A6 */ mflr r0 -/* 802D0EEC 002CDE2C 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D0EF0 002CDE30 3C 60 80 3A */ lis r3, lbl_8039CE50@ha -/* 802D0EF4 002CDE34 38 63 CE 50 */ addi r3, r3, lbl_8039CE50@l -/* 802D0EF8 002CDE38 38 63 00 62 */ addi r3, r3, 0x62 -/* 802D0EFC 002CDE3C 4C C6 31 82 */ crclr 6 -/* 802D0F00 002CDE40 48 01 77 7D */ bl JUTWarningConsole_f -/* 802D0F04 002CDE44 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802D0F08 002CDE48 7C 08 03 A6 */ mtlr r0 -/* 802D0F0C 002CDE4C 38 21 00 10 */ addi r1, r1, 0x10 -/* 802D0F10 002CDE50 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRSolidHeap/asm/func_802D0F14.s b/include/JSystem/JKernel/JKRSolidHeap/asm/func_802D0F14.s deleted file mode 100644 index 84fb558616d..00000000000 --- a/include/JSystem/JKernel/JKRSolidHeap/asm/func_802D0F14.s +++ /dev/null @@ -1,26 +0,0 @@ -/* do_freeAll__12JKRSolidHeapFv __ct__12JKRSolidHeapFPvUlP7JKRHeapb::do_freeAll(void) */ -/* missing reference */ -/* 802D0F14 002CDE54 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802D0F18 002CDE58 7C 08 02 A6 */ mflr r0 -/* 802D0F1C 002CDE5C 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D0F20 002CDE60 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802D0F24 002CDE64 7C 7F 1B 78 */ mr r31, r3 -/* 802D0F28 002CDE68 38 7F 00 18 */ addi r3, r31, 0x18 -/* 802D0F2C 002CDE6C 48 06 E1 15 */ bl OSLockMutex -/* 802D0F30 002CDE70 7F E3 FB 78 */ mr r3, r31 -/* 802D0F34 002CDE74 4B FF D6 41 */ bl callAllDisposer__7JKRHeapFv -/* 802D0F38 002CDE78 80 1F 00 38 */ lwz r0, 0x38(r31) -/* 802D0F3C 002CDE7C 90 1F 00 6C */ stw r0, 0x6c(r31) -/* 802D0F40 002CDE80 80 1F 00 30 */ lwz r0, 0x30(r31) -/* 802D0F44 002CDE84 90 1F 00 70 */ stw r0, 0x70(r31) -/* 802D0F48 002CDE88 80 1F 00 34 */ lwz r0, 0x34(r31) -/* 802D0F4C 002CDE8C 90 1F 00 74 */ stw r0, 0x74(r31) -/* 802D0F50 002CDE90 38 00 00 00 */ li r0, 0 -/* 802D0F54 002CDE94 90 1F 00 78 */ stw r0, 0x78(r31) -/* 802D0F58 002CDE98 38 7F 00 18 */ addi r3, r31, 0x18 -/* 802D0F5C 002CDE9C 48 06 E1 C1 */ bl OSUnlockMutex -/* 802D0F60 002CDEA0 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802D0F64 002CDEA4 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802D0F68 002CDEA8 7C 08 03 A6 */ mtlr r0 -/* 802D0F6C 002CDEAC 38 21 00 10 */ addi r1, r1, 0x10 -/* 802D0F70 002CDEB0 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRSolidHeap/asm/func_802D0F74.s b/include/JSystem/JKernel/JKRSolidHeap/asm/func_802D0F74.s deleted file mode 100644 index 2fa8e99e1d8..00000000000 --- a/include/JSystem/JKernel/JKRSolidHeap/asm/func_802D0F74.s +++ /dev/null @@ -1,40 +0,0 @@ -/* do_freeTail__12JKRSolidHeapFv __ct__12JKRSolidHeapFPvUlP7JKRHeapb::do_freeTail(void) */ -/* missing reference */ -/* 802D0F74 002CDEB4 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802D0F78 002CDEB8 7C 08 02 A6 */ mflr r0 -/* 802D0F7C 002CDEBC 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D0F80 002CDEC0 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802D0F84 002CDEC4 7C 7F 1B 78 */ mr r31, r3 -/* 802D0F88 002CDEC8 38 7F 00 18 */ addi r3, r31, 0x18 -/* 802D0F8C 002CDECC 48 06 E0 B5 */ bl OSLockMutex -/* 802D0F90 002CDED0 80 9F 00 74 */ lwz r4, 0x74(r31) -/* 802D0F94 002CDED4 80 BF 00 34 */ lwz r5, 0x34(r31) -/* 802D0F98 002CDED8 7C 04 28 40 */ cmplw r4, r5 -/* 802D0F9C 002CDEDC 41 82 00 0C */ beq lbl_802D0FA8 -/* 802D0FA0 002CDEE0 7F E3 FB 78 */ mr r3, r31 -/* 802D0FA4 002CDEE4 4B FF DA FD */ bl dispose__7JKRHeapFPvPv -lbl_802D0FA8: -/* 802D0FA8 002CDEE8 80 9F 00 6C */ lwz r4, 0x6c(r31) -/* 802D0FAC 002CDEEC 80 7F 00 74 */ lwz r3, 0x74(r31) -/* 802D0FB0 002CDEF0 80 1F 00 34 */ lwz r0, 0x34(r31) -/* 802D0FB4 002CDEF4 7C 03 00 50 */ subf r0, r3, r0 -/* 802D0FB8 002CDEF8 7C 04 02 14 */ add r0, r4, r0 -/* 802D0FBC 002CDEFC 90 1F 00 6C */ stw r0, 0x6c(r31) -/* 802D0FC0 002CDF00 80 1F 00 34 */ lwz r0, 0x34(r31) -/* 802D0FC4 002CDF04 90 1F 00 74 */ stw r0, 0x74(r31) -/* 802D0FC8 002CDF08 80 7F 00 78 */ lwz r3, 0x78(r31) -/* 802D0FCC 002CDF0C 48 00 00 10 */ b lbl_802D0FDC -lbl_802D0FD0: -/* 802D0FD0 002CDF10 80 1F 00 34 */ lwz r0, 0x34(r31) -/* 802D0FD4 002CDF14 90 03 00 0C */ stw r0, 0xc(r3) -/* 802D0FD8 002CDF18 80 63 00 10 */ lwz r3, 0x10(r3) -lbl_802D0FDC: -/* 802D0FDC 002CDF1C 28 03 00 00 */ cmplwi r3, 0 -/* 802D0FE0 002CDF20 40 82 FF F0 */ bne lbl_802D0FD0 -/* 802D0FE4 002CDF24 38 7F 00 18 */ addi r3, r31, 0x18 -/* 802D0FE8 002CDF28 48 06 E1 35 */ bl OSUnlockMutex -/* 802D0FEC 002CDF2C 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802D0FF0 002CDF30 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802D0FF4 002CDF34 7C 08 03 A6 */ mtlr r0 -/* 802D0FF8 002CDF38 38 21 00 10 */ addi r1, r1, 0x10 -/* 802D0FFC 002CDF3C 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRSolidHeap/asm/func_802D1000.s b/include/JSystem/JKernel/JKRSolidHeap/asm/func_802D1000.s deleted file mode 100644 index b96236a1e29..00000000000 --- a/include/JSystem/JKernel/JKRSolidHeap/asm/func_802D1000.s +++ /dev/null @@ -1,3 +0,0 @@ -/* do_fillFreeArea__12JKRSolidHeapFv __ct__12JKRSolidHeapFPvUlP7JKRHeapb::do_fillFreeArea(void) */ -/* missing reference */ -/* 802D1000 002CDF40 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRSolidHeap/asm/func_802D1004.s b/include/JSystem/JKernel/JKRSolidHeap/asm/func_802D1004.s deleted file mode 100644 index 148ba65bbaa..00000000000 --- a/include/JSystem/JKernel/JKRSolidHeap/asm/func_802D1004.s +++ /dev/null @@ -1,15 +0,0 @@ -/* do_resize__12JKRSolidHeapFPvUl __ct__12JKRSolidHeapFPvUlP7JKRHeapb::do_resize(void *, unsigned long) */ -/* missing reference */ -/* 802D1004 002CDF44 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802D1008 002CDF48 7C 08 02 A6 */ mflr r0 -/* 802D100C 002CDF4C 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D1010 002CDF50 3C 60 80 3A */ lis r3, lbl_8039CE50@ha -/* 802D1014 002CDF54 38 63 CE 50 */ addi r3, r3, lbl_8039CE50@l -/* 802D1018 002CDF58 38 63 00 89 */ addi r3, r3, 0x89 -/* 802D101C 002CDF5C 4C C6 31 82 */ crclr 6 -/* 802D1020 002CDF60 48 01 76 5D */ bl JUTWarningConsole_f -/* 802D1024 002CDF64 38 60 FF FF */ li r3, -1 -/* 802D1028 002CDF68 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802D102C 002CDF6C 7C 08 03 A6 */ mtlr r0 -/* 802D1030 002CDF70 38 21 00 10 */ addi r1, r1, 0x10 -/* 802D1034 002CDF74 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRSolidHeap/asm/func_802D1038.s b/include/JSystem/JKernel/JKRSolidHeap/asm/func_802D1038.s deleted file mode 100644 index 0e7f75f8482..00000000000 --- a/include/JSystem/JKernel/JKRSolidHeap/asm/func_802D1038.s +++ /dev/null @@ -1,15 +0,0 @@ -/* do_getSize__12JKRSolidHeapFPv __ct__12JKRSolidHeapFPvUlP7JKRHeapb::do_getSize(void *) */ -/* missing reference */ -/* 802D1038 002CDF78 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802D103C 002CDF7C 7C 08 02 A6 */ mflr r0 -/* 802D1040 002CDF80 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D1044 002CDF84 3C 60 80 3A */ lis r3, lbl_8039CE50@ha -/* 802D1048 002CDF88 38 63 CE 50 */ addi r3, r3, lbl_8039CE50@l -/* 802D104C 002CDF8C 38 63 00 B8 */ addi r3, r3, 0xb8 -/* 802D1050 002CDF90 4C C6 31 82 */ crclr 6 -/* 802D1054 002CDF94 48 01 76 29 */ bl JUTWarningConsole_f -/* 802D1058 002CDF98 38 60 FF FF */ li r3, -1 -/* 802D105C 002CDF9C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802D1060 002CDFA0 7C 08 03 A6 */ mtlr r0 -/* 802D1064 002CDFA4 38 21 00 10 */ addi r1, r1, 0x10 -/* 802D1068 002CDFA8 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRSolidHeap/asm/func_802D106C.s b/include/JSystem/JKernel/JKRSolidHeap/asm/func_802D106C.s deleted file mode 100644 index 07d4f7d1ffc..00000000000 --- a/include/JSystem/JKernel/JKRSolidHeap/asm/func_802D106C.s +++ /dev/null @@ -1,39 +0,0 @@ -/* check__12JKRSolidHeapFv __ct__12JKRSolidHeapFPvUlP7JKRHeapb::check(void) */ -/* missing reference */ -/* 802D106C 002CDFAC 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802D1070 002CDFB0 7C 08 02 A6 */ mflr r0 -/* 802D1074 002CDFB4 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D1078 002CDFB8 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802D107C 002CDFBC 93 C1 00 08 */ stw r30, 8(r1) -/* 802D1080 002CDFC0 7C 7E 1B 78 */ mr r30, r3 -/* 802D1084 002CDFC4 38 7E 00 18 */ addi r3, r30, 0x18 -/* 802D1088 002CDFC8 48 06 DF B9 */ bl OSLockMutex -/* 802D108C 002CDFCC 3B E0 00 01 */ li r31, 1 -/* 802D1090 002CDFD0 80 DE 00 6C */ lwz r6, 0x6c(r30) -/* 802D1094 002CDFD4 80 7E 00 30 */ lwz r3, 0x30(r30) -/* 802D1098 002CDFD8 80 1E 00 70 */ lwz r0, 0x70(r30) -/* 802D109C 002CDFDC 7C 83 00 50 */ subf r4, r3, r0 -/* 802D10A0 002CDFE0 80 7E 00 74 */ lwz r3, 0x74(r30) -/* 802D10A4 002CDFE4 80 1E 00 34 */ lwz r0, 0x34(r30) -/* 802D10A8 002CDFE8 7C 03 00 50 */ subf r0, r3, r0 -/* 802D10AC 002CDFEC 7C A4 02 14 */ add r5, r4, r0 -/* 802D10B0 002CDFF0 7C A6 2A 14 */ add r5, r6, r5 -/* 802D10B4 002CDFF4 80 9E 00 38 */ lwz r4, 0x38(r30) -/* 802D10B8 002CDFF8 7C 05 20 40 */ cmplw r5, r4 -/* 802D10BC 002CDFFC 41 82 00 1C */ beq lbl_802D10D8 -/* 802D10C0 002CE000 3B E0 00 00 */ li r31, 0 -/* 802D10C4 002CE004 3C 60 80 3A */ lis r3, lbl_8039CE50@ha -/* 802D10C8 002CE008 38 63 CE 50 */ addi r3, r3, lbl_8039CE50@l -/* 802D10CC 002CE00C 38 63 00 E6 */ addi r3, r3, 0xe6 -/* 802D10D0 002CE010 4C C6 31 82 */ crclr 6 -/* 802D10D4 002CE014 48 01 75 A9 */ bl JUTWarningConsole_f -lbl_802D10D8: -/* 802D10D8 002CE018 38 7E 00 18 */ addi r3, r30, 0x18 -/* 802D10DC 002CE01C 48 06 E0 41 */ bl OSUnlockMutex -/* 802D10E0 002CE020 7F E3 FB 78 */ mr r3, r31 -/* 802D10E4 002CE024 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802D10E8 002CE028 83 C1 00 08 */ lwz r30, 8(r1) -/* 802D10EC 002CE02C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802D10F0 002CE030 7C 08 03 A6 */ mtlr r0 -/* 802D10F4 002CE034 38 21 00 10 */ addi r1, r1, 0x10 -/* 802D10F8 002CE038 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRSolidHeap/asm/func_802D11FC.s b/include/JSystem/JKernel/JKRSolidHeap/asm/func_802D11FC.s index 6a6fe6fa451..53a7c0e5f5f 100644 --- a/include/JSystem/JKernel/JKRSolidHeap/asm/func_802D11FC.s +++ b/include/JSystem/JKernel/JKRSolidHeap/asm/func_802D11FC.s @@ -8,7 +8,7 @@ /* 802D1210 002CE150 7C 7E 1B 78 */ mr r30, r3 /* 802D1214 002CE154 7C 9F 23 78 */ mr r31, r4 /* 802D1218 002CE158 90 A4 00 14 */ stw r5, 0x14(r4) -/* 802D121C 002CE15C 4B FF D5 69 */ bl getTotalFreeSize__7JKRHeapFv +/* 802D121C 002CE15C 4B FF D5 69 */ bl getTotalFreeSize__7JKRHeapCFv /* 802D1220 002CE160 80 1E 00 38 */ lwz r0, 0x38(r30) /* 802D1224 002CE164 7C 03 00 50 */ subf r0, r3, r0 /* 802D1228 002CE168 90 1F 00 00 */ stw r0, 0(r31) diff --git a/include/JSystem/JKernel/JKRSolidHeap/asm/func_802D1258.s b/include/JSystem/JKernel/JKRSolidHeap/asm/func_802D1258.s deleted file mode 100644 index f07e024f1e2..00000000000 --- a/include/JSystem/JKernel/JKRSolidHeap/asm/func_802D1258.s +++ /dev/null @@ -1,15 +0,0 @@ -/* state_compare__12JKRSolidHeapCFRCQ27JKRHeap6TStateRCQ27JKRHeap6TState __ct__12JKRSolidHeapFPvUlP7JKRHeapb::state_compare( const(JKRHeap::TState const &, JKRHeap::TState const &)) */ -/* missing reference */ -/* 802D1258 002CE198 38 60 00 01 */ li r3, 1 -/* 802D125C 002CE19C 80 C4 00 04 */ lwz r6, 4(r4) -/* 802D1260 002CE1A0 80 05 00 04 */ lwz r0, 4(r5) -/* 802D1264 002CE1A4 7C 06 00 40 */ cmplw r6, r0 -/* 802D1268 002CE1A8 41 82 00 08 */ beq lbl_802D1270 -/* 802D126C 002CE1AC 38 60 00 00 */ li r3, 0 -lbl_802D1270: -/* 802D1270 002CE1B0 80 84 00 00 */ lwz r4, 0(r4) -/* 802D1274 002CE1B4 80 05 00 00 */ lwz r0, 0(r5) -/* 802D1278 002CE1B8 7C 04 00 40 */ cmplw r4, r0 -/* 802D127C 002CE1BC 4D 82 00 20 */ beqlr -/* 802D1280 002CE1C0 38 60 00 00 */ li r3, 0 -/* 802D1284 002CE1C4 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRSolidHeap/asm/func_802D1288.s b/include/JSystem/JKernel/JKRSolidHeap/asm/func_802D1288.s deleted file mode 100644 index 9036a98e4ec..00000000000 --- a/include/JSystem/JKernel/JKRSolidHeap/asm/func_802D1288.s +++ /dev/null @@ -1,5 +0,0 @@ -/* getHeapType__12JKRSolidHeapFv __ct__12JKRSolidHeapFPvUlP7JKRHeapb::getHeapType(void) */ -/* missing reference */ -/* 802D1288 002CE1C8 3C 60 53 4C */ lis r3, 0x534C4944@ha -/* 802D128C 002CE1CC 38 63 49 44 */ addi r3, r3, 0x534C4944@l -/* 802D1290 002CE1D0 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRSolidHeap/asm/func_802D1294.s b/include/JSystem/JKernel/JKRSolidHeap/asm/func_802D1294.s deleted file mode 100644 index 5237eef3139..00000000000 --- a/include/JSystem/JKernel/JKRSolidHeap/asm/func_802D1294.s +++ /dev/null @@ -1,4 +0,0 @@ -/* do_getFreeSize__12JKRSolidHeapFv __ct__12JKRSolidHeapFPvUlP7JKRHeapb::do_getFreeSize(void) */ -/* missing reference */ -/* 802D1294 002CE1D4 80 63 00 6C */ lwz r3, 0x6c(r3) -/* 802D1298 002CE1D8 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRSolidHeap/asm/func_802D129C.s b/include/JSystem/JKernel/JKRSolidHeap/asm/func_802D129C.s deleted file mode 100644 index d92e6ab6dd7..00000000000 --- a/include/JSystem/JKernel/JKRSolidHeap/asm/func_802D129C.s +++ /dev/null @@ -1,4 +0,0 @@ -/* do_getMaxFreeBlock__12JKRSolidHeapFv __ct__12JKRSolidHeapFPvUlP7JKRHeapb::do_getMaxFreeBlock(void) */ -/* missing reference */ -/* 802D129C 002CE1DC 80 63 00 70 */ lwz r3, 0x70(r3) -/* 802D12A0 002CE1E0 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRSolidHeap/asm/func_802D12A4.s b/include/JSystem/JKernel/JKRSolidHeap/asm/func_802D12A4.s deleted file mode 100644 index 0ecd3043402..00000000000 --- a/include/JSystem/JKernel/JKRSolidHeap/asm/func_802D12A4.s +++ /dev/null @@ -1,10 +0,0 @@ -/* do_getTotalFreeSize__12JKRSolidHeapFv __ct__12JKRSolidHeapFPvUlP7JKRHeapb::do_getTotalFreeSize(void) */ -/* missing reference */ -/* 802D12A4 002CE1E4 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802D12A8 002CE1E8 7C 08 02 A6 */ mflr r0 -/* 802D12AC 002CE1EC 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D12B0 002CE1F0 4B FF D4 7D */ bl getFreeSize__7JKRHeapFv -/* 802D12B4 002CE1F4 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802D12B8 002CE1F8 7C 08 03 A6 */ mtlr r0 -/* 802D12BC 002CE1FC 38 21 00 10 */ addi r1, r1, 0x10 -/* 802D12C0 002CE200 4E 80 00 20 */ blr diff --git a/include/d/d_meter2/d_meter2/asm/func_8021EA14.s b/include/d/d_meter2/d_meter2/asm/func_8021EA14.s index 016e2b7dd59..186e07a1376 100644 --- a/include/d/d_meter2/d_meter2/asm/func_8021EA14.s +++ b/include/d/d_meter2/d_meter2/asm/func_8021EA14.s @@ -32,7 +32,7 @@ lbl_8021EA84: /* 8021EA88 0021B9C8 4B DF 07 45 */ bl mDoExt_setCurrentHeap /* 8021EA8C 0021B9CC 7C 7E 1B 78 */ mr r30, r3 /* 8021EA90 0021B9D0 80 7F 01 00 */ lwz r3, 0x100(r31) -/* 8021EA94 0021B9D4 48 0A FC F1 */ bl getTotalFreeSize__7JKRHeapFv +/* 8021EA94 0021B9D4 48 0A FC F1 */ bl getTotalFreeSize__7JKRHeapCFv /* 8021EA98 0021B9D8 38 7B 4E 00 */ addi r3, r27, 0x4e00 /* 8021EA9C 0021B9DC 3C 80 80 3A */ lis r4, lbl_80399338@ha /* 8021EAA0 0021B9E0 38 84 93 38 */ addi r4, r4, lbl_80399338@l @@ -323,7 +323,7 @@ lbl_8021EEE0: /* 8021EEE8 0021BE28 4B FF 6E C1 */ bl dMeter2Draw_c_NS_getNowLightDropRateCalc /* 8021EEEC 0021BE2C D0 3F 01 30 */ stfs f1, 0x130(r31) /* 8021EEF0 0021BE30 80 7F 01 00 */ lwz r3, 0x100(r31) -/* 8021EEF4 0021BE34 48 0A F8 91 */ bl getTotalFreeSize__7JKRHeapFv +/* 8021EEF4 0021BE34 48 0A F8 91 */ bl getTotalFreeSize__7JKRHeapCFv /* 8021EEF8 0021BE38 3B 20 00 00 */ li r25, 0 /* 8021EEFC 0021BE3C 3B 80 00 00 */ li r28, 0 lbl_8021EF00: @@ -454,7 +454,7 @@ lbl_8021F0B8: /* 8021F0C0 0021C000 38 63 01 88 */ addi r3, r3, lbl_80430188@l /* 8021F0C4 0021C004 90 03 00 20 */ stw r0, 0x20(r3) /* 8021F0C8 0021C008 80 7F 01 00 */ lwz r3, 0x100(r31) -/* 8021F0CC 0021C00C 48 0A F6 B9 */ bl getTotalFreeSize__7JKRHeapFv +/* 8021F0CC 0021C00C 48 0A F6 B9 */ bl getTotalFreeSize__7JKRHeapCFv /* 8021F0D0 0021C010 38 60 50 00 */ li r3, 0x5000 /* 8021F0D4 0021C014 80 9F 01 00 */ lwz r4, 0x100(r31) /* 8021F0D8 0021C018 4B E0 12 C5 */ bl fopMsgM_createExpHeap @@ -465,7 +465,7 @@ lbl_8021F0B8: /* 8021F0EC 0021C02C 90 1F 01 14 */ stw r0, 0x114(r31) /* 8021F0F0 0021C030 90 1F 01 18 */ stw r0, 0x118(r31) /* 8021F0F4 0021C034 80 7F 01 00 */ lwz r3, 0x100(r31) -/* 8021F0F8 0021C038 48 0A F6 8D */ bl getTotalFreeSize__7JKRHeapFv +/* 8021F0F8 0021C038 48 0A F6 8D */ bl getTotalFreeSize__7JKRHeapCFv /* 8021F0FC 0021C03C 38 00 00 00 */ li r0, 0 /* 8021F100 0021C040 90 1F 01 1C */ stw r0, 0x11c(r31) /* 8021F104 0021C044 7F C3 F3 78 */ mr r3, r30 diff --git a/include/d/d_meter2/d_meter2/asm/func_8021F49C.s b/include/d/d_meter2/d_meter2/asm/func_8021F49C.s index 02df720175f..c956147fe52 100644 --- a/include/d/d_meter2/d_meter2/asm/func_8021F49C.s +++ b/include/d/d_meter2/d_meter2/asm/func_8021F49C.s @@ -5,7 +5,7 @@ /* 8021F4AC 0021C3EC 93 C1 00 18 */ stw r30, 0x18(r1) /* 8021F4B0 0021C3F0 7C 7E 1B 78 */ mr r30, r3 /* 8021F4B4 0021C3F4 80 63 01 00 */ lwz r3, 0x100(r3) -/* 8021F4B8 0021C3F8 48 0A F2 CD */ bl getTotalFreeSize__7JKRHeapFv +/* 8021F4B8 0021C3F8 48 0A F2 CD */ bl getTotalFreeSize__7JKRHeapCFv /* 8021F4BC 0021C3FC 80 7E 01 00 */ lwz r3, 0x100(r30) /* 8021F4C0 0021C400 4B DE FD 0D */ bl mDoExt_setCurrentHeap /* 8021F4C4 0021C404 7C 7F 1B 78 */ mr r31, r3 @@ -74,7 +74,7 @@ lbl_8021F574: /* 8021F5B4 0021C4F4 48 08 C3 D1 */ bl seStart__7Z2SeMgrF10JAISoundIDPC3VecUlScffffUc lbl_8021F5B8: /* 8021F5B8 0021C4F8 80 7E 01 00 */ lwz r3, 0x100(r30) -/* 8021F5BC 0021C4FC 48 0A F1 C9 */ bl getTotalFreeSize__7JKRHeapFv +/* 8021F5BC 0021C4FC 48 0A F1 C9 */ bl getTotalFreeSize__7JKRHeapCFv /* 8021F5C0 0021C500 80 7E 01 20 */ lwz r3, 0x120(r30) /* 8021F5C4 0021C504 28 03 00 00 */ cmplwi r3, 0 /* 8021F5C8 0021C508 41 82 00 24 */ beq lbl_8021F5EC @@ -89,7 +89,7 @@ lbl_8021F5E4: /* 8021F5E8 0021C528 90 1E 01 20 */ stw r0, 0x120(r30) lbl_8021F5EC: /* 8021F5EC 0021C52C 80 7E 01 00 */ lwz r3, 0x100(r30) -/* 8021F5F0 0021C530 48 0A F1 95 */ bl getTotalFreeSize__7JKRHeapFv +/* 8021F5F0 0021C530 48 0A F1 95 */ bl getTotalFreeSize__7JKRHeapCFv /* 8021F5F4 0021C534 80 7E 01 04 */ lwz r3, 0x104(r30) /* 8021F5F8 0021C538 4B DE FB D5 */ bl mDoExt_setCurrentHeap /* 8021F5FC 0021C53C 80 7E 01 10 */ lwz r3, 0x110(r30) @@ -119,7 +119,7 @@ lbl_8021F64C: /* 8021F650 0021C590 90 1E 01 14 */ stw r0, 0x114(r30) lbl_8021F654: /* 8021F654 0021C594 80 7E 01 00 */ lwz r3, 0x100(r30) -/* 8021F658 0021C598 48 0A F1 2D */ bl getTotalFreeSize__7JKRHeapFv +/* 8021F658 0021C598 48 0A F1 2D */ bl getTotalFreeSize__7JKRHeapCFv /* 8021F65C 0021C59C 80 7E 01 1C */ lwz r3, 0x11c(r30) /* 8021F660 0021C5A0 28 03 00 00 */ cmplwi r3, 0 /* 8021F664 0021C5A4 41 82 00 24 */ beq lbl_8021F688 diff --git a/include/d/d_meter2/d_meter2/asm/func_802237D4.s b/include/d/d_meter2/d_meter2/asm/func_802237D4.s index a4b09ec550b..07bdeefd099 100644 --- a/include/d/d_meter2/d_meter2/asm/func_802237D4.s +++ b/include/d/d_meter2/d_meter2/asm/func_802237D4.s @@ -55,7 +55,7 @@ lbl_80223890: /* 802238A0 002207E0 28 00 00 00 */ cmplwi r0, 0 /* 802238A4 002207E4 40 82 03 08 */ bne lbl_80223BAC /* 802238A8 002207E8 80 7F 01 04 */ lwz r3, 0x104(r31) -/* 802238AC 002207EC 48 0A AE D9 */ bl getTotalFreeSize__7JKRHeapFv +/* 802238AC 002207EC 48 0A AE D9 */ bl getTotalFreeSize__7JKRHeapCFv /* 802238B0 002207F0 38 60 01 18 */ li r3, 0x118 /* 802238B4 002207F4 48 0A B3 99 */ bl __nw__FUl /* 802238B8 002207F8 7C 60 1B 79 */ or. r0, r3, r3 diff --git a/include/functions.h b/include/functions.h index 3a855ee9164..d0d0eaf8e0b 100644 --- a/include/functions.h +++ b/include/functions.h @@ -149,9 +149,9 @@ void JUTConsole_NS_print(void); void JUTConsole_NS_check(void); void JUTConsole_NS_print_f(void); void JUTConsole_NS_clear(void); -void JUTReportConsole_f(void); +void JUTReportConsole_f(const char*, ...); void JUTWarningConsole(void); -void JUTWarningConsole_f(void); +void JUTWarningConsole_f(const char*, ...); void VIWaitForRetrace(void); void func_80361C24(void); void memcpy(void*, const void*, int); @@ -363,9 +363,8 @@ void JUTConsole_NS_print(void); void JUTConsole_NS_check(void); void JUTConsole_NS_print_f(void); void JUTConsole_NS_clear(void); -void JUTReportConsole_f(void); void JUTWarningConsole(void); -void JUTWarningConsole_f(void); +// void JUTWarningConsole_f(void); void func_80361C24(void); void JKRArchive_NS_getDirEntry(void); void func_80361C24(void); @@ -473,11 +472,11 @@ void resize__7JKRHeapFPvUlP7JKRHeap(void); void resize__7JKRHeapFPvUl(void); void getSize__7JKRHeapFPvP7JKRHeap(void); void getSize__7JKRHeapFPv(void); -void getFreeSize__7JKRHeapFv(void); -void getMaxFreeBlock__7JKRHeapFv(void); -void getTotalFreeSize__7JKRHeapFv(void); +void getFreeSize__7JKRHeapCFv(void); +void getMaxFreeBlock__7JKRHeapCFv(void); +void getTotalFreeSize__7JKRHeapCFv(void); void changeGroupID__7JKRHeapFUc(void); -void getMaxAllocatableSize__7JKRHeapFi(void); +void getMaxAllocatableSize__7JKRHeapCFi(void); void findFromRoot__7JKRHeapFPv(void); void find__7JKRHeapCFPv(void); void findAllHeap__7JKRHeapCFPv(void); @@ -488,7 +487,7 @@ void dispose__7JKRHeapFv(void); void copyMemory__7JKRHeapFPvPvUl(void); void JKRDefaultMemoryErrorRoutine__FPvUli(void); void setErrorFlag__7JKRHeapFb(void); -void setErrorHandler__7JKRHeapFPFPvUli_v(void); +void setErrorHandler__7JKRHeapFPFP7JKRHeapUli_v(void); void isSubHeap__7JKRHeapCFP7JKRHeap(void); void __nw__FUl(void); void __nw__FUli(void); diff --git a/include/global.h b/include/global.h index c413f10e9bb..75cb37b293d 100644 --- a/include/global.h +++ b/include/global.h @@ -10,6 +10,7 @@ #define JUT_ASSERT(...) #define ASSERT(...) +#define LOGF(FMT, ...) extern float __fabsf(float); diff --git a/include/m_Do/m_Do_main/asm/func_800058C4.s b/include/m_Do/m_Do_main/asm/func_800058C4.s index 2ea162d90d1..4ab6c52b8c8 100644 --- a/include/m_Do/m_Do_main/asm/func_800058C4.s +++ b/include/m_Do/m_Do_main/asm/func_800058C4.s @@ -12,10 +12,10 @@ /* 800058F0 00002830 48 2C A4 75 */ bl getTotalUsedSize__10JKRExpHeapCFv /* 800058F4 00002834 7C 7E 1B 78 */ mr r30, r3 /* 800058F8 00002838 80 7D 00 08 */ lwz r3, 8(r29) -/* 800058FC 0000283C 48 2C 8E 89 */ bl getTotalFreeSize__7JKRHeapFv +/* 800058FC 0000283C 48 2C 8E 89 */ bl getTotalFreeSize__7JKRHeapCFv /* 80005900 00002840 7C 7B 1B 78 */ mr r27, r3 /* 80005904 00002844 80 7D 00 08 */ lwz r3, 8(r29) -/* 80005908 00002848 48 2C 8E 25 */ bl getFreeSize__7JKRHeapFv +/* 80005908 00002848 48 2C 8E 25 */ bl getFreeSize__7JKRHeapCFv /* 8000590C 0000284C 7C 7C 1B 78 */ mr r28, r3 /* 80005910 00002850 38 60 00 64 */ li r3, 0x64 /* 80005914 00002854 38 80 00 D4 */ li r4, 0xd4 diff --git a/include/m_Do/m_Do_main/asm/func_80005AD8.s b/include/m_Do/m_Do_main/asm/func_80005AD8.s index 9048c2b44f7..91577f8f1ba 100644 --- a/include/m_Do/m_Do_main/asm/func_80005AD8.s +++ b/include/m_Do/m_Do_main/asm/func_80005AD8.s @@ -105,10 +105,10 @@ lbl_80005C60: /* 80005C68 00002BA8 48 00 00 48 */ b lbl_80005CB0 lbl_80005C6C: /* 80005C6C 00002BAC 7F 03 C3 78 */ mr r3, r24 -/* 80005C70 00002BB0 48 2C 8B 15 */ bl getTotalFreeSize__7JKRHeapFv +/* 80005C70 00002BB0 48 2C 8B 15 */ bl getTotalFreeSize__7JKRHeapCFv /* 80005C74 00002BB4 7C 7E 1B 78 */ mr r30, r3 /* 80005C78 00002BB8 7F 03 C3 78 */ mr r3, r24 -/* 80005C7C 00002BBC 48 2C 8A B1 */ bl getFreeSize__7JKRHeapFv +/* 80005C7C 00002BBC 48 2C 8A B1 */ bl getFreeSize__7JKRHeapCFv /* 80005C80 00002BC0 7C 7D 1B 78 */ mr r29, r3 /* 80005C84 00002BC4 48 00 00 54 */ b lbl_80005CD8 lbl_80005C88: diff --git a/include/variables.h b/include/variables.h index 6e2831d994d..e4f37058f20 100644 --- a/include/variables.h +++ b/include/variables.h @@ -88,7 +88,6 @@ class JKRHeap; extern JKRHeap* lbl_80451370; // JKRHeap::sSystemHeap extern JKRHeap* lbl_80451378; // JKRHeap::sRootHeap extern JKRHeap* lbl_80451374; // JKRHeap::sCurrentHeap -extern void* lbl_8045137C; // JKRHeap::mErrorHandler extern bool lbl_804508B0; // ::*fill* extern bool lbl_80451380; // DAT_80451380 @@ -237,7 +236,7 @@ extern u8 lbl_8039CAF0; // ":::cannot alloc memory (0x%x by extern double lbl_80455FA0; // JKernel::@1123 = 4.503599627370496E15 extern u8 lbl_803CC030; // JKRSolidHeap::__vt extern double lbl_80455FB8; // JKernel::@697 = 4.503599627370496E15 -extern u8 lbl_8039CE50; // "allocFromHead: cannot alloc memory (0x%x byte).\n" +extern const char lbl_8039CE50[16]; // "allocFromHead: cannot alloc memory (0x%x byte).\n" extern double lbl_80455FB0; // JKernel::@695 = 4.503601774854144E15 extern float lbl_80455FA8; // JKernel::@693 = 100.0 extern u32 lbl_80451420; // JKRArchive::sCurrentDirID diff --git a/ldscript.lcf b/ldscript.lcf index e61c44e9a9a..2af8c308a5c 100644 --- a/ldscript.lcf +++ b/ldscript.lcf @@ -852,15 +852,15 @@ do_fillFreeArea__13JKRAssertHeapFv do_freeAll__13JKRAssertHeapFv do_freeTail__13JKRAssertHeapFv do_free__13JKRAssertHeapFPv -do_getCurrentGroupId__13JKRAssertHeapFv -do_getFreeSize__13JKRAssertHeapFv -do_getMaxFreeBlock__13JKRAssertHeapFv -do_getSize__13JKRAssertHeapFPv -do_getTotalFreeSize__13JKRAssertHeapFv +do_getCurrentGroupId__13JKRAssertHeapCFv +do_getFreeSize__13JKRAssertHeapCFv +do_getMaxFreeBlock__13JKRAssertHeapCFv +do_getSize__13JKRAssertHeapCFPv +do_getTotalFreeSize__13JKRAssertHeapCFv do_resize__13JKRAssertHeapFPvUl dump__13JKRAssertHeapFv dump_sort__13JKRAssertHeapFv -getHeapType__13JKRAssertHeapFv +getHeapType__13JKRAssertHeapCFv __dt__10JKRExpHeapFv check__10JKRExpHeapFv do_alloc__10JKRExpHeapFUli @@ -870,15 +870,15 @@ do_fillFreeArea__10JKRExpHeapFv do_freeAll__10JKRExpHeapFv do_freeTail__10JKRExpHeapFv do_free__10JKRExpHeapFPv -do_getCurrentGroupId__10JKRExpHeapFv -do_getFreeSize__10JKRExpHeapFv -do_getMaxFreeBlock__10JKRExpHeapFv -do_getSize__10JKRExpHeapFPv -do_getTotalFreeSize__10JKRExpHeapFv +do_getCurrentGroupId__10JKRExpHeapCFv +do_getFreeSize__10JKRExpHeapCFv +do_getMaxFreeBlock__10JKRExpHeapCFv +do_getSize__10JKRExpHeapCFPv +do_getTotalFreeSize__10JKRExpHeapCFv do_resize__10JKRExpHeapFPvUl dump__10JKRExpHeapFv dump_sort__10JKRExpHeapFv -getHeapType__10JKRExpHeapFv +getHeapType__10JKRExpHeapCFv state_compare__10JKRExpHeapCFRCQ27JKRHeap6TStateRCQ27JKRHeap6TState state_register__10JKRExpHeapCFPQ27JKRHeap6TStateUl __dt__12JKRSolidHeapFv @@ -889,13 +889,13 @@ do_fillFreeArea__12JKRSolidHeapFv do_freeAll__12JKRSolidHeapFv do_freeTail__12JKRSolidHeapFv do_free__12JKRSolidHeapFPv -do_getFreeSize__12JKRSolidHeapFv -do_getMaxFreeBlock__12JKRSolidHeapFv -do_getSize__12JKRSolidHeapFPv -do_getTotalFreeSize__12JKRSolidHeapFv +do_getFreeSize__12JKRSolidHeapCFv +do_getMaxFreeBlock__12JKRSolidHeapCFv +do_getSize__12JKRSolidHeapCFPv +do_getTotalFreeSize__12JKRSolidHeapCFv do_resize__12JKRSolidHeapFPvUl dump__12JKRSolidHeapFv -getHeapType__12JKRSolidHeapFv +getHeapType__12JKRSolidHeapCFv state_compare__12JKRSolidHeapCFRCQ27JKRHeap6TStateRCQ27JKRHeap6TState state_register__12JKRSolidHeapCFPQ27JKRHeap6TStateUl becomeCurrent__10JKRArchiveFPCc @@ -911,6 +911,11 @@ removeResourceAll__10JKRArchiveFv removeResource__10JKRArchiveFPv getExpandSize__10JKRArchiveCFP12SDIFileEntry setExpandSize__10JKRArchiveFP12SDIFileEntryUl +state_register__7JKRHeapCFPQ27JKRHeap6TStateUl +state_compare__7JKRHeapCFRCQ27JKRHeap6TStateRCQ27JKRHeap6TState +state_dump__7JKRHeapCFRCQ27JKRHeap6TState +do_changeGroupID__7JKRHeapFUc +do_getCurrentGroupId__7JKRHeapCFv item_func_HEART__Fv item_func_GREEN_RUPEE__Fv item_func_BLUE_RUPEE__Fv diff --git a/libs/JSystem/JKernel/JKRAssertHeap.cpp b/libs/JSystem/JKernel/JKRAssertHeap.cpp index 4742a70dd90..9803bdf59cc 100644 --- a/libs/JSystem/JKernel/JKRAssertHeap.cpp +++ b/libs/JSystem/JKernel/JKRAssertHeap.cpp @@ -28,8 +28,8 @@ void JKRAssertHeap::do_destroy(void) { this->~JKRAssertHeap(); } -u32 JKRAssertHeap::getHeapType(void) { - return 0x41535448; // FOURCC("ASTH") +u32 JKRAssertHeap::getHeapType(void) const { + return 'ASTH'; } bool JKRAssertHeap::check(void) { @@ -48,7 +48,7 @@ u8 JKRAssertHeap::do_changeGroupID(u8) { return 0; } -u8 JKRAssertHeap::do_getCurrentGroupId(void) { +u8 JKRAssertHeap::do_getCurrentGroupId(void) const { return 0; } @@ -68,18 +68,18 @@ s32 JKRAssertHeap::do_resize(void*, u32) { return 0; } -s32 JKRAssertHeap::do_getSize(void*) { +s32 JKRAssertHeap::do_getSize(void*) const { return 0; } -s32 JKRAssertHeap::do_getFreeSize(void) { +s32 JKRAssertHeap::do_getFreeSize(void) const { return 0; } -void* JKRAssertHeap::do_getMaxFreeBlock(void) { +void* JKRAssertHeap::do_getMaxFreeBlock(void) const { return NULL; } -s32 JKRAssertHeap::do_getTotalFreeSize(void) { +s32 JKRAssertHeap::do_getTotalFreeSize(void) const { return 0; } diff --git a/libs/JSystem/JKernel/JKRExpHeap.cpp b/libs/JSystem/JKernel/JKRExpHeap.cpp index 2badf9e73cc..e27cc8c9278 100644 --- a/libs/JSystem/JKernel/JKRExpHeap.cpp +++ b/libs/JSystem/JKernel/JKRExpHeap.cpp @@ -86,22 +86,22 @@ asm s32 JKRExpHeap::do_resize(void*, u32) { #include "JSystem/JKernel/JKRExpHeap/asm/func_802CF978.s" } -asm s32 JKRExpHeap::do_getSize(void*) { +asm s32 JKRExpHeap::do_getSize(void*) const { nofralloc #include "JSystem/JKernel/JKRExpHeap/asm/func_802CFB24.s" } -asm s32 JKRExpHeap::do_getFreeSize(void) { +asm s32 JKRExpHeap::do_getFreeSize(void) const { nofralloc #include "JSystem/JKernel/JKRExpHeap/asm/func_802CFBA4.s" } -asm void* JKRExpHeap::do_getMaxFreeBlock(void) { +asm void* JKRExpHeap::do_getMaxFreeBlock(void) const { nofralloc #include "JSystem/JKernel/JKRExpHeap/asm/func_802CFC10.s" } -asm s32 JKRExpHeap::do_getTotalFreeSize(void) { +asm s32 JKRExpHeap::do_getTotalFreeSize(void) const { nofralloc #include "JSystem/JKernel/JKRExpHeap/asm/func_802CFC84.s" } @@ -200,12 +200,12 @@ asm bool JKRExpHeap::state_compare(JKRHeap::TState const&, JKRHeap::TState const #include "JSystem/JKernel/JKRExpHeap/asm/func_802D09E0.s" } -asm u32 JKRExpHeap::getHeapType(void) { +asm u32 JKRExpHeap::getHeapType(void) const { nofralloc #include "JSystem/JKernel/JKRExpHeap/asm/func_802D0A10.s" } -asm u8 JKRExpHeap::do_getCurrentGroupId(void) { +asm u8 JKRExpHeap::do_getCurrentGroupId(void) const { nofralloc #include "JSystem/JKernel/JKRExpHeap/asm/func_802D0A1C.s" } diff --git a/libs/JSystem/JKernel/JKRHeap.cpp b/libs/JSystem/JKernel/JKRHeap.cpp index d9535263b2c..13cdac78734 100644 --- a/libs/JSystem/JKernel/JKRHeap.cpp +++ b/libs/JSystem/JKernel/JKRHeap.cpp @@ -5,8 +5,8 @@ JKRHeap::JKRHeap(void* data, u32 size, JKRHeap* parent, bool errorFlag) : JKRDisposer(), mChildTree(this), mDisposerList() { OSInitMutex(&mMutex); mSize = size; - mStart = (u32)data; - mEnd = (u32)data + size; + mStart = (u8*)data; + mEnd = (u8*)data + size; if (parent == NULL) { becomeSystemHeap(); @@ -68,6 +68,7 @@ asm JKRHeap::~JKRHeap() { #include "JSystem/JKernel/JKRHeap/asm/func_802CE264.s" } #endif + bool JKRHeap::initArena(char** memory, u32* size, int param_3) { u32 ram_start; u32 ram_end; @@ -176,19 +177,19 @@ s32 JKRHeap::getSize(void* ptr, JKRHeap* heap) { return heap->getSize(ptr); } -s32 JKRHeap::getSize(void* ptr) { +s32 JKRHeap::getSize(void* ptr) const { return do_getSize(ptr); } -s32 JKRHeap::getFreeSize() { +s32 JKRHeap::getFreeSize() const { return do_getFreeSize(); } -void* JKRHeap::getMaxFreeBlock() { +void* JKRHeap::getMaxFreeBlock() const { return do_getMaxFreeBlock(); } -s32 JKRHeap::getTotalFreeSize() { +s32 JKRHeap::getTotalFreeSize() const { return do_getTotalFreeSize(); } @@ -198,7 +199,7 @@ u8 JKRHeap::changeGroupID(u8 param_1) { // "not/nor" instruction in the wrong place #ifdef NONMATCHING -s32 JKRHeap::getMaxAllocatableSize(int alignment) { +s32 JKRHeap::getMaxAllocatableSize(int alignment) const { u32 maxFreeBlock = (u32)getMaxFreeBlock(); s32 freeSize = getFreeSize(); @@ -208,7 +209,7 @@ s32 JKRHeap::getMaxAllocatableSize(int alignment) { return alignedSize; } #else -asm s32 JKRHeap::getMaxAllocatableSize(int alignment) { +asm u32 JKRHeap::getMaxAllocatableSize(int alignment) const { nofralloc #include "JSystem/JKernel/JKRHeap/asm/func_802CE7DC.s" } @@ -412,3 +413,27 @@ void operator delete(void* ptr) { void operator delete[](void* ptr) { JKRHeap::free(ptr, NULL); } + +void JKRHeap::state_register(JKRHeap::TState* p, u32 id) const { + JUT_ASSERT(p != 0); + JUT_ASSERT(p->getHeap() == this); +} + +bool JKRHeap::state_compare(JKRHeap::TState const& r1, JKRHeap::TState const& r2) const { + JUT_ASSERT(r1.getHeap() == r2.getHeap()); + return r1.getCheckCode() == r2.getCheckCode(); +} + +void JKRHeap::state_dump(JKRHeap::TState const& p) const { + LOGF("check-code : 0x%08x", p.getCheckCode()); + LOGF("id : 0x%08x", p.getId()); + LOGF("used size : %u", p.getUsedSize()); +} + +u8 JKRHeap::do_changeGroupID(u8 newGroupID) { + return 0; +} + +u8 JKRHeap::do_getCurrentGroupId() const { + return 0; +} diff --git a/libs/JSystem/JKernel/JKRSolidHeap.cpp b/libs/JSystem/JKernel/JKRSolidHeap.cpp index 9890f4d461e..d3d4d6b55f2 100644 --- a/libs/JSystem/JKernel/JKRSolidHeap.cpp +++ b/libs/JSystem/JKernel/JKRSolidHeap.cpp @@ -1,112 +1,301 @@ #include "JSystem/JKernel/JKRSolidHeap/JKRSolidHeap.h" #include "global.h" -asm void JKRSolidHeap::create(unsigned long, JKRHeap*, bool) { - nofralloc -#include "JSystem/JKernel/JKRSolidHeap/asm/func_802D0A24.s" +JKRSolidHeap* JKRSolidHeap::create(u32 size, JKRHeap* heap, bool useErrorHandler) { + if (!heap) { + heap = getRootHeap(); + } + + if (size == 0xffffffff) { + size = heap->getMaxAllocatableSize(0x10); + } + + u32 alignedSize = ALIGN_PREV(size, 0x10); + u32 solidHeapSize = ALIGN_NEXT(sizeof(JKRSolidHeap), 0x10); + if (alignedSize < solidHeapSize) + return NULL; + + JKRSolidHeap* solidHeap = (JKRSolidHeap*)JKRAllocFromHeap(heap, alignedSize, 0x10); + void* dataPtr = (u8*)solidHeap + solidHeapSize; + if (!solidHeap) + return NULL; + + solidHeap = + new (solidHeap) JKRSolidHeap(dataPtr, alignedSize - solidHeapSize, heap, useErrorHandler); + return solidHeap; } -asm void JKRSolidHeap::do_destroy(void) { - nofralloc -#include "JSystem/JKernel/JKRSolidHeap/asm/func_802D0AD0.s" +void JKRSolidHeap::do_destroy(void) { + JKRHeap* parent = getParent(); + if (parent) { + this->~JKRSolidHeap(); + JKRFreeToHeap(parent, this); + } } -asm JKRSolidHeap::JKRSolidHeap(void*, unsigned long, JKRHeap*, bool) { - nofralloc -#include "JSystem/JKernel/JKRSolidHeap/asm/func_802D0B30.s" +JKRSolidHeap::JKRSolidHeap(void* start, u32 size, JKRHeap* parent, bool useErrorHandler) + : JKRHeap(start, size, parent, useErrorHandler) { + mFreeSize = mSize; + mSolidHead = (u8*)mStart; + mSolidTail = (u8*)mEnd; + field_0x78 = NULL; } -asm JKRSolidHeap::~JKRSolidHeap(void) { - nofralloc -#include "JSystem/JKernel/JKRSolidHeap/asm/func_802D0B8C.s" +JKRSolidHeap::~JKRSolidHeap(void) { + dispose(); } -asm void JKRSolidHeap::adjustSize(void) { +#ifdef NONMATCHING +s32 JKRSolidHeap::adjustSize(void) { + JKRHeap* parent = getParent(); + if (parent) { + lock(); + s32 start = mStart; + s32 newSize = (s32)this->mSolidHead - ALIGN_NEXT(start, 0x20); + s32 newSizeThis = newSize + (start - (s32)this); + s32 actualSize = parent->resize(this, newSizeThis); + if (actualSize != -1) { + mFreeSize = 0; + mSize = newSize; + mEnd = mStart + mSize; + mSolidHead = (void*)mEnd; + mSolidTail = (void*)mEnd; + } + + unlock(); + + return newSizeThis; + } + + return -1; +} +#else +asm s32 JKRSolidHeap::adjustSize(void) { nofralloc #include "JSystem/JKernel/JKRSolidHeap/asm/func_802D0BF4.s" } +#endif -asm void* JKRSolidHeap::do_alloc(unsigned long, int) { - nofralloc -#include "JSystem/JKernel/JKRSolidHeap/asm/func_802D0CB0.s" +void* JKRSolidHeap::do_alloc(u32 size, int alignment) { + if (alignment != 0) { + JUT_ASSERT(abs(alignment)); + JUT_ASSERT(isPower2(alignment)); + } + + lock(); + + if (size < 4) { + size = 4; + } + + void* ptr; + if (alignment >= 0) { + ptr = allocFromHead(size, alignment < 4 ? 4 : alignment); + } else { + if (-alignment < 4) { + alignment = 4; + } else { + alignment = -alignment; + } + + ptr = allocFromTail(size, alignment); + } + + unlock(); + return ptr; } -asm void JKRSolidHeap::allocFromHead(unsigned long, int) { +#ifdef NONMATCHING +void* JKRSolidHeap::allocFromHead(u32 size, int alignment) { + void* ptr; + u32 offset; + u32 alignedSize; + u32 alignedStart; + u32 totalSize; + alignedSize = ALIGN_NEXT(size, 0x4); + ptr = NULL; + alignedStart = (alignment - 1 + (u32)mSolidHead) & ~(alignment - 1); + offset = alignedStart - (u32)mSolidHead; + totalSize = alignedSize + offset; + if (totalSize <= mFreeSize) { + ptr = (void*)alignedStart; + mSolidHead += totalSize; + mFreeSize -= totalSize; + } else { + // "allocFromHead: cannot alloc memory (0x%x byte).\n" + const char* format = lbl_8039CE50; + JUTWarningConsole_f(format, totalSize); + if (getErrorFlag() == true) { + callErrorHandler(this, alignedSize, alignment); + } + } + + return ptr; +} +#else +asm void* JKRSolidHeap::allocFromHead(u32, int) { nofralloc #include "JSystem/JKernel/JKRSolidHeap/asm/func_802D0D58.s" } +#endif -asm void JKRSolidHeap::allocFromTail(unsigned long, int) { +asm void* JKRSolidHeap::allocFromTail(u32, int) { nofralloc #include "JSystem/JKernel/JKRSolidHeap/asm/func_802D0E20.s" } -asm void JKRSolidHeap::do_free(void*) { - nofralloc -#include "JSystem/JKernel/JKRSolidHeap/asm/func_802D0EE4.s" +void JKRSolidHeap::do_free(void* ptr) { + // "free: cannot free memory block (%08x)\n" + const char* format = lbl_8039CE50 + 0x62; + JUTWarningConsole_f(format, ptr); } -asm void JKRSolidHeap::do_freeAll(void) { - nofralloc -#include "JSystem/JKernel/JKRSolidHeap/asm/func_802D0F14.s" +void JKRSolidHeap::do_freeAll(void) { + lock(); + + this->JKRHeap::callAllDisposer(); + mFreeSize = mSize; + mSolidHead = (u8*)mStart; + mSolidTail = (u8*)mEnd; + field_0x78 = NULL; + + unlock(); } -asm void JKRSolidHeap::do_freeTail(void) { - nofralloc -#include "JSystem/JKernel/JKRSolidHeap/asm/func_802D0F74.s" +void JKRSolidHeap::do_freeTail(void) { + lock(); + + if (mSolidTail != mEnd) { + dispose(mSolidTail, mEnd); + } + + this->mFreeSize = ((u32)mEnd - (u32)mSolidTail + mFreeSize); + this->mSolidTail = mEnd; + + JKRSolidHeap::Unknown* unknown = field_0x78; + while (unknown) { + unknown->field_0xc = mEnd; + unknown = unknown->mNext; + } + + unlock(); } -asm void JKRSolidHeap::do_fillFreeArea(void) { - nofralloc -#include "JSystem/JKernel/JKRSolidHeap/asm/func_802D1000.s" +void JKRSolidHeap::do_fillFreeArea(void) { +#if DEBUG + fillMemory(mSolidHead, mEnd - mSolidHead, (uint)DAT_8074a8ba); +#endif } -asm s32 JKRSolidHeap::do_resize(void*, unsigned long) { - nofralloc -#include "JSystem/JKernel/JKRSolidHeap/asm/func_802D1004.s" +s32 JKRSolidHeap::do_resize(void* ptr, u32 newSize) { + // "resize: cannot resize memory block (%08x: %d)\n" + const char* format = lbl_8039CE50 + 0x89; + JUTWarningConsole_f(format, ptr, newSize); + return -1; } -asm s32 JKRSolidHeap::do_getSize(void*) { - nofralloc -#include "JSystem/JKernel/JKRSolidHeap/asm/func_802D1038.s" +s32 JKRSolidHeap::do_getSize(void* ptr) const { + // "getSize: cannot get memory block size (%08x)\n" + const char* format = lbl_8039CE50 + 0xB8; + JUTWarningConsole_f(format, ptr); + return -1; } -asm bool JKRSolidHeap::check(void) { - nofralloc -#include "JSystem/JKernel/JKRSolidHeap/asm/func_802D106C.s" +bool JKRSolidHeap::check(void) { + lock(); + + bool result = true; + u32 calculatedSize = + ((u32)mSolidHead - (u32)mStart) + mFreeSize + ((u32)mEnd - (u32)mSolidTail); + u32 availableSize = mSize; + if (calculatedSize != availableSize) { + result = false; + // "check: bad total memory block size (%08X, %08X)\n" + const char* format = lbl_8039CE50 + 0xE6; + JUTWarningConsole_f(format, availableSize, calculatedSize); + } + + unlock(); + return result; } +// problem: int -> float conversion creates a temporary value (lbl_80455FA0 = 4.503599627370496E15). +// Because the value is compiler generated the location in the .dol will not be the same as in the +// original .dol file. +#ifdef NONMATCHING +bool JKRSolidHeap::dump(void) { + bool result = check(); + + lock(); + u32 headSize = ((u32)mSolidHead - (u32)mStart); + u32 tailSize = ((u32)mEnd - (u32)mSolidTail); + s32 htSize = headSize + tailSize; + const char* format1 = lbl_8039CE50 + 0x117; // "head %08x: %08x\n" + JUTReportConsole_f(format1, mStart, headSize); + + const char* format2 = lbl_8039CE50 + 0x128; // "tail %08x: %08x\n" + JUTReportConsole_f(format2, mSolidTail, ((u32)mEnd - (u32)mSolidTail)); + + u32 totalSize = mSize; + float percentage = (float)htSize / (float)totalSize * lbl_80455FA8; + const char* format3 = lbl_8039CE50 + 0x139; // "%d / %d bytes (%6.2f%%) used\n" + JUTReportConsole_f(format3, htSize, totalSize, percentage); + unlock(); + + return result; +} +#else asm bool JKRSolidHeap::dump(void) { nofralloc #include "JSystem/JKernel/JKRSolidHeap/asm/func_802D10FC.s" } +#endif -asm void JKRSolidHeap::state_register(JKRHeap::TState*, unsigned long) const { +// full match expect using the wrong register +#ifdef NONMATCHING +void JKRSolidHeap::state_register(JKRHeap::TState* p, u32 id) const { + JUT_ASSERT(p != 0); + JUT_ASSERT(p->getHeap() == this); + + getState_(p); + setState_u32ID_(p, id); + setState_uUsedSize_(p, getUsedSize()); + setState_u32CheckCode_(p, (u32)mSolidHead + (u32)mSolidTail * 3); +} +#else +asm void JKRSolidHeap::state_register(JKRHeap::TState* p, u32 id) const { nofralloc #include "JSystem/JKernel/JKRSolidHeap/asm/func_802D11FC.s" } +#endif -asm bool JKRSolidHeap::state_compare(JKRHeap::TState const&, JKRHeap::TState const&) const { - nofralloc -#include "JSystem/JKernel/JKRSolidHeap/asm/func_802D1258.s" +bool JKRSolidHeap::state_compare(JKRHeap::TState const& r1, JKRHeap::TState const& r2) const { + JUT_ASSERT(r1.getHeap() == r2.getHeap()); + + bool result = true; + if (r1.getCheckCode() != r2.getCheckCode()) { + result = false; + } + + if (r1.getUsedSize() != r2.getUsedSize()) { + result = false; + } + + return result; } -asm u32 JKRSolidHeap::getHeapType(void) { - nofralloc -#include "JSystem/JKernel/JKRSolidHeap/asm/func_802D1288.s" +u32 JKRSolidHeap::getHeapType(void) const { + return 'SLID'; } -asm s32 JKRSolidHeap::do_getFreeSize(void) { - nofralloc -#include "JSystem/JKernel/JKRSolidHeap/asm/func_802D1294.s" +s32 JKRSolidHeap::do_getFreeSize(void) const { + return mFreeSize; } -asm void* JKRSolidHeap::do_getMaxFreeBlock(void) { - nofralloc -#include "JSystem/JKernel/JKRSolidHeap/asm/func_802D129C.s" +void* JKRSolidHeap::do_getMaxFreeBlock(void) const { + return mSolidHead; } -asm s32 JKRSolidHeap::do_getTotalFreeSize(void) { - nofralloc -#include "JSystem/JKernel/JKRSolidHeap/asm/func_802D12A4.s" +s32 JKRSolidHeap::do_getTotalFreeSize(void) const { + return getFreeSize(); } diff --git a/obj_files.mk b/obj_files.mk index d3bd6129bb3..bebbce787dd 100644 --- a/obj_files.mk +++ b/obj_files.mk @@ -424,7 +424,6 @@ TEXT_O_FILES := \ $(BUILD_DIR)/asm/gf/GFPixel.o \ $(BUILD_DIR)/asm/gf/GFTev.o \ $(BUILD_DIR)/libs/JSystem/JKernel/JKRHeap.o \ - $(BUILD_DIR)/asm/JKernel/JKRHeap.o \ $(BUILD_DIR)/libs/JSystem/JKernel/JKRExpHeap.o \ $(BUILD_DIR)/libs/JSystem/JKernel/JKRSolidHeap.o \ $(BUILD_DIR)/libs/JSystem/JKernel/JKRAssertHeap.o \