130fdc8d8SChris Lattner //===-- SysSignal.cpp -------------------------------------------*- C++ -*-===// 230fdc8d8SChris Lattner // 32946cd70SChandler Carruth // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 42946cd70SChandler Carruth // See https://llvm.org/LICENSE.txt for license information. 52946cd70SChandler Carruth // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 630fdc8d8SChris Lattner // 730fdc8d8SChris Lattner //===----------------------------------------------------------------------===// 830fdc8d8SChris Lattner // 930fdc8d8SChris Lattner // Created by Greg Clayton on 6/18/07. 1030fdc8d8SChris Lattner // 1130fdc8d8SChris Lattner //===----------------------------------------------------------------------===// 1230fdc8d8SChris Lattner 1330fdc8d8SChris Lattner #include "SysSignal.h" 14*76e47d48SRaphael Isemann #include <csignal> 15*76e47d48SRaphael Isemann #include <cstddef> 1630fdc8d8SChris Lattner Name(int signal)17b9c1b51eSKate Stoneconst char *SysSignal::Name(int signal) { 18b9c1b51eSKate Stone switch (signal) { 19b9c1b51eSKate Stone case SIGHUP: 20b9c1b51eSKate Stone return "SIGHUP"; // 1 hangup 21b9c1b51eSKate Stone case SIGINT: 22b9c1b51eSKate Stone return "SIGINT"; // 2 interrupt 23b9c1b51eSKate Stone case SIGQUIT: 24b9c1b51eSKate Stone return "SIGQUIT"; // 3 quit 25b9c1b51eSKate Stone case SIGILL: 26b9c1b51eSKate Stone return "SIGILL"; // 4 illegal instruction (not reset when caught) 27b9c1b51eSKate Stone case SIGTRAP: 28b9c1b51eSKate Stone return "SIGTRAP"; // 5 trace trap (not reset when caught) 29b9c1b51eSKate Stone case SIGABRT: 30b9c1b51eSKate Stone return "SIGABRT"; // 6 abort() 3130fdc8d8SChris Lattner #if defined(_POSIX_C_SOURCE) 32b9c1b51eSKate Stone case SIGPOLL: 33b9c1b51eSKate Stone return "SIGPOLL"; // 7 pollable event ([XSR] generated, not supported) 3430fdc8d8SChris Lattner #else // !_POSIX_C_SOURCE 35b9c1b51eSKate Stone case SIGEMT: 36b9c1b51eSKate Stone return "SIGEMT"; // 7 EMT instruction 3730fdc8d8SChris Lattner #endif // !_POSIX_C_SOURCE 38b9c1b51eSKate Stone case SIGFPE: 39b9c1b51eSKate Stone return "SIGFPE"; // 8 floating point exception 40b9c1b51eSKate Stone case SIGKILL: 41b9c1b51eSKate Stone return "SIGKILL"; // 9 kill (cannot be caught or ignored) 42b9c1b51eSKate Stone case SIGBUS: 43b9c1b51eSKate Stone return "SIGBUS"; // 10 bus error 44b9c1b51eSKate Stone case SIGSEGV: 45b9c1b51eSKate Stone return "SIGSEGV"; // 11 segmentation violation 46b9c1b51eSKate Stone case SIGSYS: 47b9c1b51eSKate Stone return "SIGSYS"; // 12 bad argument to system call 48b9c1b51eSKate Stone case SIGPIPE: 49b9c1b51eSKate Stone return "SIGPIPE"; // 13 write on a pipe with no one to read it 50b9c1b51eSKate Stone case SIGALRM: 51b9c1b51eSKate Stone return "SIGALRM"; // 14 alarm clock 52b9c1b51eSKate Stone case SIGTERM: 53b9c1b51eSKate Stone return "SIGTERM"; // 15 software termination signal from kill 54b9c1b51eSKate Stone case SIGURG: 55b9c1b51eSKate Stone return "SIGURG"; // 16 urgent condition on IO channel 56b9c1b51eSKate Stone case SIGSTOP: 57b9c1b51eSKate Stone return "SIGSTOP"; // 17 sendable stop signal not from tty 58b9c1b51eSKate Stone case SIGTSTP: 59b9c1b51eSKate Stone return "SIGTSTP"; // 18 stop signal from tty 60b9c1b51eSKate Stone case SIGCONT: 61b9c1b51eSKate Stone return "SIGCONT"; // 19 continue a stopped process 62b9c1b51eSKate Stone case SIGCHLD: 63b9c1b51eSKate Stone return "SIGCHLD"; // 20 to parent on child stop or exit 64b9c1b51eSKate Stone case SIGTTIN: 65b9c1b51eSKate Stone return "SIGTTIN"; // 21 to readers pgrp upon background tty read 66b9c1b51eSKate Stone case SIGTTOU: 67b9c1b51eSKate Stone return "SIGTTOU"; // 22 like TTIN for output if (tp->t_local<OSTOP) 6830fdc8d8SChris Lattner #if !defined(_POSIX_C_SOURCE) 69b9c1b51eSKate Stone case SIGIO: 70b9c1b51eSKate Stone return "SIGIO"; // 23 input/output possible signal 7130fdc8d8SChris Lattner #endif 72b9c1b51eSKate Stone case SIGXCPU: 73b9c1b51eSKate Stone return "SIGXCPU"; // 24 exceeded CPU time limit 74b9c1b51eSKate Stone case SIGXFSZ: 75b9c1b51eSKate Stone return "SIGXFSZ"; // 25 exceeded file size limit 76b9c1b51eSKate Stone case SIGVTALRM: 77b9c1b51eSKate Stone return "SIGVTALRM"; // 26 virtual time alarm 78b9c1b51eSKate Stone case SIGPROF: 79b9c1b51eSKate Stone return "SIGPROF"; // 27 profiling time alarm 8030fdc8d8SChris Lattner #if !defined(_POSIX_C_SOURCE) 81b9c1b51eSKate Stone case SIGWINCH: 82b9c1b51eSKate Stone return "SIGWINCH"; // 28 window size changes 83b9c1b51eSKate Stone case SIGINFO: 84b9c1b51eSKate Stone return "SIGINFO"; // 29 information request 8530fdc8d8SChris Lattner #endif 86b9c1b51eSKate Stone case SIGUSR1: 87b9c1b51eSKate Stone return "SIGUSR1"; // 30 user defined signal 1 88b9c1b51eSKate Stone case SIGUSR2: 89b9c1b51eSKate Stone return "SIGUSR2"; // 31 user defined signal 2 9030fdc8d8SChris Lattner default: 9130fdc8d8SChris Lattner break; 9230fdc8d8SChris Lattner } 9330fdc8d8SChris Lattner return NULL; 9430fdc8d8SChris Lattner } 95