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

legOS/kernel/mm.c File Reference

dynamic memory management. More...


Functions

size_t mm_try_join (size_t *ptr)
check for free blocks after this one and join them if possible.

void mm_update_first_free (size_t *start)
update first free block pointer. More...

void mm_init ()
initialize memory management.

void* malloc (size_t size)
allocate a block of memory. More...

void free (void *the_ptr)
free a previously allocated block of memory. More...

void* calloc (size_t nmemb, size_t size)
allocate adjacent blocks of memory. More...

void mm_reaper ()
free all blocks allocated by the current process. More...


Variables

size_tmm_first_free
first free block.

sem_t mm_semaphore
assures tasksafe operation.


Detailed Description

dynamic memory management.

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

Function Documentation

size_t mm_try_join (size_t * ptr)

check for free blocks after this one and join them if possible.

void mm_update_first_free (size_t * start)

update first free block pointer.

Parameters:
start   pointer to owner field of a memory block to start with.

void mm_init ()

initialize memory management.

void * malloc (size_t size)

allocate a block of memory.

Parameters:
size   requested block size
Returns:
0 on error, else pointer to block.

void free (void * the_ptr)

free a previously allocated block of memory.

Parameters:
the_ptr   pointer to block

ever heard of free(software_paradigm)?

void * calloc (size_t nmemb, size_t size)

allocate adjacent blocks of memory.

Parameters:
nmemb   number of blocks
size   individual block size
Returns:
0 on error, else pointer to block

void mm_reaper ()

free all blocks allocated by the current process.

called by exit() and kmain().


Variable Documentation

size_t* mm_first_free

first free block.

sem_t mm_semaphore

assures tasksafe operation.

legOS-0.2.4 is released under the Mozilla Public License. Original code copyright 1998-1999 by the authors.