#ifndef _SETJMP_H #define _SETJMP_H #ifdef __cplusplus extern "C" { #endif #include #if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \ || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) typedef unsigned long sigjmp_buf[(128+sizeof(jmp_buf))/sizeof(long)]; #ifdef _GNU_SOURCE #define jmp_buf sigjmp_buf #endif int sigsetjmp (sigjmp_buf, int); void siglongjmp (sigjmp_buf, int); #endif #if defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) int _setjmp (jmp_buf); void _longjmp (jmp_buf, int); #endif int setjmp (jmp_buf); void longjmp (jmp_buf, int); #define setjmp setjmp #define longjmp longjmp #ifdef __cplusplus } #endif #endif