xref: /third_party/node/src/api/utils.cc (revision 1cb0ef41)
1#include "node.h"
2
3#include <csignal>
4
5namespace node {
6
7const char* signo_string(int signo) {
8#define SIGNO_CASE(e)                                                          \
9  case e:                                                                      \
10    return #e;
11  switch (signo) {
12#ifdef SIGHUP
13    SIGNO_CASE(SIGHUP);
14#endif
15
16#ifdef SIGINT
17    SIGNO_CASE(SIGINT);
18#endif
19
20#ifdef SIGQUIT
21    SIGNO_CASE(SIGQUIT);
22#endif
23
24#ifdef SIGILL
25    SIGNO_CASE(SIGILL);
26#endif
27
28#ifdef SIGTRAP
29    SIGNO_CASE(SIGTRAP);
30#endif
31
32#ifdef SIGABRT
33    SIGNO_CASE(SIGABRT);
34#endif
35
36#ifdef SIGIOT
37#if SIGABRT != SIGIOT
38    SIGNO_CASE(SIGIOT);
39#endif
40#endif
41
42#ifdef SIGBUS
43    SIGNO_CASE(SIGBUS);
44#endif
45
46#ifdef SIGFPE
47    SIGNO_CASE(SIGFPE);
48#endif
49
50#ifdef SIGKILL
51    SIGNO_CASE(SIGKILL);
52#endif
53
54#ifdef SIGUSR1
55    SIGNO_CASE(SIGUSR1);
56#endif
57
58#ifdef SIGSEGV
59    SIGNO_CASE(SIGSEGV);
60#endif
61
62#ifdef SIGUSR2
63    SIGNO_CASE(SIGUSR2);
64#endif
65
66#ifdef SIGPIPE
67    SIGNO_CASE(SIGPIPE);
68#endif
69
70#ifdef SIGALRM
71    SIGNO_CASE(SIGALRM);
72#endif
73
74    SIGNO_CASE(SIGTERM);
75
76#ifdef SIGCHLD
77    SIGNO_CASE(SIGCHLD);
78#endif
79
80#ifdef SIGSTKFLT
81    SIGNO_CASE(SIGSTKFLT);
82#endif
83
84#ifdef SIGCONT
85    SIGNO_CASE(SIGCONT);
86#endif
87
88#ifdef SIGSTOP
89    SIGNO_CASE(SIGSTOP);
90#endif
91
92#ifdef SIGTSTP
93    SIGNO_CASE(SIGTSTP);
94#endif
95
96#ifdef SIGBREAK
97    SIGNO_CASE(SIGBREAK);
98#endif
99
100#ifdef SIGTTIN
101    SIGNO_CASE(SIGTTIN);
102#endif
103
104#ifdef SIGTTOU
105    SIGNO_CASE(SIGTTOU);
106#endif
107
108#ifdef SIGURG
109    SIGNO_CASE(SIGURG);
110#endif
111
112#ifdef SIGXCPU
113    SIGNO_CASE(SIGXCPU);
114#endif
115
116#ifdef SIGXFSZ
117    SIGNO_CASE(SIGXFSZ);
118#endif
119
120#ifdef SIGVTALRM
121    SIGNO_CASE(SIGVTALRM);
122#endif
123
124#ifdef SIGPROF
125    SIGNO_CASE(SIGPROF);
126#endif
127
128#ifdef SIGWINCH
129    SIGNO_CASE(SIGWINCH);
130#endif
131
132#ifdef SIGIO
133    SIGNO_CASE(SIGIO);
134#endif
135
136#ifdef SIGPOLL
137#if SIGPOLL != SIGIO
138    SIGNO_CASE(SIGPOLL);
139#endif
140#endif
141
142#ifdef SIGLOST
143#if SIGLOST != SIGABRT
144    SIGNO_CASE(SIGLOST);
145#endif
146#endif
147
148#ifdef SIGPWR
149#if SIGPWR != SIGLOST
150    SIGNO_CASE(SIGPWR);
151#endif
152#endif
153
154#ifdef SIGINFO
155#if !defined(SIGPWR) || SIGINFO != SIGPWR
156    SIGNO_CASE(SIGINFO);
157#endif
158#endif
159
160#ifdef SIGSYS
161    SIGNO_CASE(SIGSYS);
162#endif
163
164    default:
165      return "";
166  }
167}
168
169}  // namespace node
170