COMPILATION LISTING OF SEGMENT bce_component_to_wordnum_ 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.8 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_component_to_wordnum_: proc (p_segnum, p_segname, p_component, return_segnum, return_wordnum, p_code); 10 11 /* format: style4,indattr,ifthenstmt,ifthen,idind35,^indcomtxt */ 12 13 /* Program to take a segment number and an entry name which will return a word number relative to the beginning of the segment. */ 14 15 /* Coded June of 1984 by Allen Ball. */ 16 17 dcl bce_get_defptr_ entry (ptr, ptr, ptr, ptr, fixed bin (35)); 18 dcl code fixed bin (35); 19 dcl 1 component_acc aligned, 20 2 num_chars fixed bin (9) unsigned unaligned, 21 2 string char (32) unaligned; 22 dcl crash_definitions_$ external; 23 dcl crash_lot$ external; 24 dcl error_table_$no_ext_sym external; 25 dcl p_code fixed bin (35) parameter; 26 dcl p_component char (32) parameter; 27 dcl p_segname char (32); 28 dcl p_segnum fixed bin (15) parameter; 29 dcl return_segnum fixed bin (15) parameter; 30 dcl return_wordnum fixed bin (26) parameter; 31 dcl 1 segname_acc aligned like component_acc; 32 33 dcl (addr, addrel, length, rtrim, segno, substr, unspec, wordno) builtin; 34 35 code = 0; 36 p_code = 0; 37 unspec (component_acc) = "0"b; /* Set up acc strings for get_defptr_ */ 38 component_acc.num_chars = length (rtrim (p_component)); 39 substr (component_acc.string, 1, component_acc.num_chars) = rtrim (p_component); 40 unspec (segname_acc) = "0"b; 41 segname_acc.num_chars = length (rtrim (p_segname)); 42 substr (segname_acc.string, 1, segname_acc.num_chars) = rtrim (p_segname); 43 lotp = addr (crash_lot$); 44 definitions_ptr = addr (crash_definitions_$); 45 def_header_ptr = addrel (definitions_ptr, definitions.dot (p_segnum).offset); 46 call bce_get_defptr_ (def_header_ptr, addr (segname_acc), addr (component_acc), def_ptr, code); 47 if code ^= 0 then do; 48 p_code = code; 49 return; 50 end; 51 if definition.class = CLASS_TEXT then do; 52 return_segnum = p_segnum; 53 return_wordnum = definition.thing_relp; 54 end; 55 else if definition.class = CLASS_LINKAGE then do; 56 return_segnum = segno (lot.lp (p_segnum)); 57 return_wordnum = wordno (lot.lp (p_segnum)) + definition.thing_relp; 58 end; 59 60 /* Otherwise class is equal to CLASS_SYMBOL, CLASS_SEGNAME, or CLASS_STATIC and we are not interested in it. */ 61 62 else p_code = error_table_$no_ext_sym; 63 return; 64 1 1 /* 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 */ 65 2 1 /* Begin include file hc_definitions_seg.incl.pl1 BIM 7/82 */ 2 2 /* format: style3 */ 2 3 2 4 declare definitions_ptr ptr; 2 5 2 6 declare 1 definitions aligned based (definitions_ptr), 2 7 2 next_free_ptr pointer, /* next section, starts after table */ 2 8 2 dot (2:511) aligned, /* definitions_offset_table */ 2 9 3 offset fixed bin (18) uns unal, /* in this segment */ 2 10 3 length fixed bin unal, 2 11 2 first_free bit (0) aligned; 2 12 2 13 /* End include file hc_definitions_seg.incl.pl1 */ 66 3 1 /* BEGIN INCLUDE FILE -- lot.incl.pl1 S.Webber 9/74, Modified by R. Bratt 04/76, modified by M. Weaver 7/76 */ 3 2 /* modified by M. Weaver 3/77 */ 3 3 3 4 dcl lotp ptr; 3 5 3 6 dcl 1 lot based (lotp) aligned, 3 7 2 lp (0:9999) ptr unaligned; /* array of packed pointers to linkage sections */ 3 8 3 9 dcl lot_fault bit (36) aligned static options (constant) init ("111000000000000000000000000000000000"b); 3 10 /* lot fault has fault code = 0 and offset = 0 */ 3 11 3 12 dcl isotp ptr; 3 13 dcl 1 isot based (isotp) aligned, 3 14 2 isp (0:9999) ptr unaligned; 3 15 3 16 dcl 1 isot1 (0 :9999) aligned based, 3 17 2 flags unaligned, 3 18 3 fault bit (2) unaligned, 3 19 3 system bit (1) unaligned, 3 20 3 mbz bit (6) unaligned, 3 21 2 fault_code fixed bin (8) unaligned, 3 22 2 static_offset bit (18) unaligned; 3 23 3 24 3 25 /* END INCLUDE FILE lot.incl.pl1 */ 67 68 69 end /* bce_component_to_wordnum */; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 11/11/89 0826.6 bce_component_to_wordnum_.pl1 >special_ldd>install>MR12.3-1114>bce_component_to_wordnum_.pl1 65 1 11/24/86 1226.9 definition_dcls.incl.pl1 >ldd>include>definition_dcls.incl.pl1 66 2 10/20/82 0938.5 hc_definitions_seg.incl.pl1 >ldd>include>hc_definitions_seg.incl.pl1 67 3 08/05/77 1022.4 lot.incl.pl1 >ldd>include>lot.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. CLASS_LINKAGE constant fixed bin(3,0) initial unsigned dcl 1-25 ref 55 CLASS_TEXT constant fixed bin(3,0) initial unsigned dcl 1-25 ref 51 addr builtin function dcl 33 ref 43 44 46 46 46 46 addrel builtin function dcl 33 ref 45 bce_get_defptr_ 000010 constant entry external dcl 17 ref 46 class 1(33) based fixed bin(3,0) level 2 packed packed unsigned unaligned dcl 1-72 ref 51 55 code 000100 automatic fixed bin(35,0) dcl 18 set ref 35* 46* 47 48 component_acc 000101 automatic structure level 1 dcl 19 set ref 37* 46 46 crash_definitions_$ 000012 external static fixed bin(17,0) dcl 22 set ref 44 crash_lot$ 000014 external static fixed bin(17,0) dcl 23 set ref 43 def_header_ptr 000124 automatic pointer dcl 1-57 set ref 45* 46* def_ptr 000126 automatic pointer dcl 1-71 set ref 46* 51 53 55 57 definition based structure level 1 dcl 1-72 definition_flags based structure level 1 packed packed unaligned dcl 1-42 definitions based structure level 1 dcl 2-6 definitions_ptr 000130 automatic pointer dcl 2-4 set ref 44* 45 45 dot 2 based structure array level 2 dcl 2-6 error_table_$no_ext_sym 000016 external static fixed bin(17,0) dcl 24 ref 62 length builtin function dcl 33 ref 38 41 link_init based structure level 1 dcl 1-205 lot based structure level 1 dcl 3-6 lotp 000132 automatic pointer dcl 3-4 set ref 43* 56 57 lp based pointer array level 2 packed packed unaligned dcl 3-6 ref 56 57 num_chars 000101 automatic fixed bin(9,0) level 2 in structure "component_acc" packed packed unsigned unaligned dcl 19 in procedure "bce_component_to_wordnum_" set ref 38* 39 num_chars 000112 automatic fixed bin(9,0) level 2 in structure "segname_acc" packed packed unsigned unaligned dcl 31 in procedure "bce_component_to_wordnum_" set ref 41* 42 offset 2 based fixed bin(18,0) array level 3 packed packed unsigned unaligned dcl 2-6 ref 45 p_code parameter fixed bin(35,0) dcl 25 set ref 9 36* 48* 62* p_component parameter char(32) packed unaligned dcl 26 ref 9 38 39 p_segname parameter char(32) packed unaligned dcl 27 ref 9 41 42 p_segnum parameter fixed bin(15,0) dcl 28 ref 9 45 52 56 57 return_segnum parameter fixed bin(15,0) dcl 29 set ref 9 52* 56* return_wordnum parameter fixed bin(26,0) dcl 30 set ref 9 53* 57* rtrim builtin function dcl 33 ref 38 39 41 42 segname_acc 000112 automatic structure level 1 dcl 31 set ref 40* 46 46 segno builtin function dcl 33 ref 56 string 0(09) 000112 automatic char(32) level 2 in structure "segname_acc" packed packed unaligned dcl 31 in procedure "bce_component_to_wordnum_" set ref 42* string 0(09) 000101 automatic char(32) level 2 in structure "component_acc" packed packed unaligned dcl 19 in procedure "bce_component_to_wordnum_" set ref 39* substr builtin function dcl 33 set ref 39* 42* thing_relp 1 based fixed bin(18,0) level 2 packed packed unsigned unaligned dcl 1-72 ref 53 57 unspec builtin function dcl 33 set ref 37* 40* wordno builtin function dcl 33 ref 57 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. CLASS_HEAP 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 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 based structure level 1 dcl 1-327 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 def_ht_ptr automatic pointer dcl 1-277 definition_header based structure level 1 dcl 1-58 definition_ht based structure level 1 dcl 1-278 dup_table_n_names automatic fixed bin(17,0) dcl 1-310 dup_table_ptr automatic pointer dcl 1-301 duplicate_table based structure level 1 dcl 1-302 exp_ptr automatic pointer dcl 1-128 exp_word based structure level 1 dcl 1-129 isot based structure level 1 dcl 3-13 isot1 based structure array level 1 dcl 3-16 isotp automatic pointer dcl 3-12 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 lot_fault internal static bit(36) initial dcl 3-9 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 segname_definition based structure level 1 dcl 1-90 segname_ptr automatic pointer dcl 1-89 type_pair based structure level 1 dcl 1-160 type_ptr automatic pointer dcl 1-159 NAME DECLARED BY EXPLICIT CONTEXT. bce_component_to_wordnum_ 000012 constant entry external dcl 9 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 272 312 203 302 Length 542 203 20 213 67 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME bce_component_to_wordnum_ 110 external procedure is an external procedure. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME bce_component_to_wordnum_ 000100 code bce_component_to_wordnum_ 000101 component_acc bce_component_to_wordnum_ 000112 segname_acc bce_component_to_wordnum_ 000124 def_header_ptr bce_component_to_wordnum_ 000126 def_ptr bce_component_to_wordnum_ 000130 definitions_ptr bce_component_to_wordnum_ 000132 lotp bce_component_to_wordnum_ THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_out return_mac ext_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. bce_get_defptr_ THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. crash_definitions_$ crash_lot$ error_table_$no_ext_sym LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 9 000004 35 000017 36 000020 37 000022 38 000025 39 000041 40 000051 41 000054 42 000070 43 000100 44 000102 45 000104 46 000112 47 000134 48 000136 49 000140 51 000141 52 000146 53 000151 54 000154 55 000155 56 000157 57 000165 58 000175 62 000176 63 000202 ----------------------------------------------------------- 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