diff options
author | Per Bothner <per@bothner.com> | 1991-12-18 23:01:48 +0000 |
---|---|---|
committer | Per Bothner <per@bothner.com> | 1991-12-18 23:01:48 +0000 |
commit | 608de555e4cede078aadeb4aa91a98938b0e9077 (patch) | |
tree | 09cfd341eabd7f60cdfdc63a9ae8e92c1de1d391 /bfd/aout-encap.c | |
parent | 61ed7fc37cdcafd445a0024b7107e22363685f64 (diff) | |
download | gdb-608de555e4cede078aadeb4aa91a98938b0e9077.zip gdb-608de555e4cede078aadeb4aa91a98938b0e9077.tar.gz gdb-608de555e4cede078aadeb4aa91a98938b0e9077.tar.bz2 |
Use aout-target.h more extensively.
Replace Berkeley functions (e.g. bcopy) with ANSI ones (e.g. memcpy).
Other improvements (see ChangeLog).
Diffstat (limited to 'bfd/aout-encap.c')
-rw-r--r-- | bfd/aout-encap.c | 115 |
1 files changed, 10 insertions, 105 deletions
diff --git a/bfd/aout-encap.c b/bfd/aout-encap.c index 6565df1..d6fe0fd 100644 --- a/bfd/aout-encap.c +++ b/bfd/aout-encap.c @@ -30,18 +30,12 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include "bfd.h" #include <sysdep.h> #include "libbfd.h" -#include "aout64.h" - -/**From: bothner@cs.wisc.edu***********************************************/ -#undef N_TXTOFF -#define N_TXTOFF(x) ( (N_MAGIC((x)) == ZMAGIC) ? PAGE_SIZE : EXEC_BYTES_SIZE) -/**************************************************************************/ - +#include <aout/aout64.h> #include "aout/stab_gnu.h" #include "aout/ar.h" #include "libaout.h" /* BFD a.out internal data structures */ -bfd_target *encap_callback (); +bfd_target *encap_real_callback (); bfd_target * DEFUN(encap_object_p,(abfd), @@ -78,17 +72,17 @@ DEFUN(encap_object_p,(abfd), } NAME(aout,swap_exec_header_in)(abfd, &exec_bytes, &exec); - return aout_32_some_aout_object_p (abfd, &exec, encap_callback); + return aout_32_some_aout_object_p (abfd, &exec, encap_realcallback); } /* Finish up the reading of a encapsulated-coff a.out file header */ bfd_target * -DEFUN(encap_callback,(abfd), +DEFUN(encap_real_callback,(abfd), bfd *abfd) { struct internal_exec *execp = exec_hdr (abfd); - WORK_OUT_FILE_POSITIONS(abfd, execp) ; + MY(callback)(abfd, execp); /* If we have a coff header, it can give us better values for text_start and exec_data_start. This is particularly useful @@ -232,97 +226,8 @@ int need_coff_header; WRITE_HEADERS(abfd, execp); return true; } - -/* Transfer vectors for Encapsulated-(aout-in)-coff */ - -/* We use BFD generic archive files. */ -#define newsos_openr_next_archived_file bfd_generic_openr_next_archived_file -#define newsos_generic_stat_arch_elt bfd_generic_stat_arch_elt -#define newsos_slurp_armap bfd_slurp_bsd_armap -#define newsos_slurp_extended_name_table bfd_true -#define newsos_write_armap bsd_write_armap -#define newsos_truncate_arname bfd_bsd_truncate_arname - -/* We don't support core files yet. FIXME. */ -#define newsos_core_file_failing_command _bfd_dummy_core_file_failing_command -#define newsos_core_file_failing_signal _bfd_dummy_core_file_failing_signal -#define newsos_core_file_matches_executable_p \ - _bfd_dummy_core_file_matches_executable_p -#define newsos_core_file_p _bfd_dummy_target - -#define newsos_bfd_debug_info_start bfd_void -#define newsos_bfd_debug_info_end bfd_void -#define newsos_bfd_debug_info_accumulate (PROTO(void,(*),(bfd*, struct sec *))) bfd_void - -#define newsos_mkobject aout_32_mkobject -#define newsos_close_and_cleanup aout_32_close_and_cleanup -#define newsos_set_section_contents aout_32_set_section_contents -#define newsos_get_section_contents aout_32_get_section_contents -#define newsos_new_section_hook aout_32_new_section_hook -#define newsos_get_symtab_upper_bound aout_32_get_symtab_upper_bound -#define newsos_get_symtab aout_32_get_symtab -#define newsos_get_reloc_upper_bound aout_32_get_reloc_upper_bound -#define newsos_canonicalize_reloc aout_32_canonicalize_reloc -#define newsos_make_empty_symbol aout_32_make_empty_symbol -#define newsos_print_symbol aout_32_print_symbol -#define newsos_get_lineno aout_32_get_lineno -#define newsos_set_arch_mach aout_32_set_arch_mach -#define newsos_find_nearest_line aout_32_find_nearest_line -#define newsos_sizeof_headers aout_32_sizeof_headers - - -/* We define our own versions of these routines. */ - - -bfd_target encap_big_vec = /* "Encapsulated coff": a.out with COFF header prefix */ -{ - "a.out-encap", /* name */ - bfd_target_aout_flavour, - true, /* target byte order */ - true, /* target headers byte order */ - (HAS_RELOC | EXEC_P | /* object flags */ - HAS_LINENO | HAS_DEBUG | - HAS_SYMS | HAS_LOCALS | DYNAMIC | WP_TEXT | D_PAGED), - (SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_RELOC), /* section flags */ - ' ', /* ar_pad_char */ - 16, /* ar_max_namelen */ - 1, /* minimum alignment */ - _do_getb64, _do_putb64, _do_getb32, _do_putb32, _do_getb16, _do_putb16, /* data */ - _do_getb64, _do_putb64, _do_getb32, _do_putb32, _do_getb16, _do_putb16, /* hdrs */ - - {_bfd_dummy_target, newsos3_object_p, /* bfd_check_format */ - bfd_generic_archive_p, newsos_core_file_p}, - {bfd_false, newsos_mkobject, /* bfd_set_format */ - _bfd_generic_mkarchive, bfd_false}, - {bfd_false, newsos3_write_object_contents, /* bfd_write_contents */ - _bfd_write_archive_contents, bfd_false}, - - JUMP_TABLE(newsos) -}; - -/* Little-endian "encapsulated coff": a.out with COFF header prefix */ -bfd_target encap_little_vec = -{ - "a.out-encap-little", /* name */ - bfd_target_aout_flavour, - false, /* target byte order */ - false, /* target headers byte order */ - (HAS_RELOC | EXEC_P | /* object flags */ - HAS_LINENO | HAS_DEBUG | - HAS_SYMS | HAS_LOCALS | DYNAMIC | WP_TEXT | D_PAGED), - (SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_RELOC), /* section flags */ - ' ', /* ar_pad_char */ - 16, /* ar_max_namelen */ - 1, /* minimum alignment */ - _do_getl64, _do_putl64, _do_getl32, _do_putl32, _do_getl16, _do_putl16, /* data */ - _do_getl64, _do_putl64, _do_getl32, _do_putl32, _do_getl16, _do_putb16, /* hdrs */ - - {_bfd_dummy_target, newsos3_object_p, /* bfd_check_format */ - bfd_generic_archive_p, newsos_core_file_p}, - {bfd_false, newsos_mkobject, /* bfd_set_format */ - _bfd_generic_mkarchive, bfd_false}, - {bfd_false, newsos3_write_object_contents, /* bfd_write_contents */ - _bfd_write_archive_contents, bfd_false}, - - JUMP_TABLE(newsos) -}; + +#define MY_write_object_content encap_write_object_contents +#define MY_object_p encap_object_p + +#include "aout-target.h" |