setjmp.h 714 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. #ifndef _SETJMP_H
  2. #define _SETJMP_H
  3. #ifdef __cplusplus
  4. extern "C" {
  5. #endif
  6. #include <bits/setjmp.h>
  7. #if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \
  8. || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) \
  9. || defined(_BSD_SOURCE)
  10. typedef unsigned long sigjmp_buf[(128+sizeof(jmp_buf))/sizeof(long)];
  11. #ifdef _GNU_SOURCE
  12. #define jmp_buf sigjmp_buf
  13. #endif
  14. int sigsetjmp (sigjmp_buf, int);
  15. void siglongjmp (sigjmp_buf, int);
  16. #endif
  17. #if defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) \
  18. || defined(_BSD_SOURCE)
  19. int _setjmp (jmp_buf);
  20. void _longjmp (jmp_buf, int);
  21. #endif
  22. int setjmp (jmp_buf);
  23. void longjmp (jmp_buf, int);
  24. #define setjmp setjmp
  25. #define longjmp longjmp
  26. #ifdef __cplusplus
  27. }
  28. #endif
  29. #endif