F439_CPP_TX-RX_LoRa_Project
Loading...
Searching...
No Matches
newlib_lock_glue.c File Reference

Implementation of newlib lock interface. More...

#include <cmsis_compiler.h>
#include <newlib.h>
#include <stdatomic.h>
#include "stm32_lock.h"
#include <reent.h>
Include dependency graph for newlib_lock_glue.c:

Data Structures

struct  __attribute__
 

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.
 

Detailed Description

Implementation of newlib lock interface.

Author
STMicroelectronics

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

Attention

Copyright (c) 2025 STMicroelectronics. All rights reserved.

This software is licensed under terms that can be found in the LICENSE file in the root directory of this software component. If no LICENSE file comes with this software, it is provided AS-IS.

Function Documentation

◆ Error_Handler()

__WEAK void Error_Handler ( void )

Global Error_Handler.