Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
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_overflow (struct memp *p, u16_t memp_type) |
Check if a memp element was victim of an overflow (e.g. | |
static void | memp_overflow_check_element_underflow (struct memp *p, u16_t memp_type) |
Check if a memp element was victim of an underflow (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 *const | memp_bases [] |
This array holds the base of each memory 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"] | ETHMEM_SECTION |
This is the actual memory used by the pools (all pools in one big block). |
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 lwip_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 449 of file lwip_memp.c.
void memp_init | ( | void | ) |
Initialize this module.
Carves out memp_memory into linked lists for each pool-type.
Definition at line 352 of file lwip_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] |
Do an overflow check for all elements in every pool.
- See also:
- memp_overflow_check_element for a description of the check
Definition at line 295 of file lwip_memp.c.
static void memp_overflow_check_element_overflow | ( | struct memp * | p, |
u16_t | memp_type | ||
) | [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_type the pool p comes from
Definition at line 231 of file lwip_memp.c.
static void memp_overflow_check_element_underflow | ( | struct memp * | p, |
u16_t | memp_type | ||
) | [static] |
Check if a memp element was victim of an underflow (e.g.
the restricted area before it has been altered)
- Parameters:
-
p the memp element to check memp_type the pool p comes from
Definition at line 264 of file lwip_memp.c.
static void memp_overflow_init | ( | void | ) | [static] |
Initialize the restricted areas of all memp elements in every pool.
Definition at line 322 of file lwip_memp.c.
static int memp_sanity | ( | void | ) | [static] |
Check that memp-lists don't form a circle.
Definition at line 197 of file lwip_memp.c.
Variable Documentation
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"] ETHMEM_SECTION [static] |
This is the actual memory used by the pools (all pools in one big block).
Definition at line 188 of file lwip_memp.c.
u8_t* const memp_bases[] [static] |
{ #define LWIP_MEMPOOL(name,num,size,desc) memp_memory_ ## name ## _base, #include "lwip/memp_std.h" }
This array holds the base of each memory pool.
Definition at line 162 of file lwip_memp.c.
const char* memp_desc[MEMP_MAX] [static] |
{ #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 144 of file lwip_memp.c.
const u16_t memp_num[MEMP_MAX] [static] |
{ #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 137 of file lwip_memp.c.
const u16_t memp_sizes[MEMP_MAX] [static] |
{ #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 129 of file lwip_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 117 of file lwip_memp.c.
Generated on Tue Jul 12 2022 12:58:47 by
