This module handles block memory allocator features. More...
Modules |
|
| Macros for preparing debug flags for block allocator module. | |
| Block allocator module configuration | |
Data Structures |
|
| struct | nrf_balloc_cb_t |
|
Block memory allocator control block.
More...
|
|
| struct | nrf_balloc_t |
|
Block memory allocator pool instance. The pool is made of elements of the same size.
More...
|
|
Macros |
|
| #define | NRF_BALLOC_DEFAULT_DEBUG_FLAGS 0 |
|
Default debug flags for
Block memory allocator
. This is used by the
NRF_BALLOC_DEF
macro. Flags can be changed in
SDK configuration header file
.
|
|
| #define | NRF_BALLOC_BLOCK_SIZE (_element_size, _debug_flags) ALIGN_NUM (sizeof(uint32_t), (_element_size)) |
|
Get total memory consumed by single block (element size with overhead caused by debug flags).
More...
|
|
| #define | NRF_BALLOC_DBG_DEF (_name, _element_size, _pool_size, _debug_flags) |
|
Create a block allocator instance with custom debug flags.
More...
|
|
| #define | NRF_BALLOC_DEF (_name, _element_size, _pool_size) NRF_BALLOC_DBG_DEF (_name, _element_size, _pool_size, NRF_BALLOC_DEFAULT_DEBUG_FLAGS ) |
|
Create a block allocator instance.
More...
|
|
| #define | NRF_BALLOC_INTERFACE_DEC (_type, _name) |
|
Create a block allocator interface.
More...
|
|
| #define | NRF_BALLOC_INTERFACE_CUSTOM_DEF (_attr, _type, _name, _p_pool) |
|
Define a custom block allocator interface.
More...
|
|
| #define | NRF_BALLOC_INTERFACE_DEF (_type, _name, _p_pool) NRF_BALLOC_INTERFACE_CUSTOM_DEF (/* empty */, _type, _name, _p_pool) |
|
Define block allocator interface.
More...
|
|
| #define | NRF_BALLOC_INTERFACE_LOCAL_DEF (_type, _name, _p_pool) NRF_BALLOC_INTERFACE_CUSTOM_DEF (static, _type, _name, _p_pool) |
|
Define a local block allocator interface.
More...
|
|
Functions |
|
| ret_code_t | nrf_balloc_init ( nrf_balloc_t const *p_pool) |
|
Function for initializing a block memory allocator pool.
More...
|
|
| void * | nrf_balloc_alloc ( nrf_balloc_t const *p_pool) |
|
Function for allocating an element from the pool.
More...
|
|
| void | nrf_balloc_free ( nrf_balloc_t const *p_pool, void *p_element) |
|
Function for freeing an element back to the pool.
More...
|
|
| __STATIC_INLINE uint8_t | nrf_balloc_max_utilization_get ( nrf_balloc_t const *p_pool) |
|
Function for getting maximum memory pool utilization.
More...
|
|
Detailed Description
This module handles block memory allocator features.
Macro Definition Documentation
| #define NRF_BALLOC_BLOCK_SIZE | ( | _element_size, | |
| _debug_flags | |||
| ) | ALIGN_NUM (sizeof(uint32_t), (_element_size)) |
Get total memory consumed by single block (element size with overhead caused by debug flags).
- Parameters
-
[in] _element_size Size of an element. [in] _debug_flags Debug flags.
| #define NRF_BALLOC_DBG_DEF | ( | _name, | |
| _element_size, | |||
| _pool_size, | |||
| _debug_flags | |||
| ) |
Create a block allocator instance with custom debug flags.
- Note
- This macro reserves memory for the given block allocator instance.
- Parameters
-
[in] _name Name of the allocator. [in] _element_size Size of one element. [in] _pool_size Size of the pool. [in] _debug_flags Debug flags ( Macros for preparing debug flags for block allocator module. ).
| #define NRF_BALLOC_DEF | ( | _name, | |
| _element_size, | |||
| _pool_size | |||
| ) | NRF_BALLOC_DBG_DEF (_name, _element_size, _pool_size, NRF_BALLOC_DEFAULT_DEBUG_FLAGS ) |
Create a block allocator instance.
- Note
- This macro reserves memory for the given block allocator instance.
- Parameters
-
[in] _name Name of the allocator. [in] _element_size Size of one element. [in] _pool_size Size of the pool.
| #define NRF_BALLOC_INTERFACE_CUSTOM_DEF | ( | _attr, | |
| _type, | |||
| _name, | |||
| _p_pool | |||
| ) |
Define a custom block allocator interface.
- Parameters
-
[in] _attr Function attribute that will be added to allocator function definition. [in] _type Type which is allocated. [in] _name Name of the allocator. [in] _p_pool Pool from which data will be allocated.
| #define NRF_BALLOC_INTERFACE_DEC | ( | _type, | |
| _name | |||
| ) |
Create a block allocator interface.
- Parameters
-
[in] _type Type which is allocated. [in] _name Name of the allocator.
| #define NRF_BALLOC_INTERFACE_DEF | ( | _type, | |
| _name, | |||
| _p_pool | |||
| ) | NRF_BALLOC_INTERFACE_CUSTOM_DEF (/* empty */, _type, _name, _p_pool) |
Define block allocator interface.
- Parameters
-
[in] _type Type which is allocated. [in] _name Name of the allocator. [in] _p_pool Pool from which data will be allocated.
| #define NRF_BALLOC_INTERFACE_LOCAL_DEF | ( | _type, | |
| _name, | |||
| _p_pool | |||
| ) | NRF_BALLOC_INTERFACE_CUSTOM_DEF (static, _type, _name, _p_pool) |
Define a local block allocator interface.
- Parameters
-
[in] _type Type which is allocated. [in] _name Name of the allocator. [in] _p_pool Pool from which data will be allocated.
Function Documentation
| void* nrf_balloc_alloc | ( | nrf_balloc_t const * | p_pool | ) |
Function for allocating an element from the pool.
- Note
- This module guarantees that the returned memory is aligned to 4.
- Parameters
-
[in] p_pool Pointer to the memory pool from which the element will be allocated.
- Returns
- Allocated element or NULL if the specified pool is empty.
| void nrf_balloc_free | ( | nrf_balloc_t const * | p_pool , |
| void * | p_element | ||
| ) |
Function for freeing an element back to the pool.
- Parameters
-
[in] p_pool Pointer to the memory pool. [in] p_element Element to be freed.
| ret_code_t nrf_balloc_init | ( | nrf_balloc_t const * | p_pool | ) |
Function for initializing a block memory allocator pool.
- Parameters
-
[out] p_pool Pointer to the pool that is to be initialized.
- Returns
- NRF_SUCCESS on success, otherwise error code.
| __STATIC_INLINE uint8_t nrf_balloc_max_utilization_get | ( | nrf_balloc_t const * | p_pool | ) |
Function for getting maximum memory pool utilization.
- Parameters
-
[in] p_pool Pointer to the memory pool instance.
- Returns
- Maximum number of elements allocated from the pool.