Defines | Typedefs | Functions

alexb/lib/lwip/contrib/src/include/lwip/mem.h File Reference

#include "lwip/opt.h"

Defines

#define MEM_SIZE_F   U16_F
#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.
#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.
#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.

Typedefs

typedef u16_t mem_size_t

Functions

void mem_init (void)
 Zero the heap and initialize start, end and lowest-free.
void * mem_trim (void *mem, mem_size_t size)
 Shrink memory returned by mem_malloc().
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.
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.
void mem_free (void *mem)
 Put a struct mem back on the heap.

Define Documentation

#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.

#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).

#define MEM_SIZE_F   U16_F

Typedef Documentation

typedef u16_t mem_size_t

Function Documentation

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.

Parameters:
count number of objects to allocate
size size of the objects to allocate
Returns:
pointer to allocated memory / NULL pointer if there is an error
void mem_free ( void *  rmem  ) 

Put a struct mem back on the heap.

Parameters:
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.

Parameters:
size is the minimum size of the requested block in bytes.
Returns:
pointer to allocated memory or NULL if no free memory was found.

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().

Parameters:
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)
Returns:
for compatibility reasons: is always == rmem, at the moment or NULL if newsize is > old size, in which case rmem is NOT touched or freed!
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines