Move gdb/signals.h to common-defs.h
[deliverable/binutils-gdb.git] / gdb / amd64obsd-tdep.c
index d9cea9c3a5408635e112e35e59e202a24e6fa0f6..5a5e209ac928a8643af02435fef1740c8d73ff99 100644 (file)
@@ -32,6 +32,7 @@
 #include "gdb_assert.h"
 #include <string.h>
 
+#include "obsd-tdep.h"
 #include "amd64-tdep.h"
 #include "i387-tdep.h"
 #include "solib-svr4.h"
@@ -44,7 +45,8 @@ amd64obsd_supply_regset (const struct regset *regset,
                         struct regcache *regcache, int regnum,
                         const void *regs, size_t len)
 {
-  const struct gdbarch_tdep *tdep = gdbarch_tdep (regset->arch);
+  struct gdbarch *gdbarch = get_regcache_arch (regcache);
+  const struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
 
   gdb_assert (len >= tdep->sizeof_gregset + I387_SIZEOF_FXSAVE);
 
@@ -53,6 +55,11 @@ amd64obsd_supply_regset (const struct regset *regset,
                       ((const gdb_byte *)regs) + tdep->sizeof_gregset);
 }
 
+static const struct regset amd64obsd_combined_regset =
+  {
+    NULL, amd64obsd_supply_regset, NULL
+  };
+
 static const struct regset *
 amd64obsd_regset_from_core_section (struct gdbarch *gdbarch,
                                    const char *sect_name, size_t sect_size)
@@ -64,11 +71,7 @@ amd64obsd_regset_from_core_section (struct gdbarch *gdbarch,
 
   if (strcmp (sect_name, ".reg") == 0
       && sect_size >= tdep->sizeof_gregset + I387_SIZEOF_FXSAVE)
-    {
-      if (tdep->gregset == NULL)
-        tdep->gregset = regset_alloc (gdbarch, amd64obsd_supply_regset, NULL);
-      return tdep->gregset;
-    }
+    return &amd64obsd_combined_regset;
 
   return NULL;
 }
@@ -459,6 +462,7 @@ amd64obsd_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
   struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
 
   amd64_init_abi (info, gdbarch);
+  obsd_init_abi (info, gdbarch);
 
   /* Initialize general-purpose register set details.  */
   tdep->gregset_reg_offset = amd64obsd_r_reg_offset;
This page took 0.025231 seconds and 4 git commands to generate.