* target.c (target_signal_from_host, do_target_signal_to_host):
authorPeter Schauer <Peter.Schauer@mytum.de>
Thu, 28 Sep 2000 07:48:14 +0000 (07:48 +0000)
committerPeter Schauer <Peter.Schauer@mytum.de>
Thu, 28 Sep 2000 07:48:14 +0000 (07:48 +0000)
Add support for Solaris realtime signals.

gdb/ChangeLog
gdb/target.c

index d2e4f9bd6a6900413e75869d53775f099584e11e..167711438a6652752f0916cac8eb16bcc970b981 100644 (file)
@@ -1,3 +1,8 @@
+2000-09-28  Peter Schauer  <pes@regent.e-technik.tu-muenchen.de>
+
+       * target.c (target_signal_from_host, do_target_signal_to_host):
+       Add support for Solaris realtime signals.
+
 2000-09-27  Kevin Buettner  <kevinb@redhat.com>
 
        * os9kread.c (os9k_symfile_read, os9k_end_psymtab): Protoize.
index b50ec1c94ab0068cbbe9066498fbb90b1149a83e..0ce52ba7e5a8021bea95a43139ad541c1b65a445 100644 (file)
@@ -1729,6 +1729,18 @@ target_signal_from_host (int hostsig)
        error ("GDB bug: target.c (target_signal_from_host): unrecognized real-time signal");
     }
 #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
+       error ("GDB bug: target.c (target_signal_from_host): unrecognized real-time signal");
+    }
+#endif
   return TARGET_SIGNAL_UNKNOWN;
 }
 
@@ -1983,6 +1995,19 @@ do_target_signal_to_host (enum target_signal oursig,
          return 32;
        }
 #endif
+#endif
+
+#if defined (SIGRTMIN)
+      if (oursig >= TARGET_SIGNAL_REALTIME_33
+         && oursig <= TARGET_SIGNAL_REALTIME_63)
+       {
+         /* 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 >= SIGRTMIN && retsig <= SIGRTMAX)
+           return retsig;
+       }
 #endif
       *oursig_ok = 0;
       return 0;