From aa400c7ff623eb5043cef3ba31a7abdc1a99d032 Mon Sep 17 00:00:00 2001 From: Phillip Stephens Date: Fri, 30 Oct 2020 15:56:02 -0700 Subject: [PATCH] Iniital CGameAllocator stubs --- Runtime/CGameAllocator.hpp | 43 ++++++++++++++++++++++++++++++++++---- 1 file changed, 39 insertions(+), 4 deletions(-) diff --git a/Runtime/CGameAllocator.hpp b/Runtime/CGameAllocator.hpp index 642284c23..e1307078b 100644 --- a/Runtime/CGameAllocator.hpp +++ b/Runtime/CGameAllocator.hpp @@ -10,11 +10,46 @@ namespace metaforce { class CCallStack { const char* x0_line; const char* x4_type; + public: CCallStack(int lineNum, const char* lineStr, const char* type) : x0_line(lineStr), x4_type(type) {} }; -class CGameAllocator { +struct SAllocInfo {}; + +enum class EHint { + Unk = (1 << 0), + RoundUpLen = (1 << 1), +}; + +ENABLE_BITWISE_ENUM(EHint); + +enum class EScope { + +}; + +enum class EType { + +}; + +class IAllocator { +public: + virtual bool Initialize() = 0; // const COSContext& ctx) = 0; + + virtual void* Alloc() = 0; + virtual s32 Free(void* ptr) = 0; + virtual void ReleaseAll() = 0; + virtual void AllocSecondary() = 0; + virtual void FreeSecondary() = 0; + virtual void ReleaseAllSecondary() = 0; + virtual void SetOutOfMemoryCallback() = 0; + virtual void EnumAllocations() = 0; + virtual SAllocInfo GetAllocInfo() = 0; + virtual void sub80351138() = 0; + virtual void GetMetrics() = 0; +}; + +class CGameAllocator : public IAllocator { struct SGameMemInfo { u32 x0_sentinel = 0xefefefef; size_t x4_len = 0; @@ -26,10 +61,10 @@ class CGameAllocator { u32 x1c_canary = 0xeaeaeaea; }; static u32 GetFreeBinEntryForSize(size_t len); - std::array x14_bins; -public: + std::array x14_bins; - bool Initialize();//const COsContext& ctx); +public: + bool Initialize(); // const COsContext& ctx); }; } // namespace metaforce