COMPILATION LISTING OF SEGMENT gfms_dump_description_tree_ Compiled by: Multics PL/I Compiler, Release 28d, of October 4, 1983 Compiled at: Honeywell Multics Op. - System M Compiled on: 12/10/84 1204.6 mst Mon Options: optimize map 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 4* * * 5* *********************************************************** */ 6 gfms_dump_description_tree_: proc; 7 8 /* Dump description tree. 9* 10* Author: Dave Ward 10/23/80 11**/ 12 call ioa_ ("^|DUMP OF cat/desc:"); 13 14 /* Dump cat. */ 15 call ioa_ ("^16xprntsc chldlk chldcs name"); 16 do i = 1 to n_cat; 17 call ioa_ ( 18 "^6i. ^[catalog^;^3xfile^]^3( ^6i^) ^a" 19 , i 20 , cat (i).is_cat 21 , cat (i).parent_sector 22 , cat (i).child_link 23 , cat (i).child_sector 24 , cat (i).ascii_name 25 ); 26 end; 27 28 /* DUMP description. */ 29 call ioa_ ("^11xlink sector maxsiz mode name"); 30 do i = 1 to n_desc; 31 call ioa_$nnl ( 32 "^6i. ^3( ^6i^) ^4b ^a" 33 , i 34 , description (i).link 35 , description (i).sector 36 , description (i).attributes.max_size_llinks 37 , description (i).attributes.mode 38 , gfms_ascii_ ((description (i).name)) 39 ); 40 if description (i).attributes.user_info.present then 41 call ioa_$nnl (" ^12.3b", "0"b||attributes (i).value); 42 call ioa_$nnl ("^/"); 43 end; 44 45 /* Check hash chains consume all entries. */ 46 string (cu) = "0"b; 47 call tc (cat_child, cu, "1"b); 48 call tc (file_child, cu, "1"b); 49 if ^string (cu) ^= "0"b then do; /* cat entries unaccounted for. */ 50 do i = 1 to hbound (cu, 1); 51 if cu (i) = "0"b then 52 call ioa_ ( 53 "cat^3i NOT USED ^a" 54 , i 55 , cat (i).ascii_name 56 ); 57 end; 58 end; 59 60 string (du) = "0"b; 61 call tc (desc, du, "0"b); 62 if ^string (du) ^= "0"b then do; /* cat entries unaccounted for. */ 63 do i = 1 to hbound (du, 1); 64 if du (i) = "0"b then 65 call ioa_ ( 66 "cat^3i NOT USED ^a" 67 , i 68 , cat (i).ascii_name 69 ); 70 end; 71 end; 72 fail: ; 73 return; 74 tc: proc (l, u, c); 75 76 /* Trace chains from start list "l", marking "u" for 77* all entries found. "c" is "1"b of this is for cat, versus 78* for description. 79**/ 80 dcl c bit(1) parm; 81 dcl l (0:1020)fixed bin(18)unsigned parm; 82 dcl u (*)bit(1)unal parm; 83 do i = 0 to 1020; 84 if l (i)>0 then do; 85 k = l (i); 86 do while (k>0); 87 if k>hbound (u, 1) then do; 88 call com_err_ ( 89 0 90 , "gfms_dump_description_tree_" 91 , "BUG: link ^i > number entries ^[cat^;desc^] ^i" 92 , k 93 , c 94 , hbound (u, 1) 95 ); 96 goto fail; 97 end; 98 u (k) = "1"b; /* Mark used. */ 99 if c then k = cat (k).child_link; 100 else k = description (k).link; 101 end; 102 end; 103 end; 104 return; 105 106 dcl i fixed bin; 107 dcl k fixed bin; 108 end tc; 109 110 /* Variables for gfms_dump_description_tree_: */ 111 /* IDENTIFIER ATTRIBUTES */ 112 dcl com_err_ entry() options(variable); 113 dcl cu (n_cat)bit(1)unal based(addr(u)); 114 dcl du (n_desc)bit(1)unal based(addr(u)); 115 dcl gfms_ascii_ entry (bit(*)) returns(char(*)); 116 dcl i fixed bin; 117 dcl ioa_ entry() options(variable); 118 dcl ioa_$nnl entry() options(variable); 119 dcl u bit(36000)aligned; 120 1 1 /* BEGIN INCLUDE FILE gfms_description_tree.incl.pl1 (Wardd Multics) 10/28/80 1222.2 mst Tue */ 1 2 dcl 1 description_tree aligned based(dtp) 1 3 1 4 , 3 start_list 1 5 , 4 cat_child (0:1020)fixed bin(18)unsigned 1 6 , 4 file_child (0:1020)fixed bin(18)unsigned 1 7 , 4 desc (0:1020)fixed bin(18)unsigned 1 8 1 9 , 3 n_cat fixed bin 1 10 , 3 cat (20000) 1 11 , 4 name bit(72) 1 12 , 4 ascii_name char(12)var 1 13 , 4 is_cat bit(1)unal 1 14 , 4 fill bit(17)unal 1 15 , 4 parent_sector fixed bin(18)unsigned unal 1 16 , 4 child_sector fixed bin(18)unsigned unal 1 17 , 4 child_link fixed bin(18)unsigned unal 1 18 1 19 , 3 n_desc fixed bin 1 20 , 3 description (19000) 1 21 , 4 link fixed bin(18)unsigned unal 1 22 , 4 sector fixed bin(18)unsigned unal 1 23 , 4 name bit(72) 1 24 , 4 attributes 1 25 , 5 max_size_llinks fixed bin(18)unsigned unal 1 26 , 5 mode bit(4)unal /* 1000 seq 0100 random 0010 ascii 0001 ids */ 1 27 , 5 not_in_use bit(14)unal 1 28 , 5 user_info 1 29 , 6 present bit(1)unal 1 30 , 6 value bit(35)unal 1 31 ; 1 32 1 33 /* END INCLUDE FILE gfms_description_tree.incl.pl1 */ 121 2 1 /* BEGIN INCLUDE FILE gfms_ext.incl.pl1 (Wardd Multics) 10/07/80 2142.2 mst Tue */ 2 2 /* Modified by: S. C. Akers 02/08/82 Add gfms_ext$working_dir, 2 3* mapping_rule, 2 4* umc_name 2 5* Modified Ron Barstad 83-06-03 attach_desc from 40 to 80 char 2 6**/ 2 7 2 8 dcl 1 gfms_ext$print_routines aligned ext 2 9 , 3 ioa entry variable options(variable) 2 10 , 3 ioa_nnl entry variable options(variable) 2 11 ; 2 12 2 13 dcl 1 gfms_ext$temp_segs aligned ext 2 14 , 3 dtp ptr 2 15 , 3 nlp ptr 2 16 , 3 inp ptr 2 17 ; 2 18 2 19 dcl 1 gfms_ext$tape_file aligned ext 2 20 , 3 cbp ptr 2 21 , 3 attach_description char(80)unal 2 22 , 3 density 2 23 , 4 ftd fixed bin /* First tape density to attempt. */ 2 24 , 4 ltd fixed bin /* Last tape density to attempt. */ 2 25 , 3 tape_reel_information 2 26 , 4 reel_serial_num char(6) 2 27 , 4 file_serial_num char(6) 2 28 , 4 reel_sequence_num char(6) 2 29 ; 2 30 2 31 dcl 1 gfms_ext$options aligned ext 2 32 , 3 close bit(1)unal /* perform iox close. */ 2 33 , 3 detach bit(1)unal /* perform iox detach. */ 2 34 , 3 dump bit(1)unal /* dump tape records/information. */ 2 35 , 3 gf bit(1)unal /* provide gtss file attributes. */ 2 36 , 3 prfn bit(1)unal /* print file names. */ 2 37 , 3 scan_ss bit(1)unal /* scan substructure, display, quit. */ 2 38 , 3 tll bit(1)unal /* print totals of llinks. */ 2 39 , 3 unload bit(1)unal /* unload files. */ 2 40 , 3 NOT_IN_USE bit(28)unal 2 41 ; 2 42 2 43 dcl gfms_ext$working_dir char (168) var ext static; /* Where to restore the files. 2 44* It may be the user's working 2 45* directory, or the UMC or SMC directory. */ 2 46 2 47 dcl gfms_ext$mapping_rule char(3) external static; 2 48 2 49 dcl gfms_ext$umc_name char(12) external static; 2 50 2 51 /* END INCLUDE FILE gfms_ext.incl.pl1 */ 122 123 end; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 12/10/84 1041.8 gfms_dump_description_tree_.pl1 >spec>on>7105>gfms_dump_description_tree_.pl1 121 1 03/27/82 0424.8 gfms_description_tree.incl.pl1 >ldd>include>gfms_description_tree.incl.pl1 122 2 10/24/83 1642.4 gfms_ext.incl.pl1 >ldd>include>gfms_ext.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. ascii_name 5772 based varying char(12) array level 3 dcl 1-2 set ref 17* 51* 64* attributes 476374 based structure array level 3 dcl 1-2 c parameter bit(1) unaligned dcl 80 set ref 74 88* 99 cat 5770 based structure array level 2 dcl 1-2 cat_child based fixed bin(18,0) array level 3 unsigned dcl 1-2 set ref 47* child_link 5777(18) based fixed bin(18,0) array level 3 packed unsigned unaligned dcl 1-2 set ref 17* 99 child_sector 5777 based fixed bin(18,0) array level 3 packed unsigned unaligned dcl 1-2 set ref 17* com_err_ 000010 constant entry external dcl 112 ref 88 cu based bit(1) array unaligned dcl 113 set ref 46* 47* 48* 49 50 51 desc 3772 based fixed bin(18,0) array level 3 unsigned dcl 1-2 set ref 61* description 476371 based structure array level 2 dcl 1-2 description_tree based structure level 1 dcl 1-2 dtp 000020 external static pointer level 2 dcl 2-13 ref 16 17 17 17 17 17 30 31 31 31 31 31 40 40 46 47 47 48 48 49 50 51 60 61 61 62 63 64 99 100 du based bit(1) array unaligned dcl 114 set ref 60* 61* 62 63 64 file_child 1775 based fixed bin(18,0) array level 3 unsigned dcl 1-2 set ref 48* gfms_ascii_ 000012 constant entry external dcl 115 ref 31 gfms_ext$temp_segs 000020 external static structure level 1 dcl 2-13 i 002064 automatic fixed bin(17,0) dcl 106 in procedure "tc" set ref 83* 84 85* i 000100 automatic fixed bin(17,0) dcl 116 in procedure "gfms_dump_description_tree_" set ref 16* 17* 17 17 17 17 17* 30* 31* 31 31 31 31 31 40 40* 50* 51 51* 51* 63* 64 64* 64* ioa_ 000014 constant entry external dcl 117 ref 12 15 17 29 51 64 ioa_$nnl 000016 constant entry external dcl 118 ref 31 40 42 is_cat 5776 based bit(1) array level 3 packed unaligned dcl 1-2 set ref 17* k 002065 automatic fixed bin(17,0) dcl 107 set ref 85* 86 87 88* 98 99* 99 100* 100 l parameter fixed bin(18,0) array unsigned dcl 81 ref 74 84 85 link 476371 based fixed bin(18,0) array level 3 packed unsigned unaligned dcl 1-2 set ref 31* 100 max_size_llinks 476374 based fixed bin(18,0) array level 4 packed unsigned unaligned dcl 1-2 set ref 31* mode 476374(18) based bit(4) array level 4 packed unaligned dcl 1-2 set ref 31* n_cat 5767 based fixed bin(17,0) level 2 dcl 1-2 ref 16 46 47 48 49 50 n_desc 476370 based fixed bin(17,0) level 2 dcl 1-2 ref 30 60 61 62 63 name 476372 based bit(72) array level 3 dcl 1-2 ref 31 parent_sector 5776(18) based fixed bin(18,0) array level 3 packed unsigned unaligned dcl 1-2 set ref 17* present 476375 based bit(1) array level 5 packed unaligned dcl 1-2 ref 40 sector 476371(18) based fixed bin(18,0) array level 3 packed unsigned unaligned dcl 1-2 set ref 31* start_list based structure level 2 dcl 1-2 u 000101 automatic bit(36000) dcl 119 in procedure "gfms_dump_description_tree_" set ref 46 47 48 49 50 51 60 61 62 63 64 u parameter bit(1) array unaligned dcl 82 in procedure "tc" set ref 74 87 88 88 98* user_info 476375 based structure array level 4 dcl 1-2 value 476375(01) based bit(35) array level 5 packed unaligned dcl 1-2 ref 40 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. gfms_ext$mapping_rule external static char(3) unaligned dcl 2-47 gfms_ext$options external static structure level 1 dcl 2-31 gfms_ext$print_routines external static structure level 1 dcl 2-8 gfms_ext$tape_file external static structure level 1 dcl 2-19 gfms_ext$umc_name external static char(12) unaligned dcl 2-49 gfms_ext$working_dir external static varying char(168) dcl 2-43 NAMES DECLARED BY EXPLICIT CONTEXT. fail 000770 constant label dcl 72 ref 96 gfms_dump_description_tree_ 000140 constant entry external dcl 6 tc 000772 constant entry internal dcl 74 ref 47 48 61 NAMES DECLARED BY CONTEXT OR IMPLICATION. addr builtin function ref 46 47 48 49 50 51 60 61 62 63 64 hbound builtin function ref 50 63 87 88 88 string builtin function set ref 46 49 60* 62 STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 1220 1242 1132 1230 Length 1466 1132 22 210 66 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME gfms_dump_description_tree_ 1190 external procedure is an external procedure. tc internal procedure shares stack frame of external procedure gfms_dump_description_tree_. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME gfms_dump_description_tree_ 000100 i gfms_dump_description_tree_ 000101 u gfms_dump_description_tree_ 002064 i tc 002065 k tc THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_out_desc return shorten_stack ext_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. com_err_ gfms_ascii_ ioa_ ioa_$nnl THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. gfms_ext$temp_segs LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 6 000137 12 000145 15 000160 16 000174 17 000207 26 000257 29 000261 30 000275 31 000311 40 000412 42 000446 43 000461 46 000463 47 000472 48 000524 49 000561 50 000571 51 000601 57 000640 60 000642 61 000652 62 000705 63 000716 64 000727 70 000766 72 000770 73 000771 74 000772 83 000776 84 001003 85 001006 86 001007 87 001012 88 001016 96 001063 98 001064 99 001077 100 001115 101 001126 103 001127 104 001131 ----------------------------------------------------------- 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