COMPILATION LISTING OF SEGMENT hunt Compiled by: Multics PL/I Compiler, Release 27d, of October 11, 1982 Compiled at: Honeywell LCPD Phoenix, System M Compiled on: 03/28/83 1118.0 mst Mon Options: optimize map 1 /* ****************************************************** 2* * * 3* * * 4* * Copyright, (C) Honeywell Information Systems * 5* * Inc., 1980. * 6* * * 7* * * 8* ****************************************************** */ 9 10 hunt: proc; 11 12 /* HUNT - find a segment in a given subtree. */ 13 /* Modified 780905 by PG to terminate archive segments when finished with them. */ 14 /* Fixed to find secondary names and check for no r on an archive, 05/10/79 S. Herbst */ 15 /* Changed to call sweep_disk_$dir_list 05/29/79 S. Herbst */ 16 /* MCR 4264 fixed to complain about top node 01/07/80 S. Herbst */ 17 /* Implement as active function and fix for multiple archive names 05/14/80 S. Herbst */ 18 /* Fixed to work on the root 01/12/81 S. Herbst */ 19 /* Fixed not to stall when a damaged archive is hit, LA Newcomb, 3Nov1982 */ 20 /* Fixed to look at archive contents before the addmanes, LA Newcomb, 16Nov1982 */ 21 22 /* format: style4,indattr,ifthenstmt,ifthen,idind33,^indcomtxt */ 23 1 1 /* BEGIN INCLUDE FILE archive_header.incl.pl1 */ 1 2 1 3 1 4 dcl 1 archive_header aligned based, 1 5 2 header_begin char (8), 1 6 2 pad1 char (4), 1 7 2 name char (32), 1 8 2 timeup char (16), 1 9 2 mode char (4), 1 10 2 time char (16), 1 11 2 pad char (4), 1 12 2 bit_count char (8), 1 13 2 header_end char (8); 1 14 1 15 /* END INCLUDE archive_header.incl.pl1 */ 24 2 1 declare /* Structure returned by hcs_$status_long */ 2 2 2 3 1 branch_status aligned, /* automatic: hcs_$status uses a pointer */ 2 4 2 5 2 type bit(2) unaligned, /* type of entry: link, segment, dir */ 2 6 2 number_names bit(16) unaligned, /* unused by directory_status_ */ 2 7 2 names_rel_pointer bit(18) unaligned, /* unused by directory_status_ */ 2 8 2 date_time_modified bit(36) unaligned, /* date time modified */ 2 9 2 date_time_used bit(36) unaligned, /* date time entry used */ 2 10 2 mode bit(5) unaligned, /* effective access of caller */ 2 11 2 raw_mode bit(5) unaligned, 2 12 2 pad1 bit(8) unaligned, 2 13 2 records bit(18) unaligned, /* number of records in use */ 2 14 2 date_time_dumped bit(36) unaligned, /* date time last dumped */ 2 15 2 date_time_entry_modified bit(36) unaligned, /* date time entry modified */ 2 16 2 lvid bit(36) unaligned, /* logical volume id */ 2 17 2 current_length bit(12) unaligned, /* number of blocks currently allocated */ 2 18 2 bit_count bit(24) unaligned, /* bit count of entry */ 2 19 2 pad3 bit(8) unaligned, 2 20 2 copy_switch bit(1) unaligned, /* the copy switch */ 2 21 2 tpd bit(1) unaligned, /* transparent to paging device */ 2 22 2 mdir bit(1) unaligned, /* master directory switch */ 2 23 2 damaged_switch bit (1) unaligned, /* true if contents damaged */ 2 24 2 synchronized_switch bit (1) unaligned, /* true if a DM synchronized file */ 2 25 2 pad4 bit(5) unaligned, 2 26 2 ring_brackets (0:2) bit(6) unaligned, /* branch ring brackets */ 2 27 2 unique_id bit(36) unaligned, /* entry unique id */ 2 28 2 29 2 30 /* The types of each class of branch */ 2 31 segment_type bit(2) aligned internal static initial ("01"b), 2 32 directory_type bit(2) aligned internal static initial ("10"b), 2 33 msf_type bit(2) aligned internal static initial ("10"b), /* will eventually be different */ 2 34 link_type bit(2) aligned internal static initial ("00"b); 2 35 2 36 25 26 27 /* static */ 28 29 dcl total fixed bin int static; 30 dcl R_ACCESS fixed bin (5) int static options (constant) init (01000b); 31 dcl S_ACCESS fixed bin (5) int static options (constant) init (01000b); 32 33 dcl arg char (arg_len) based (arg_ptr); 34 dcl return_arg char (return_len) varying based (return_ptr); 35 dcl dir_path char (168); 36 dcl starname char (32); 37 38 dcl (af_sw, allsw, archive_sw, firstsw, got_dir, got_starname) bit (1) aligned; 39 40 dcl (arg_ptr, header_ptr, return_ptr, segp) ptr; 41 42 dcl seg_mode fixed bin (5); 43 dcl (arg_count, arg_len, i, j, return_len) fixed bin; 44 dcl code fixed bin (35); 45 46 dcl error_table_$badopt fixed bin (35) ext; 47 dcl error_table_$incorrect_access fixed bin (35) ext; 48 dcl error_table_$no_s_permission fixed bin (35) ext; 49 dcl error_table_$root fixed bin (35) ext; 50 dcl error_table_$seg_busted fixed bin (35) ext; 51 52 dcl complain entry variable options (variable); 53 54 dcl absolute_pathname_ entry (char (*), char (*), fixed bin (35)); 55 dcl (active_fnc_err_, active_fnc_err_$suppress_name) entry options (variable); 56 dcl archive_util_$first_element entry (ptr, fixed bin (35)); 57 dcl archive_util_$next_element entry (ptr, fixed bin (35)); 58 dcl check_star_name_$entry entry (char (*), fixed bin (35)); 59 dcl (com_err_, com_err_$suppress_name) entry options (variable); 60 dcl cu_$af_return_arg entry (fixed bin, ptr, fixed bin, fixed bin (35)); 61 dcl cu_$arg_ptr entry (fixed bin, ptr, fixed bin, fixed bin (35)); 62 dcl get_wdir_ entry returns (char (168)); 63 dcl hcs_$fs_get_mode entry (ptr, fixed bin (5), fixed bin (35)); 64 dcl hcs_$initiate entry (char (*), char (*), char (*), fixed bin (1), fixed bin (2), ptr, fixed bin (35)); 65 dcl hcs_$status_ entry (char (*), char (*), fixed bin (1), ptr, ptr, fixed bin (35)); 66 dcl hcs_$terminate_noname entry (ptr, fixed bin (35)); 67 dcl (ioa_, ioa_$rsnnl) entry options (variable); 68 dcl match_star_name_ entry (char (*), char (*), fixed bin (35)); 69 dcl sweep_disk_$dir_list entry (char (168), entry); 70 71 dcl (addr, fixed, length, null, rtrim, substr) builtin; 72 dcl (seg_fault_error, cleanup) condition; 73 74 call cu_$af_return_arg (arg_count, return_ptr, return_len, code); 75 if code = 0 then do; 76 af_sw = "1"b; 77 complain = active_fnc_err_; 78 return_arg = ""; 79 end; 80 else do; 81 af_sw = "0"b; 82 complain = com_err_; 83 end; 84 85 allsw, firstsw, got_dir, got_starname = "0"b; 86 archive_sw = "1"b; 87 88 do i = 1 to arg_count; 89 90 call cu_$arg_ptr (i, arg_ptr, arg_len, code); 91 92 if substr (arg, 1, 1) ^= "-" then 93 if got_dir then do; 94 USAGE: if af_sw then call active_fnc_err_$suppress_name (0, "hunt", 95 "Usage: [hunt starname {root_of_tree} {-control_arg}]"); 96 else call com_err_$suppress_name (0, "hunt", 97 "Usage: hunt starname {root_of_tree} {-control_args}"); 98 return; 99 end; 100 else if got_starname then do; 101 call absolute_pathname_ (arg, dir_path, code); 102 if code ^= 0 then do; 103 call complain (code, "hunt", "^a", arg); 104 return; 105 end; 106 got_dir = "1"b; 107 end; 108 else do; 109 starname = arg; 110 call check_star_name_$entry (starname, code); 111 if code ^= 0 & code ^= 1 & code ^= 2 then do; 112 call complain (code, "hunt", "^a", starname); 113 return; 114 end; 115 got_starname = "1"b; 116 end; 117 118 /* control arg */ 119 120 else if arg = "-all" | arg = "-a" then allsw = "1"b; 121 else if arg = "-first" | arg = "-ft" then firstsw = "1"b; 122 else if arg = "-archive" | arg = "-ac" then archive_sw = "1"b; 123 else if arg = "-no_archive" | arg = "-nac" then archive_sw = "0"b; 124 else do; 125 call complain (error_table_$badopt, "hunt", "^a", arg); 126 return; 127 end; 128 end; 129 130 if ^got_starname then go to USAGE; 131 else if ^got_dir then dir_path = get_wdir_ (); 132 133 call hcs_$status_ (dir_path, "", 1, addr (branch_status), null, code); 134 if code = error_table_$root then do; 135 code = 0; 136 branch_status.mode = "01000"b; 137 end; 138 if code ^= 0 & code ^= error_table_$no_s_permission & code ^= error_table_$incorrect_access then do; 139 call complain (code, "hunt", "^a", dir_path); 140 return; 141 end; 142 if fixed (branch_status.mode, 5) < S_ACCESS then do; 143 call complain (0, "hunt", "No s permission on ^a", dir_path); 144 return; 145 end; 146 147 total = 0; 148 149 segp = null (); /* for cleaning up */ 150 on cleanup begin; 151 if segp ^= null () then 152 call hcs_$terminate_noname (segp, code); 153 end; 154 155 call sweep_disk_$dir_list (dir_path, counter); 156 157 bust: if ^af_sw then call ioa_ ("Total ^d", total); 158 159 return; 160 161 counter: proc (sdn, sen, lvl, een, bptr, nptr); 162 163 dcl sdn char (168) aligned, /* superior dir name */ 164 sen char (32) aligned, /* dirname */ 165 lvl fixed bin, /* distance from root */ 166 een char (32), /* entry name */ 167 bptr ptr, /* ptr to info structure */ 168 nptr ptr; /* ptr to names structure */ 169 170 dcl xp char (168), 171 ename char (32), 172 (ni, xi) fixed bin; 173 174 dcl 1 branch based (bptr) aligned, /* thing returned by star_long */ 175 2 type bit (2) unal, 176 2 nname bit (16) unal, 177 2 nindex bit (18) unal, 178 2 dtm bit (36) unal, 179 2 dtu bit (36) unal, 180 2 mode bit (5) unal, 181 2 pad bit (13) unal, 182 2 records bit (18) unal; 183 184 dcl names (99 /* arbitrary */) char (32) aligned based (nptr); 185 186 dcl ecc fixed bin (35); 187 188 dcl ( /* constants */ 189 bty char (4) dim (0:3) init ("link", "seg", "dir", "??"), 190 SEG_TYPE fixed bin init (1) 191 ) int static options (constant); 192 193 call ioa_$rsnnl ("^a^[>^]^a", xp, xi, sdn, sdn ^= ">", sen); 194 if ^allsw then 195 if fixed (branch.type) ^= SEG_TYPE then 196 return; 197 ecc = 1; /* so loops will start */ 198 199 if archive_sw then /* we are to check archive components */ 200 if fixed (branch.type) = SEG_TYPE then do; /* archive may only be a segment */ 201 202 on seg_fault_error begin; /* must handle damaged archives */ 203 call complain (error_table_$seg_busted, "hunt", 204 "^a^[>^]^a", xp, xp ^= ">", ename); 205 go to check_storage_sys_name; 206 end; 207 208 do ni = 1 to fixed (branch.nname) while (ecc ^= 0); 209 210 ename = names (fixed (branch.nindex) + ni - 1); 211 212 j = length (rtrim (ename)); 213 if j > 8 then 214 if substr (ename, j - 7, 8) = ".archive" then do; 215 call hcs_$initiate (xp, ename, "", 0b, 0b, segp, ecc); 216 if segp = null then 217 go to check_storage_sys_name; 218 call hcs_$fs_get_mode (segp, seg_mode, ecc); 219 if ecc ^= 0 then 220 go to terminate_archive; 221 if seg_mode < R_ACCESS then 222 go to terminate_archive; 223 header_ptr = segp; 224 call archive_util_$first_element (header_ptr, ecc); 225 do while (ecc = 0); 226 call match_star_name_ ((header_ptr -> archive_header.name), starname, ecc); 227 if ecc = 0 then do; 228 total = total + 1; 229 if af_sw then do; /* append archive_path::component_name */ 230 if return_arg ^= "" then return_arg = return_arg || " "; 231 if xp = ">" then return_arg = return_arg || ">"; 232 else return_arg = return_arg || rtrim (xp) || ">"; 233 return_arg = return_arg || rtrim (ename); 234 return_arg = return_arg || "::"; 235 return_arg = return_arg || rtrim (header_ptr -> archive_header.name); 236 end; 237 else call ioa_ ("^a ^a^[>^]^a contains ^a", bty (fixed (branch.type)), 238 xp, xp ^= ">", ename, header_ptr -> archive_header.name); 239 if firstsw then do; 240 call hcs_$terminate_noname (segp, ecc); 241 segp = null (); /* so cleanuyp doesn't get a crack at it */ 242 go to bust; 243 end; 244 end; 245 call archive_util_$next_element (header_ptr, ecc); 246 end; 247 terminate_archive: 248 call hcs_$terminate_noname (segp, ecc); 249 segp = null (); 250 go to check_storage_sys_name; /* done with the archive components */ 251 end; 252 end; 253 end; 254 255 check_storage_sys_name: 256 ecc = 1; /* so loop will go */ 257 do ni = 1 to fixed (branch.nname) while (ecc ^= 0); 258 ename = names (fixed (branch.nindex) + ni - 1); 259 call match_star_name_ (ename, starname, ecc); 260 if ecc = 0 then do; 261 total = total + 1; 262 if af_sw then do; 263 if return_arg ^= "" then return_arg = return_arg || " "; 264 if xp ^= ">" then return_arg = return_arg || rtrim (xp); 265 return_arg = return_arg || ">"; 266 return_arg = return_arg || rtrim (ename); 267 end; 268 else call ioa_ ("^a ^a^[>^]^a", bty (fixed (branch.type)), xp, xp ^= ">", ename); 269 if firstsw then go to bust; 270 end; 271 end; 272 273 274 return; 275 end counter; 276 277 end hunt; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 03/28/83 1115.6 hunt.pl1 >spec>on>03/28/83>hunt.pl1 24 1 02/06/76 1405.1 archive_header.incl.pl1 >ldd>include>archive_header.incl.pl1 25 2 11/22/82 0955.6 branch_status.incl.pl1 >ldd>include>branch_status.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. R_ACCESS constant fixed bin(5,0) initial dcl 30 ref 221 SEG_TYPE constant fixed bin(17,0) initial dcl 188 ref 194 199 S_ACCESS constant fixed bin(5,0) initial dcl 31 ref 142 absolute_pathname_ 000024 constant entry external dcl 54 ref 101 active_fnc_err_ 000026 constant entry external dcl 55 ref 77 active_fnc_err_$suppress_name 000030 constant entry external dcl 55 ref 94 addr builtin function dcl 71 ref 133 133 af_sw 000174 automatic bit(1) dcl 38 set ref 76* 81* 94 157 229 262 allsw 000175 automatic bit(1) dcl 38 set ref 85* 120* 194 archive_header based structure level 1 dcl 1-4 archive_sw 000176 automatic bit(1) dcl 38 set ref 86* 122* 123* 199 archive_util_$first_element 000032 constant entry external dcl 56 ref 224 archive_util_$next_element 000034 constant entry external dcl 57 ref 245 arg based char unaligned dcl 33 set ref 92 101* 103* 109 120 120 121 121 122 122 123 123 125* arg_count 000213 automatic fixed bin(17,0) dcl 43 set ref 74* 88 arg_len 000214 automatic fixed bin(17,0) dcl 43 set ref 90* 92 101 101 103 103 109 120 120 121 121 122 122 123 123 125 125 arg_ptr 000202 automatic pointer dcl 40 set ref 90* 92 101 103 109 120 120 121 121 122 122 123 123 125 bptr parameter pointer dcl 163 ref 161 194 199 208 210 237 257 258 268 branch based structure level 1 dcl 174 branch_status 000100 automatic structure level 1 dcl 2-1 set ref 133 133 bty 000000 constant char(4) initial array unaligned dcl 188 set ref 237* 268* check_star_name_$entry 000036 constant entry external dcl 58 ref 110 cleanup 000226 stack reference condition dcl 72 ref 150 code 000220 automatic fixed bin(35,0) dcl 44 set ref 74* 75 90* 101* 102 103* 110* 111 111 111 112* 133* 134 135* 138 138 138 139* 151* com_err_ 000040 constant entry external dcl 59 ref 82 com_err_$suppress_name 000042 constant entry external dcl 59 ref 96 complain 000222 automatic entry variable dcl 52 set ref 77* 82* 103 112 125 139 143 203 cu_$af_return_arg 000044 constant entry external dcl 60 ref 74 cu_$arg_ptr 000046 constant entry external dcl 61 ref 90 dir_path 000112 automatic char(168) unaligned dcl 35 set ref 101* 131* 133* 139* 143* 155* ecc 000164 automatic fixed bin(35,0) dcl 186 set ref 197* 208 215* 218* 219 224* 225 226* 227 240* 245* 247* 255* 257 259* 260 een parameter char(32) unaligned dcl 163 ref 161 ename 000152 automatic char(32) unaligned dcl 170 set ref 203* 210* 212 213 215* 233 237* 258* 259* 266 268* error_table_$badopt 000012 external static fixed bin(35,0) dcl 46 set ref 125* error_table_$incorrect_access 000014 external static fixed bin(35,0) dcl 47 ref 138 error_table_$no_s_permission 000016 external static fixed bin(35,0) dcl 48 ref 138 error_table_$root 000020 external static fixed bin(35,0) dcl 49 ref 134 error_table_$seg_busted 000022 external static fixed bin(35,0) dcl 50 set ref 203* firstsw 000177 automatic bit(1) dcl 38 set ref 85* 121* 239 269 fixed builtin function dcl 71 ref 142 194 199 208 210 237 257 258 268 get_wdir_ 000050 constant entry external dcl 62 ref 131 got_dir 000200 automatic bit(1) dcl 38 set ref 85* 92 106* 131 got_starname 000201 automatic bit(1) dcl 38 set ref 85* 100 115* 130 hcs_$fs_get_mode 000052 constant entry external dcl 63 ref 218 hcs_$initiate 000054 constant entry external dcl 64 ref 215 hcs_$status_ 000056 constant entry external dcl 65 ref 133 hcs_$terminate_noname 000060 constant entry external dcl 66 ref 151 240 247 header_ptr 000204 automatic pointer dcl 40 set ref 223* 224* 226 235 237 245* i 000215 automatic fixed bin(17,0) dcl 43 set ref 88* 90* ioa_ 000062 constant entry external dcl 67 ref 157 237 268 ioa_$rsnnl 000064 constant entry external dcl 67 ref 193 j 000216 automatic fixed bin(17,0) dcl 43 set ref 212* 213 213 length builtin function dcl 71 ref 212 lvl parameter fixed bin(17,0) dcl 163 ref 161 match_star_name_ 000066 constant entry external dcl 68 ref 226 259 mode 3 000100 automatic bit(5) level 2 packed unaligned dcl 2-1 set ref 136* 142 name 3 based char(32) level 2 dcl 1-4 set ref 226 235 237* names based char(32) array dcl 184 ref 210 258 ni 000162 automatic fixed bin(17,0) dcl 170 set ref 208* 210* 257* 258* nindex 0(18) based bit(18) level 2 packed unaligned dcl 174 ref 210 258 nname 0(02) based bit(16) level 2 packed unaligned dcl 174 ref 208 257 nptr parameter pointer dcl 163 ref 161 210 258 null builtin function dcl 71 ref 133 133 149 151 216 241 249 return_arg based varying char dcl 34 set ref 78* 230 230* 230 231* 231 232* 232 233* 233 234* 234 235* 235 263 263* 263 264* 264 265* 265 266* 266 return_len 000217 automatic fixed bin(17,0) dcl 43 set ref 74* 78 230 231 232 233 234 235 263 264 265 266 return_ptr 000206 automatic pointer dcl 40 set ref 74* 78 230 230 230 231 231 232 232 233 233 234 234 235 235 263 263 263 264 264 265 265 266 266 rtrim builtin function dcl 71 ref 212 232 233 235 264 266 sdn parameter char(168) dcl 163 set ref 161 193* 193 seg_fault_error 000000 stack reference condition dcl 72 ref 202 seg_mode 000212 automatic fixed bin(5,0) dcl 42 set ref 218* 221 segp 000210 automatic pointer dcl 40 set ref 149* 151 151* 215* 216 218* 223 240* 241* 247* 249* sen parameter char(32) dcl 163 set ref 161 193* starname 000164 automatic char(32) unaligned dcl 36 set ref 109* 110* 112* 226* 259* substr builtin function dcl 71 ref 92 213 sweep_disk_$dir_list 000070 constant entry external dcl 69 ref 155 total 000010 internal static fixed bin(17,0) dcl 29 set ref 147* 157* 228* 228 261* 261 type based bit(2) level 2 packed unaligned dcl 174 ref 194 199 237 268 xi 000163 automatic fixed bin(17,0) dcl 170 set ref 193* xp 000100 automatic char(168) unaligned dcl 170 set ref 193* 203* 203 215* 231 232 237* 237 264 264 268* 268 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. directory_type internal static bit(2) initial dcl 2-1 link_type internal static bit(2) initial dcl 2-1 msf_type internal static bit(2) initial dcl 2-1 segment_type internal static bit(2) initial dcl 2-1 NAMES DECLARED BY EXPLICIT CONTEXT. USAGE 000241 constant label dcl 94 ref 130 bust 001050 constant label dcl 157 ref 242 269 check_storage_sys_name 002030 constant label dcl 255 ref 205 216 250 counter 001073 constant entry internal dcl 161 ref 155 155 hunt 000136 constant entry external dcl 10 terminate_archive 002010 constant label dcl 247 ref 219 221 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 2624 2716 2307 2634 Length 3162 2307 72 230 315 2 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME hunt 248 external procedure is an external procedure. on unit on line 150 70 on unit counter 192 internal procedure is assigned to an entry variable, and enables or reverts conditions. on unit on line 202 98 on unit STORAGE FOR INTERNAL STATIC VARIABLES. LOC IDENTIFIER BLOCK NAME 000010 total hunt STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME counter 000100 xp counter 000152 ename counter 000162 ni counter 000163 xi counter 000164 ecc counter hunt 000100 branch_status hunt 000112 dir_path hunt 000164 starname hunt 000174 af_sw hunt 000175 allsw hunt 000176 archive_sw hunt 000177 firstsw hunt 000200 got_dir hunt 000201 got_starname hunt 000202 arg_ptr hunt 000204 header_ptr hunt 000206 return_ptr hunt 000210 segp hunt 000212 seg_mode hunt 000213 arg_count hunt 000214 arg_len hunt 000215 i hunt 000216 j hunt 000217 return_len hunt 000220 code hunt 000222 complain hunt THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. r_ne_as alloc_cs cat_realloc_cs call_var_desc call_ext_out_desc call_ext_out return tra_ext mpfx2 enable shorten_stack ext_entry int_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. absolute_pathname_ active_fnc_err_ active_fnc_err_$suppress_name archive_util_$first_element archive_util_$next_element check_star_name_$entry com_err_ com_err_$suppress_name cu_$af_return_arg cu_$arg_ptr get_wdir_ hcs_$fs_get_mode hcs_$initiate hcs_$status_ hcs_$terminate_noname ioa_ ioa_$rsnnl match_star_name_ sweep_disk_$dir_list THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$badopt error_table_$incorrect_access error_table_$no_s_permission error_table_$root error_table_$seg_busted LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 10 000135 74 000143 75 000157 76 000161 77 000163 78 000170 79 000171 81 000172 82 000173 85 000200 86 000204 88 000206 90 000215 92 000232 94 000241 96 000273 98 000322 100 000323 101 000325 102 000351 103 000353 104 000406 106 000407 107 000411 109 000412 110 000416 111 000433 112 000441 113 000471 115 000472 116 000474 120 000475 121 000511 122 000524 123 000537 125 000551 126 000605 128 000606 130 000610 131 000612 133 000623 134 000665 135 000671 136 000672 138 000676 139 000704 140 000734 142 000735 143 000741 144 000776 147 000777 149 001000 150 001002 151 001016 153 001033 155 001034 157 001050 159 001071 161 001072 193 001100 194 001147 197 001163 199 001165 202 001200 203 001214 205 001265 208 001270 210 001306 212 001325 213 001340 215 001346 216 001411 218 001416 219 001431 221 001433 223 001437 224 001441 225 001452 226 001454 227 001502 228 001504 229 001506 230 001511 231 001526 232 001542 233 001610 234 001635 235 001647 236 001674 237 001675 239 001753 240 001756 241 001767 242 001772 245 001775 246 002007 247 002010 249 002022 250 002025 252 002026 255 002030 257 002032 258 002050 259 002067 260 002110 261 002112 262 002114 263 002117 264 002134 265 002164 266 002173 267 002217 268 002220 269 002267 271 002275 274 002277 ----------------------------------------------------------- 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