4 * The contents of this file are subject to the terms of the
5 * Common Development and Distribution License, Version 1.0 only
6 * (the "License"). You may not use this file except in compliance
9 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10 * or http://www.opensolaris.org/os/licensing.
11 * See the License for the specific language governing permissions
12 * and limitations under the License.
14 * When distributing Covered Code, include this CDDL HEADER in each
15 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
16 * If applicable, add the following below this CDDL HEADER, with the
17 * fields enclosed by brackets "[]" replaced with your own identifying
18 * information: Portions Copyright [yyyy] [name of copyright owner]
22 * Portions Copyright 2008 John Birrell jb@freebsd.org
23 * Portions Copyright 2018 Devin Teske dteske@freebsd.org
28 inline int SIGHUP = 1;
29 #pragma D binding "1.0" SIGHUP
30 inline int SIGINT = 2;
31 #pragma D binding "1.0" SIGINT
32 inline int SIGQUIT = 3;
33 #pragma D binding "1.0" SIGQUIT
34 inline int SIGILL = 4;
35 #pragma D binding "1.0" SIGILL
36 inline int SIGTRAP = 5;
37 #pragma D binding "1.0" SIGTRAP
38 inline int SIGABRT = 6;
39 #pragma D binding "1.0" SIGABRT
40 inline int SIGEMT = 7;
41 #pragma D binding "1.0" SIGEMT
42 inline int SIGFPE = 8;
43 #pragma D binding "1.0" SIGFPE
44 inline int SIGKILL = 9;
45 #pragma D binding "1.0" SIGKILL
46 inline int SIGBUS = 10;
47 #pragma D binding "1.0" SIGBUS
48 inline int SIGSEGV = 11;
49 #pragma D binding "1.0" SIGSEGV
50 inline int SIGSYS = 12;
51 #pragma D binding "1.0" SIGSYS
52 inline int SIGPIPE = 13;
53 #pragma D binding "1.0" SIGPIPE
54 inline int SIGALRM = 14;
55 #pragma D binding "1.0" SIGALRM
56 inline int SIGTERM = 15;
57 #pragma D binding "1.0" SIGTERM
58 inline int SIGURG = 16;
59 #pragma D binding "1.0" SIGURG
60 inline int SIGSTOP = 17;
61 #pragma D binding "1.0" SIGSTOP
62 inline int SIGTSTP = 18;
63 #pragma D binding "1.0" SIGTSTP
64 inline int SIGCONT = 19;
65 #pragma D binding "1.0" SIGCONT
66 inline int SIGCHLD = 20;
67 #pragma D binding "1.0" SIGCHLD
68 inline int SIGTTIN = 21;
69 #pragma D binding "1.0" SIGTTIN
70 inline int SIGTTOU = 22;
71 #pragma D binding "1.0" SIGTTOU
72 inline int SIGIO = 23;
73 #pragma D binding "1.0" SIGIO
74 inline int SIGXCPU = 24;
75 #pragma D binding "1.0" SIGXCPU
76 inline int SIGXFSZ = 25;
77 #pragma D binding "1.0" SIGXFSZ
78 inline int SIGVTALRM = 26;
79 #pragma D binding "1.0" SIGVTALRM
80 inline int SIGPROF = 27;
81 #pragma D binding "1.0" SIGPROF
82 inline int SIGWINCH = 28;
83 #pragma D binding "1.0" SIGWINCH
84 inline int SIGINFO = 29;
85 #pragma D binding "1.0" SIGINFO
86 inline int SIGUSR1 = 30;
87 #pragma D binding "1.0" SIGUSR1
88 inline int SIGUSR2 = 31;
89 #pragma D binding "1.0" SIGUSR2
90 inline int SIGTHR = 32;
91 #pragma D binding "1.13" SIGTHR
92 inline int SIGLIBRT = 33;
93 #pragma D binding "1.13" SIGLIBRT
95 #pragma D binding "1.13" signal_string
96 inline string signal_string[int signal] =
97 signal == SIGHUP ? "SIGHUP" :
98 signal == SIGINT ? "SIGINT" :
99 signal == SIGQUIT ? "SIGQUIT" :
100 signal == SIGILL ? "SIGILL":
101 signal == SIGTRAP ? "SIGTRAP" :
102 signal == SIGABRT ? "SIGABRT" :
103 signal == SIGEMT ? "SIGEMT" :
104 signal == SIGFPE ? "SIGFPE" :
105 signal == SIGKILL ? "SIGKILL" :
106 signal == SIGBUS ? "SIGBUS" :
107 signal == SIGSEGV ? "SIGSEGV" :
108 signal == SIGSYS ? "SIGSYS" :
109 signal == SIGPIPE ? "SIGPIPE" :
110 signal == SIGALRM ? "SIGALRM" :
111 signal == SIGTERM ? "SIGTERM" :
112 signal == SIGURG ? "SIGURG" :
113 signal == SIGSTOP ? "SIGSTOP" :
114 signal == SIGTSTP ? "SIGTSTP" :
115 signal == SIGCONT ? "SIGCONT" :
116 signal == SIGCHLD ? "SIGCHLD" :
117 signal == SIGTTIN ? "SIGTTIN" :
118 signal == SIGTTOU ? "SIGTTOU" :
119 signal == SIGIO ? "SIGIO" :
120 signal == SIGXCPU ? "SIGXCPU" :
121 signal == SIGXFSZ ? "SIGXFSZ" :
122 signal == SIGVTALRM ? "SIGVTALRM" :
123 signal == SIGPROF ? "SIGPROF" :
124 signal == SIGWINCH ? "SIGWINCH" :
125 signal == SIGINFO ? "SIGINFO" :
126 signal == SIGUSR1 ? "SIGUSR1" :
127 signal == SIGUSR2 ? "SIGUSR2" :
128 signal == SIGTHR ? "SIGTHR" :
129 signal == SIGLIBRT ? "SIGLIBRT" :
132 inline int CLD_EXITED = 1;
133 #pragma D binding "1.0" CLD_EXITED
134 inline int CLD_KILLED = 2;
135 #pragma D binding "1.0" CLD_KILLED
136 inline int CLD_DUMPED = 3;
137 #pragma D binding "1.0" CLD_DUMPED
138 inline int CLD_TRAPPED = 4;
139 #pragma D binding "1.0" CLD_TRAPPED
140 inline int CLD_STOPPED = 5;
141 #pragma D binding "1.0" CLD_STOPPED
142 inline int CLD_CONTINUED = 6;
143 #pragma D binding "1.0" CLD_CONTINUED
145 #pragma D binding "1.13" child_signal_string
146 inline string child_signal_string[int child_signal] =
147 child_signal == CLD_EXITED ? "child exited" :
148 child_signal == CLD_KILLED ? "child terminated abnormally" :
149 child_signal == CLD_DUMPED ? "child core dumped" :
150 child_signal == CLD_TRAPPED ? "traced child trapped" :
151 child_signal == CLD_STOPPED ? "child stopped" :
152 child_signal == CLD_CONTINUED ? "stopped child continued" :
153 strjoin("unknown SIGCHLD code (", strjoin(lltostr(child_signal), ")"));