uIP 1.0 based webserver for LPC1114 + ENC28J60
The memory block allocation routines provide a simple yet powerful set of functions for managing a set of memory blocks of fixed size. More...
Files | |
file | memb.c |
Memory block allocation routines. | |
file | memb.h |
Memory block allocation routines. | |
Functions | |
void | memb_init (struct memb_blocks *m) |
Initialize a memory block that was declared with MEMB(). | |
void * | memb_alloc (struct memb_blocks *m) |
Allocate a memory block from a block of memory declared with MEMB(). | |
char | memb_free (struct memb_blocks *m, void *ptr) |
Deallocate a memory block from a memory block previously declared with MEMB(). |
Detailed Description
The memory block allocation routines provide a simple yet powerful set of functions for managing a set of memory blocks of fixed size.
A set of memory blocks is statically declared with the MEMB() macro. Memory blocks are allocated from the declared memory by the memb_alloc() function, and are deallocated with the memb_free() function.
- Note:
- Because of namespace clashes only one MEMB() can be declared per C module, and the name scope of a MEMB() memory block is local to each C module.
The following example shows how to declare and use a memory block called "cmem" which has 8 chunks of memory with each memory chunk being 20 bytes large.
Function Documentation
void * memb_alloc | ( | struct memb_blocks * | m ) |
char memb_free | ( | struct memb_blocks * | m, |
void * | ptr | ||
) |
Deallocate a memory block from a memory block previously declared with MEMB().
- Parameters:
-
m m A memory block previosly declared with MEMB(). ptr A pointer to the memory block that is to be deallocated.
- Returns:
- The new reference count for the memory block (should be 0 if successfully deallocated) or -1 if the pointer "ptr" did not point to a legal memory block.
Generated on Tue Jul 12 2022 12:52:12 by 1.7.2