aboutsummaryrefslogtreecommitdiff
path: root/gdb/i386bsd-nat.c
diff options
context:
space:
mode:
Diffstat (limited to 'gdb/i386bsd-nat.c')
-rw-r--r--gdb/i386bsd-nat.c32
1 files changed, 21 insertions, 11 deletions
diff --git a/gdb/i386bsd-nat.c b/gdb/i386bsd-nat.c
index fcd772f..22c79e2 100644
--- a/gdb/i386bsd-nat.c
+++ b/gdb/i386bsd-nat.c
@@ -264,6 +264,18 @@ i386bsd_target (void)
#define DBREG_DRX(d, x) ((&d->dr0)[x])
#endif
+static unsigned long
+i386bsd_dr_get (ptid_t ptid, int regnum)
+{
+ struct dbreg dbregs;
+
+ if (ptrace (PT_GETDBREGS, PIDGET (inferior_ptid),
+ (PTRACE_TYPE_ARG3) &dbregs, 0) == -1)
+ perror_with_name (_("Couldn't read debug registers"));
+
+ return DBREG_DRX ((&dbregs), regnum);
+}
+
static void
i386bsd_dr_set (int regnum, unsigned int value)
{
@@ -299,24 +311,22 @@ i386bsd_dr_set_addr (int regnum, CORE_ADDR addr)
i386bsd_dr_set (regnum, addr);
}
-void
-i386bsd_dr_reset_addr (int regnum)
+CORE_ADDR
+i386bsd_dr_get_addr (int regnum)
{
- gdb_assert (regnum >= 0 && regnum <= 4);
-
- i386bsd_dr_set (regnum, 0);
+ return i386bsd_dr_get (inferior_ptid, regnum);
}
unsigned long
i386bsd_dr_get_status (void)
{
- struct dbreg dbregs;
-
- if (ptrace (PT_GETDBREGS, PIDGET (inferior_ptid),
- (PTRACE_TYPE_ARG3) &dbregs, 0) == -1)
- perror_with_name (_("Couldn't read debug registers"));
+ return i386bsd_dr_get (inferior_ptid, 6);
+}
- return DBREG_DRX ((&dbregs), 6);
+unsigned long
+i386bsd_dr_get_control (void)
+{
+ return i386bsd_dr_get (inferior_ptid, 7);
}
#endif /* PT_GETDBREGS */