* objdump.c (disassemble_bytes): If the disassembler returns an
[deliverable/binutils-gdb.git] / gdb / ultra3-nat.c
index 76ea63b22272a46d5c610a6f491028b233f64f14..2b84cdd89429b83dd940e253054cf8335f446845 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
@@ -146,7 +148,7 @@ store_inferior_registers (regno)
              (PTRACE_ARG3_TYPE) regaddr, read_register(regno));
       if (errno != 0)
        {
-         sprintf (buf, "writing register %s (#%d)", reg_names[regno],regno);
+         sprintf (buf, "writing register %s (#%d)", REGISTER_NAME (regno), regno);
          perror_with_name (buf);
        }
     }
@@ -227,7 +229,7 @@ fetch_register (regno)
     val = ptrace (PT_READ_U, inferior_pid,
                  (PTRACE_ARG3_TYPE) register_addr(regno,0), 0);
     if (errno != 0) {
-      sprintf(buf,"reading register %s (#%d)",reg_names[regno],regno);
+      sprintf(buf,"reading register %s (#%d)",REGISTER_NAME (regno), regno);
       perror_with_name (buf);
     } else {
       supply_register (regno, &val);
@@ -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,11 +256,11 @@ 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);
+        char * buffer = (char *) alloca (strlen (REGISTER_NAME (regno)) + 35);
         strcpy (buffer, "Reading core register ");
-        strcat (buffer, reg_names[regno]);
+        strcat (buffer, REGISTER_NAME (regno));
         perror_with_name (buffer);
       }
       supply_register (regno, buf);
@@ -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", 
-                               reg_names[regno],regno);
+            fprintf_filtered(gdb_stderr,"register_addr():Bad register %s (%d)\n", 
+                             REGISTER_NAME (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.024899 seconds and 4 git commands to generate.