diff options
author | Daniel Jacobowitz <drow@false.org> | 2003-03-26 16:29:39 +0000 |
---|---|---|
committer | Daniel Jacobowitz <drow@false.org> | 2003-03-26 16:29:39 +0000 |
commit | 960cb5556f18d309e5ac4d082b76b281f5e27dd2 (patch) | |
tree | 4b4a383d86a3dafdbe80b51483a3690752933d82 /gdb/signals | |
parent | a5ad465accd73e8c7abeda27341b22470ad5d27d (diff) | |
download | gdb-960cb5556f18d309e5ac4d082b76b281f5e27dd2.zip gdb-960cb5556f18d309e5ac4d082b76b281f5e27dd2.tar.gz gdb-960cb5556f18d309e5ac4d082b76b281f5e27dd2.tar.bz2 |
* 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.
Diffstat (limited to 'gdb/signals')
-rw-r--r-- | gdb/signals/signals.c | 68 |
1 files changed, 19 insertions, 49 deletions
diff --git a/gdb/signals/signals.c b/gdb/signals/signals.c index 82c63d8..ad19951 100644 --- a/gdb/signals/signals.c +++ b/gdb/signals/signals.c @@ -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; - } -#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; } |