Main Page   Class Hierarchy   Compound List   File List   Header Files   Compound Members   File Members  

/usr/src/redhat/BUILD/legOS/include/sys/mm.h File Reference

memory management interna. More...


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_tmm_first_free
ptr to first free block.


Detailed Description

memory management interna.

Author(s):
Markus L. Noga <markus@noga.de>

Define Documentation

#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.


Function Documentation

void mm_init ()

initialize memory management.

void mm_reaper ()

free all blocks allocated by the current process.

called by exit() and kmain().


Variable Documentation

size_t mm_start

end of kernel code + data.

size_t* mm_first_free

ptr to first free block.


legOS-0.1.7 is released under Mozilla Public License. Original code © 1998-1999 by Markus L. Noga.