| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
 100
 101
 102
 103
 104
 105
 106
 107
 108
 109
 110
 111
 112
 113
 114
 115
 116
 117
 118
 119
 120
 121
 122
 123
 124
 125
 126
 127
 128
 129
 130
 131
 132
 133
 134
 135
 136
 137
 138
 139
 140
 141
 142
 143
 144
 145
 146
 147
 148
 149
 150
 151
 152
 153
 154
 155
 156
 157
 158
 159
 160
 161
 162
 163
 164
 165
 
 | /* IEEE Standard 695-1980 "Universal Format for Object Modules" header file
   Copyright 2001 Free Software Foundation, Inc.
   
   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, 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.
   
   Contributed by Cygnus Support.  */
#define N_W_VARIABLES 8
#define Module_Beginning 0xe0
typedef struct ieee_module
  {
    char *processor;
    char *module_name;
  }
ieee_module_begin_type;
#define Address_Descriptor 0xec
typedef struct ieee_address
  {
    bfd_vma number_of_bits_mau;
    bfd_vma number_of_maus_in_address;
    unsigned char byte_order;
#define IEEE_LITTLE 0xcc
#define IEEE_BIG 0xcd
  }
ieee_address_descriptor_type;
typedef union ieee_w_variable
  {
    file_ptr offset[N_W_VARIABLES];
    struct
      {
	file_ptr extension_record;
	file_ptr environmental_record;
	file_ptr section_part;
	file_ptr external_part;
	file_ptr debug_information_part;
	file_ptr data_part;
	file_ptr trailer_part;
	file_ptr me_record;
      }
    r;
  }
ieee_w_variable_type;
typedef enum ieee_record
  { 
    ieee_number_start_enum = 0x00,
    ieee_number_end_enum=0x7f,
    ieee_number_repeat_start_enum = 0x80,
    ieee_number_repeat_end_enum = 0x88,
    ieee_number_repeat_4_enum = 0x84,
    ieee_number_repeat_3_enum = 0x83,
    ieee_number_repeat_2_enum = 0x82,
    ieee_number_repeat_1_enum = 0x81,
    ieee_module_beginning_enum = 0xe0,
    ieee_module_end_enum = 0xe1,
    ieee_extension_length_1_enum = 0xde,
    ieee_extension_length_2_enum = 0xdf,
    ieee_section_type_enum = 0xe6,
    ieee_section_alignment_enum = 0xe7,
    ieee_external_symbol_enum = 0xe8,
    ieee_comma = 0x90,
    ieee_external_reference_enum = 0xe9,
    ieee_set_current_section_enum = 0xe5,
    ieee_address_descriptor_enum = 0xec,
    ieee_load_constant_bytes_enum = 0xed,
    ieee_load_with_relocation_enum = 0xe4,
    ieee_variable_A_enum = 0xc1,
    ieee_variable_B_enum = 0xc2,
    ieee_variable_C_enum = 0xc3,
    ieee_variable_D_enum = 0xc4,
    ieee_variable_E_enum = 0xc5,
    ieee_variable_F_enum = 0xc6,
    ieee_variable_G_enum = 0xc7,
    ieee_variable_H_enum = 0xc8,
    ieee_variable_I_enum = 0xc9,
    ieee_variable_J_enum = 0xca,
    ieee_variable_K_enum = 0xcb,
    ieee_variable_L_enum = 0xcc,
    ieee_variable_M_enum = 0xcd,
    ieee_variable_N_enum = 0xce,
    ieee_variable_O_enum = 0xcf,
    ieee_variable_P_enum = 0xd0,
    ieee_variable_Q_enum = 0xd1,
    ieee_variable_R_enum = 0xd2,
    ieee_variable_S_enum = 0xd3,
    ieee_variable_T_enum = 0xd4,
    ieee_variable_U_enum = 0xd5,
    ieee_variable_V_enum = 0xd6,
    ieee_variable_W_enum = 0xd7,
    ieee_variable_X_enum = 0xd8,
    ieee_variable_Y_enum = 0xd9,
    ieee_variable_Z_enum = 0xda,
    ieee_function_plus_enum = 0xa5,
    ieee_function_minus_enum = 0xa6,
    ieee_function_signed_open_b_enum = 0xba,
    ieee_function_signed_close_b_enum = 0xbb,
    ieee_function_unsigned_open_b_enum = 0xbc,
    ieee_function_unsigned_close_b_enum = 0xbd,
    ieee_function_either_open_b_enum = 0xbe,
    ieee_function_either_close_b_enum = 0xbf,
    ieee_record_seperator_enum = 0xdb,
    ieee_e2_first_byte_enum = 0xe2,
    ieee_section_size_enum = 0xe2d3,
    ieee_physical_region_size_enum = 0xe2c1,
    ieee_region_base_address_enum = 0xe2c2,
    ieee_mau_size_enum = 0xe2c6,
    ieee_m_value_enum = 0xe2cd,
    ieee_section_base_address_enum = 0xe2cc,
    ieee_asn_record_enum = 0xe2ce,
    ieee_section_offset_enum = 0xe2d2,
    ieee_value_starting_address_enum = 0xe2c7,
    ieee_assign_value_to_variable_enum = 0xe2d7,
    ieee_set_current_pc_enum = 0xe2d0,
    ieee_value_record_enum = 0xe2c9,
    ieee_nn_record = 0xf0,
    ieee_at_record_enum = 0xf1,
    ieee_ty_record_enum = 0xf2,
    ieee_attribute_record_enum = 0xf1c9,
    ieee_atn_record_enum = 0xf1ce,
    ieee_external_reference_info_record_enum = 0xf1d8,
    ieee_weak_external_reference_enum= 0xf4,
    ieee_repeat_data_enum = 0xf7,
    ieee_bb_record_enum = 0xf8,
    ieee_be_record_enum = 0xf9
  }
ieee_record_enum_type;
typedef struct ieee_section
  {
    unsigned int section_index;
    unsigned int section_type;
    char *       section_name;
    unsigned int parent_section_index;
    unsigned int sibling_section_index;
    unsigned int context_index;
  }
ieee_section_type;
#define IEEE_REFERENCE_BASE 11
#define IEEE_PUBLIC_BASE 32
#define IEEE_SECTION_NUMBER_BASE 1
 |