| /* IEEE-695 object file formats:  definitions internal to BFD. | 
 |    Copyright 1990, 1991, 1992, 1994, 1996, 2001 | 
 |    Free Software Foundation, Inc. | 
 |    Written by Cygnus Support.  Mostly Steve Chamberlain's fault. | 
 |  | 
 | This file is part of BFD, the Binary File Descriptor library. | 
 |  | 
 | This program is free software; you can redistribute it and/or modify | 
 | it under the terms of the GNU General Public License as published by | 
 | the Free Software Foundation; either version 2 of the License, or | 
 | (at your option) any later version. | 
 |  | 
 | This program is distributed in the hope that it will be useful, | 
 | but WITHOUT ANY WARRANTY; without even the implied warranty of | 
 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | 
 | 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */ | 
 |  | 
 | typedef struct { | 
 |   unsigned int index:24; | 
 |   char letter; | 
 | } ieee_symbol_index_type; | 
 |  | 
 | typedef struct ct { | 
 |   bfd *this; | 
 |   struct ct *next; | 
 | } bfd_chain_type; | 
 |  | 
 | typedef struct ieee_symbol | 
 | { | 
 |   asymbol symbol; | 
 |   struct ieee_symbol *next; | 
 |  | 
 |   unsigned int index; | 
 | } ieee_symbol_type; | 
 |  | 
 |  | 
 | typedef struct ieee_reloc { | 
 |   arelent relent; | 
 |   struct ieee_reloc *next; | 
 |   ieee_symbol_index_type symbol; | 
 |  | 
 | } ieee_reloc_type; | 
 |  | 
 | #define ieee_symbol(x) ((ieee_symbol_type *)(x)) | 
 |  | 
 | typedef struct ieee_per_section | 
 | { | 
 |   asection *section; | 
 |   bfd_byte *data; | 
 |   bfd_vma offset; | 
 |   bfd_vma pc; | 
 |   /* For output */ | 
 |   file_ptr current_pos; | 
 |   unsigned int current_byte; | 
 |   boolean initialized; | 
 |   ieee_reloc_type **reloc_tail_ptr; | 
 | } ieee_per_section_type; | 
 |  | 
 | #define ieee_per_section(x) ((ieee_per_section_type *)((x)->used_by_bfd)) | 
 |  | 
 | typedef struct { | 
 |   unsigned char *input_p; | 
 |   unsigned char *first_byte; | 
 |   unsigned char *last_byte; | 
 |   bfd *abfd; | 
 | } common_header_type ; | 
 |  | 
 | typedef struct ieee_data_struct | 
 | { | 
 |   common_header_type h; | 
 |   boolean read_symbols; | 
 |   boolean read_data; | 
 |   file_ptr output_cursor; | 
 |   /* Map of section indexes to section ptrs */ | 
 |   asection **section_table; | 
 |   unsigned int section_table_size; | 
 |   ieee_address_descriptor_type ad; | 
 |   ieee_module_begin_type mb; | 
 |   ieee_w_variable_type w; | 
 |  | 
 |   unsigned int section_count; | 
 |  | 
 |   unsigned int map_idx; | 
 |   /* List of GLOBAL EXPORT symbols */ | 
 |   ieee_symbol_type *external_symbols; | 
 |   /* List of UNDEFINED symbols */ | 
 |   ieee_symbol_type *external_reference; | 
 |  | 
 |   /* When the symbols have been canonicalized, they are in a | 
 |     * special order, we remember various bases here.. */ | 
 |   unsigned int external_symbol_max_index; | 
 |   unsigned int external_symbol_min_index; | 
 |   unsigned int external_symbol_count; | 
 |   int external_symbol_base_offset; | 
 |  | 
 |   unsigned int external_reference_max_index; | 
 |   unsigned int external_reference_min_index; | 
 |   unsigned int external_reference_count; | 
 |   int external_reference_base_offset; | 
 |  | 
 |  | 
 |   boolean symbol_table_full; | 
 |  | 
 |  | 
 | boolean done_debug; | 
 |  | 
 |  | 
 | bfd_chain_type *chain_head; | 
 | bfd_chain_type *chain_root; | 
 |  | 
 | } ieee_data_type; | 
 |  | 
 | typedef struct { | 
 |   file_ptr file_offset; | 
 |   bfd *abfd; | 
 | } ieee_ar_obstack_type; | 
 |  | 
 | typedef struct ieee_ar_data_struct | 
 | { | 
 |   common_header_type h; | 
 |   ieee_ar_obstack_type *elements; | 
 |  | 
 |   unsigned  int element_index ; | 
 |   unsigned int element_count; | 
 |  | 
 | } ieee_ar_data_type; | 
 |  | 
 | #define IEEE_DATA(abfd) ((abfd)->tdata.ieee_data) | 
 | #define IEEE_AR_DATA(abfd) ((abfd)->tdata.ieee_ar_data) | 
 |  | 
 | #define ptr(abfd) (ieee_data(abfd)->input_p) |