Add frameheap functions.

This commit is contained in:
James Benton 2016-01-07 13:20:32 +00:00
parent 948f03758a
commit b3da4d60c1
2 changed files with 76 additions and 0 deletions

View File

@ -0,0 +1,62 @@
#pragma once
#include <wut.h>
WUT_LIB_HEADER_START
typedef uint32_t MEMFrameHeapFreeMode;
enum MEMFrameHeapFreeMode
{
MEM_FRAME_HEAP_FREE_FROM_BOTTOM = 1 << 0,
MEM_FRAME_HEAP_FREE_FROM_TOP = 1 << 1,
};
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);
WUT_LIB_HEADER_END

View File

@ -113,6 +113,20 @@ EXPORT(MEMGetSizeForMBlockExpHeap);
EXPORT(MEMGetGroupIDForMBlockExpHeap);
EXPORT(MEMGetAllocDirForMBlockExpHeap);
// coreinit/frameheap.h
EXPORT(MEMCreateFrmHeap);
EXPORT(MEMCreateFrmHeapEx);
EXPORT(MEMDestroyFrmHeap);
EXPORT(MEMAllocFromFrmHeap);
EXPORT(MEMAllocFromFrmHeapEx);
EXPORT(MEMFreeToFrmHeap);
EXPORT(MEMRecordStateForFrmHeap);
EXPORT(MEMFreeByStateToFrmHeap);
EXPORT(MEMAdjustFrmHeap);
EXPORT(MEMResizeForMBlockFrmHeap);
EXPORT(MEMGetAllocatableSizeForFrmHeap);
EXPORT(MEMGetAllocatableSizeForFrmHeapEx);
// coreinit/mutex.h
EXPORT(OSInitMutex);
EXPORT(OSInitMutexEx);