uc-sdk
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
memp.c File Reference
#include "lwip/opt.h"
#include "lwip/memp.h"
#include "lwip/pbuf.h"
#include "lwip/udp.h"
#include "lwip/raw.h"
#include "lwip/tcp_impl.h"
#include "lwip/igmp.h"
#include "lwip/api.h"
#include "lwip/api_msg.h"
#include "lwip/tcpip.h"
#include "lwip/sys.h"
#include "lwip/timers.h"
#include "lwip/stats.h"
#include "netif/etharp.h"
#include "lwip/ip_frag.h"
#include "lwip/snmp_structs.h"
#include "lwip/snmp_msg.h"
#include "lwip/dns.h"
#include "netif/ppp_oe.h"
#include <string.h>
#include "lwip/memp_std.h"

Go to the source code of this file.

Classes

struct  memp
 

Macros

#define MEMP_SIZE   0
 
#define MEMP_ALIGN_SIZE(x)   (LWIP_MEM_ALIGN_SIZE(x))
 
#define LWIP_MEMPOOL(name, num, size, desc)   LWIP_MEM_ALIGN_SIZE(size),
 
#define LWIP_MEMPOOL(name, num, size, desc)   (num),
 
#define LWIP_MEMPOOL(name, num, size, desc)   + ( (num) * (MEMP_SIZE + MEMP_ALIGN_SIZE(size) ) )
 

Functions

void memp_init (void)
 
void * memp_malloc (memp_t type)
 
void memp_free (memp_t type, void *mem)
 

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.

Macro Definition Documentation

#define LWIP_MEMPOOL (   name,
  num,
  size,
  desc 
)    LWIP_MEM_ALIGN_SIZE(size),
#define LWIP_MEMPOOL (   name,
  num,
  size,
  desc 
)    (num),
#define LWIP_MEMPOOL (   name,
  num,
  size,
  desc 
)    + ( (num) * (MEMP_SIZE + MEMP_ALIGN_SIZE(size) ) )
#define MEMP_ALIGN_SIZE (   x)    (LWIP_MEM_ALIGN_SIZE(x))

Definition at line 111 of file memp.c.

#define MEMP_SIZE   0

Definition at line 110 of 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 434 of file memp.c.

void memp_init ( void  )

Initialize this module.

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

Definition at line 337 of file memp.c.

void* memp_malloc ( memp_t  type)

Get an element from a specific pool.

Parameters
typethe pool to get an element from

the debug version has two more parameters:

Parameters
filefile name calling this function
linenumber of line where this function is called
Returns
a pointer to the allocated memory or a NULL pointer on error

Definition at line 389 of file memp.c.