firmware
IEM Firmware Documentation
|
Implementation of newlib lock interface. More...
#include <cmsis_compiler.h>
#include <newlib.h>
#include <stdatomic.h>
#include "stm32_lock.h"
#include <reent.h>
Data Structures | |
struct | CxaGuardObject_t |
Functions | |
__WEAK void | Error_Handler (void) |
Global Error_Handler. | |
void | __malloc_lock () |
Acquire malloc lock. | |
void | __malloc_unlock () |
Release malloc lock. | |
void | __env_lock (struct _reent *reent) |
Acquire env lock. | |
void | __env_unlock (struct _reent *reent) |
Release env lock. | |
void | __tz_lock () |
Acquire tz lock. | |
void | __tz_unlock () |
Release tz lock. | |
int | __cxa_guard_acquire (CxaGuardObject_t *guard_object) |
Acquire __cxa_guard mutex. | |
void | __cxa_guard_abort (CxaGuardObject_t *guard_object) |
Abort __cxa_guard mutex. | |
void | __cxa_guard_release (CxaGuardObject_t *guard_object) |
Release __cxa_guard mutex. |
Variables | |
static LockingData_t | __lock___malloc_recursive_mutex = LOCKING_DATA_INIT |
static LockingData_t | __lock___env_recursive_mutex = LOCKING_DATA_INIT |
static LockingData_t | __lock___tz_mutex = LOCKING_DATA_INIT |
static LockingData_t | __cxa_guard_mutex = LOCKING_DATA_INIT |
Implementation of newlib lock interface.
This file implements locking glue necessary to protect C library functions and initialization of local static objects in C++. Lock strategies are defined in stm32_lock.h that implements different level of thread-safety.
For more information about which C functions need which of these low level functions, please consult the newlib libc manual, see https://sourceware.org/newlib/libc.html
For more information about the one-time construction API for C++, see https://itanium-cxx-abi.github.io/cxx-abi/abi.html#once-ctor
This software component is licensed by ST under BSD 3-Clause license, the "License"; You may not use this file except in compliance with the License. You may obtain a copy of the License at: opensource.org/licenses/BSD-3-Clause
__WEAK void Error_Handler | ( | void | ) |
Global Error_Handler.
This function is executed in case of error occurrence.