Buffer-based memory allocator.
More...
#include "mbedtls/build_info.h"
#include <stddef.h>
Go to the source code of this file.
Buffer-based memory allocator.
Definition in file memory_buffer_alloc.h.
#define MBEDTLS_MEMORY_VERIFY_ALLOC (1 << 0) |
#define MBEDTLS_MEMORY_VERIFY_ALWAYS |
Value:
#define MBEDTLS_MEMORY_VERIFY_ALLOC
#define MBEDTLS_MEMORY_VERIFY_FREE
Definition at line 34 of file memory_buffer_alloc.h.
#define MBEDTLS_MEMORY_VERIFY_FREE (1 << 1) |
#define MBEDTLS_MEMORY_VERIFY_NONE 0 |
void mbedtls_memory_buffer_alloc_count_get |
( |
size_t * |
alloc_count, |
|
|
size_t * |
free_count |
|
) |
| |
Get the number of alloc/free so far.
- Parameters
-
alloc_count | Number of allocations. |
free_count | Number of frees. |
void mbedtls_memory_buffer_alloc_cur_get |
( |
size_t * |
cur_used, |
|
|
size_t * |
cur_blocks |
|
) |
| |
Get the current heap usage.
- Parameters
-
cur_used | Current number of bytes in use or committed. This includes bytes in allocated blocks too small to split into smaller blocks but larger than the requested size. |
cur_blocks | Current number of blocks in use, including free and used |
void mbedtls_memory_buffer_alloc_free |
( |
void |
| ) |
|
Free the mutex for thread-safety and clear remaining memory.
void mbedtls_memory_buffer_alloc_init |
( |
unsigned char * |
buf, |
|
|
size_t |
len |
|
) |
| |
Initialize use of stack-based memory allocator. The stack-based allocator does memory management inside the presented buffer and does not call calloc() and free(). It sets the global mbedtls_calloc() and mbedtls_free() pointers to its own functions. (Provided mbedtls_calloc() and mbedtls_free() are thread-safe if MBEDTLS_THREADING_C is defined)
- Note
- This code is not optimized and provides a straight-forward implementation of a stack-based memory allocator.
- Parameters
-
buf | buffer to use as heap |
len | size of the buffer |
void mbedtls_memory_buffer_alloc_max_get |
( |
size_t * |
max_used, |
|
|
size_t * |
max_blocks |
|
) |
| |
Get the peak heap usage so far.
- Parameters
-
max_used | Peak number of bytes in use or committed. This includes bytes in allocated blocks too small to split into smaller blocks but larger than the requested size. |
max_blocks | Peak number of blocks in use, including free and used |
void mbedtls_memory_buffer_alloc_max_reset |
( |
void |
| ) |
|
int mbedtls_memory_buffer_alloc_self_test |
( |
int |
verbose | ) |
|
Checkup routine.
- Returns
- 0 if successful, or 1 if a test failed
void mbedtls_memory_buffer_alloc_status |
( |
void |
| ) |
|
Print out the status of the allocated memory (primarily for use after a program should have de-allocated all memory) Prints out a list of 'still allocated' blocks and their stack trace if MBEDTLS_MEMORY_BACKTRACE is defined.
int mbedtls_memory_buffer_alloc_verify |
( |
void |
| ) |
|
Verifies that all headers in the memory buffer are correct and contain sane values. Helps debug buffer-overflow errors.
Prints out first failure if MBEDTLS_MEMORY_DEBUG is defined. Prints out full header information if MBEDTLS_MEMORY_DEBUG is defined. (Includes stack trace information for each block if MBEDTLS_MEMORY_BACKTRACE is defined as well).
- Returns
- 0 if verified, 1 otherwise
void mbedtls_memory_buffer_set_verify |
( |
int |
verify | ) |
|
Determine when the allocator should automatically verify the state of the entire chain of headers / meta-data. (Default: MBEDTLS_MEMORY_VERIFY_NONE)
- Parameters
-
verify | One of MBEDTLS_MEMORY_VERIFY_NONE, MBEDTLS_MEMORY_VERIFY_ALLOC, MBEDTLS_MEMORY_VERIFY_FREE or MBEDTLS_MEMORY_VERIFY_ALWAYS |