From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 599 invoked by alias); 29 Jun 2013 03:11:11 -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 525 invoked by uid 89); 29 Jun 2013 03:11:02 -0000 X-Spam-SWARE-Status: No, score=-4.6 required=5.0 tests=AWL,BAYES_00,KHOP_RCVD_UNTRUST,KHOP_THREADED,RCVD_IN_HOSTKARMA_W,RCVD_IN_HOSTKARMA_WL autolearn=ham version=3.3.1 Received: from relay1.mentorg.com (HELO relay1.mentorg.com) (192.94.38.131) by sourceware.org (qpsmtpd/0.84/v0.84-167-ge50287c) with ESMTP; Sat, 29 Jun 2013 03:11:01 +0000 Received: from svr-orw-fem-01.mgc.mentorg.com ([147.34.98.93]) by relay1.mentorg.com with esmtp id 1UslYx-0006cb-MS from Yao_Qi@mentor.com for gdb-patches@sourceware.org; Fri, 28 Jun 2013 20:10:59 -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); Fri, 28 Jun 2013 20:10:59 -0700 Received: from qiyao.dyndns.org.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; Fri, 28 Jun 2013 20:10:58 -0700 From: Yao Qi To: Subject: [PATCH 2/5] Include asm/ptrace.h in mips-linux-nat.c Date: Sat, 29 Jun 2013 03:11:00 -0000 Message-ID: <1372475427-24862-3-git-send-email-yao@codesourcery.com> In-Reply-To: <1372475427-24862-1-git-send-email-yao@codesourcery.com> References: <1369881867-11372-1-git-send-email-yao@codesourcery.com> <1372475427-24862-1-git-send-email-yao@codesourcery.com> MIME-Version: 1.0 Content-Type: text/plain X-SW-Source: 2013-06/txt/msg00930.txt.bz2 Hi, This patch is to include asm/ptrace.h in mips-linux-nat.c and wrap some structures by "ifndef PTRACE_GET_WATCH_REGS" and "#endif" as a fallback if watchpoint-related structures are not defined in kernel header. gdb: 2013-06-29 Yao Qi * 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 @@ -34,6 +34,7 @@ #include #include +#include #include "features/mips-linux.c" #include "features/mips-dsp-linux.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 + +#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) + /* -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