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