From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 17677 invoked by alias); 28 Jul 2013 00:43:06 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Received: (qmail 17667 invoked by uid 89); 28 Jul 2013 00:43:06 -0000 X-Spam-SWARE-Status: No, score=-3.3 required=5.0 tests=AWL,BAYES_40,KHOP_RCVD_UNTRUST,KHOP_THREADED,RCVD_IN_HOSTKARMA_W,RCVD_IN_HOSTKARMA_WL,RDNS_NONE autolearn=no version=3.3.1 Received: from Unknown (HELO relay1.mentorg.com) (192.94.38.131) by sourceware.org (qpsmtpd/0.84/v0.84-167-ge50287c) with ESMTP; Sun, 28 Jul 2013 00:43:05 +0000 Received: from svr-orw-fem-01.mgc.mentorg.com ([147.34.98.93]) by relay1.mentorg.com with esmtp id 1V3F4c-0005Mm-Db from Yao_Qi@mentor.com for gdb-patches@sourceware.org; Sat, 27 Jul 2013 17:42:58 -0700 Received: from SVR-ORW-FEM-03.mgc.mentorg.com ([147.34.97.39]) by svr-orw-fem-01.mgc.mentorg.com over TLS secured channel with Microsoft SMTPSVC(6.0.3790.4675); Sat, 27 Jul 2013 17:42:57 -0700 Received: from qiyao.dyndns.org (147.34.91.1) by svr-orw-fem-03.mgc.mentorg.com (147.34.97.39) with Microsoft SMTP Server id 14.2.247.3; Sat, 27 Jul 2013 17:42:57 -0700 Message-ID: <51F468E1.7000502@codesourcery.com> Date: Sun, 28 Jul 2013 00:43:00 -0000 From: Yao Qi User-Agent: Mozilla/5.0 (X11; Linux i686; rv:17.0) Gecko/20130110 Thunderbird/17.0.2 MIME-Version: 1.0 To: "Maciej W. Rozycki" CC: Subject: Re: [PATCH 2/5] Include asm/ptrace.h in mips-linux-nat.c References: <1369881867-11372-1-git-send-email-yao@codesourcery.com> <1372475427-24862-1-git-send-email-yao@codesourcery.com> <1372475427-24862-3-git-send-email-yao@codesourcery.com> In-Reply-To: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 8bit X-SW-Source: 2013-07/txt/msg00669.txt.bz2 On 07/24/2013 08:26 AM, Maciej W. Rozycki wrote: > #endif /* !PTRACE_GET_WATCH_REGS */ > > please. OK. > >> >+ >> >+#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 > [...] > Fixed. > instead. OK with these changes, thanks. Patch below is what I committed. -- Yao (齐尧) --- gdb/ChangeLog | 13 +++++++++++++ gdb/mips-linux-nat.c | 34 ++++++++++++++++++---------------- 2 files changed, 31 insertions(+), 16 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 94d5c12..6350b53 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,18 @@ 2013-07-27 Yao Qi + * mips-linux-nat.c (MAX_DEBUG_REGISTER): Move it earlier in + the code. + (PTRACE_SET_WATCH_REGS, enum pt_watch_style): Remove. + (struct mips32_watch_regs, struct mips64_watch_regs): Remove. + (struct pt_watch_regs): Likewise. + [!PTRACE_GET_WATCH_REGS] (PTRACE_SET_WATCH_REGS): New macro. + [!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. + +2013-07-27 Yao Qi + * breakpoint.h: Include break-common.h. (enum target_hw_bp_type): Move to ... * common/break-common.h: ... here. New. diff --git a/gdb/mips-linux-nat.c b/gdb/mips-linux-nat.c index d323a82..63cc140 100644 --- a/gdb/mips-linux-nat.c +++ b/gdb/mips-linux-nat.c @@ -34,6 +34,7 @@ #include #include +#include #include "features/mips-linux.c" #include "features/mips-dsp-linux.c" @@ -460,31 +461,20 @@ mips_linux_read_description (struct target_ops *ops) return have_dsp ? tdesc_mips64_dsp_linux : tdesc_mips64_linux; } +#define MAX_DEBUG_REGISTER 8 + +/* If macro PTRACE_GET_WATCH_REGS is not defined, kernel header doesn't + have hardware watchpoint-related structures. Define them below. */ + #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 W_MASK (1 << W_BIT) -#define R_MASK (1 << R_BIT) -#define I_MASK (1 << I_BIT) - -#define IRW_MASK (I_MASK | R_MASK | W_MASK) 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 +514,18 @@ struct pt_watch_regs }; }; +#endif /* !PTRACE_GET_WATCH_REGS */ + +#define W_BIT 0 +#define R_BIT 1 +#define I_BIT 2 + +#define W_MASK (1 << W_BIT) +#define R_MASK (1 << R_BIT) +#define I_MASK (1 << I_BIT) + +#define IRW_MASK (I_MASK | R_MASK | W_MASK) + /* -1 if the kernel and/or CPU do not support watch registers. 1 if watch_readback is valid and we can read style, num_valid and the masks. -- 1.7.7.6