* signals/signals.c (REALTIME_LO, REALTIME_HI): Define if
authorDaniel Jacobowitz <drow@false.org>
Wed, 26 Mar 2003 16:29:39 +0000 (16:29 +0000)
committerDaniel Jacobowitz <drow@false.org>
Wed, 26 Mar 2003 16:29:39 +0000 (16:29 +0000)
not already defined.  Use __SIGRTMIN if available.
(target_signal_from_host): Remove SIGRTMIN block.
(do_target_signal_to_host): Remove SIGRTMIN block; check that
the signal is within the realtime range.

gdb/ChangeLog
gdb/signals/signals.c

index 4589ece8b3737a2912bb07647ece508b0b64139f..a1df35d13110bb7877ae4d783c5fcc9280996a11 100644 (file)
@@ -1,3 +1,11 @@
+2003-03-26  Daniel Jacobowitz  <drow@mvista.com>
+
+       * signals/signals.c (REALTIME_LO, REALTIME_HI): Define if
+       not already defined.  Use __SIGRTMIN if available.
+       (target_signal_from_host): Remove SIGRTMIN block.
+       (do_target_signal_to_host): Remove SIGRTMIN block; check that
+       the signal is within the realtime range.
+
 2003-03-25  Adam Fedor  <fedor@gnu.org>
 
        * Makefile.in (infrun.o): Add $(language_h)
index 82c63d89978da4f58b4c6b2cb1b2d95df0f8bb8d..ad19951846120aa11cdb930bfadde925958ec8c0 100644 (file)
 
 #include <signal.h>
 
+/* Always use __SIGRTMIN if it's available.  SIGRTMIN is the lowest
+   _available_ realtime signal, not the lowest supported; glibc takes
+   several for its own use.  */
+
+#ifndef REALTIME_LO
+# if defined(__SIGRTMIN)
+#  define REALTIME_LO __SIGRTMIN
+#  define REALTIME_HI __SIGRTMAX
+# elif defined(SIGRTMIN)
+#  define REALTIME_LO __SIGRTMIN
+#  define REALTIME_HI __SIGRTMAX
+# endif
+#endif
+
 /* This table must match in order and size the signals in enum target_signal
    in target.h.  */
 /* *INDENT-OFF* */
@@ -492,22 +506,6 @@ target_signal_from_host (int hostsig)
     }
 #endif
 
-#if defined (SIGRTMIN)
-  if (hostsig >= SIGRTMIN && hostsig <= SIGRTMAX)
-    {
-      /* This block of TARGET_SIGNAL_REALTIME value is in order.  */
-      if (33 <= hostsig && hostsig <= 63)
-       return (enum target_signal)
-         (hostsig - 33 + (int) TARGET_SIGNAL_REALTIME_33);
-      else if (hostsig == 32)
-       return TARGET_SIGNAL_REALTIME_32;
-      else if (64 <= hostsig && hostsig <= 127)
-       return (enum target_signal)
-         (hostsig - 64 + (int) TARGET_SIGNAL_REALTIME_64);
-      else
-       error ("GDB bug: target.c (target_signal_from_host): unrecognized real-time signal");
-    }
-#endif
   return TARGET_SIGNAL_UNKNOWN;
 }
 
@@ -744,40 +742,12 @@ do_target_signal_to_host (enum target_signal oursig,
 
     default:
 #if defined (REALTIME_LO)
-      if (oursig >= TARGET_SIGNAL_REALTIME_33
-         && oursig <= TARGET_SIGNAL_REALTIME_63)
+      if (oursig < REALTIME_LO || oursig >= REALTIME_HI)
        {
-         /* This block of signals is continuous, and
-             TARGET_SIGNAL_REALTIME_33 is 33 by definition.  */
-         int retsig =
-           (int) oursig - (int) TARGET_SIGNAL_REALTIME_33 + 33;
-         if (retsig >= REALTIME_LO && retsig < REALTIME_HI)
-           return retsig;
-       }
-#if (REALTIME_LO < 33)
-      else if (oursig == TARGET_SIGNAL_REALTIME_32)
-       {
-         /* TARGET_SIGNAL_REALTIME_32 isn't contiguous with
-             TARGET_SIGNAL_REALTIME_33.  It is 32 by definition.  */
-         return 32;
-       }
-#endif
-#if (REALTIME_HI > 64)
-      if (oursig >= TARGET_SIGNAL_REALTIME_64
-         && oursig <= TARGET_SIGNAL_REALTIME_127)
-       {
-         /* This block of signals is continuous, and
-             TARGET_SIGNAL_REALTIME_64 is 64 by definition.  */
-         int retsig =
-           (int) oursig - (int) TARGET_SIGNAL_REALTIME_64 + 64;
-         if (retsig >= REALTIME_LO && retsig < REALTIME_HI)
-           return retsig;
+         *oursig_ok = 0;
+         return 0;
        }
-      
-#endif
-#endif
 
-#if defined (SIGRTMIN)
       if (oursig >= TARGET_SIGNAL_REALTIME_33
          && oursig <= TARGET_SIGNAL_REALTIME_63)
        {
@@ -785,8 +755,7 @@ do_target_signal_to_host (enum target_signal oursig,
              TARGET_SIGNAL_REALTIME_33 is 33 by definition.  */
          int retsig =
            (int) oursig - (int) TARGET_SIGNAL_REALTIME_33 + 33;
-         if (retsig >= SIGRTMIN && retsig <= SIGRTMAX)
-           return retsig;
+         return retsig;
        }
       else if (oursig == TARGET_SIGNAL_REALTIME_32)
        {
@@ -804,6 +773,7 @@ do_target_signal_to_host (enum target_signal oursig,
          return retsig;
        }
 #endif
+
       *oursig_ok = 0;
       return 0;
     }