This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [PATCH 2/5] Include asm/ptrace.h in mips-linux-nat.c
- From: "Maciej W. Rozycki" <macro at codesourcery dot com>
- To: Yao Qi <yao at codesourcery dot com>
- Cc: <gdb-patches at sourceware dot org>
- Date: Wed, 24 Jul 2013 01:26:28 +0100
- Subject: Re: [PATCH 2/5] Include asm/ptrace.h in mips-linux-nat.c
- References: <1369881867-11372-1-git-send-email-yao at codesourcery dot com> <1372475427-24862-1-git-send-email-yao at codesourcery dot com> <1372475427-24862-3-git-send-email-yao at codesourcery dot com>
On Sat, 29 Jun 2013, Yao Qi wrote:
> 2013-06-29 Yao Qi <yao@codesourcery.com>
>
> * mips-linux-nat.c (MAX_DEBUG_REGISTER): Move it earlier in
> the code.
> (enum pt_watch_style): Remove.
> (struct mips32_watch_regs, struct mips64_watch_regs): Remove.
> (struct pt_watch_regs): Likewise.
> [!PTRACE_GET_WATCH_REGS] (enum pt_watch_style): New.
> [!PTRACE_GET_WATCH_REGS] (struct mips32_watch_regs): New.
> [!PTRACE_GET_WATCH_REGS] (struct mips64_watch_regs): New.
> [!PTRACE_GET_WATCH_REGS] (struct pt_watch_regs): New.
> ---
> gdb/mips-linux-nat.c | 39 ++++++++++++++++++++++-----------------
> 1 files changed, 22 insertions(+), 17 deletions(-)
>
> diff --git a/gdb/mips-linux-nat.c b/gdb/mips-linux-nat.c
> index d323a82..44d23a6 100644
> --- a/gdb/mips-linux-nat.c
> +++ b/gdb/mips-linux-nat.c
> @@ -460,31 +461,19 @@ mips_linux_read_description (struct target_ops *ops)
> return have_dsp ? tdesc_mips64_dsp_linux : tdesc_mips64_linux;
> }
>
> -#ifndef PTRACE_GET_WATCH_REGS
> -# define PTRACE_GET_WATCH_REGS 0xd0
> -#endif
> -
> -#ifndef PTRACE_SET_WATCH_REGS
> -# define PTRACE_SET_WATCH_REGS 0xd1
> -#endif
> -
> -#define W_BIT 0
> -#define R_BIT 1
> -#define I_BIT 2
> +#define MAX_DEBUG_REGISTER 8
>
> -#define W_MASK (1 << W_BIT)
> -#define R_MASK (1 << R_BIT)
> -#define I_MASK (1 << I_BIT)
> +/* If macro PTRACE_GET_WATCH_REGS is not defined, kernel header doesn't
> + have hardware watchpoint-related structures. Define them below. */
>
> -#define IRW_MASK (I_MASK | R_MASK | W_MASK)
> +#ifndef PTRACE_GET_WATCH_REGS
> +# define PTRACE_GET_WATCH_REGS 0xd0
>
> enum pt_watch_style {
> pt_watch_style_mips32,
> pt_watch_style_mips64
> };
>
> -#define MAX_DEBUG_REGISTER 8
> -
> /* A value of zero in a watchlo indicates that it is available. */
>
> struct mips32_watch_regs
> @@ -524,6 +513,22 @@ struct pt_watch_regs
> };
> };
>
> +#endif
#endif /* !PTRACE_GET_WATCH_REGS */
please.
> +
> +#ifndef PTRACE_SET_WATCH_REGS
> +# define PTRACE_SET_WATCH_REGS 0xd1
> +#endif
With the inclusion of the kernel header I think there's no need to wrap
this definition separately -- a system header configuration where
PTRACE_GET_WATCH_REGS is defined but PTRACE_SET_WATCH_REGS is not would be
broken and could not be relied upon anyway. Please just use:
#ifndef PTRACE_GET_WATCH_REGS
# define PTRACE_GET_WATCH_REGS 0xd0
# define PTRACE_SET_WATCH_REGS 0xd1
[...]
instead. OK with these changes, thanks.
Maciej