aboutsummaryrefslogtreecommitdiff
path: root/gdb/amd64bsd-nat.c
diff options
context:
space:
mode:
Diffstat (limited to 'gdb/amd64bsd-nat.c')
-rw-r--r--gdb/amd64bsd-nat.c24
1 files changed, 20 insertions, 4 deletions
diff --git a/gdb/amd64bsd-nat.c b/gdb/amd64bsd-nat.c
index b30885a..4393553 100644
--- a/gdb/amd64bsd-nat.c
+++ b/gdb/amd64bsd-nat.c
@@ -22,6 +22,7 @@
#include "defs.h"
#include "inferior.h"
#include "regcache.h"
+#include "target.h"
/* We include <signal.h> to make sure `struct fxsave64' is defined on
NetBSD, since NetBSD's <machine/reg.h> needs it. */
@@ -33,13 +34,14 @@
#include "amd64-tdep.h"
#include "amd64-nat.h"
+#include "inf-ptrace.h"
/* Fetch register REGNUM from the inferior. If REGNUM is -1, do this
for all registers (including the floating-point registers). */
-void
-fetch_inferior_registers (int regnum)
+static void
+amd64bsd_fetch_inferior_registers (int regnum)
{
if (regnum == -1 || amd64_native_gregset_supplies_p (regnum))
{
@@ -69,8 +71,8 @@ fetch_inferior_registers (int regnum)
/* Store register REGNUM back into the inferior. If REGNUM is -1, do
this for all registers (including the floating-point registers). */
-void
-store_inferior_registers (int regnum)
+static void
+amd64bsd_store_inferior_registers (int regnum)
{
if (regnum == -1 || amd64_native_gregset_supplies_p (regnum))
{
@@ -105,3 +107,17 @@ store_inferior_registers (int regnum)
perror_with_name ("Couldn't write floating point status");
}
}
+
+/* Create a prototype *BSD/amd64 target. The client can override it
+ with local methods. */
+
+struct target_ops *
+amd64bsd_target (void)
+{
+ struct target_ops *t;
+
+ t = inf_ptrace_target ();
+ t->to_fetch_registers = amd64bsd_fetch_inferior_registers;
+ t->to_store_registers = amd64bsd_store_inferior_registers;
+ return t;
+}