Simulated product dispenser

Dependencies:   HTS221

Fork of mbed-cloud-workshop-connect-HTS221 by Jim Carver

Embed: (wiki syntax)

« Back to documentation index

nsdynmemLIB.h File Reference

nsdynmemLIB.h File Reference

Dynamical Memory API for library model nsdynmemlib provides access to one default heap, along with the ability to use extra user heaps. More...

Go to the source code of this file.

Data Structures

struct  mem_stat_t
 /struct mem_stat_t /brief Struct for Memory stats Buffer structure More...

Typedefs

typedef struct mem_stat_t mem_stat_t
 /struct mem_stat_t /brief Struct for Memory stats Buffer structure

Enumerations

enum  heap_fail_t {
  NS_DYN_MEM_NULL_FREE, NS_DYN_MEM_DOUBLE_FREE, NS_DYN_MEM_ALLOCATE_SIZE_NOT_VALID, NS_DYN_MEM_POINTER_NOT_VALID,
  NS_DYN_MEM_HEAP_SECTOR_CORRUPTED, NS_DYN_MEM_HEAP_SECTOR_UNITIALIZED
}
 

Dynamically heap system failure call back event types.

More...

Functions

void ns_dyn_mem_init (void *heap, ns_mem_heap_size_t h_size, void(*passed_fptr)(heap_fail_t), mem_stat_t *info_ptr)
 Init and set Dynamical heap pointer and length.
void ns_dyn_mem_free (void *heap_ptr)
 Free allocated memory.
void * ns_dyn_mem_temporary_alloc (ns_mem_block_size_t alloc_size)
 Allocate temporary data.
void * ns_dyn_mem_alloc (ns_mem_block_size_t alloc_size)
 Allocate long period data.
const mem_stat_tns_dyn_mem_get_mem_stat (void)
 Get pointer to the current mem_stat_t set via ns_dyn_mem_init.
ns_mem_book_t * ns_mem_init (void *heap, ns_mem_heap_size_t h_size, void(*passed_fptr)(heap_fail_t), mem_stat_t *info_ptr)
 Init and set Dynamical heap pointer and length.
void ns_mem_free (ns_mem_book_t *book, void *heap_ptr)
 Free allocated memory.
void * ns_mem_temporary_alloc (ns_mem_book_t *book, ns_mem_block_size_t alloc_size)
 Allocate temporary data.
void * ns_mem_alloc (ns_mem_book_t *book, ns_mem_block_size_t alloc_size)
 Allocate long period data.
const mem_stat_tns_mem_get_mem_stat (ns_mem_book_t *book)
 Get pointer to the current mem_stat_t set via ns_mem_init.

Detailed Description

Dynamical Memory API for library model nsdynmemlib provides access to one default heap, along with the ability to use extra user heaps.

ns_dyn_mem_alloc/free always access the default heap initialised by ns_dyn_mem_init. ns_mem_alloc/free access a user heap initialised by ns_mem_init. User heaps are identified by a book-keeping pointer.

Definition in file nsdynmemLIB.h.


Typedef Documentation

typedef struct mem_stat_t mem_stat_t

/struct mem_stat_t /brief Struct for Memory stats Buffer structure


Enumeration Type Documentation

Dynamically heap system failure call back event types.

Enumerator:
NS_DYN_MEM_NULL_FREE 

ns_dyn_mem_free(), NULL pointer free [obsolete - no longer faulted]

NS_DYN_MEM_DOUBLE_FREE 

ns_dyn_mem_free(), Possible double pointer free

NS_DYN_MEM_ALLOCATE_SIZE_NOT_VALID 

Allocate size is 0 or smaller or size is bigger than max heap size.

NS_DYN_MEM_POINTER_NOT_VALID 

ns_dyn_mem_free(), try to free pointer which not at heap sector

NS_DYN_MEM_HEAP_SECTOR_CORRUPTED 

Heap system detect sector corruption.

NS_DYN_MEM_HEAP_SECTOR_UNITIALIZED 

ns_dyn_mem_free(), ns_dyn_mem_temporary_alloc() or ns_dyn_mem_alloc() called before ns_dyn_mem_init()

Definition at line 44 of file nsdynmemLIB.h.


Function Documentation

void* ns_dyn_mem_alloc ( ns_mem_block_size_t  alloc_size )

Allocate long period data.

Space allocate started from end of the heap sector

Parameters:
alloc_sizeAllocated data size
Returns:
0, Allocate Fail
>0, Pointer to allocated data sector.

Definition at line 308 of file nsdynmemLIB.c.

void ns_dyn_mem_free ( void *  heap_ptr )

Free allocated memory.

Parameters:
heap_ptrPointer to allocated memory
Returns:
0, Free OK
<0, Free Fail

Definition at line 446 of file nsdynmemLIB.c.

const mem_stat_t* ns_dyn_mem_get_mem_stat ( void   )

Get pointer to the current mem_stat_t set via ns_dyn_mem_init.

Get pointer to the statistics information, if one is set during the initialization. This may be useful for statistics collection purposes.

Note: the caller may not modify the returned structure.

Returns:
NULL, no mem_stat_t was given on initialization
!=0, Pointer to mem_stat_t.

Definition at line 76 of file nsdynmemLIB.c.

void ns_dyn_mem_init ( void *  heap,
ns_mem_heap_size_t  h_size,
void(*)(heap_fail_t passed_fptr,
mem_stat_t info_ptr 
)

Init and set Dynamical heap pointer and length.

Parameters:
heap_ptrPointer to dynamically heap buffer
heap_sizesize of the heap buffer
Returns:
None

Definition at line 70 of file nsdynmemLIB.c.

void* ns_dyn_mem_temporary_alloc ( ns_mem_block_size_t  alloc_size )

Allocate temporary data.

Space allocate started from beginning of the heap sector

Parameters:
alloc_sizeAllocated data size
Returns:
0, Allocate Fail
>0, Pointer to allocated data sector.

Definition at line 313 of file nsdynmemLIB.c.

void* ns_mem_alloc ( ns_mem_book_t *  book,
ns_mem_block_size_t  alloc_size 
)

Allocate long period data.

Space allocate started from end of the heap sector

Parameters:
bookAddress of book keeping structure
alloc_sizeAllocated data size
Returns:
0, Allocate Fail
>0, Pointer to allocated data sector.

Definition at line 298 of file nsdynmemLIB.c.

void ns_mem_free ( ns_mem_book_t *  book,
void *  heap_ptr 
)

Free allocated memory.

Parameters:
bookAddress of book keeping structure
heap_ptrPointer to allocated memory
Returns:
0, Free OK
<0, Free Fail

Definition at line 406 of file nsdynmemLIB.c.

const mem_stat_t* ns_mem_get_mem_stat ( ns_mem_book_t *  book )

Get pointer to the current mem_stat_t set via ns_mem_init.

Get pointer to the statistics information, if one is set during the initialization. This may be useful for statistics collection purposes.

Note: the caller may not modify the returned structure.

Parameters:
bookAddress of book keeping structure
Returns:
NULL, no mem_stat_t was given on initialization
!=0, Pointer to mem_stat_t.

Definition at line 134 of file nsdynmemLIB.c.

ns_mem_book_t* ns_mem_init ( void *  heap,
ns_mem_heap_size_t  h_size,
void(*)(heap_fail_t passed_fptr,
mem_stat_t info_ptr 
)

Init and set Dynamical heap pointer and length.

Parameters:
heap_ptrPointer to dynamically heap buffer
heap_sizesize of the heap buffer
Returns:
!=0, Pointer to ns_mem_book_t.

Definition at line 86 of file nsdynmemLIB.c.

void* ns_mem_temporary_alloc ( ns_mem_book_t *  book,
ns_mem_block_size_t  alloc_size 
)

Allocate temporary data.

Space allocate started from beginning of the heap sector

Parameters:
bookAddress of book keeping structure
alloc_sizeAllocated data size
Returns:
0, Allocate Fail
>0, Pointer to allocated data sector.

Definition at line 303 of file nsdynmemLIB.c.