A reimplementation of Mario Kart Wii's physics engine in C++
Loading...
Searching...
No Matches
Kinoko::EGG::FrmHeap Class Reference

Description

Definition at line 9 of file FrmHeap.hh.

Inheritance diagram for Kinoko::EGG::FrmHeap:

Public Member Functions

void destroy () override
Kind getHeapKind () const override
void * alloc (size_t size, s32 align) override
void free (void *block) override
u32 getAllocatableSize (s32 align=4) const override
Abstract::Memory::MEMiFrmHeapHead * dynamicCastHandleToFrm ()
const Abstract::Memory::MEMiFrmHeapHead * dynamicCastHandleToFrm () const
Public Member Functions inherited from Kinoko::EGG::Heap
 Heap (Abstract::Memory::MEMiHeapHead *handle)
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 FrmHeap * create (void *startAddress, size_t size, u16 opt)
static FrmHeap * create (size_t size, Heap *heap, u16 opt)
Static Public Member Functions inherited from Kinoko::EGG::Heap
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 FrmHeap * dynamicCastToFrm (Heap *heap)
static Heap * getCurrentHeap ()
static constexpr uintptr_t getOffset ()

Private Member Functions

 FrmHeap (Abstract::Memory::MEMiHeapHead *handle)

Additional Inherited Members

Public Types inherited from Kinoko::EGG::Heap
enum class  Kind {
  None ,
  Expanded ,
  Frame ,
  Unit ,
  Assert
}
Protected Types inherited from Kinoko::EGG::Heap
enum class  eFlags { Lock = 0 }
typedef TBitFlag< u16, eFlags > Flags
Protected Attributes inherited from Kinoko::EGG::Heap
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 inherited from Kinoko::EGG::Heap
static Abstract::Memory::MEMList s_heapList = MEMList(EGG::Heap::getOffset())
static Heap * s_currentHeap = nullptr
static Heap * s_allocatableHeap = nullptr

Constructor & Destructor Documentation

◆ ~FrmHeap()

Kinoko::EGG::FrmHeap::~FrmHeap ( )
override

Definition at line 9 of file FrmHeap.cc.

◆ FrmHeap()

Kinoko::EGG::FrmHeap::FrmHeap ( Abstract::Memory::MEMiHeapHead * handle)
private

Definition at line 7 of file FrmHeap.cc.

Member Function Documentation

◆ alloc()

void * Kinoko::EGG::FrmHeap::alloc ( size_t size,
s32 align )
nodiscardoverridevirtual

Implements Kinoko::EGG::Heap.

Definition at line 69 of file FrmHeap.cc.

◆ create() [1/2]

FrmHeap * Kinoko::EGG::FrmHeap::create ( size_t size,
Heap * heap,
u16 opt )
staticnodiscard

Definition at line 37 of file FrmHeap.cc.

◆ create() [2/2]

FrmHeap * Kinoko::EGG::FrmHeap::create ( void * startAddress,
size_t size,
u16 opt )
staticnodiscard

Definition at line 14 of file FrmHeap.cc.

◆ destroy()

void Kinoko::EGG::FrmHeap::destroy ( )
overridevirtual

Implements Kinoko::EGG::Heap.

Definition at line 61 of file FrmHeap.cc.

◆ dynamicCastHandleToFrm() [1/2]

MEMiFrmHeapHead * Kinoko::EGG::FrmHeap::dynamicCastHandleToFrm ( )
nodiscard

Definition at line 81 of file FrmHeap.cc.

◆ dynamicCastHandleToFrm() [2/2]

const MEMiFrmHeapHead * Kinoko::EGG::FrmHeap::dynamicCastHandleToFrm ( ) const
nodiscard

Definition at line 85 of file FrmHeap.cc.

◆ free()

void Kinoko::EGG::FrmHeap::free ( void * block)
overridevirtual

Implements Kinoko::EGG::Heap.

Definition at line 75 of file FrmHeap.cc.

◆ getAllocatableSize()

u32 Kinoko::EGG::FrmHeap::getAllocatableSize ( s32 align = 4) const
nodiscardoverridevirtual

Implements Kinoko::EGG::Heap.

Definition at line 77 of file FrmHeap.cc.

◆ getHeapKind()

Kind Kinoko::EGG::FrmHeap::getHeapKind ( ) const
inlinenodiscardoverridevirtual0x80226EFC

Implements Kinoko::EGG::Heap.

Definition at line 15 of file FrmHeap.hh.