Twilight Princess
Decompilation of The Legend of Zelda: Twilight Princess
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Modules Pages
JKRSolidHeap Class Reference

#include <JKRSolidHeap.h>

+ Inheritance diagram for JKRSolidHeap:
+ Collaboration diagram for JKRSolidHeap:

Classes

struct  Unknown
 

Public Member Functions

virtual u32 getHeapType (void)
 
virtual bool check (void)
 
virtual bool dump (void)
 
virtual void do_destroy (void)
 
virtual void * do_alloc (u32, int)
 
virtual void do_free (void *)
 
virtual void do_freeAll (void)
 
virtual void do_freeTail (void)
 
virtual void do_fillFreeArea (void)
 
virtual s32 do_resize (void *, u32)
 
virtual s32 do_getSize (void *)
 
virtual s32 do_getFreeSize (void)
 
virtual void * do_getMaxFreeBlock (void)
 
virtual s32 do_getTotalFreeSize (void)
 
virtual void state_register (JKRHeap::TState *, u32) const
 
virtual bool state_compare (JKRHeap::TState const &, JKRHeap::TState const &) const
 
s32 adjustSize (void)
 
- Public Member Functions inherited from JKRHeap
 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)
 
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
 
virtual void callAllDisposer ()
 
virtual bool dump_sort ()
 
virtual s32 do_changeGroupID (u8 newGroupID)
 
virtual u8 do_getCurrentGroupId ()
 
virtual void state_dump (JKRHeap::TState const &p) const
 
void setDebugFill (bool debugFill)
 
bool getDebugFill () const
 
void * getStartAddr () const
 
void * getEndAddr () const
 
u32 getSize () const
 
bool getErrorFlag () const
 
void callErrorHandler (JKRHeap *heap, u32 size, int alignment)
 
JKRHeapgetParent () const
 
JSUTree< JKRHeap > & getHeapTree ()
 
void appendDisposer (JKRDisposer *disposer)
 
void removeDisposer (JKRDisposer *disposer)
 
void lock ()
 
void unlock ()
 
u32 getHeapSize ()
 
- Public Member Functions inherited from JKRDisposer
 JKRDisposer ()
 
virtual ~JKRDisposer ()
 

Static Public Member Functions

static JKRSolidHeapcreate (u32, JKRHeap *, bool)
 
- Static Public Member Functions inherited from JKRHeap
static bool initArena (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 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)
 
static void * getState_ (TState *state)
 

Protected Member Functions

 JKRSolidHeap (void *, u32, JKRHeap *, bool)
 
virtual ~JKRSolidHeap ()
 
void * allocFromHead (u32, int)
 
void * allocFromTail (u32, int)
 

Static Protected Member Functions

static s32 getUsedSize (JKRSolidHeap *heap)
 

Private Attributes

u32 mFreeSize
 
u8mSolidHead
 
u8mSolidTail
 
Unknownfield_0x78
 

Additional Inherited Members

- Public Attributes inherited from JKRDisposer
JKRHeapmHeap
 
JSULink< JKRDisposermLink
 
- Static Public Attributes inherited from JKRHeap
static void * mCodeStart
 
static void * mCodeEnd
 
static void * mUserRamStart
 
static void * mUserRamEnd
 
static u32 mMemorySize
 
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
 
u8 padding_0x6a [2]
 

Constructor & Destructor Documentation

◆ JKRSolidHeap()

JKRSolidHeap::JKRSolidHeap ( void * start,
u32 size,
JKRHeap * parent,
bool useErrorHandler )
protected

◆ ~JKRSolidHeap()

JKRSolidHeap::~JKRSolidHeap ( void )
protectedvirtual

Member Function Documentation

◆ adjustSize()

s32 JKRSolidHeap::adjustSize ( void )

◆ allocFromHead()

void * JKRSolidHeap::allocFromHead ( u32 size,
int alignment )
protected

◆ allocFromTail()

void * JKRSolidHeap::allocFromTail ( u32 size,
int alignment )
protected

◆ check()

bool JKRSolidHeap::check ( void )
virtual

Implements JKRHeap.

◆ create()

JKRSolidHeap * JKRSolidHeap::create ( u32 size,
JKRHeap * heap,
bool useErrorHandler )
static

◆ do_alloc()

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

Implements JKRHeap.

◆ do_destroy()

void JKRSolidHeap::do_destroy ( void )
virtual

Implements JKRHeap.

◆ do_fillFreeArea()

void JKRSolidHeap::do_fillFreeArea ( void )
virtual

Implements JKRHeap.

◆ do_free()

void JKRSolidHeap::do_free ( void * ptr)
virtual

Implements JKRHeap.

◆ do_freeAll()

void JKRSolidHeap::do_freeAll ( void )
virtual

Implements JKRHeap.

◆ do_freeTail()

void JKRSolidHeap::do_freeTail ( void )
virtual

Implements JKRHeap.

◆ do_getFreeSize()

s32 JKRSolidHeap::do_getFreeSize ( void )
virtual

Implements JKRHeap.

◆ do_getMaxFreeBlock()

void * JKRSolidHeap::do_getMaxFreeBlock ( void )
virtual

Implements JKRHeap.

◆ do_getSize()

s32 JKRSolidHeap::do_getSize ( void * ptr)
virtual

Implements JKRHeap.

◆ do_getTotalFreeSize()

s32 JKRSolidHeap::do_getTotalFreeSize ( void )
virtual

Implements JKRHeap.

◆ do_resize()

s32 JKRSolidHeap::do_resize ( void * ptr,
u32 newSize )
virtual

Implements JKRHeap.

◆ dump()

bool JKRSolidHeap::dump ( void )
virtual

Implements JKRHeap.

◆ getHeapType()

u32 JKRSolidHeap::getHeapType ( void )
virtual

Implements JKRHeap.

◆ getUsedSize()

static s32 JKRSolidHeap::getUsedSize ( JKRSolidHeap * heap)
inlinestaticprotected

◆ state_compare()

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

Reimplemented from JKRHeap.

◆ state_register()

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

Reimplemented from JKRHeap.

Member Data Documentation

◆ field_0x78

Unknown* JKRSolidHeap::field_0x78
private

◆ mFreeSize

u32 JKRSolidHeap::mFreeSize
private

◆ mSolidHead

u8* JKRSolidHeap::mSolidHead
private

◆ mSolidTail

u8* JKRSolidHeap::mSolidTail
private

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