1/**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the mingw-w64 runtime package.
4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5 */
6#ifndef _INC_SIGNAL
7#define _INC_SIGNAL
8
9#include <crtdefs.h>
10#include <pthread_signal.h>
11
12#ifdef __cplusplus
13extern "C" {
14#endif
15
16#ifndef _SIG_ATOMIC_T_DEFINED
17#define _SIG_ATOMIC_T_DEFINED
18  typedef int sig_atomic_t;
19#endif
20
21#define NSIG 23
22
23#define SIGINT 2
24#define SIGILL 4
25#define SIGABRT_COMPAT 6
26#define SIGFPE 8
27#define SIGSEGV 11
28#define SIGTERM 15
29#define SIGBREAK 21
30#define SIGABRT 22       /* used by abort, replace SIGIOT in the future */
31#define SIGABRT2 22
32
33#ifdef _POSIX
34#define	SIGHUP	1	/* hangup */
35#define	SIGQUIT	3	/* quit */
36#define	SIGTRAP	5	/* trace trap (not reset when caught) */
37#define SIGIOT  6       /* IOT instruction */
38#define	SIGEMT	7	/* EMT instruction */
39#define	SIGKILL	9	/* kill (cannot be caught or ignored) */
40#define	SIGBUS	10	/* bus error */
41#define	SIGSYS	12	/* bad argument to system call */
42#define	SIGPIPE	13	/* write on a pipe with no one to read it */
43#ifdef __USE_MINGW_ALARM
44#define	SIGALRM	14	/* alarm clock */
45#endif
46#endif
47
48  typedef	void (*__p_sig_fn_t)(int);
49
50#define SIG_DFL (__p_sig_fn_t)0
51#define SIG_IGN (__p_sig_fn_t)1
52#define SIG_GET (__p_sig_fn_t)2
53#define SIG_SGE (__p_sig_fn_t)3
54#define SIG_ACK (__p_sig_fn_t)4
55#define SIG_ERR (__p_sig_fn_t)-1
56
57  extern void **__cdecl __pxcptinfoptrs(void);
58#define _pxcptinfoptrs (*__pxcptinfoptrs())
59
60  __p_sig_fn_t __cdecl signal(int _SigNum,__p_sig_fn_t _Func);
61  int __cdecl raise(int _SigNum);
62
63#ifdef __cplusplus
64}
65#endif
66#endif
67