Twilight Princess
Decompilation of The Legend of Zelda: Twilight Princess
Loading...
Searching...
No Matches
JKRExpHeap Class Reference

#include <JKRExpHeap.h>

+ Inheritance diagram for JKRExpHeap:
+ Collaboration diagram for JKRExpHeap:

Classes

class  CMemBlock
 

Public Types

enum  EAllocMode { ALLOC_MODE_1 = 1 }
 
- Public Types inherited from JKRHeap
typedef void(*) JKRAllocCallback(u32, int, JKRHeap *, void *)
 
typedef void(*) JKRFreeCallback(void *, JKRHeap *)
 

Public Member Functions

BOOL isEmpty ()
 
s32 getUsedSize (u8 groupId) const
 
s32 getTotalUsedSize (void) const
 
CMemBlockgetUsedFirst ()
 
void setAllocationMode (EAllocMode mode)
 
virtual u32 getHeapType ()
 
virtual bool check ()
 
virtual bool dump_sort ()
 
virtual bool dump ()
 
virtual void do_destroy ()
 
virtual void * do_alloc (u32 size, int alignment)
 
virtual void do_free (void *ptr)
 
virtual void do_freeAll ()
 
virtual void do_freeTail ()
 
virtual void do_fillFreeArea ()
 
virtual s32 do_resize (void *ptr, u32 size)
 
virtual s32 do_getSize (void *ptr)
 
virtual s32 do_getFreeSize ()
 
virtual void * do_getMaxFreeBlock ()
 
virtual s32 do_getTotalFreeSize ()
 
virtual s32 do_changeGroupID (u8 newGroupID)
 
virtual u8 do_getCurrentGroupId ()
 
virtual void state_register (JKRHeap::TState *p, u32 id) const
 
virtual bool state_compare (JKRHeap::TState const &r1, JKRHeap::TState const &r2) const
 
- Public Member Functions inherited from JKRHeap
 JKRHeap (u32 size, JKRHeap *parent, bool errorFlag)
 
 JKRHeap (void *data, u32 size, JKRHeap *parent, bool errorFlag)
 
virtual ~JKRHeap ()
 
JKRHeapbecomeSystemHeap ()
 
JKRHeapbecomeCurrentHeap ()
 
void destroy ()
 
void * alloc (u32 size, int alignment)
 
void free (void *ptr)
 
void freeAll ()
 
void freeTail ()
 
s32 resize (void *ptr, u32 size)
 
s32 getSize (void *ptr)
 
s32 getFreeSize ()
 
void * getMaxFreeBlock ()
 
s32 getTotalFreeSize ()
 
s32 changeGroupID (u8 newGroupId)
 
u8 getCurrentGroupId ()
 
u32 getMaxAllocatableSize (int alignment)
 
JKRHeapfind (void *ptr) const
 
JKRHeapfindAllHeap (void *ptr) const
 
void dispose_subroutine (u32 start, u32 end)
 
bool dispose (void *ptr, u32 size)
 
void dispose (void *begin, void *end)
 
void dispose ()
 
bool setErrorFlag (bool errorFlag)
 
bool isSubHeap (JKRHeap *heap) const
 
void * getAltAramStartAdr ()
 
virtual void callAllDisposer ()
 
virtual void state_dump (JKRHeap::TState const &p) const
 
void setDebugFill (bool debugFill)
 
bool getDebugFill () const
 
void * getStartAddr ()
 
void * getEndAddr ()
 
u32 getSize () const
 
bool getErrorFlag () const
 
void callErrorHandler (void *heap, u32 size, int alignment)
 
JKRHeapgetParent ()
 
JSUTree< JKRHeap > & getHeapTree ()
 
void appendDisposer (JKRDisposer *disposer)
 
void removeDisposer (JKRDisposer *disposer)
 
void lock () const
 
void unlock () const
 
u32 getHeapSize ()
 
- Public Member Functions inherited from JKRDisposer
 JKRDisposer ()
 
virtual ~JKRDisposer ()
 

Static Public Member Functions

static JKRExpHeapcreateRoot (int maxHeaps, bool errorFlag)
 
static JKRExpHeapcreate (u32 size, JKRHeap *parent, bool errorFlag)
 
static JKRExpHeapcreate (void *ptr, u32 size, JKRHeap *parent, bool errorFlag)
 
static s32 getUsedSize_ (JKRExpHeap *heap)
 
static void * getState_ (TState *state)
 
- Static Public Member Functions inherited from JKRHeap
static bool initArena (char **memory, u32 *size, int maxHeaps)
 
static bool initArena2 (char **memory, u32 *size, int maxHeaps)
 
static void * alloc (u32 size, int alignment, JKRHeap *heap)
 
static void free (void *ptr, JKRHeap *heap)
 
static s32 resize (void *ptr, u32 size, JKRHeap *heap)
 
static s32 getSize (void *ptr, JKRHeap *heap)
 
static JKRHeapfindFromRoot (void *ptr)
 
static void copyMemory (void *dst, void *src, u32 size)
 
static void fillMemory (void *dst, u32 size, u8 value)
 
static bool checkMemoryFilled (void *src, u32 size, u8 value)
 
static JKRErrorHandler setErrorHandler (JKRErrorHandler errorHandler)
 
static void fillMemory (u8 *, u32, u8)
 
static bool checkMemoryFilled (u8 *, u32, u8)
 
static bool isDefaultDebugFill ()
 
static void setDefaultDebugFill (bool status)
 
static void * getCodeStart (void)
 
static void * getCodeEnd (void)
 
static void * getUserRamStart (void)
 
static void * getUserRamEnd (void)
 
static u32 getMemorySize (void)
 
static JKRHeapgetRootHeap ()
 
static JKRHeapgetRootHeap2 ()
 
static JKRHeapgetSystemHeap ()
 
static JKRHeapgetCurrentHeap ()
 
static void setSystemHeap (JKRHeap *heap)
 
static void setCurrentHeap (JKRHeap *heap)
 
static void setState_u32ID_ (TState *state, u32 id)
 
static void setState_uUsedSize_ (TState *state, u32 usedSize)
 
static void setState_u32CheckCode_ (TState *state, u32 checkCode)
 
static void * getState_buf_ (TState *state)
 

Public Attributes

u8 mAllocMode
 
u8 mCurrentGroupId
 
bool field_0x6e
 
- Public Attributes inherited from JKRDisposer
JKRHeapmHeap
 
JSULink< JKRDisposermLink
 

Protected Member Functions

 JKRExpHeap (void *data, u32 size, JKRHeap *parent, bool errorFlag)
 
virtual ~JKRExpHeap ()
 
void * allocFromHead (u32 size, int align)
 
void * allocFromHead (u32 size)
 
void * allocFromTail (u32 size, int align)
 
void * allocFromTail (u32 size)
 
void appendUsedList (CMemBlock *newblock)
 
void setFreeBlock (CMemBlock *block, CMemBlock *prev, CMemBlock *next)
 
void removeFreeBlock (CMemBlock *block)
 
void removeUsedBlock (CMemBlock *block)
 
void recycleFreeBlock (CMemBlock *block)
 
void joinTwoBlocks (CMemBlock *block)
 

Private Attributes

void * field_0x70
 
u32 field_0x74
 
CMemBlockmHeadFreeList
 
CMemBlockmTailFreeList
 
CMemBlockmHeadUsedList
 
CMemBlockmTailUsedList
 

Friends

class CMemBlock
 

Additional Inherited Members

- Static Public Attributes inherited from JKRHeap
static void * mCodeStart
 
static void * mCodeEnd
 
static void * mUserRamStart
 
static void * mUserRamEnd
 
static u32 mMemorySize
 
static JKRAllocCallback sAllocCallback
 
static JKRFreeCallback sFreeCallback
 
static bool sDefaultFillFlag = true
 
static JKRHeapsRootHeap
 
static JKRHeapsRootHeap2
 
static JKRHeapsSystemHeap
 
static JKRHeapsCurrentHeap
 
static JKRErrorHandler mErrorHandler
 
- Protected Attributes inherited from JKRHeap
OSMutex mMutex
 
u8mStart
 
u8mEnd
 
u32 mSize
 
bool mDebugFill
 
bool mCheckMemoryFilled
 
u8 mAllocationMode
 
u8 mGroupId
 
JSUTree< JKRHeapmChildTree
 
JSUList< JKRDisposermDisposerList
 
bool mErrorFlag
 
bool mInitFlag
 

Member Enumeration Documentation

◆ EAllocMode

Enumerator
ALLOC_MODE_1 

Constructor & Destructor Documentation

◆ JKRExpHeap()

JKRExpHeap::JKRExpHeap ( void * data,
u32 size,
JKRHeap * parent,
bool errorFlag )
protected

◆ ~JKRExpHeap()

JKRExpHeap::~JKRExpHeap ( )
protectedvirtual

Member Function Documentation

◆ allocFromHead() [1/2]

void * JKRExpHeap::allocFromHead ( u32 size)
protected

◆ allocFromHead() [2/2]

void * JKRExpHeap::allocFromHead ( u32 size,
int align )
protected

◆ allocFromTail() [1/2]

void * JKRExpHeap::allocFromTail ( u32 size)
protected

◆ allocFromTail() [2/2]

void * JKRExpHeap::allocFromTail ( u32 size,
int align )
protected

◆ appendUsedList()

void JKRExpHeap::appendUsedList ( JKRExpHeap::CMemBlock * newblock)
protected

◆ check()

bool JKRExpHeap::check ( void )
virtual

Implements JKRHeap.

◆ create() [1/2]

JKRExpHeap * JKRExpHeap::create ( u32 size,
JKRHeap * parent,
bool errorFlag )
static

◆ create() [2/2]

JKRExpHeap * JKRExpHeap::create ( void * ptr,
u32 size,
JKRHeap * parent,
bool errorFlag )
static

◆ createRoot()

JKRExpHeap * JKRExpHeap::createRoot ( int maxHeaps,
bool errorFlag )
static

◆ do_alloc()

void * JKRExpHeap::do_alloc ( u32 size,
int alignment )
virtual

Implements JKRHeap.

◆ do_changeGroupID()

s32 JKRExpHeap::do_changeGroupID ( u8 newGroupID)
virtual

Reimplemented from JKRHeap.

◆ do_destroy()

void JKRExpHeap::do_destroy ( void )
virtual

Implements JKRHeap.

◆ do_fillFreeArea()

void JKRExpHeap::do_fillFreeArea ( void )
virtual

Implements JKRHeap.

◆ do_free()

void JKRExpHeap::do_free ( void * ptr)
virtual

Implements JKRHeap.

◆ do_freeAll()

void JKRExpHeap::do_freeAll ( void )
virtual

Implements JKRHeap.

◆ do_freeTail()

void JKRExpHeap::do_freeTail ( void )
virtual

Implements JKRHeap.

◆ do_getCurrentGroupId()

u8 JKRExpHeap::do_getCurrentGroupId ( void )
virtual

Reimplemented from JKRHeap.

◆ do_getFreeSize()

s32 JKRExpHeap::do_getFreeSize ( void )
virtual

Implements JKRHeap.

◆ do_getMaxFreeBlock()

void * JKRExpHeap::do_getMaxFreeBlock ( void )
virtual

Implements JKRHeap.

◆ do_getSize()

s32 JKRExpHeap::do_getSize ( void * ptr)
virtual

Implements JKRHeap.

◆ do_getTotalFreeSize()

s32 JKRExpHeap::do_getTotalFreeSize ( void )
virtual

Implements JKRHeap.

◆ do_resize()

s32 JKRExpHeap::do_resize ( void * ptr,
u32 size )
virtual

Implements JKRHeap.

◆ dump()

bool JKRExpHeap::dump ( void )
virtual

Implements JKRHeap.

◆ dump_sort()

bool JKRExpHeap::dump_sort ( void )
virtual

Reimplemented from JKRHeap.

◆ getHeapType()

u32 JKRExpHeap::getHeapType ( void )
virtual

Implements JKRHeap.

◆ getState_()

static void * JKRExpHeap::getState_ ( TState * state)
inlinestatic

◆ getTotalUsedSize()

s32 JKRExpHeap::getTotalUsedSize ( void ) const

◆ getUsedFirst()

CMemBlock * JKRExpHeap::getUsedFirst ( )
inline

◆ getUsedSize()

s32 JKRExpHeap::getUsedSize ( u8 groupId) const

◆ getUsedSize_()

static s32 JKRExpHeap::getUsedSize_ ( JKRExpHeap * heap)
inlinestatic

◆ isEmpty()

BOOL JKRExpHeap::isEmpty ( )

◆ joinTwoBlocks()

void JKRExpHeap::joinTwoBlocks ( CMemBlock * block)
protected

◆ recycleFreeBlock()

void JKRExpHeap::recycleFreeBlock ( JKRExpHeap::CMemBlock * block)
protected

◆ removeFreeBlock()

void JKRExpHeap::removeFreeBlock ( CMemBlock * block)
protected

◆ removeUsedBlock()

void JKRExpHeap::removeUsedBlock ( JKRExpHeap::CMemBlock * block)
protected

◆ setAllocationMode()

void JKRExpHeap::setAllocationMode ( EAllocMode mode)
inline

◆ setFreeBlock()

void JKRExpHeap::setFreeBlock ( CMemBlock * block,
CMemBlock * prev,
CMemBlock * next )
protected

◆ state_compare()

bool JKRExpHeap::state_compare ( JKRHeap::TState const & r1,
JKRHeap::TState const & r2 ) const
virtual

Reimplemented from JKRHeap.

◆ state_register()

void JKRExpHeap::state_register ( JKRHeap::TState * p,
u32 id ) const
virtual

Reimplemented from JKRHeap.

Friends And Related Symbol Documentation

◆ CMemBlock

friend class CMemBlock
friend

Member Data Documentation

◆ field_0x6e

bool JKRExpHeap::field_0x6e

◆ field_0x70

void* JKRExpHeap::field_0x70
private

◆ field_0x74

u32 JKRExpHeap::field_0x74
private

◆ mAllocMode

u8 JKRExpHeap::mAllocMode

◆ mCurrentGroupId

u8 JKRExpHeap::mCurrentGroupId

◆ mHeadFreeList

CMemBlock* JKRExpHeap::mHeadFreeList
private

◆ mHeadUsedList

CMemBlock* JKRExpHeap::mHeadUsedList
private

◆ mTailFreeList

CMemBlock* JKRExpHeap::mTailFreeList
private

◆ mTailUsedList

CMemBlock* JKRExpHeap::mTailUsedList
private

The documentation for this class was generated from the following files: