COMPILATION LISTING OF SEGMENT vfile_status Compiled by: Multics PL/I Compiler, Release 27d, of October 11, 1982 Compiled at: Honeywell LISD Phoenix, System M Compiled on: 11/04/82 1739.3 mst Thu 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 /* This routine prints information about storage system 12* files given a pathname (star convention permitted). 13* Info provided includes the file's apparent type 14* and various statistics */ 15 16 vfs: 17 vfile_status: 18 proc (pathname_arg); 19 command_entry = "1"b; 20 report = ioa_; /* differs for subroutine entry */ 21 e_ptr = null; /* won't free unless non-null */ 22 call cu_$arg_count (n_args); /* args with which command was invoked */ 23 if n_args <= 0 24 then code = error_table_$noarg; 25 else if n_args > 1 26 then code = error_table_$too_many_args; 27 else code = 0; 28 call check_code; /* aborts on error */ 29 call get_star_names; /* interprets pathname_arg */ 30 status_loop: 31 info.info_version = vfs_version_1; 32 33 do i = 1 to e_count; /* check each entry matching star_name */ 34 if is_real_file () /* don't consider directories */ 35 then if info.type = 1 /* unstructured */ 36 then call proc_uns_file; 37 else if info.type = 2 /* sequential */ 38 then call proc_seq_file; 39 else if info.type = 3 /* blocked */ 40 then call proc_blk_file; 41 else if info.type = 4 /* indexed */ 42 then call proc_indx_file; /* must be indexed */ 43 end; 44 45 if command_entry & ^file_found /* only directories or empty files found */ 46 then call com_err_ (0, "vfile_status", "No file found for given pathname."); 47 else do; 48 cleanup: 49 if ^command_entry /* set return code */ 50 then code_arg = code; 51 end; 52 if e_ptr ^= null 53 then free entries, names in (a); 54 return; /* end of main file status routine */ 55 56 print_: 57 entry (iocb_ptr, file_base_ptr, report_arg, code_arg); 58 report = report_arg; /* set by io_call */ 59 command_entry = "0"b; 60 e_count = 1; /* one file only */ 61 is_star_name = "0"b; 62 e_ptr = null; /* prevents attempt to cleanup */ 63 go to status_loop; /* print status of file */ 64 65 get_star_names: 66 proc; /* expands argument in star convention */ 67 file_found = "0"b; /* will be set if non-null, non-dir seg is found */ 68 call expand_path_ (addr (pathname_arg), length (pathname_arg), addr (d_name), addr (e_name), code); 69 /* gets full path and ent names */ 70 call check_code; /* aborts on non-zero error code */ 71 if index (e_name, "*") = 0 /* not a star name */ 72 then do; 73 e_count = 1; /* only one entry to consider */ 74 is_star_name = "0"b; /* suppresses printout of pathname */ 75 return; 76 end; 77 else is_star_name = "1"b; 78 area_ptr = get_system_free_area_ (); /* temp space for star_name info */ 79 call hcs_$star_ (d_name, e_name, 3 /* all types of entries */, area_ptr, e_count, e_ptr, n_ptr, code); 80 /* finds matching entries */ 81 call check_code; 82 d_len = length (d_name) + 1 - verify (reverse (d_name), " "); 83 /* directory 84* pathname length */ 85 tot_names = 0; /* will be set in following loop */ 86 87 do i = 1 to e_count; /* get total extent of names structure allocated */ 88 tot_names = tot_names + fixed (n_names (i)); 89 end; 90 91 end get_star_names; 92 93 check_code: 94 proc; /* aborts if nonzero error code detected */ 95 if code = 0 96 then return; 97 if command_entry /* first print message */ 98 then call com_err_ (code, "vfile_status"); /* prints error info */ 99 go to cleanup; /* frees allocated system storage and closes msf */ 100 end check_code; 101 102 is_real_file: 103 proc returns (bit (1) aligned); /* non-dir seg */ 104 if is_star_name /* get an entry name */ 105 then e_name = n_ptr -> names (fixed (e_ptr -> entries.n_index (i))); 106 /* the i'th entry name */ 107 if command_entry 108 then call vfile_status_ (d_name, e_name, addr (info), code); 109 /* gets file info */ 110 else call vfile_status_$seg (iocb_ptr, file_base_ptr, addr (info), code); 111 if (code = error_table_$dirseg) | (code = error_table_$noentry) 112 then if command_entry 113 then return ("0"b); /* ignore directories and non-existing entries */ 114 call check_code; 115 if is_star_name /* print pathname */ 116 then call report ("^a", substr (d_name, 1, d_len) || ">" || e_name); 117 file_found = "1"b; 118 return ("1"b); /* indicates real data file found for i'th entry */ 119 end is_real_file; 120 121 proc_uns_file: 122 proc; /* prints info about unstructured files */ 123 call report ("type: unstructured 124 bytes: ^d", uns_info.end_pos); 125 if uns_info.header_present /* header is optional */ 126 then call report ("header: ^d", uns_info.header_id); 127 end proc_uns_file; 128 129 proc_seq_file: 130 proc; /* prints info about sequential files */ 131 call report ("type: sequential"); 132 call print_common_info; 133 if seq_info.version < 12 134 then call report ("version: old (no record count)"); 135 else if seq_info.version < current_seq_version 136 then call report ("version: old (pre-MR6.0)"); 137 call report_action (seq_info.action); 138 end proc_seq_file; 139 140 proc_blk_file: 141 proc; /* prints info about blocked files */ 142 call report ("type: blocked"); 143 call print_common_info; 144 if blk_info.version < current_blk_version 145 then call report ("version: old (pre-MR6.0)"); 146 else do; /* version supports time_stamp */ 147 call date_time_ (blk_info.time_last_modified, date_time); 148 call report ("last changed: ^a", date_time); 149 end; 150 call report_action (blk_info.action); 151 call report ("max recl: ^d bytes", blk_info.max_rec_len); 152 end proc_blk_file; 153 154 report_action: 155 proc (action_code); /* routine deciphers action codes for updates in progress */ 156 if (action_code < -14) | (action_code > 3) /* unknown code */ 157 then call report ("action: unknown operation in progress"); 158 else if action_code ^= 0 /* operation in progress */ 159 then call report ("action: ^a in progress", operation (-1 * (action_code))); 160 dcl operation (-3:14) char (24) var static options (constant) 161 init ("checkpoint", "non-checkpoint opening", "truncate", "", "write_record", 162 "rewrite_record", "delete_record", "add_key", "delete_key", "record_status(create)", 163 "exclusive opening", "reassign_key", "write_record (truncate)", 164 "delete_record (non-eof)", "unshared opening", "adjust_record", 165 "adjust_record (rollback)", "recovery"); 166 dcl action_code fixed; 167 end report_action; 168 169 print_common_info: 170 proc; /* if file is locked, info is printed out; also record count */ 171 if ^((info.type = 2 /* sequential */) & (seq_info.version < 12)) 172 then call report ("records: ^d", info.records); /* end pos in same loc for all struc files */ 173 if info.lock_status ^= "00"b /* file is locked */ 174 then if info.lock_status = "01"b /* busy in another process */ 175 then call report ("state: locked by another process"); 176 else if info.lock_status = "10"b 177 then call report ("state: locked by this process"); 178 else call report ("state: locked by dead process"); 179 end print_common_info; 180 181 proc_indx_file: 182 proc; /* prints info about indexed files */ 183 call report ("type: indexed"); 184 call print_common_info; /* record count and lock status */ 185 if (indx_info.program_version < 33) 186 then if ((indx_info.program_version = 21) | ((indx_info.program_version < 21) & (indx_info.file_version = 20))) 187 then call report 188 ( 189 "version: Warning--total record length statistic is bad 190 because of vfile_ bug. Use the vfile_adjust command to 191 correct the problem." 192 ); /* opening the file for modification also will 193* automatically adjust the bad statistic */ 194 else call report ("version: old version--does not support even-word aligned records."); 195 call report_action (indx_info.action); /* prints if file inconsistent */ 196 if (indx_info.non_null_recs ^= indx_info.records) 197 & ((indx_info.program_version >= 23) | (indx_info.file_version = 10)) 198 then call report ("alloc recs: ^d", indx_info.non_null_recs); 199 if (indx_info.records ^= 0) | (indx_info.record_bytes ^= 0) 200 then call report ("record bytes: ^d", indx_info.record_bytes); 201 if (indx_info.records ^= 0) | (indx_info.free_blocks ^= 0) 202 then call report ("free blocks: ^d", indx_info.free_blocks); 203 if (indx_info.num_keys ^= 0) | (indx_info.nodes ^= 0) | (indx_info.index_height ^= 0) | (indx_info.key_bytes ^= 0) 204 then call report ("index height: ^d 205 nodes: ^d 206 key bytes: ^d", indx_info.index_height, indx_info.nodes, 207 indx_info.key_bytes); 208 if indx_info.num_keys ^= indx_info.records 209 then call report ("keys: ^d", indx_info.num_keys); 210 if indx_info.dup_keys ^= 0 211 then call report ("dup keys: ^d 212 dup key bytes: ^d", indx_info.dup_keys, indx_info.dup_key_bytes); 213 end proc_indx_file; 214 215 /* declarations for entire program */ 216 dcl code_arg fixed (35); 217 dcl is_star_name bit (1) aligned; 218 dcl command_entry bit (1) aligned; 219 dcl file_base_ptr ptr; 220 dcl iocb_ptr ptr; 221 dcl vfile_status_ entry (char (*) aligned, char (*) aligned, ptr, fixed (35)); 222 dcl vfile_status_$seg entry (ptr, ptr, ptr, fixed (35)); 223 dcl a area based (area_ptr); 224 dcl cu_$arg_count entry (fixed); 225 dcl n_args fixed; 226 dcl (error_table_$noarg, error_table_$noentry, error_table_$too_many_args) 227 external fixed (35); 228 dcl pathname_arg char (*); 229 dcl (i, e_count) fixed; 230 dcl report entry variable options (variable); 231 dcl (ioa_, report_arg) entry options (variable); 232 dcl code fixed (35); 233 dcl (null, index, fixed) builtin; 234 dcl file_found bit (1) aligned; 235 dcl (e_ptr, n_ptr) ptr; 236 dcl expand_path_ entry (ptr, fixed, ptr, ptr, fixed (35)); 237 dcl (addr, length) builtin; 238 dcl d_name char (168) aligned; 239 dcl e_name char (32) aligned; 240 dcl area_ptr ptr; 241 dcl get_system_free_area_ entry returns (ptr); 242 dcl hcs_$star_ entry (char (*) aligned, char (*) aligned, fixed (2), ptr, fixed, ptr, ptr, 243 fixed (35)); 244 dcl d_len fixed; 245 dcl (verify, reverse) builtin; 246 dcl com_err_ entry options (variable); 247 dcl names (tot_names) char (32) aligned based (n_ptr); 248 dcl tot_names fixed; 249 dcl 1 entries (e_count) aligned based (e_ptr), 250 ( 2 type bit (2), 251 2 n_names bit (16), 252 2 n_index bit (18) 253 ) unal; 254 dcl error_table_$dirseg external fixed (35); 255 dcl substr builtin; 256 dcl current_indx_version static options (constant) internal fixed init (40); 257 dcl current_blk_version static options (constant) internal fixed init (1); 258 dcl current_seq_version static options (constant) internal fixed init (13); 259 dcl abs builtin; 260 dcl truncating fixed static options (constant) internal init (1); 261 dcl 1 info like indx_info; 262 dcl date_time_ entry (fixed (71), char (*)); 263 dcl date_time char (24); 1 1 dcl 1 uns_info based (addr (info)), /* info structure for unstructured files */ 1 2 2 info_version fixed, /* (Input) must =1--only one version 1 3* currently supported */ 1 4 2 type fixed, /* =1 */ 1 5 2 end_pos fixed (34), /* length (bytes) not including header */ 1 6 2 flags aligned, 1 7 3 pad1 bit (2) unal, /* used for lock_status in other files */ 1 8 3 header_present bit (1) unal, /* on if file code is set */ 1 9 3 pad2 bit (33) unal, 1 10 2 header_id fixed (35); /* meaning is user defined */ 1 11 dcl 1 seq_info based (addr (info)), /* info structure for sequential files */ 1 12 2 info_version fixed, 1 13 2 type fixed, /* =2 */ 1 14 2 end_pos fixed (34), /* record count */ 1 15 2 flags aligned, 1 16 3 lock_status bit (2) unal, /* 0,1,2, or 3 to indicate not locked, 1 17* locked by (other,this,dead) process */ 1 18 3 pad bit (34) unal, 1 19 2 version fixed, /* end_pos valid only in latest version */ 1 20 2 action fixed; /* indicates if adjustment or rollback is needed */ 1 21 dcl 1 blk_info based (addr (info)), /* info structure for blocked files */ 1 22 2 info_version fixed, 1 23 2 type fixed, /* =3 */ 1 24 2 end_pos fixed (34), /* record count */ 1 25 2 flags aligned, 1 26 3 lock_status bit (2) unal, /* same as seq_info.= */ 1 27 3 pad bit (34) unal, 1 28 2 version fixed, /* only one currently supported */ 1 29 2 action fixed, /* non-zero if truncation in progress, else =0 */ 1 30 2 max_rec_len fixed (21), /* bytes--determines characteristiWc block size */ 1 31 2 pad fixed, /* not used at this time */ 1 32 2 time_last_modified fixed (71); /* time stamp for synchronization */ 1 33 dcl 1 indx_info based (addr (info)), /* info structure for indexed files */ 1 34 2 info_version fixed, 1 35 2 type fixed, /* =4 */ 1 36 2 records fixed (34), /* record count */ 1 37 2 flags aligned, 1 38 3 lock_status bit (2) unal, /* same as seq_info.= */ 1 39 3 pad bit (34) unal, 1 40 2 version_info aligned, 1 41 3 file_version fixed (17) unal, /* headers differ */ 1 42 3 program_version fixed (17) unal, /* may indicate bugs */ 1 43 2 action fixed, /* non-zero code indicates update in progress */ 1 44 2 non_null_recs fixed (34), /* count of allocated recs */ 1 45 2 record_bytes fixed (34), /* total record length */ 1 46 2 free_blocks fixed, /* available record blocks */ 1 47 2 index_height fixed, /* height of index tree (0 if empty) */ 1 48 2 nodes fixed, /* nodes being used in the index */ 1 49 2 key_bytes fixed (34), /* total length of keys */ 1 50 2 change_count fixed (35), /* bumped on each file modification */ 1 51 2 num_keys fixed (34), /* number of index entries */ 1 52 2 dup_keys fixed (34), /* 0 if all keys are distinct, else 1 for each dup */ 1 53 2 dup_key_bytes fixed (34), /* total bytes of duplicate keys */ 1 54 2 word (1) fixed; /* reserved for future use */ 1 55 dcl 1 vbl_info based (addr (info)), /* info structure for variable files */ 1 56 2 info_version fixed, 1 57 2 type fixed, /* =5 */ 1 58 2 end_pos fixed (34), /* logical end of file--not necessarily allocation count */ 1 59 2 flags aligned, 1 60 3 lock_status bit (2) unal, /* same as seq_info.= */ 1 61 3 pad bit (34) unal, 1 62 2 version fixed, /* only one currently supported */ 1 63 2 action fixed, /* same as in indexed files */ 1 64 2 first_nz fixed (34), /* position (numeric key) for first allocated record */ 1 65 2 last_nz fixed (34), /* last allocated record position */ 1 66 2 change_count fixed (35); /* used for synchronization */ 1 67 dcl vfs_version_1 static internal fixed init (1); 1 68 /* should be used in 1 69* assignments to info_version */ 264 265 266 end vfile_status; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 11/04/82 1621.3 vfile_status.pl1 >dumps>old>recomp>vfile_status.pl1 264 1 07/19/79 1547.0 vfs_info.incl.pl1 >ldd>include>vfs_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. a based area(1024) dcl 223 ref 52 action 5 based fixed bin(17,0) level 2 in structure "seq_info" dcl 1-11 in procedure "vfile_status" set ref 137* action 5 based fixed bin(17,0) level 2 in structure "blk_info" dcl 1-21 in procedure "vfile_status" set ref 150* action 5 based fixed bin(17,0) level 2 in structure "indx_info" dcl 1-33 in procedure "vfile_status" set ref 195* action_code parameter fixed bin(17,0) dcl 166 ref 154 156 156 158 158 addr builtin function dcl 237 ref 68 68 68 68 68 68 107 107 110 110 123 125 125 133 135 137 144 147 150 151 171 185 185 185 185 195 196 196 196 196 196 199 199 199 201 201 201 203 203 203 203 203 203 203 208 208 208 210 210 210 area_ptr 000202 automatic pointer dcl 240 set ref 52 78* 79* blk_info based structure level 1 unaligned dcl 1-21 code 000112 automatic fixed bin(35,0) dcl 232 set ref 23* 25* 27* 48 68* 79* 95 97* 107* 110* 111 111 code_arg parameter fixed bin(35,0) dcl 216 set ref 48* 56 com_err_ 000034 constant entry external dcl 246 ref 45 97 command_entry 000101 automatic bit(1) dcl 218 set ref 19* 45 48 59* 97 107 111 cu_$arg_count 000014 constant entry external dcl 224 ref 22 current_blk_version constant fixed bin(17,0) initial dcl 257 ref 144 current_seq_version constant fixed bin(17,0) initial dcl 258 ref 135 d_len 000204 automatic fixed bin(17,0) dcl 244 set ref 82* 115 d_name 000120 automatic char(168) dcl 238 set ref 68 68 79* 82 82 107* 115 date_time 000227 automatic char(24) unaligned dcl 263 set ref 147* 148* date_time_ 000040 constant entry external dcl 262 ref 147 dup_key_bytes 17 based fixed bin(34,0) level 2 dcl 1-33 set ref 210* dup_keys 16 based fixed bin(34,0) level 2 dcl 1-33 set ref 210 210* e_count 000104 automatic fixed bin(17,0) dcl 229 set ref 33 52 60* 73* 79* 87 e_name 000172 automatic char(32) dcl 239 set ref 68 68 71 79* 104* 107* 115 e_ptr 000114 automatic pointer dcl 235 set ref 21* 52 52 62* 79* 88 104 end_pos 2 based fixed bin(34,0) level 2 dcl 1-1 set ref 123* entries based structure array level 1 dcl 249 ref 52 error_table_$dirseg 000036 external static fixed bin(35,0) dcl 254 ref 111 error_table_$noarg 000016 external static fixed bin(35,0) dcl 226 ref 23 error_table_$noentry 000020 external static fixed bin(35,0) dcl 226 ref 111 error_table_$too_many_args 000022 external static fixed bin(35,0) dcl 226 ref 25 expand_path_ 000026 constant entry external dcl 236 ref 68 file_base_ptr parameter pointer dcl 219 set ref 56 110* file_found 000113 automatic bit(1) dcl 234 set ref 45 67* 117* file_version 4 based fixed bin(17,0) level 3 packed unaligned dcl 1-33 ref 185 196 fixed builtin function dcl 233 ref 88 104 flags 3 000206 automatic structure level 2 in structure "info" dcl 261 in procedure "vfile_status" flags 3 based structure level 2 in structure "uns_info" dcl 1-1 in procedure "vfile_status" free_blocks 10 based fixed bin(17,0) level 2 dcl 1-33 set ref 201 201* get_system_free_area_ 000030 constant entry external dcl 241 ref 78 hcs_$star_ 000032 constant entry external dcl 242 ref 79 header_id 4 based fixed bin(35,0) level 2 dcl 1-1 set ref 125* header_present 3(02) based bit(1) level 3 packed unaligned dcl 1-1 ref 125 i 000103 automatic fixed bin(17,0) dcl 229 set ref 33* 87* 88* 104 index builtin function dcl 233 ref 71 index_height 11 based fixed bin(17,0) level 2 dcl 1-33 set ref 203 203* indx_info based structure level 1 unaligned dcl 1-33 info 000206 automatic structure level 1 unaligned dcl 261 set ref 107 107 110 110 123 125 125 133 135 137 144 147 150 151 171 185 185 185 185 195 196 196 196 196 196 199 199 199 201 201 201 203 203 203 203 203 203 203 208 208 208 210 210 210 info_version 000206 automatic fixed bin(17,0) level 2 dcl 261 set ref 30* ioa_ 000024 constant entry external dcl 231 ref 20 iocb_ptr parameter pointer dcl 220 set ref 56 110* is_star_name 000100 automatic bit(1) dcl 217 set ref 61* 74* 77* 104 115 key_bytes 13 based fixed bin(34,0) level 2 dcl 1-33 set ref 203 203* length builtin function dcl 237 ref 68 68 82 lock_status 3 000206 automatic bit(2) level 3 packed unaligned dcl 261 set ref 173 173 176 max_rec_len 6 based fixed bin(21,0) level 2 dcl 1-21 set ref 151* n_args 000102 automatic fixed bin(17,0) dcl 225 set ref 22* 23 25 n_index 0(18) based bit(18) array level 2 packed unaligned dcl 249 ref 104 n_names 0(02) based bit(16) array level 2 packed unaligned dcl 249 ref 88 n_ptr 000116 automatic pointer dcl 235 set ref 52 79* 104 names based char(32) array dcl 247 ref 52 104 nodes 12 based fixed bin(17,0) level 2 dcl 1-33 set ref 203 203* non_null_recs 6 based fixed bin(34,0) level 2 dcl 1-33 set ref 196 196* null builtin function dcl 233 ref 21 52 62 num_keys 15 based fixed bin(34,0) level 2 dcl 1-33 set ref 203 208 208* operation 000000 constant varying char(24) initial array dcl 160 set ref 158* pathname_arg parameter char unaligned dcl 228 set ref 16 16 68 68 68 68 program_version 4(18) based fixed bin(17,0) level 3 packed unaligned dcl 1-33 ref 185 185 185 196 record_bytes 7 based fixed bin(34,0) level 2 dcl 1-33 set ref 199 199* records 2 based fixed bin(34,0) level 2 in structure "indx_info" dcl 1-33 in procedure "vfile_status" ref 196 199 201 208 records 2 000206 automatic fixed bin(34,0) level 2 in structure "info" dcl 261 in procedure "vfile_status" set ref 171* report 000106 automatic entry variable dcl 230 set ref 20* 58* 115 123 125 131 133 135 142 144 148 151 156 158 171 173 176 178 183 185 194 196 199 201 203 208 210 report_arg parameter entry variable dcl 231 ref 56 58 reverse builtin function dcl 245 ref 82 seq_info based structure level 1 unaligned dcl 1-11 substr builtin function dcl 255 ref 115 time_last_modified 10 based fixed bin(71,0) level 2 dcl 1-21 set ref 147* tot_names 000205 automatic fixed bin(17,0) dcl 248 set ref 52 85* 88* 88 type 1 000206 automatic fixed bin(17,0) level 2 dcl 261 set ref 34 37 39 41 171 uns_info based structure level 1 unaligned dcl 1-1 verify builtin function dcl 245 ref 82 version 4 based fixed bin(17,0) level 2 in structure "seq_info" dcl 1-11 in procedure "vfile_status" ref 133 135 171 version 4 based fixed bin(17,0) level 2 in structure "blk_info" dcl 1-21 in procedure "vfile_status" ref 144 version_info 4 based structure level 2 dcl 1-33 vfile_status_ 000010 constant entry external dcl 221 ref 107 vfile_status_$seg 000012 constant entry external dcl 222 ref 110 vfs_version_1 constant fixed bin(17,0) initial dcl 1-67 ref 30 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. abs builtin function dcl 259 current_indx_version internal static fixed bin(17,0) initial dcl 256 truncating internal static fixed bin(17,0) initial dcl 260 vbl_info based structure level 1 unaligned dcl 1-55 NAMES DECLARED BY EXPLICIT CONTEXT. check_code 001155 constant entry internal dcl 93 ref 28 70 81 114 cleanup 000721 constant label dcl 48 ref 99 get_star_names 000770 constant entry internal dcl 65 ref 29 is_real_file 001205 constant entry internal dcl 102 ref 34 print_ 000746 constant entry external dcl 56 print_common_info 001726 constant entry internal dcl 169 ref 132 143 184 proc_blk_file 001522 constant entry internal dcl 140 ref 39 proc_indx_file 002031 constant entry internal dcl 181 ref 41 proc_seq_file 001434 constant entry internal dcl 129 ref 37 proc_uns_file 001367 constant entry internal dcl 121 ref 34 report_action 001653 constant entry internal dcl 154 ref 137 150 195 status_loop 000623 constant label dcl 30 ref 63 vfile_status 000535 constant entry external dcl 16 vfs 000553 constant entry external dcl 16 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 2552 2614 2367 2562 Length 3020 2367 42 167 162 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME vfile_status 544 external procedure is an external procedure. get_star_names internal procedure shares stack frame of external procedure vfile_status. check_code internal procedure shares stack frame of external procedure vfile_status. is_real_file internal procedure shares stack frame of external procedure vfile_status. proc_uns_file internal procedure shares stack frame of external procedure vfile_status. proc_seq_file internal procedure shares stack frame of external procedure vfile_status. proc_blk_file internal procedure shares stack frame of external procedure vfile_status. report_action internal procedure shares stack frame of external procedure vfile_status. print_common_info internal procedure shares stack frame of external procedure vfile_status. proc_indx_file internal procedure shares stack frame of external procedure vfile_status. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME vfile_status 000100 is_star_name vfile_status 000101 command_entry vfile_status 000102 n_args vfile_status 000103 i vfile_status 000104 e_count vfile_status 000106 report vfile_status 000112 code vfile_status 000113 file_found vfile_status 000114 e_ptr vfile_status 000116 n_ptr vfile_status 000120 d_name vfile_status 000172 e_name vfile_status 000202 area_ptr vfile_status 000204 d_len vfile_status 000205 tot_names vfile_status 000206 info vfile_status 000227 date_time vfile_status THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. alloc_cs cat_realloc_cs call_var_desc call_ext_out_desc call_ext_out return mpfx2 shorten_stack ext_entry ext_entry_desc free_based THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. com_err_ cu_$arg_count date_time_ expand_path_ get_system_free_area_ hcs_$star_ ioa_ vfile_status_ vfile_status_$seg THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$dirseg error_table_$noarg error_table_$noentry error_table_$too_many_args LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 16 000532 19 000566 20 000570 21 000574 22 000576 23 000604 25 000612 27 000620 28 000621 29 000622 30 000623 33 000625 34 000634 37 000646 39 000652 41 000656 43 000661 45 000663 48 000721 52 000726 54 000740 56 000741 58 000753 59 000761 60 000762 61 000764 62 000765 63 000767 65 000770 67 000771 68 000772 70 001022 71 001023 73 001034 74 001036 75 001037 77 001040 78 001042 79 001051 81 001116 82 001117 85 001134 87 001135 88 001144 89 001152 91 001154 93 001155 95 001156 97 001161 99 001204 102 001205 104 001207 107 001226 110 001260 111 001300 114 001313 115 001314 117 001361 118 001364 121 001367 123 001370 125 001407 127 001433 129 001434 131 001435 132 001453 133 001454 135 001473 137 001513 138 001521 140 001522 142 001523 143 001541 144 001542 147 001566 148 001603 150 001625 151 001633 152 001652 154 001653 156 001655 158 001676 167 001725 169 001726 171 001727 173 001755 176 001777 178 002015 179 002030 181 002031 183 002032 184 002050 185 002051 194 002102 195 002115 196 002123 199 002164 201 002215 203 002246 208 002307 210 002330 213 002354 ----------------------------------------------------------- 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