24 lines
513 B
C
24 lines
513 B
C
#pragma once
|
|
#include <stddef.h>
|
|
#include <stdint.h>
|
|
#include <exec/list.h>
|
|
|
|
#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); |