Put mi and tui comments for free -> xfree change in proper ChangeLogs.
[deliverable/binutils-gdb.git] / gdb / i386nbsd-nat.c
index 76a75ae84dd1d7c2c17be2f6fc125468aedc6249..0c069d12e60d1f1f32e5a19b8cb3d8eda8fe11ab 100644 (file)
@@ -51,8 +51,7 @@ struct env387
   };
 
 void
-fetch_inferior_registers (regno)
-     int regno;
+fetch_inferior_registers (int regno)
 {
   struct reg inferior_registers;
   struct env387 inferior_fpregisters;
@@ -101,8 +100,7 @@ fetch_inferior_registers (regno)
 }
 
 void
-store_inferior_registers (regno)
-     int regno;
+store_inferior_registers (int regno)
 {
   struct reg inferior_registers;
   struct env387 inferior_fpregisters;
@@ -148,25 +146,59 @@ store_inferior_registers (regno)
   ptrace (PT_SETFPREGS, inferior_pid,
          (PTRACE_ARG3_TYPE) &inferior_fpregisters, 0);
 }
-
+\f
 struct md_core
 {
   struct reg intreg;
-  struct fpreg freg;
+  struct env387 freg;
 };
 
-void
-fetch_core_registers (core_reg_sect, core_reg_size, which, ignore)
-     char *core_reg_sect;
-     unsigned core_reg_size;
-     int which;
-     CORE_ADDR ignore;
+static void
+fetch_core_registers (char *core_reg_sect, unsigned core_reg_size, int which,
+                     CORE_ADDR ignore)
 {
   struct md_core *core_reg = (struct md_core *) core_reg_sect;
 
   /* integer registers */
   memcpy (&registers[REGISTER_BYTE (0)], &core_reg->intreg,
          sizeof (struct reg));
+
   /* floating point registers */
-  /* XXX */
+  RF (FP0_REGNUM,     core_reg->freg.regs[0]);
+  RF (FP0_REGNUM + 1, core_reg->freg.regs[1]);
+  RF (FP0_REGNUM + 2, core_reg->freg.regs[2]);
+  RF (FP0_REGNUM + 3, core_reg->freg.regs[3]);
+  RF (FP0_REGNUM + 4, core_reg->freg.regs[4]);
+  RF (FP0_REGNUM + 5, core_reg->freg.regs[5]);
+  RF (FP0_REGNUM + 6, core_reg->freg.regs[6]);
+  RF (FP0_REGNUM + 7, core_reg->freg.regs[7]);
+
+  RF (FCTRL_REGNUM,   core_reg->freg.control);
+  RF (FSTAT_REGNUM,   core_reg->freg.status);
+  RF (FTAG_REGNUM,    core_reg->freg.tag);
+  RF (FCS_REGNUM,     core_reg->freg.code_seg);
+  RF (FCOFF_REGNUM,   core_reg->freg.eip);
+  RF (FDS_REGNUM,     core_reg->freg.operand_seg);
+  RF (FDOFF_REGNUM,   core_reg->freg.operand);
+  RF (FOP_REGNUM,     core_reg->freg.opcode);
+
+  registers_fetched ();
+}
+
+/* Register that we are able to handle i386nbsd core file formats.
+   FIXME: is this really bfd_target_unknown_flavour? */
+
+static struct core_fns i386nbsd_core_fns =
+{
+  bfd_target_unknown_flavour,          /* core_flavour */
+  default_check_format,                        /* check_format */
+  default_core_sniffer,                        /* core_sniffer */
+  fetch_core_registers,                        /* core_read_registers */
+  NULL                                 /* next */
+};
+
+void
+_initialize_i386nbsd_nat (void)
+{
+  add_core_fns (&i386nbsd_core_fns);
 }
This page took 0.024087 seconds and 4 git commands to generate.