1#ifndef _SETJMP_H 2#define _SETJMP_H 3 4#ifdef __cplusplus 5extern "C" { 6#endif 7 8#include <features.h> 9 10#include <bits/setjmp.h> 11 12typedef 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) 21typedef jmp_buf sigjmp_buf; 22int 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) 28int _setjmp (jmp_buf); 29_Noreturn void _longjmp (jmp_buf, int); 30#endif 31 32int 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