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

  1. /*  signal.h
  2.  
  3.     Definitions for ANSI defined signaling capability
  4.  
  5. */
  6.  
  7. /*
  8.  *      C/C++ Run Time Library - Version 10.0
  9.  *
  10.  *      Copyright (c) 1988, 2000 by Inprise Corporation
  11.  *      All Rights Reserved.
  12.  *
  13.  */
  14.  
  15. /* $Revision:   9.5  $ */
  16.  
  17. #ifndef __SIGNAL_H
  18. #define __SIGNAL_H
  19.  
  20. #ifndef ___STDDEF_H
  21. #include <_stddef.h>
  22. #endif
  23.  
  24. #if !defined(RC_INVOKED)
  25.  
  26. #if defined(__STDC__)
  27. #pragma warn -nak
  28. #endif
  29.  
  30. #endif  /* !RC_INVOKED */
  31.  
  32. /* _SIGCONTEXT contains exception info for WIN32 exceptions that were caught
  33.    and turned into signals.  There will always be three 32-bit parameters
  34.    passed to the user's signal handler.  Unused parameters will be 0.  The
  35.    _PSIGCONTEXT parameter will always be the last (third) parameter.
  36.  */
  37.  
  38. typedef struct
  39. {
  40.   struct _EXCEPTION_RECORD * _pexecptionrecord; /* defined in WINNT.H */
  41.   struct _CONTEXT *          _pcontext;         /* defined in WINNT.H */
  42.   unsigned long              _result;           /* return value for the SEH */
  43. } _SIGCONTEXT, *_PSIGCONTEXT;
  44.  
  45. #ifdef __cplusplus
  46.   namespace std {
  47. #endif /* __cplusplus */
  48.  
  49. typedef int sig_atomic_t;   /* Atomic entity type (ANSI) */
  50.  
  51. #ifdef __cplusplus
  52. typedef void _USERENTRY (_EXPFUNC * _CatcherPTR)(int);
  53. #else
  54. typedef void _USERENTRY (_EXPFUNC * _CatcherPTR)();
  55. #endif
  56.  
  57. #define SIG_DFL ((_CatcherPTR)0)   /* Default action   */
  58. #define SIG_IGN ((_CatcherPTR)1)   /* Ignore action    */
  59. #define SIG_ERR ((_CatcherPTR)-1)  /* Error return     */
  60.  
  61. #define SIGABRT         22
  62. #define SIGFPE           8              /* Floating point trap  */
  63. #define SIGILL           4              /* Illegal instruction  */
  64. #define SIGINT           2
  65. #define SIGSEGV         11              /* Memory access violation */
  66. #define SIGTERM         15
  67. #define SIGUSR1         16              /* User-defined signal 1 */
  68. #define SIGUSR2         17              /* User-defined signal 2 */
  69. #define SIGUSR3         20              /* User-defined signal 3 */
  70. #define SIGBREAK        21              /* Control-Break interrupt */
  71.  
  72. #ifdef __cplusplus
  73. extern "C" {
  74. #endif
  75. int _RTLENTRY _EXPFUNC raise(int __sig);
  76. #ifdef __cplusplus
  77. void (_USERENTRY * _RTLENTRY _EXPFUNC32 signal(int __sig, void (_USERENTRY * __func)(int))) (int);
  78. }
  79. #else
  80. void (_USERENTRY * _RTLENTRY _EXPFUNC32 signal(int __sig, void (_USERENTRY * __func)())) (int);
  81. #endif
  82.  
  83. #if !defined(__STDC__)
  84. #define NSIG   23      /* highest defined signal no. + 1 */
  85. #endif
  86.  
  87.  
  88. #if !defined(RC_INVOKED)
  89.  
  90. #if defined(__STDC__)
  91. #pragma warn .nak
  92. #endif
  93.  
  94. #endif  /* !RC_INVOKED */
  95.  
  96. #ifdef __cplusplus
  97. } // std
  98. #endif /* __cplusplus */
  99.  
  100.  
  101. #endif  /* __SIGNAL_H */
  102.  
  103. #if defined(__cplusplus) && !defined(__USING_CNAME__) && !defined(__SIGNAL_H_USING_LIST)
  104. #define __SIGNAL_H_USING_LIST
  105.      using std::_CatcherPTR;
  106.      using std::sig_atomic_t;
  107.      using std::raise;
  108.      using std::signal;
  109. #endif /* __USING_CNAME__ */
  110.