#include "lwip/opt.h"
Macros | |
#define | LWIP_MEM_ALIGN(addr) ((void *)(((mem_ptr_t)(addr) + MEM_ALIGNMENT - 1) & ~(mem_ptr_t)(MEM_ALIGNMENT-1))) |
Align a memory pointer to the alignment defined by MEM_ALIGNMENT so that ADDR % MEM_ALIGNMENT == 0. More... | |
#define | LWIP_MEM_ALIGN_BUFFER(size) (((size) + MEM_ALIGNMENT - 1)) |
Calculate safe memory size for an aligned buffer when using an unaligned type as storage. More... | |
#define | LWIP_MEM_ALIGN_SIZE(size) (((size) + MEM_ALIGNMENT - 1) & ~(MEM_ALIGNMENT-1)) |
Calculate memory size for an aligned buffer - returns the next highest multiple of MEM_ALIGNMENT (e.g. More... | |
#define | MEM_SIZE_F U16_F |
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_trim (void *mem, mem_size_t size) |
Shrink memory returned by mem_malloc(). More... | |
#define LWIP_MEM_ALIGN | ( | addr | ) | ((void *)(((mem_ptr_t)(addr) + MEM_ALIGNMENT - 1) & ~(mem_ptr_t)(MEM_ALIGNMENT-1))) |
Align a memory pointer to the alignment defined by MEM_ALIGNMENT so that ADDR % MEM_ALIGNMENT == 0.
Referenced by mem_init(), memp_init(), and pbuf_alloc().
#define LWIP_MEM_ALIGN_BUFFER | ( | size | ) | (((size) + MEM_ALIGNMENT - 1)) |
Calculate safe memory size for an aligned buffer when using an unaligned type as storage.
This includes a safety-margin on (MEM_ALIGNMENT - 1) at the start (e.g. if buffer is u8_t[] and actual data will be u32_t*)
#define LWIP_MEM_ALIGN_SIZE | ( | size | ) | (((size) + MEM_ALIGNMENT - 1) & ~(MEM_ALIGNMENT-1)) |
Calculate memory size for an aligned buffer - returns the next highest multiple of MEM_ALIGNMENT (e.g.
LWIP_MEM_ALIGN_SIZE(3) and LWIP_MEM_ALIGN_SIZE(4) will both yield 4 for MEM_ALIGNMENT == 4).
Referenced by mem_malloc(), mem_trim(), and pbuf_alloc().
#define MEM_SIZE_F U16_F |
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_trim | ( | void * | rmem, |
mem_size_t | newsize | ||
) |
Shrink memory returned by mem_malloc().
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) |