Contiki 3.x
|
The managed memory allocator is a fragmentation-free memory manager. More...
Files | |
file | mmem.c |
Implementation of the managed memory allocator | |
file | mmem.h |
Header file for the managed memory allocator | |
Macros | |
#define | MMEM_PTR(m) |
Get a pointer to the managed memory. More... | |
Functions | |
int | mmem_alloc (struct mmem *m, unsigned int size) |
Allocate a managed memory block. More... | |
void | mmem_free (struct mmem *m) |
Deallocate a managed memory block. More... | |
void | mmem_init (void) |
Initialize the managed memory module. More... | |
The managed memory allocator is a fragmentation-free memory manager.
It keeps the allocated memory free from fragmentation by compacting the memory when blocks are freed. A program that uses the managed memory module cannot be sure that allocated memory stays in place. Therefore, a level of indirection is used: access to allocated memory must always be done using a special macro.
#define MMEM_PTR | ( | m | ) |
Get a pointer to the managed memory.
m | A pointer to the struct mmem |
Definition at line 75 of file mmem.h.
Referenced by elfloader_arch_allocate_ram().
int mmem_alloc | ( | struct mmem * | m, |
unsigned int | size | ||
) |
Allocate a managed memory block.
m | A pointer to a struct mmem. |
size | The size of the requested memory block |
Definition at line 83 of file mmem.c.
References list_add().
Referenced by elfloader_arch_allocate_ram().
void mmem_free | ( | struct mmem * | m | ) |
Deallocate a managed memory block.
m | A pointer to the managed memory block |
Definition at line 119 of file mmem.c.
References list_remove(), and NULL.
Referenced by elfloader_arch_allocate_ram().
void mmem_init | ( | void | ) |
Initialize the managed memory module.
Definition at line 152 of file mmem.c.
References list_init().