180814287SRaphael Isemann //===-- LinuxSignals.cpp --------------------------------------------------===//
2af245d11STodd Fiala //
32946cd70SChandler Carruth // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
42946cd70SChandler Carruth // See https://llvm.org/LICENSE.txt for license information.
52946cd70SChandler Carruth // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6af245d11STodd Fiala //
7af245d11STodd Fiala //===----------------------------------------------------------------------===//
8af245d11STodd Fiala 
9af245d11STodd Fiala #include "LinuxSignals.h"
10af245d11STodd Fiala 
1198d0a4b3SChaoren Lin using namespace lldb_private;
12af245d11STodd Fiala 
LinuxSignals()13b9c1b51eSKate Stone LinuxSignals::LinuxSignals() : UnixSignals() { Reset(); }
14af245d11STodd Fiala 
Reset()15b9c1b51eSKate Stone void LinuxSignals::Reset() {
16af245d11STodd Fiala   m_signals.clear();
17*9d7b08bdSJonas Devlieghere   // clang-format off
18*9d7b08bdSJonas Devlieghere   //        SIGNO   NAME            SUPPRESS  STOP    NOTIFY  DESCRIPTION
19*9d7b08bdSJonas Devlieghere   //        ======  ==============  ========  ======  ======  ===================================================
2079be9e8cSMohit K. Bhakkad   AddSignal(1,      "SIGHUP",       false,    true,   true,   "hangup");
2179be9e8cSMohit K. Bhakkad   AddSignal(2,      "SIGINT",       true,     true,   true,   "interrupt");
2279be9e8cSMohit K. Bhakkad   AddSignal(3,      "SIGQUIT",      false,    true,   true,   "quit");
2379be9e8cSMohit K. Bhakkad   AddSignal(4,      "SIGILL",       false,    true,   true,   "illegal instruction");
24*9d7b08bdSJonas Devlieghere   AddSignal(5,      "SIGTRAP",      true,     true,   true,   "trace trap (not reset when caught)");
2579be9e8cSMohit K. Bhakkad   AddSignal(6,      "SIGABRT",      false,    true,   true,   "abort()/IOT trap", "SIGIOT");
2679be9e8cSMohit K. Bhakkad   AddSignal(7,      "SIGBUS",       false,    true,   true,   "bus error");
2779be9e8cSMohit K. Bhakkad   AddSignal(8,      "SIGFPE",       false,    true,   true,   "floating point exception");
2879be9e8cSMohit K. Bhakkad   AddSignal(9,      "SIGKILL",      false,    true,   true,   "kill");
2979be9e8cSMohit K. Bhakkad   AddSignal(10,     "SIGUSR1",      false,    true,   true,   "user defined signal 1");
3079be9e8cSMohit K. Bhakkad   AddSignal(11,     "SIGSEGV",      false,    true,   true,   "segmentation violation");
3179be9e8cSMohit K. Bhakkad   AddSignal(12,     "SIGUSR2",      false,    true,   true,   "user defined signal 2");
32*9d7b08bdSJonas Devlieghere   AddSignal(13,     "SIGPIPE",      false,    true,   true,   "write to pipe with reading end closed");
3379be9e8cSMohit K. Bhakkad   AddSignal(14,     "SIGALRM",      false,    false,  false,  "alarm");
3479be9e8cSMohit K. Bhakkad   AddSignal(15,     "SIGTERM",      false,    true,   true,   "termination requested");
3579be9e8cSMohit K. Bhakkad   AddSignal(16,     "SIGSTKFLT",    false,    true,   true,   "stack fault");
36*9d7b08bdSJonas Devlieghere   AddSignal(17,     "SIGCHLD",      false,    false,  true,   "child status has changed", "SIGCLD");
37a68ffb19SJim Ingham   AddSignal(18,     "SIGCONT",      false,    false,  true,   "process continue");
3879be9e8cSMohit K. Bhakkad   AddSignal(19,     "SIGSTOP",      true,     true,   true,   "process stop");
3979be9e8cSMohit K. Bhakkad   AddSignal(20,     "SIGTSTP",      false,    true,   true,   "tty stop");
4079be9e8cSMohit K. Bhakkad   AddSignal(21,     "SIGTTIN",      false,    true,   true,   "background tty read");
4179be9e8cSMohit K. Bhakkad   AddSignal(22,     "SIGTTOU",      false,    true,   true,   "background tty write");
4279be9e8cSMohit K. Bhakkad   AddSignal(23,     "SIGURG",       false,    true,   true,   "urgent data on socket");
4379be9e8cSMohit K. Bhakkad   AddSignal(24,     "SIGXCPU",      false,    true,   true,   "CPU resource exceeded");
4479be9e8cSMohit K. Bhakkad   AddSignal(25,     "SIGXFSZ",      false,    true,   true,   "file size limit exceeded");
4579be9e8cSMohit K. Bhakkad   AddSignal(26,     "SIGVTALRM",    false,    true,   true,   "virtual time alarm");
4679be9e8cSMohit K. Bhakkad   AddSignal(27,     "SIGPROF",      false,    false,  false,  "profiling time alarm");
4779be9e8cSMohit K. Bhakkad   AddSignal(28,     "SIGWINCH",     false,    true,   true,   "window size changes");
48*9d7b08bdSJonas Devlieghere   AddSignal(29,     "SIGIO",        false,    true,   true,   "input/output ready/Pollable event", "SIGPOLL");
4979be9e8cSMohit K. Bhakkad   AddSignal(30,     "SIGPWR",       false,    true,   true,   "power failure");
5079be9e8cSMohit K. Bhakkad   AddSignal(31,     "SIGSYS",       false,    true,   true,   "invalid system call");
51*9d7b08bdSJonas Devlieghere   AddSignal(32,     "SIG32",        false,    false,  false,  "threading library internal signal 1");
52*9d7b08bdSJonas Devlieghere   AddSignal(33,     "SIG33",        false,    false,  false,  "threading library internal signal 2");
5379be9e8cSMohit K. Bhakkad   AddSignal(34,     "SIGRTMIN",     false,    false,  false,  "real time signal 0");
5479be9e8cSMohit K. Bhakkad   AddSignal(35,     "SIGRTMIN+1",   false,    false,  false,  "real time signal 1");
5579be9e8cSMohit K. Bhakkad   AddSignal(36,     "SIGRTMIN+2",   false,    false,  false,  "real time signal 2");
5679be9e8cSMohit K. Bhakkad   AddSignal(37,     "SIGRTMIN+3",   false,    false,  false,  "real time signal 3");
5779be9e8cSMohit K. Bhakkad   AddSignal(38,     "SIGRTMIN+4",   false,    false,  false,  "real time signal 4");
5879be9e8cSMohit K. Bhakkad   AddSignal(39,     "SIGRTMIN+5",   false,    false,  false,  "real time signal 5");
5979be9e8cSMohit K. Bhakkad   AddSignal(40,     "SIGRTMIN+6",   false,    false,  false,  "real time signal 6");
6079be9e8cSMohit K. Bhakkad   AddSignal(41,     "SIGRTMIN+7",   false,    false,  false,  "real time signal 7");
6179be9e8cSMohit K. Bhakkad   AddSignal(42,     "SIGRTMIN+8",   false,    false,  false,  "real time signal 8");
6279be9e8cSMohit K. Bhakkad   AddSignal(43,     "SIGRTMIN+9",   false,    false,  false,  "real time signal 9");
6379be9e8cSMohit K. Bhakkad   AddSignal(44,     "SIGRTMIN+10",  false,    false,  false,  "real time signal 10");
6479be9e8cSMohit K. Bhakkad   AddSignal(45,     "SIGRTMIN+11",  false,    false,  false,  "real time signal 11");
6579be9e8cSMohit K. Bhakkad   AddSignal(46,     "SIGRTMIN+12",  false,    false,  false,  "real time signal 12");
6679be9e8cSMohit K. Bhakkad   AddSignal(47,     "SIGRTMIN+13",  false,    false,  false,  "real time signal 13");
6779be9e8cSMohit K. Bhakkad   AddSignal(48,     "SIGRTMIN+14",  false,    false,  false,  "real time signal 14");
6879be9e8cSMohit K. Bhakkad   AddSignal(49,     "SIGRTMIN+15",  false,    false,  false,  "real time signal 15");
69*9d7b08bdSJonas Devlieghere   AddSignal(50,     "SIGRTMAX-14",  false,    false,  false,  "real time signal 16"); // switching to SIGRTMAX-xxx to match "kill -l" output
7079be9e8cSMohit K. Bhakkad   AddSignal(51,     "SIGRTMAX-13",  false,    false,  false,  "real time signal 17");
7179be9e8cSMohit K. Bhakkad   AddSignal(52,     "SIGRTMAX-12",  false,    false,  false,  "real time signal 18");
7279be9e8cSMohit K. Bhakkad   AddSignal(53,     "SIGRTMAX-11",  false,    false,  false,  "real time signal 19");
7379be9e8cSMohit K. Bhakkad   AddSignal(54,     "SIGRTMAX-10",  false,    false,  false,  "real time signal 20");
7479be9e8cSMohit K. Bhakkad   AddSignal(55,     "SIGRTMAX-9",   false,    false,  false,  "real time signal 21");
7579be9e8cSMohit K. Bhakkad   AddSignal(56,     "SIGRTMAX-8",   false,    false,  false,  "real time signal 22");
7679be9e8cSMohit K. Bhakkad   AddSignal(57,     "SIGRTMAX-7",   false,    false,  false,  "real time signal 23");
7779be9e8cSMohit K. Bhakkad   AddSignal(58,     "SIGRTMAX-6",   false,    false,  false,  "real time signal 24");
7879be9e8cSMohit K. Bhakkad   AddSignal(59,     "SIGRTMAX-5",   false,    false,  false,  "real time signal 25");
7979be9e8cSMohit K. Bhakkad   AddSignal(60,     "SIGRTMAX-4",   false,    false,  false,  "real time signal 26");
8079be9e8cSMohit K. Bhakkad   AddSignal(61,     "SIGRTMAX-3",   false,    false,  false,  "real time signal 27");
8179be9e8cSMohit K. Bhakkad   AddSignal(62,     "SIGRTMAX-2",   false,    false,  false,  "real time signal 28");
8279be9e8cSMohit K. Bhakkad   AddSignal(63,     "SIGRTMAX-1",   false,    false,  false,  "real time signal 29");
8379be9e8cSMohit K. Bhakkad   AddSignal(64,     "SIGRTMAX",     false,    false,  false,  "real time signal 30");
84*9d7b08bdSJonas Devlieghere   // clang-format on
85af245d11STodd Fiala }
86