2002-04-04 Daniel Jacobowitz <drow@mvista.com>
[deliverable/binutils-gdb.git] / bfd / nlm-target.h
index 4cbc8a72a91ac8214555079c07090236a9e39a58..79877fe7cd053e4023e3fe21fc9be22c1577da52 100644 (file)
@@ -1,5 +1,6 @@
 /* Target definitions for 32/64-bit NLM (NetWare Loadable Module)
-   Copyright (C) 1993 Free Software Foundation, Inc.
+   Copyright 1993, 1994, 1998, 1999, 2000, 2001, 2002
+   Free Software Foundation, Inc.
 
 This file is part of BFD, the Binary File Descriptor library.
 
@@ -15,83 +16,39 @@ 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.  */
-
-#define nlm_core_file_p \
-  ((bfd_target *(*) PARAMS ((bfd *))) bfd_nullvoidptr)
-
-/* The JUMP_TABLE macro is used in the target structure to get names
-   for all the functions.  We use JUMP_TABLE(nlm) to get a prefix of
-   nlm for all the functions.  Here we redefine those names.  Many of
-   the functions are the same for any NLM target.  The others are
-   defined in terms of the nlmNAME macro.  */
-
-#define        nlm_core_file_failing_command \
-                               _bfd_dummy_core_file_failing_command
-#define        nlm_core_file_failing_signal \
-                               _bfd_dummy_core_file_failing_signal
-#define        nlm_core_file_matches_executable_p \
-                               _bfd_dummy_core_file_matches_executable_p
-#define nlm_slurp_armap                bfd_slurp_coff_armap
-#define nlm_slurp_extended_name_table \
-                               _bfd_slurp_extended_name_table
-#define nlm_truncate_arname    bfd_dont_truncate_arname
-#define        nlm_write_armap         coff_write_armap
-#define        nlm_close_and_cleanup   bfd_generic_close_and_cleanup
-#define nlm_set_section_contents \
-                               nlmNAME(set_section_contents)
-#define nlm_get_section_contents \
-                               bfd_generic_get_section_contents
-#define nlm_new_section_hook   _bfd_dummy_new_section_hook
-#define nlm_get_symtab_upper_bound \
-                               nlmNAME(get_symtab_upper_bound)
-#define nlm_get_symtab         nlmNAME(get_symtab)
-#define nlm_get_reloc_upper_bound \
-                               nlmNAME(get_reloc_upper_bound)
-#define nlm_canonicalize_reloc nlmNAME(canonicalize_reloc)
-#define nlm_make_empty_symbol  nlmNAME(make_empty_symbol)
-#define nlm_print_symbol       nlmNAME(print_symbol)
-#define nlm_get_symbol_info    nlmNAME(get_symbol_info)
-#define nlm_get_lineno         ((alent * (*) PARAMS ((bfd *, asymbol *))) \
-                                bfd_false)
-/* We use the generic function nlm_set_arch_mach.  */
-#define nlm_openr_next_archived_file \
-                               bfd_generic_openr_next_archived_file
-#define nlm_find_nearest_line \
-                               ((boolean (*) PARAMS ((bfd *, asection *, \
-                                                      asymbol **, bfd_vma, \
-                                                      CONST char **, \
-                                                      CONST char **, \
-                                                      unsigned int *))) \
-                                bfd_false)
-#define nlm_generic_stat_arch_elt \
-                               bfd_generic_stat_arch_elt
-#define nlm_sizeof_headers     ((int (*) PARAMS ((bfd *, boolean))) bfd_0u)
-#define nlm_bfd_debug_info_start \
-                               bfd_void
-#define nlm_bfd_debug_info_end bfd_void
-#define nlm_bfd_debug_info_accumulate \
-                               ((void (*) PARAMS ((bfd*, struct sec *))) \
-                                bfd_void)
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
+
+#define nlm_core_file_p _bfd_dummy_target
+
+#define nlm_get_symtab_upper_bound nlmNAME(get_symtab_upper_bound)
+#define nlm_get_symtab nlmNAME(get_symtab)
+#define nlm_make_empty_symbol nlmNAME(make_empty_symbol)
+#define nlm_print_symbol nlmNAME(print_symbol)
+#define nlm_get_symbol_info nlmNAME(get_symbol_info)
+#define nlm_bfd_is_local_label_name bfd_generic_is_local_label_name
+#define nlm_get_lineno _bfd_nosymbols_get_lineno
+#define nlm_find_nearest_line _bfd_nosymbols_find_nearest_line
+#define nlm_bfd_make_debug_symbol _bfd_nosymbols_bfd_make_debug_symbol
+#define nlm_read_minisymbols _bfd_generic_read_minisymbols
+#define nlm_minisymbol_to_symbol _bfd_generic_minisymbol_to_symbol
+
+#define nlm_get_reloc_upper_bound nlmNAME(get_reloc_upper_bound)
+#define nlm_canonicalize_reloc nlmNAME(canonicalize_reloc)
+#define nlm_bfd_reloc_type_lookup bfd_default_reloc_type_lookup
+
+#define nlm_set_section_contents nlmNAME(set_section_contents)
+
+#define nlm_sizeof_headers _bfd_nolink_sizeof_headers
 #define nlm_bfd_get_relocated_section_contents \
-                               bfd_generic_get_relocated_section_contents
-#define nlm_bfd_relax_section  bfd_generic_relax_section
-#define nlm_bfd_reloc_type_lookup \
-                               bfd_default_reloc_type_lookup
-#define nlm_bfd_make_debug_symbol \
-                               ((asymbol *(*) PARAMS ((bfd *, void *, \
-                                                       unsigned long))) \
-                                bfd_nullvoidptr)
+  bfd_generic_get_relocated_section_contents
+#define nlm_bfd_relax_section bfd_generic_relax_section
+#define nlm_bfd_gc_sections bfd_generic_gc_sections
+#define nlm_bfd_merge_sections bfd_generic_merge_sections
 #define nlm_bfd_link_hash_table_create _bfd_generic_link_hash_table_create
+#define nlm_bfd_link_hash_table_free _bfd_generic_link_hash_table_free
 #define nlm_bfd_link_add_symbols _bfd_generic_link_add_symbols
 #define nlm_bfd_final_link _bfd_generic_final_link
-
-#define nlm_bfd_copy_private_section_data \
-  ((boolean (*) PARAMS ((bfd *, asection *, bfd *, asection *))) bfd_true)
-#define nlm_bfd_copy_private_bfd_data \
-  ((boolean (*) PARAMS ((bfd *, bfd *))) bfd_true)
-#define nlm_bfd_is_local_label bfd_generic_is_local_label
-#define nlm_bfd_free_cached_info bfd_true
+#define nlm_bfd_link_split_section _bfd_generic_link_split_section
 
 /* This structure contains everything that BFD knows about a target.
    It includes things like its byte order, name, what routines to call
@@ -101,9 +58,13 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
    There are two such structures here:  one for big-endian machines and
    one for little-endian machines.   */
 
+/* Forward declaration for use when initialising alternative_target field.  */
+#ifdef TARGET_LITTLE_SYM
+extern const bfd_target TARGET_LITTLE_SYM;
+#endif
 
 #ifdef TARGET_BIG_SYM
-bfd_target TARGET_BIG_SYM =
+const bfd_target TARGET_BIG_SYM =
 {
   /* name: identify kind of target */
   TARGET_BIG_NAME,
@@ -111,19 +72,19 @@ bfd_target TARGET_BIG_SYM =
   /* flavour: general indication about file */
   bfd_target_nlm_flavour,
 
-  /* byteorder_big_p: data is big endian */
-  true,
+  /* byteorder: data is big endian */
+  BFD_ENDIAN_BIG,
 
-  /* header_byteorder_big_p: header is also big endian */
-  true,
+  /* header_byteorder: header is also big endian */
+  BFD_ENDIAN_BIG,
 
   /* object_flags: mask of all file flags */
   (HAS_RELOC | EXEC_P | HAS_LINENO | HAS_DEBUG | HAS_SYMS | HAS_LOCALS
    | WP_TEXT),
-  
+
   /* section_flags: mask of all section flags */
   (SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_RELOC | SEC_READONLY |
-   SEC_CODE | SEC_DATA), 
+   SEC_CODE | SEC_DATA),
 
    /* leading_symbol_char: is the first char of a user symbol
       predictable, and if so what is it */
@@ -140,10 +101,6 @@ bfd_target TARGET_BIG_SYM =
      a WAG (wild a** guess) */
   15,
 
-  /* align_power_min: minimum alignment restriction for any section
-     FIXME:  this value may be target machine dependent */
-  3,
-
   /* Routines to byte-swap various sized integers from the data sections */
   bfd_getb64, bfd_getb_signed_64, bfd_putb64,
     bfd_getb32, bfd_getb_signed_32, bfd_putb32,
@@ -177,7 +134,22 @@ bfd_target TARGET_BIG_SYM =
 
   /* Initialize a jump table with the standard macro.  All names start with
      "nlm" */
-  JUMP_TABLE(nlm),
+  BFD_JUMP_TABLE_GENERIC (_bfd_generic),
+  BFD_JUMP_TABLE_COPY (_bfd_generic),
+  BFD_JUMP_TABLE_CORE (_bfd_nocore),
+  BFD_JUMP_TABLE_ARCHIVE (_bfd_noarchive),
+  BFD_JUMP_TABLE_SYMBOLS (nlm),
+  BFD_JUMP_TABLE_RELOCS (nlm),
+  BFD_JUMP_TABLE_WRITE (nlm),
+  BFD_JUMP_TABLE_LINK (nlm),
+  BFD_JUMP_TABLE_DYNAMIC (_bfd_nodynamic),
+
+  /* Alternative endian target.  */
+#ifdef TARGET_LITTLE_SYM
+  & TARGET_LITTLE_SYM,
+#else
+  NULL,
+#endif
 
   /* backend_data: */
   (PTR) TARGET_BACKEND_DATA
@@ -185,7 +157,7 @@ bfd_target TARGET_BIG_SYM =
 #endif
 
 #ifdef TARGET_LITTLE_SYM
-bfd_target TARGET_LITTLE_SYM =
+const bfd_target TARGET_LITTLE_SYM =
 {
   /* name: identify kind of target */
   TARGET_LITTLE_NAME,
@@ -193,19 +165,19 @@ bfd_target TARGET_LITTLE_SYM =
   /* flavour: general indication about file */
   bfd_target_nlm_flavour,
 
-  /* byteorder_big_p: data is big endian */
-  false,               /* Nope -- this one's little endian */
+  /* byteorder: data is little endian */
+  BFD_ENDIAN_LITTLE,
 
-  /* header_byteorder_big_p: header is also big endian */
-  false,               /* Nope -- this one's little endian */
+  /* header_byteorder: header is also little endian */
+  BFD_ENDIAN_LITTLE,
 
   /* object_flags: mask of all file flags */
   (HAS_RELOC | EXEC_P | HAS_LINENO | HAS_DEBUG | HAS_SYMS | HAS_LOCALS
    | WP_TEXT),
-  
+
   /* section_flags: mask of all section flags */
   (SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_RELOC | SEC_READONLY |
-   SEC_DATA), 
+   SEC_DATA),
 
    /* leading_symbol_char: is the first char of a user symbol
       predictable, and if so what is it */
@@ -222,10 +194,6 @@ bfd_target TARGET_LITTLE_SYM =
      a WAG (wild a** guess) */
   15,
 
-  /* align_power_min: minimum alignment restriction for any section
-     FIXME:  this value may be target machine dependent */
-  3,
-
   /* Routines to byte-swap various sized integers from the data sections */
   bfd_getl64, bfd_getl_signed_64, bfd_putl64,
     bfd_getl32, bfd_getl_signed_32, bfd_putl32,
@@ -259,7 +227,22 @@ bfd_target TARGET_LITTLE_SYM =
 
   /* Initialize a jump table with the standard macro.  All names start with
      "nlm" */
-  JUMP_TABLE(nlm),
+  BFD_JUMP_TABLE_GENERIC (_bfd_generic),
+  BFD_JUMP_TABLE_COPY (_bfd_generic),
+  BFD_JUMP_TABLE_CORE (_bfd_nocore),
+  BFD_JUMP_TABLE_ARCHIVE (_bfd_noarchive),
+  BFD_JUMP_TABLE_SYMBOLS (nlm),
+  BFD_JUMP_TABLE_RELOCS (nlm),
+  BFD_JUMP_TABLE_WRITE (nlm),
+  BFD_JUMP_TABLE_LINK (nlm),
+  BFD_JUMP_TABLE_DYNAMIC (_bfd_nodynamic),
+
+  /* Alternative endian target.  */
+#ifdef TARGET_BIG_SYM
+  & TARGET_BIG_SYM,
+#else
+  NULL,
+#endif
 
   /* backend_data: */
   (PTR) TARGET_BACKEND_DATA
This page took 0.046598 seconds and 4 git commands to generate.