* 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.
This commit is contained in:
Daniel Jacobowitz 2003-03-26 16:29:39 +00:00
parent a5ad465acc
commit 960cb5556f
2 changed files with 27 additions and 49 deletions

View 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)

View File

@ -30,6 +30,20 @@
#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;
*oursig_ok = 0;
return 0;
}
#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;
}
#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;
}