21 WUT_UNKNOWN_BYTES(0x8);
MEMBlockHeapBlock * next
Link to next block, always set.
uint32_t blockCount
Number of blocks in this tracking heap.
MEMBlockHeapBlock * firstBlock
First block in this heap.
uint32_t numFreeBlocks
Free block count.
MEMBlockHeapBlock * blocks
Pointer to first memory block.
void * start
First address of the data region this block has allocated.
void * end
End address of the data region this block has allocated.
MEMBlockHeapBlock * firstFreeBlock
First free block.
BOOL isFree
TRUE if the block is free, FALSE if allocated.
MEMBlockHeapBlock defaultBlock
Default block, used so we don't have an empty block list.
MEMBlockHeapBlock * prev
Link to previous block, note that this is only set for allocated blocks.
MEMBlockHeapTracking defaultTrack
Default tracking heap, tracks only defaultBlock.
MEMBlockHeapBlock * lastBlock
Last block in this heap.
void * MEMAllocFromBlockHeapEx(MEMHeapHandle heap, uint32_t size, int32_t align)
int MEMAddBlockHeapTracking(MEMHeapHandle heap, MEMBlockHeapTracking *tracking, uint32_t size)
uint32_t MEMGetTrackingLeftInBlockHeap(MEMHeapHandle heap)
MEMHeapHandle MEMInitBlockHeap(MEMBlockHeap *heap, void *start, void *end, MEMBlockHeapTracking *blocks, uint32_t size, uint32_t flags)
void * MEMAllocFromBlockHeapAt(MEMHeapHandle heap, void *addr, uint32_t size)
void * MEMDestroyBlockHeap(MEMHeapHandle heap)
uint32_t MEMGetTotalFreeSizeForBlockHeap(MEMHeapHandle heap)
void MEMFreeToBlockHeap(MEMHeapHandle heap, void *data)
uint32_t MEMGetAllocatableSizeForBlockHeapEx(MEMHeapHandle heap, int32_t align)