* elflink.h (elf_bfd_final_link): Check if dynobj is not NULL
[binutils-gdb.git] / gdb / sun3-nat.c
index 8f94809f619a8f3a1e6791c8708018602dbc87d5..988ed37ad06e8b6bc1bfb3a51e21be155f5914a2 100644 (file)
@@ -1,5 +1,6 @@
 /* Host-dependent code for Sun-3 for GDB, the GNU debugger.
-   Copyright 1986, 1987, 1989, 1991, 1992 Free Software Foundation, Inc.
+   Copyright 1986, 1987, 1989, 1991, 1992, 1993, 1996, 1999, 2000, 2001
+   Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -21,6 +22,7 @@
 #include "defs.h"
 #include "inferior.h"
 #include "gdbcore.h"
+#include "regcache.h"
 
 #include <sys/ptrace.h>
 #define KERNEL                 /* To get floating point reg definitions */
@@ -36,11 +38,11 @@ fetch_inferior_registers (int regno)
 
   registers_fetched ();
 
-  ptrace (PTRACE_GETREGS, inferior_pid,
+  ptrace (PTRACE_GETREGS, PIDGET (inferior_ptid),
          (PTRACE_ARG3_TYPE) & inferior_registers);
 
   if (FP0_REGNUM >= 0)
-    ptrace (PTRACE_GETFPREGS, inferior_pid,
+    ptrace (PTRACE_GETFPREGS, PIDGET (inferior_ptid),
            (PTRACE_ARG3_TYPE) & inferior_fp_registers);
 
   memcpy (registers, &inferior_registers, 16 * 4);
@@ -81,23 +83,31 @@ store_inferior_registers (int regno)
            sizeof inferior_fp_registers - 
            sizeof inferior_fp_registers.fps_regs);
 
-  ptrace (PTRACE_SETREGS, inferior_pid,
+  ptrace (PTRACE_SETREGS, PIDGET (inferior_ptid),
          (PTRACE_ARG3_TYPE) & inferior_registers);
   if (FP0_REGNUM >= 0)
-    ptrace (PTRACE_SETFPREGS, inferior_pid,
+    ptrace (PTRACE_SETFPREGS, PIDGET (inferior_ptid),
            (PTRACE_ARG3_TYPE) & inferior_fp_registers);
 }
 
 
 /* All of this stuff is only relevant if both host and target are sun3.  */
-/* Machine-dependent code for pulling registers out of a Sun-3 core file. */
+
+/* Provide registers to GDB from a core file.
+
+   CORE_REG_SECT points to an array of bytes, which were obtained from
+   a core file which BFD thinks might contain register contents. 
+   CORE_REG_SIZE is its size.
+
+   WHICH says which register set corelow suspects this is:
+     0 --- the general-purpose register set
+     2 --- the floating-point register set
+
+   REG_ADDR isn't used.  */
 
 static void
-fetch_core_registers (core_reg_sect, core_reg_size, which, reg_addr)
-     char *core_reg_sect;
-     unsigned core_reg_size;
-     int which;
-     CORE_ADDR reg_addr;       /* Unused in this version */
+fetch_core_registers (char *core_reg_sect, unsigned core_reg_size,
+                     int which, CORE_ADDR reg_addr)
 {
   struct regs *regs = (struct regs *) core_reg_sect;