1#ifndef __SIMPLE_LIBC_SETJMP_H__
2#define __SIMPLE_LIBC_SETJMP_H__
15#ifndef __SIMPLE_LIBC_SETJMP_VPLT_ONLY__
16# if defined(__CPU_X64__)
21typedef setjmp_float128 jmp_buf[16];
23# elif defined(__CPU_ARM__)
24typedef unsigned long long int jmp_buf[16];
26# error not supported, do not add to path, use setjmp from libc instead
30#if VSF_LINUX_APPLET_USE_LIBC_SETJMP == ENABLED
37# ifndef __VSF_APPLET__
42#if defined(__VSF_APPLET__) && (defined(__VSF_APPLET_LIB__) || defined(__VSF_APPLET_LINUX_LIBC_SETJMP_LIB__))\
43 && VSF_APPLET_CFG_ABI_PATCH != ENABLED && VSF_LINUX_APPLET_USE_LIBC_SETJMP == ENABLED
45#ifndef VSF_LINUX_APPLET_LIBC_SETJMP_VPLT
46# if VSF_LINUX_USE_APPLET == ENABLED
47# define VSF_LINUX_APPLET_LIBC_SETJMP_VPLT \
48 ((vsf_linux_libc_setjmp_vplt_t *)(VSF_LINUX_APPLET_VPLT->libc_setjmp_vplt))
50# define VSF_LINUX_APPLET_LIBC_SETJMP_VPLT \
51 ((vsf_linux_libc_setjmp_vplt_t *)vsf_vplt((void *)0))
55#define VSF_LINUX_APPLET_LIBC_SETJMP_ENTRY(__NAME) \
56 VSF_APPLET_VPLT_ENTRY_FUNC_ENTRY(VSF_LINUX_APPLET_LIBC_SETJMP_VPLT, __NAME)
57#define VSF_LINUX_APPLET_LIBC_SETJMP_IMP(...) \
58 VSF_APPLET_VPLT_ENTRY_FUNC_IMP(VSF_LINUX_APPLET_LIBC_SETJMP_VPLT, __VA_ARGS__)
60VSF_LINUX_APPLET_LIBC_SETJMP_IMP(
setjmp,
int, jmp_buf env) {
61 return VSF_LINUX_APPLET_LIBC_SETJMP_ENTRY(
setjmp)(env);
63VSF_LINUX_APPLET_LIBC_SETJMP_IMP(
longjmp,
void, jmp_buf env,
int val) {
64 VSF_LINUX_APPLET_LIBC_SETJMP_ENTRY(
longjmp)(env, val);
69#if defined(VSF_ARCH_SETJMP) && !defined(__VSF_APPLET__)
71# define setjmp VSF_ARCH_SETJMP
75#if defined(VSF_ARCH_LONGJMP) && !defined(__VSF_APPLET__)
77# define longjmp VSF_ARCH_LONGJMP
83#undef __SIMPLE_LIBC_SETJMP_VPLT_ONLY__
#define VSF_CAL_ALIGN(__N)
Definition __compiler.h:184
unsigned long long uint64_t
Definition stdint.h:11
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(setjmp)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(longjmp)
vsf_vplt_info_t info
Definition setjmp.h:32
void longjmp(jmp_buf env, int val)
__VSF_VPLT_DECORATOR__ vsf_linux_libc_setjmp_vplt_t vsf_linux_libc_setjmp_vplt
Definition vsf_linux_glibc.c:61
#define __VSF_VPLT_DECORATOR__
Definition vsf_cfg.h:93