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

#include <seadSeparateHeap.h>

Inherits sead::Heap.

Public Member Functions

 SeparateHeap (const SafeString &name, Heap *parent, void *management_area, u32 management_area_size, void *allocate_area, u32 allocate_area_size, bool enable_lock)
 ~SeparateHeap () override
const void * getStartAddress () const override
const void * getEndAddress () const override
size_t getSize () 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
virtual void destroy ()=0
virtual size_t adjust ()=0
void * alloc (size_t size, s32 alignment)
virtual void * tryAlloc (size_t size, s32 alignment)=0
virtual void free (void *ptr)=0
virtual void * resizeFront (void *ptr, size_t new_size)=0
virtual void * resizeBack (void *ptr, size_t new_size)=0
virtual void freeAll ()=0
virtual size_t getFreeSize () const =0
virtual size_t getMaxAllocatableSize (s32 alignment=4) const =0
HeapgetParent () const
virtual bool isInclude (const void *ptr) const =0
HeapDirection getDirection () const
virtual bool isFreeable () const =0
virtual bool isResizable () const =0
virtual bool isAdjustable () const =0
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 SeparateHeapcreate (const SafeString &name, u32 management_area_size, u32 allocate_area_size, Heap *parent=nullptr, bool enable_lock=false)

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 ()
Protected Attributes inherited from sead::Heap
void * mStart
size_t mSize
HeapmParent
HeapList mChildren
ListNode mListNode
DisposerList mDisposerList
HeapDirection mDirection
CriticalSection mCS
BitFlag32 mFlag

Constructor & Destructor Documentation

◆ SeparateHeap()

sead::SeparateHeap::SeparateHeap ( const SafeString & name,
Heap * parent,
void * management_area,
u32 management_area_size,
void * allocate_area,
u32 allocate_area_size,
bool enable_lock )

◆ ~SeparateHeap()

sead::SeparateHeap::~SeparateHeap ( )
override

Member Function Documentation

◆ getStartAddress()

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

Implements sead::Heap.

◆ getEndAddress()

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

Implements sead::Heap.

◆ getSize()

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

Implements sead::Heap.

◆ create()

SeparateHeap * sead::SeparateHeap::create ( const SafeString & name,
u32 management_area_size,
u32 allocate_area_size,
Heap * parent = nullptr,
bool enable_lock = false )
static