1af245d11STodd Fiala //===-- LinuxSignals.cpp ----------------------------------------*- C++ -*-===//
2af245d11STodd Fiala //
3af245d11STodd Fiala //                     The LLVM Compiler Infrastructure
4af245d11STodd Fiala //
5af245d11STodd Fiala // This file is distributed under the University of Illinois Open Source
6af245d11STodd Fiala // License. See LICENSE.TXT for details.
7af245d11STodd Fiala //
8af245d11STodd Fiala //===----------------------------------------------------------------------===//
9af245d11STodd Fiala 
10af245d11STodd Fiala // C++ Includes
11af245d11STodd Fiala // Other libraries and framework includes
12af245d11STodd Fiala // Project includes
13af245d11STodd Fiala #include "LinuxSignals.h"
14af245d11STodd Fiala 
15db264a6dSTamas Berghammer using namespace lldb_private::process_linux;
16af245d11STodd Fiala 
17af245d11STodd Fiala LinuxSignals::LinuxSignals()
18af245d11STodd Fiala     : UnixSignals()
19af245d11STodd Fiala {
20af245d11STodd Fiala     Reset();
21af245d11STodd Fiala }
22af245d11STodd Fiala 
23af245d11STodd Fiala void
24af245d11STodd Fiala LinuxSignals::Reset()
25af245d11STodd Fiala {
26af245d11STodd Fiala     m_signals.clear();
27af245d11STodd Fiala 
282850b1beSTodd Fiala     AddSignal (1,    "SIGHUP",      "HUP",      false,   true , true , "hangup");
292850b1beSTodd Fiala     AddSignal (2,    "SIGINT",      "INT",      true ,   true , true , "interrupt");
302850b1beSTodd Fiala     AddSignal (3,    "SIGQUIT",     "QUIT",     false,   true , true , "quit");
312850b1beSTodd Fiala     AddSignal (4,    "SIGILL",      "ILL",      false,   true , true , "illegal instruction");
322850b1beSTodd Fiala     AddSignal (5,    "SIGTRAP",     "TRAP",     true ,   true , true , "trace trap (not reset when caught)");
332850b1beSTodd Fiala     AddSignal (6,    "SIGABRT",     "ABRT",     false,   true , true , "abort()");
342850b1beSTodd Fiala     AddSignal (6,    "SIGIOT",      "IOT",      false,   true , true , "IOT trap");
352850b1beSTodd Fiala     AddSignal (7,    "SIGBUS",      "BUS",      false,   true , true , "bus error");
362850b1beSTodd Fiala     AddSignal (8,    "SIGFPE",      "FPE",      false,   true , true , "floating point exception");
372850b1beSTodd Fiala     AddSignal (9,    "SIGKILL",     "KILL",     false,   true , true , "kill");
382850b1beSTodd Fiala     AddSignal (10,   "SIGUSR1",     "USR1",     false,   true , true , "user defined signal 1");
392850b1beSTodd Fiala     AddSignal (11,   "SIGSEGV",     "SEGV",     false,   true , true , "segmentation violation");
402850b1beSTodd Fiala     AddSignal (12,   "SIGUSR2",     "USR2",     false,   true , true , "user defined signal 2");
412850b1beSTodd Fiala     AddSignal (13,   "SIGPIPE",     "PIPE",     false,   true , true , "write to pipe with reading end closed");
422850b1beSTodd Fiala     AddSignal (14,   "SIGALRM",     "ALRM",     false,   false, false, "alarm");
432850b1beSTodd Fiala     AddSignal (15,   "SIGTERM",     "TERM",     false,   true , true , "termination requested");
442850b1beSTodd Fiala     AddSignal (16,   "SIGSTKFLT",   "STKFLT",   false,   true , true , "stack fault");
452850b1beSTodd Fiala     AddSignal (16,   "SIGCLD",      "CLD",      false,   false, true , "same as SIGCHLD");
462850b1beSTodd Fiala     AddSignal (17,   "SIGCHLD",     "CHLD",     false,   false, true , "child status has changed");
472850b1beSTodd Fiala     AddSignal (18,   "SIGCONT",     "CONT",     false,   true , true , "process continue");
482850b1beSTodd Fiala     AddSignal (19,   "SIGSTOP",     "STOP",     true ,   true , true , "process stop");
492850b1beSTodd Fiala     AddSignal (20,   "SIGTSTP",     "TSTP",     false,   true , true , "tty stop");
502850b1beSTodd Fiala     AddSignal (21,   "SIGTTIN",     "TTIN",     false,   true , true , "background tty read");
512850b1beSTodd Fiala     AddSignal (22,   "SIGTTOU",     "TTOU",     false,   true , true , "background tty write");
522850b1beSTodd Fiala     AddSignal (23,   "SIGURG",      "URG",      false,   true , true , "urgent data on socket");
532850b1beSTodd Fiala     AddSignal (24,   "SIGXCPU",     "XCPU",     false,   true , true , "CPU resource exceeded");
542850b1beSTodd Fiala     AddSignal (25,   "SIGXFSZ",     "XFSZ",     false,   true , true , "file size limit exceeded");
552850b1beSTodd Fiala     AddSignal (26,   "SIGVTALRM",   "VTALRM",   false,   true , true , "virtual time alarm");
5615d810faSStephane Sezer     AddSignal (27,   "SIGPROF",     "PROF",     false,   false, false, "profiling time alarm");
572850b1beSTodd Fiala     AddSignal (28,   "SIGWINCH",    "WINCH",    false,   true , true , "window size changes");
582850b1beSTodd Fiala     AddSignal (29,   "SIGPOLL",     "POLL",     false,   true , true , "pollable event");
592850b1beSTodd Fiala     AddSignal (29,   "SIGIO",       "IO",       false,   true , true , "input/output ready");
602850b1beSTodd Fiala     AddSignal (30,   "SIGPWR",      "PWR",      false,   true , true , "power failure");
612850b1beSTodd Fiala     AddSignal (31,   "SIGSYS",      "SYS",      false,   true , true , "invalid system call");
62*b84141a6SPavel Labath     AddSignal (32,   "SIG32",       "SIG32",    false,   true , true , "threading library internal signal 1");
63*b84141a6SPavel Labath     AddSignal (33,   "SIG33",       "SIG33",    false,   true , true , "threading library internal signal 2");
64*b84141a6SPavel Labath     AddSignal (34,   "SIGRTMIN",    "RTMIN",    false,   true , true , "real time signal 0");
65*b84141a6SPavel Labath     AddSignal (35,   "SIGRTMIN+1",  "RTMIN+1",  false,   true , true , "real time signal 1");
66*b84141a6SPavel Labath     AddSignal (36,   "SIGRTMIN+2",  "RTMIN+2",  false,   true , true , "real time signal 2");
67*b84141a6SPavel Labath     AddSignal (37,   "SIGRTMIN+3",  "RTMIN+3",  false,   true , true , "real time signal 3");
68*b84141a6SPavel Labath     AddSignal (38,   "SIGRTMIN+4",  "RTMIN+4",  false,   true , true , "real time signal 4");
69*b84141a6SPavel Labath     AddSignal (39,   "SIGRTMIN+5",  "RTMIN+5",  false,   true , true , "real time signal 5");
70*b84141a6SPavel Labath     AddSignal (40,   "SIGRTMIN+6",  "RTMIN+6",  false,   true , true , "real time signal 6");
71*b84141a6SPavel Labath     AddSignal (41,   "SIGRTMIN+7",  "RTMIN+7",  false,   true , true , "real time signal 7");
72*b84141a6SPavel Labath     AddSignal (42,   "SIGRTMIN+8",  "RTMIN+8",  false,   true , true , "real time signal 8");
73*b84141a6SPavel Labath     AddSignal (43,   "SIGRTMIN+9",  "RTMIN+9",  false,   true , true , "real time signal 9");
74*b84141a6SPavel Labath     AddSignal (44,   "SIGRTMIN+10", "RTMIN+10", false,   true , true , "real time signal 10");
75*b84141a6SPavel Labath     AddSignal (45,   "SIGRTMIN+11", "RTMIN+11", false,   true , true , "real time signal 11");
76*b84141a6SPavel Labath     AddSignal (46,   "SIGRTMIN+12", "RTMIN+12", false,   true , true , "real time signal 12");
77*b84141a6SPavel Labath     AddSignal (47,   "SIGRTMIN+13", "RTMIN+13", false,   true , true , "real time signal 13");
78*b84141a6SPavel Labath     AddSignal (48,   "SIGRTMIN+14", "RTMIN+14", false,   true , true , "real time signal 14");
79*b84141a6SPavel Labath     AddSignal (49,   "SIGRTMIN+15", "RTMIN+15", false,   true , true , "real time signal 15");
80*b84141a6SPavel Labath     AddSignal (50,   "SIGRTMAX-14", "RTMAX-14", false,   true , true , "real time signal 16"); // switching to SIGRTMAX-xxx to match "kill -l" output
81*b84141a6SPavel Labath     AddSignal (51,   "SIGRTMAX-13", "RTMAX-13", false,   true , true , "real time signal 17");
82*b84141a6SPavel Labath     AddSignal (52,   "SIGRTMAX-12", "RTMAX-12", false,   true , true , "real time signal 18");
83*b84141a6SPavel Labath     AddSignal (53,   "SIGRTMAX-11", "RTMAX-11", false,   true , true , "real time signal 19");
84*b84141a6SPavel Labath     AddSignal (54,   "SIGRTMAX-10", "RTMAX-10", false,   true , true , "real time signal 20");
85*b84141a6SPavel Labath     AddSignal (55,   "SIGRTMAX-9",  "RTMAX-9",  false,   true , true , "real time signal 21");
86*b84141a6SPavel Labath     AddSignal (56,   "SIGRTMAX-8",  "RTMAX-8",  false,   true , true , "real time signal 22");
87*b84141a6SPavel Labath     AddSignal (57,   "SIGRTMAX-7",  "RTMAX-7",  false,   true , true , "real time signal 23");
88*b84141a6SPavel Labath     AddSignal (58,   "SIGRTMAX-6",  "RTMAX-6",  false,   true , true , "real time signal 24");
89*b84141a6SPavel Labath     AddSignal (59,   "SIGRTMAX-5",  "RTMAX-5",  false,   true , true , "real time signal 25");
90*b84141a6SPavel Labath     AddSignal (60,   "SIGRTMAX-4",  "RTMAX-4",  false,   true , true , "real time signal 26");
91*b84141a6SPavel Labath     AddSignal (61,   "SIGRTMAX-3",  "RTMAX-3",  false,   true , true , "real time signal 27");
92*b84141a6SPavel Labath     AddSignal (62,   "SIGRTMAX-2",  "RTMAX-2",  false,   true , true , "real time signal 28");
93*b84141a6SPavel Labath     AddSignal (63,   "SIGRTMAX-1",  "RTMAX-1",  false,   true , true , "real time signal 29");
94*b84141a6SPavel Labath     AddSignal (64,   "SIGRTMAX",    "RTMAX",    false,   true , true , "real time signal 30");
95af245d11STodd Fiala }
96