X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=bfd%2Firix-core.c;h=17b6e1ca948beb65111449ef7665409f7b10325e;hb=57da97f58cd03bfd891f5f904876c65cb1f37e4b;hp=1dd35fe75071b8c420037b4ce5b2824129822fae;hpb=b34976b65aea8f33690229600bbf4527ec3118e1;p=deliverable%2Fbinutils-gdb.git diff --git a/bfd/irix-core.c b/bfd/irix-core.c index 1dd35fe750..17b6e1ca94 100644 --- a/bfd/irix-core.c +++ b/bfd/irix-core.c @@ -1,5 +1,5 @@ /* BFD back-end for Irix core files. - Copyright 1993, 1994, 1996, 1999, 2001, 2002 + Copyright 1993, 1994, 1996, 1999, 2001, 2002, 2004, 2006 Free Software Foundation, Inc. Written by Stu Grossman, Cygnus Support. Converted to back-end form by Ian Lance Taylor, Cygnus Support @@ -18,7 +18,7 @@ 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ + Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ /* This file can only be compiled on systems which use Irix style core files (namely, Irix 4 and Irix 5, so far). */ @@ -41,33 +41,17 @@ struct sgi_core_struct #define core_signal(bfd) (core_hdr(bfd)->sig) #define core_command(bfd) (core_hdr(bfd)->cmd) +#define irix_core_core_file_matches_executable_p generic_core_file_matches_executable_p + static asection *make_bfd_asection - PARAMS ((bfd *, const char *, flagword, bfd_size_type, bfd_vma, file_ptr)); -static const bfd_target *irix_core_core_file_p - PARAMS ((bfd *)); -static char *irix_core_core_file_failing_command - PARAMS ((bfd *)); -static int irix_core_core_file_failing_signal - PARAMS ((bfd *)); -static bfd_boolean irix_core_core_file_matches_executable_p - PARAMS ((bfd *, bfd *)); -static void swap_abort - PARAMS ((void)); -#ifdef CORE_MAGIC64 -static int do_sections64 - PARAMS ((bfd *, struct coreout *)); -#endif -static int do_sections - PARAMS ((bfd *, struct coreout *)); + (bfd *, const char *, flagword, bfd_size_type, bfd_vma, file_ptr); /* Helper function for irix_core_core_file_p: 32-bit and 64-bit versions. */ #ifdef CORE_MAGIC64 static int -do_sections64 (abfd, coreout) - bfd * abfd; - struct coreout * coreout; +do_sections64 (bfd *abfd, struct coreout *coreout) { struct vmap64 vmap; char *secname; @@ -115,9 +99,7 @@ do_sections64 (abfd, coreout) /* 32-bit version. */ static int -do_sections (abfd, coreout) - bfd * abfd; - struct coreout *coreout; +do_sections (bfd *abfd, struct coreout *coreout) { struct vmap vmap; char *secname; @@ -152,7 +134,7 @@ do_sections (abfd, coreout) continue; if (!make_bfd_asection (abfd, secname, - SEC_ALLOC | SEC_LOAD+SEC_HAS_CONTENTS, + SEC_ALLOC | SEC_LOAD | SEC_HAS_CONTENTS, vmap.v_len, vmap.v_vaddr, vmap.v_offset)) /* Fail. */ return 0; @@ -161,22 +143,20 @@ do_sections (abfd, coreout) } static asection * -make_bfd_asection (abfd, name, flags, _raw_size, vma, filepos) - bfd *abfd; - const char *name; - flagword flags; - bfd_size_type _raw_size; - bfd_vma vma; - file_ptr filepos; +make_bfd_asection (bfd *abfd, + const char *name, + flagword flags, + bfd_size_type size, + bfd_vma vma, + file_ptr filepos) { asection *asect; - asect = bfd_make_section_anyway (abfd, name); + asect = bfd_make_section_anyway_with_flags (abfd, name, flags); if (!asect) return NULL; - asect->flags = flags; - asect->_raw_size = _raw_size; + asect->size = size; asect->vma = vma; asect->filepos = filepos; asect->alignment_power = 4; @@ -185,8 +165,7 @@ make_bfd_asection (abfd, name, flags, _raw_size, vma, filepos) } static const bfd_target * -irix_core_core_file_p (abfd) - bfd *abfd; +irix_core_core_file_p (bfd *abfd) { int val; struct coreout coreout; @@ -273,36 +252,30 @@ irix_core_core_file_p (abfd) } static char * -irix_core_core_file_failing_command (abfd) - bfd *abfd; +irix_core_core_file_failing_command (bfd *abfd) { return core_command (abfd); } static int -irix_core_core_file_failing_signal (abfd) - bfd *abfd; +irix_core_core_file_failing_signal (bfd *abfd) { return core_signal (abfd); } -static bfd_boolean -irix_core_core_file_matches_executable_p (core_bfd, exec_bfd) - bfd *core_bfd, *exec_bfd; -{ - return TRUE; /* XXX - FIXME */ -} - /* If somebody calls any byte-swapping routines, shoot them. */ static void -swap_abort() +swap_abort(void) { 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 irix_core_vec = { @@ -317,26 +290,26 @@ const bfd_target irix_core_vec = 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_dummy_target, /* unknown format */ - _bfd_dummy_target, /* object file */ - _bfd_dummy_target, /* archive */ - irix_core_core_file_p /* a core file */ + _bfd_dummy_target, /* unknown format */ + _bfd_dummy_target, /* object file */ + _bfd_dummy_target, /* archive */ + irix_core_core_file_p /* a core file */ }, { /* bfd_set_format */ - bfd_false, bfd_false, - bfd_false, bfd_false + bfd_false, bfd_false, + bfd_false, bfd_false }, { /* 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), @@ -352,6 +325,6 @@ const bfd_target irix_core_vec = NULL, (PTR) 0 /* backend_data */ -}; + }; #endif /* IRIX_CORE */