#include "lwip/opt.h"
#include "lwip/def.h"
#include "lwip/mem.h"
#include "lwip/sys.h"
#include "lwip/stats.h"
#include "lwip/err.h"
#include <string.h>
Classes | |
struct | mem |
Defines | |
#define | MIN_SIZE 12 |
Functions | |
void | mem_init (void) |
void | mem_free (void *rmem) |
void * | mem_trim (void *rmem, mem_size_t newsize) |
void * | mem_malloc (mem_size_t size) |
void * | mem_calloc (mem_size_t count, mem_size_t size) |
Variables | |
u8_t | ram_heap [MEM_SIZE_ALIGNED+(2 *SIZEOF_STRUCT_MEM)+MEM_ALIGNMENT] |
This is a lightweight replacement for the standard C library malloc().
If you want to use the standard C library malloc() instead, define MEM_LIBC_MALLOC to 1 in your lwipopts.h
To let mem_malloc() use pools (prevents fragmentation and is much faster than a heap but might waste some memory), define MEM_USE_POOLS to 1, define MEM_USE_CUSTOM_POOLS to 1 and create a file "lwippools.h" that includes a list of pools like this (more pools can be added between _START and _END):
Define three pools with sizes 256, 512, and 1512 bytes LWIP_MALLOC_MEMPOOL_START LWIP_MALLOC_MEMPOOL(20, 256) LWIP_MALLOC_MEMPOOL(10, 512) LWIP_MALLOC_MEMPOOL(5, 1512) LWIP_MALLOC_MEMPOOL_END
|
All allocated blocks will be MIN_SIZE bytes big, at least! MIN_SIZE can be overridden to suit your needs. Smaller values save space, larger values could prevent too small blocks to fragment the RAM too much. |
|
Contiguously allocates enough space for count objects that are size bytes of memory each and returns a pointer to the allocated memory. The allocated memory is filled with bytes of value zero.
|
|
Put a struct mem back on the heap
|
|
Zero the heap and initialize start, end and lowest-free |
|
Adam's mem_malloc() plus solution for bug #17922 Allocate a block of memory with a minimum of 'size' bytes.
|
|
Shrink memory returned by mem_malloc().
|
|
the heap. we need one struct mem at the end and some room for alignment |