4#include <container/seadPtrArray.h>
5#include <heap/seadArena.h>
6#include <hostio/seadHostIODummy.h>
7#include <thread/seadCriticalSection.h>
9#define NUM_ROOT_HEAPS_MAX 4
10#define NUM_INDEPENDENT_HEAPS_MAX 4
113static_assert(
sizeof(
HeapMgr) == 8,
"sead::HeapMgr size mismatch");
138static_assert(
sizeof(
CurrentHeapSetter) == 4,
"sead::CurrentHeapSetter size mismatch");
142#undef NUM_ROOT_HEAPS_MAX
143#undef NUM_INDEPENDENT_HEAPS_MAX
Definition seadCriticalSection.h:13
Definition seadHeapMgr.h:117
CurrentHeapSetter(Heap *heap)
Definition seadHeapMgr.h:119
~CurrentHeapSetter()
Definition seadHeapMgr.h:129
Heap * mPrevHeap
Definition seadHeapMgr.h:136
Definition seadPtrArray.h:291
Definition seadHeapMgr.h:21
static HeapMgr * instance()
Definition seadHeapMgr.h:61
void callCreateCallback_(Heap *)
Definition seadHeapMgr.h:83
virtual ~HeapMgr()
Definition seadHeapMgr.cpp:25
Heap * setCurrentHeap_(Heap *heap)
static IndependentHeaps sIndependentHeaps
Definition seadHeapMgr.h:110
static HeapMgr * sInstancePtr
Definition seadHeapMgr.h:105
static RootHeaps sRootHeaps
Definition seadHeapMgr.h:108
static Arena sDefaultArena
Definition seadHeapMgr.h:107
Heap * findContainHeap(const void *memBlock) const
Definition seadHeapMgr.cpp:30
static void initializeImpl_()
FixedPtrArray< Heap, NUM_INDEPENDENT_HEAPS_MAX > IndependentHeaps
Definition seadHeapMgr.h:48
static Heap * getRootHeap(s32 n)
Definition seadHeapMgr.h:66
IDelegate1< const AllocFailedCallbackArg * > IAllocFailedCallback
Definition seadHeapMgr.h:40
static HeapMgr sInstance
Definition seadHeapMgr.h:104
static IndependentHeaps * getIndependentHeaps()
Definition seadHeapMgr.h:70
IAllocFailedCallback * setAllocFailedCallback(IAllocFailedCallback *callback)
static void createRootHeap_()
static const Arena * getArena()
static void initialize(u32 size)
static void addRootHeap(Heap *heap)
Heap * getCurrentHeap() const
Definition seadHeapMgr.cpp:52
IAllocFailedCallback * mAllocFailedCallback
Definition seadHeapMgr.h:99
static CriticalSection * getHeapTreeLockCS_()
Definition seadHeapMgr.h:87
HeapMgr()
Definition seadHeapMgr.cpp:20
IAllocFailedCallback * getAllocFailedCallback()
FixedPtrArray< Heap, NUM_ROOT_HEAPS_MAX > RootHeaps
Definition seadHeapMgr.h:45
static CriticalSection sHeapTreeLockCS
Definition seadHeapMgr.h:109
static void initialize(Arena *arena)
static bool isContainedInAnyHeap(const void *ptr)
Definition seadHeapMgr.h:71
static Arena * sArena
Definition seadHeapMgr.h:106
static bool isInitialized()
Definition seadHeapMgr.h:60
static s32 getRootHeapNum()
Definition seadHeapMgr.h:67
Definition seadDelegate.h:266
Definition seadHostIODummy.h:25
Definition seadAssert.h:44
#define NUM_INDEPENDENT_HEAPS_MAX
Definition seadHeapMgr.h:10
#define NUM_ROOT_HEAPS_MAX
Definition seadHeapMgr.h:9
Definition seadHeapMgr.h:26
size_t alloc_size
Definition seadHeapMgr.h:30
size_t request_size
Definition seadHeapMgr.h:28
Heap * heap
Definition seadHeapMgr.h:27
s32 request_alignment
Definition seadHeapMgr.h:29
s32 alloc_alignment
Definition seadHeapMgr.h:31