1 #ifndef _SETJMP_H 2 #define _SETJMP_H 3 4 #ifdef __cplusplus 5 extern "C" { 6 #endif 7 8 #include <features.h> 9 10 #include <bits/setjmp.h> 11 12 typedef struct __jmp_buf_tag { 13 __jmp_buf __jb; 14 unsigned long __fl; 15 unsigned long __ss[128/sizeof(long)]; 16 } jmp_buf[1]; 17 18 #if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \ 19 || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) \ 20 || defined(_BSD_SOURCE) 21 typedef jmp_buf sigjmp_buf; 22 int sigsetjmp (sigjmp_buf, int); 23 _Noreturn void siglongjmp (sigjmp_buf, int); 24 #endif 25 26 #if defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) \ 27 || defined(_BSD_SOURCE) 28 int _setjmp (jmp_buf); 29 _Noreturn void _longjmp (jmp_buf, int); 30 #endif 31 32 int setjmp (jmp_buf); 33 _Noreturn void longjmp (jmp_buf, int); 34 35 #define setjmp setjmp 36 37 #ifdef __cplusplus 38 } 39 #endif 40 41 #endif 42