THIS FILE IS DAMAGED \+Sieber Multics &SY"4@+.,Fraser Multics `"@TlIPb,-Lam Multics .jS~-.Radlowsky Multics `T./Burrus Guest i*TxB"F/ to son block */ 2 41 2 map unal, 2 42 3 first bit(18), /* rel ptr to first word of map */ 2 43 3 last bit(18), /* rel ptr to last word of map */ 2 44 2 bits unal bit(18), 2 45 2 header unal bit(18), /* rel ptr to symbol header */ 2 46 2 chain(4) unal bit(18), /* chain(i) is rel ptr to first symbol 2 47 on start list with length >= 2**i */ 2 48 2 class_list(0:15) unal bit(18); /* rel ptrs to first symbol of given 2 49 storage class */ 25 3 1 dcl 1 std_symbol_header based aligned, 3 2 2 dcl_version fixed bin, 3 3 2 identifier char(8), 3 4 2 gen_number fixed bin, 3 5 2 gen_created fixed bin(71), 3 6 2 object_created fixed bin(71), 3 7 2 generator char(8), 3 8 2 gen_version unaligned, 3 9 3 offset bit(18), 3 10 3 size bit(18), 3 11 2 userid unaligned, 3 12 3 offset bit(18), 3 13 3 size bit(18), 3 14 2 comment unaligned, 3 15 3 offset bit(18), 3 16 3 size bit(18), 3 17 2 text_boundary bit(18) unaligned, 3 18 2 stat_boundary bit(18) unaligned, 3 19 2 source_map bit(18) unaligned, 3 20 2 area_pointer bit(18) unaligned, 3 21 2 backpointer bit(18) unaligned, 3 22 2 block_size bit(18) unaligned, 3 23 2 next_block bit(18) unaligned, 3 24 2 rel_text bit(18) unaligned, 3 25 2 rel_def bit(18) unaligned, 3 26 2 rel_link bit(18) unaligned, 3 27 2 rel_symbol bit(18) unaligned, 3 28 2 mini_truncate bit(18) unaligned, 3 29 2 maxi_truncate bit(18) unaligned; 26 4 1 dcl 1 pl1_symbol_block aligned based, 4 2 2 version fixed bin, 4 3 2 identifier char(8), /* must be "pl1info" */ 4 4 2 flags, 4 5 3 profile bit(1) unal, 4 6 3 table bit(1) unal, 4 7 3 map bit(1) unal, 4 8 3 flow bit(1) unal, 4 9 3 io bit(1) unal, 4 10 3 table_removed bit(1) unal, 4 11 2 greatest_severity fixed bin, 4 12 2 root unal bit(18), 4 13 2 profile unal bit(18), 4 14 2 map unal, 4 15 3 first bit(18), 4 16 3 last bit(18), 4 17 2 segname unaligned, 4 18 3 offset bit(18), 4 19 3 size bit(18); 27 28 29 hp = pt; 30 31 if hp -> std_symbol_header.identifier ^= "symbtree" 32 then root = hp -> symbol_header.root; /* non-std symbol header */ 33 else do; 34 35 /* have std symbol header, look for pl1 symbol block */ 36 37 if hp -> std_symbol_header.area_pointer = (18)"0"b then return(null); 38 39 bp = addrel(hp,hp -> std_symbol_header.area_pointer); 40 if bp -> pl1_symbol_block.identifier ^= "pl1info" then return(null); 41 42 root = bp -> pl1_symbol_block.root; 43 end; 44 45 if root = (18)"0"b then return(null); 46 47 return(search(addrel(hp,root))); 48 49 search: proc(block_pt) returns(ptr); 50 51 dcl (block_pt,p,bp) ptr, 52 n fixed bin; 53 54 dcl 1 acc aligned based, 55 2 size unal bit(9), 56 2 string unal char(n); 57 58 bp = block_pt; 59 60 check: if bp -> symbol_block.name = (18)"0"b then goto step; 61 62 p = addrel(bp,bp -> symbol_block.name); 63 n = fixed(p -> acc.size,9); 64 if n ^= length(name) then goto step; 65 66 if name = p -> acc.string then return(bp); 67 68 step: if bp -> symbol_block.son 69 then do; 70 p = search(addrel(bp,bp -> symbol_block.son)); 71 if p ^= null then return(p); 72 end; 73 74 if bp -> symbol_block.brother 75 then do; 76 bp = addrel(bp,bp -> symbol_block.brother); 77 goto check; 78 end; 79 80 return(null); 81 82 end; 83 84 end; INCLUDE FILES USED IN THIS COMPILATION. LINE NUMBER NAME PATHNAME 24 1 symbol_header.incl.pl1 >library_dir_dir>include>symbol_header.incl.pl1 25 2 symbol_node.incl.pl1 >library_dir_dir>include>symbol_node.incl.pl1 26 3 std_symbol_header.incl.pl1 >library_dir_dir>include>std_symbol_header.incl.pl1 27 4 pl1_symbol_block.incl.pl1 >library_dir_dir>include>pl1_symbol_block.incl.pl1 NAMES DECLARED IN THIS COMPILATION. IDENTIFIER OFFSET LOC STORAGE CLASS DATA TYPE ATTRIBUTES AND REFERENCES NAMES DECLARED BY DECLARE STATEMENT. addrel builtin function internal dcl 20 ref 39 47 47 62 70 70 76 area_pointer 16(18) based bit(18) level 2 packed unaligned dcl 3-1 ref 37 39 block_pt parameter pointer dcl 51 ref 49 58 bp 000102 automatic pointer dcl 20 set ref 39 40 42 bp 000102 automatic pointer dcl 51 set ref 58 60 62 62 66 68 70 70 70 70 74 76 76 76 brother 1(18) based bit(18) level 2 packed unaligned dcl 2-33 ref 74 76 hp 000100 automatic pointer dcl 20 set ref 29 31 31 37 39 39 47 47 identifier 1 based char(8) level 2 dcl 3-1 ref 31 identifier 1 based char(8) level 2 dcl 4-1 ref 40 length builtin function internal dcl 20 ref 64 n 000104 automatic fixed bin(17,0) dcl 51 set ref 63 64 66 name 1 based bit(18) level 2 packed unaligned dcl 2-33 ref 60 62 name parameter char dcl 17 ref 15 64 66 null builtin function internal dcl 20 ref 37 40 45 71 80 p 000100 automatic pointer dcl 51 set ref 62 63 66 70 71 71 pt parameter pointer dcl 17 ref 15 29 root 000104 automatic bit(18) dcl 20 set ref 31 42 45 47 47 root 5 based bit(18) level 2 packed unaligned dcl 4-1 ref 42 root 10 based bit(18) level 2 packed unaligned dcl 1-1 ref 31 size based bit(9) level 2 packed unaligned dcl 54 ref 63 son 2(18) based bit(18) level 2 packed unaligned dcl 2-33 ref 68 70 70 string 0(09) based char level 2 packed unaligned dcl 54 ref 66 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. acc based structure level 1 packed dcl 54 address 3 based structure level 2 packed unaligned dcl 2-1 aligned 0(24) based bit(1) level 3 packed unaligned dcl 2-1 backpointer 17 based bit(18) level 2 packed unaligned dcl 3-1 bind_indicator 12(18) based bit(18) level 2 packed unaligned dcl 1-1 bit_offset 6 based fixed bin(35,0) level 2 dcl 2-1 bits 4 based bit(18) level 2 packed unaligned dcl 2-33 bits 0(24) based structure level 2 packed unaligned dcl 2-1 block_size 17(18) based bit(18) level 2 packed unaligned dcl 3-1 bounds 10 based structure array level 2 dcl 2-1 brother 1(18) based bit(18) level 2 packed unaligned dcl 2-1 chain 5 based bit(18) array level 2 packed unaligned dcl 2-33 class 3(18) based bit(4) level 3 packed unaligned dcl 2-1 class_list 7 based bit(18) array level 2 packed unaligned dcl 2-33 code 1 based bit(9) level 3 packed unaligned dcl 1-1 code 3 based bit(9) level 3 packed unaligned dcl 1-1 code 15 based bit(9) level 3 packed unaligned dcl 1-1 comment 14 based structure level 2 packed unaligned dcl 3-1 creation 4 based fixed bin(71,0) level 3 dcl 1-1 dcl_version based fixed bin(17,0) level 2 dcl 3-1 decimal 0(27) based bit(1) level 3 packed unaligned dcl 2-1 extension 10(18) based bit(18) level 2 packed unaligned dcl 1-1 father 2 based bit(18) level 2 packed unaligned dcl 2-1 father 2 based bit(18) level 2 packed unaligned dcl 2-33 first 3 based bit(18) level 3 packed unaligned dcl 2-33 first 6 based bit(18) level 3 packed unaligned dcl 4-1 flags 3 based structure level 2 packed dcl 4-1 flow 3(03) based bit(1) level 3 packed unaligned dcl 4-1 gen_created 4 based fixed bin(71,0) level 2 dcl 3-1 gen_number 3 based fixed bin(17,0) level 2 dcl 3-1 gen_version 12 based structure level 2 packed unaligned dcl 3-1 generator 10 based char(8) level 2 dcl 3-1 greatest_severity 4 based fixed bin(17,0) level 2 dcl 4-1 header 4(18) based bit(18) level 2 packed unaligned dcl 2-33 io 3(04) based bit(1) level 3 packed unaligned dcl 4-1 last 6(18) based bit(18) level 3 packed unaligned dcl 4-1 last 3(18) based bit(18) level 3 packed unaligned dcl 2-33 level 0(12) based bit(6) level 2 packed unaligned dcl 2-1 link_size 13(18) based bit(18) level 2 packed unaligned dcl 1-1 lower based fixed bin(35,0) level 2 dcl 2-28 lower 10 based fixed bin(35,0) array level 3 dcl 2-1 map 6 based structure level 2 packed unaligned dcl 4-1 map 11 based bit(18) level 2 packed unaligned dcl 1-1 map 3(02) based bit(1) level 3 packed unaligned dcl 4-1 map 3 based structure level 2 packed unaligned dcl 2-33 maxi_truncate 23 based bit(18) level 2 packed unaligned dcl 3-1 mini_truncate 22(18) based bit(18) level 2 packed unaligned dcl 3-1 multiplier 2 based fixed bin(35,0) level 2 dcl 2-28 multiplier 12 based fixed bin(35,0) array level 3 dcl 2-1 n_files 11(18) based bit(18) level 2 packed unaligned dcl 1-1 name 1 based bit(18) level 2 packed unaligned dcl 2-1 ndims 0(18) based bit(6) level 2 packed unaligned dcl 2-1 next 3(22) based bit(14) level 3 packed unaligned dcl 2-1 next_block 20 based bit(18) level 2 packed unaligned dcl 3-1 next_header 12 based bit(18) level 2 packed unaligned dcl 1-1 number 0(12) based bit(6) level 2 packed unaligned dcl 2-33 object_created 6 based fixed bin(71,0) level 2 dcl 3-1 offset 2 based fixed bin(35,0) level 3 dcl 1-1 offset 7 based bit(18) level 3 packed unaligned dcl 4-1 offset 13 based bit(18) level 3 packed unaligned dcl 3-1 offset based fixed bin(35,0) level 3 dcl 1-1 offset 14 based bit(18) level 3 packed unaligned dcl 3-1 offset 12 based bit(18) level 3 packed unaligned dcl 3-1 offset 3 based bit(18) level 3 packed unaligned dcl 2-1 offset 14 based fixed bin(35,0) level 3 dcl 1-1 packed 0(25) based bit(1) level 3 packed unaligned dcl 2-1 pl1_symbol_block based structure level 1 dcl 4-1 profile 3 based bit(1) level 3 packed unaligned dcl 4-1 profile 5(18) based bit(18) level 2 packed unaligned dcl 4-1 program 14 based structure level 2 dcl 1-1 rel_def 21 based bit(18) level 2 packed unaligned dcl 3-1 rel_link 21(18) based bit(18) level 2 packed unaligned dcl 3-1 rel_symbol 22 based bit(18) level 2 packed unaligned dcl 3-1 rel_text 20(18) based bit(18) level 2 packed unaligned dcl 3-1 scale 0(28) based bit(8) level 2 packed unaligned dcl 2-1 segname 7 based structure level 2 packed unaligned dcl 4-1 simple 0(26) based bit(1) level 3 packed unaligned dcl 2-1 size 14(18) based bit(18) level 3 packed unaligned dcl 3-1 size 15(09) based bit(27) level 3 packed unaligned dcl 1-1 size 7(18) based bit(18) level 3 packed unaligned dcl 4-1 size 12(18) based bit(18) level 3 packed unaligned dcl 3-1 size 4 based fixed bin(35,0) level 2 dcl 2-1 size 1(09) based bit(27) level 3 packed unaligned dcl 1-1 size 13(18) based bit(18) level 3 packed unaligned dcl 3-1 size 3(09) based bit(27) level 3 packed unaligned dcl 1-1 son 2(18) based bit(18) level 2 packed unaligned dcl 2-1 source_map 16 based bit(18) level 2 packed unaligned dcl 3-1 start 0(18) based bit(18) level 2 packed unaligned dcl 2-33 stat_boundary 15(18) based bit(18) level 2 packed unaligned dcl 3-1 std_symbol_header based structure level 1 dcl 3-1 sym_bound based structure level 1 unaligned dcl 2-28 symbol_block based structure level 1 packed dcl 2-33 symbol_header based structure level 1 dcl 1-1 symbol_node based structure level 1 dcl 2-1 table 3(01) based bit(1) level 3 packed unaligned dcl 4-1 table_removed 3(05) based bit(1) level 3 packed unaligned dcl 4-1 text_boundary 15 based bit(18) level 2 packed unaligned dcl 3-1 text_size 13 based bit(18) level 2 packed unaligned dcl 1-1 times 4 based structure level 2 dcl 1-1 translation 6 based fixed bin(71,0) level 3 dcl 1-1 translator based structure level 2 dcl 1-1 type based bit(12) level 2 packed unaligned dcl 2-1 type based bit(12) level 2 packed unaligned dcl 2-33 upper 1 based fixed bin(35,0) level 2 dcl 2-28 upper 11 based fixed bin(35,0) array level 3 dcl 2-1 userid 13 based structure level 2 packed unaligned dcl 3-1 version based fixed bin(17,0) level 2 dcl 4-1 version 2 based structure level 2 dcl 1-1 virtual_org 7 based fixed bin(35,0) level 2 dcl 2-1 word_offset 5 based fixed bin(35,0) level 2 dcl 2-1 NAMES DECLARED BY EXPLICIT CONTEXT. check 000125 constant label dcl 60 ref 60 77 find_block 000011 constant entry external dcl 15 ref 15 search 000114 constant entry internal dcl 49 ref 47 49 70 step 000160 constant label dcl 68 ref 60 64 68 NAME DECLARED BY CONTEXT OR IMPLICATION. fixed builtin function internal ref 63 STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 262 274 226 272 Length 536 226 12 227 33 2 External procedure find_block uses 84 words of automatic storage Internal procedure search uses 80 words of automatic storage THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_int_this call_int_other return set_csa cp_cs_co ext_entry_desc int_entry NO EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. NO EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. ----------------------------------------------------------- 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