xref: /openbsd-src/gnu/llvm/lldb/tools/debugserver/source/SysSignal.cpp (revision be691f3bb6417f04a68938fadbcaee2d5795e764)
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)17061da546Spatrick const 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&LTOSTOP)
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