124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner//===-- SysSignal.cpp -------------------------------------------*- C++ -*-===// 224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner// 324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner// The LLVM Compiler Infrastructure 424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner// 524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner// This file is distributed under the University of Illinois Open Source 624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner// License. See LICENSE.TXT for details. 724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner// 824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner//===----------------------------------------------------------------------===// 924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner// 1024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner// Created by Greg Clayton on 6/18/07. 1124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner// 1224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner//===----------------------------------------------------------------------===// 1324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 1424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner#include "SysSignal.h" 1524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner#include <signal.h> 1624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner#include <stddef.h> 1724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 1824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerconst char * 1924943d2ee8bfaa7cf5893e4709143924157a5c1eChris LattnerSysSignal::Name(int signal) 2024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner{ 2124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner switch (signal) 2224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner { 2324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner case SIGHUP: return "SIGHUP"; // 1 hangup 2424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner case SIGINT: return "SIGINT"; // 2 interrupt 2524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner case SIGQUIT: return "SIGQUIT"; // 3 quit 2624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner case SIGILL: return "SIGILL"; // 4 illegal instruction (not reset when caught) 2724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner case SIGTRAP: return "SIGTRAP"; // 5 trace trap (not reset when caught) 2824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner case SIGABRT: return "SIGABRT"; // 6 abort() 2924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner#if defined(_POSIX_C_SOURCE) 3024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner case SIGPOLL: return "SIGPOLL"; // 7 pollable event ([XSR] generated, not supported) 3124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner#else // !_POSIX_C_SOURCE 3224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner case SIGEMT: return "SIGEMT"; // 7 EMT instruction 3324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner#endif // !_POSIX_C_SOURCE 3424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner case SIGFPE: return "SIGFPE"; // 8 floating point exception 3524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner case SIGKILL: return "SIGKILL"; // 9 kill (cannot be caught or ignored) 3624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner case SIGBUS: return "SIGBUS"; // 10 bus error 3724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner case SIGSEGV: return "SIGSEGV"; // 11 segmentation violation 3824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner case SIGSYS: return "SIGSYS"; // 12 bad argument to system call 3924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner case SIGPIPE: return "SIGPIPE"; // 13 write on a pipe with no one to read it 4024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner case SIGALRM: return "SIGALRM"; // 14 alarm clock 4124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner case SIGTERM: return "SIGTERM"; // 15 software termination signal from kill 4224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner case SIGURG: return "SIGURG"; // 16 urgent condition on IO channel 4324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner case SIGSTOP: return "SIGSTOP"; // 17 sendable stop signal not from tty 4424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner case SIGTSTP: return "SIGTSTP"; // 18 stop signal from tty 4524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner case SIGCONT: return "SIGCONT"; // 19 continue a stopped process 4624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner case SIGCHLD: return "SIGCHLD"; // 20 to parent on child stop or exit 4724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner case SIGTTIN: return "SIGTTIN"; // 21 to readers pgrp upon background tty read 4824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner case SIGTTOU: return "SIGTTOU"; // 22 like TTIN for output if (tp->t_local<OSTOP) 4924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner#if !defined(_POSIX_C_SOURCE) 5024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner case SIGIO: return "SIGIO"; // 23 input/output possible signal 5124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner#endif 5224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner case SIGXCPU: return "SIGXCPU"; // 24 exceeded CPU time limit 5324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner case SIGXFSZ: return "SIGXFSZ"; // 25 exceeded file size limit 5424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner case SIGVTALRM: return "SIGVTALRM"; // 26 virtual time alarm 5524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner case SIGPROF: return "SIGPROF"; // 27 profiling time alarm 5624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner#if !defined(_POSIX_C_SOURCE) 5724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner case SIGWINCH: return "SIGWINCH"; // 28 window size changes 5824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner case SIGINFO: return "SIGINFO"; // 29 information request 5924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner#endif 6024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner case SIGUSR1: return "SIGUSR1"; // 30 user defined signal 1 6124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner case SIGUSR2: return "SIGUSR2"; // 31 user defined signal 2 6224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner default: 6324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner break; 6424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner } 6524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner return NULL; 6624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner} 67