#include <Heap.hh>
A high-level representation of a memory heap for managing dynamic memory allocation. Interface for allocating and freeing memory blocks.
Public Types | |
| enum class | Kind { None , Expanded , Frame , Unit , Assert } |
Public Member Functions | |
| Heap (Abstract::Memory::MEMiHeapHead *handle) | |
| virtual void | destroy ()=0 |
| virtual Kind | getHeapKind () const =0 |
| virtual void * | alloc (size_t size, s32 align)=0 |
| virtual void | free (void *block)=0 |
| virtual u32 | getAllocatableSize (s32 align=4) const =0 |
| void | dispose () |
| void | disableAllocation () |
| void | enableAllocation () |
| bool | tstDisableAllocation () const |
| void | appendDisposer (Disposer *disposer) |
| void | removeDisposer (Disposer *disposer) |
| Heap * | becomeAllocatableHeap () |
| Heap * | becomeCurrentHeap () |
| void | registerHeapBuffer (void *buffer) |
| void * | getStartAddress () |
| void * | getEndAddress () |
| const char * | getName () const |
| Heap * | getParentHeap () const |
| void | setName (const char *name) |
| void | setParentHeap (Heap *heap) |
Static Public Member Functions | |
| static void | initialize () |
| static void * | alloc (size_t size, int align, Heap *pHeap) |
| static void | free (void *block, Heap *pHeap) |
| static Heap * | findHeap (Abstract::Memory::MEMiHeapHead *handle) |
| static Heap * | findContainHeap (const void *block) |
| static ExpHeap * | dynamicCastToExp (Heap *heap) |
| static Heap * | getCurrentHeap () |
| static constexpr uintptr_t | getOffset () |
Protected Types | |
| enum class | eFlags { Lock = 0 } |
| typedef TBitFlag< u16, eFlags > | Flags |
Protected Attributes | |
| Abstract::Memory::MEMiHeapHead * | m_handle |
| void * | m_block |
| Heap * | m_parentHeap |
| Flags | m_flags |
| Abstract::Memory::MEMLink | m_link |
| Abstract::Memory::MEMList | m_children |
| const char * | m_name |
Static Protected Attributes | |
| static Abstract::Memory::MEMList | s_heapList = MEMList(EGG::Heap::getOffset()) |
| static Heap * | s_currentHeap = nullptr |
| static Heap * | s_allocatableHeap = nullptr |
Additional Inherited Members | |
Private Member Functions inherited from EGG::Disposer | |
Static Private Member Functions inherited from EGG::Disposer | |
| static constexpr u16 | getLinkOffset () |
|
protected |
|
0x802296E8 |
|
staticnodiscard0x80229814 |
|
staticnodiscard0x80229ADC |
|
staticnodiscard |
|
static0x80229B84 |
|
inlinestaticnodiscard |
|
inlinestaticnodiscardconstexpr |
|
inlinenodiscard0x80229AD4 |
|
inlinenodiscard |
|
protected |
|
protected |
|
protected |
|
staticprotected0x80386EA8 |
|
staticprotected0x80386EA0 |