mirror of
https://github.com/wiiu-env/wut.git
synced 2024-12-05 03:04:16 +01:00
69 lines
1.4 KiB
C
69 lines
1.4 KiB
C
#pragma once
|
|
#include <wut.h>
|
|
#include "memheap.h"
|
|
|
|
/**
|
|
* \defgroup coreinit_unitheap Unit Heap
|
|
* \ingroup coreinit
|
|
* @{
|
|
*/
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
typedef struct MEMUnitHeap MEMUnitHeap;
|
|
typedef struct MEMUnitHeapFreeBlock MEMUnitHeapFreeBlock;
|
|
|
|
struct MEMUnitHeapFreeBlock
|
|
{
|
|
MEMUnitHeapFreeBlock *next;
|
|
};
|
|
WUT_CHECK_OFFSET(MEMUnitHeapFreeBlock, 0x00, next);
|
|
WUT_CHECK_SIZE(MEMUnitHeapFreeBlock, 0x04);
|
|
|
|
struct WUT_PACKED MEMUnitHeap
|
|
{
|
|
MEMHeapHeader header;
|
|
MEMUnitHeapFreeBlock *freeBlocks;
|
|
uint32_t blockSize;
|
|
};
|
|
WUT_CHECK_OFFSET(MEMUnitHeap, 0x00, header);
|
|
WUT_CHECK_OFFSET(MEMUnitHeap, 0x40, freeBlocks);
|
|
WUT_CHECK_OFFSET(MEMUnitHeap, 0x44, blockSize);
|
|
WUT_CHECK_SIZE(MEMUnitHeap, 0x48);
|
|
|
|
MEMHeapHandle
|
|
MEMCreateUnitHeapEx(void *heap,
|
|
uint32_t size,
|
|
uint32_t blockSize,
|
|
int32_t alignment,
|
|
uint16_t flags);
|
|
|
|
void *
|
|
MEMDestroyUnitHeap(MEMHeapHandle heap);
|
|
|
|
void *
|
|
MEMAllocFromUnitHeap(MEMHeapHandle heap);
|
|
|
|
void
|
|
MEMFreeToUnitHeap(MEMHeapHandle heap,
|
|
void *block);
|
|
|
|
void
|
|
MEMiDumpUnitHeap(MEMHeapHandle heap);
|
|
|
|
uint32_t
|
|
MEMCountFreeBlockForUnitHeap(MEMHeapHandle heap);
|
|
|
|
uint32_t
|
|
MEMCalcHeapSizeForUnitHeap(uint32_t blockSize,
|
|
uint32_t count,
|
|
int32_t alignment);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
/** @} */
|