1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
|
typed-constant SIG_DFL {void(*)(int)}
typed-constant SIG_ERR {void(*)(int)}
#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX && !defined POSIX2008
typed-constant SIG_HOLD {void(*)(int)}
#endif
typed-constant SIG_IGN {void(*)(int)}
type sig_atomic_t
#if !defined ISO && !defined ISO99 && !defined ISO11
type sigset_t
#endif
#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX
type pid_t
#elif defined POSIX
# define pid_t __pid_t
# define uid_t __uid_t
#endif
#if defined XOPEN2K8 || defined POSIX2008
type size_t
type pthread_t
type uid_t
type mcontext_t
type ucontext_t
element ucontext_t {ucontext_t*} uc_link
element ucontext_t sigset_t uc_sigmask
element ucontext_t stack_t uc_stack
element ucontext_t mcontext_t uc_mcontext
type {struct timespec}
element {struct timespec} __time_t tv_sec
element {struct timespec} long tv_nsec
#endif
#if defined POSIX || defined UNIX98 || defined XOPEN2K8 || defined POSIX2008
element {union sigval} int sival_int
element {union sigval} {void*} sival_ptr
type {struct sigevent}
// Test the elements of the sigevent_t structure.
element {struct sigevent} int sigev_notify
element {struct sigevent} int sigev_signo
element {struct sigevent} {union sigval} sigev_value
element {struct sigevent} {void(*} sigev_notify_function )(union sigval)
element {struct sigevent} {pthread_attr_t*} sigev_notify_attributes
constant SIGEV_NONE
constant SIGEV_SIGNAL
constant SIGEV_THREAD
type {union sigval}
macro SIGRTMIN
macro SIGRTMAX
#endif
constant SIGABRT
constant SIGFPE
constant SIGILL
constant SIGINT
constant SIGSEGV
constant SIGTERM
function void (*signal (int, void(*)(int)))(int)
function int raise (int)
#if !defined ISO && !defined ISO99 && !defined ISO11
constant SIGALRM
constant SIGHUP
constant SIGIO
constant SIGKILL
constant SIGPIPE
constant SIGQUIT
constant SIGUSR1
constant SIGUSR2
constant SIGCHLD
constant SIGCONT
constant SIGSTOP
constant SIGTSTP
constant SIGTTIN
constant SIGTTOU
constant SIGBUS
constant SIGPOLL
constant SIGPROF
constant SIGSYS
# if !defined POSIX && !defined POSIX2008
constant SIGTRAP
# endif
constant SIGURG
constant SIGVTALRM
constant SIGXCPU
constant SIGXFSZ
type {struct sigaction}
element {struct sigaction} {void(*} sa_handler )(int)
element {struct sigaction} sigset_t sa_mask
element {struct sigaction} int sa_flags
element {struct sigaction} {void(*} sa_sigaction )(int, siginfo_t*, void*)
constant SA_NOCLDSTOP
constant SIG_BLOCK
constant SIG_UNBLOCK
constant SIG_SETMASK
# if !defined POSIX && !defined POSIX2008
constant SA_ONSTACK
# endif
# if !defined POSIX
constant SA_RESETHAND
constant SA_RESTART
constant SA_SIGINFO
constant SA_NOCLDWAIT
constant SA_NODEFER
# endif
# if !defined POSIX && !defined POSIX2008
constant SS_ONSTACK
constant SS_DISABLE
constant MINSIGSTKSZ
constant SIGSTKSZ
# endif
# if !defined POSIX
type ucontext_t
element ucontext_t {ucontext_t*} uc_link
element ucontext_t sigset_t uc_sigmask
element ucontext_t stack_t uc_stack
element ucontext_t mcontext_t uc_mcontext
type stack_t
element stack_t {void*} ss_sp
element stack_t size_t ss_size
element stack_t int ss_flags
type {struct sigstack}
element {struct sigstack} int ss_onstack
element {struct sigstack} {void*} ss_sp
# endif
type siginfo_t
element siginfo_t int si_signo
# if !defined POSIX && !defined POSIX2008
element siginfo_t int si_errno
# endif
element siginfo_t int si_code
element siginfo_t pid_t si_pid
element siginfo_t uid_t si_uid
element siginfo_t {void*} si_addr
element siginfo_t int si_status
element siginfo_t long si_band
element siginfo_t {union sigval} si_value
constant ILL_ILLOPC
constant ILL_ILLOPN
constant ILL_ILLADR
constant ILL_ILLTRP
constant ILL_PRVOPC
constant ILL_PRVREG
constant ILL_COPROC
constant ILL_BADSTK
constant FPE_INTDIV
constant FPE_INTOVF
constant FPE_FLTDIV
constant FPE_FLTOVF
constant FPE_FLTUND
constant FPE_FLTRES
constant FPE_FLTINV
constant FPE_FLTSUB
constant SEGV_MAPERR
constant SEGV_ACCERR
constant BUS_ADRALN
constant BUS_ADRERR
constant BUS_OBJERR
constant TRAP_BRKPT
constant TRAP_TRACE
constant CLD_EXITED
constant CLD_KILLED
constant CLD_DUMPED
constant CLD_TRAPPED
constant CLD_STOPPED
constant CLD_CONTINUED
constant POLL_IN
constant POLL_OUT
constant POLL_MSG
constant POLL_ERR
constant POLL_PRI
constant POLL_HUP
constant SI_USER
constant SI_QUEUE
constant SI_TIMER
constant SI_ASYNCIO
constant SI_MESGQ
# if !defined XOPEN2K8 && !defined POSIX && !defined POSIX2008
function void (*bsd_signal (int, void(*)(int)))(int)
# endif
function int kill (pid_t, int)
# if !defined POSIX && !defined POSIX2008
function int killpg (pid_t, int)
# endif
function int pthread_kill (pthread_t, int)
function int pthread_sigmask (int, const sigset_t*, sigset_t*)
function int sigaction (int, const struct sigaction*, struct sigaction*)
function int sigaddset (sigset_t*, int)
# if !defined POSIX && !defined POSIX2008
function int sigaltstack (const stack_t*, stack_t*)
# endif
function int sigdelset (sigset_t*, int)
function int sigemptyset (sigset_t*)
function int sigfillset (sigset_t*)
# if !defined POSIX && !defined POSIX2008
function int sighold (int)
function int sigignore (int)
function int siginterrupt (int, int)
# endif
function int sigismember (const sigset_t*, int)
#if !defined POSIX && !defined POSIX2008
function int sigpause (int)
# endif
function int sigpending (sigset_t*)
function int sigprocmask (int, const sigset_t*, sigset_t*)
function int sigqueue (pid_t, int, const union sigval)
# if !defined POSIX && !defined POSIX2008
function int sigrelse (int)
function void (*sigset (int, void(*)(int)))(int)
# endif
# if !defined POSIX
function int sigstack (struct sigstack*, struct sigstack*)
# endif
function int sigsuspend (const sigset_t*)
function int sigtimedwait (const sigset_t*, siginfo_t*, const struct timespec*)
function int sigwait (const sigset_t*, int*)
function int sigwaitinfo (const sigset_t*, siginfo_t*)
# if defined XOPEN2K8 || defined POSIX2008
function void psiginfo (const siginfo_t*, const char*)
function void psignal (int, const char*)
# endif
// The following expressions are not entirely correct but the current
// poorfnmatch implementation doesn't grok the right form.
allow SIG*
allow sa_*
allow uc_*
allow ss_*
allow sv_*
allow si_*
allow SI_*
allow sigev_*
allow SIGEV_*
allow sival_*
allow SA_*
allow BUS_*
allow CLD_*
allow FPE_*
allow ILL_*
allow POLL_*
allow SEGV_*
allow SS_*
allow SV_*
allow TRAP_*
allow *_t
allow-header time.h
#endif
allow SIG[ABCDEFGHIJKLMNOPQRSTUVWXYZ]*
allow SIG_*
|