get rid of unused m4 files
[deliverable/binutils-gdb.git] / gdb / irix5-nat.c
index f4137383b9195d75671e498fa1e361753d93c187..c6c8c5233edb7978d486f2b04b3b4b1b3ea2dc89 100644 (file)
@@ -1,5 +1,5 @@
 /* Native support for the SGI Iris running IRIX version 5, for GDB.
-   Copyright 1988, 1989, 1990, 1991, 1992, 1993, 1994
+   Copyright 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995
    Free Software Foundation, Inc.
    Contributed by Alessandro Forin(af@cs.cmu.edu) at CMU
    and by Per Bothner(bothner@cs.wisc.edu) at U.Wisconsin.
@@ -27,6 +27,7 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
 #include "gdbcore.h"
 #include "target.h"
 
+#include <string.h>
 #include <sys/time.h>
 #include <sys/procfs.h>
 #include <setjmp.h>            /* For JB_XXX.  */
@@ -48,6 +49,7 @@ supply_gregset (gregsetp)
 {
   register int regi;
   register greg_t *regp = &(*gregsetp)[0];
+  static char zerobuf[MAX_REGISTER_RAW_SIZE] = {0};
 
   for(regi = 0; regi <= CTX_RA; regi++)
     supply_register (regi, (char *)(regp + regi));
@@ -56,6 +58,9 @@ supply_gregset (gregsetp)
   supply_register (HI_REGNUM, (char *)(regp + CTX_MDHI));
   supply_register (LO_REGNUM, (char *)(regp + CTX_MDLO));
   supply_register (CAUSE_REGNUM, (char *)(regp + CTX_CAUSE));
+
+  /* Fill inaccessible registers with zero.  */
+  supply_register (BADVADDR_REGNUM, zerobuf);
 }
 
 void
@@ -74,7 +79,7 @@ fill_gregset (gregsetp, regno)
     *(regp + CTX_EPC) = *(greg_t *) &registers[REGISTER_BYTE (PC_REGNUM)];
 
   if ((regno == -1) || (regno == CAUSE_REGNUM))
-    *(regp + CTX_CAUSE) = *(greg_t *) &registers[REGISTER_BYTE (PS_REGNUM)];
+    *(regp + CTX_CAUSE) = *(greg_t *) &registers[REGISTER_BYTE (CAUSE_REGNUM)];
 
   if ((regno == -1) || (regno == HI_REGNUM))
     *(regp + CTX_MDHI) = *(greg_t *) &registers[REGISTER_BYTE (HI_REGNUM)];
@@ -96,6 +101,7 @@ supply_fpregset (fpregsetp)
      fpregset_t *fpregsetp;
 {
   register int regi;
+  static char zerobuf[MAX_REGISTER_RAW_SIZE] = {0};
 
   for (regi = 0; regi < 32; regi++)
     supply_register (FP0_REGNUM + regi,
@@ -104,6 +110,7 @@ supply_fpregset (fpregsetp)
   supply_register (FCRCS_REGNUM, (char *)&fpregsetp->fp_csr);
 
   /* FIXME: how can we supply FCRIR_REGNUM?  SGI doesn't tell us. */
+  supply_register (FCRIR_REGNUM, zerobuf);
 }
 
 void
@@ -173,7 +180,6 @@ fetch_core_registers (core_reg_sect, core_reg_size, which, reg_addr)
 
 #include <sys/types.h>
 #include <signal.h>
-#include <string.h>
 #include <sys/param.h>
 #include <fcntl.h>
 
@@ -405,7 +411,7 @@ locate_base ()
   struct minimal_symbol *msymbol;
   CORE_ADDR address = 0;
 
-  msymbol = lookup_minimal_symbol (DEBUG_BASE, symfile_objfile);
+  msymbol = lookup_minimal_symbol (DEBUG_BASE, NULL, symfile_objfile);
   if ((msymbol != NULL) && (SYMBOL_VALUE_ADDRESS (msymbol) != 0))
     {
       address = SYMBOL_VALUE_ADDRESS (msymbol);
@@ -792,7 +798,9 @@ clear_solib()
       if (so_list_head -> abfd)
        {
          bfd_filename = bfd_get_filename (so_list_head -> abfd);
-         bfd_close (so_list_head -> abfd);
+         if (!bfd_close (so_list_head -> abfd))
+           warning ("cannot close \"%s\": %s",
+                    bfd_filename, bfd_errmsg (bfd_get_error ()));
        }
       else
        /* This happens for the executable on SVR4.  */
This page took 0.026382 seconds and 4 git commands to generate.