Port of LwIP performed by Ralf in 2010. Not recommended for use with recent mbed libraries, but good demos of raw LwIP possible
Dependents:
LwIP_raw_API_serverExample
tiny-dtls
« Back to documentation index
memp.c File Reference
Dynamic pool memory manager.
More...
Go to the source code of this file.
Functions
static int memp_sanity (void)
Check that memp-lists don't form a circle.
static void memp_overflow_check_element (struct memp *p, u16_t memp_size)
Check if a memp element was victim of an overflow (e.g.
static void memp_overflow_check_all (void)
Do an overflow check for all elements in every pool.
static void memp_overflow_init (void)
Initialize the restricted areas of all memp elements in every pool.
void memp_init (void)
Initialize this module.
void * memp_malloc (memp_t type) memp_malloc_fn(memp_t type
Get an element from a specific pool.
void memp_free (memp_t type, void *mem)
Put an element back into its pool.
Variables
static struct memp * memp_tab [MEMP_MAX]
This array holds the first free element of each pool.
static const u16_t memp_sizes [MEMP_MAX]
This array holds the element sizes of each pool.
static const u16_t memp_num [MEMP_MAX]
This array holds the number of elements in each pool.
static const char * memp_desc [MEMP_MAX]
This array holds a textual description of each pool.
static u8_t memp_memory [MEM_ALIGNMENT-1#define LWIP_MEMPOOL(name, num, size, desc)+((num)*(MEMP_SIZE+MEMP_ALIGN_SIZE(size)))#include"lwip/memp_std.h"]
This is the actual memory used by the pools.
Detailed Description
Dynamic pool memory manager.
lwIP has dedicated pools for many structures (netconn, protocol control blocks, packet buffers, ...). All these pools are managed here.
Definition in file memp.c .
Function Documentation
void memp_free
(
memp_t
type ,
void *
mem
)
Put an element back into its pool.
Parameters:
type the pool where to put mem
mem the memp element to free
Definition at line 352 of file memp.c .
Initialize this module.
Carves out memp_memory into linked lists for each pool-type.
Definition at line 260 of file memp.c .
void* memp_malloc
(
memp_t
type )
Get an element from a specific pool.
Parameters:
type the pool to get an element from
the debug version has two more parameters:
Parameters:
file file name calling this function
line number of line where this function is called
Returns: a pointer to the allocated memory or a NULL pointer on error
memp_overflow_check_all
(
void
)
[static]
static void memp_overflow_check_element
(
struct memp *
p ,
u16_t
memp_size
)
[static]
Check if a memp element was victim of an overflow (e.g.
the restricted area after it has been altered)
Parameters:
p the memp element to check
memp_size the element size of the pool p comes from
Definition at line 183 of file memp.c .
static void memp_overflow_init
(
void
)
[static]
Initialize the restricted areas of all memp elements in every pool.
Definition at line 230 of file memp.c .
static int memp_sanity
(
void
)
[static]
Check that memp-lists don't form a circle.
Definition at line 156 of file memp.c .
Variable Documentation
Initial value: {
#define LWIP_MEMPOOL(name,num,size,desc) (desc),
#include "lwip/memp_std.h"
}
This array holds a textual description of each pool.
Definition at line 139 of file memp.c .
u8_t memp_memory [MEM_ALIGNMENT-1#define LWIP_MEMPOOL(name, num, size, desc)+((num)*(MEMP_SIZE+MEMP_ALIGN_SIZE(size)))#include"lwip/memp_std.h"] [static]
This is the actual memory used by the pools.
Definition at line 149 of file memp.c .
Initial value: {
#define LWIP_MEMPOOL(name,num,size,desc) (num),
#include "lwip/memp_std.h"
}
This array holds the number of elements in each pool.
Definition at line 132 of file memp.c .
Initial value: {
#define LWIP_MEMPOOL(name,num,size,desc) LWIP_MEM_ALIGN_SIZE(size),
#include "lwip/memp_std.h"
}
This array holds the element sizes of each pool.
Definition at line 124 of file memp.c .
struct memp* memp_tab [MEMP_MAX] [static]
This array holds the first free element of each pool.
Elements form a linked list.
Definition at line 112 of file memp.c .