1#ifndef RVL_SDK_MEM_FRAME_HEAP_H
2#define RVL_SDK_MEM_FRAME_HEAP_H
8#define MEM_FRM_HEAP_MIN_SIZE (sizeof(MEMiHeapHead) + sizeof(MEMiFrmHeapHead))
15 MEM_FRM_HEAP_FREE_TO_HEAD = (1 << 0),
16 MEM_FRM_HEAP_FREE_TO_TAIL = (1 << 1),
17 MEM_FRM_HEAP_FREE_ALL =
18 MEM_FRM_HEAP_FREE_TO_HEAD | MEM_FRM_HEAP_FREE_TO_TAIL
35MEMiHeapHead* MEMCreateFrmHeapEx(
void* start, u32 size, u16 opt);
37void* MEMAllocFromFrmHeapEx(
MEMiHeapHead* heap, u32 size, s32 align);
39u32 MEMGetAllocatableSizeForFrmHeapEx(
MEMiHeapHead* heap, s32 align);
40BOOL MEMRecordStateForFrmHeap(
MEMiHeapHead* heap, u32
id);
43u32 MEMResizeForMBlockFrmHeap(
MEMiHeapHead* heap,
void* memBlock, u32 size);
45static MEMiHeapHead* MEMCreateFrmHeap(
void* start, u32 size) {
46 return MEMCreateFrmHeapEx(start, size, 0);
49static void* MEMAllocFromFrmHeap(
MEMiHeapHead* heap, u32 size) {
50 return MEMAllocFromFrmHeapEx(heap, size, 4);
53static u32 MEMGetAllocatableSizeForFrmHeap(
MEMiHeapHead* heap) {
54 return MEMGetAllocatableSizeForFrmHeapEx(heap, 4);