#pragma once #include #include #include #define MF_FREE 0 #define MF_RESERVED 1 #define MF_USED 2 #pragma pack(push,4) struct MemBlock { struct MinNode node; size_t size; uint8_t flags; }; #pragma pack(pop) void MemInit(void); struct MemBlock *MarkMem(uintptr_t base, size_t limit, uint8_t flags); void *AllocMem(size_t size); void *AllocMemEx(size_t size, uint8_t flags); void FreeMem(void *block); void FreeMemEx(void *block, size_t size); void PrintMem(void);