* expression.h (struct expression): New member GDBARCH.
[deliverable/binutils-gdb.git] / gdb / sparc-nat.c
index ac2a0c8231406e7d5db99b25339445bc27fe0799..abbe597af4e49900bc6e45a45922924e503c25fa 100644 (file)
@@ -1,12 +1,12 @@
 /* Native-dependent code for SPARC.
 
 /* Native-dependent code for SPARC.
 
-   Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc.
+   Copyright (C) 2003, 2004, 2005, 2007, 2008 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
 
    This file is part of GDB.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 2 of the License, or
+   the Free Software Foundation; either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
@@ -15,9 +15,7 @@
    GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License
    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., 51 Franklin Street, Fifth Floor,
-   Boston, MA 02110-1301, USA.  */
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
 #include "defs.h"
 #include "inferior.h"
 
 #include "defs.h"
 #include "inferior.h"
@@ -135,9 +133,8 @@ sparc32_fpregset_supplies_p (int regnum)
    for all registers (including the floating-point registers).  */
 
 void
    for all registers (including the floating-point registers).  */
 
 void
-fetch_inferior_registers (int regnum)
+sparc_fetch_inferior_registers (struct regcache *regcache, int regnum)
 {
 {
-  struct regcache *regcache = current_regcache;
   int pid;
 
   /* NOTE: cagney/2002-12-03: This code assumes that the currently
   int pid;
 
   /* NOTE: cagney/2002-12-03: This code assumes that the currently
@@ -187,9 +184,8 @@ fetch_inferior_registers (int regnum)
 }
 
 void
 }
 
 void
-store_inferior_registers (int regnum)
+sparc_store_inferior_registers (struct regcache *regcache, int regnum)
 {
 {
-  struct regcache *regcache = current_regcache;
   int pid;
 
   /* NOTE: cagney/2002-12-02: See comment in fetch_inferior_registers
   int pid;
 
   /* NOTE: cagney/2002-12-02: See comment in fetch_inferior_registers
@@ -264,14 +260,16 @@ sparc_xfer_wcookie (struct target_ops *ops, enum target_object object,
   gdb_assert (object == TARGET_OBJECT_WCOOKIE);
   gdb_assert (readbuf && writebuf == NULL);
 
   gdb_assert (object == TARGET_OBJECT_WCOOKIE);
   gdb_assert (readbuf && writebuf == NULL);
 
-  if (offset >= sizeof (unsigned long))
+  if (offset == sizeof (unsigned long))
+    return 0;                  /* Signal EOF.  */
+  if (offset > sizeof (unsigned long))
     return -1;
 
 #ifdef PT_WCOOKIE
   /* If PT_WCOOKIE is defined (by <sys/ptrace.h>), assume we're
      running on an OpenBSD release that uses StackGhost (3.1 or
     return -1;
 
 #ifdef PT_WCOOKIE
   /* If PT_WCOOKIE is defined (by <sys/ptrace.h>), assume we're
      running on an OpenBSD release that uses StackGhost (3.1 or
-     later).  As of release 3.4, OpenBSD doesn't use a randomized
-     cookie yet, but a future release probably will.  */
+     later).  Since release 3.6, OpenBSD uses a fully randomized
+     cookie.  */
   {
     int pid;
 
   {
     int pid;
 
@@ -332,8 +330,8 @@ sparc_target (void)
   struct target_ops *t;
 
   t = inf_ptrace_target ();
   struct target_ops *t;
 
   t = inf_ptrace_target ();
-  t->to_fetch_registers = fetch_inferior_registers;
-  t->to_store_registers = store_inferior_registers;
+  t->to_fetch_registers = sparc_fetch_inferior_registers;
+  t->to_store_registers = sparc_store_inferior_registers;
   inf_ptrace_xfer_partial = t->to_xfer_partial;
   t->to_xfer_partial = sparc_xfer_partial;
   return t;
   inf_ptrace_xfer_partial = t->to_xfer_partial;
   t->to_xfer_partial = sparc_xfer_partial;
   return t;
This page took 0.025063 seconds and 4 git commands to generate.