From 035cad7f2e550abdaaa8b556143b351822f2940e Mon Sep 17 00:00:00 2001 From: Tom Tromey Date: Wed, 18 Dec 2013 14:42:10 -0700 Subject: [PATCH] convert to_pass_signals 2014-02-19 Tom Tromey * target-delegates.c: Rebuild. * target.c (target_pass_signals): Unconditionally delegate. * target.h (struct target_ops) : Use TARGET_DEFAULT_IGNORE. --- gdb/ChangeLog | 7 +++++++ gdb/target-delegates.c | 15 +++++++++++++++ gdb/target.c | 31 +++++++++++-------------------- gdb/target.h | 3 ++- 4 files changed, 35 insertions(+), 21 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 38eaf10c61..77f910edbd 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,10 @@ +2014-02-19 Tom Tromey + + * target-delegates.c: Rebuild. + * target.c (target_pass_signals): Unconditionally delegate. + * target.h (struct target_ops) : Use + TARGET_DEFAULT_IGNORE. + 2014-02-19 Tom Tromey * target-delegates.c: Rebuild. diff --git a/gdb/target-delegates.c b/gdb/target-delegates.c index f3000b72c6..22cb360651 100644 --- a/gdb/target-delegates.c +++ b/gdb/target-delegates.c @@ -517,6 +517,18 @@ delegate_mourn_inferior (struct target_ops *self) self->to_mourn_inferior (self); } +static void +delegate_pass_signals (struct target_ops *self, int arg1, unsigned char *arg2) +{ + self = self->beneath; + self->to_pass_signals (self, arg1, arg2); +} + +static void +tdefault_pass_signals (struct target_ops *self, int arg1, unsigned char *arg2) +{ +} + static char * delegate_extra_thread_info (struct target_ops *self, struct thread_info *arg1) { @@ -1256,6 +1268,8 @@ install_delegators (struct target_ops *ops) ops->to_has_exited = delegate_has_exited; if (ops->to_mourn_inferior == NULL) ops->to_mourn_inferior = delegate_mourn_inferior; + if (ops->to_pass_signals == NULL) + ops->to_pass_signals = delegate_pass_signals; if (ops->to_extra_thread_info == NULL) ops->to_extra_thread_info = delegate_extra_thread_info; if (ops->to_thread_name == NULL) @@ -1413,6 +1427,7 @@ install_dummy_methods (struct target_ops *ops) ops->to_set_syscall_catchpoint = tdefault_set_syscall_catchpoint; ops->to_has_exited = tdefault_has_exited; ops->to_mourn_inferior = default_mourn_inferior; + ops->to_pass_signals = tdefault_pass_signals; ops->to_extra_thread_info = tdefault_extra_thread_info; ops->to_thread_name = tdefault_thread_name; ops->to_stop = tdefault_stop; diff --git a/gdb/target.c b/gdb/target.c index 13ec67d071..b04e8f2c64 100644 --- a/gdb/target.c +++ b/gdb/target.c @@ -2580,31 +2580,22 @@ target_resume (ptid_t ptid, int step, enum gdb_signal signal) void target_pass_signals (int numsigs, unsigned char *pass_signals) { - struct target_ops *t; - - for (t = current_target.beneath; t != NULL; t = t->beneath) + if (targetdebug) { - if (t->to_pass_signals != NULL) - { - if (targetdebug) - { - int i; - - fprintf_unfiltered (gdb_stdlog, "target_pass_signals (%d, {", - numsigs); + int i; - for (i = 0; i < numsigs; i++) - if (pass_signals[i]) - fprintf_unfiltered (gdb_stdlog, " %s", - gdb_signal_to_name (i)); + fprintf_unfiltered (gdb_stdlog, "target_pass_signals (%d, {", + numsigs); - fprintf_unfiltered (gdb_stdlog, " })\n"); - } + for (i = 0; i < numsigs; i++) + if (pass_signals[i]) + fprintf_unfiltered (gdb_stdlog, " %s", + gdb_signal_to_name (i)); - (*t->to_pass_signals) (t, numsigs, pass_signals); - return; - } + fprintf_unfiltered (gdb_stdlog, " })\n"); } + + (*current_target.to_pass_signals) (¤t_target, numsigs, pass_signals); } void diff --git a/gdb/target.h b/gdb/target.h index 884abf1eca..468a5cdc27 100644 --- a/gdb/target.h +++ b/gdb/target.h @@ -550,7 +550,8 @@ struct target_ops /* Documentation of this routine is provided with the corresponding target_* macro. */ - void (*to_pass_signals) (struct target_ops *, int, unsigned char *); + void (*to_pass_signals) (struct target_ops *, int, unsigned char *) + TARGET_DEFAULT_IGNORE (); /* Documentation of this routine is provided with the corresponding target_* function. */ -- 2.34.1