Defines | |||
![]() | ![]() | #define | MM_FREE |
![]() | ![]() | marker: block free. | |
![]() | ![]() | #define | MM_RESERVED |
![]() | ![]() | marker: block reserved. | |
![]() | ![]() | #define | MM_HEADER_SIZE |
![]() | ![]() | 2 words header: pid, size. | |
![]() | ![]() | #define | MM_SPLIT_THRESH |
![]() | ![]() | split off if 8+ data bytes. | |
![]() | ![]() | #define | MM_BLOCK_FREE (addr) |
![]() | ![]() | memory from addr on can be allocated. More... | |
![]() | ![]() | #define | MM_BLOCK_RESERVED (addr) |
![]() | ![]() | memory from addr on is reserved. More... | |
Functions | |||
![]() | ![]() | void | mm_init () |
![]() | ![]() | initialize memory management. | |
![]() | ![]() | void | mm_reaper () |
![]() | ![]() | free all blocks allocated by the current process. More... | |
Variables | |||
![]() | ![]() | size_t | mm_start |
![]() | ![]() | end of kernel code + data. | |
![]() | ![]() | size_t* | mm_first_free |
![]() | ![]() | ptr to first free block. |
#define MM_FREE () |
marker: block free.
#define MM_RESERVED () |
marker: block reserved.
#define MM_HEADER_SIZE () |
2 words header: pid, size.
#define MM_SPLIT_THRESH () |
split off if 8+ data bytes.
#define MM_BLOCK_FREE (addr) |
memory from addr on can be allocated.
Macro for mm_init(). Always alternate MM_BLOCK_FREE and MM_BLOCK_RESERVED.
#define MM_BLOCK_RESERVED (addr) |
memory from addr on is reserved.
Macro for mm_init(). Always alternate MM_BLOCK_FREE and MM_BLOCK_RESERVED.
void mm_init () |
initialize memory management.
void mm_reaper () |
size_t mm_start |
end of kernel code + data.
size_t* mm_first_free |
ptr to first free block.