#ifndef _SETJMP_H | |
#define _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 |