From eb276a6b5b56eeb15729892d66d11782bbacbdfc Mon Sep 17 00:00:00 2001 From: Tom Tromey Date: Wed, 18 Dec 2013 14:55:44 -0700 Subject: [PATCH] convert to_verify_memory 2014-02-19 Tom Tromey * target-delegates.c: Rebuild. * target.c (target_verify_memory): Unconditionally delegate. * target.h (struct target_ops) : Use TARGET_DEFAULT_NORETURN. --- gdb/ChangeLog | 7 +++++++ gdb/target-delegates.c | 16 ++++++++++++++++ gdb/target.c | 27 +++++++++------------------ gdb/target.h | 3 ++- 4 files changed, 34 insertions(+), 19 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 7c489a9e7f6..adcdf65370f 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,10 @@ +2014-02-19 Tom Tromey + + * target-delegates.c: Rebuild. + * target.c (target_verify_memory): Unconditionally delegate. + * target.h (struct target_ops) : Use + TARGET_DEFAULT_NORETURN. + 2014-02-19 Tom Tromey * target-delegates.c: Rebuild. diff --git a/gdb/target-delegates.c b/gdb/target-delegates.c index 2c7ab7f73f2..20ebda82845 100644 --- a/gdb/target-delegates.c +++ b/gdb/target-delegates.c @@ -1144,6 +1144,19 @@ tdefault_core_of_thread (struct target_ops *self, ptid_t arg1) return -1; } +static int +delegate_verify_memory (struct target_ops *self, const gdb_byte *arg1, CORE_ADDR arg2, ULONGEST arg3) +{ + self = self->beneath; + return self->to_verify_memory (self, arg1, arg2, arg3); +} + +static int +tdefault_verify_memory (struct target_ops *self, const gdb_byte *arg1, CORE_ADDR arg2, ULONGEST arg3) +{ + tcomplain (); +} + static int delegate_get_tib_address (struct target_ops *self, ptid_t arg1, CORE_ADDR *arg2) { @@ -1457,6 +1470,8 @@ install_delegators (struct target_ops *ops) ops->to_set_trace_notes = delegate_set_trace_notes; if (ops->to_core_of_thread == NULL) ops->to_core_of_thread = delegate_core_of_thread; + if (ops->to_verify_memory == NULL) + ops->to_verify_memory = delegate_verify_memory; if (ops->to_get_tib_address == NULL) ops->to_get_tib_address = delegate_get_tib_address; if (ops->to_set_permissions == NULL) @@ -1577,6 +1592,7 @@ install_dummy_methods (struct target_ops *ops) ops->to_set_trace_buffer_size = tdefault_set_trace_buffer_size; ops->to_set_trace_notes = tdefault_set_trace_notes; ops->to_core_of_thread = tdefault_core_of_thread; + ops->to_verify_memory = tdefault_verify_memory; ops->to_get_tib_address = tdefault_get_tib_address; ops->to_set_permissions = tdefault_set_permissions; ops->to_static_tracepoint_marker_at = tdefault_static_tracepoint_marker_at; diff --git a/gdb/target.c b/gdb/target.c index 5f86c4ef197..44686480a56 100644 --- a/gdb/target.c +++ b/gdb/target.c @@ -3723,25 +3723,16 @@ target_core_of_thread (ptid_t ptid) int target_verify_memory (const gdb_byte *data, CORE_ADDR memaddr, ULONGEST size) { - struct target_ops *t; - - for (t = current_target.beneath; t != NULL; t = t->beneath) - { - if (t->to_verify_memory != NULL) - { - int retval = t->to_verify_memory (t, data, memaddr, size); + int retval = current_target.to_verify_memory (¤t_target, + data, memaddr, size); - if (targetdebug) - fprintf_unfiltered (gdb_stdlog, - "target_verify_memory (%s, %s) = %d\n", - paddress (target_gdbarch (), memaddr), - pulongest (size), - retval); - return retval; - } - } - - tcomplain (); + if (targetdebug) + fprintf_unfiltered (gdb_stdlog, + "target_verify_memory (%s, %s) = %d\n", + paddress (target_gdbarch (), memaddr), + pulongest (size), + retval); + return retval; } /* The documentation for this function is in its prototype declaration in diff --git a/gdb/target.h b/gdb/target.h index 0a6c467fa9f..69f3c1f6017 100644 --- a/gdb/target.h +++ b/gdb/target.h @@ -941,7 +941,8 @@ struct target_ops a match, 0 if there's a mismatch, and -1 if an error is encountered while reading memory. */ int (*to_verify_memory) (struct target_ops *, const gdb_byte *data, - CORE_ADDR memaddr, ULONGEST size); + CORE_ADDR memaddr, ULONGEST size) + TARGET_DEFAULT_NORETURN (tcomplain ()); /* Return the address of the start of the Thread Information Block a Windows OS specific feature. */ -- 2.30.2