#ifndef _SETJMP_H #define _SETJMP_H #ifdef __cplusplus extern "C" { #endif #include #include #if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \ || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) \ || defined(_BSD_SOURCE) typedef struct __sigjmp_buf { jmp_buf __jb; unsigned long __fl; unsigned long __ss[128/sizeof(long)]; } sigjmp_buf[1]; int sigsetjmp (sigjmp_buf, int); _Noreturn void siglongjmp (sigjmp_buf, int); #endif #if defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) \ || defined(_BSD_SOURCE) int _setjmp (jmp_buf); _Noreturn void _longjmp (jmp_buf, int); #endif int setjmp (jmp_buf); _Noreturn void longjmp (jmp_buf, int); #define setjmp setjmp #define longjmp longjmp #ifdef __cplusplus } #endif #endif