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.
-0.1.7 is released under
Mozilla Public License.
Original code © 1998-1999 by Markus L. Noga.