home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1997 May / Pcwk0597.iso / borland / cb / setup / cbuilder / data.z / SETJMP.H < prev    next >
C/C++ Source or Header  |  1997-02-28  |  2KB  |  105 lines

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