48#define MM_RESERVED 0xffff
53#define MM_HEADER_SIZE 2
54#define MM_SPLIT_THRESH (MM_HEADER_SIZE+8)
68#define MM_BLOCK_FREE(addr) \
69 next=(size_t*)(addr); \
70 *current=((((size_t)next)-(size_t)current)-2)>>1; \
79#define MM_BLOCK_RESERVED(addr) \
80 next=(size_t*)(((size_t)addr)-4); \
81 *current=((((size_t)next)-(size_t)current)-2)>>1; \
82 *(next++)=MM_RESERVED; \
kernel configuration file
Interface: memory data types.
int mm_free_mem(void)
how many bytes of memory are free?
void mm_init()
initialize memory management
void mm_reaper()
free all blocks allocated by the current process
size_t mm_start
end of kernel code + data
size_t * mm_first_free
ptr to first free block.
Interface: reduced standard C library.