setjmp.h 753 B

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