1*30fdc8d8SChris Lattner //===-- SysSignal.cpp -------------------------------------------*- C++ -*-===// 2*30fdc8d8SChris Lattner // 3*30fdc8d8SChris Lattner // The LLVM Compiler Infrastructure 4*30fdc8d8SChris Lattner // 5*30fdc8d8SChris Lattner // This file is distributed under the University of Illinois Open Source 6*30fdc8d8SChris Lattner // License. See LICENSE.TXT for details. 7*30fdc8d8SChris Lattner // 8*30fdc8d8SChris Lattner //===----------------------------------------------------------------------===// 9*30fdc8d8SChris Lattner // 10*30fdc8d8SChris Lattner // Created by Greg Clayton on 6/18/07. 11*30fdc8d8SChris Lattner // 12*30fdc8d8SChris Lattner //===----------------------------------------------------------------------===// 13*30fdc8d8SChris Lattner 14*30fdc8d8SChris Lattner #include "SysSignal.h" 15*30fdc8d8SChris Lattner #include <signal.h> 16*30fdc8d8SChris Lattner #include <stddef.h> 17*30fdc8d8SChris Lattner 18*30fdc8d8SChris Lattner const char * 19*30fdc8d8SChris Lattner SysSignal::Name(int signal) 20*30fdc8d8SChris Lattner { 21*30fdc8d8SChris Lattner switch (signal) 22*30fdc8d8SChris Lattner { 23*30fdc8d8SChris Lattner case SIGHUP: return "SIGHUP"; // 1 hangup 24*30fdc8d8SChris Lattner case SIGINT: return "SIGINT"; // 2 interrupt 25*30fdc8d8SChris Lattner case SIGQUIT: return "SIGQUIT"; // 3 quit 26*30fdc8d8SChris Lattner case SIGILL: return "SIGILL"; // 4 illegal instruction (not reset when caught) 27*30fdc8d8SChris Lattner case SIGTRAP: return "SIGTRAP"; // 5 trace trap (not reset when caught) 28*30fdc8d8SChris Lattner case SIGABRT: return "SIGABRT"; // 6 abort() 29*30fdc8d8SChris Lattner #if defined(_POSIX_C_SOURCE) 30*30fdc8d8SChris Lattner case SIGPOLL: return "SIGPOLL"; // 7 pollable event ([XSR] generated, not supported) 31*30fdc8d8SChris Lattner #else // !_POSIX_C_SOURCE 32*30fdc8d8SChris Lattner case SIGEMT: return "SIGEMT"; // 7 EMT instruction 33*30fdc8d8SChris Lattner #endif // !_POSIX_C_SOURCE 34*30fdc8d8SChris Lattner case SIGFPE: return "SIGFPE"; // 8 floating point exception 35*30fdc8d8SChris Lattner case SIGKILL: return "SIGKILL"; // 9 kill (cannot be caught or ignored) 36*30fdc8d8SChris Lattner case SIGBUS: return "SIGBUS"; // 10 bus error 37*30fdc8d8SChris Lattner case SIGSEGV: return "SIGSEGV"; // 11 segmentation violation 38*30fdc8d8SChris Lattner case SIGSYS: return "SIGSYS"; // 12 bad argument to system call 39*30fdc8d8SChris Lattner case SIGPIPE: return "SIGPIPE"; // 13 write on a pipe with no one to read it 40*30fdc8d8SChris Lattner case SIGALRM: return "SIGALRM"; // 14 alarm clock 41*30fdc8d8SChris Lattner case SIGTERM: return "SIGTERM"; // 15 software termination signal from kill 42*30fdc8d8SChris Lattner case SIGURG: return "SIGURG"; // 16 urgent condition on IO channel 43*30fdc8d8SChris Lattner case SIGSTOP: return "SIGSTOP"; // 17 sendable stop signal not from tty 44*30fdc8d8SChris Lattner case SIGTSTP: return "SIGTSTP"; // 18 stop signal from tty 45*30fdc8d8SChris Lattner case SIGCONT: return "SIGCONT"; // 19 continue a stopped process 46*30fdc8d8SChris Lattner case SIGCHLD: return "SIGCHLD"; // 20 to parent on child stop or exit 47*30fdc8d8SChris Lattner case SIGTTIN: return "SIGTTIN"; // 21 to readers pgrp upon background tty read 48*30fdc8d8SChris Lattner case SIGTTOU: return "SIGTTOU"; // 22 like TTIN for output if (tp->t_local<OSTOP) 49*30fdc8d8SChris Lattner #if !defined(_POSIX_C_SOURCE) 50*30fdc8d8SChris Lattner case SIGIO: return "SIGIO"; // 23 input/output possible signal 51*30fdc8d8SChris Lattner #endif 52*30fdc8d8SChris Lattner case SIGXCPU: return "SIGXCPU"; // 24 exceeded CPU time limit 53*30fdc8d8SChris Lattner case SIGXFSZ: return "SIGXFSZ"; // 25 exceeded file size limit 54*30fdc8d8SChris Lattner case SIGVTALRM: return "SIGVTALRM"; // 26 virtual time alarm 55*30fdc8d8SChris Lattner case SIGPROF: return "SIGPROF"; // 27 profiling time alarm 56*30fdc8d8SChris Lattner #if !defined(_POSIX_C_SOURCE) 57*30fdc8d8SChris Lattner case SIGWINCH: return "SIGWINCH"; // 28 window size changes 58*30fdc8d8SChris Lattner case SIGINFO: return "SIGINFO"; // 29 information request 59*30fdc8d8SChris Lattner #endif 60*30fdc8d8SChris Lattner case SIGUSR1: return "SIGUSR1"; // 30 user defined signal 1 61*30fdc8d8SChris Lattner case SIGUSR2: return "SIGUSR2"; // 31 user defined signal 2 62*30fdc8d8SChris Lattner default: 63*30fdc8d8SChris Lattner break; 64*30fdc8d8SChris Lattner } 65*30fdc8d8SChris Lattner return NULL; 66*30fdc8d8SChris Lattner } 67