Home | History | Annotate | Download | only in lib
      1 /*
      2  * Copyright (c) 2014 Fujitsu Ltd.
      3  * Author: Xiaoguang Wang <wangxg.fnst (at) cn.fujitsu.com>
      4  *
      5  * This program is free software; you can redistribute it and/or modify it
      6  * under the terms of version 2 of the GNU General Public License as
      7  * published by the Free Software Foundation.
      8  *
      9  * This program is distributed in the hope that it would be useful, but
     10  * WITHOUT ANY WARRANTY; without even the implied warranty of
     11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
     12  *
     13  * You should have received a copy of the GNU General Public License along
     14  * with this program; if not, write the Free Software Foundation, Inc.,
     15  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
     16  */
     17 
     18 const char *tst_strsig(int sig)
     19 {
     20 	static const struct pair signal_pairs[] = {
     21 		PAIR(SIGHUP)
     22 		PAIR(SIGINT)
     23 		PAIR(SIGQUIT)
     24 		PAIR(SIGILL)
     25 	#ifdef SIGTRAP
     26 		PAIR(SIGTRAP)
     27 	#endif
     28 
     29 	#ifdef SIGIOT
     30 		/* SIGIOT same as SIGABRT */
     31 		STRPAIR(SIGABRT, "SIGIOT/SIGABRT")
     32 	#else
     33 		PAIR(SIGABRT)
     34 	#endif
     35 
     36 	#ifdef SIGEMT
     37 		PAIR(SIGEMT)
     38 	#endif
     39 	#ifdef SIGBUS
     40 		PAIR(SIGBUS)
     41 	#endif
     42 		PAIR(SIGFPE)
     43 		PAIR(SIGKILL)
     44 		PAIR(SIGUSR1)
     45 		PAIR(SIGSEGV)
     46 		PAIR(SIGUSR2)
     47 		PAIR(SIGPIPE)
     48 		PAIR(SIGALRM)
     49 		PAIR(SIGTERM)
     50 	#ifdef SIGSTKFLT
     51 		PAIR(SIGSTKFLT)
     52 	#endif
     53 		PAIR(SIGCHLD)
     54 		PAIR(SIGCONT)
     55 		PAIR(SIGSTOP)
     56 		PAIR(SIGTSTP)
     57 		PAIR(SIGTTIN)
     58 		PAIR(SIGTTOU)
     59 	#ifdef SIGURG
     60 		PAIR(SIGURG)
     61 	#endif
     62 	#ifdef SIGXCPU
     63 		PAIR(SIGXCPU)
     64 	#endif
     65 	#ifdef SIGXFSZ
     66 		PAIR(SIGXFSZ)
     67 	#endif
     68 	#ifdef SIGVTALRM
     69 		PAIR(SIGVTALRM)
     70 	#endif
     71 	#ifdef SIGPROF
     72 		PAIR(SIGPROF)
     73 	#endif
     74 	#ifdef SIGWINCH
     75 		PAIR(SIGWINCH)
     76 	#endif
     77 
     78 	#if defined(SIGIO) && defined(SIGPOLL)
     79 		/* SIGPOLL same as SIGIO */
     80 		STRPAIR(SIGIO, "SIGIO/SIGPOLL")
     81 	#elif defined(SIGIO)
     82 		PAIR(SIGIO)
     83 	#elif defined(SIGPOLL)
     84 		PAIR(SIGPOLL)
     85 	#endif
     86 
     87 	#ifdef SIGINFO
     88 		PAIR(SIGINFO)
     89 	#endif
     90 	#ifdef SIGLOST
     91 		PAIR(SIGLOST)
     92 	#endif
     93 	#ifdef SIGPWR
     94 		PAIR(SIGPWR)
     95 	#endif
     96 	#if defined(SIGSYS)
     97 		/*
     98 		 * According to signal(7)'s manpage, SIGUNUSED is synonymous
     99 		 * with SIGSYS on most architectures.
    100 		 */
    101 		STRPAIR(SIGSYS, "SIGSYS/SIGUNUSED")
    102 	#endif
    103 	};
    104 
    105 	PAIR_LOOKUP(signal_pairs, sig);
    106 };
    107