96 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			C++
		
	
	
	
			
		
		
	
	
			96 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			C++
		
	
	
	
//===-- SysSignal.cpp -------------------------------------------*- C++ -*-===//
 | 
						|
//
 | 
						|
//                     The LLVM Compiler Infrastructure
 | 
						|
//
 | 
						|
// This file is distributed under the University of Illinois Open Source
 | 
						|
// License. See LICENSE.TXT for details.
 | 
						|
//
 | 
						|
//===----------------------------------------------------------------------===//
 | 
						|
//
 | 
						|
//  Created by Greg Clayton on 6/18/07.
 | 
						|
//
 | 
						|
//===----------------------------------------------------------------------===//
 | 
						|
 | 
						|
#include "SysSignal.h"
 | 
						|
#include <signal.h>
 | 
						|
#include <stddef.h>
 | 
						|
 | 
						|
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;
 | 
						|
}
 |