The Pedigree Project  0.1
Macros | Functions | Variables
memp.c File Reference
#include "lwip/opt.h"
#include "lwip/memp.h"
#include "lwip/sys.h"
#include "lwip/stats.h"
#include <string.h>
#include "lwip/pbuf.h"
#include "lwip/raw.h"
#include "lwip/udp.h"
#include "lwip/tcp.h"
#include "lwip/priv/tcp_priv.h"
#include "lwip/ip4_frag.h"
#include "lwip/netbuf.h"
#include "lwip/api.h"
#include "lwip/priv/tcpip_priv.h"
#include "lwip/priv/api_msg.h"
#include "lwip/sockets.h"
#include "lwip/netifapi.h"
#include "lwip/etharp.h"
#include "lwip/igmp.h"
#include "lwip/timeouts.h"
#include "netif/ppp/ppp_opts.h"
#include "lwip/netdb.h"
#include "lwip/dns.h"
#include "lwip/priv/nd6_priv.h"
#include "lwip/ip6_frag.h"
#include "lwip/mld6.h"
#include "lwip/priv/memp_std.h"
+ Include dependency graph for memp.c:

Go to the source code of this file.

Macros

#define LWIP_MEMPOOL(name, num, size, desc)   LWIP_MEMPOOL_DECLARE(name,num,size,desc)
 
#define LWIP_MEMPOOL(name, num, size, desc)   &memp_ ## name,
 

Functions

void memp_init_pool (const struct memp_desc *desc)
 
void memp_init (void)
 
void * memp_malloc_pool (const struct memp_desc *desc)
 
void * memp_malloc (memp_t type)
 
void memp_free_pool (const struct memp_desc *desc, void *mem)
 
void memp_free (memp_t type, void *mem)
 

Variables

const struct memp_desc *const memp_pools [MEMP_MAX]
 

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
typethe pool where to put mem
memthe memp element to free

Definition at line 488 of file memp.c.

References memp_desc::tab.

Referenced by pbuf_free(), tcpip_callback_with_block(), tcpip_callbackmsg_delete(), and tcpip_inpkt().

+ Here is the caller graph for this function:

void memp_free_pool ( const struct memp_desc desc,
void *  mem 
)

Put a custom pool element back into its pool.

Parameters
descthe pool where to put mem
memthe memp element to free

Definition at line 471 of file memp.c.

void memp_init ( void  )

Initializes lwIP built-in pools. Related functions: memp_malloc, memp_free

Carves out memp_memory into linked lists for each pool-type.

Definition at line 290 of file memp.c.

References LWIP_DBG_LEVEL_SERIOUS, LWIP_DEBUGF, mem_malloc(), MEMP_DEBUG, memp_init_pool(), memp_desc::size, SYS_ARCH_DECL_PROTECT, and memp_desc::tab.

Referenced by lwip_init().

+ Here is the caller graph for this function:

void memp_init_pool ( const struct memp_desc desc)

Initialize custom memory pool. Related functions: memp_malloc_pool, memp_free_pool

Parameters
descpool to initialize

Definition at line 249 of file memp.c.

References memp_desc::base, LWIP_MEM_ALIGN, LWIP_UNUSED_ARG, MEMP_OVERFLOW_CHECK, memp_desc::num, memp_desc::size, and memp_desc::tab.

Referenced by memp_init().

+ Here is the caller graph for this function:

void* memp_malloc ( memp_t  type)

Get an element from a specific pool.

Parameters
typethe pool to get an element from
Returns
a pointer to the allocated memory or a NULL pointer on error

Definition at line 404 of file memp.c.

References LWIP_UNUSED_ARG, mem_free(), SYS_ARCH_DECL_PROTECT, and memp_desc::tab.

Referenced by pbuf_alloc(), tcpip_callback_with_block(), tcpip_callbackmsg_new(), and tcpip_inpkt().

+ Here is the caller graph for this function:

void* memp_malloc_pool ( const struct memp_desc desc)

Get an element from a custom pool.

Parameters
descthe pool to get an element from
Returns
a pointer to the allocated memory or a NULL pointer on error

Definition at line 378 of file memp.c.

Variable Documentation

const struct memp_desc* const memp_pools[MEMP_MAX]
Initial value:
= {
#define LWIP_MEMPOOL(name,num,size,desc)
}

Definition at line 100 of file memp.c.