//===-- SysSignal.cpp -------------------------------------------*- C++ -*-===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
// See https://llvm.org/LICENSE.txt for license information.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
//===----------------------------------------------------------------------===//
//
// Created by Greg Clayton on 6/18/07.
//
//===----------------------------------------------------------------------===//
#include "SysSignal.h"
#include <csignal>
#include <cstddef>
const char *SysSignal::Name(int signal) {
switch (signal) {
case SIGHUP:
return "SIGHUP"; // 1 hangup
case SIGINT:
return "SIGINT"; // 2 interrupt
case SIGQUIT:
return "SIGQUIT"; // 3 quit
case SIGILL:
return "SIGILL"; // 4 illegal instruction (not reset when caught)
case SIGTRAP:
return "SIGTRAP"; // 5 trace trap (not reset when caught)
case SIGABRT:
return "SIGABRT"; // 6 abort()
#if defined(_POSIX_C_SOURCE)
case SIGPOLL:
return "SIGPOLL"; // 7 pollable event ([XSR] generated, not supported)
#else // !_POSIX_C_SOURCE
case SIGEMT:
return "SIGEMT"; // 7 EMT instruction
#endif // !_POSIX_C_SOURCE
case SIGFPE:
return "SIGFPE"; // 8 floating point exception
case SIGKILL:
return "SIGKILL"; // 9 kill (cannot be caught or ignored)
case SIGBUS:
return "SIGBUS"; // 10 bus error
case SIGSEGV:
return "SIGSEGV"; // 11 segmentation violation
case SIGSYS:
return "SIGSYS"; // 12 bad argument to system call
case SIGPIPE:
return "SIGPIPE"; // 13 write on a pipe with no one to read it
case SIGALRM:
return "SIGALRM"; // 14 alarm clock
case SIGTERM:
return "SIGTERM"; // 15 software termination signal from kill
case SIGURG:
return "SIGURG"; // 16 urgent condition on IO channel
case SIGSTOP:
return "SIGSTOP"; // 17 sendable stop signal not from tty
case SIGTSTP:
return "SIGTSTP"; // 18 stop signal from tty
case SIGCONT:
return "SIGCONT"; // 19 continue a stopped process
case SIGCHLD:
return "SIGCHLD"; // 20 to parent on child stop or exit
case SIGTTIN:
return "SIGTTIN"; // 21 to readers pgrp upon background tty read
case SIGTTOU:
return "SIGTTOU"; // 22 like TTIN for output if (tp->t_local<OSTOP)
#if !defined(_POSIX_C_SOURCE)
case SIGIO:
return "SIGIO"; // 23 input/output possible signal
#endif
case SIGXCPU:
return "SIGXCPU"; // 24 exceeded CPU time limit
case SIGXFSZ:
return "SIGXFSZ"; // 25 exceeded file size limit
case SIGVTALRM:
return "SIGVTALRM"; // 26 virtual time alarm
case SIGPROF:
return "SIGPROF"; // 27 profiling time alarm
#if !defined(_POSIX_C_SOURCE)
case SIGWINCH:
return "SIGWINCH"; // 28 window size changes
case SIGINFO:
return "SIGINFO"; // 29 information request
#endif
case SIGUSR1:
return "SIGUSR1"; // 30 user defined signal 1
case SIGUSR2:
return "SIGUSR2"; // 31 user defined signal 2
default:
break;
}
return NULL;
}