* gas/config/tc-avr.c: Change ISA for devices with USB support to
[external/binutils.git] / bfd / libieee.h
index 539d174..53f4c08 100644 (file)
@@ -1,9 +1,36 @@
+/* IEEE-695 object file formats:  definitions internal to BFD.
+   Copyright 1990, 1991, 1992, 1994, 1996, 2001, 2002, 2005, 2007
+   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 3 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., 51 Franklin Street - Fifth Floor, Boston,
+   MA 02110-1301, USA.  */
+
 typedef struct {
   unsigned int index:24;
   char letter;
 } ieee_symbol_index_type;
 
-typedef struct ieee_symbol 
+typedef struct ct {
+  bfd *this;
+  struct ct *next;
+} bfd_chain_type;
+
+typedef struct ieee_symbol
 {
   asymbol symbol;
   struct ieee_symbol *next;
@@ -30,50 +57,62 @@ typedef struct ieee_per_section
   /* For output */
   file_ptr current_pos;
   unsigned int current_byte;
-  boolean initialized;
+  bfd_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))
-#define NSECTIONS 10
 
-  
+typedef struct {
+  unsigned char *input_p;
+  unsigned char *first_byte;
+  unsigned char *last_byte;
+  bfd *abfd;
+} common_header_type ;
 
-typedef struct 
+typedef struct ieee_data_struct
 {
-  boolean read_symbols;
-  boolean read_data;   
-  unsigned  char *input_p;
-  unsigned char *first_byte;
+  common_header_type h;
+  bfd_boolean read_symbols;
+  bfd_boolean read_data;
   file_ptr output_cursor;
   /* Map of section indexes to section ptrs */
-  asection * section_table[NSECTIONS];
+  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;
-  
-  bfd *abfd;
-  boolean symbol_table_full;
+
+
+  bfd_boolean symbol_table_full;
+
+
+bfd_boolean done_debug;
+
+
+bfd_chain_type *chain_head;
+bfd_chain_type *chain_root;
+
 } ieee_data_type;
 
 typedef struct {
@@ -81,14 +120,17 @@ typedef struct {
   bfd *abfd;
 } ieee_ar_obstack_type;
 
-typedef struct {
+typedef struct ieee_ar_data_struct
+{
+  common_header_type h;
   ieee_ar_obstack_type *elements;
-  struct  obstack element_obstack;
+
   unsigned  int element_index ;
   unsigned int element_count;
+
 } ieee_ar_data_type;
 
-#define ieee_data(abfd) ((ieee_data_type *)(abfd)->tdata)
-#define ieee_ar_data(abfd) ((ieee_ar_data_type *)(abfd)->arelt_data)
+#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)