This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [RFC 21/32] convert to_load
- From: Pedro Alves <palves at redhat dot com>
- To: Tom Tromey <tromey at redhat dot com>
- Cc: gdb-patches at sourceware dot org
- Date: Tue, 14 Jan 2014 18:41:34 +0000
- Subject: Re: [RFC 21/32] convert to_load
- Authentication-results: sourceware.org; auth=none
- References: <1389640367-5571-1-git-send-email-tromey at redhat dot com> <1389640367-5571-22-git-send-email-tromey at redhat dot com>
Looks fine.
On 01/13/2014 07:12 PM, Tom Tromey wrote:
> 2014-01-08 Tom Tromey <tromey@redhat.com>
>
> * target-delegates.c : Rebuild.
> * target.c (update_current_target): Don't inherit or default
> to_load.
> * target.h (struct target_ops) <to_load>: Use
> TARGET_DEFAULT_NORETURN.
>
> convert to_post_startup_inferior
>
> 2014-01-08 Tom Tromey <tromey@redhat.com>
>
> * target-delegates.c : Rebuild.
> * target.c (update_current_target): Don't inherit or default
> to_post_startup_inferior.
> * target.h (struct target_ops) <to_post_startup_inferior>: Use
> TARGET_DEFAULT_IGNORE.
>
> convert to_insert_fork_catchpoint
>
> 2014-01-08 Tom Tromey <tromey@redhat.com>
>
> * target-delegates.c : Rebuild.
> * target.c (update_current_target): Don't inherit or default
> to_insert_fork_catchpoint.
> * target.h (struct target_ops) <to_insert_fork_catchpoint>: Use
> TARGET_DEFAULT_RETURN.
>
> convert to_remove_fork_catchpoint
>
> 2014-01-08 Tom Tromey <tromey@redhat.com>
>
> * target-delegates.c : Rebuild.
> * target.c (update_current_target): Don't inherit or default
> to_remove_fork_catchpoint.
> * target.h (struct target_ops) <to_remove_fork_catchpoint>: Use
> TARGET_DEFAULT_RETURN.
>
> convert to_insert_vfork_catchpoint
>
> 2014-01-08 Tom Tromey <tromey@redhat.com>
>
> * target-delegates.c : Rebuild.
> * target.c (update_current_target): Don't inherit or default
> to_insert_vfork_catchpoint.
> * target.h (struct target_ops) <to_insert_vfork_catchpoint>: Use
> TARGET_DEFAULT_RETURN.
>
> convert to_remove_vfork_catchpoint
>
> 2014-01-08 Tom Tromey <tromey@redhat.com>
>
> * target-delegates.c : Rebuild.
> * target.c (update_current_target): Don't inherit or default
> to_remove_vfork_catchpoint.
> * target.h (struct target_ops) <to_remove_vfork_catchpoint>: Use
> TARGET_DEFAULT_RETURN.
>
> convert to_insert_exec_catchpoint
>
> 2014-01-08 Tom Tromey <tromey@redhat.com>
>
> * target-delegates.c : Rebuild.
> * target.c (update_current_target): Don't inherit or default
> to_insert_exec_catchpoint.
> * target.h (struct target_ops) <to_insert_exec_catchpoint>: Use
> TARGET_DEFAULT_RETURN.
>
> convert to_remove_exec_catchpoint
>
> 2014-01-08 Tom Tromey <tromey@redhat.com>
>
> * target-delegates.c : Rebuild.
> * target.c (update_current_target): Don't inherit or default
> to_insert_exec_catchpoint.
> * target.h (struct target_ops) <to_insert_exec_catchpoint>: Use
> TARGET_DEFAULT_RETURN.
>
> convert to_set_syscall_catchpoint
>
> 2014-01-08 Tom Tromey <tromey@redhat.com>
>
> * target-delegates.c : Rebuild.
> * target.c (update_current_target): Don't inherit or default
> to_set_syscall_catchpoint.
> (return_one): Remove.
> * target.h (struct target_ops) <to_set_syscall_catchpoint>: Use
> TARGET_DEFAULT_RETURN.
>
> convert to_has_exited
>
> 2014-01-08 Tom Tromey <tromey@redhat.com>
>
> * target-delegates.c : Rebuild.
> * target.c (update_current_target): Don't inherit or default
> to_has_exited.
> * target.h (struct target_ops) <to_has_exited>: Use
> TARGET_DEFAULT_RETURN..
> ---
> gdb/ChangeLog | 81 +++++++++++++++++++++++++
> gdb/target-delegates.c | 159 +++++++++++++++++++++++++++++++++++++++++++++++++
> gdb/target.c | 58 ++++--------------
> gdb/target.h | 30 ++++++----
> 4 files changed, 270 insertions(+), 58 deletions(-)
>
> diff --git a/gdb/target-delegates.c b/gdb/target-delegates.c
> index 00dc2c5..7abb393 100644
> --- a/gdb/target-delegates.c
> +++ b/gdb/target-delegates.c
> @@ -298,6 +298,135 @@ delegate_terminal_info (struct target_ops *self, const char *arg1, int arg2)
> }
>
> static void
> +delegate_load (struct target_ops *self, char *arg1, int arg2)
> +{
> + self = self->beneath;
> + self->to_load (self, arg1, arg2);
> +}
> +
> +static void
> +tdefault_load (struct target_ops *self, char *arg1, int arg2)
> +{
> + tcomplain ();
> +}
> +
> +static void
> +delegate_post_startup_inferior (struct target_ops *self, ptid_t arg1)
> +{
> + self = self->beneath;
> + self->to_post_startup_inferior (self, arg1);
> +}
> +
> +static void
> +tdefault_post_startup_inferior (struct target_ops *self, ptid_t arg1)
> +{
> +}
> +
> +static int
> +delegate_insert_fork_catchpoint (struct target_ops *self, int arg1)
> +{
> + self = self->beneath;
> + return self->to_insert_fork_catchpoint (self, arg1);
> +}
> +
> +static int
> +tdefault_insert_fork_catchpoint (struct target_ops *self, int arg1)
> +{
> + return 1;
> +}
> +
> +static int
> +delegate_remove_fork_catchpoint (struct target_ops *self, int arg1)
> +{
> + self = self->beneath;
> + return self->to_remove_fork_catchpoint (self, arg1);
> +}
> +
> +static int
> +tdefault_remove_fork_catchpoint (struct target_ops *self, int arg1)
> +{
> + return 1;
> +}
> +
> +static int
> +delegate_insert_vfork_catchpoint (struct target_ops *self, int arg1)
> +{
> + self = self->beneath;
> + return self->to_insert_vfork_catchpoint (self, arg1);
> +}
> +
> +static int
> +tdefault_insert_vfork_catchpoint (struct target_ops *self, int arg1)
> +{
> + return 1;
> +}
> +
> +static int
> +delegate_remove_vfork_catchpoint (struct target_ops *self, int arg1)
> +{
> + self = self->beneath;
> + return self->to_remove_vfork_catchpoint (self, arg1);
> +}
> +
> +static int
> +tdefault_remove_vfork_catchpoint (struct target_ops *self, int arg1)
> +{
> + return 1;
> +}
> +
> +static int
> +delegate_insert_exec_catchpoint (struct target_ops *self, int arg1)
> +{
> + self = self->beneath;
> + return self->to_insert_exec_catchpoint (self, arg1);
> +}
> +
> +static int
> +tdefault_insert_exec_catchpoint (struct target_ops *self, int arg1)
> +{
> + return 1;
> +}
> +
> +static int
> +delegate_remove_exec_catchpoint (struct target_ops *self, int arg1)
> +{
> + self = self->beneath;
> + return self->to_remove_exec_catchpoint (self, arg1);
> +}
> +
> +static int
> +tdefault_remove_exec_catchpoint (struct target_ops *self, int arg1)
> +{
> + return 1;
> +}
> +
> +static int
> +delegate_set_syscall_catchpoint (struct target_ops *self, int arg1, int arg2, int arg3, int arg4, int *arg5)
> +{
> + self = self->beneath;
> + return self->to_set_syscall_catchpoint (self, arg1, arg2, arg3, arg4, arg5);
> +}
> +
> +static int
> +tdefault_set_syscall_catchpoint (struct target_ops *self, int arg1, int arg2, int arg3, int arg4, int *arg5)
> +{
> + return 1;
> +}
> +
> +static int
> +delegate_has_exited (struct target_ops *self, int arg1, int arg2, int *arg3)
> +{
> + self = self->beneath;
> + return self->to_has_exited (self, arg1, arg2, arg3);
> +}
> +
> +static int
> +tdefault_has_exited (struct target_ops *self, int arg1, int arg2, int *arg3)
> +{
> + return 0;
> +}
> +
> +static void
> delegate_rcmd (struct target_ops *self, char *arg1, struct ui_file *arg2)
> {
> self = self->beneath;
> @@ -412,6 +541,26 @@ install_delegators (struct target_ops *ops)
> ops->to_terminal_save_ours = delegate_terminal_save_ours;
> if (ops->to_terminal_info == NULL)
> ops->to_terminal_info = delegate_terminal_info;
> + if (ops->to_load == NULL)
> + ops->to_load = delegate_load;
> + if (ops->to_post_startup_inferior == NULL)
> + ops->to_post_startup_inferior = delegate_post_startup_inferior;
> + if (ops->to_insert_fork_catchpoint == NULL)
> + ops->to_insert_fork_catchpoint = delegate_insert_fork_catchpoint;
> + if (ops->to_remove_fork_catchpoint == NULL)
> + ops->to_remove_fork_catchpoint = delegate_remove_fork_catchpoint;
> + if (ops->to_insert_vfork_catchpoint == NULL)
> + ops->to_insert_vfork_catchpoint = delegate_insert_vfork_catchpoint;
> + if (ops->to_remove_vfork_catchpoint == NULL)
> + ops->to_remove_vfork_catchpoint = delegate_remove_vfork_catchpoint;
> + if (ops->to_insert_exec_catchpoint == NULL)
> + ops->to_insert_exec_catchpoint = delegate_insert_exec_catchpoint;
> + if (ops->to_remove_exec_catchpoint == NULL)
> + ops->to_remove_exec_catchpoint = delegate_remove_exec_catchpoint;
> + if (ops->to_set_syscall_catchpoint == NULL)
> + ops->to_set_syscall_catchpoint = delegate_set_syscall_catchpoint;
> + if (ops->to_has_exited == NULL)
> + ops->to_has_exited = delegate_has_exited;
> if (ops->to_rcmd == NULL)
> ops->to_rcmd = delegate_rcmd;
> if (ops->to_can_async_p == NULL)
> @@ -455,6 +604,16 @@ install_dummy_methods (struct target_ops *ops)
> ops->to_terminal_ours = tdefault_terminal_ours;
> ops->to_terminal_save_ours = tdefault_terminal_save_ours;
> ops->to_terminal_info = default_terminal_info;
> + ops->to_load = tdefault_load;
> + ops->to_post_startup_inferior = tdefault_post_startup_inferior;
> + ops->to_insert_fork_catchpoint = tdefault_insert_fork_catchpoint;
> + ops->to_remove_fork_catchpoint = tdefault_remove_fork_catchpoint;
> + ops->to_insert_vfork_catchpoint = tdefault_insert_vfork_catchpoint;
> + ops->to_remove_vfork_catchpoint = tdefault_remove_vfork_catchpoint;
> + ops->to_insert_exec_catchpoint = tdefault_insert_exec_catchpoint;
> + ops->to_remove_exec_catchpoint = tdefault_remove_exec_catchpoint;
> + ops->to_set_syscall_catchpoint = tdefault_set_syscall_catchpoint;
> + ops->to_has_exited = tdefault_has_exited;
> ops->to_rcmd = default_rcmd;
> ops->to_can_async_p = find_default_can_async_p;
> ops->to_is_async_p = find_default_is_async_p;
> diff --git a/gdb/target.c b/gdb/target.c
> index f77fb77..076e4be 100644
> --- a/gdb/target.c
> +++ b/gdb/target.c
> @@ -63,8 +63,6 @@ static int nomemory (CORE_ADDR, char *, int, int, struct target_ops *);
>
> static int return_zero (void);
>
> -static int return_one (void);
> -
> static int return_minus_one (void);
>
> void target_ignore (void);
> @@ -623,18 +621,18 @@ update_current_target (void)
> /* Do not inherit to_terminal_save_ours. */
> /* Do not inherit to_terminal_info. */
> /* Do not inherit to_kill. */
> - INHERIT (to_load, t);
> + /* Do not inherit to_load. */
> /* Do no inherit to_create_inferior. */
> - INHERIT (to_post_startup_inferior, t);
> - INHERIT (to_insert_fork_catchpoint, t);
> - INHERIT (to_remove_fork_catchpoint, t);
> - INHERIT (to_insert_vfork_catchpoint, t);
> - INHERIT (to_remove_vfork_catchpoint, t);
> + /* Do not inherit to_post_startup_inferior. */
> + /* Do not inherit to_insert_fork_catchpoint. */
> + /* Do not inherit to_remove_fork_catchpoint. */
> + /* Do not inherit to_insert_vfork_catchpoint. */
> + /* Do not inherit to_remove_vfork_catchpoint. */
> /* Do not inherit to_follow_fork. */
> - INHERIT (to_insert_exec_catchpoint, t);
> - INHERIT (to_remove_exec_catchpoint, t);
> - INHERIT (to_set_syscall_catchpoint, t);
> - INHERIT (to_has_exited, t);
> + /* Do not inherit to_insert_exec_catchpoint. */
> + /* Do not inherit to_remove_exec_catchpoint. */
> + /* Do not inherit to_set_syscall_catchpoint. */
> + /* Do not inherit to_has_exited. */
> /* Do not inherit to_mourn_inferior. */
> INHERIT (to_can_run, t);
> /* Do not inherit to_pass_signals. */
> @@ -730,36 +728,6 @@ update_current_target (void)
> (int (*) (CORE_ADDR, gdb_byte *, int, int,
> struct mem_attrib *, struct target_ops *))
> nomemory);
> - de_fault (to_load,
> - (void (*) (struct target_ops *, char *, int))
> - tcomplain);
> - de_fault (to_post_startup_inferior,
> - (void (*) (struct target_ops *, ptid_t))
> - target_ignore);
> - de_fault (to_insert_fork_catchpoint,
> - (int (*) (struct target_ops *, int))
> - return_one);
> - de_fault (to_remove_fork_catchpoint,
> - (int (*) (struct target_ops *, int))
> - return_one);
> - de_fault (to_insert_vfork_catchpoint,
> - (int (*) (struct target_ops *, int))
> - return_one);
> - de_fault (to_remove_vfork_catchpoint,
> - (int (*) (struct target_ops *, int))
> - return_one);
> - de_fault (to_insert_exec_catchpoint,
> - (int (*) (struct target_ops *, int))
> - return_one);
> - de_fault (to_remove_exec_catchpoint,
> - (int (*) (struct target_ops *, int))
> - return_one);
> - de_fault (to_set_syscall_catchpoint,
> - (int (*) (struct target_ops *, int, int, int, int, int *))
> - return_one);
> - de_fault (to_has_exited,
> - (int (*) (struct target_ops *, int, int, int *))
> - return_zero);
> de_fault (to_can_run,
> (int (*) (struct target_ops *))
> return_zero);
> @@ -3542,12 +3510,6 @@ return_zero (void)
> }
>
> static int
> -return_one (void)
> -{
> - return 1;
> -}
> -
> -static int
> return_minus_one (void)
> {
> return -1;
> diff --git a/gdb/target.h b/gdb/target.h
> index e16ff52..6a563f7 100644
> --- a/gdb/target.h
> +++ b/gdb/target.h
> @@ -499,20 +499,30 @@ struct target_ops
> void (*to_terminal_info) (struct target_ops *, const char *, int)
> TARGET_DEFAULT_FUNC (default_terminal_info);
> void (*to_kill) (struct target_ops *);
> - void (*to_load) (struct target_ops *, char *, int);
> + void (*to_load) (struct target_ops *, char *, int)
> + TARGET_DEFAULT_NORETURN (tcomplain ());
> void (*to_create_inferior) (struct target_ops *,
> char *, char *, char **, int);
> - void (*to_post_startup_inferior) (struct target_ops *, ptid_t);
> - int (*to_insert_fork_catchpoint) (struct target_ops *, int);
> - int (*to_remove_fork_catchpoint) (struct target_ops *, int);
> - int (*to_insert_vfork_catchpoint) (struct target_ops *, int);
> - int (*to_remove_vfork_catchpoint) (struct target_ops *, int);
> + void (*to_post_startup_inferior) (struct target_ops *, ptid_t)
> + TARGET_DEFAULT_IGNORE ();
> + int (*to_insert_fork_catchpoint) (struct target_ops *, int)
> + TARGET_DEFAULT_RETURN (1);
> + int (*to_remove_fork_catchpoint) (struct target_ops *, int)
> + TARGET_DEFAULT_RETURN (1);
> + int (*to_insert_vfork_catchpoint) (struct target_ops *, int)
> + TARGET_DEFAULT_RETURN (1);
> + int (*to_remove_vfork_catchpoint) (struct target_ops *, int)
> + TARGET_DEFAULT_RETURN (1);
> int (*to_follow_fork) (struct target_ops *, int, int);
> - int (*to_insert_exec_catchpoint) (struct target_ops *, int);
> - int (*to_remove_exec_catchpoint) (struct target_ops *, int);
> + int (*to_insert_exec_catchpoint) (struct target_ops *, int)
> + TARGET_DEFAULT_RETURN (1);
> + int (*to_remove_exec_catchpoint) (struct target_ops *, int)
> + TARGET_DEFAULT_RETURN (1);
> int (*to_set_syscall_catchpoint) (struct target_ops *,
> - int, int, int, int, int *);
> - int (*to_has_exited) (struct target_ops *, int, int, int *);
> + int, int, int, int, int *)
> + TARGET_DEFAULT_RETURN (1);
> + int (*to_has_exited) (struct target_ops *, int, int, int *)
> + TARGET_DEFAULT_RETURN (0);
> void (*to_mourn_inferior) (struct target_ops *);
> int (*to_can_run) (struct target_ops *);
>
>
--
Pedro Alves