Chris Lattner | 30fdc8d | 2010-06-08 16:52:24 +0000 | [diff] [blame^] | 1 | //===-- SysSignal.cpp -------------------------------------------*- C++ -*-===// |
| 2 | // |
| 3 | // The LLVM Compiler Infrastructure |
| 4 | // |
| 5 | // This file is distributed under the University of Illinois Open Source |
| 6 | // License. See LICENSE.TXT for details. |
| 7 | // |
| 8 | //===----------------------------------------------------------------------===// |
| 9 | // |
| 10 | // Created by Greg Clayton on 6/18/07. |
| 11 | // |
| 12 | //===----------------------------------------------------------------------===// |
| 13 | |
| 14 | #include "SysSignal.h" |
| 15 | #include <signal.h> |
| 16 | #include <stddef.h> |
| 17 | |
| 18 | const char * |
| 19 | SysSignal::Name(int signal) |
| 20 | { |
| 21 | switch (signal) |
| 22 | { |
| 23 | case SIGHUP: return "SIGHUP"; // 1 hangup |
| 24 | case SIGINT: return "SIGINT"; // 2 interrupt |
| 25 | case SIGQUIT: return "SIGQUIT"; // 3 quit |
| 26 | case SIGILL: return "SIGILL"; // 4 illegal instruction (not reset when caught) |
| 27 | case SIGTRAP: return "SIGTRAP"; // 5 trace trap (not reset when caught) |
| 28 | case SIGABRT: return "SIGABRT"; // 6 abort() |
| 29 | #if defined(_POSIX_C_SOURCE) |
| 30 | case SIGPOLL: return "SIGPOLL"; // 7 pollable event ([XSR] generated, not supported) |
| 31 | #else // !_POSIX_C_SOURCE |
| 32 | case SIGEMT: return "SIGEMT"; // 7 EMT instruction |
| 33 | #endif // !_POSIX_C_SOURCE |
| 34 | case SIGFPE: return "SIGFPE"; // 8 floating point exception |
| 35 | case SIGKILL: return "SIGKILL"; // 9 kill (cannot be caught or ignored) |
| 36 | case SIGBUS: return "SIGBUS"; // 10 bus error |
| 37 | case SIGSEGV: return "SIGSEGV"; // 11 segmentation violation |
| 38 | case SIGSYS: return "SIGSYS"; // 12 bad argument to system call |
| 39 | case SIGPIPE: return "SIGPIPE"; // 13 write on a pipe with no one to read it |
| 40 | case SIGALRM: return "SIGALRM"; // 14 alarm clock |
| 41 | case SIGTERM: return "SIGTERM"; // 15 software termination signal from kill |
| 42 | case SIGURG: return "SIGURG"; // 16 urgent condition on IO channel |
| 43 | case SIGSTOP: return "SIGSTOP"; // 17 sendable stop signal not from tty |
| 44 | case SIGTSTP: return "SIGTSTP"; // 18 stop signal from tty |
| 45 | case SIGCONT: return "SIGCONT"; // 19 continue a stopped process |
| 46 | case SIGCHLD: return "SIGCHLD"; // 20 to parent on child stop or exit |
| 47 | case SIGTTIN: return "SIGTTIN"; // 21 to readers pgrp upon background tty read |
| 48 | case SIGTTOU: return "SIGTTOU"; // 22 like TTIN for output if (tp->t_local<OSTOP) |
| 49 | #if !defined(_POSIX_C_SOURCE) |
| 50 | case SIGIO: return "SIGIO"; // 23 input/output possible signal |
| 51 | #endif |
| 52 | case SIGXCPU: return "SIGXCPU"; // 24 exceeded CPU time limit |
| 53 | case SIGXFSZ: return "SIGXFSZ"; // 25 exceeded file size limit |
| 54 | case SIGVTALRM: return "SIGVTALRM"; // 26 virtual time alarm |
| 55 | case SIGPROF: return "SIGPROF"; // 27 profiling time alarm |
| 56 | #if !defined(_POSIX_C_SOURCE) |
| 57 | case SIGWINCH: return "SIGWINCH"; // 28 window size changes |
| 58 | case SIGINFO: return "SIGINFO"; // 29 information request |
| 59 | #endif |
| 60 | case SIGUSR1: return "SIGUSR1"; // 30 user defined signal 1 |
| 61 | case SIGUSR2: return "SIGUSR2"; // 31 user defined signal 2 |
| 62 | default: |
| 63 | break; |
| 64 | } |
| 65 | return NULL; |
| 66 | } |