| #ifndef SYSROOT_SETJMP_H_ |
| #define SYSROOT_SETJMP_H_ |
| |
| #ifdef __cplusplus |
| extern "C" { |
| #endif |
| |
| #include <features.h> |
| |
| #include <bits/setjmp.h> |
| |
| typedef struct __jmp_buf_tag { |
| __jmp_buf __jb; |
| unsigned long __fl; |
| unsigned long __ss[128 / sizeof(long)]; |
| } jmp_buf[1]; |
| |
| #if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) || defined(_XOPEN_SOURCE) || \ |
| defined(_GNU_SOURCE) || defined(_BSD_SOURCE) |
| typedef jmp_buf sigjmp_buf; |
| 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 |
| |
| #ifdef __cplusplus |
| } |
| #endif |
| |
| #endif // SYSROOT_SETJMP_H_ |