| #include <signal.h> | 
 | #include <unistd.h> | 
 |  | 
 |  | 
 | /* Signal handlers, we set breakpoints in them to make sure that the | 
 |    signals really get delivered.  */ | 
 |  | 
 | void | 
 | handle_ABRT (int sig) | 
 | { | 
 | } | 
 |  | 
 | void | 
 | handle_HUP (int sig) | 
 | { | 
 | } | 
 |  | 
 | void | 
 | handle_QUIT (int sig) | 
 | { | 
 | } | 
 |  | 
 | void | 
 | handle_ILL (int sig) | 
 | { | 
 | } | 
 |  | 
 | void | 
 | handle_EMT (int sig) | 
 | { | 
 | } | 
 |  | 
 | void | 
 | handle_FPE (int sig) | 
 | { | 
 | } | 
 |  | 
 | void | 
 | handle_BUS (int sig) | 
 | { | 
 | } | 
 |  | 
 | void | 
 | handle_SEGV (int sig) | 
 | { | 
 | } | 
 |  | 
 | void | 
 | handle_SYS (int sig) | 
 | { | 
 | } | 
 |  | 
 | void | 
 | handle_PIPE (int sig) | 
 | { | 
 | } | 
 |  | 
 | void | 
 | handle_ALRM (int sig) | 
 | { | 
 | } | 
 |  | 
 | void | 
 | handle_URG (int sig) | 
 | { | 
 | } | 
 |  | 
 | void | 
 | handle_TSTP (int sig) | 
 | { | 
 | } | 
 |  | 
 | void | 
 | handle_CONT (int sig) | 
 | { | 
 | } | 
 |  | 
 | void | 
 | handle_CHLD (int sig) | 
 | { | 
 | } | 
 |  | 
 | void | 
 | handle_TTIN (int sig) | 
 | { | 
 | } | 
 |  | 
 | void | 
 | handle_TTOU (int sig) | 
 | { | 
 | } | 
 |  | 
 | void | 
 | handle_IO (int sig) | 
 | { | 
 | } | 
 |  | 
 | void | 
 | handle_XCPU (int sig) | 
 | { | 
 | } | 
 |  | 
 | void | 
 | handle_XFSZ (int sig) | 
 | { | 
 | } | 
 |  | 
 | void | 
 | handle_VTALRM (int sig) | 
 | { | 
 | } | 
 |  | 
 | void | 
 | handle_PROF (int sig) | 
 | { | 
 | } | 
 |  | 
 | void | 
 | handle_WINCH (int sig) | 
 | { | 
 | } | 
 |  | 
 | void | 
 | handle_LOST (int sig) | 
 | { | 
 | } | 
 |  | 
 | void | 
 | handle_USR1 (int sig) | 
 | { | 
 | } | 
 |  | 
 | void | 
 | handle_USR2 (int sig) | 
 | { | 
 | } | 
 |  | 
 | void | 
 | handle_PWR (int sig) | 
 | { | 
 | } | 
 |  | 
 | void | 
 | handle_POLL (int sig) | 
 | { | 
 | } | 
 |  | 
 | void | 
 | handle_WIND (int sig) | 
 | { | 
 | } | 
 |  | 
 | void | 
 | handle_PHONE (int sig) | 
 | { | 
 | } | 
 |  | 
 | void | 
 | handle_WAITING (int sig) | 
 | { | 
 | } | 
 |  | 
 | void | 
 | handle_LWP (int sig) | 
 | { | 
 | } | 
 |  | 
 | void | 
 | handle_DANGER (int sig) | 
 | { | 
 | } | 
 |  | 
 | void | 
 | handle_GRANT (int sig) | 
 | { | 
 | } | 
 |  | 
 | void | 
 | handle_RETRACT (int sig) | 
 | { | 
 | } | 
 |  | 
 | void | 
 | handle_MSG (int sig) | 
 | { | 
 | } | 
 |  | 
 | void | 
 | handle_SOUND (int sig) | 
 | { | 
 | } | 
 |  | 
 | void | 
 | handle_SAK (int sig) | 
 | { | 
 | } | 
 |  | 
 | void | 
 | handle_PRIO (int sig) | 
 | { | 
 | } | 
 |  | 
 | void | 
 | handle_33 (int sig) | 
 | { | 
 | } | 
 |  | 
 | void | 
 | handle_34 (int sig) | 
 | { | 
 | } | 
 |  | 
 | void | 
 | handle_35 (int sig) | 
 | { | 
 | } | 
 |  | 
 | void | 
 | handle_36 (int sig) | 
 | { | 
 | } | 
 |  | 
 | void | 
 | handle_37 (int sig) | 
 | { | 
 | } | 
 |  | 
 | void | 
 | handle_38 (int sig) | 
 | { | 
 | } | 
 |  | 
 | void | 
 | handle_39 (int sig) | 
 | { | 
 | } | 
 |  | 
 | void | 
 | handle_40 (int sig) | 
 | { | 
 | } | 
 |  | 
 | void | 
 | handle_41 (int sig) | 
 | { | 
 | } | 
 |  | 
 | void | 
 | handle_42 (int sig) | 
 | { | 
 | } | 
 |  | 
 | void | 
 | handle_43 (int sig) | 
 | { | 
 | } | 
 |  | 
 | void | 
 | handle_44 (int sig) | 
 | { | 
 | } | 
 |  | 
 | void | 
 | handle_45 (int sig) | 
 | { | 
 | } | 
 |  | 
 | void | 
 | handle_46 (int sig) | 
 | { | 
 | } | 
 |  | 
 | void | 
 | handle_47 (int sig) | 
 | { | 
 | } | 
 |  | 
 | void | 
 | handle_48 (int sig) | 
 | { | 
 | } | 
 |  | 
 | void | 
 | handle_49 (int sig) | 
 | { | 
 | } | 
 |  | 
 | void | 
 | handle_50 (int sig) | 
 | { | 
 | } | 
 |  | 
 | void | 
 | handle_51 (int sig) | 
 | { | 
 | } | 
 |  | 
 | void | 
 | handle_52 (int sig) | 
 | { | 
 | } | 
 |  | 
 | void | 
 | handle_53 (int sig) | 
 | { | 
 | } | 
 |  | 
 | void | 
 | handle_54 (int sig) | 
 | { | 
 | } | 
 |  | 
 | void | 
 | handle_55 (int sig) | 
 | { | 
 | } | 
 |  | 
 | void | 
 | handle_56 (int sig) | 
 | { | 
 | } | 
 |  | 
 | void | 
 | handle_57 (int sig) | 
 | { | 
 | } | 
 |  | 
 | void | 
 | handle_58 (int sig) | 
 | { | 
 | } | 
 |  | 
 | void | 
 | handle_59 (int sig) | 
 | { | 
 | } | 
 |  | 
 | void | 
 | handle_60 (int sig) | 
 | { | 
 | } | 
 |  | 
 | void | 
 | handle_61 (int sig) | 
 | { | 
 | } | 
 |  | 
 | void | 
 | handle_62 (int sig) | 
 | { | 
 | } | 
 |  | 
 | void | 
 | handle_63 (int sig) | 
 | { | 
 | } | 
 |  | 
 | void | 
 | handle_TERM (int sig) | 
 | { | 
 | } | 
 |  | 
 | /* Functions to send signals.  These also serve as markers. | 
 |    Ordered ANSI-standard signals first, other signals second, | 
 |    with signals in each block ordered by their numerical values | 
 |    on a typical POSIX platform.  */ | 
 |  | 
 | /* SIGINT, SIGILL, SIGABRT, SIGFPE, SIGSEGV and SIGTERM | 
 |    are ANSI-standard signals and are always available.  */ | 
 |  | 
 | int | 
 | gen_ILL () | 
 | { | 
 |   kill (getpid (), SIGILL); | 
 |   return 0; | 
 | } | 
 |  | 
 | int | 
 | gen_ABRT () | 
 | { | 
 |   kill (getpid (), SIGABRT); | 
 |   return 0; | 
 | }   | 
 |  | 
 | int x; | 
 |  | 
 | int | 
 | gen_FPE () | 
 | { | 
 |   /* The intent behind generating SIGFPE this way is to check the mapping | 
 |      from the CPU exception itself to the signals.  It would be nice to | 
 |      do the same for SIGBUS, SIGSEGV, etc., but I suspect that even this | 
 |      test might turn out to be insufficiently portable.  */ | 
 |  | 
 | #if 0 | 
 |   /* Loses on the PA because after the signal handler executes we try to | 
 |      re-execute the failing instruction again.  Perhaps we could siglongjmp | 
 |      out of the signal handler?  */ | 
 |   /* The expect script looks for the word "kill"; don't delete it.  */ | 
 |   return 5 / x; /* and we both started jumping up and down yelling kill */ | 
 | #else | 
 |   kill (getpid (), SIGFPE); | 
 | #endif | 
 |   return 0; | 
 | } | 
 |  | 
 | int | 
 | gen_SEGV () | 
 | { | 
 |   kill (getpid (), SIGSEGV); | 
 |   return 0; | 
 | } | 
 |  | 
 | int | 
 | gen_TERM () | 
 | { | 
 |   kill (getpid (), SIGTERM); | 
 |   return 0; | 
 | } | 
 |  | 
 | /* All other signals need preprocessor conditionals.  */ | 
 |  | 
 | int | 
 | gen_HUP () | 
 | { | 
 | #ifdef SIGHUP | 
 |   kill (getpid (), SIGHUP); | 
 | #else | 
 |   handle_HUP (0); | 
 | #endif | 
 | return 0; | 
 | }   | 
 |  | 
 | int | 
 | gen_QUIT () | 
 | { | 
 | #ifdef SIGQUIT | 
 |   kill (getpid (), SIGQUIT); | 
 | #else | 
 |   handle_QUIT (0); | 
 | #endif | 
 | return 0; | 
 | } | 
 |  | 
 | int | 
 | gen_EMT () | 
 | { | 
 | #ifdef SIGEMT | 
 |   kill (getpid (), SIGEMT); | 
 | #else | 
 |   handle_EMT (0); | 
 | #endif | 
 | return 0; | 
 | } | 
 |  | 
 | int | 
 | gen_BUS () | 
 | { | 
 | #ifdef SIGBUS | 
 |   kill (getpid (), SIGBUS); | 
 | #else | 
 |   handle_BUS (0); | 
 | #endif | 
 | return 0; | 
 | } | 
 |  | 
 | int | 
 | gen_SYS () | 
 | { | 
 | #ifdef SIGSYS | 
 |   kill (getpid (), SIGSYS); | 
 | #else | 
 |   handle_SYS (0); | 
 | #endif | 
 | return 0; | 
 | } | 
 |  | 
 | int | 
 | gen_PIPE () | 
 | { | 
 | #ifdef SIGPIPE | 
 |   kill (getpid (), SIGPIPE); | 
 | #else | 
 |   handle_PIPE (0); | 
 | #endif | 
 | return 0; | 
 | } | 
 |  | 
 | int | 
 | gen_ALRM () | 
 | { | 
 | #ifdef SIGALRM | 
 |   kill (getpid (), SIGALRM); | 
 | #else | 
 |   handle_ALRM (0); | 
 | #endif | 
 | return 0; | 
 | } | 
 |  | 
 | int | 
 | gen_URG () | 
 | { | 
 | #ifdef SIGURG | 
 |   kill (getpid (), SIGURG); | 
 | #else | 
 |   handle_URG (0); | 
 | #endif | 
 | return 0; | 
 | } | 
 |  | 
 | int | 
 | gen_TSTP () | 
 | { | 
 | #ifdef SIGTSTP | 
 |   kill (getpid (), SIGTSTP); | 
 | #else | 
 |   handle_TSTP (0); | 
 | #endif | 
 | return 0; | 
 | } | 
 |  | 
 | int | 
 | gen_CONT () | 
 | { | 
 | #ifdef SIGCONT | 
 |   kill (getpid (), SIGCONT); | 
 | #else | 
 |   handle_CONT (0); | 
 | #endif | 
 | return 0; | 
 | } | 
 |  | 
 | int | 
 | gen_CHLD () | 
 | { | 
 | #ifdef SIGCHLD | 
 |   kill (getpid (), SIGCHLD); | 
 | #else | 
 |   handle_CHLD (0); | 
 | #endif | 
 | return 0; | 
 | } | 
 |  | 
 | int | 
 | gen_TTIN () | 
 | { | 
 | #ifdef SIGTTIN | 
 |   kill (getpid (), SIGTTIN); | 
 | #else | 
 |   handle_TTIN (0); | 
 | #endif | 
 | return 0; | 
 | } | 
 |  | 
 | int | 
 | gen_TTOU () | 
 | { | 
 | #ifdef SIGTTOU | 
 |   kill (getpid (), SIGTTOU); | 
 | #else | 
 |   handle_TTOU (0); | 
 | #endif | 
 | return 0; | 
 | } | 
 |  | 
 | int | 
 | gen_IO () | 
 | { | 
 | #ifdef SIGIO | 
 |   kill (getpid (), SIGIO); | 
 | #else | 
 |   handle_IO (0); | 
 | #endif | 
 | return 0; | 
 | } | 
 |  | 
 | int | 
 | gen_XCPU () | 
 | { | 
 | #ifdef SIGXCPU | 
 |   kill (getpid (), SIGXCPU); | 
 | #else | 
 |   handle_XCPU (0); | 
 | #endif | 
 | return 0; | 
 | } | 
 |  | 
 | int | 
 | gen_XFSZ () | 
 | { | 
 | #ifdef SIGXFSZ | 
 |   kill (getpid (), SIGXFSZ); | 
 | #else | 
 |   handle_XFSZ (0); | 
 | #endif | 
 | return 0; | 
 | } | 
 |  | 
 | int | 
 | gen_VTALRM () | 
 | { | 
 | #ifdef SIGVTALRM | 
 |   kill (getpid (), SIGVTALRM); | 
 | #else | 
 |   handle_VTALRM (0); | 
 | #endif | 
 | return 0; | 
 | } | 
 |  | 
 | int | 
 | gen_PROF () | 
 | { | 
 | #ifdef SIGPROF | 
 |   kill (getpid (), SIGPROF); | 
 | #else | 
 |   handle_PROF (0); | 
 | #endif | 
 | return 0; | 
 | } | 
 |  | 
 | int | 
 | gen_WINCH () | 
 | { | 
 | #ifdef SIGWINCH | 
 |   kill (getpid (), SIGWINCH); | 
 | #else | 
 |   handle_WINCH (0); | 
 | #endif | 
 | return 0; | 
 | } | 
 |  | 
 | int | 
 | gen_LOST () | 
 | { | 
 | #if defined(SIGLOST) && SIGLOST != SIGABRT | 
 |   kill (getpid (), SIGLOST); | 
 | #else | 
 |   handle_LOST (0); | 
 | #endif | 
 | return 0; | 
 | } | 
 |  | 
 | int | 
 | gen_USR1 () | 
 | { | 
 | #ifdef SIGUSR1 | 
 |   kill (getpid (), SIGUSR1); | 
 | #else | 
 |   handle_USR1 (0); | 
 | #endif | 
 | return 0; | 
 | } | 
 |  | 
 | int | 
 | gen_USR2 () | 
 | { | 
 | #ifdef SIGUSR2 | 
 |   kill (getpid (), SIGUSR2); | 
 | #else | 
 |   handle_USR2 (0); | 
 | #endif | 
 | return 0; | 
 | }   | 
 |  | 
 | int | 
 | gen_PWR () | 
 | { | 
 | #if defined(SIGPWR) && (!defined (SIGLOST) || SIGPWR != SIGLOST) | 
 |   kill (getpid (), SIGPWR); | 
 | #else | 
 |   handle_PWR (0); | 
 | #endif | 
 | return 0; | 
 | } | 
 |  | 
 | int | 
 | gen_POLL () | 
 | { | 
 | #if defined (SIGPOLL) && (!defined (SIGIO) || SIGPOLL != SIGIO) | 
 |   kill (getpid (), SIGPOLL); | 
 | #else | 
 |   handle_POLL (0); | 
 | #endif | 
 | return 0; | 
 | } | 
 |  | 
 | int | 
 | gen_WIND () | 
 | { | 
 | #ifdef SIGWIND | 
 |   kill (getpid (), SIGWIND); | 
 | #else | 
 |   handle_WIND (0); | 
 | #endif | 
 | return 0; | 
 | } | 
 |  | 
 | int | 
 | gen_PHONE () | 
 | { | 
 | #ifdef SIGPHONE | 
 |   kill (getpid (), SIGPHONE); | 
 | #else | 
 |   handle_PHONE (0); | 
 | #endif | 
 | return 0; | 
 | } | 
 |  | 
 | int | 
 | gen_WAITING () | 
 | { | 
 | #ifdef SIGWAITING | 
 |   kill (getpid (), SIGWAITING); | 
 | #else | 
 |   handle_WAITING (0); | 
 | #endif | 
 | return 0; | 
 | } | 
 |  | 
 | int | 
 | gen_LWP () | 
 | { | 
 | #ifdef SIGLWP | 
 |   kill (getpid (), SIGLWP); | 
 | #else | 
 |   handle_LWP (0); | 
 | #endif | 
 | return 0; | 
 | } | 
 |  | 
 | int | 
 | gen_DANGER () | 
 | { | 
 | #ifdef SIGDANGER | 
 |   kill (getpid (), SIGDANGER); | 
 | #else | 
 |   handle_DANGER (0); | 
 | #endif | 
 | return 0; | 
 | } | 
 |  | 
 | int | 
 | gen_GRANT () | 
 | { | 
 | #ifdef SIGGRANT | 
 |   kill (getpid (), SIGGRANT); | 
 | #else | 
 |   handle_GRANT (0); | 
 | #endif | 
 | return 0; | 
 | } | 
 |  | 
 | int | 
 | gen_RETRACT () | 
 | { | 
 | #ifdef SIGRETRACT | 
 |   kill (getpid (), SIGRETRACT); | 
 | #else | 
 |   handle_RETRACT (0); | 
 | #endif | 
 | return 0; | 
 | } | 
 |  | 
 | int | 
 | gen_MSG () | 
 | { | 
 | #ifdef SIGMSG | 
 |   kill (getpid (), SIGMSG); | 
 | #else | 
 |   handle_MSG (0); | 
 | #endif | 
 | return 0; | 
 | } | 
 |  | 
 | int | 
 | gen_SOUND () | 
 | { | 
 | #ifdef SIGSOUND | 
 |   kill (getpid (), SIGSOUND); | 
 | #else | 
 |   handle_SOUND (0); | 
 | #endif | 
 | return 0; | 
 | } | 
 |  | 
 | int | 
 | gen_SAK () | 
 | { | 
 | #ifdef SIGSAK | 
 |   kill (getpid (), SIGSAK); | 
 | #else | 
 |   handle_SAK (0); | 
 | #endif | 
 | return 0; | 
 | } | 
 |  | 
 | int | 
 | gen_PRIO () | 
 | { | 
 | #ifdef SIGPRIO | 
 |   kill (getpid (), SIGPRIO); | 
 | #else | 
 |   handle_PRIO (0); | 
 | #endif | 
 | return 0; | 
 | } | 
 |  | 
 | int | 
 | gen_33 () | 
 | { | 
 | #ifdef SIG33 | 
 |   kill (getpid (), 33); | 
 | #else | 
 |   handle_33 (0); | 
 | #endif | 
 | return 0; | 
 | } | 
 |  | 
 | int | 
 | gen_34 () | 
 | { | 
 | #ifdef SIG34 | 
 |   kill (getpid (), 34); | 
 | #else | 
 |   handle_34 (0); | 
 | #endif | 
 | return 0; | 
 | } | 
 |  | 
 | int | 
 | gen_35 () | 
 | { | 
 | #ifdef SIG35 | 
 |   kill (getpid (), 35); | 
 | #else | 
 |   handle_35 (0); | 
 | #endif | 
 | return 0; | 
 | } | 
 |  | 
 | int | 
 | gen_36 () | 
 | { | 
 | #ifdef SIG36 | 
 |   kill (getpid (), 36); | 
 | #else | 
 |   handle_36 (0); | 
 | #endif | 
 | return 0; | 
 | } | 
 |  | 
 | int | 
 | gen_37 () | 
 | { | 
 | #ifdef SIG37 | 
 |   kill (getpid (), 37); | 
 | #else | 
 |   handle_37 (0); | 
 | #endif | 
 | return 0; | 
 | } | 
 |  | 
 | int | 
 | gen_38 () | 
 | { | 
 | #ifdef SIG38 | 
 |   kill (getpid (), 38); | 
 | #else | 
 |   handle_38 (0); | 
 | #endif | 
 | return 0; | 
 | } | 
 |  | 
 | int | 
 | gen_39 () | 
 | { | 
 | #ifdef SIG39 | 
 |   kill (getpid (), 39); | 
 | #else | 
 |   handle_39 (0); | 
 | #endif | 
 | return 0; | 
 | } | 
 |  | 
 | int | 
 | gen_40 () | 
 | { | 
 | #ifdef SIG40 | 
 |   kill (getpid (), 40); | 
 | #else | 
 |   handle_40 (0); | 
 | #endif | 
 | return 0; | 
 | } | 
 |  | 
 | int | 
 | gen_41 () | 
 | { | 
 | #ifdef SIG41 | 
 |   kill (getpid (), 41); | 
 | #else | 
 |   handle_41 (0); | 
 | #endif | 
 | return 0; | 
 | } | 
 |  | 
 | int | 
 | gen_42 () | 
 | { | 
 | #ifdef SIG42 | 
 |   kill (getpid (), 42); | 
 | #else | 
 |   handle_42 (0); | 
 | #endif | 
 | return 0; | 
 | } | 
 |  | 
 | int | 
 | gen_43 () | 
 | { | 
 | #ifdef SIG43 | 
 |   kill (getpid (), 43); | 
 | #else | 
 |   handle_43 (0); | 
 | #endif | 
 | return 0; | 
 | } | 
 |  | 
 | int | 
 | gen_44 () | 
 | { | 
 | #ifdef SIG44 | 
 |   kill (getpid (), 44); | 
 | #else | 
 |   handle_44 (0); | 
 | #endif | 
 | return 0; | 
 | } | 
 |  | 
 | int | 
 | gen_45 () | 
 | { | 
 | #ifdef SIG45 | 
 |   kill (getpid (), 45); | 
 | #else | 
 |   handle_45 (0); | 
 | #endif | 
 | return 0; | 
 | } | 
 |  | 
 | int | 
 | gen_46 () | 
 | { | 
 | #ifdef SIG46 | 
 |   kill (getpid (), 46); | 
 | #else | 
 |   handle_46 (0); | 
 | #endif | 
 | return 0; | 
 | } | 
 |  | 
 | int | 
 | gen_47 () | 
 | { | 
 | #ifdef SIG47 | 
 |   kill (getpid (), 47); | 
 | #else | 
 |   handle_47 (0); | 
 | #endif | 
 | return 0; | 
 | } | 
 |  | 
 | int | 
 | gen_48 () | 
 | { | 
 | #ifdef SIG48 | 
 |   kill (getpid (), 48); | 
 | #else | 
 |   handle_48 (0); | 
 | #endif | 
 | return 0; | 
 | } | 
 |  | 
 | int | 
 | gen_49 () | 
 | { | 
 | #ifdef SIG49 | 
 |   kill (getpid (), 49); | 
 | #else | 
 |   handle_49 (0); | 
 | #endif | 
 | return 0; | 
 | } | 
 |  | 
 | int | 
 | gen_50 () | 
 | { | 
 | #ifdef SIG50 | 
 |   kill (getpid (), 50); | 
 | #else | 
 |   handle_50 (0); | 
 | #endif | 
 | return 0; | 
 | } | 
 |  | 
 | int | 
 | gen_51 () | 
 | { | 
 | #ifdef SIG51 | 
 |   kill (getpid (), 51); | 
 | #else | 
 |   handle_51 (0); | 
 | #endif | 
 | return 0; | 
 | } | 
 |  | 
 | int | 
 | gen_52 () | 
 | { | 
 | #ifdef SIG52 | 
 |   kill (getpid (), 52); | 
 | #else | 
 |   handle_52 (0); | 
 | #endif | 
 | return 0; | 
 | } | 
 |  | 
 | int | 
 | gen_53 () | 
 | { | 
 | #ifdef SIG53 | 
 |   kill (getpid (), 53); | 
 | #else | 
 |   handle_53 (0); | 
 | #endif | 
 | return 0; | 
 | } | 
 |  | 
 | int | 
 | gen_54 () | 
 | { | 
 | #ifdef SIG54 | 
 |   kill (getpid (), 54); | 
 | #else | 
 |   handle_54 (0); | 
 | #endif | 
 | return 0; | 
 | } | 
 |  | 
 | int | 
 | gen_55 () | 
 | { | 
 | #ifdef SIG55 | 
 |   kill (getpid (), 55); | 
 | #else | 
 |   handle_55 (0); | 
 | #endif | 
 | return 0; | 
 | } | 
 |  | 
 | int | 
 | gen_56 () | 
 | { | 
 | #ifdef SIG56 | 
 |   kill (getpid (), 56); | 
 | #else | 
 |   handle_56 (0); | 
 | #endif | 
 | return 0; | 
 | } | 
 |  | 
 | int | 
 | gen_57 () | 
 | { | 
 | #ifdef SIG57 | 
 |   kill (getpid (), 57); | 
 | #else | 
 |   handle_57 (0); | 
 | #endif | 
 | return 0; | 
 | } | 
 |  | 
 | int | 
 | gen_58 () | 
 | { | 
 | #ifdef SIG58 | 
 |   kill (getpid (), 58); | 
 | #else | 
 |   handle_58 (0); | 
 | #endif | 
 | return 0; | 
 | } | 
 |  | 
 | int | 
 | gen_59 () | 
 | { | 
 | #ifdef SIG59 | 
 |   kill (getpid (), 59); | 
 | #else | 
 |   handle_59 (0); | 
 | #endif | 
 | return 0; | 
 | } | 
 |  | 
 | int | 
 | gen_60 () | 
 | { | 
 | #ifdef SIG60 | 
 |   kill (getpid (), 60); | 
 | #else | 
 |   handle_60 (0); | 
 | #endif | 
 | return 0; | 
 | } | 
 |  | 
 | int | 
 | gen_61 () | 
 | { | 
 | #ifdef SIG61 | 
 |   kill (getpid (), 61); | 
 | #else | 
 |   handle_61 (0); | 
 | #endif | 
 | return 0; | 
 | } | 
 |  | 
 | int | 
 | gen_62 () | 
 | { | 
 | #ifdef SIG62 | 
 |   kill (getpid (), 62); | 
 | #else | 
 |   handle_62 (0); | 
 | #endif | 
 | return 0; | 
 | } | 
 |  | 
 | int | 
 | gen_63 () | 
 | { | 
 | #ifdef SIG63 | 
 |   kill (getpid (), 63); | 
 | #else | 
 |   handle_63 (0); | 
 | #endif | 
 | return 0; | 
 | } | 
 |  | 
 | int | 
 | main () | 
 | { | 
 |  | 
 | #ifdef SIG_SETMASK | 
 |   /* Ensure all the signals aren't blocked. | 
 |      The environment in which the testsuite is run may have blocked some | 
 |      for whatever reason.  */ | 
 |   { | 
 |     sigset_t newset; | 
 |     sigemptyset (&newset); | 
 |     sigprocmask (SIG_SETMASK, &newset, NULL); | 
 |   } | 
 | #endif | 
 |  | 
 |   /* Signals are ordered ANSI-standard signals first, other signals | 
 |      second, with signals in each block ordered by their numerical | 
 |      values on a typical POSIX platform.  */ | 
 |  | 
 |   /* SIGINT, SIGILL, SIGABRT, SIGFPE, SIGSEGV and SIGTERM | 
 |      are ANSI-standard signals and are always available.  */ | 
 |   signal (SIGILL, handle_ILL); | 
 |   signal (SIGABRT, handle_ABRT); | 
 |   signal (SIGFPE, handle_FPE); | 
 |   signal (SIGSEGV, handle_SEGV); | 
 |   signal (SIGTERM, handle_TERM); | 
 |  | 
 |   /* All other signals need preprocessor conditionals.  */ | 
 | #ifdef SIGHUP | 
 |   signal (SIGHUP, handle_HUP); | 
 | #endif | 
 | #ifdef SIGQUIT | 
 |   signal (SIGQUIT, handle_QUIT); | 
 | #endif | 
 | #ifdef SIGEMT | 
 |   signal (SIGEMT, handle_EMT); | 
 | #endif | 
 | #ifdef SIGBUS | 
 |   signal (SIGBUS, handle_BUS); | 
 | #endif | 
 | #ifdef SIGSYS | 
 |   signal (SIGSYS, handle_SYS); | 
 | #endif | 
 | #ifdef SIGPIPE | 
 |   signal (SIGPIPE, handle_PIPE); | 
 | #endif | 
 | #ifdef SIGALRM | 
 |   signal (SIGALRM, handle_ALRM); | 
 | #endif | 
 | #ifdef SIGURG | 
 |   signal (SIGURG, handle_URG); | 
 | #endif | 
 | #ifdef SIGTSTP | 
 |   signal (SIGTSTP, handle_TSTP); | 
 | #endif | 
 | #ifdef SIGCONT | 
 |   signal (SIGCONT, handle_CONT); | 
 | #endif | 
 | #ifdef SIGCHLD | 
 |   signal (SIGCHLD, handle_CHLD); | 
 | #endif | 
 | #ifdef SIGTTIN | 
 |   signal (SIGTTIN, handle_TTIN); | 
 | #endif | 
 | #ifdef SIGTTOU | 
 |   signal (SIGTTOU, handle_TTOU); | 
 | #endif | 
 | #ifdef SIGIO | 
 |   signal (SIGIO, handle_IO); | 
 | #endif | 
 | #ifdef SIGXCPU | 
 |   signal (SIGXCPU, handle_XCPU); | 
 | #endif | 
 | #ifdef SIGXFSZ | 
 |   signal (SIGXFSZ, handle_XFSZ); | 
 | #endif | 
 | #ifdef SIGVTALRM | 
 |   signal (SIGVTALRM, handle_VTALRM); | 
 | #endif | 
 | #ifdef SIGPROF | 
 |   signal (SIGPROF, handle_PROF); | 
 | #endif | 
 | #ifdef SIGWINCH | 
 |   signal (SIGWINCH, handle_WINCH); | 
 | #endif | 
 | #if defined(SIGLOST) && SIGLOST != SIGABRT | 
 |   signal (SIGLOST, handle_LOST); | 
 | #endif | 
 | #ifdef SIGUSR1 | 
 |   signal (SIGUSR1, handle_USR1); | 
 | #endif | 
 | #ifdef SIGUSR2 | 
 |   signal (SIGUSR2, handle_USR2); | 
 | #endif | 
 | #if defined(SIGPWR) && (!defined (SIGLOST) || SIGPWR != SIGLOST) | 
 |   signal (SIGPWR, handle_PWR); | 
 | #endif | 
 | #if defined (SIGPOLL) && (!defined (SIGIO) || SIGPOLL != SIGIO) | 
 |   signal (SIGPOLL, handle_POLL); | 
 | #endif | 
 | #ifdef SIGWIND | 
 |   signal (SIGWIND, handle_WIND); | 
 | #endif | 
 | #ifdef SIGPHONE | 
 |   signal (SIGPHONE, handle_PHONE); | 
 | #endif | 
 | #ifdef SIGWAITING | 
 |   signal (SIGWAITING, handle_WAITING); | 
 | #endif | 
 | #ifdef SIGLWP | 
 |   signal (SIGLWP, handle_LWP); | 
 | #endif | 
 | #ifdef SIGDANGER | 
 |   signal (SIGDANGER, handle_DANGER); | 
 | #endif | 
 | #ifdef SIGGRANT | 
 |   signal (SIGGRANT, handle_GRANT); | 
 | #endif | 
 | #ifdef SIGRETRACT | 
 |   signal (SIGRETRACT, handle_RETRACT); | 
 | #endif | 
 | #ifdef SIGMSG | 
 |   signal (SIGMSG, handle_MSG); | 
 | #endif | 
 | #ifdef SIGSOUND | 
 |   signal (SIGSOUND, handle_SOUND); | 
 | #endif | 
 | #ifdef SIGSAK | 
 |   signal (SIGSAK, handle_SAK); | 
 | #endif | 
 | #ifdef SIGPRIO | 
 |   signal (SIGPRIO, handle_PRIO); | 
 | #endif | 
 | #ifdef __Lynx__ | 
 |   /* Lynx doesn't seem to have anything in signal.h for this.  */ | 
 |   signal (33, handle_33); | 
 |   signal (34, handle_34); | 
 |   signal (35, handle_35); | 
 |   signal (36, handle_36); | 
 |   signal (37, handle_37); | 
 |   signal (38, handle_38); | 
 |   signal (39, handle_39); | 
 |   signal (40, handle_40); | 
 |   signal (41, handle_41); | 
 |   signal (42, handle_42); | 
 |   signal (43, handle_43); | 
 |   signal (44, handle_44); | 
 |   signal (45, handle_45); | 
 |   signal (46, handle_46); | 
 |   signal (47, handle_47); | 
 |   signal (48, handle_48); | 
 |   signal (49, handle_49); | 
 |   signal (50, handle_50); | 
 |   signal (51, handle_51); | 
 |   signal (52, handle_52); | 
 |   signal (53, handle_53); | 
 |   signal (54, handle_54); | 
 |   signal (55, handle_55); | 
 |   signal (56, handle_56); | 
 |   signal (57, handle_57); | 
 |   signal (58, handle_58); | 
 |   signal (59, handle_59); | 
 |   signal (60, handle_60); | 
 |   signal (61, handle_61); | 
 |   signal (62, handle_62); | 
 |   signal (63, handle_63); | 
 | #endif /* lynx */ | 
 |  | 
 |   x = 0; | 
 |  | 
 |   gen_ABRT (); | 
 |   gen_HUP (); | 
 |   gen_QUIT (); | 
 |   gen_ILL (); | 
 |   gen_EMT (); | 
 |   gen_FPE (); | 
 |   gen_BUS (); | 
 |   gen_SEGV (); | 
 |   gen_SYS (); | 
 |   gen_PIPE (); | 
 |   gen_ALRM (); | 
 |   gen_URG (); | 
 |   gen_TSTP (); | 
 |   gen_CONT (); | 
 |   gen_CHLD (); | 
 |   gen_TTIN (); | 
 |   gen_TTOU (); | 
 |   gen_IO (); | 
 |   gen_XCPU (); | 
 |   gen_XFSZ (); | 
 |   gen_VTALRM (); | 
 |   gen_PROF (); | 
 |   gen_WINCH (); | 
 |   gen_LOST (); | 
 |   gen_USR1 (); | 
 |   gen_USR2 (); | 
 |   gen_PWR (); | 
 |   gen_POLL (); | 
 |   gen_WIND (); | 
 |   gen_PHONE (); | 
 |   gen_WAITING (); | 
 |   gen_LWP (); | 
 |   gen_DANGER (); | 
 |   gen_GRANT (); | 
 |   gen_RETRACT (); | 
 |   gen_MSG (); | 
 |   gen_SOUND (); | 
 |   gen_SAK (); | 
 |   gen_PRIO (); | 
 |   gen_33 (); | 
 |   gen_34 (); | 
 |   gen_35 (); | 
 |   gen_36 (); | 
 |   gen_37 (); | 
 |   gen_38 (); | 
 |   gen_39 (); | 
 |   gen_40 (); | 
 |   gen_41 (); | 
 |   gen_42 (); | 
 |   gen_43 (); | 
 |   gen_44 (); | 
 |   gen_45 (); | 
 |   gen_46 (); | 
 |   gen_47 (); | 
 |   gen_48 (); | 
 |   gen_49 (); | 
 |   gen_50 (); | 
 |   gen_51 (); | 
 |   gen_52 (); | 
 |   gen_53 (); | 
 |   gen_54 (); | 
 |   gen_55 (); | 
 |   gen_56 (); | 
 |   gen_57 (); | 
 |   gen_58 (); | 
 |   gen_59 (); | 
 |   gen_60 (); | 
 |   gen_61 (); | 
 |   gen_62 (); | 
 |   gen_63 (); | 
 |   gen_TERM (); | 
 |  | 
 |   return 0; | 
 | } |