2001-03-20 Michael Chastain <chastain@redhat.com>
[deliverable/binutils-gdb.git] / bfd / nlm-target.h
index 4cbc8a72a91ac8214555079c07090236a9e39a58..02ba0315c8fd16809af15adf2e4985a67aad3ce0 100644 (file)
@@ -1,5 +1,5 @@
 /* Target definitions for 32/64-bit NLM (NetWare Loadable Module)
 /* Target definitions for 32/64-bit NLM (NetWare Loadable Module)
-   Copyright (C) 1993 Free Software Foundation, Inc.
+   Copyright 1993, 1994, 1998, 1999, 2000 Free Software Foundation, Inc.
 
 This file is part of BFD, the Binary File Descriptor library.
 
 
 This file is part of BFD, the Binary File Descriptor library.
 
@@ -15,83 +15,37 @@ 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
 
 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 \
 #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_link_hash_table_create _bfd_generic_link_hash_table_create
 #define nlm_bfd_link_add_symbols _bfd_generic_link_add_symbols
 #define nlm_bfd_final_link _bfd_generic_final_link
 #define nlm_bfd_link_hash_table_create _bfd_generic_link_hash_table_create
 #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
 
 /* This structure contains everything that BFD knows about a target.
    It includes things like its byte order, name, what routines to call
@@ -101,9 +55,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.   */
 
    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
 
 #ifdef TARGET_BIG_SYM
-bfd_target TARGET_BIG_SYM =
+const bfd_target TARGET_BIG_SYM =
 {
   /* name: identify kind of target */
   TARGET_BIG_NAME,
 {
   /* name: identify kind of target */
   TARGET_BIG_NAME,
@@ -111,19 +69,19 @@ bfd_target TARGET_BIG_SYM =
   /* flavour: general indication about file */
   bfd_target_nlm_flavour,
 
   /* 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),
 
   /* 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 |
   /* 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 */
 
    /* leading_symbol_char: is the first char of a user symbol
       predictable, and if so what is it */
@@ -140,10 +98,6 @@ bfd_target TARGET_BIG_SYM =
      a WAG (wild a** guess) */
   15,
 
      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,
   /* 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 +131,22 @@ bfd_target TARGET_BIG_SYM =
 
   /* Initialize a jump table with the standard macro.  All names start with
      "nlm" */
 
   /* 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
 
   /* backend_data: */
   (PTR) TARGET_BACKEND_DATA
@@ -185,7 +154,7 @@ bfd_target TARGET_BIG_SYM =
 #endif
 
 #ifdef TARGET_LITTLE_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,
 {
   /* name: identify kind of target */
   TARGET_LITTLE_NAME,
@@ -193,19 +162,19 @@ bfd_target TARGET_LITTLE_SYM =
   /* flavour: general indication about file */
   bfd_target_nlm_flavour,
 
   /* 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),
 
   /* 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 |
   /* 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 */
 
    /* leading_symbol_char: is the first char of a user symbol
       predictable, and if so what is it */
@@ -222,10 +191,6 @@ bfd_target TARGET_LITTLE_SYM =
      a WAG (wild a** guess) */
   15,
 
      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,
   /* 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 +224,22 @@ bfd_target TARGET_LITTLE_SYM =
 
   /* Initialize a jump table with the standard macro.  All names start with
      "nlm" */
 
   /* 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
 
   /* backend_data: */
   (PTR) TARGET_BACKEND_DATA
This page took 0.025737 seconds and 4 git commands to generate.