Documentation

Documentation

Includes

config.h

#include "config.h"
#include "config.h"

MBEDTLS_CONFIG_FILE

#include MBEDTLS_CONFIG_FILE
#include MBEDTLS_CONFIG_FILE

stddef.h

#include <stddef.h>
#include 

Macros

Marco MBEDTLS_MEMORY_BUFFER_ALLOC_H

#define MBEDTLS_MEMORY_BUFFER_ALLOC_H


      

Marco MBEDTLS_MEMORY_ALIGN_MULTIPLE

#define MBEDTLS_MEMORY_ALIGN_MULTIPLE      4 /**< Align on multiples of this value */


      

Marco MBEDTLS_MEMORY_VERIFY_NONE

#define MBEDTLS_MEMORY_VERIFY_NONE        0


      

Marco MBEDTLS_MEMORY_VERIFY_ALLOC

#define MBEDTLS_MEMORY_VERIFY_ALLOC       (1 << 0)


      

Marco MBEDTLS_MEMORY_VERIFY_FREE

#define MBEDTLS_MEMORY_VERIFY_FREE        (1 << 1)


      

Marco MBEDTLS_MEMORY_VERIFY_ALWAYS

#define MBEDTLS_MEMORY_VERIFY_ALWAYS      (MBEDTLS_MEMORY_VERIFY_ALLOC | MBEDTLS_MEMORY_VERIFY_FREE)

      

Functions

Func mbedtls_memory_buffer_alloc_init

void mbedtls_memory_buffer_alloc_init( unsigned char *buf, size_t len );
/**
 * \brief   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.
 *
 * \param buf   buffer to use as heap
 * \param len   size of the buffer
 */

Func mbedtls_memory_buffer_alloc_free

void mbedtls_memory_buffer_alloc_free( void );
/**
 * \brief   Free the mutex for thread-safety and clear remaining memory
 */

Func mbedtls_memory_buffer_set_verify

void mbedtls_memory_buffer_set_verify( int verify );
/**
 * \brief   Determine when the allocator should automatically verify the state
 *          of the entire chain of headers / meta-data.
 *          (Default: MBEDTLS_MEMORY_VERIFY_NONE)
 *
 * \param verify    One of MBEDTLS_MEMORY_VERIFY_NONE, MBEDTLS_MEMORY_VERIFY_ALLOC,
 *                  MBEDTLS_MEMORY_VERIFY_FREE or MBEDTLS_MEMORY_VERIFY_ALWAYS
 */

Func mbedtls_memory_buffer_alloc_status

void mbedtls_memory_buffer_alloc_status( void );
/**
 * \brief   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.
 */

Func mbedtls_memory_buffer_alloc_max_get

void mbedtls_memory_buffer_alloc_max_get( size_t *max_used, size_t *max_blocks );
/**
 * \brief   Get the peak heap usage so far
 *
 * \param 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.
 * \param max_blocks    Peak number of blocks in use, including free and used
 */

Func mbedtls_memory_buffer_alloc_max_reset

void mbedtls_memory_buffer_alloc_max_reset( void );
/**
 * \brief   Reset peak statistics
 */

Func mbedtls_memory_buffer_alloc_cur_get

void mbedtls_memory_buffer_alloc_cur_get( size_t *cur_used, size_t *cur_blocks );
/**
 * \brief   Get the current heap usage
 *
 * \param 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.
 * \param cur_blocks    Current number of blocks in use, including free and used
 */

Func mbedtls_memory_buffer_alloc_verify

int mbedtls_memory_buffer_alloc_verify( void );
/**
 * \brief   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).
 *
 * \return             0 if verified, 1 otherwise
 */

Func mbedtls_memory_buffer_alloc_self_test

int mbedtls_memory_buffer_alloc_self_test( int verbose );
/**
 * \brief          Checkup routine
 *
 * \return         0 if successful, or 1 if a test failed
 */

Vars

Consts

Types

Typedefs