ConOpSys V2970  P004.07
ANVILEX control operating system
Macros | Typedefs | Functions
mem.h File Reference
#include "lwip/opt.h"
Include dependency graph for mem.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define MEM_SIZE_F   U16_F
 

Typedefs

typedef u16_t mem_size_t
 

Functions

void mem_init (void)
 
void * mem_trim (void *mem, mem_size_t size)
 
void * mem_malloc (mem_size_t size)
 
void * mem_calloc (mem_size_t count, mem_size_t size)
 
void mem_free (void *mem)
 

Detailed Description

Heap API

Macro Definition Documentation

◆ MEM_SIZE_F

#define MEM_SIZE_F   U16_F

Typedef Documentation

◆ mem_size_t

typedef u16_t mem_size_t

Function Documentation

◆ mem_calloc()

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
countnumber of objects to allocate
sizesize of the objects to allocate
Returns
pointer to allocated memory / NULL pointer if there is an error

References LWIP_DBG_LEVEL_SERIOUS, LWIP_DEBUGF, MEM_DEBUG, mem_malloc(), NULL, and SZT_F.

Referenced by bridgeif_fdb_init().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ mem_free()

void mem_free ( void *  rmem)

Put a struct mem back on the heap

Parameters
rmemis the data portion of a struct mem as returned by a previous call to mem_malloc()

References lfree, LWIP_DBG_LEVEL_SERIOUS, LWIP_DBG_LEVEL_SEVERE, LWIP_DBG_TRACE, LWIP_DEBUGF, LWIP_MEM_FREE_DECL_PROTECT, LWIP_MEM_FREE_PROTECT, LWIP_MEM_FREE_UNPROTECT, LWIP_MEM_ILLEGAL_FREE, MEM_ALIGNMENT, MEM_DEBUG, mem_link_valid(), mem_overflow_check_element, MEM_SANITY, MEM_SANITY_OFFSET, MEM_STATS_DEC_USED, MEM_STATS_INC_LOCKED, mem::next, NULL, plug_holes(), ram, ram_end, SIZEOF_STRUCT_MEM, and mem::used.

Referenced by do_memp_free_pool(), mem_free_callback(), pbuf_free(), and slipif_init().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ mem_init()

void mem_init ( void  )

Zero the heap and initialise start, end and lowest-free

References ERR_OK, lfree, LWIP_ASSERT, LWIP_MEM_ALIGN, LWIP_RAM_HEAP_POINTER, MEM_ALIGNMENT, mem_mutex, MEM_SANITY, MEM_SIZE_ALIGNED, MEM_STATS_AVAIL, mem::next, mem::prev, ptr_to_mem(), ram, ram_end, SIZEOF_STRUCT_MEM, sys_mutex_new(), and mem::used.

Referenced by lwip_init().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ mem_malloc()

void* mem_malloc ( mem_size_t  size_in)

Allocate a block of memory with a minimum of 'size' bytes.

Parameters
size_inis 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).

References lfree, LWIP_ASSERT, LWIP_DBG_LEVEL_SERIOUS, LWIP_DEBUGF, LWIP_MEM_ALIGN_SIZE, LWIP_MEM_ALLOC_DECL_PROTECT, LWIP_MEM_ALLOC_PROTECT, LWIP_MEM_ALLOC_UNPROTECT, MEM_ALIGNMENT, MEM_DEBUG, mem_mutex, mem_overflow_init_element, MEM_SANITY, MEM_SANITY_OFFSET, MEM_SIZE_ALIGNED, MEM_STATS_INC, MEM_STATS_INC_USED, mem_to_ptr(), MIN_SIZE_ALIGNED, mem::next, NULL, mem::prev, ptr_to_mem(), ram_end, S16_F, SIZEOF_STRUCT_MEM, sys_mutex_lock(), sys_mutex_unlock(), and mem::used.

Referenced by do_memp_malloc_pool(), mem_calloc(), pbuf_alloc(), and slipif_init().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ mem_trim()

void* mem_trim ( void *  rmem,
mem_size_t  new_size 
)

Shrink memory returned by mem_malloc().

Parameters
rmempointer to memory allocated by mem_malloc the is to be shrinked
new_sizerequired 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!

References lfree, 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_overflow_check_element, mem_overflow_init_element, MEM_SANITY, MEM_SANITY_OFFSET, MEM_SANITY_OVERHEAD, MEM_SIZE_ALIGNED, MEM_STATS_DEC_USED, MEM_STATS_INC_LOCKED, mem_to_ptr(), MIN_SIZE_ALIGNED, mem::next, NULL, mem::prev, ptr_to_mem(), ram, ram_end, SIZEOF_STRUCT_MEM, and mem::used.

Referenced by pbuf_realloc().

Here is the call graph for this function:
Here is the caller graph for this function: