2016-01-07 14:20:32 +01:00
|
|
|
#pragma once
|
|
|
|
#include <wut.h>
|
|
|
|
|
2016-01-07 17:02:54 +01:00
|
|
|
/**
|
|
|
|
* \defgroup coreinit_frameheap Frame Heap
|
|
|
|
* \ingroup coreinit
|
|
|
|
* @{
|
|
|
|
*/
|
|
|
|
|
2016-01-07 15:09:43 +01:00
|
|
|
#ifdef __cplusplus
|
|
|
|
extern "C" {
|
|
|
|
#endif
|
2016-01-07 14:20:32 +01:00
|
|
|
|
2016-01-08 16:28:52 +01:00
|
|
|
typedef enum MEMFrameHeapFreeMode
|
2016-01-07 14:20:32 +01:00
|
|
|
{
|
|
|
|
MEM_FRAME_HEAP_FREE_FROM_BOTTOM = 1 << 0,
|
|
|
|
MEM_FRAME_HEAP_FREE_FROM_TOP = 1 << 1,
|
2016-01-08 16:28:52 +01:00
|
|
|
} MEMFrameHeapFreeMode;
|
2016-01-07 14:20:32 +01:00
|
|
|
|
|
|
|
MEMFrameHeap *
|
|
|
|
MEMCreateFrmHeap(MEMFrameHeap *heap,
|
|
|
|
uint32_t size);
|
|
|
|
|
|
|
|
MEMFrameHeap *
|
|
|
|
MEMCreateFrmHeapEx(MEMFrameHeap *heap,
|
|
|
|
uint32_t size,
|
|
|
|
uint16_t flags);
|
|
|
|
|
|
|
|
void *
|
|
|
|
MEMDestroyFrmHeap(MEMFrameHeap *heap);
|
|
|
|
|
|
|
|
void *
|
|
|
|
MEMAllocFromFrmHeap(MEMFrameHeap *heap,
|
|
|
|
uint32_t size);
|
|
|
|
|
|
|
|
void *
|
|
|
|
MEMAllocFromFrmHeapEx(MEMFrameHeap *heap,
|
|
|
|
uint32_t size,
|
|
|
|
int alignment);
|
|
|
|
|
|
|
|
void
|
|
|
|
MEMFreeToFrmHeap(MEMFrameHeap *heap,
|
|
|
|
MEMFrameHeapFreeMode mode);
|
|
|
|
|
|
|
|
BOOL
|
|
|
|
MEMRecordStateForFrmHeap(MEMFrameHeap *heap,
|
|
|
|
uint32_t tag);
|
|
|
|
|
|
|
|
BOOL
|
|
|
|
MEMFreeByStateToFrmHeap(MEMFrameHeap *heap,
|
|
|
|
uint32_t tag);
|
|
|
|
|
|
|
|
uint32_t
|
|
|
|
MEMAdjustFrmHeap(MEMFrameHeap *heap);
|
|
|
|
|
|
|
|
uint32_t
|
|
|
|
MEMResizeForMBlockFrmHeap(MEMFrameHeap *heap,
|
|
|
|
uint32_t addr,
|
|
|
|
uint32_t size);
|
|
|
|
|
|
|
|
uint32_t
|
|
|
|
MEMGetAllocatableSizeForFrmHeap(MEMFrameHeap *heap);
|
|
|
|
|
|
|
|
uint32_t
|
|
|
|
MEMGetAllocatableSizeForFrmHeapEx(MEMFrameHeap *heap,
|
|
|
|
int alignment);
|
|
|
|
|
2016-01-07 15:09:43 +01:00
|
|
|
#ifdef __cplusplus
|
|
|
|
}
|
|
|
|
#endif
|
2016-01-07 17:02:54 +01:00
|
|
|
|
|
|
|
/** @} */
|