COMPILATION LISTING OF SEGMENT list_dir_info Compiled by: Multics PL/I Compiler, Release 27d, of October 11, 1982 Compiled at: Honeywell LISD Phoenix, System M Compiled on: 11/19/82 1105.0 mst Fri Options: optimize map 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 4* * * 5* * Copyright (c) 1972 by Massachusetts Institute of * 6* * Technology and Honeywell Information Systems, Inc. * 7* * * 8* *********************************************************** */ 9 10 11 list_dir_info: 12 proc; 13 14 15 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 16 /* */ 17 /* list_dir_info - list directory info saved by save_dir_info */ 18 /* */ 19 /* Status */ 20 /* 0) Created May, 1973 by T. H. VanVleck */ 21 /* 1) Modified July, 1982 by Jim Lippard to only use 2 dir ring brackets */ 22 /* 2) Modified Oct, 1982 by G. C. Dixon to modernize the code. */ 23 /* */ 24 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 25 26 dcl al fixed bin(21), /* length of arg */ 27 an fixed bin, 28 ap ptr, /* ptr to argument */ 29 bchr char (al) unal based (ap), /* pickup for argument */ 30 bitc fixed bin (24), 31 datstr char (24), 32 ec fixed bin (35), /* error code */ 33 fdir char (168), 34 fent char (32), 35 verbosity fixed bin, 36 xp ptr; 37 38 dcl (addr, index, null, ptr) builtin; 39 40 dcl cleanup condition; 41 42 dcl com_err_ entry options (variable), 43 cu_$arg_ptr entry (fixed bin, ptr, fixed bin(21), fixed bin(35)), 44 date_time_ entry (fixed bin(71), char(*)), 45 expand_pathname_$add_suffix entry (char(*), char(*), char(*), char(*), fixed bin(35)), 46 hcs_$initiate_count entry (char(*), char(*), char(*), fixed bin(24), fixed bin(2), ptr, fixed bin(35)), 47 hcs_$terminate_noname entry (ptr, fixed bin(35)), 48 ioa_ entry options (variable), 49 list_dir_info_ entry (ptr, fixed bin, char(1)); 50 51 dcl (error_table_$bad_arg, 52 error_table_$badopt) fixed bin(35) ext static, 53 prefix char (1) int static options(constant) init(""); 54 55 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 56 57 58 call cu_$arg_ptr (1, ap, al, ec); 59 if ec ^= 0 then do; 60 ER: call com_err_ (ec, "list_dir_info", " 61 Usage: list_dir_info dir_info_path {-control_arg} 62 Args: -long, -lg 63 -brief, -bf"); 64 return; 65 end; 66 67 call expand_pathname_$add_suffix (bchr, "dir_info", fdir, fent, ec); 68 if ec ^= 0 then do; 69 call com_err_ (ec, "list_dir_info", "^a", bchr); 70 return; 71 end; 72 73 verbosity = 1; 74 ec = 0; 75 do an = 2 by 1 while (ec = 0); 76 call cu_$arg_ptr (an, ap, al, ec); 77 if ec = 0 then do; 78 if bchr = "-long" then verbosity = 2; 79 else if bchr = "-lg" then verbosity = 2; 80 else if bchr = "-brief" then verbosity = 0; 81 else if bchr = "-bf" then verbosity = 0; 82 else do; 83 if index(bchr,"-") = 1 then 84 ec = error_table_$badopt; 85 else 86 ec = error_table_$bad_arg; 87 call com_err_ (ec, "list_dir_info", "^a", bchr); 88 return; 89 end; 90 end; 91 end; 92 93 fptr = null; 94 on cleanup call janitor(); 95 96 call hcs_$initiate_count (fdir, fent, "", bitc, 0, fptr, ec); 97 if fptr = null then do; 98 call com_err_ (ec, "list_dir_info", "Access dir_info segment 99 (^a^[>^]^a).", fdir, fdir^=">", fent); 100 return; 101 end; 102 103 call date_time_ (fseg.timeof, datstr); 104 call ioa_ ("^/Listing of ^a as of ^a", fseg.fpath, datstr); 105 xp = addr (fseg.ffirst); 106 107 NXTFILE: call list_dir_info_ (xp, verbosity, prefix); 108 call ioa_ (""); 109 if seg_rec.fnext then do; 110 xp = ptr (xp, seg_rec.fnext); 111 go to NXTFILE; 112 end; 113 114 call janitor(); 115 return; 116 117 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 118 119 120 janitor: proc; 121 122 if fptr ^= null then 123 call hcs_$terminate_noname (fptr, ec); 124 125 end janitor; 126 127 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 128 1 1 /* BEGIN INCLUDE FILE ... saved_dir_info.incl.pl1 */ 1 2 /* Modified 07/10/82 by Jim Lippard to only have 2 dir ring brackets */ 1 3 1 4 dcl 1 fseg based (fptr) aligned, 1 5 2 fpath char (168) unal, 1 6 2 timeof fixed bin (71), 1 7 2 nents fixed bin, 1 8 2 freep fixed bin, 1 9 2 fpad (4) fixed bin, 1 10 2 ffirst fixed bin; 1 11 1 12 dcl fptr ptr; 1 13 1 14 dcl 1 seg_rec based (xp) aligned, 1 15 2 fnext bit (18), 1 16 2 n_names fixed bin, 1 17 2 brstat, 1 18 3 type bit (2) unal, 1 19 3 nnames bit (16) unal, 1 20 3 nrp bit (18) unal, 1 21 3 dtm bit (36) unal, 1 22 3 dtu bit (36) unal, 1 23 3 mode bit (5) unal, 1 24 3 padding bit (13) unal, 1 25 3 records bit (18) unal, 1 26 3 dtd bit (36) unal, 1 27 3 dtem bit (36) unal, 1 28 3 lvid bit (36) unal, 1 29 3 curlen bit (12) unal, 1 30 3 bitcnt bit (24) unal, 1 31 3 pad1 bit (8) unal, 1 32 3 copysw bit (1) unal, 1 33 3 tpd bit (1) unal, 1 34 3 mdir bit (1) unal, 1 35 3 damaged bit (1) unal, 1 36 3 pad2 bit (6) unal, 1 37 3 rbs (0:2) bit (6) unal, 1 38 3 uid bit (36) unal, 1 39 2 bc_author char (32) unal, 1 40 2 author char (32) unal, 1 41 2 max_lth fixed bin (19), 1 42 2 ssw bit (1) unal, 1 43 2 pad0 bit(35) unal, 1 44 2 nacls fixed bin, 1 45 2 acls (dummy refer (seg_rec.nacls)), 1 46 3 access_name char (32), 1 47 3 modes bit (36), 1 48 2 names (dummy refer (seg_rec.n_names)), 1 49 3 name char (32), 1 50 2 end_seg_rec fixed bin; 1 51 1 52 dcl 1 dir_rec based (xp) aligned, 1 53 2 fnext bit (18), 1 54 2 n_names fixed bin, 1 55 2 brstat, 1 56 3 type bit (2) unal, 1 57 3 nnames bit (16) unal, 1 58 3 nrp bit (18) unal, 1 59 3 dtm bit (36) unal, 1 60 3 dtu bit (36) unal, 1 61 3 mode bit (5) unal, 1 62 3 padding bit (13) unal, 1 63 3 records bit (18) unal, 1 64 3 dtd bit (36) unal, 1 65 3 dtem bit (36) unal, 1 66 3 slvid bit (36) unal, 1 67 3 curlen bit (12) unal, 1 68 3 bitcnt bit (24) unal, 1 69 3 pad1 bit (8) unal, 1 70 3 copysw bit (1) unal, 1 71 3 tpd bit (1) unal, 1 72 3 mdir bit (1) unal, /* TRUE if mater dir */ 1 73 3 damaged bit (1) unal, 1 74 3 pad2 bit (6) unal, 1 75 3 rbs (0:1) bit (6) unal, 1 76 3 pad3 bit (6) unal, 1 77 3 uid bit (36) unal, 1 78 2 bc_author char (32) unal, 1 79 2 author char (32) unal, 1 80 2 max_lth fixed bin (19), 1 81 2 ssw bit (1) unal, 1 82 2 pad0 bit(35) unal, 1 83 2 quota fixed bin (18), 1 84 2 nacls fixed bin, 1 85 2 acls (dummy refer (dir_rec.nacls)), 1 86 3 access_name char (32), 1 87 3 modes bit (36), 1 88 2 nisacls fixed bin, 1 89 2 isacls (dummy refer (dir_rec.nisacls)), 1 90 3 access_name char (32), 1 91 3 modes bit (36), 1 92 2 nidacls fixed bin, 1 93 2 idacls (dummy refer (dir_rec.nidacls)), 1 94 3 access_name char (32), 1 95 3 modes bit (36), 1 96 2 ncacls fixed bin, 1 97 2 cacls (dummy refer (dir_rec.ncacls)), 1 98 3 access_name char (32), 1 99 3 modes bit (36), 1 100 2 names (dummy refer (dir_rec.n_names)), 1 101 3 name char (32), 1 102 2 end_dir_rec fixed bin; 1 103 1 104 dcl 1 link_rec based (xp) aligned, 1 105 2 fnext bit (18), 1 106 2 n_names fixed bin, 1 107 2 brstat, 1 108 3 type bit (2) unal, 1 109 3 nnames bit (16) unal, 1 110 3 nrp bit (18) unal, 1 111 3 dtem bit (36) unal, 1 112 3 dtd bit (36) unal, 1 113 3 pnl bit (18) unal, 1 114 3 pnrp bit (18) unal, 1 115 2 target char (168), 1 116 2 names (dummy refer (link_rec.n_names)), 1 117 3 name char (32), 1 118 2 end_link_rec fixed bin; 1 119 1 120 dcl 1 aclval (nacl) based (tp) aligned, 1 121 2 access_name char (32), 1 122 2 modes bit (36); 1 123 1 124 dcl tp ptr; 1 125 1 126 /* END INCLUDE FILE ... saved_dir_info.incl.pl1 */ 129 130 131 end list_dir_info; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 11/19/82 0921.9 list_dir_info.pl1 >spec>on>11/19/82>list_dir_info.pl1 129 1 11/19/82 0921.9 saved_dir_info.incl.pl1 >spec>on>11/19/82>saved_dir_info.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. addr builtin function dcl 38 ref 105 al 000100 automatic fixed bin(21,0) dcl 26 set ref 58* 67 67 69 69 76* 78 79 80 81 83 87 87 an 000101 automatic fixed bin(17,0) dcl 26 set ref 75* 76* ap 000102 automatic pointer dcl 26 set ref 58* 67 69 76* 78 79 80 81 83 87 bchr based char unaligned dcl 26 set ref 67* 69* 78 79 80 81 83 87* bitc 000104 automatic fixed bin(24,0) dcl 26 set ref 96* cleanup 000202 stack reference condition dcl 40 ref 94 com_err_ 000010 constant entry external dcl 42 ref 60 69 87 98 cu_$arg_ptr 000012 constant entry external dcl 42 ref 58 76 date_time_ 000014 constant entry external dcl 42 ref 103 datstr 000105 automatic char(24) unaligned dcl 26 set ref 103* 104* ec 000113 automatic fixed bin(35,0) dcl 26 set ref 58* 59 60* 67* 68 69* 74* 75 76* 77 83* 85* 87* 96* 98* 122* error_table_$bad_arg 000030 external static fixed bin(35,0) dcl 51 ref 85 error_table_$badopt 000032 external static fixed bin(35,0) dcl 51 ref 83 expand_pathname_$add_suffix 000016 constant entry external dcl 42 ref 67 fdir 000114 automatic char(168) unaligned dcl 26 set ref 67* 96* 98* 98 fent 000166 automatic char(32) unaligned dcl 26 set ref 67* 96* 98* ffirst 62 based fixed bin(17,0) level 2 dcl 1-4 set ref 105 fnext based bit(18) level 2 dcl 1-14 ref 109 110 fpath based char(168) level 2 packed unaligned dcl 1-4 set ref 104* fptr 000210 automatic pointer dcl 1-12 set ref 93* 96* 97 103 104 105 122 122* fseg based structure level 1 dcl 1-4 hcs_$initiate_count 000020 constant entry external dcl 42 ref 96 hcs_$terminate_noname 000022 constant entry external dcl 42 ref 122 index builtin function dcl 38 ref 83 ioa_ 000024 constant entry external dcl 42 ref 104 108 list_dir_info_ 000026 constant entry external dcl 42 ref 107 null builtin function dcl 38 ref 93 97 122 prefix 000000 constant char(1) initial unaligned dcl 51 set ref 107* ptr builtin function dcl 38 ref 110 seg_rec based structure level 1 dcl 1-14 timeof 52 based fixed bin(71,0) level 2 dcl 1-4 set ref 103* verbosity 000176 automatic fixed bin(17,0) dcl 26 set ref 73* 78* 79* 80* 81* 107* xp 000200 automatic pointer dcl 26 set ref 105* 107* 109 110* 110 110 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. aclval based structure array level 1 dcl 1-120 dir_rec based structure level 1 dcl 1-52 link_rec based structure level 1 dcl 1-104 tp automatic pointer dcl 1-124 NAMES DECLARED BY EXPLICIT CONTEXT. ER 000136 constant label dcl 60 NXTFILE 000645 constant label dcl 107 set ref 111 janitor 000705 constant entry internal dcl 120 ref 94 114 list_dir_info 000111 constant entry external dcl 11 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 1102 1136 731 1112 Length 1342 731 34 167 150 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME list_dir_info 220 external procedure is an external procedure. on unit on line 94 64 on unit janitor 70 internal procedure is called by several nonquick procedures. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME list_dir_info 000100 al list_dir_info 000101 an list_dir_info 000102 ap list_dir_info 000104 bitc list_dir_info 000105 datstr list_dir_info 000113 ec list_dir_info 000114 fdir list_dir_info 000166 fent list_dir_info 000176 verbosity list_dir_info 000200 xp list_dir_info 000210 fptr list_dir_info THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. r_ne_as call_ext_out_desc call_ext_out call_int_this call_int_other return enable ext_entry int_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. com_err_ cu_$arg_ptr date_time_ expand_pathname_$add_suffix hcs_$initiate_count hcs_$terminate_noname ioa_ list_dir_info_ THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$bad_arg error_table_$badopt LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 11 000110 58 000116 59 000134 60 000136 64 000166 67 000167 68 000225 69 000227 70 000265 73 000266 74 000270 75 000271 76 000275 77 000312 78 000314 79 000325 80 000334 81 000342 83 000350 85 000366 87 000371 88 000426 91 000427 93 000431 94 000433 96 000455 97 000517 98 000523 100 000574 103 000575 104 000613 105 000642 107 000645 108 000660 109 000671 110 000673 111 000676 114 000677 115 000703 120 000704 122 000712 125 000727 ----------------------------------------------------------- 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