1#ifndef __SIMPLE_LIBC_SETJMP_H__
2#define __SIMPLE_LIBC_SETJMP_H__
11#ifndef __SIMPLE_LIBC_SETJMP_VPLT_ONLY__
12# if defined(__CPU_X64__)
17typedef setjmp_float128 jmp_buf[16];
19# elif defined(__CPU_ARM__)
20typedef unsigned long long int jmp_buf[16];
22# error not supported, do not add to path, use setjmp from libc instead
26#if VSF_LINUX_APPLET_USE_LIBC_SETJMP == ENABLED
33# ifndef __VSF_APPLET__
38#if defined(__VSF_APPLET__) && (defined(__VSF_APPLET_LIB__) || defined(__VSF_APPLET_LINUX_LIBC_SETJMP_LIB__))\
39 && VSF_APPLET_CFG_ABI_PATCH != ENABLED && VSF_LINUX_APPLET_USE_LIBC_SETJMP == ENABLED
41#ifndef VSF_LINUX_APPLET_LIBC_SETJMP_VPLT
42# if VSF_LINUX_USE_APPLET == ENABLED
43# define VSF_LINUX_APPLET_LIBC_SETJMP_VPLT \
44 ((vsf_linux_libc_setjmp_vplt_t *)(VSF_LINUX_APPLET_VPLT->libc_setjmp_vplt))
46# define VSF_LINUX_APPLET_LIBC_SETJMP_VPLT \
47 ((vsf_linux_libc_setjmp_vplt_t *)vsf_vplt((void *)0))
51#define VSF_LINUX_APPLET_LIBC_SETJMP_ENTRY(__NAME) \
52 VSF_APPLET_VPLT_ENTRY_FUNC_ENTRY(VSF_LINUX_APPLET_LIBC_SETJMP_VPLT, __NAME)
53#define VSF_LINUX_APPLET_LIBC_SETJMP_IMP(...) \
54 VSF_APPLET_VPLT_ENTRY_FUNC_IMP(VSF_LINUX_APPLET_LIBC_SETJMP_VPLT, __VA_ARGS__)
56VSF_LINUX_APPLET_LIBC_SETJMP_IMP(
setjmp,
int, jmp_buf env) {
57 return VSF_LINUX_APPLET_LIBC_SETJMP_ENTRY(
setjmp)(env);
59VSF_LINUX_APPLET_LIBC_SETJMP_IMP(
longjmp,
void, jmp_buf env,
int val) {
60 VSF_LINUX_APPLET_LIBC_SETJMP_ENTRY(
longjmp)(env, val);
65#if defined(VSF_ARCH_SETJMP) && !defined(__VSF_APPLET__)
67# define setjmp VSF_ARCH_SETJMP
71#if defined(VSF_ARCH_LONGJMP) && !defined(__VSF_APPLET__)
73# define longjmp VSF_ARCH_LONGJMP
79#undef __SIMPLE_LIBC_SETJMP_VPLT_ONLY__
#define VSF_CAL_ALIGN(__N)
Definition __compiler.h:179
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:56
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:28
#define __VSF_VPLT_DECORATOR__
Definition vsf_cfg.h:93