home *** CD-ROM | disk | FTP | other *** search
/ Magazyn Internet 2000 May / MICD_2000_05.iso / CBuilder5 / INSTALL / DATA1.CAB / Program_Built_Files / Include / setjmp.h < prev    next >
C/C++ Source or Header  |  2000-02-01  |  2KB  |  84 lines

  1. /*  setjmp.h
  2.  
  3.     Defines typedef and functions for setjmp/longjmp.
  4.  
  5. */
  6.  
  7. /*
  8.  *      C/C++ Run Time Library - Version 10.0
  9.  *
  10.  *      Copyright (c) 1987, 2000 by Inprise Corporation
  11.  *      All Rights Reserved.
  12.  *
  13.  */
  14.  
  15. /* $Revision:   9.3  $ */
  16.  
  17. #ifndef __SETJMP_H
  18. #define __SETJMP_H
  19. #define _INC_SETJMP  /* MSC Guard name */
  20.  
  21. #if !defined(___DEFS_H)
  22. #include <_defs.h>
  23. #endif
  24.  
  25. #ifdef __cplusplus
  26.   namespace std {
  27. #endif /* __cplusplus */
  28.  
  29. #ifdef __cplusplus
  30. extern "C" {
  31. #endif
  32.  
  33. #if !defined(RC_INVOKED)
  34.  
  35. #if defined(__STDC__)
  36. #pragma warn -nak
  37. #endif
  38.  
  39. #pragma pack(push, 1)
  40.  
  41. #endif  /* !RC_INVOKED */
  42.  
  43. typedef struct __jmp_buf {
  44.     unsigned    j_ebp;
  45.     unsigned    j_ebx;
  46.     unsigned    j_edi;
  47.     unsigned    j_esi;
  48.     unsigned    j_esp;
  49.     unsigned    j_ret;
  50.     unsigned    j_excep;
  51.     unsigned    j_context;
  52. }   jmp_buf[1];
  53.  
  54. void    _RTLENTRYF _EXPFUNC longjmp(jmp_buf __jmpb, int __retval);
  55. int     _RTLENTRYF _EXPFUNC setjmp(jmp_buf __jmpb);
  56.  
  57. #ifdef __cplusplus
  58. }
  59. #endif
  60.  
  61. #if !defined(RC_INVOKED)
  62.  
  63. /* restore default packing */
  64. #pragma pack(pop)
  65.  
  66. #if defined(__STDC__)
  67. #pragma warn .nak
  68. #endif
  69.  
  70. #endif  /* !RC_INVOKED */
  71.  
  72. #ifdef __cplusplus
  73. } // std
  74. #endif /* __cplusplus */
  75.  
  76. #endif  /* __SETJMP_H */
  77.  
  78. #if defined(__cplusplus) && !defined(__USING_CNAME__) && !defined(__SETJMP_H_USING_LIST)
  79. #define __SETJMP_H_USING_LIST
  80.      using std::jmp_buf;
  81.      using std::longjmp;
  82.      using std::setjmp;
  83. #endif /* __USING_CNAME__ */
  84.