~bkerensa/ubuntu/raring/valgrind/merge-from-deb

« back to all changes in this revision

Viewing changes to coregrind/m_gdbserver/signals.c

  • Committer: Benjamin Kerensa
  • Date: 2012-11-21 23:57:58 UTC
  • mfrom: (1.1.16)
  • Revision ID: bkerensa@ubuntu.com-20121121235758-bd1rv5uc5vzov2p6
Merge from debian unstable

Show diffs side-by-side

added added

removed removed

Lines of Context:
466
466
      return TARGET_SIGNAL_INFO;
467
467
#endif
468
468
 
 
469
#if defined (VKI_SIGRTMIN)
 
470
   if (hostsig >= VKI_SIGRTMIN && hostsig < VKI_SIGRTMAX) {
 
471
      /* This block of TARGET_SIGNAL_REALTIME value is in order.  */
 
472
      if (33 <= hostsig && hostsig <= 63)
 
473
         return (enum target_signal)
 
474
            (hostsig - 33 + (int) TARGET_SIGNAL_REALTIME_33);
 
475
      else if (hostsig == 32)
 
476
         return TARGET_SIGNAL_REALTIME_32;
 
477
      else if (64 <= hostsig && hostsig <= 127)
 
478
         return (enum target_signal)
 
479
            (hostsig - 64 + (int) TARGET_SIGNAL_REALTIME_64);
 
480
   }
 
481
#endif
 
482
 
 
483
   error ("Valgrind GDBSERVER bug: (target_signal_from_host):"
 
484
          " unrecognized vki signal %d\n", hostsig);
469
485
   return TARGET_SIGNAL_UNKNOWN;
470
486
}
471
487
 
476
492
 
477
493
static
478
494
int do_target_signal_to_host (enum target_signal oursig,
479
 
                          int *oursig_ok)
 
495
                              int *oursig_ok)
480
496
{
481
497
   *oursig_ok = 1;
482
498
   switch (oursig) {
700
716
#endif
701
717
 
702
718
   default:
 
719
#if defined (VKI_SIGRTMIN)
 
720
      {
 
721
         int retsig = 0;
 
722
 
 
723
         if (oursig >= TARGET_SIGNAL_REALTIME_33
 
724
             && oursig <= TARGET_SIGNAL_REALTIME_63) {
 
725
            /* This block of signals is continuous, and
 
726
               TARGET_SIGNAL_REALTIME_33 is 33 by definition.  */
 
727
            retsig = (int) oursig - (int) TARGET_SIGNAL_REALTIME_33 + 33;
 
728
         } else if (oursig == TARGET_SIGNAL_REALTIME_32) {
 
729
            /* TARGET_SIGNAL_REALTIME_32 isn't contiguous with
 
730
               TARGET_SIGNAL_REALTIME_33.  It is 32 by definition.  */
 
731
            retsig = 32;
 
732
         } else if (oursig >= TARGET_SIGNAL_REALTIME_64
 
733
                    && oursig <= TARGET_SIGNAL_REALTIME_127) {
 
734
            /* This block of signals is continuous, and
 
735
               TARGET_SIGNAL_REALTIME_64 is 64 by definition.  */
 
736
            retsig = (int) oursig - (int) TARGET_SIGNAL_REALTIME_64 + 64;
 
737
         }
 
738
         
 
739
         if (retsig >= VKI_SIGRTMIN && retsig < VKI_SIGRTMAX)
 
740
            return retsig;
 
741
      }
 
742
#endif
 
743
      error ("Valgrind GDBSERVER bug: (do_target_signal_to_host):"
 
744
             " unrecognized target signal %d\n", oursig);
703
745
      *oursig_ok = 0;
704
746
      return 0;
705
747
   }