Tue Nov 5 10:21:02 1996 Michael Snyder <msnyder@cleaver.cygnus.com>
[deliverable/binutils-gdb.git] / gdb / i386mach-nat.c
index 52081c76ea42b82c3b238749ee12e33aa1fe12b1..f843d7f95a3587897a7cc5e3e22634e02bb47436 100644 (file)
@@ -15,7 +15,7 @@ GNU General Public License for more details.
 
 You should have received a copy of the GNU General Public License
 along with this program; if not, write to the Free Software
-Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 #include "defs.h"
 #include "frame.h"
@@ -33,10 +33,10 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
 #include <machine/reg.h>
 
 #include <sys/file.h>
-#include <sys/stat.h>
+#include "gdb_stat.h"
 #include <sys/core.h>
 
-
+static void fetch_core_registers PARAMS ((char *, unsigned, int, CORE_ADDR));
 
 void
 fetch_inferior_registers (regno)
@@ -53,12 +53,13 @@ fetch_inferior_registers (regno)
   ptrace (PTRACE_GETFPREGS, inferior_pid,
          (PTRACE_ARG3_TYPE) &inferior_fp_registers);
 
-  bcopy (&inferior_registers, registers, sizeof inferior_registers);
+  memcpy (registers, &inferior_registers, sizeof inferior_registers);
 
-  bcopy (inferior_fp_registers.f_st,&registers[REGISTER_BYTE (FP0_REGNUM)],
+  memcpy (&registers[REGISTER_BYTE (FP0_REGNUM)],
+        inferior_fp_registers.f_st,
         sizeof inferior_fp_registers.f_st);
-  bcopy (&inferior_fp_registers.f_ctrl,
-        &registers[REGISTER_BYTE (FPC_REGNUM)],
+  memcpy (&registers[REGISTER_BYTE (FPC_REGNUM)],
+        &inferior_fp_registers.f_ctrl,
         sizeof inferior_fp_registers - sizeof inferior_fp_registers.f_st);
 }
 
@@ -74,12 +75,12 @@ store_inferior_registers (regno)
   struct fp_state inferior_fp_registers;
   extern char registers[];
 
-  bcopy (registers, &inferior_registers, 20 * 4);
+  memcpy (&inferior_registers, registers, 20 * 4);
 
-  bcopy (&registers[REGISTER_BYTE (FP0_REGNUM)],inferior_fp_registers.f_st,
+  memcpy (inferior_fp_registers.f_st,&registers[REGISTER_BYTE (FP0_REGNUM)],
         sizeof inferior_fp_registers.f_st);
-  bcopy (&registers[REGISTER_BYTE (FPC_REGNUM)],
-        &inferior_fp_registers.f_ctrl,
+  memcpy (&inferior_fp_registers.f_ctrl,
+        &registers[REGISTER_BYTE (FPC_REGNUM)],
         sizeof inferior_fp_registers - sizeof inferior_fp_registers.f_st);
   
 #ifdef PTRACE_FP_BUG
@@ -112,12 +113,12 @@ store_inferior_registers (regno)
 
 /* Work with core files, for GDB. */
 
-void
+static void
 fetch_core_registers (core_reg_sect, core_reg_size, which, reg_addr)
      char *core_reg_sect;
      unsigned core_reg_size;
      int which;
-     unsigned int reg_addr;    /* Unused in this version */
+     CORE_ADDR reg_addr;       /* Unused in this version */
 {
   int val;
   extern char registers[];
@@ -125,21 +126,38 @@ fetch_core_registers (core_reg_sect, core_reg_size, which, reg_addr)
   switch (which) {
   case 0:
   case 1:
-    bcopy (core_reg_sect, registers, core_reg_size);
+    memcpy (registers, core_reg_sect, core_reg_size);
     break;
 
   case 2:
 #ifdef FP0_REGNUM
-    bcopy (core_reg_sect,
-          &registers[REGISTER_BYTE (FP0_REGNUM)],
+    memcpy (&registers[REGISTER_BYTE (FP0_REGNUM)],
+          core_reg_sect,
           core_reg_size);              /* FIXME, probably bogus */
 #endif
 #ifdef FPC_REGNUM
-    bcopy (&corestr.c_fpu.f_fpstatus.f_ctrl,
-          &registers[REGISTER_BYTE (FPC_REGNUM)],
+    memcpy (&registers[REGISTER_BYTE (FPC_REGNUM)],
+          &corestr.c_fpu.f_fpstatus.f_ctrl,
           sizeof corestr.c_fpu.f_fpstatus -
           sizeof corestr.c_fpu.f_fpstatus.f_st);
 #endif
     break;
   }
 }
+
+\f
+/* Register that we are able to handle i386mach core file formats.
+   FIXME: is this really bfd_target_unknown_flavour? */
+
+static struct core_fns i386mach_core_fns =
+{
+  bfd_target_unknown_flavour,
+  fetch_core_registers,
+  NULL
+};
+
+void
+_initialize_core_i386mach ()
+{
+  add_core_fns (&i386mach_core_fns);
+}
This page took 0.02609 seconds and 4 git commands to generate.