home *** CD-ROM | disk | FTP | other *** search
/ C Programming Starter Kit 2.0 / SamsPublishing-CProgrammingStarterKit-v2.0-Win31.iso / bc45 / inc.pak / SETJMP.H < prev    next >
Encoding:
C/C++ Source or Header  |  1997-07-24  |  1.8 KB  |  103 lines

  1. /*  setjmp.h
  2.  
  3.     Defines typedef and functions for setjmp/longjmp.
  4.  
  5. */
  6.  
  7. /*
  8.  *      C/C++ Run Time Library - Version 6.5
  9.  *
  10.  *      Copyright (c) 1987, 1994 by Borland International
  11.  *      All Rights Reserved.
  12.  *
  13.  */
  14.  
  15. #ifndef __SETJMP_H
  16. #define __SETJMP_H
  17.  
  18. #if !defined(___DEFS_H)
  19. #include <_defs.h>
  20. #endif
  21.  
  22. #ifdef __cplusplus
  23. extern "C" {
  24. #endif
  25.  
  26.  
  27. #if !defined(RC_INVOKED)
  28.  
  29. #if defined(__STDC__)
  30. #pragma warn -nak
  31. #endif
  32.  
  33. #pragma option -a-
  34.  
  35. #endif  /* !RC_INVOKED */
  36.  
  37.  
  38. #if !defined(__FLAT__)
  39.  
  40. typedef struct __jmp_buf {
  41.     unsigned    j_sp;
  42.     unsigned    j_ss;
  43.     unsigned    j_flag;
  44.     unsigned    j_cs;
  45.     unsigned    j_ip;
  46.     unsigned    j_bp;
  47.     unsigned    j_di;
  48.     unsigned    j_es;
  49.     unsigned    j_si;
  50.     unsigned    j_ds;
  51.  
  52. #if !defined(__TINY__)    
  53.     unsigned    j_excep;
  54.     unsigned    j_context;
  55. #endif  /* !__TINY__ */
  56.  
  57. }   jmp_buf[1];
  58.  
  59. #if !defined( _Windows )
  60. void    _CType longjmp(jmp_buf __jmpb, int __retval);
  61. int     _CType setjmp(jmp_buf __jmpb);
  62. #else
  63. void __far __pascal longjmp( struct __jmp_buf __far *__jmpb, int __retval );
  64. int __far __pascal setjmp( struct __jmp_buf __far *__jmpb);
  65. #endif
  66.  
  67. #else    /* defined __FLAT__ */
  68.  
  69. typedef struct __jmp_buf {
  70.     unsigned    j_ebp;
  71.     unsigned    j_ebx;
  72.     unsigned    j_edi;
  73.     unsigned    j_esi;
  74.     unsigned    j_esp;
  75.     unsigned    j_ret;
  76.     unsigned    j_excep;
  77.     unsigned    j_context;
  78. }   jmp_buf[1];
  79.  
  80. void    _RTLENTRYF _EXPFUNC longjmp(jmp_buf __jmpb, int __retval);
  81. int     _RTLENTRYF _EXPFUNC setjmp(jmp_buf __jmpb);
  82.  
  83. #endif  /* __FLAT__ */
  84.  
  85. #ifdef __cplusplus
  86. }
  87. #endif
  88.  
  89.  
  90. #if !defined(RC_INVOKED)
  91.  
  92. #pragma option -a.  /* restore default packing */
  93.  
  94. #if defined(__STDC__)
  95. #pragma warn .nak
  96. #endif
  97.  
  98. #endif  /* !RC_INVOKED */
  99.  
  100.  
  101. #endif  /* __SETJMP_H */
  102.  
  103.