#ifndef _JAUDIO_HEAPCTRL_H #define _JAUDIO_HEAPCTRL_H #include "types.h" typedef struct jaheap_ jaheap_; typedef struct jaheap_ jaheap; struct jaheap_ { u8 isRootHeap; // _00, is this a 'mother' heap? u8 memoryType; // _01, 0 = ARAM, 1 = DRAM u16 childCount; // _02 u32 heapId; // _04 u32 startAddress; // _08 u32 usedSize; // _0C u32 size; // _10 jaheap_* firstChild; // _14 jaheap_* parent; // _18 jaheap_* nextSibling; // _1C jaheap_* groupOwner; // _20 jaheap_* firstGroupedHeap; // _24 jaheap_* nextGroupedHeap; // _28 }; void Jac_GetUnlockHeap(jaheap_*); void Jac_CheckAlloc(jaheap_*); void Jac_InitHeap(jaheap_*); void Jac_SelfInitHeap(jaheap_*, u32, u32, u32); BOOL Jac_SelfAllocHeap(jaheap_*, jaheap_*, u32, u32); BOOL Jac_SetGroupHeap(jaheap_*, jaheap_*); void Jac_CutdownHeap(jaheap_*); void Jac_InitMotherHeap(jaheap_*, u32, u32, u8); BOOL Jac_AllocHeap(jaheap_*, jaheap_*, u32); BOOL Jac_DeleteHeap(jaheap_*); void Jac_GarbageCollection_St(jaheap_*); void Jac_CheckFreeHeap_Total(jaheap_*); void Jac_CheckFreeHeap_Linear(jaheap_*); void Jac_ShowHeap(jaheap_*, u32); #endif