RetroArch
Macros | Functions
memory_buffer_alloc.h File Reference

Buffer-based memory allocator. More...

#include "config.h"
#include <stddef.h>
Include dependency graph for memory_buffer_alloc.h:

Go to the source code of this file.

Macros

#define MBEDTLS_MEMORY_VERIFY_NONE   0
 
#define MBEDTLS_MEMORY_VERIFY_ALLOC   (1 << 0)
 
#define MBEDTLS_MEMORY_VERIFY_FREE   (1 << 1)
 
#define MBEDTLS_MEMORY_VERIFY_ALWAYS   (MBEDTLS_MEMORY_VERIFY_ALLOC | MBEDTLS_MEMORY_VERIFY_FREE)
 
SECTION: Module settings

The configuration options you can set for this module are in this section. Either change them in config.h or define them on the compiler command line.

#define MBEDTLS_MEMORY_ALIGN_MULTIPLE   4
 

Functions

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) More...
 
void mbedtls_memory_buffer_alloc_free (void)
 Free the mutex for thread-safety and clear remaining memory. More...
 
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) More...
 
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. More...
 
int mbedtls_memory_buffer_alloc_self_test (int verbose)
 Checkup routine. More...
 

Detailed Description

Buffer-based memory allocator.

Copyright (C) 2006-2015, ARM Limited, All Rights Reserved SPDX-License-Identifier: Apache-2.0

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

This file is part of mbed TLS (https://tls.mbed.org)

Macro Definition Documentation

◆ MBEDTLS_MEMORY_ALIGN_MULTIPLE

#define MBEDTLS_MEMORY_ALIGN_MULTIPLE   4

Align on multiples of this value

◆ MBEDTLS_MEMORY_VERIFY_ALLOC

#define MBEDTLS_MEMORY_VERIFY_ALLOC   (1 << 0)

◆ MBEDTLS_MEMORY_VERIFY_ALWAYS

#define MBEDTLS_MEMORY_VERIFY_ALWAYS   (MBEDTLS_MEMORY_VERIFY_ALLOC | MBEDTLS_MEMORY_VERIFY_FREE)

◆ MBEDTLS_MEMORY_VERIFY_FREE

#define MBEDTLS_MEMORY_VERIFY_FREE   (1 << 1)

◆ MBEDTLS_MEMORY_VERIFY_NONE

#define MBEDTLS_MEMORY_VERIFY_NONE   0

Function Documentation

◆ mbedtls_memory_buffer_alloc_free()

void mbedtls_memory_buffer_alloc_free ( void  )

Free the mutex for thread-safety and clear remaining memory.

◆ mbedtls_memory_buffer_alloc_init()

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
bufbuffer to use as heap
lensize of the buffer

◆ mbedtls_memory_buffer_alloc_self_test()

int mbedtls_memory_buffer_alloc_self_test ( int  verbose)

Checkup routine.

Returns
0 if successful, or 1 if a test failed

◆ mbedtls_memory_buffer_alloc_verify()

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

◆ mbedtls_memory_buffer_set_verify()

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
verifyOne of MBEDTLS_MEMORY_VERIFY_NONE, MBEDTLS_MEMORY_VERIFY_ALLOC, MBEDTLS_MEMORY_VERIFY_FREE or MBEDTLS_MEMORY_VERIFY_ALWAYS