167d9f7e394d4240d6af0c97d9eb116b0d87aaf07Stephen Wilson//===-- LinuxSignals.cpp ----------------------------------------*- C++ -*-===// 267d9f7e394d4240d6af0c97d9eb116b0d87aaf07Stephen Wilson// 367d9f7e394d4240d6af0c97d9eb116b0d87aaf07Stephen Wilson// The LLVM Compiler Infrastructure 467d9f7e394d4240d6af0c97d9eb116b0d87aaf07Stephen Wilson// 567d9f7e394d4240d6af0c97d9eb116b0d87aaf07Stephen Wilson// This file is distributed under the University of Illinois Open Source 667d9f7e394d4240d6af0c97d9eb116b0d87aaf07Stephen Wilson// License. See LICENSE.TXT for details. 767d9f7e394d4240d6af0c97d9eb116b0d87aaf07Stephen Wilson// 867d9f7e394d4240d6af0c97d9eb116b0d87aaf07Stephen Wilson//===----------------------------------------------------------------------===// 967d9f7e394d4240d6af0c97d9eb116b0d87aaf07Stephen Wilson 1067d9f7e394d4240d6af0c97d9eb116b0d87aaf07Stephen Wilson// C Includes 1167d9f7e394d4240d6af0c97d9eb116b0d87aaf07Stephen Wilson#include <signal.h> 1267d9f7e394d4240d6af0c97d9eb116b0d87aaf07Stephen Wilson 1367d9f7e394d4240d6af0c97d9eb116b0d87aaf07Stephen Wilson// C++ Includes 1467d9f7e394d4240d6af0c97d9eb116b0d87aaf07Stephen Wilson// Other libraries and framework includes 1567d9f7e394d4240d6af0c97d9eb116b0d87aaf07Stephen Wilson// Project includes 1667d9f7e394d4240d6af0c97d9eb116b0d87aaf07Stephen Wilson#include "LinuxSignals.h" 1767d9f7e394d4240d6af0c97d9eb116b0d87aaf07Stephen Wilson 1867d9f7e394d4240d6af0c97d9eb116b0d87aaf07Stephen WilsonLinuxSignals::LinuxSignals() 1967d9f7e394d4240d6af0c97d9eb116b0d87aaf07Stephen Wilson : UnixSignals() 2067d9f7e394d4240d6af0c97d9eb116b0d87aaf07Stephen Wilson{ 2167d9f7e394d4240d6af0c97d9eb116b0d87aaf07Stephen Wilson Reset(); 2267d9f7e394d4240d6af0c97d9eb116b0d87aaf07Stephen Wilson} 2367d9f7e394d4240d6af0c97d9eb116b0d87aaf07Stephen Wilson 2467d9f7e394d4240d6af0c97d9eb116b0d87aaf07Stephen Wilsonvoid 2567d9f7e394d4240d6af0c97d9eb116b0d87aaf07Stephen WilsonLinuxSignals::Reset() 2667d9f7e394d4240d6af0c97d9eb116b0d87aaf07Stephen Wilson{ 2767d9f7e394d4240d6af0c97d9eb116b0d87aaf07Stephen Wilson m_signals.clear(); 2867d9f7e394d4240d6af0c97d9eb116b0d87aaf07Stephen Wilson 2967d9f7e394d4240d6af0c97d9eb116b0d87aaf07Stephen Wilson#define ADDSIGNAL(S, SUPPRESS, STOP, NOTIFY, DESCRIPTION) \ 3067d9f7e394d4240d6af0c97d9eb116b0d87aaf07Stephen Wilson AddSignal(SIG ## S, "SIG" #S, #S, SUPPRESS, STOP, NOTIFY, DESCRIPTION) 3167d9f7e394d4240d6af0c97d9eb116b0d87aaf07Stephen Wilson 3267d9f7e394d4240d6af0c97d9eb116b0d87aaf07Stephen Wilson ADDSIGNAL(HUP, false, true, true, "hangup"); 3367d9f7e394d4240d6af0c97d9eb116b0d87aaf07Stephen Wilson ADDSIGNAL(INT, true, true, true, "interrupt"); 3467d9f7e394d4240d6af0c97d9eb116b0d87aaf07Stephen Wilson ADDSIGNAL(QUIT, false, true, true, "quit"); 3567d9f7e394d4240d6af0c97d9eb116b0d87aaf07Stephen Wilson ADDSIGNAL(ILL, false, true, true, "illegal instruction"); 3667d9f7e394d4240d6af0c97d9eb116b0d87aaf07Stephen Wilson ADDSIGNAL(TRAP, true, true, true, "trace trap (not reset when caught)"); 3767d9f7e394d4240d6af0c97d9eb116b0d87aaf07Stephen Wilson ADDSIGNAL(ABRT, false, true, true, "abort"); 3867d9f7e394d4240d6af0c97d9eb116b0d87aaf07Stephen Wilson ADDSIGNAL(IOT, false, true, true, "abort"); 3967d9f7e394d4240d6af0c97d9eb116b0d87aaf07Stephen Wilson ADDSIGNAL(BUS, false, true, true, "bus error"); 4067d9f7e394d4240d6af0c97d9eb116b0d87aaf07Stephen Wilson ADDSIGNAL(FPE, false, true, true, "floating point exception"); 4167d9f7e394d4240d6af0c97d9eb116b0d87aaf07Stephen Wilson ADDSIGNAL(KILL, false, true, true, "kill"); 4267d9f7e394d4240d6af0c97d9eb116b0d87aaf07Stephen Wilson ADDSIGNAL(USR1, false, true, true, "user defined signal 1"); 4367d9f7e394d4240d6af0c97d9eb116b0d87aaf07Stephen Wilson ADDSIGNAL(SEGV, false, true, true, "segmentation violation"); 4467d9f7e394d4240d6af0c97d9eb116b0d87aaf07Stephen Wilson ADDSIGNAL(USR2, false, true, true, "user defined signal 2"); 4567d9f7e394d4240d6af0c97d9eb116b0d87aaf07Stephen Wilson ADDSIGNAL(PIPE, false, true, true, "write to pipe with reading end closed"); 4667d9f7e394d4240d6af0c97d9eb116b0d87aaf07Stephen Wilson ADDSIGNAL(ALRM, false, false, true, "alarm"); 4767d9f7e394d4240d6af0c97d9eb116b0d87aaf07Stephen Wilson ADDSIGNAL(TERM, false, true, true, "termination requested"); 4867d9f7e394d4240d6af0c97d9eb116b0d87aaf07Stephen Wilson ADDSIGNAL(STKFLT, false, true, true, "stack fault"); 4967d9f7e394d4240d6af0c97d9eb116b0d87aaf07Stephen Wilson ADDSIGNAL(CHLD, false, false, true, "child process exit"); 5067d9f7e394d4240d6af0c97d9eb116b0d87aaf07Stephen Wilson ADDSIGNAL(CONT, false, true, true, "process continue"); 5167d9f7e394d4240d6af0c97d9eb116b0d87aaf07Stephen Wilson ADDSIGNAL(STOP, false, true, true, "process stop"); 5267d9f7e394d4240d6af0c97d9eb116b0d87aaf07Stephen Wilson ADDSIGNAL(TSTP, false, true, true, "tty stop"); 5367d9f7e394d4240d6af0c97d9eb116b0d87aaf07Stephen Wilson ADDSIGNAL(TTIN, false, true, true, "background tty read"); 5467d9f7e394d4240d6af0c97d9eb116b0d87aaf07Stephen Wilson ADDSIGNAL(TTOU, false, true, true, "background tty write"); 5567d9f7e394d4240d6af0c97d9eb116b0d87aaf07Stephen Wilson ADDSIGNAL(URG, false, true, true, "urgent data on socket"); 5667d9f7e394d4240d6af0c97d9eb116b0d87aaf07Stephen Wilson ADDSIGNAL(XCPU, false, true, true, "CPU resource exceeded"); 5767d9f7e394d4240d6af0c97d9eb116b0d87aaf07Stephen Wilson ADDSIGNAL(XFSZ, false, true, true, "file size limit exceeded"); 5867d9f7e394d4240d6af0c97d9eb116b0d87aaf07Stephen Wilson ADDSIGNAL(VTALRM, false, true, true, "virtual alarm"); 5967d9f7e394d4240d6af0c97d9eb116b0d87aaf07Stephen Wilson ADDSIGNAL(PROF, false, true, true, "profiling alarm"); 6067d9f7e394d4240d6af0c97d9eb116b0d87aaf07Stephen Wilson ADDSIGNAL(WINCH, false, true, true, "window size change"); 6167d9f7e394d4240d6af0c97d9eb116b0d87aaf07Stephen Wilson ADDSIGNAL(POLL, false, true, true, "pollable event"); 6267d9f7e394d4240d6af0c97d9eb116b0d87aaf07Stephen Wilson ADDSIGNAL(IO, false, true, true, "input/output ready"); 6367d9f7e394d4240d6af0c97d9eb116b0d87aaf07Stephen Wilson ADDSIGNAL(PWR, false, true, true, "power failure"); 6467d9f7e394d4240d6af0c97d9eb116b0d87aaf07Stephen Wilson ADDSIGNAL(SYS, false, true, true, "invalid system call"); 6567d9f7e394d4240d6af0c97d9eb116b0d87aaf07Stephen Wilson 6667d9f7e394d4240d6af0c97d9eb116b0d87aaf07Stephen Wilson#undef ADDSIGNAL 6767d9f7e394d4240d6af0c97d9eb116b0d87aaf07Stephen Wilson} 68