COMPILATION LISTING OF SEGMENT bce_get_defptr_ Compiled by: Multics PL/I Compiler, Release 32f, of October 9, 1989 Compiled at: Bull HN, Phoenix AZ, System-M Compiled on: 11/11/89 1019.0 mst Sat Options: optimize map 1 /****^ *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Bull Inc., 1987 * 4* * * 5* * Copyright, (C) Honeywell Information Systems Inc., 1984 * 6* * * 7* *********************************************************** */ 8 9 bce_get_defptr_: proc (p_def_header_ptr, segname_acc_ptr, symbol_acc_ptr, returned_def_ptr, code); 10 11 /* 06/05/84 Program by A.Ball to replace get_defptr_.alm for use later in bce_probe. */ 12 /* format: style4,indattr,ifthenstmt,ifthen,idind33,^indcomtxt */ 13 14 dcl addrel builtin; 15 dcl code fixed bin (35) parameter; /* Standard error code. */ 16 dcl counter fixed bin; 17 dcl 1 def_name like acc_string based (def_name_ptr); /* Definition name we are looking for. */ 18 dcl def_name_ptr ptr; 19 dcl 1 def_segname_acc aligned like acc_string based (def_segname_acc_ptr); 20 dcl def_segname_acc_ptr ptr; 21 dcl duplicate_table_index fixed bin; 22 dcl error_table_$no_ext_sym external fixed bin (35); /* Error code "External symbol not found." */ 23 dcl hash_index fixed bin; 24 dcl mod builtin; 25 dcl null builtin; 26 dcl out_of_bounds condition; 27 dcl p_def_header_ptr ptr parameter; /* Pointer to definition section. */ 28 dcl returned_def_ptr ptr parameter; /* Pointer to found definition. */ 29 dcl 1 segname_acc aligned like acc_string based (segname_acc_ptr); 30 dcl segname_acc_ptr ptr parameter; /* Pointer to seg name being searched for. */ 31 dcl 1 symbol_acc aligned like acc_string based (symbol_acc_ptr); 32 dcl symbol_acc_ptr ptr parameter; /* Pointer to symbol name being searched for. */ 33 dcl word fixed bin (36) unsigned unaligned based; 34 35 36 def_header_ptr = p_def_header_ptr; 37 on out_of_bounds goto no_match; 38 code = 0; 39 counter = 0; /* Initiate "sanity" counter. */ 40 if definition_header.hash_table_relp = 0 then do; 41 42 /* Go here if there is no hash table. First check class 3 defs for segname. */ 43 44 def_ptr = null; 45 do segname_ptr = addrel (def_header_ptr, definition_header.def_list_relp) repeat addrel (def_header_ptr, segname_definition.next_segname_relp) while (segname_ptr -> word ^= 0); 46 counter = counter + 1; 47 if counter > 1000 then goto no_match; 48 def_segname_acc_ptr = addrel (def_header_ptr, segname_definition.name_relp); 49 if def_segname_acc.string = segname_acc.string then do; 50 def_ptr = addrel (def_header_ptr, segname_definition.forward_relp); 51 goto start_def_search_loop; 52 end; 53 end; 54 55 def_ptr = addrel (def_header_ptr, definition_header.def_list_relp); 56 57 start_def_search_loop: 58 do def_ptr = def_ptr repeat addrel (def_header_ptr, definition.forward_relp) while (def_ptr -> word ^= 0 & counter < 1000); 59 /* forwrd_relp -> (zero word) marks the end of the thread. */ 60 counter = counter + 1; 61 if ^definition.flags.ignore then do; 62 def_name_ptr = addrel (def_header_ptr, definition.name_relp); /* Get the name associated with the definition. */ 63 if symbol_acc.string = def_name.string then goto found_def; 64 end; 65 end; 66 end; 67 68 else do; 69 def_ht_ptr = addrel (def_header_ptr, definition_header.hash_table_relp); /* Have pointer to beginning of hash table. */ 70 /* Hash index is determined by the length of the name string and the first three characters (the first word) mod divided by the size the table plus one. */ 71 do hash_index = mod (symbol_acc_ptr -> word, definition_ht.n_entries) + 1 repeat hash_index + 1 while (definition_ht.table (hash_index).def_relp ^= 0 & hash_index < 1000); /* Sanity check in case definition_ht.n_entries is trashed. */ 72 def_ptr = addrel (def_header_ptr, definition_ht.table (hash_index).def_relp); /* Get the pointer to the definition for this entry. */ 73 if definition.forward_relp = 0 then do; /* If true there is pointing to a duplicate name table and not a definition. */ 74 dup_table_ptr = def_ptr; 75 if duplicate_table.n_names < 1 | duplicate_table.n_names > 999 then goto no_match; 76 do duplicate_table_index = 1 to duplicate_table.n_names; /* Linear search through the duplicate name table. */ 77 def_ptr = addrel (def_header_ptr, duplicate_table.table (duplicate_table_index).def_relp); 78 def_name_ptr = addrel (def_header_ptr, definition.name_relp); 79 segname_ptr = addrel (def_header_ptr, definition.segname_relp); 80 def_segname_acc_ptr = addrel (def_header_ptr, segname_definition.name_relp); 81 if symbol_acc.string = def_name.string & segname_acc.string = def_segname_acc.string then goto found_def; /* Make the comparision. */ 82 end; 83 end; 84 else do; /* It is just a normal definition. */ 85 def_name_ptr = addrel (def_header_ptr, definition.name_relp); /* Get pointer to name associated with this definition. */ 86 if symbol_acc.string = def_name.string then goto found_def; /* Make the comparision. */ 87 end; 88 end; 89 end; 90 91 no_match: 92 returned_def_ptr = null (); /* Return null pointer. */ 93 code = error_table_$no_ext_sym; /* Appropriate error code. */ 94 return; 95 96 found_def: 97 returned_def_ptr = def_ptr; /* Return the found pointer. */ 98 return; 99 100 /* Begin include file definition_dcls.incl.pl1 BIM 1981 */ 1 2 1 3 1 4 /****^ HISTORY COMMENTS: 1 5* 1) change(86-05-02,Elhard), approve(86-05-02,MCR7391), 1 6* audit(86-07-18,DGHowe), install(86-11-20,MR12.0-1222): 1 7* Modified to add indirect bit to definition flags, add msf_map_relp to the 1 8* definition header, declare the msf_map, and add structures and constants 1 9* for deferred initialization. 1 10* 2) change(86-06-24,DGHowe), approve(86-06-24,MCR7420), 1 11* audit(86-08-05,Schroth), install(86-11-20,MR12.0-1222): 1 12* added the structures for pointer initialization. pointer_init_template. 1 13* changed list_template_entry 1 14* END HISTORY COMMENTS */ 1 15 1 16 1 17 /* Modified: */ 1 18 /* 13 Dec 1982 by Lee A. Newcomb to put definition_header.hash_table_relp */ 1 19 /* after unused half-word instead of before it. */ 1 20 /* 1 March 1983 by M. Weaver to add list template init type */ 1 21 1 22 /* format: style3,idind25 */ 1 23 /* everything for the definition section */ 1 24 1 25 declare ( 1 26 CLASS_TEXT init (0), /* text section definition */ 1 27 CLASS_LINKAGE init (1), /* linkage section definition */ 1 28 CLASS_SYMBOL init (2), /* symbol section definition */ 1 29 CLASS_SEGNAME init (3), /* segment name definition */ 1 30 CLASS_STATIC init (4), /* static section definition */ 1 31 CLASS_SYSTEM init (5), /* valid only in self links, not def class */ 1 32 CLASS_HEAP init (6) /* valid only in self links, not def class */ 1 33 ) fixed bin (3) unsigned internal static options (constant); 1 34 1 35 declare CLASS_NAMES (0:6) character (12) internal static options (constant) 1 36 init ("text", "linkage", "symbol", "segname", "static", "system", "heap"); 1 37 1 38 declare SYMBOLIC_SECTION_NAMES (0:6) character (8) 1 39 init ("*text", "*link", "*symbol", *, "*static", "*system", "*heap") internal static 1 40 options (constant); 1 41 1 42 declare 1 definition_flags unaligned based, 1 43 2 new bit (1), /* should be "1"b */ 1 44 2 ignore bit (1), /* cannot snap link to this */ 1 45 2 entry bit (1), /* can tra here */ 1 46 2 retain bit (1), /* binder respects this */ 1 47 2 argcount bit (1), /* OBSOLETE */ 1 48 2 descriptors bit (1), /* OBSOLETE */ 1 49 2 indirect bit (1), /* target is a pointer to actual target */ 1 50 2 unused bit (8); /* Must be zero */ 1 51 1 52 1 53 1 54 1 55 /* Header of the definition section */ 1 56 1 57 declare def_header_ptr pointer; 1 58 declare 1 definition_header aligned based (def_header_ptr), 1 59 2 def_list_relp fixed bin (18) unsigned unaligned, 1 60 /* first definition, reloc def18 */ 1 61 2 msf_map_relp fixed bin (18) unsigned unaligned, 1 62 /* msf_map if any, or 0 if none. reloc def18 unless none */ 1 63 2 hash_table_relp fixed bin (18) unsigned unaligned, 1 64 /* def hash table, if any, or 0 if none. reloc def18 unless none */ 1 65 2 flags unaligned like definition_flags; 1 66 /* both new and ignore must be "1"b here */ 1 67 1 68 /* A non class=3 definition. See segname_definition below for class=3 */ 1 69 1 70 1 71 declare def_ptr pointer; 1 72 declare 1 definition aligned based (def_ptr), 1 73 2 forward_relp unal fixed bin (18) unsigned, 1 74 /* offset of next def */ 1 75 2 backward_relp unal fixed bin (18) unsigned, 1 76 /* offset of previous def */ 1 77 2 thing_relp unal fixed bin (18) unsigned, 1 78 /* offset in section specified by class of thing this defines */ 1 79 2 flags unaligned like definition_flags, 1 80 2 class unal fixed bin (3) unsigned, 1 81 /* Type of definition */ 1 82 2 name_relp unal fixed bin (18) unsigned, 1 83 /* offset of ACC for symbol */ 1 84 2 segname_relp unal fixed bin (18) unsigned; 1 85 /* offset of segname def to which this belongs */ 1 86 1 87 /* Class=3, segname definition */ 1 88 1 89 declare segname_ptr pointer; 1 90 declare 1 segname_definition aligned based (segname_ptr), 1 91 2 forward_relp unal fixed bin (18) unsigned, 1 92 /* offset of next def */ 1 93 2 backward_relp unal fixed bin (18) unsigned, 1 94 /* offset of previous def */ 1 95 2 next_segname_relp unal fixed bin (18) unsigned, 1 96 /* offset of next segname def */ 1 97 2 flags unaligned like definition_flags, 1 98 2 class unal fixed bin (3) unsigned, 1 99 /* 3 for segname */ 1 100 2 name_relp unal fixed bin (18) unsigned, 1 101 /* offset of ACC for symbol */ 1 102 2 first_relp unal fixed bin (18) unsigned; 1 103 /* see following : */ 1 104 1 105 /* Definition blocks are chained off of segname definitions. 1 106* segname_definition.first_relp is one of three things: 1 107* (1) the def section offset of the first ordinary (class^=3) definition 1 108* belonging to this segname block. In the case where there are more than 1 109* one segname's on a block, all their first_relp will point 1 110* to the same place. 1 111* 1 112* (2) if there are no ordinary definitions associated with this segname, 1 113* then it is the def section offset of the next segname. 1 114* 1 115* (3) if there are no ordinary definitions in the block, and it 1 116* is the last block, then it points to a word containing 0. 1 117* 1 118* Thus the end of a list of synonym segnames can be detected by forward_relp 1 119* pointing to a class=3 definition whose first_relp is not the same as 1 120* the current definitions first_relp. 1 121**/ 1 122 1 123 /* All the definitions are linked through the forward and 1 124* backward thread variables. The end of the chain can is indicated 1 125* by forward pointing to a zero word. */ 1 126 1 127 1 128 declare exp_ptr pointer; 1 129 declare 1 exp_word based (exp_ptr) aligned, /* expression word in link definition */ 1 130 2 type_relp fixed bin (18) unsigned unal, 1 131 /* pointer (rel to defs) of type pair structure */ 1 132 2 expression fixed bin (17) unal; /* constant expression to be added in when snapping link */ 1 133 1 134 declare ( 1 135 LINK_SELF_BASE init (1), /* *section|0+expression,modifier */ 1 136 /* which section determined by segname_relp */ 1 137 LINK_OBSOLETE_2 init (2), /* not used */ 1 138 LINK_REFNAME_BASE init (3), /* refname|0+expression,modifier */ 1 139 LINK_REFNAME_OFFSETNAME init (4), /* refname|offsetname+expression,modifier */ 1 140 LINK_SELF_OFFSETNAME init (5), /* *section|offsetname+expression,modifier */ 1 141 LINK_CREATE_IF_NOT_FOUND init (6), /* OBSOLETE: like LINK_REFNAME_OFFSETNAME except that it will create instead of taking linkage_error */ 1 142 SECTION_TEXT init (0), /* *text */ 1 143 SECTION_LINK init (1), /* *link */ 1 144 SECTION_SYMBOL init (2), /* *symbol */ 1 145 SECTION_UNUSED init (3), /* reserved */ 1 146 SECTION_STATIC init (4), /* *static */ 1 147 SECTION_SYSTEM init (5), /* *system */ 1 148 SECTION_HEAP init (6) /* *heap */ 1 149 ) fixed bin (18) unsigned unaligned internal static options (constant); 1 150 1 151 /* use CLASS_NAMES for section names */ 1 152 1 153 declare LINK_TYPE_NAMES (1:6) 1 154 init ("absolute in section", "unused", "absolute off of refname", 1 155 "symbolic off of refname", "symbolic in section", "symbolic off of refname; create") 1 156 character (32) varying internal static options (constant); 1 157 1 158 1 159 declare type_ptr pointer; 1 160 declare 1 type_pair based (type_ptr) aligned,/* type pair in link definition */ 1 161 2 type fixed bin (18) unsigned unal, 1 162 /* see above */ 1 163 2 trap_relp fixed bin (18) unsigned unal, 1 164 /* pointer (rel to defs) to the trap word */ 1 165 /* unless LINK_SELF_OFFSETNAME off of *system or create link */ 1 166 2 segname_relp fixed bin (18) unsigned unal, 1 167 /* pointer (rel to defs) to ACC reference name for segment referenced, 1 168* /*or section code for SELF links */ 1 169 2 offsetname_relp fixed bin (18) unsigned unal; 1 170 /* for OFFSETNAME links, ACC string of name of location. */ 1 171 /* for others, must be ZERO */ 1 172 1 173 1 174 /* Link Trap Pair */ 1 175 1 176 declare link_trap_ptr pointer; 1 177 declare 1 link_trap_pair aligned based (link_trap_ptr), 1 178 2 call_relp fixed bin (18) unsigned unaligned, 1 179 /* LINK18, link to thing to call */ 1 180 2 info_relp fixed bin (18) unsigned unaligned; 1 181 /* LINK18, link to argument list */ 1 182 1 183 1 184 /* initialization info for *system or *heap link */ 1 185 1 186 1 187 /* NOTE -------------------------------------------------- 1 188* the following structures defining initialization information are also 1 189* defined in fortran_storage.incl.pl1 system_link_init_info.incl.pl1 1 190* and should be kept equivalent 1 191* ------------------------------------------------------- 1 192**/ 1 193 1 194 declare ( 1 195 INIT_NO_INIT init (0), 1 196 INIT_COPY_INFO init (3), 1 197 INIT_DEFINE_AREA init (4), 1 198 INIT_LIST_TEMPLATE init (5), 1 199 INIT_DEFERRED init (6) 1 200 ) fixed bin internal static options (constant); 1 201 1 202 /* for type = 0 or 4 */ 1 203 1 204 declare link_init_ptr pointer; 1 205 declare 1 link_init aligned based (link_init_ptr), 1 206 2 n_words fixed bin (35), /* number to invent */ 1 207 2 type fixed bin; /* see types above */ 1 208 1 209 /* for type=3, there is data to copy */ 1 210 1 211 declare 1 link_init_copy_info aligned based (link_init_ptr), 1 212 2 header aligned like link_init, 1 213 2 initial_data (link_init_n_words refer (link_init_copy_info.header.n_words)) bit (36) aligned; 1 214 1 215 declare link_init_n_words fixed bin; 1 216 1 217 /* for type = 5, there is a list template to copy */ 1 218 1 219 declare 1 link_init_list_template 1 220 aligned based (link_init_ptr), 1 221 2 header aligned like link_init, 1 222 2 pad bit (18) unaligned, 1 223 2 n_words_in_list fixed bin (18) unsigned unaligned, 1 224 2 template (link_init_n_words_in_list refer (link_init_list_template.n_words_in_list)); 1 225 1 226 declare link_init_n_words_in_list 1 227 fixed bin; 1 228 1 229 /* A list template consists of a series of entries with the following 1 230* description, concatenated together. n_bits and datum are bit items, 1 231* to permit a wide range of inputs. 1 232* 1 233* 1. A 'repeat' of '0' signifies skipping of 'n_bits' bits. 1 234* 2. A 'n_bits' of '0' signifies the last item of the list. 1 235* 1 236* COMMON, VLA's, and LA's are presumed to start at the base pointer 1 237* of their particular storage section. */ 1 238 1 239 declare 1 list_template_entry aligned based, 1 240 2 n_bits fixed bin (35) aligned, /* size of datum */ 1 241 2 mbz bit (3) unaligned, /* future expansion */ 1 242 2 init_type fixed bin (3) unsigned unaligned, /* 0 normal init, 1 ptr init, 2 packed ptr init */ 1 243 2 repeat fixed bin (30) unsigned unaligned, 1 244 /* number of times to repeat datum */ 1 245 2 datum bit (link_init_n_bits_in_datum refer (list_template_entry.n_bits)); 1 246 1 247 1 248 /* the pointer_init_template represents the initialization information 1 249* for ITS and packed pointers. Both pointer types require the entire 1 250* 72 bit structure. 1 251**/ 1 252 1 253 dcl 1 pointer_init_template based, 1 254 2 ptr_type fixed bin (18) unsigned unaligned, /* 0 text section, 1 linkage section, 2 static section */ 1 255 2 section_offset fixed bin (18) unsigned unaligned, /* offset to item in specified section */ 1 256 2 word_offset fixed bin (18) unsigned unaligned, /* offset from section item to target in words */ 1 257 2 mbz bit (12) unaligned, 1 258 2 bit_offset fixed bin (6) unsigned unaligned; /* offset from section item|word offset to target in bits */ 1 259 1 260 1 261 declare link_init_n_bits_in_datum 1 262 fixed bin (35); 1 263 1 264 /* for type = 6, the init_info resides in another MSF component */ 1 265 /* target_relp is a linkage section offset to a partial link to */ 1 266 /* the base of the linkage section of the component containing */ 1 267 /* the actual init_info. link_relp is the offset of the actual */ 1 268 /* link within that linkage section. */ 1 269 1 270 declare 1 link_init_deferred aligned based (link_init_ptr), 1 271 2 header aligned like link_init, 1 272 2 target_relp fixed bin (18) unsigned unaligned, 1 273 2 link_relp fixed bin (18) unsigned unaligned; 1 274 1 275 /* Definition section hash table */ 1 276 1 277 declare def_ht_ptr pointer; 1 278 declare 1 definition_ht aligned based (def_ht_ptr), 1 279 2 n_entries fixed bin, 1 280 2 table (def_ht_n_entries refer (definition_ht.n_entries)) aligned, 1 281 3 def_relp fixed bin (18) unsigned unaligned, 1 282 3 unused bit (18) unaligned; 1 283 1 284 declare def_ht_n_entries fixed bin; 1 285 1 286 1 287 /* Component name ht */ 1 288 declare comp_ht_ptr pointer; 1 289 declare 1 component_ht aligned based (comp_ht_ptr), 1 290 2 n_entries fixed bin, 1 291 2 table (comp_ht_n_entries refer (component_ht.n_entries)) aligned, 1 292 3 def_relp fixed bin (18) unsigned unaligned, 1 293 /* hashed segname */ 1 294 3 block_hdr_relp fixed bin (18) unsigned unaligned; 1 295 /* first segname def of block containing def_relp */ 1 296 1 297 declare comp_ht_n_entries fixed bin; 1 298 1 299 /* Duplicate name table */ 1 300 1 301 declare dup_table_ptr pointer; 1 302 declare 1 duplicate_table aligned based (dup_table_ptr), 1 303 2 mbz bit (18) unaligned, /* to tell it from a definition */ 1 304 2 n_names fixed bin (18) unsigned unaligned, 1 305 /* n in table */ 1 306 2 table (dup_table_n_names refer (duplicate_table.n_names)) aligned, 1 307 3 def_relp fixed bin (18) unsigned unaligned, 1 308 3 block_hdr_relp fixed bin (18) unsigned unaligned; 1 309 1 310 declare dup_table_n_names fixed bin; 1 311 1 312 /* The msf_map is found in the definition section of an */ 1 313 /* object MSF component. It is used by the linker to */ 1 314 /* determine whether a segment is a component of an object */ 1 315 /* MSF or a standard single-segment object. */ 1 316 1 317 dcl msf_map_ptr ptr; 1 318 dcl 01 msf_map aligned based (msf_map_ptr), 1 319 02 version char (8), 1 320 02 component_count fixed bin (15) unsigned, 1 321 02 my_component fixed bin (15) unsigned; 1 322 1 323 dcl msf_map_version_1 char (8) static options (constant) 1 324 init ("msfmp1.0"); 1 325 1 326 declare acc_string_ptr pointer; 1 327 declare 1 acc_string aligned based (acc_string_ptr), 1 328 2 count fixed bin (9) unsigned unaligned, 1 329 2 string character (max (3, acc_string_length) refer (acc_string.count)) unaligned, 1 330 2 mbz bit (0) aligned; /* this causes the statement */ 1 331 /* unspec (acc_string) = ""b to zero out */ 1 332 /* the last word, if the string is not of length 0mod4 */ 1 333 1 334 declare acc_string_length fixed bin (21); 1 335 1 336 1 337 /* end include file definitions_dcls.incl.pl1 */ 100 101 102 end /* get_def_ptr */; 103 SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 11/11/89 0826.6 bce_get_defptr_.pl1 >special_ldd>install>MR12.3-1114>bce_get_defptr_.pl1 100 1 11/24/86 1226.9 definition_dcls.incl.pl1 >ldd>include>definition_dcls.incl.pl1 NAMES DECLARED IN THIS COMPILATION. IDENTIFIER OFFSET LOC STORAGE CLASS DATA TYPE ATTRIBUTES AND REFERENCES (* indicates a set context) NAMES DECLARED BY DECLARE STATEMENT. acc_string based structure level 1 dcl 1-327 addrel builtin function dcl 14 ref 45 48 50 53 55 62 65 69 72 77 78 79 80 85 code parameter fixed bin(35,0) dcl 15 set ref 9 38* 93* count based fixed bin(9,0) level 2 packed packed unsigned unaligned dcl 1-327 ref 49 49 63 63 81 81 81 81 86 86 counter 000100 automatic fixed bin(17,0) dcl 16 set ref 39* 46* 46 47 57 60* 60 def_header_ptr 000116 automatic pointer dcl 1-57 set ref 36* 40 45 45 48 50 53 55 55 62 65 69 69 72 77 78 79 80 85 def_ht_ptr 000124 automatic pointer dcl 1-277 set ref 69* 71 71 72 def_list_relp based fixed bin(18,0) level 2 packed packed unsigned unaligned dcl 1-58 ref 45 55 def_name based structure level 1 unaligned dcl 17 def_name_ptr 000102 automatic pointer dcl 18 set ref 62* 63 78* 81 85* 86 def_ptr 000120 automatic pointer dcl 1-71 set ref 44* 50* 55* 57* 57 57* 61 62* 65 72* 73 74 77* 78 79 85 96 def_relp 1 based fixed bin(18,0) array level 3 in structure "definition_ht" packed packed unsigned unaligned dcl 1-278 in procedure "bce_get_defptr_" ref 71 72 def_relp 1 based fixed bin(18,0) array level 3 in structure "duplicate_table" packed packed unsigned unaligned dcl 1-302 in procedure "bce_get_defptr_" ref 77 def_segname_acc based structure level 1 dcl 19 def_segname_acc_ptr 000104 automatic pointer dcl 20 set ref 48* 49 80* 81 definition based structure level 1 dcl 1-72 definition_flags based structure level 1 packed packed unaligned dcl 1-42 definition_header based structure level 1 dcl 1-58 definition_ht based structure level 1 dcl 1-278 dup_table_ptr 000126 automatic pointer dcl 1-301 set ref 74* 75 75 76 77 duplicate_table based structure level 1 dcl 1-302 duplicate_table_index 000106 automatic fixed bin(17,0) dcl 21 set ref 76* 77* error_table_$no_ext_sym 000010 external static fixed bin(35,0) dcl 22 ref 93 flags 1(18) based structure level 2 packed packed unaligned dcl 1-72 forward_relp based fixed bin(18,0) level 2 in structure "segname_definition" packed packed unsigned unaligned dcl 1-90 in procedure "bce_get_defptr_" ref 50 forward_relp based fixed bin(18,0) level 2 in structure "definition" packed packed unsigned unaligned dcl 1-72 in procedure "bce_get_defptr_" ref 65 73 hash_index 000107 automatic fixed bin(17,0) dcl 23 set ref 71* 71 71* 72* 88 hash_table_relp 1 based fixed bin(18,0) level 2 packed packed unsigned unaligned dcl 1-58 ref 40 69 ignore 1(19) based bit(1) level 3 packed packed unaligned dcl 1-72 ref 61 link_init based structure level 1 dcl 1-205 mod builtin function dcl 24 ref 71 n_entries based fixed bin(17,0) level 2 dcl 1-278 ref 71 n_names 0(18) based fixed bin(18,0) level 2 packed packed unsigned unaligned dcl 1-302 ref 75 75 76 name_relp 2 based fixed bin(18,0) level 2 in structure "definition" packed packed unsigned unaligned dcl 1-72 in procedure "bce_get_defptr_" ref 62 78 85 name_relp 2 based fixed bin(18,0) level 2 in structure "segname_definition" packed packed unsigned unaligned dcl 1-90 in procedure "bce_get_defptr_" ref 48 80 next_segname_relp 1 based fixed bin(18,0) level 2 packed packed unsigned unaligned dcl 1-90 ref 53 null builtin function dcl 25 ref 44 91 out_of_bounds 000110 stack reference condition dcl 26 ref 37 p_def_header_ptr parameter pointer dcl 27 ref 9 36 returned_def_ptr parameter pointer dcl 28 set ref 9 91* 96* segname_acc based structure level 1 dcl 29 segname_acc_ptr parameter pointer dcl 30 ref 9 49 81 segname_definition based structure level 1 dcl 1-90 segname_ptr 000122 automatic pointer dcl 1-89 set ref 45* 45* 48 50* 53 79* 80 segname_relp 2(18) based fixed bin(18,0) level 2 packed packed unsigned unaligned dcl 1-72 ref 79 string 0(09) based char level 2 in structure "def_name" packed packed unaligned dcl 17 in procedure "bce_get_defptr_" ref 63 81 86 string 0(09) based char level 2 in structure "symbol_acc" packed packed unaligned dcl 31 in procedure "bce_get_defptr_" ref 63 81 86 string 0(09) based char level 2 in structure "def_segname_acc" packed packed unaligned dcl 19 in procedure "bce_get_defptr_" ref 49 81 string 0(09) based char level 2 in structure "segname_acc" packed packed unaligned dcl 29 in procedure "bce_get_defptr_" ref 49 81 symbol_acc based structure level 1 dcl 31 symbol_acc_ptr parameter pointer dcl 32 ref 9 63 71 81 86 table 1 based structure array level 2 in structure "definition_ht" dcl 1-278 in procedure "bce_get_defptr_" table 1 based structure array level 2 in structure "duplicate_table" dcl 1-302 in procedure "bce_get_defptr_" word based fixed bin(36,0) packed unsigned unaligned dcl 33 ref 45 57 71 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. CLASS_HEAP internal static fixed bin(3,0) initial unsigned dcl 1-25 CLASS_LINKAGE internal static fixed bin(3,0) initial unsigned dcl 1-25 CLASS_NAMES internal static char(12) initial array packed unaligned dcl 1-35 CLASS_SEGNAME internal static fixed bin(3,0) initial unsigned dcl 1-25 CLASS_STATIC internal static fixed bin(3,0) initial unsigned dcl 1-25 CLASS_SYMBOL internal static fixed bin(3,0) initial unsigned dcl 1-25 CLASS_SYSTEM internal static fixed bin(3,0) initial unsigned dcl 1-25 CLASS_TEXT internal static fixed bin(3,0) initial unsigned dcl 1-25 INIT_COPY_INFO internal static fixed bin(17,0) initial dcl 1-194 INIT_DEFERRED internal static fixed bin(17,0) initial dcl 1-194 INIT_DEFINE_AREA internal static fixed bin(17,0) initial dcl 1-194 INIT_LIST_TEMPLATE internal static fixed bin(17,0) initial dcl 1-194 INIT_NO_INIT internal static fixed bin(17,0) initial dcl 1-194 LINK_CREATE_IF_NOT_FOUND internal static fixed bin(18,0) initial packed unsigned unaligned dcl 1-134 LINK_OBSOLETE_2 internal static fixed bin(18,0) initial packed unsigned unaligned dcl 1-134 LINK_REFNAME_BASE internal static fixed bin(18,0) initial packed unsigned unaligned dcl 1-134 LINK_REFNAME_OFFSETNAME internal static fixed bin(18,0) initial packed unsigned unaligned dcl 1-134 LINK_SELF_BASE internal static fixed bin(18,0) initial packed unsigned unaligned dcl 1-134 LINK_SELF_OFFSETNAME internal static fixed bin(18,0) initial packed unsigned unaligned dcl 1-134 LINK_TYPE_NAMES internal static varying char(32) initial array dcl 1-153 SECTION_HEAP internal static fixed bin(18,0) initial packed unsigned unaligned dcl 1-134 SECTION_LINK internal static fixed bin(18,0) initial packed unsigned unaligned dcl 1-134 SECTION_STATIC internal static fixed bin(18,0) initial packed unsigned unaligned dcl 1-134 SECTION_SYMBOL internal static fixed bin(18,0) initial packed unsigned unaligned dcl 1-134 SECTION_SYSTEM internal static fixed bin(18,0) initial packed unsigned unaligned dcl 1-134 SECTION_TEXT internal static fixed bin(18,0) initial packed unsigned unaligned dcl 1-134 SECTION_UNUSED internal static fixed bin(18,0) initial packed unsigned unaligned dcl 1-134 SYMBOLIC_SECTION_NAMES internal static char(8) initial array packed unaligned dcl 1-38 acc_string_length automatic fixed bin(21,0) dcl 1-334 acc_string_ptr automatic pointer dcl 1-326 comp_ht_n_entries automatic fixed bin(17,0) dcl 1-297 comp_ht_ptr automatic pointer dcl 1-288 component_ht based structure level 1 dcl 1-289 def_ht_n_entries automatic fixed bin(17,0) dcl 1-284 dup_table_n_names automatic fixed bin(17,0) dcl 1-310 exp_ptr automatic pointer dcl 1-128 exp_word based structure level 1 dcl 1-129 link_init_copy_info based structure level 1 dcl 1-211 link_init_deferred based structure level 1 dcl 1-270 link_init_list_template based structure level 1 dcl 1-219 link_init_n_bits_in_datum automatic fixed bin(35,0) dcl 1-261 link_init_n_words automatic fixed bin(17,0) dcl 1-215 link_init_n_words_in_list automatic fixed bin(17,0) dcl 1-226 link_init_ptr automatic pointer dcl 1-204 link_trap_pair based structure level 1 dcl 1-177 link_trap_ptr automatic pointer dcl 1-176 list_template_entry based structure level 1 dcl 1-239 msf_map based structure level 1 dcl 1-318 msf_map_ptr automatic pointer dcl 1-317 msf_map_version_1 internal static char(8) initial packed unaligned dcl 1-323 pointer_init_template based structure level 1 packed packed unaligned dcl 1-253 type_pair based structure level 1 dcl 1-160 type_ptr automatic pointer dcl 1-159 NAMES DECLARED BY EXPLICIT CONTEXT. bce_get_defptr_ 000015 constant entry external dcl 9 found_def 000400 constant label dcl 96 ref 63 81 86 no_match 000371 constant label dcl 91 ref 37 47 75 start_def_search_loop 000142 constant label dcl 57 ref 51 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 452 464 404 462 Length 652 404 12 151 46 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME bce_get_defptr_ 109 external procedure is an external procedure. on unit on line 37 64 on unit STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME bce_get_defptr_ 000100 counter bce_get_defptr_ 000102 def_name_ptr bce_get_defptr_ 000104 def_segname_acc_ptr bce_get_defptr_ 000106 duplicate_table_index bce_get_defptr_ 000107 hash_index bce_get_defptr_ 000116 def_header_ptr bce_get_defptr_ 000120 def_ptr bce_get_defptr_ 000122 segname_ptr bce_get_defptr_ 000124 def_ht_ptr bce_get_defptr_ 000126 dup_table_ptr bce_get_defptr_ THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. return_mac tra_ext_1 mdfx3 enable_op ext_entry int_entry NO EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$no_ext_sym LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 9 000010 36 000022 37 000026 38 000045 39 000047 40 000050 44 000055 45 000057 46 000073 47 000074 48 000077 49 000104 50 000121 51 000126 53 000127 55 000135 57 000142 60 000156 61 000157 62 000162 63 000167 65 000203 66 000211 69 000212 71 000215 72 000240 73 000244 74 000247 75 000250 76 000256 77 000265 78 000272 79 000277 80 000304 81 000311 82 000343 83 000345 85 000346 86 000353 88 000367 91 000371 93 000374 94 000377 96 000400 98 000403 ----------------------------------------------------------- Historical Background This edition of the Multics software materials and documentation is provided and donated to Massachusetts Institute of Technology by Group BULL including BULL HN Information Systems Inc. as a contribution to computer science knowledge. This donation is made also to give evidence of the common contributions of Massachusetts Institute of Technology, Bell Laboratories, General Electric, Honeywell Information Systems Inc., Honeywell BULL Inc., Groupe BULL and BULL HN Information Systems Inc. to the development of this operating system. Multics development was initiated by Massachusetts Institute of Technology Project MAC (1963-1970), renamed the MIT Laboratory for Computer Science and Artificial Intelligence in the mid 1970s, under the leadership of Professor Fernando Jose Corbato. Users consider that Multics provided the best software architecture for managing computer hardware properly and for executing programs. Many subsequent operating systems incorporated Multics principles. Multics was distributed in 1975 to 2000 by Group Bull in Europe , and in the U.S. by Bull HN Information Systems Inc., as successor in interest by change in name only to Honeywell Bull Inc. and Honeywell Information Systems Inc. . ----------------------------------------------------------- Permission to use, copy, modify, and distribute these programs and their documentation for any purpose and without fee is hereby granted,provided that the below copyright notice and historical background appear in all copies and that both the copyright notice and historical background and this permission notice appear in supporting documentation, and that the names of MIT, HIS, BULL or BULL HN not be used in advertising or publicity pertaining to distribution of the programs without specific prior written permission. Copyright 1972 by Massachusetts Institute of Technology and Honeywell Information Systems Inc. Copyright 2006 by BULL HN Information Systems Inc. Copyright 2006 by Bull SAS All Rights Reserved