1 /* siginfo_t constants.  Stub version.
2    Copyright (C) 1997-2022 Free Software Foundation, Inc.
3    This file is part of the GNU C Library.
4 
5    The GNU C Library is free software; you can redistribute it and/or
6    modify it under the terms of the GNU Lesser General Public
7    License as published by the Free Software Foundation; either
8    version 2.1 of the License, or (at your option) any later version.
9 
10    The GNU C Library is distributed in the hope that it will be useful,
11    but WITHOUT ANY WARRANTY; without even the implied warranty of
12    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13    Lesser General Public License for more details.
14 
15    You should have received a copy of the GNU Lesser General Public
16    License along with the GNU C Library; if not, see
17    <https://www.gnu.org/licenses/>.  */
18 
19 #ifndef _BITS_SIGINFO_CONSTS_H
20 #define _BITS_SIGINFO_CONSTS_H 1
21 
22 /* Values for `si_code'.  Positive values are reserved for kernel-generated
23    signals.  */
24 enum
25 {
26   SI_ASYNCIO = -4,		/* Sent by AIO completion.  */
27 # define SI_ASYNCIO	SI_ASYNCIO
28   SI_MESGQ,			/* Sent by real time mesq state change.  */
29 # define SI_MESGQ	SI_MESGQ
30   SI_TIMER,			/* Sent by timer expiration.  */
31 # define SI_TIMER	SI_TIMER
32   SI_QUEUE,			/* Sent by sigqueue.  */
33 # define SI_QUEUE	SI_QUEUE
34   SI_USER			/* Sent by kill, sigsend, raise.  */
35 # define SI_USER	SI_USER
36 };
37 
38 
39 # if defined __USE_XOPEN_EXTENDED || defined __USE_XOPEN2K8
40 /* `si_code' values for SIGILL signal.  */
41 enum
42 {
43   ILL_ILLOPC = 1,		/* Illegal opcode.  */
44 #  define ILL_ILLOPC	ILL_ILLOPC
45   ILL_ILLOPN,			/* Illegal operand.  */
46 #  define ILL_ILLOPN	ILL_ILLOPN
47   ILL_ILLADR,			/* Illegal addressing mode.  */
48 #  define ILL_ILLADR	ILL_ILLADR
49   ILL_ILLTRP,			/* Illegal trap. */
50 #  define ILL_ILLTRP	ILL_ILLTRP
51   ILL_PRVOPC,			/* Privileged opcode.  */
52 #  define ILL_PRVOPC	ILL_PRVOPC
53   ILL_PRVREG,			/* Privileged register.  */
54 #  define ILL_PRVREG	ILL_PRVREG
55   ILL_COPROC,			/* Coprocessor error.  */
56 #  define ILL_COPROC	ILL_COPROC
57   ILL_BADSTK			/* Internal stack error.  */
58 #  define ILL_BADSTK	ILL_BADSTK
59 };
60 
61 /* `si_code' values for SIGFPE signal.  */
62 enum
63 {
64   FPE_INTDIV = 1,		/* Integer divide by zero.  */
65 #  define FPE_INTDIV	FPE_INTDIV
66   FPE_INTOVF,			/* Integer overflow.  */
67 #  define FPE_INTOVF	FPE_INTOVF
68   FPE_FLTDIV,			/* Floating point divide by zero.  */
69 #  define FPE_FLTDIV	FPE_FLTDIV
70   FPE_FLTOVF,			/* Floating point overflow.  */
71 #  define FPE_FLTOVF	FPE_FLTOVF
72   FPE_FLTUND,			/* Floating point underflow.  */
73 #  define FPE_FLTUND	FPE_FLTUND
74   FPE_FLTRES,			/* Floating point inexact result.  */
75 #  define FPE_FLTRES	FPE_FLTRES
76   FPE_FLTINV,			/* Floating point invalid operation.  */
77 #  define FPE_FLTINV	FPE_FLTINV
78   FPE_FLTSUB			/* Subscript out of range.  */
79 #  define FPE_FLTSUB	FPE_FLTSUB
80 };
81 
82 /* `si_code' values for SIGSEGV signal.  */
83 enum
84 {
85   SEGV_MAPERR = 1,		/* Address not mapped to object.  */
86 #  define SEGV_MAPERR	SEGV_MAPERR
87   SEGV_ACCERR			/* Invalid permissions for mapped object.  */
88 #  define SEGV_ACCERR	SEGV_ACCERR
89 };
90 
91 /* `si_code' values for SIGBUS signal.  */
92 enum
93 {
94   BUS_ADRALN = 1,		/* Invalid address alignment.  */
95 #  define BUS_ADRALN	BUS_ADRALN
96   BUS_ADRERR,			/* Non-existant physical address.  */
97 #  define BUS_ADRERR	BUS_ADRERR
98   BUS_OBJERR			/* Object specific hardware error.  */
99 #  define BUS_OBJERR	BUS_OBJERR
100 };
101 # endif
102 
103 # ifdef __USE_XOPEN_EXTENDED
104 /* `si_code' values for SIGTRAP signal.  */
105 enum
106 {
107   TRAP_BRKPT = 1,		/* Process breakpoint.  */
108 #  define TRAP_BRKPT	TRAP_BRKPT
109   TRAP_TRACE			/* Process trace trap.  */
110 #  define TRAP_TRACE	TRAP_TRACE
111 };
112 # endif
113 
114 # if defined __USE_XOPEN_EXTENDED || defined __USE_XOPEN2K8
115 /* `si_code' values for SIGCHLD signal.  */
116 enum
117 {
118   CLD_EXITED = 1,		/* Child has exited.  */
119 #  define CLD_EXITED	CLD_EXITED
120   CLD_KILLED,			/* Child was killed.  */
121 #  define CLD_KILLED	CLD_KILLED
122   CLD_DUMPED,			/* Child terminated abnormally.  */
123 #  define CLD_DUMPED	CLD_DUMPED
124   CLD_TRAPPED,			/* Traced child has trapped.  */
125 #  define CLD_TRAPPED	CLD_TRAPPED
126   CLD_STOPPED,			/* Child has stopped.  */
127 #  define CLD_STOPPED	CLD_STOPPED
128   CLD_CONTINUED			/* Stopped child has continued.  */
129 #  define CLD_CONTINUED	CLD_CONTINUED
130 };
131 
132 /* `si_code' values for SIGPOLL signal.  */
133 enum
134 {
135   POLL_IN = 1,			/* Data input available.  */
136 #  define POLL_IN	POLL_IN
137   POLL_OUT,			/* Output buffers available.  */
138 #  define POLL_OUT	POLL_OUT
139   POLL_MSG,			/* Input message available.   */
140 #  define POLL_MSG	POLL_MSG
141   POLL_ERR,			/* I/O error.  */
142 #  define POLL_ERR	POLL_ERR
143   POLL_PRI,			/* High priority input available.  */
144 #  define POLL_PRI	POLL_PRI
145   POLL_HUP			/* Device disconnected.  */
146 #  define POLL_HUP	POLL_HUP
147 };
148 # endif
149 
150 #endif
151