* bfd-in.h (bfd_int64_t, bfd_uint64_t): New types.
[deliverable/binutils-gdb.git] / bfd / osf-core.c
index bafc72857bfe9cb6061af4cc03dd2703ff867a45..8273504e59ac3409f5b8b770f213c6ba003acd8c 100644 (file)
@@ -1,5 +1,5 @@
 /* BFD back-end for OSF/1 core files.
 /* BFD back-end for OSF/1 core files.
-   Copyright 1993, 1994, 1995, 1998, 1999, 2001
+   Copyright 1993, 1994, 1995, 1998, 1999, 2001, 2002, 2003, 2004
    Free Software Foundation, Inc.
 
 This file is part of BFD, the Binary File Descriptor library.
    Free Software Foundation, Inc.
 
 This file is part of BFD, the Binary File Descriptor library.
@@ -30,21 +30,18 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 /* forward declarations */
 
 
 /* forward declarations */
 
-static asection *
-make_bfd_asection PARAMS ((bfd *, const char *, flagword, bfd_size_type,
-                          bfd_vma, file_ptr));
-static asymbol *
-osf_core_make_empty_symbol PARAMS ((bfd *));
-static const bfd_target *
-osf_core_core_file_p PARAMS ((bfd *));
-static char *
-osf_core_core_file_failing_command PARAMS ((bfd *));
-static int
-osf_core_core_file_failing_signal PARAMS ((bfd *));
-static boolean
-osf_core_core_file_matches_executable_p PARAMS ((bfd *, bfd *));
-static void
-swap_abort PARAMS ((void));
+static asection *make_bfd_asection
+  PARAMS ((bfd *, const char *, flagword, bfd_size_type, bfd_vma, file_ptr));
+static const bfd_target *osf_core_core_file_p
+  PARAMS ((bfd *));
+static char *osf_core_core_file_failing_command
+  PARAMS ((bfd *));
+static int osf_core_core_file_failing_signal
+  PARAMS ((bfd *));
+static bfd_boolean osf_core_core_file_matches_executable_p
+  PARAMS ((bfd *, bfd *));
+static void swap_abort
+  PARAMS ((void));
 
 /* These are stored in the bfd's tdata */
 
 
 /* These are stored in the bfd's tdata */
 
@@ -82,18 +79,6 @@ make_bfd_asection (abfd, name, flags, _raw_size, vma, filepos)
   return asect;
 }
 
   return asect;
 }
 
-static asymbol *
-osf_core_make_empty_symbol (abfd)
-     bfd *abfd;
-{
-  asymbol *new;
-
-  new = (asymbol *) bfd_zalloc (abfd, (bfd_size_type) sizeof (asymbol));
-  if (new)
-    new->the_bfd = abfd;
-  return new;
-}
-
 static const bfd_target *
 osf_core_core_file_p (abfd)
      bfd *abfd;
 static const bfd_target *
 osf_core_core_file_p (abfd)
      bfd *abfd;
@@ -158,12 +143,18 @@ osf_core_core_file_p (abfd)
                              (bfd_size_type) core_scnhdr.size,
                              (bfd_vma) core_scnhdr.vaddr,
                              (file_ptr) core_scnhdr.scnptr))
                              (bfd_size_type) core_scnhdr.size,
                              (bfd_vma) core_scnhdr.vaddr,
                              (file_ptr) core_scnhdr.scnptr))
-       return NULL;
+       goto fail;
     }
 
   /* OK, we believe you.  You're a core file (sure, sure).  */
 
   return abfd->xvec;
     }
 
   /* OK, we believe you.  You're a core file (sure, sure).  */
 
   return abfd->xvec;
+
+ fail:
+  bfd_release (abfd, core_hdr (abfd));
+  core_hdr (abfd) = NULL;
+  bfd_section_list_clear (abfd);
+  return NULL;
 }
 
 static char *
 }
 
 static char *
@@ -173,7 +164,6 @@ osf_core_core_file_failing_command (abfd)
   return core_command (abfd);
 }
 
   return core_command (abfd);
 }
 
-/* ARGSUSED */
 static int
 osf_core_core_file_failing_signal (abfd)
      bfd *abfd;
 static int
 osf_core_core_file_failing_signal (abfd)
      bfd *abfd;
@@ -181,43 +171,34 @@ osf_core_core_file_failing_signal (abfd)
   return core_signal (abfd);
 }
 
   return core_signal (abfd);
 }
 
-/* ARGSUSED */
-static boolean
+static bfd_boolean
 osf_core_core_file_matches_executable_p (core_bfd, exec_bfd)
      bfd *core_bfd ATTRIBUTE_UNUSED;
      bfd *exec_bfd ATTRIBUTE_UNUSED;
 {
 osf_core_core_file_matches_executable_p (core_bfd, exec_bfd)
      bfd *core_bfd ATTRIBUTE_UNUSED;
      bfd *exec_bfd ATTRIBUTE_UNUSED;
 {
-  return true;         /* FIXME, We have no way of telling at this point */
+  return TRUE;         /* FIXME, We have no way of telling at this point */
 }
 \f
 }
 \f
-#define osf_core_get_symtab_upper_bound _bfd_nosymbols_get_symtab_upper_bound
-#define osf_core_get_symtab _bfd_nosymbols_get_symtab
-#define osf_core_print_symbol _bfd_nosymbols_print_symbol
-#define osf_core_get_symbol_info _bfd_nosymbols_get_symbol_info
-#define osf_core_bfd_is_local_label_name _bfd_nosymbols_bfd_is_local_label_name
-#define osf_core_get_lineno _bfd_nosymbols_get_lineno
-#define osf_core_find_nearest_line _bfd_nosymbols_find_nearest_line
-#define osf_core_bfd_make_debug_symbol _bfd_nosymbols_bfd_make_debug_symbol
-#define osf_core_read_minisymbols _bfd_nosymbols_read_minisymbols
-#define osf_core_minisymbol_to_symbol _bfd_nosymbols_minisymbol_to_symbol
-
 /* If somebody calls any byte-swapping routines, shoot them.  */
 static void
 swap_abort()
 {
   abort(); /* This way doesn't require any declaration for ANSI to fuck up */
 }
 /* If somebody calls any byte-swapping routines, shoot them.  */
 static void
 swap_abort()
 {
   abort(); /* This way doesn't require any declaration for ANSI to fuck up */
 }
-#define        NO_GET  ((bfd_vma (*) PARAMS ((   const bfd_byte *))) swap_abort )
-#define        NO_PUT  ((void    (*) PARAMS ((bfd_vma, bfd_byte *))) swap_abort )
-#define        NO_SIGNED_GET \
-  ((bfd_signed_vma (*) PARAMS ((const bfd_byte *))) swap_abort )
+
+#define        NO_GET ((bfd_vma (*) (const void *)) swap_abort)
+#define        NO_PUT ((void (*) (bfd_vma, void *)) swap_abort)
+#define        NO_GETS ((bfd_signed_vma (*) (const void *)) swap_abort)
+#define        NO_GET64 ((bfd_uint64_t (*) (const void *)) swap_abort)
+#define        NO_PUT64 ((void (*) (bfd_uint64_t, void *)) swap_abort)
+#define        NO_GETS64 ((bfd_int64_t (*) (const void *)) swap_abort)
 
 const bfd_target osf_core_vec =
   {
     "osf-core",
     bfd_target_unknown_flavour,
 
 const bfd_target osf_core_vec =
   {
     "osf-core",
     bfd_target_unknown_flavour,
-    BFD_ENDIAN_BIG,            /* target byte order */
-    BFD_ENDIAN_BIG,            /* target headers byte order */
+    BFD_ENDIAN_LITTLE,         /* target byte order */
+    BFD_ENDIAN_LITTLE,         /* target headers byte order */
     (HAS_RELOC | EXEC_P |      /* object flags */
      HAS_LINENO | HAS_DEBUG |
      HAS_SYMS | HAS_LOCALS | WP_TEXT | D_PAGED),
     (HAS_RELOC | EXEC_P |      /* object flags */
      HAS_LINENO | HAS_DEBUG |
      HAS_SYMS | HAS_LOCALS | WP_TEXT | D_PAGED),
@@ -225,39 +206,39 @@ const bfd_target osf_core_vec =
     0,                                                    /* symbol prefix */
     ' ',                                                  /* ar_pad_char */
     16,                                                           /* ar_max_namelen */
     0,                                                    /* symbol prefix */
     ' ',                                                  /* ar_pad_char */
     16,                                                           /* ar_max_namelen */
-    NO_GET, NO_SIGNED_GET, NO_PUT,     /* 64 bit data */
-    NO_GET, NO_SIGNED_GET, NO_PUT,     /* 32 bit data */
-    NO_GET, NO_SIGNED_GET, NO_PUT,     /* 16 bit data */
-    NO_GET, NO_SIGNED_GET, NO_PUT,     /* 64 bit hdrs */
-    NO_GET, NO_SIGNED_GET, NO_PUT,     /* 32 bit hdrs */
-    NO_GET, NO_SIGNED_GET, NO_PUT,     /* 16 bit hdrs */
+    NO_GET64, NO_GETS64, NO_PUT64,     /* 64 bit data */
+    NO_GET, NO_GETS, NO_PUT,           /* 32 bit data */
+    NO_GET, NO_GETS, NO_PUT,           /* 16 bit data */
+    NO_GET64, NO_GETS64, NO_PUT64,     /* 64 bit hdrs */
+    NO_GET, NO_GETS, NO_PUT,           /* 32 bit hdrs */
+    NO_GET, NO_GETS, NO_PUT,           /* 16 bit hdrs */
 
     {                          /* bfd_check_format */
 
     {                          /* bfd_check_format */
-     _bfd_dummy_target,                /* unknown format */
-     _bfd_dummy_target,                /* object file */
-     _bfd_dummy_target,                /* archive */
-     osf_core_core_file_p      /* a core file */
+      _bfd_dummy_target,               /* unknown format */
+      _bfd_dummy_target,               /* object file */
+      _bfd_dummy_target,               /* archive */
+      osf_core_core_file_p             /* a core file */
     },
     {                          /* bfd_set_format */
     },
     {                          /* bfd_set_format */
-     bfd_false, bfd_false,
-     bfd_false, bfd_false
+      bfd_false, bfd_false,
+      bfd_false, bfd_false
     },
     {                          /* bfd_write_contents */
     },
     {                          /* bfd_write_contents */
-     bfd_false, bfd_false,
-     bfd_false, bfd_false
+      bfd_false, bfd_false,
+      bfd_false, bfd_false
     },
 
     },
 
-       BFD_JUMP_TABLE_GENERIC (_bfd_generic),
-       BFD_JUMP_TABLE_COPY (_bfd_generic),
-       BFD_JUMP_TABLE_CORE (osf_core),
-       BFD_JUMP_TABLE_ARCHIVE (_bfd_noarchive),
-       BFD_JUMP_TABLE_SYMBOLS (osf_core),
-       BFD_JUMP_TABLE_RELOCS (_bfd_norelocs),
-       BFD_JUMP_TABLE_WRITE (_bfd_generic),
-       BFD_JUMP_TABLE_LINK (_bfd_nolink),
-       BFD_JUMP_TABLE_DYNAMIC (_bfd_nodynamic),
+    BFD_JUMP_TABLE_GENERIC (_bfd_generic),
+    BFD_JUMP_TABLE_COPY (_bfd_generic),
+    BFD_JUMP_TABLE_CORE (osf_core),
+    BFD_JUMP_TABLE_ARCHIVE (_bfd_noarchive),
+    BFD_JUMP_TABLE_SYMBOLS (_bfd_nosymbols),
+    BFD_JUMP_TABLE_RELOCS (_bfd_norelocs),
+    BFD_JUMP_TABLE_WRITE (_bfd_generic),
+    BFD_JUMP_TABLE_LINK (_bfd_nolink),
+    BFD_JUMP_TABLE_DYNAMIC (_bfd_nodynamic),
 
     NULL,
 
     (PTR) 0                    /* backend_data */
 
     NULL,
 
     (PTR) 0                    /* backend_data */
-};
+  };
This page took 0.055487 seconds and 4 git commands to generate.