home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / famapi.zip / INCLUDE.ZIP / SETJMP.H < prev    next >
C/C++ Source or Header  |  1993-06-13  |  962b  |  44 lines

  1. //
  2. //      **************************************************************
  3. //       JdeBP C++ Library Routines      General Public Licence v1.00
  4. //          Copyright (c) 1991,1992  Jonathan de Boyne Pollard
  5. //      **************************************************************
  6. //
  7. //  NON-LOCAL GOTO (ANSI and POSIX)
  8. //
  9.  
  10. #if !defined(___STDDEF_H_INCLUDED)
  11. #include <_stddef.h>
  12. #endif
  13.  
  14. #define _JBLEN  9  /* bp, di, si, sp, ret addr, ds */
  15.  
  16. #ifndef _JMP_BUF_DEFINED
  17. typedef  int  jmp_buf[_JBLEN];
  18. #define _JMP_BUF_DEFINED
  19. #endif
  20.  
  21. #if _POSIX1_SOURCE > 0
  22.  
  23. #ifndef _SIGJMP_BUF_DEFINED
  24. typedef  struct {
  25.     jmp_buf env ;
  26.     _Sigmask_t  mask ;
  27. } sigjmp_buf;
  28. #define _SIGJMP_BUF_DEFINED
  29. #endif
  30.  
  31. #endif
  32.  
  33. extern "C" {
  34.  
  35. int     _CDECL  setjmp  (jmp_buf) ;
  36. void    _CDECL  longjmp (jmp_buf, int) ;
  37.  
  38. #if _POSIX1_SOURCE > 0
  39. int     _CDECL  sigsetjmp   (sigjmp_buf, int) ;
  40. int     _CDECL  siglongjmp  (sigjmp_buf, int) ;
  41. #endif
  42.  
  43. }
  44.