wut/include/coreinit/frameheap.h
2016-01-08 08:52:12 -08:00

80 lines
1.5 KiB
C

#pragma once
#include <wut.h>
/**
* \defgroup coreinit_frameheap Frame Heap
* \ingroup coreinit
* @{
*/
#ifdef __cplusplus
extern "C" {
#endif
typedef enum MEMFrameHeapFreeMode
{
MEM_FRAME_HEAP_FREE_FROM_BOTTOM = 1 << 0,
MEM_FRAME_HEAP_FREE_FROM_TOP = 1 << 1,
} MEMFrameHeapFreeMode;
typedef struct MEMFrameHeap MEMFrameHeap;
struct MEMFrameHeap
{
};
UNKNOWN_SIZE(MEMFrameHeap);
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);
#ifdef __cplusplus
}
#endif
/** @} */