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