diff options
author | Max <mparisi@stevens.edu> | 2020-10-18 02:22:36 -0400 |
---|---|---|
committer | Max <mparisi@stevens.edu> | 2020-10-18 02:22:36 -0400 |
commit | 3ac8c8de6aefd3d31498a8a638f196838cffd523 (patch) | |
tree | 0aaee608a58aa02800c1a644e64691e0f11ab688 /src/code_801DAAE0.cpp | |
parent | 0403eb6c4ba1c8d6fe8bb1e542d6737cb2bfc46e (diff) |
match up to func_801DAF70
Diffstat (limited to 'src/code_801DAAE0.cpp')
-rw-r--r-- | src/code_801DAAE0.cpp | 149 |
1 files changed, 142 insertions, 7 deletions
diff --git a/src/code_801DAAE0.cpp b/src/code_801DAAE0.cpp index f54450d..d999cdc 100644 --- a/src/code_801DAAE0.cpp +++ b/src/code_801DAAE0.cpp @@ -7,17 +7,25 @@ extern "C" {
// unkStruct gUnk8063F2D0(1, 4, 0);
-// TODO: move
-extern u32 lbl_8063E8E8;
-extern u32 lbl_8063E8EC;
+// TODO: move to headers
+extern MEMHeapHandle lbl_8063E8E8;
+extern MEMHeapHandle lbl_8063E8EC;
extern u8 lbl_8063F2D6;
extern u8 lbl_8063F2D7;
-extern u32 lbl_8063F2D8;
+extern MEMHeapHandle lbl_8063F2D8;
extern u16 lbl_8063F2DC;
void *memset(void *s, int c, size_t n);
MEMHeapHandle MEMCreateExpHeapEx(void* p1, u32 p2, u16 p3);
u16 MEMSetGroupIDForExpHeap(MEMHeapHandle heap, u16 groupID);
+void *MEMAllocFromExpHeapEx(MEMHeapHandle heap, u32 size, int alignment);
+u32 MEMResizeForMBlockExpHeap(MEMHeapHandle heap, void *memBlock, u32 size);
+void MEMFreeToExpHeap(MEMHeapHandle heap, void *memBlock);
+u32 MEMGetSizeForMBlockExpHeap(const void *memBlock);
+u32 MEMGetTotalFreeSizeForExpHeap(MEMHeapHandle heap);
+u16 MEMGetGroupIDForMBlockExpHeap(const void *memBlock);
+//void MEMVisitAllocatedForExpHeap(MEMHeapHandle heap, MEMHeapVisitor visitor, u32 userParam);
+
unkClass gUnk804912B0[16];
@@ -57,14 +65,14 @@ MEMHeapHandle func_801DAB78(void* p1, u32 p2, u16 p3) return r3;
}
-u32 func_801DAC0C(void)
+MEMHeapHandle func_801DAC0C(void)
{
return lbl_8063F2D8;
}
-u32 func_801DAC14(u32 p1)
+MEMHeapHandle func_801DAC14(MEMHeapHandle p1)
{
- u32 r3 = func_801DAC0C();
+ MEMHeapHandle r3 = func_801DAC0C();
lbl_8063F2D8 = p1;
return r3;
}
@@ -78,6 +86,133 @@ u16 func_801DAC44(u16 p1) return r31;
}
+u16 func_801DAC90(MEMHeapHandle heap, u16 groupID)
+{
+ return MEMSetGroupIDForExpHeap(heap, groupID);
+}
+
+void* func_801DAC94(MEMHeapHandle heap, u32 size)
+{
+ return MEMAllocFromExpHeapEx(heap, size, 32);
+}
+
+void* lbl_801DAC9C(MEMHeapHandle heap, u32 size, int fill)
+{
+ void* r31 = func_801DAC94(heap, size);
+ if (!r31)
+ return NULL;
+ memset(r31, fill, size);
+ return r31;
+}
+
+void* func_801DAD00(MEMHeapHandle heap, u32 size)
+{
+ return lbl_801DAC9C(heap, size, 0);
+}
+
+void* func_801DAD08(MEMHeapHandle heap, u32 size, int alignment)
+{
+ return MEMAllocFromExpHeapEx(heap, size, alignment);
+}
+
+void* func_801DAD0C(MEMHeapHandle heap, u32 size, int alignment)
+{
+ return MEMAllocFromExpHeapEx(heap, size, (alignment > 0) ? -alignment : alignment);
+}
+
+BOOL func_801DAD1C(MEMHeapHandle heap, void *memBlock, u32 size)
+{
+ return MEMResizeForMBlockExpHeap(heap, memBlock, size) != 0;
+}
+
+void func_801DAD48(MEMHeapHandle heap, void *memBlock)
+{
+ if (memBlock)
+ MEMFreeToExpHeap(heap, memBlock);
+}
+
+u32 func_801DAD58(u32, const void *memBlock)
+{
+ return MEMGetSizeForMBlockExpHeap(memBlock);
+}
+
+u32 func_801DAD60(MEMHeapHandle heap)
+{
+ return MEMGetTotalFreeSizeForExpHeap(heap);
+}
+
+void *func_801DAD64(size_t size)
+{
+ return func_801DAC94(func_801DAC0C(), size);
+}
+
+void *func_801DAD98(u32 size)
+{
+ return func_801DAD00(func_801DAC0C(), size);
+}
+
+void *func_801DADCC(u32 size, int alignment)
+{
+ return func_801DAD08(func_801DAC0C(), size, alignment);
+}
+
+void *func_801DAE10(u32 size, int alignment)
+{
+ return func_801DAD08(func_801DAC0C(), size, (alignment > 0) ? -alignment : alignment);
+}
+
+BOOL func_801DAE60(void *memBlock, u32 size)
+{
+ return func_801DAD1C(func_801DAC0C(), memBlock, size);
+}
+
+void func_801DAEA4(void *memBlock)
+{
+ if (memBlock)
+ func_801DAD48(func_801DAC0C(), memBlock);
+}
+
+u32 func_801DAEE0(const void *memBlock)
+{
+ if (memBlock == NULL)
+ return 0;
+ return MEMGetSizeForMBlockExpHeap(memBlock);
+}
+
+u32 func_801DAEF8(void)
+{
+ return func_801DAD60(func_801DAC0C());
+}
+
+void lbl_801DAF1C(void *memBlock, MEMHeapHandle, u32 p3)
+{
+ if (MEMGetGroupIDForMBlockExpHeap(memBlock) == ((unkClass2 *)p3)->groupID)
+ MEMFreeToExpHeap(((unkClass2 *)p3)->heap, memBlock);
+}
+
+/*
+func_801DAF70
+{
+ lbl_801DAF1C
+}
+*/
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
|