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.
Dependencies: MAX44000 PWM_Tone_Library nexpaq_mdk
Fork of LED_Demo by
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:29:01 by
