Diff for /gforth/engine/signals.c between versions 1.20 and 1.24

version 1.20, 2003/01/07 09:31:20 version 1.24, 2003/02/02 11:05:50
Line 115  signal_throw(int sig) Line 115  signal_throw(int sig)
 }  }
   
 #ifdef SA_SIGINFO  #ifdef SA_SIGINFO
   static void
   sigaction_throw(int sig, siginfo_t *info, void *_)
   {
     signal_throw(sig);
   }
   
 static void fpe_handler(int sig, siginfo_t *info, void *_)  static void fpe_handler(int sig, siginfo_t *info, void *_)
      /* handler for SIGFPE */       /* handler for SIGFPE */
 {  {
Line 374  void install_signal_handlers(void) Line 380  void install_signal_handlers(void)
   int sas_retval=-1;    int sas_retval=-1;
   
   sigstack.ss_size=SIGSTKSZ;    sigstack.ss_size=SIGSTKSZ;
   if ((sigstack.ss_sp = my_alloc(sigstack.ss_size)) != NULL) {    /* Actually the stack should only be ss_size large, and according to
        SUSv2 ss_sp should point to the start of the stack, but
        unfortunately Irix 6.5 (at least) expects ss_sp to point to the
        end, so we work around this issue by accomodating everyone. */
     if ((sigstack.ss_sp = my_alloc(sigstack.ss_size*2)) != NULL) {
       sigstack.ss_sp += sigstack.ss_size;
     sigstack.ss_flags=0;      sigstack.ss_flags=0;
     sas_retval=sigaltstack(&sigstack,(stack_t *)0);      sas_retval=sigaltstack(&sigstack,(stack_t *)0);
   }    }
Line 393  void install_signal_handlers(void) Line 404  void install_signal_handlers(void)
     bsd_signal(sigs_to_quit [i], graceful_exit);      bsd_signal(sigs_to_quit [i], graceful_exit);
 #ifdef SA_SIGINFO  #ifdef SA_SIGINFO
   if (!die_on_signal) {    if (!die_on_signal) {
   #ifdef SIGFPE
     install_signal_handler(SIGFPE, fpe_handler);      install_signal_handler(SIGFPE, fpe_handler);
   #endif
   #ifdef SIGSEGV
     install_signal_handler(SIGSEGV, segv_handler);      install_signal_handler(SIGSEGV, segv_handler);
   }  
 #endif  #endif
       /* use SA_ONSTACK for all signals that could come from executing
          wrong code */
   #ifdef SIGILL
       install_signal_handler(SIGILL, sigaction_throw);
   #endif
   #ifdef SIGBUS
       install_signal_handler(SIGBUS, sigaction_throw);
   #endif
   #ifdef SIGTRAP
       install_signal_handler(SIGTRAP, sigaction_throw);
   #endif
     }
   #endif /* defined(SA_SIGINFO) */
 #ifdef SIGCONT  #ifdef SIGCONT
     bsd_signal(SIGCONT, termprep);      bsd_signal(SIGCONT, termprep);
 #endif  #endif

Removed from v.1.20  
changed lines
  Added in v.1.24


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>