//===-- MipsLinuxSignals.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 "MipsLinuxSignals.h"

using namespace lldb_private;

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

void
MipsLinuxSignals::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,    "SIGEMT",       false,   true , true , "terminate process with core dump"               );
    AddSignal (8,    "SIGFPE",       false,   true , true , "floating point exception"                       );
    AddSignal (9,    "SIGKILL",      false,   true , true , "kill"                                           );
    AddSignal (10,   "SIGBUS",       false,   true , true , "bus error"                                      );
    AddSignal (11,   "SIGSEGV",      false,   true , true , "segmentation violation"                         );
    AddSignal (12,   "SIGSYS",       false,   true , true , "invalid system call"                            );
    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,   "SIGUSR1",      false,   true , true , "user defined signal 1"                          );
    AddSignal (17,   "SIGUSR2",      false,   true , true , "user defined signal 2"                          );
    AddSignal (18,   "SIGCHLD",      false,   false, true , "child status has changed",              "SIGCLD");
    AddSignal (19,   "SIGPWR",       false,   true , true , "power failure"                                  );
    AddSignal (20,   "SIGWINCH",     false,   true , true , "window size changes"                            );
    AddSignal (21,   "SIGURG",       false,   true , true , "urgent data on socket"                          );
    AddSignal (22,   "SIGIO",        false,   true , true , "input/output ready/Pollable event",    "SIGPOLL");
    AddSignal (23,   "SIGSTOP",      true ,   true , true , "process stop"                                   );
    AddSignal (24,   "SIGTSTP",      false,   true , true , "tty stop"                                       );
    AddSignal (25,   "SIGCONT",      false,   true , true , "process continue"                               );
    AddSignal (26,   "SIGTTIN",      false,   true , true , "background tty read"                            );
    AddSignal (27,   "SIGTTOU",      false,   true , true , "background tty write"                           );
    AddSignal (28,   "SIGVTALRM",    false,   true , true , "virtual time alarm"                             );
    AddSignal (29,   "SIGPROF",      false,   false, false, "profiling time alarm"                           );
    AddSignal (30,   "SIGXCPU",      false,   true , true , "CPU resource exceeded"                          );
    AddSignal (31,   "SIGXFSZ",      false,   true , true , "file size limit exceeded"                       );
    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"                            );
}
