Phase 1 of the ptid_t changes.
[deliverable/binutils-gdb.git] / gdb / ppcnbsd-nat.c
index b754fa71a4893d1b5541053c555c83f40353146a..b206110fc49da2a7f49e4711b2b1a694db181bc8 100644 (file)
@@ -1,5 +1,6 @@
 /* Native-dependent code for PowerPC's running NetBSD, for GDB.
-   Copyright 1988, 1989, 1991, 1992, 1994, 1996, 2000 Free Software Foundation, Inc.
+   Copyright 1988, 1989, 1991, 1992, 1994, 1996, 2000, 2001
+   Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -26,6 +27,8 @@
 #include "defs.h"
 #include "inferior.h"
 #include "gdbcore.h"
+#include "ppc-tdep.h"
+#include "regcache.h"
 
 #define RF(dst, src) \
         memcpy(&registers[REGISTER_BYTE(dst)], &src, sizeof(src))
         memcpy(&dst, &registers[REGISTER_BYTE(src)], sizeof(dst))
 
 void
-fetch_inferior_registers (regno)
-     int regno;
+fetch_inferior_registers (int regno)
 {
   struct reg inferior_registers;
+#ifdef PT_GETFPREGS
   struct fpreg inferior_fp_registers;
+#endif
   int i;
 
-  ptrace (PT_GETREGS, inferior_pid,
+  ptrace (PT_GETREGS, PIDGET (inferior_ptid),
          (PTRACE_ARG3_TYPE) & inferior_registers, 0);
   for (i = 0; i < 32; i++)
     RF (i, inferior_registers.fixreg[i]);
-  RF (LR_REGNUM, inferior_registers.lr);
-  RF (CR_REGNUM, inferior_registers.cr);
-  RF (XER_REGNUM, inferior_registers.xer);
-  RF (CTR_REGNUM, inferior_registers.ctr);
+  RF (PPC_LR_REGNUM, inferior_registers.lr);
+  RF (PPC_CR_REGNUM, inferior_registers.cr);
+  RF (PPC_XER_REGNUM, inferior_registers.xer);
+  RF (PPC_CTR_REGNUM, inferior_registers.ctr);
   RF (PC_REGNUM, inferior_registers.pc);
 
-  ptrace (PT_GETFPREGS, inferior_pid,
-         (PTRACE_ARG3_TYPE) & inferior_fp_registers, 0);
+#ifdef PT_GETFPREGS
+  ptrace (PT_GETFPREGS, PIDGET (inferior_ptid),
+         (PTRACE_ARG3_TYPE) &inferior_fp_registers, 0);
   for (i = 0; i < 32; i++)
-    RF (FP0_REGNUM + i, inferior_fp_registers.r_regs[i]);
+    RF (FP0_REGNUM + i, inferior_fp_registers.fpreg[i]);
+#endif
 
   registers_fetched ();
 }
 
 void
-store_inferior_registers (regno)
-     int regno;
+store_inferior_registers (int regno)
 {
   struct reg inferior_registers;
+#ifdef PT_SETFPREGS
   struct fpreg inferior_fp_registers;
+#endif
   int i;
 
   for (i = 0; i < 32; i++)
     RS (i, inferior_registers.fixreg[i]);
-  RS (LR_REGNUM, inferior_registers.lr);
-  RS (CR_REGNUM, inferior_registers.cr);
-  RS (XER_REGNUM, inferior_registers.xer);
-  RS (CTR_REGNUM, inferior_registers.ctr);
+  RS (PPC_LR_REGNUM, inferior_registers.lr);
+  RS (PPC_CR_REGNUM, inferior_registers.cr);
+  RS (PPC_XER_REGNUM, inferior_registers.xer);
+  RS (PPC_CTR_REGNUM, inferior_registers.ctr);
   RS (PC_REGNUM, inferior_registers.pc);
 
-  ptrace (PT_SETREGS, inferior_pid,
+  ptrace (PT_SETREGS, PIDGET (inferior_ptid),
          (PTRACE_ARG3_TYPE) & inferior_registers, 0);
 
+#ifdef PT_SETFPREGS
   for (i = 0; i < 32; i++)
-    RS (FP0_REGNUM + i, inferior_fp_registers.r_regs[i]);
-  ptrace (PT_SETFPREGS, inferior_pid,
+    RS (FP0_REGNUM + i, inferior_fp_registers.fpreg[i]);
+  ptrace (PT_SETFPREGS, PIDGET (inferior_ptid),
          (PTRACE_ARG3_TYPE) & inferior_fp_registers, 0);
+#endif
 }
 
 struct md_core
 {
   struct reg intreg;
+#ifdef PT_GETFPREGS
   struct fpreg freg;
+#endif
 };
 
 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;
+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;
   int i;
@@ -103,15 +111,17 @@ fetch_core_registers (core_reg_sect, core_reg_size, which, ignore)
   /* Integer registers */
   for (i = 0; i < 32; i++)
     RF (i, core_reg->intreg.fixreg[i]);
-  RF (LR_REGNUM, core_reg->intreg.lr);
-  RF (CR_REGNUM, core_reg->intreg.cr);
-  RF (XER_REGNUM, core_reg->intreg.xer);
-  RF (CTR_REGNUM, core_reg->intreg.ctr);
+  RF (PPC_LR_REGNUM, core_reg->intreg.lr);
+  RF (PPC_CR_REGNUM, core_reg->intreg.cr);
+  RF (PPC_XER_REGNUM, core_reg->intreg.xer);
+  RF (PPC_CTR_REGNUM, core_reg->intreg.ctr);
   RF (PC_REGNUM, core_reg->intreg.pc);
 
+#ifdef PT_FPGETREGS
   /* Floating point registers */
   for (i = 0; i < 32; i++)
-    RF (FP0_REGNUM + i, core_reg->freg.r_regs[i]);
+    RF (FP0_REGNUM + i, core_reg->freg.fpreg[i]);
+#endif
 
   registers_fetched ();
 }
@@ -129,7 +139,7 @@ static struct core_fns ppcnbsd_core_fns =
 };
 
 void
-_initialize_ppcnbsd_nat ()
+_initialize_ppcnbsd_nat (void)
 {
   add_core_fns (&ppcnbsd_core_fns);
 }
This page took 0.025118 seconds and 4 git commands to generate.