x
[deliverable/binutils-gdb.git] / bfd / libcoff.h
index 4e7d837b9a45ae5aefbfcd433d40de21c7806f46..df83b65a6f61cde845f07b60b33e80175c4ac7d8 100644 (file)
@@ -97,6 +97,33 @@ typedef struct pe_tdata
 
 #define pe_data(bfd)           ((bfd)->tdata.pe_obj_data)
 
+/* Tdata for XCOFF files.  */
+
+struct xcoff_tdata
+{
+  /* Basic COFF information.  */
+  coff_data_type coff;
+
+  /* TOC value.  */
+  bfd_vma toc;
+
+  /* .text alignment from optional header.  */
+  int text_align_power;
+
+  /* .data alignment from optional header.  */
+  int data_align_power;
+
+  /* modtype from optional header.  */
+  short modtype;
+
+  /* maxdata from optional header.  */
+  bfd_size_type maxdata;
+
+  /* maxstack from optional header.  */
+  bfd_size_type maxstack;
+};
+
+#define xcoff_data(abfd) ((abfd)->tdata.xcoff_obj_data)
 
 /* We take the address of the first element of a asymbol to ensure that the
  * macro is only ever applied to an asymbol.  */
@@ -264,9 +291,14 @@ unsigned int fix_tag : 1;
 unsigned int fix_end : 1;
 
         /* Should the x_csect.x_scnlen field be renumbered.
-          Created by coff_slurp_symbol_table. */
+          Created by coff_pointerize_aux. */
 unsigned int fix_scnlen : 1;
 
+        /* Fix up an XCOFF C_BINCL/C_EINCL symbol.  The value is the
+          index into the line number entries.  Set by
+          coff_slurp_symbol_table.  */
+unsigned int fix_line : 1;
+
         /* The container for the symbol structure as read and translated
            from the file. */
 
@@ -391,9 +423,6 @@ typedef struct
        bfd     *abfd,
        PTR     internal_scnhdr,
        const char *name));
- asection *(*_bfd_make_section_hook) PARAMS ((
-       bfd     *abfd,
-       char    *name));
  void (*_bfd_set_alignment_hook) PARAMS ((
        bfd     *abfd,
        asection *sec,
@@ -403,6 +432,19 @@ typedef struct
  boolean (*_bfd_coff_symname_in_debug) PARAMS ((
        bfd     *abfd,
        struct internal_syment *sym));
+ boolean (*_bfd_coff_pointerize_aux_hook) PARAMS ((
+       bfd *abfd,
+       combined_entry_type *table_base,
+       combined_entry_type *symbol,
+       unsigned int indaux,
+       combined_entry_type *aux));
+ boolean (*_bfd_coff_print_aux) PARAMS ((
+       bfd *abfd,
+       FILE *file,
+       combined_entry_type *table_base,
+       combined_entry_type *symbol,
+       combined_entry_type *aux,
+       unsigned int indaux));
  void (*_bfd_coff_reloc16_extra_cases) PARAMS ((
        bfd     *abfd,
        struct bfd_link_info *link_info,
@@ -514,9 +556,6 @@ typedef struct
 #define bfd_coff_styp_to_sec_flags_hook(abfd, scnhdr, name)\
         ((coff_backend_info (abfd)->_bfd_styp_to_sec_flags_hook) (abfd, scnhdr, name))
 
-#define bfd_coff_make_section_hook(abfd, name)\
-        ((coff_backend_info (abfd)->_bfd_make_section_hook) (abfd, name))
-
 #define bfd_coff_set_alignment_hook(abfd, sec, scnhdr)\
         ((coff_backend_info (abfd)->_bfd_set_alignment_hook) (abfd, sec, scnhdr))
 
@@ -526,6 +565,10 @@ typedef struct
 #define bfd_coff_symname_in_debug(abfd, sym)\
         ((coff_backend_info (abfd)->_bfd_coff_symname_in_debug) (abfd, sym))
 
+#define bfd_coff_print_aux(abfd, file, base, symbol, aux, indaux)\
+        ((coff_backend_info (abfd)->_bfd_coff_print_aux)\
+         (abfd, file, base, symbol, aux, indaux))
+
 #define bfd_coff_reloc16_extra_cases(abfd, link_info, link_order, reloc, data, src_ptr, dst_ptr)\
         ((coff_backend_info (abfd)->_bfd_coff_reloc16_extra_cases)\
          (abfd, link_info, link_order, reloc, data, src_ptr, dst_ptr))
This page took 0.023914 seconds and 4 git commands to generate.