1061da546Spatrick //===-- SysSignal.cpp -------------------------------------------*- C++ -*-===// 2061da546Spatrick // 3061da546Spatrick // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4061da546Spatrick // See https://llvm.org/LICENSE.txt for license information. 5061da546Spatrick // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6061da546Spatrick // 7061da546Spatrick //===----------------------------------------------------------------------===// 8061da546Spatrick // 9061da546Spatrick // Created by Greg Clayton on 6/18/07. 10061da546Spatrick // 11061da546Spatrick //===----------------------------------------------------------------------===// 12061da546Spatrick 13061da546Spatrick #include "SysSignal.h" 14*be691f3bSpatrick #include <csignal> 15*be691f3bSpatrick #include <cstddef> 16061da546Spatrick Name(int signal)17061da546Spatrickconst char *SysSignal::Name(int signal) { 18061da546Spatrick switch (signal) { 19061da546Spatrick case SIGHUP: 20061da546Spatrick return "SIGHUP"; // 1 hangup 21061da546Spatrick case SIGINT: 22061da546Spatrick return "SIGINT"; // 2 interrupt 23061da546Spatrick case SIGQUIT: 24061da546Spatrick return "SIGQUIT"; // 3 quit 25061da546Spatrick case SIGILL: 26061da546Spatrick return "SIGILL"; // 4 illegal instruction (not reset when caught) 27061da546Spatrick case SIGTRAP: 28061da546Spatrick return "SIGTRAP"; // 5 trace trap (not reset when caught) 29061da546Spatrick case SIGABRT: 30061da546Spatrick return "SIGABRT"; // 6 abort() 31061da546Spatrick #if defined(_POSIX_C_SOURCE) 32061da546Spatrick case SIGPOLL: 33061da546Spatrick return "SIGPOLL"; // 7 pollable event ([XSR] generated, not supported) 34061da546Spatrick #else // !_POSIX_C_SOURCE 35061da546Spatrick case SIGEMT: 36061da546Spatrick return "SIGEMT"; // 7 EMT instruction 37061da546Spatrick #endif // !_POSIX_C_SOURCE 38061da546Spatrick case SIGFPE: 39061da546Spatrick return "SIGFPE"; // 8 floating point exception 40061da546Spatrick case SIGKILL: 41061da546Spatrick return "SIGKILL"; // 9 kill (cannot be caught or ignored) 42061da546Spatrick case SIGBUS: 43061da546Spatrick return "SIGBUS"; // 10 bus error 44061da546Spatrick case SIGSEGV: 45061da546Spatrick return "SIGSEGV"; // 11 segmentation violation 46061da546Spatrick case SIGSYS: 47061da546Spatrick return "SIGSYS"; // 12 bad argument to system call 48061da546Spatrick case SIGPIPE: 49061da546Spatrick return "SIGPIPE"; // 13 write on a pipe with no one to read it 50061da546Spatrick case SIGALRM: 51061da546Spatrick return "SIGALRM"; // 14 alarm clock 52061da546Spatrick case SIGTERM: 53061da546Spatrick return "SIGTERM"; // 15 software termination signal from kill 54061da546Spatrick case SIGURG: 55061da546Spatrick return "SIGURG"; // 16 urgent condition on IO channel 56061da546Spatrick case SIGSTOP: 57061da546Spatrick return "SIGSTOP"; // 17 sendable stop signal not from tty 58061da546Spatrick case SIGTSTP: 59061da546Spatrick return "SIGTSTP"; // 18 stop signal from tty 60061da546Spatrick case SIGCONT: 61061da546Spatrick return "SIGCONT"; // 19 continue a stopped process 62061da546Spatrick case SIGCHLD: 63061da546Spatrick return "SIGCHLD"; // 20 to parent on child stop or exit 64061da546Spatrick case SIGTTIN: 65061da546Spatrick return "SIGTTIN"; // 21 to readers pgrp upon background tty read 66061da546Spatrick case SIGTTOU: 67061da546Spatrick return "SIGTTOU"; // 22 like TTIN for output if (tp->t_local<OSTOP) 68061da546Spatrick #if !defined(_POSIX_C_SOURCE) 69061da546Spatrick case SIGIO: 70061da546Spatrick return "SIGIO"; // 23 input/output possible signal 71061da546Spatrick #endif 72061da546Spatrick case SIGXCPU: 73061da546Spatrick return "SIGXCPU"; // 24 exceeded CPU time limit 74061da546Spatrick case SIGXFSZ: 75061da546Spatrick return "SIGXFSZ"; // 25 exceeded file size limit 76061da546Spatrick case SIGVTALRM: 77061da546Spatrick return "SIGVTALRM"; // 26 virtual time alarm 78061da546Spatrick case SIGPROF: 79061da546Spatrick return "SIGPROF"; // 27 profiling time alarm 80061da546Spatrick #if !defined(_POSIX_C_SOURCE) 81061da546Spatrick case SIGWINCH: 82061da546Spatrick return "SIGWINCH"; // 28 window size changes 83061da546Spatrick case SIGINFO: 84061da546Spatrick return "SIGINFO"; // 29 information request 85061da546Spatrick #endif 86061da546Spatrick case SIGUSR1: 87061da546Spatrick return "SIGUSR1"; // 30 user defined signal 1 88061da546Spatrick case SIGUSR2: 89061da546Spatrick return "SIGUSR2"; // 31 user defined signal 2 90061da546Spatrick default: 91061da546Spatrick break; 92061da546Spatrick } 93061da546Spatrick return NULL; 94061da546Spatrick } 95