//===-- LinuxSignals.cpp ----------------------------------------*- C++ -*-===//
//
//                     The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//

// C++ Includes
// Other libraries and framework includes
// Project includes
#include "LinuxSignals.h"

using namespace lldb_private;

LinuxSignals::LinuxSignals() : UnixSignals() { Reset(); }

void LinuxSignals::Reset() {
  m_signals.clear();
  //        SIGNO  NAME             SUPPRESS STOP   NOTIFY DESCRIPTION ALIAS
  //        =====  ===========      ======== =====  ======
  //        ======================================   ======
  AddSignal(1, "SIGHUP", false, true, true, "hangup");
  AddSignal(2, "SIGINT", true, true, true, "interrupt");
  AddSignal(3, "SIGQUIT", false, true, true, "quit");
  AddSignal(4, "SIGILL", false, true, true, "illegal instruction");
  AddSignal(5, "SIGTRAP", true, true, true,
            "trace trap (not reset when caught)");
  AddSignal(6, "SIGABRT", false, true, true, "abort()/IOT trap", "SIGIOT");
  AddSignal(7, "SIGBUS", false, true, true, "bus error");
  AddSignal(8, "SIGFPE", false, true, true, "floating point exception");
  AddSignal(9, "SIGKILL", false, true, true, "kill");
  AddSignal(10, "SIGUSR1", false, true, true, "user defined signal 1");
  AddSignal(11, "SIGSEGV", false, true, true, "segmentation violation");
  AddSignal(12, "SIGUSR2", false, true, true, "user defined signal 2");
  AddSignal(13, "SIGPIPE", false, true, true,
            "write to pipe with reading end closed");
  AddSignal(14, "SIGALRM", false, false, false, "alarm");
  AddSignal(15, "SIGTERM", false, true, true, "termination requested");
  AddSignal(16, "SIGSTKFLT", false, true, true, "stack fault");
  AddSignal(17, "SIGCHLD", false, false, true, "child status has changed",
            "SIGCLD");
  AddSignal(18, "SIGCONT", false, true, true, "process continue");
  AddSignal(19, "SIGSTOP", true, true, true, "process stop");
  AddSignal(20, "SIGTSTP", false, true, true, "tty stop");
  AddSignal(21, "SIGTTIN", false, true, true, "background tty read");
  AddSignal(22, "SIGTTOU", false, true, true, "background tty write");
  AddSignal(23, "SIGURG", false, true, true, "urgent data on socket");
  AddSignal(24, "SIGXCPU", false, true, true, "CPU resource exceeded");
  AddSignal(25, "SIGXFSZ", false, true, true, "file size limit exceeded");
  AddSignal(26, "SIGVTALRM", false, true, true, "virtual time alarm");
  AddSignal(27, "SIGPROF", false, false, false, "profiling time alarm");
  AddSignal(28, "SIGWINCH", false, true, true, "window size changes");
  AddSignal(29, "SIGIO", false, true, true, "input/output ready/Pollable event",
            "SIGPOLL");
  AddSignal(30, "SIGPWR", false, true, true, "power failure");
  AddSignal(31, "SIGSYS", false, true, true, "invalid system call");
  AddSignal(32, "SIG32", false, false, false,
            "threading library internal signal 1");
  AddSignal(33, "SIG33", false, false, false,
            "threading library internal signal 2");
  AddSignal(34, "SIGRTMIN", false, false, false, "real time signal 0");
  AddSignal(35, "SIGRTMIN+1", false, false, false, "real time signal 1");
  AddSignal(36, "SIGRTMIN+2", false, false, false, "real time signal 2");
  AddSignal(37, "SIGRTMIN+3", false, false, false, "real time signal 3");
  AddSignal(38, "SIGRTMIN+4", false, false, false, "real time signal 4");
  AddSignal(39, "SIGRTMIN+5", false, false, false, "real time signal 5");
  AddSignal(40, "SIGRTMIN+6", false, false, false, "real time signal 6");
  AddSignal(41, "SIGRTMIN+7", false, false, false, "real time signal 7");
  AddSignal(42, "SIGRTMIN+8", false, false, false, "real time signal 8");
  AddSignal(43, "SIGRTMIN+9", false, false, false, "real time signal 9");
  AddSignal(44, "SIGRTMIN+10", false, false, false, "real time signal 10");
  AddSignal(45, "SIGRTMIN+11", false, false, false, "real time signal 11");
  AddSignal(46, "SIGRTMIN+12", false, false, false, "real time signal 12");
  AddSignal(47, "SIGRTMIN+13", false, false, false, "real time signal 13");
  AddSignal(48, "SIGRTMIN+14", false, false, false, "real time signal 14");
  AddSignal(49, "SIGRTMIN+15", false, false, false, "real time signal 15");
  AddSignal(50, "SIGRTMAX-14", false, false, false,
            "real time signal 16"); // switching to SIGRTMAX-xxx to match "kill
                                    // -l" output
  AddSignal(51, "SIGRTMAX-13", false, false, false, "real time signal 17");
  AddSignal(52, "SIGRTMAX-12", false, false, false, "real time signal 18");
  AddSignal(53, "SIGRTMAX-11", false, false, false, "real time signal 19");
  AddSignal(54, "SIGRTMAX-10", false, false, false, "real time signal 20");
  AddSignal(55, "SIGRTMAX-9", false, false, false, "real time signal 21");
  AddSignal(56, "SIGRTMAX-8", false, false, false, "real time signal 22");
  AddSignal(57, "SIGRTMAX-7", false, false, false, "real time signal 23");
  AddSignal(58, "SIGRTMAX-6", false, false, false, "real time signal 24");
  AddSignal(59, "SIGRTMAX-5", false, false, false, "real time signal 25");
  AddSignal(60, "SIGRTMAX-4", false, false, false, "real time signal 26");
  AddSignal(61, "SIGRTMAX-3", false, false, false, "real time signal 27");
  AddSignal(62, "SIGRTMAX-2", false, false, false, "real time signal 28");
  AddSignal(63, "SIGRTMAX-1", false, false, false, "real time signal 29");
  AddSignal(64, "SIGRTMAX", false, false, false, "real time signal 30");
}
