This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH 2/5] Include asm/ptrace.h in mips-linux-nat.c


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  <yao@codesourcery.com>
 
+	* 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  <yao@codesourcery.com>
+
 	* 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 <sgidefs.h>
 #include <sys/ptrace.h>
+#include <asm/ptrace.h>
 
 #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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]