arch.h: Make _sinit/_einit as an offical interface

Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
This commit is contained in:
Xiang Xiao 2022-09-21 06:12:43 +08:00 committed by archer
parent a7bbd33f1b
commit 4c44c6f709
2 changed files with 10 additions and 15 deletions

View File

@ -96,6 +96,7 @@
typedef CODE void (*sig_deliver_t)(FAR struct tcb_s *tcb); typedef CODE void (*sig_deliver_t)(FAR struct tcb_s *tcb);
typedef CODE void (*phy_enable_t)(bool enable); typedef CODE void (*phy_enable_t)(bool enable);
typedef CODE void (*initializer_t)(void);
/**************************************************************************** /****************************************************************************
* Public Data * Public Data
@ -149,6 +150,15 @@ EXTERN volatile bool g_rtc_enabled;
#endif #endif
#ifdef CONFIG_HAVE_CXXINITIALIZE
/* _sinit and _einit are symbols exported by the linker script that mark the
* beginning and the end of the C++ initialization section.
*/
extern initializer_t _sinit;
extern initializer_t _einit;
#endif
/**************************************************************************** /****************************************************************************
* Public Function Prototypes * Public Function Prototypes
****************************************************************************/ ****************************************************************************/

View File

@ -31,25 +31,10 @@
#include "libc.h" #include "libc.h"
/****************************************************************************
* Private Types
****************************************************************************/
/* This type defines one entry in initialization array */
typedef CODE void (*initializer_t)(void);
/**************************************************************************** /****************************************************************************
* External References * External References
****************************************************************************/ ****************************************************************************/
/* _sinit and _einit are symbols exported by the linker script that mark the
* beginning and the end of the C++ initialization section.
*/
extern initializer_t _sinit;
extern initializer_t _einit;
#if defined(CONFIG_ARCH_SIM) && defined(CONFIG_HOST_MACOS) #if defined(CONFIG_ARCH_SIM) && defined(CONFIG_HOST_MACOS)
extern void macho_call_saved_init_funcs(void); extern void macho_call_saved_init_funcs(void);
#endif #endif