* Makefile.am (libbfd_la_LIBADD): Add @WIN32LIBADD@.
[deliverable/binutils-gdb.git] / gdb / ultra3-nat.c
index 76ea63b22272a46d5c610a6f491028b233f64f14..8f7a7f7185499090f554b0dd42c41f3312f86035 100644 (file)
@@ -16,7 +16,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.  */
 
 #define DEBUG
 #include "defs.h"
@@ -34,7 +34,9 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
 #include "gdbcore.h"
 
 #include <sys/file.h>
-#include <sys/stat.h>
+#include "gdb_stat.h"
+
+static void fetch_core_registers PARAMS ((char *, unsigned, int, CORE_ADDR));
 
 /* Assumes support for AMD's Binary Compatibility Standard
    for ptrace().  If you define ULTRA3, the ultra3 extensions to
@@ -241,8 +243,12 @@ fetch_register (regno)
  * struct ptrace_user is the first thing in the core file
  */
 
-void
-fetch_core_registers ()
+static void
+fetch_core_registers (core_reg_sect, core_reg_size, which, reg_addr)
+     char *core_reg_sect;      /* Unused in this version */
+     unsigned core_reg_size;   /* Unused in this version */
+     int which;                        /* Unused in this version */
+     CORE_ADDR reg_addr;       /* Unused in this version */
 {
   register int regno;
   int  val;
@@ -250,7 +256,7 @@ fetch_core_registers ()
 
   for (regno = 0 ; regno < NUM_REGS; regno++) {
     if (!CANNOT_FETCH_REGISTER(regno)) {
-      val = bfd_seek (core_bfd, (file_ptr) register_addr (regno, 0), L_SET);
+      val = bfd_seek (core_bfd, (file_ptr) register_addr (regno, 0), SEEK_SET);
       if (val < 0 || (val = bfd_read (buf, sizeof buf, 1, core_bfd)) < 0) {
         char * buffer = (char *) alloca (strlen (reg_names[regno]) + 35);
         strcpy (buffer, "Reading core register ");
@@ -275,10 +281,10 @@ fetch_core_registers ()
  * available to the user is specified in 'regno', then an address that
  * will cause ptrace() to fail is returned.
  */
-unsigned int 
+CORE_ADDR
 register_addr (regno,blockend)
-     unsigned int      regno;
-     char              *blockend;
+     int       regno;
+     CORE_ADDR blockend;
 {
   if ((regno >= LR0_REGNUM) && (regno < LR0_REGNUM + 128)) {
     return(offsetof(struct ptrace_user,pt_lr[regno-LR0_REGNUM]));
@@ -298,11 +304,26 @@ register_addr (regno,blockend)
        case BP_REGNUM:  return(offsetof(struct ptrace_user,pt_bp));
        case FC_REGNUM:  return(offsetof(struct ptrace_user,pt_fc));
        default:
-            fprintf_filtered(stderr,"register_addr():Bad register %s (%d)\n", 
+            fprintf_filtered(gdb_stderr,"register_addr():Bad register %s (%d)\n", 
                                reg_names[regno],regno);
             return(0xffffffff);        /* Should make ptrace() fail */
     }
   }
 }
 
+\f
+/* Register that we are able to handle ultra3 core file formats.
+   FIXME: is this really bfd_target_unknown_flavour? */
+
+static struct core_fns ultra3_core_fns =
+{
+  bfd_target_unknown_flavour,
+  fetch_core_registers,
+  NULL
+};
 
+void
+_initialize_core_ultra3 ()
+{
+  add_core_fns (&ultra3_core_fns);
+}
This page took 0.028159 seconds and 4 git commands to generate.