mirror of
https://github.com/OpenAMP/libmetal.git
synced 2026-09-29 14:24:01 +08:00
The header files including must be outside of the extern "C" { statement.
To be able to be included from C++ code.
Else such error can occur (reproduce on STM32MP1Cube distribution)
gcc/arm-none-eabi/include/c++/10.2.1/atomic:1467:3: error: template
with C linkage
1467 | template<typename _ITp>
| ^~~~~~~~
In file included from STM32CubeMP1/Middlewares/Third_Party/OpenAMP/
open-amp/lib/include/openamp/rpmsg.h:16,
from STM32CubeMP1/Middlewares/Third_Party/OpenAMP/
open-amp/lib/include/openamp/open_amp.h:11,
from empty_main.cpp:1:
STM32CubeMP1/Middlewares/Third_Party/OpenAMP/libmetal/lib/include/
metal/mutex.h:16:1: note: 'extern "C"' linkage
started here
16 | extern "C" {
| ^~~~~~~~~~
Signed-off-by: Arnaud Pouliquen <arnaud.pouliquen@foss.st.com>
48 lines
938 B
C
48 lines
938 B
C
/*
|
|
* Copyright (c) 2016, Xilinx Inc. and Contributors. All rights reserved.
|
|
*
|
|
* SPDX-License-Identifier: BSD-3-Clause
|
|
*/
|
|
|
|
/*
|
|
* @file alloc.h
|
|
* @brief Memory allocation handling primitives for libmetal.
|
|
*/
|
|
|
|
#ifndef __METAL_ALLOC__H__
|
|
#define __METAL_ALLOC__H__
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
/** \defgroup Memory Allocation Interfaces
|
|
* @{
|
|
*/
|
|
|
|
/**
|
|
* @brief allocate requested memory size
|
|
* return a pointer to the allocated memory
|
|
*
|
|
* @param[in] size size in byte of requested memory
|
|
* @return memory pointer, or 0 if it failed to allocate
|
|
*/
|
|
static inline void *metal_allocate_memory(unsigned int size);
|
|
|
|
/**
|
|
* @brief free the memory previously allocated
|
|
*
|
|
* @param[in] ptr pointer to memory
|
|
*/
|
|
static inline void metal_free_memory(void *ptr);
|
|
|
|
/** @} */
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#include <metal/system/@PROJECT_SYSTEM@/alloc.h>
|
|
|
|
#endif /* __METAL_ALLOC__H__ */
|