110 lines
2.8 KiB
C++
110 lines
2.8 KiB
C++
/* signal.h
|
|
|
|
Definitions for ANSI defined signaling capability
|
|
|
|
*/
|
|
|
|
/*
|
|
* C/C++ Run Time Library - Version 10.0
|
|
*
|
|
* Copyright (c) 1988, 2000 by Inprise Corporation
|
|
* All Rights Reserved.
|
|
*
|
|
*/
|
|
|
|
/* $Revision: 9.5 $ */
|
|
|
|
#ifndef __SIGNAL_H
|
|
#define __SIGNAL_H
|
|
|
|
#ifndef ___STDDEF_H
|
|
#include <_stddef.h>
|
|
#endif
|
|
|
|
#if !defined(RC_INVOKED)
|
|
|
|
#if defined(__STDC__)
|
|
#pragma warn -nak
|
|
#endif
|
|
|
|
#endif /* !RC_INVOKED */
|
|
|
|
/* _SIGCONTEXT contains exception info for WIN32 exceptions that were caught
|
|
and turned into signals. There will always be three 32-bit parameters
|
|
passed to the user's signal handler. Unused parameters will be 0. The
|
|
_PSIGCONTEXT parameter will always be the last (third) parameter.
|
|
*/
|
|
|
|
typedef struct
|
|
{
|
|
struct _EXCEPTION_RECORD * _pexecptionrecord; /* defined in WINNT.H */
|
|
struct _CONTEXT * _pcontext; /* defined in WINNT.H */
|
|
unsigned long _result; /* return value for the SEH */
|
|
} _SIGCONTEXT, *_PSIGCONTEXT;
|
|
|
|
#ifdef __cplusplus
|
|
namespace std {
|
|
#endif /* __cplusplus */
|
|
|
|
typedef int sig_atomic_t; /* Atomic entity type (ANSI) */
|
|
|
|
#ifdef __cplusplus
|
|
typedef void _USERENTRY (_EXPFUNC * _CatcherPTR)(int);
|
|
#else
|
|
typedef void _USERENTRY (_EXPFUNC * _CatcherPTR)();
|
|
#endif
|
|
|
|
#define SIG_DFL ((_CatcherPTR)0) /* Default action */
|
|
#define SIG_IGN ((_CatcherPTR)1) /* Ignore action */
|
|
#define SIG_ERR ((_CatcherPTR)-1) /* Error return */
|
|
|
|
#define SIGABRT 22
|
|
#define SIGFPE 8 /* Floating point trap */
|
|
#define SIGILL 4 /* Illegal instruction */
|
|
#define SIGINT 2
|
|
#define SIGSEGV 11 /* Memory access violation */
|
|
#define SIGTERM 15
|
|
#define SIGUSR1 16 /* User-defined signal 1 */
|
|
#define SIGUSR2 17 /* User-defined signal 2 */
|
|
#define SIGUSR3 20 /* User-defined signal 3 */
|
|
#define SIGBREAK 21 /* Control-Break interrupt */
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
int _RTLENTRY _EXPFUNC raise(int __sig);
|
|
#ifdef __cplusplus
|
|
void (_USERENTRY * _RTLENTRY _EXPFUNC32 signal(int __sig, void (_USERENTRY * __func)(int))) (int);
|
|
}
|
|
#else
|
|
void (_USERENTRY * _RTLENTRY _EXPFUNC32 signal(int __sig, void (_USERENTRY * __func)())) (int);
|
|
#endif
|
|
|
|
#if !defined(__STDC__)
|
|
#define NSIG 23 /* highest defined signal no. + 1 */
|
|
#endif
|
|
|
|
|
|
#if !defined(RC_INVOKED)
|
|
|
|
#if defined(__STDC__)
|
|
#pragma warn .nak
|
|
#endif
|
|
|
|
#endif /* !RC_INVOKED */
|
|
|
|
#ifdef __cplusplus
|
|
} // std
|
|
#endif /* __cplusplus */
|
|
|
|
|
|
#endif /* __SIGNAL_H */
|
|
|
|
#if defined(__cplusplus) && !defined(__USING_CNAME__) && !defined(__SIGNAL_H_USING_LIST)
|
|
#define __SIGNAL_H_USING_LIST
|
|
using std::_CatcherPTR;
|
|
using std::sig_atomic_t;
|
|
using std::raise;
|
|
using std::signal;
|
|
#endif /* __USING_CNAME__ */
|