+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.
#include <sgidefs.h>
#include <sys/ptrace.h>
+#include <asm/ptrace.h>
#include "features/mips-linux.c"
#include "features/mips-dsp-linux.c"
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
};
};
+#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.