diff options
| author | Elijah Thomas <42302100+elijah-thomas774@users.noreply.github.com> | 2024-05-12 13:00:28 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-05-12 13:00:28 -0400 |
| commit | 901eebc4efdc9b94c3e934bd50c4c3e3388dbd92 (patch) | |
| tree | 2143634e577d2e4d5b22a90c23681060d520536e /include/egg | |
| parent | 477f6da6cdd5051fc2d1be98cbe0ef366c33822d (diff) | |
| parent | d91a82929535494924ef979dd334a77c3bbd38f1 (diff) | |
Merge branch 'main' into eggXfbManager
Diffstat (limited to 'include/egg')
| -rw-r--r-- | include/egg/core/eggExpHeap.h | 7 | ||||
| -rw-r--r-- | include/egg/core/eggGraphicsFifo.h | 2 | ||||
| -rw-r--r-- | include/egg/core/eggHeap.h | 20 | ||||
| -rw-r--r-- | include/egg/prim/eggAssert.h | 13 |
4 files changed, 25 insertions, 17 deletions
diff --git a/include/egg/core/eggExpHeap.h b/include/egg/core/eggExpHeap.h index 2cfc534d..69b35128 100644 --- a/include/egg/core/eggExpHeap.h +++ b/include/egg/core/eggExpHeap.h @@ -24,7 +24,12 @@ public: /* 80495b70 */ static ExpHeap *create(void *block, size_t size, u16 attr); /* 80495c30 */ static ExpHeap *create(size_t size, Heap *heap, u16 attr); /* 80495d00 */ void setGroupID(u16 groupId); - /* 80495f80 */ u32 getSizeForMBlock(const void *block); + /* 80495f80 */ static u32 getSizeForMBlock(const void *block); + + // Placement new for ::create + inline void *operator new(size_t size, void *ptr) { + return ptr; + } }; } // namespace EGG diff --git a/include/egg/core/eggGraphicsFifo.h b/include/egg/core/eggGraphicsFifo.h index 0e060401..8226aa90 100644 --- a/include/egg/core/eggGraphicsFifo.h +++ b/include/egg/core/eggGraphicsFifo.h @@ -22,7 +22,7 @@ public: public: /* 80576798 */ static GraphicsFifo *sGraphicsFifo; - /* 8057679c */ static bool sGpStatus[4]; + /* 8057679c */ static u8 sGpStatus[5]; }; } // namespace EGG diff --git a/include/egg/core/eggHeap.h b/include/egg/core/eggHeap.h index 969fc229..8d9ce935 100644 --- a/include/egg/core/eggHeap.h +++ b/include/egg/core/eggHeap.h @@ -18,12 +18,12 @@ class Allocator; struct HeapAllocArg { void *userArg; // 00 - u32 size; // 04 - int align; // 08 - Heap *heap; // 0C heap to allocate in - int another; // 10 + u32 size; // 04 + int align; // 08 + void *ptr; // 0C the allocated ptr + Heap *heap; // 10 heap to allocate in - inline HeapAllocArg() : userArg(0), size(0), align(0), heap(nullptr) {} + inline HeapAllocArg() : userArg(0), size(0), align(0), heap(nullptr), ptr(nullptr) {} }; typedef void (*HeapAllocCallback)(HeapAllocArg *arg); @@ -37,8 +37,8 @@ typedef void (*ErrorCallback)(HeapErrorArg *); struct HeapFreeArg { void *userArg; - int arg1; - int arg2; + void *ptr; + Heap *heap; }; typedef void (*HeapFreeCallback)(HeapFreeArg *); @@ -57,14 +57,14 @@ public: // vtable at 0x0 | 8056e950 /* vt 0x08 | 804954c0 */ virtual ~Heap(); /* vt 0x0C | 00000000 */ virtual eHeapKind getHeapKind() const = 0; - /* vt 0x10 | 80495a40 */ virtual void initAllocator(Allocator *allocator, s32 align) = 0; + /* vt 0x10 | 80495a40 */ virtual void initAllocator(Allocator *allocator, s32 align); /* vt 0x14 | 00000000 */ virtual void *alloc(u32 size, s32 align) = 0; /* vt 0x18 | 00000000 */ virtual void free(void *block) = 0; /* vt 0x1C | 00000000 */ virtual void destroy() = 0; /* vt 0x20 | 00000000 */ virtual u32 resizeForMBlock(void *block, u32 size) = 0; /* vt 0x24 | 00000000 */ virtual u32 getTotalFreeSize() = 0; - /* vt 0x24 | 00000000 */ virtual u32 getAllocatableSize(s32 align) = 0; - /* vt 0x28 | 00000000 */ virtual u32 adjust() = 0; + /* vt 0x28 | 00000000 */ virtual u32 getAllocatableSize(s32 align) = 0; + /* vt 0x2C | 00000000 */ virtual u32 adjust() = 0; public: void setName(const char *name) { diff --git a/include/egg/prim/eggAssert.h b/include/egg/prim/eggAssert.h index 0910f203..147847b9 100644 --- a/include/egg/prim/eggAssert.h +++ b/include/egg/prim/eggAssert.h @@ -8,14 +8,17 @@ namespace EGG { // TODO: Fixup funtions namespace Assert { +typedef void (*AssertCallback)(); + /* 8049bf90 */ void wait(u32 time); -/* 8049c010 */ void system_print(); -/* 8049c010 */ void system_report(); -/* 8049c0a0 */ s32 getPeriodPos(char *); +/* 8049c010 */ void system_vreport(const char *str, va_list list); +/* 8049c010 */ void system_report(const char *str, ...); +/* 8049c0a0 */ s32 getPeriodPos(const char *); /* 8049c100 */ char *getMapSymbol(); /* 8049c150 */ bool isOutsideMEM1(u32 addr); -/* 8049c190 */ void system_halt(); -/* 8049c530 */ void assert(); +/* 8049c180 */ AssertCallback setAssertCallback(AssertCallback cb); +/* 8049c190 */ void system_halt(const char *file, u32 line, const char *msg, va_list list); +/* 8049c530 */ void assert(const char *file, u32 line, const char *msg, ...); } // namespace Assert |
