#include "lwip/opt.h"
Macros | |
#define | LWIP_MEM_ALIGN(addr) ((void *)(((mem_ptr_t)(addr) + MEM_ALIGNMENT - 1) & ~(mem_ptr_t)(MEM_ALIGNMENT-1))) |
#define | LWIP_MEM_ALIGN_SIZE(size) (((size) + MEM_ALIGNMENT - 1) & ~(MEM_ALIGNMENT-1)) |
Typedefs | |
typedef u16_t | mem_size_t |
Functions | |
void * | mem_calloc (mem_size_t count, mem_size_t size) |
Contiguously allocates enough space for count objects that are size bytes of memory each and returns a pointer to the allocated memory. More... | |
void | mem_free (void *mem) |
Put a struct mem back on the heap. More... | |
void | mem_init (void) |
Zero the heap and initialize start, end and lowest-free. More... | |
void * | mem_malloc (mem_size_t size) |
Adam's mem_malloc() plus solution for bug #17922 Allocate a block of memory with a minimum of 'size' bytes. More... | |
void * | mem_realloc (void *mem, mem_size_t size) |
In contrast to its name, mem_realloc can only shrink memory, not expand it. More... | |
#define LWIP_MEM_ALIGN | ( | addr | ) | ((void *)(((mem_ptr_t)(addr) + MEM_ALIGNMENT - 1) & ~(mem_ptr_t)(MEM_ALIGNMENT-1))) |
#define LWIP_MEM_ALIGN_SIZE | ( | size | ) | (((size) + MEM_ALIGNMENT - 1) & ~(MEM_ALIGNMENT-1)) |
typedef u16_t mem_size_t |
void* mem_calloc | ( | mem_size_t | count, |
mem_size_t | size | ||
) |
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.
count | number of objects to allocate |
size | size of the objects to allocate |
void mem_free | ( | void * | rmem | ) |
Put a struct mem back on the heap.
rmem | is the data portion of a struct mem as returned by a previous call to mem_malloc() |
void mem_init | ( | void | ) |
Zero the heap and initialize start, end and lowest-free.
void* mem_malloc | ( | mem_size_t | size | ) |
Adam's mem_malloc() plus solution for bug #17922 Allocate a block of memory with a minimum of 'size' bytes.
size | is the minimum size of the requested block in bytes. |
Note that the returned value will always be aligned (as defined by MEM_ALIGNMENT).
void* mem_realloc | ( | void * | rmem, |
mem_size_t | newsize | ||
) |
In contrast to its name, mem_realloc can only shrink memory, not expand it.
Since the only use (for now) is in pbuf_realloc (which also can only shrink), this shouldn't be a problem!
rmem | pointer to memory allocated by mem_malloc the is to be shrinked |
newsize | required size after shrinking (needs to be smaller than or equal to the previous size) |
References LWIP_ASSERT, LWIP_DBG_LEVEL_SEVERE, LWIP_DEBUGF, LWIP_MEM_ALIGN_SIZE, LWIP_MEM_FREE_DECL_PROTECT, LWIP_MEM_FREE_PROTECT, LWIP_MEM_FREE_UNPROTECT, MEM_DEBUG, MEM_SIZE_ALIGNED, MEM_STATS_DEC_USED, MEM_STATS_INC, MIN_SIZE_ALIGNED, mem::next, NULL, mem::prev, SIZEOF_STRUCT_MEM, SYS_ARCH_DECL_PROTECT, SYS_ARCH_PROTECT, SYS_ARCH_UNPROTECT, and mem::used.