setjmp.h 700 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  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 struct {
  11. jmp_buf __jb;
  12. unsigned long __fl;
  13. unsigned long __ss[128/sizeof(long)];
  14. } sigjmp_buf[1];
  15. int sigsetjmp (sigjmp_buf, int);
  16. void siglongjmp (sigjmp_buf, int);
  17. #endif
  18. #if defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) \
  19. || defined(_BSD_SOURCE)
  20. int _setjmp (jmp_buf);
  21. void _longjmp (jmp_buf, int);
  22. #endif
  23. int setjmp (jmp_buf);
  24. void longjmp (jmp_buf, int);
  25. #define setjmp setjmp
  26. #define longjmp longjmp
  27. #ifdef __cplusplus
  28. }
  29. #endif
  30. #endif