sead
Loading...
Searching...
No Matches
sead::UnitHeap Class Reference

#include <seadUnitHeap.h>

Inherits sead::Heap.

Public Member Functions

 UnitHeap (const SafeString &name, Heap *parent, void *address, u32 size, u32, bool)
 ~UnitHeap () override
void destroy () override
size_t adjust () override
void * tryAlloc (size_t size, s32 alignment) override
void free (void *ptr) override
void * resizeFront (void *, size_t) override
void * resizeBack (void *, size_t) override
void freeAll () override
const void * getStartAddress () const override
const void * getEndAddress () const override
size_t getSize () const override
size_t getFreeSize () const override
size_t getMaxAllocatableSize (int) const override
bool isInclude (const void *) const override
bool isFreeable () const override
bool isResizable () const override
bool isAdjustable () const override
Public Member Functions inherited from sead::Heap
 Heap (const SafeString &name, Heap *parent, void *start, size_t size, HeapDirection direction, bool enable_lock)
 ~Heap () override
void * alloc (size_t size, s32 alignment)
virtual size_t getMaxAllocatableSize (s32 alignment=4) const =0
HeapgetParent () const
HeapDirection getDirection () const
void setEnableLock (bool enable_lock)
bool isEnableLock () const
bool lock ()
bool unlock ()
void setEnableWarning (bool)
bool isEnableWarning () const
void setAccessThread (Thread *)
ThreadgetAccessThread () const
virtual void dump () const
OffsetList< Heap >::constIterator childBegin () const
OffsetList< Heap >::constIterator childEnd () const
u32 childSize () const
OffsetList< IDisposer >::constIterator disposerBegin () const
OffsetList< IDisposer >::constIterator disposerEnd () const
u32 disposerSize () const
void pushBackChild_ (Heap *)
Public Member Functions inherited from sead::IDisposer
 IDisposer ()
virtual ~IDisposer ()
Public Member Functions inherited from sead::INamable
 INamable ()
 INamable (const SafeString &name)
void setName (const SafeString &name)
const SafeStringgetName () const

Static Public Member Functions

static UnitHeaptryCreate (u32 size, const SafeString &name, u32 block_size, s32 alignment=4, Heap *parent=nullptr, bool enable_lock=false)
static UnitHeaptryCreateWithBlockNum (u32 block_size, u32 num, const SafeString &name, s32 alignment=4, Heap *parent=nullptr, bool enable_lock=false)

Protected Attributes

u32 mBlockSize
void * mAreaStart
u32 mAreaSize
u32 mFreeSize
FreeList mFreeList
Protected Attributes inherited from sead::Heap
void * mStart
size_t mSize
HeapmParent
HeapList mChildren
ListNode mListNode
DisposerList mDisposerList
HeapDirection mDirection
CriticalSection mCS
BitFlag32 mFlag

Additional Inherited Members

Public Types inherited from sead::Heap
enum  HeapDirection { cHeapDirection_Forward = 1 , cHeapDirection_Reverse = -1 }
Protected Member Functions inherited from sead::Heap
virtual void genInformation_ (hostio::Context *context)
HeapfindContainHeap_ (const void *ptr)
bool hasNoChild_ () const
void destruct_ ()
void dispose_ (const void *, const void *)
void appendDisposer_ (IDisposer *o)
void removeDisposer_ (IDisposer *o)
void eraseChild_ (Heap *)
void checkAccessThread_ () const
friend IDisposer::IDisposer ()
friend IDisposer::~IDisposer ()

Constructor & Destructor Documentation

◆ UnitHeap()

sead::UnitHeap::UnitHeap ( const SafeString & name,
Heap * parent,
void * address,
u32 size,
u32 ,
bool  )

◆ ~UnitHeap()

sead::UnitHeap::~UnitHeap ( )
override

Member Function Documentation

◆ destroy()

void sead::UnitHeap::destroy ( )
overridevirtual

Implements sead::Heap.

◆ adjust()

size_t sead::UnitHeap::adjust ( )
overridevirtual

Implements sead::Heap.

◆ tryAlloc()

void * sead::UnitHeap::tryAlloc ( size_t size,
s32 alignment )
overridevirtual

Implements sead::Heap.

◆ free()

void sead::UnitHeap::free ( void * ptr)
overridevirtual

Implements sead::Heap.

◆ resizeFront()

void * sead::UnitHeap::resizeFront ( void * ,
size_t  )
overridevirtual

Implements sead::Heap.

◆ resizeBack()

void * sead::UnitHeap::resizeBack ( void * ,
size_t  )
overridevirtual

Implements sead::Heap.

◆ freeAll()

void sead::UnitHeap::freeAll ( )
overridevirtual

Implements sead::Heap.

◆ getStartAddress()

const void * sead::UnitHeap::getStartAddress ( ) const
overridevirtual

Implements sead::Heap.

◆ getEndAddress()

const void * sead::UnitHeap::getEndAddress ( ) const
overridevirtual

Implements sead::Heap.

◆ getSize()

size_t sead::UnitHeap::getSize ( ) const
overridevirtual

Implements sead::Heap.

◆ getFreeSize()

size_t sead::UnitHeap::getFreeSize ( ) const
overridevirtual

Implements sead::Heap.

◆ getMaxAllocatableSize()

size_t sead::UnitHeap::getMaxAllocatableSize ( int ) const
override

◆ isInclude()

bool sead::UnitHeap::isInclude ( const void * ) const
overridevirtual

Implements sead::Heap.

◆ isFreeable()

bool sead::UnitHeap::isFreeable ( ) const
overridevirtual

Implements sead::Heap.

◆ isResizable()

bool sead::UnitHeap::isResizable ( ) const
overridevirtual

Implements sead::Heap.

◆ isAdjustable()

bool sead::UnitHeap::isAdjustable ( ) const
overridevirtual

Implements sead::Heap.

◆ tryCreate()

UnitHeap * sead::UnitHeap::tryCreate ( u32 size,
const SafeString & name,
u32 block_size,
s32 alignment = 4,
Heap * parent = nullptr,
bool enable_lock = false )
static

◆ tryCreateWithBlockNum()

UnitHeap * sead::UnitHeap::tryCreateWithBlockNum ( u32 block_size,
u32 num,
const SafeString & name,
s32 alignment = 4,
Heap * parent = nullptr,
bool enable_lock = false )
static

Member Data Documentation

◆ mBlockSize

u32 sead::UnitHeap::mBlockSize
protected

◆ mAreaStart

void* sead::UnitHeap::mAreaStart
protected

◆ mAreaSize

u32 sead::UnitHeap::mAreaSize
protected

◆ mFreeSize

u32 sead::UnitHeap::mFreeSize
protected

◆ mFreeList

FreeList sead::UnitHeap::mFreeList
protected