Home | History | Annotate | Download | only in source
      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&LTOSTOP)
     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 }
     67