COMPILATION LISTING OF SEGMENT enter_carry_request Compiled by: Multics PL/I Compiler, Release 28d, of October 4, 1983 Compiled at: Honeywell Multics Op. - System M Compiled on: 02/14/85 1113.8 mst Thu Options: optimize map 1 /* ************************************************************ 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 4* * * 5* * Copyright, (C) Honeywell Information Systems Inc., 1980. * 6* * * 7* ************************************************************ */ 8 9 10 enter_carry_request: ecr: proc; 11 12 /* This module implements the commands: 13* 14* enter_carry_request, ecr 15* list_carry_requests, lcr 16* cancel_carry_requests, ccr 17* 18* Usage: 19* 20* enter_carry_request paths {-control_args} 21* 22* where the -new_dir PATH control argument causes the entry named by the 23* preceding path argument to be reloaded under PATH instead. 24* -notify sends the requestor mail when the request is dumped. 25* 26* list_carry_requests {-control_args} 27* 28* cancel_carry_request paths {-control_args} 29* 30* The last two accept the -admin (-am) control argument, allowing them to list 31* or cancel any user's requests (the default is their own) if the user 32* has r access to the carry queue. 33* 34* All the commands accept: 35* 36* -destination DEST, -ds DEST 37* where DEST is up to 23 characters long, naming the queue 38* DEST.carry.ms instead of the default queue carry.ms, the name 39* added to the queue for the default destination. 40* 41* -queue_dir PATH, -qd PATH 42* looks in the specified directory for the queue, rather than 43* in >daemon_dir_dir>carry_dir. 44* 45* Steve Herbst 07/26/78 */ 46 /* -notify added 04/18/79 S. Herbst */ 47 /* -trim added, bugs fixed 08/03/79 S. Herbst */ 48 /* MCR 4297 -user added 01/09/80 S. Herbst */ 49 /* Add -entry for ccr, * conv for lcr & ccr, and clean up access forcing and messages 08/14/80 S. Herbst */ 50 /* Add star convention to ecr 12/15/80 S. Herbst */ 51 /* Fixed for "new" error code from hcs_$star_, 1/6/85 Keith Loepere. */ 52 53 dcl default_destination char (23) int static init ("default destination"); 54 55 dcl (default_queue_dir, mseg_dir) char (168) init (">daemon_dir_dir>carry_dir"); 56 dcl mseg_name char (32) init ("carry.ms"); 57 58 dcl 1 entries (ecount) aligned based (entries_ptr), 59 2 entry_type bit (2) unaligned, 60 2 nnames fixed bin (15) unaligned, 61 2 nindex fixed bin unaligned; 62 63 dcl names (99 /* unlimited */) char (32) based (names_ptr); 64 65 dcl arg char (arg_len) based (arg_ptr); 66 dcl line char (line_len) based (line_ptr); 67 dcl request char (500); 68 dcl move_line char (200); 69 dcl (request_dir) char (168); 70 dcl answer char (32) varying; 71 dcl (group_id, new_user, request_name, ME) char (32); 72 dcl admin (acl_count) char (32) based (admin_ptr); 73 dcl atime char (24); 74 dcl destination char (23) init ("default destination"); 75 dcl type_string char (7); 76 77 dcl (admin_mode, all_queues, cancelling, ds_sw, expecting_ds, expecting_path) bit (1) aligned init ("0"b); 78 dcl (hold_sw, listing, trim_sw) bit (1) aligned init ("0"b); 79 dcl (first, header_printed, no_access, notify_sw, queried_once, warn_hdr_printed) bit (1) aligned; 80 dcl (SEG init ("0"b), DIR init ("1"b)) bit (1) aligned int static options (constant); 81 dcl SEG_TYPE bit (2) int static options (constant) init ("01"b); 82 dcl ADROS_ACCESS bit (5) aligned int static options (constant) init ("11111"b); 83 dcl request_id bit (36); 84 85 dcl area area based (area_ptr); 86 87 dcl (acl_ptr, admin_ptr, line_ptr) ptr init (null); 88 dcl (arg_ptr, area_ptr, entries_ptr, names_ptr) ptr; 89 90 dcl time fixed bin (71); 91 dcl (mode, (R_ACCESS init (8), S_ACCESS init (8), SMA_ACCESS init (11)) int static options (constant)) fixed bin (5); 92 dcl ALL_ENTRIES fixed bin (2) int static options (constant) init (3); 93 dcl (type, (seg_type init (1), dir_type init (2)) int static) fixed bin (2); 94 dcl (op, ecr_op init (1), lcr_op init (2), ccr_op init (3)) fixed bin; 95 dcl (acl_count, admin_count, arg_count, arg_len, ds_count, ecount, ej, name_len) fixed bin; 96 dcl (i, j, k, level, line_len, request_count, request_len, saved_line_len, walk_level) fixed bin; 97 dcl mseg_index fixed bin init (0); 98 dcl (code, code1) fixed bin (35); 99 100 dcl error_table_$badopt fixed bin (35) ext; 101 dcl error_table_$badstar fixed bin (35) ext; 102 dcl error_table_$incorrect_access fixed bin (35) ext; 103 dcl error_table_$moderr fixed bin (35) ext; 104 dcl error_table_$no_message fixed bin (35) ext; 105 dcl error_table_$no_s_permission fixed bin (35) ext; 106 dcl error_table_$nomatch fixed bin (35) ext; 107 dcl error_table_$nostars fixed bin (35) ext; 108 109 dcl 1 request_array (arg_count) based (request_array_ptr), 110 2 dn char (168), 111 2 en char (32), 112 2 star_sw bit (1), 113 2 matched bit (1); 114 dcl new_dir (arg_count) char (168) based (new_dir_ptr); 115 dcl (request_array_ptr, new_dir_ptr) ptr init (null); 116 117 dcl 1 segment_acl aligned, /* for forcing access */ 118 2 access_name char (32) unaligned, 119 2 modes bit (36), 120 2 pad bit (72); 121 122 dcl 1 acl (acl_count) aligned based (acl_ptr), 123 2 user_id char (32), 124 2 mode bit (36), 125 2 exmode bit (36), 126 2 status_code fixed bin (35); 127 1 1 /* BEGIN INCLUDE FILE query_info.incl.pl1 TAC June 1, 1973 */ 1 2 /* Renamed to query_info.incl.pl1 and cp_escape_control added, 08/10/78 WOS */ 1 3 /* version number changed to 4, 08/10/78 WOS */ 1 4 /* Version 5 adds explanation_(ptr len) 05/08/81 S. Herbst */ 1 5 /* Version 6 adds literal_sw, prompt_after_explanation switch 12/15/82 S. Herbst */ 1 6 1 7 dcl 1 query_info aligned, /* argument structure for command_query_ call */ 1 8 2 version fixed bin, /* version of this structure - must be set, see below */ 1 9 2 switches aligned, /* various bit switch values */ 1 10 3 yes_or_no_sw bit (1) unaligned init ("0"b), /* not a yes-or-no question, by default */ 1 11 3 suppress_name_sw bit (1) unaligned init ("0"b), /* do not suppress command name */ 1 12 3 cp_escape_control bit (2) unaligned init ("00"b), /* obey static default value */ 1 13 /* "01" -> invalid, "10" -> don't allow, "11" -> allow */ 1 14 3 suppress_spacing bit (1) unaligned init ("0"b), /* whether to print extra spacing */ 1 15 3 literal_sw bit (1) unaligned init ("0"b), /* ON => do not strip leading/trailing white space */ 1 16 3 prompt_after_explanation bit (1) unaligned init ("0"b), /* ON => repeat question after explanation */ 1 17 3 padding bit (29) unaligned init (""b), /* pads it out to t word */ 1 18 2 status_code fixed bin (35) init (0), /* query not prompted by any error, by default */ 1 19 2 query_code fixed bin (35) init (0), /* currently has no meaning */ 1 20 1 21 /* Limit of data defined for version 2 */ 1 22 1 23 2 question_iocbp ptr init (null ()), /* IO switch to write question */ 1 24 2 answer_iocbp ptr init (null ()), /* IO switch to read answer */ 1 25 2 repeat_time fixed bin (71) init (0), /* repeat question every N seconds if no answer */ 1 26 /* minimum of 30 seconds required for repeat */ 1 27 /* otherwise, no repeat will occur */ 1 28 /* Limit of data defined for version 4 */ 1 29 1 30 2 explanation_ptr ptr init (null ()), /* explanation of question to be printed if */ 1 31 2 explanation_len fixed bin (21) init (0); /* user answers "?" (disabled if ptr=null or len=0) */ 1 32 1 33 dcl query_info_version_3 fixed bin int static options (constant) init (3); 1 34 dcl query_info_version_4 fixed bin int static options (constant) init (4); 1 35 dcl query_info_version_5 fixed bin int static options (constant) init (5); 1 36 dcl query_info_version_6 fixed bin int static options (constant) init (6); /* the current version number */ 1 37 1 38 /* END INCLUDE FILE query_info.incl.pl1 */ 128 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 129 3 1 /* BEGIN INCLUDE FILE . . . mseg_return_args.incl.pl1 */ 3 2 3 3 3 4 /* structure returned when message is read from a message segment */ 3 5 3 6 3 7 dcl ms_arg_ptr ptr; 3 8 3 9 dcl 1 mseg_return_args based (ms_arg_ptr) aligned, 3 10 2 ms_ptr ptr, /* pointer to message */ 3 11 2 ms_len fixed bin (24), /* length of message in bits */ 3 12 2 sender_id char (32) unaligned, /* process-group ID of sender */ 3 13 2 level fixed bin, /* validation level of sender */ 3 14 2 ms_id bit (72), /* unique ID of message */ 3 15 2 sender_authorization bit (72), /* access authorization of message sender */ 3 16 2 access_class bit (72); /* message access class */ 3 17 3 18 3 19 /* END INCLUDE FILE . . . mseg_return_args.incl.pl1 */ 130 131 dcl 1 mseg_args like mseg_return_args; 132 133 dcl iox_$error_output ptr ext; 134 135 dcl absolute_pathname_ entry (char (*), char (*), fixed bin (35)); 136 dcl check_star_name_$entry entry (char (*), fixed bin (35)); 137 dcl check_star_name_$path entry (char (*), fixed bin (35)); 138 dcl (com_err_, com_err_$suppress_name) entry options (variable); 139 dcl command_query_ entry options (variable); 140 dcl cu_$arg_count entry (fixed bin); 141 dcl cu_$arg_ptr entry (fixed bin, ptr, fixed bin, fixed bin (35)); 142 dcl cu_$level_get entry (fixed bin); 143 dcl date_time_ entry (fixed bin (71), char (*)); 144 dcl expand_path_ entry (ptr, fixed bin, ptr, ptr, fixed bin (35)); 145 dcl expand_pathname_ entry (char (*), char (*), char (*), fixed bin (35)); 146 dcl get_group_id_$tag_star entry returns (char (32)); 147 dcl get_system_free_area_ entry returns (ptr); 148 dcl hcs_$add_acl_entries entry (char (*), char (*), ptr, fixed bin, fixed bin (35)); 149 dcl hcs_$add_dir_acl_entries entry (char (*), char (*), ptr, fixed bin, fixed bin (35)); 150 dcl hcs_$get_user_effmode entry (char (*), char (*), char (*), fixed bin, fixed bin (5), fixed bin (35)); 151 dcl hcs_$star_ entry (char (*), char (*), fixed bin (2), ptr, fixed bin, ptr, ptr, fixed bin (35)); 152 dcl hcs_$status_long entry (char (*), char (*), fixed bin (1), ptr, ptr, fixed bin (35)); 153 dcl hcs_$status_minf entry (char (*), char (*), fixed bin (1), fixed bin (2), fixed bin (24), fixed bin (35)); 154 dcl (ioa_, ioa_$ioa_switch, ioa_$ioa_switch_nnl, ioa_$rs, ioa_$rsnnl) entry options (variable); 155 dcl match_star_name_ entry (char (*), char (*), fixed bin (35)); 156 dcl message_segment_$add_index entry (fixed bin, ptr, fixed bin, bit (72), fixed bin (35)); 157 dcl message_segment_$close entry (fixed bin, fixed bin (35)); 158 dcl message_segment_$delete_index entry (fixed bin, bit (72), fixed bin (35)); 159 dcl message_segment_$incremental_read_index entry (fixed bin, ptr, bit (2), bit (72), ptr, fixed bin (35)); 160 dcl message_segment_$ms_acl_list entry (char (*), char (*), ptr, fixed bin, ptr, fixed bin (35)); 161 dcl message_segment_$open entry (char (*), char (*), fixed bin, fixed bin (35)); 162 dcl message_segment_$own_incremental_read_index entry (fixed bin, ptr, bit (2), bit (72), ptr, fixed bin (35)); 163 dcl message_segment_$own_read_index entry (fixed bin, ptr, bit (1), ptr, fixed bin (35)); 164 dcl message_segment_$read_index entry (fixed bin, ptr, bit (1), ptr, fixed bin (35)); 165 166 dcl (addr, addrel, after, before, divide, fixed, index, length, null, ptr, rtrim, substr, unspec) builtin; 167 168 dcl cleanup condition; 169 170 /* enter_carry_request: ecr: proc; */ 171 172 ME = "enter_carry_request"; 173 op = ecr_op; 174 notify_sw = "0"b; 175 go to COMMON; 176 177 list_carry_requests: lcr: entry; 178 179 ME = "list_carry_requests"; 180 op = lcr_op; 181 listing = "1"b; 182 go to COMMON; 183 184 cancel_carry_request: ccr: entry; 185 186 ME = "cancel_carry_request"; 187 op = ccr_op; 188 listing, cancelling = "1"b; 189 190 COMMON: call cu_$arg_count (arg_count); 191 if arg_count = 0 & op ^= lcr_op then do; 192 USAGE: call com_err_$suppress_name (0, ME, "Usage: ^a ^[paths ^]{-control_args}", ME, op ^= lcr_op); 193 return; 194 end; 195 area_ptr = get_system_free_area_ (); 196 entries_ptr, names_ptr = null; 197 198 on condition (cleanup) call clean_up; 199 200 allocate request_array in (area) set (request_array_ptr); 201 allocate new_dir in (area) set (new_dir_ptr); 202 ds_count, request_count = 0; 203 ds_sw = "0"b; 204 new_user = ""; 205 206 do i = 1 to arg_count; 207 208 call cu_$arg_ptr (i, arg_ptr, arg_len, code); 209 210 if substr (arg, 1, 1) ^= "-" then do; /* pathname */ 211 if op = lcr_op then go to USAGE; 212 request_count = request_count+1; 213 call expand_pathname_ (arg, dn (request_count), en (request_count), code); 214 if code ^= 0 then do; 215 call com_err_ (code, ME, "^a", arg); 216 go to RETURN; 217 end; 218 call check_star_name_$entry (en (request_count), code); 219 if (code = 1 | code = 2) then star_sw (request_count) = "1"b; /* valid starname */ 220 else if code ^= 0 then do; 221 BAD_STARNAME: call com_err_ (code, ME, "^a", en (request_count)); 222 go to RETURN; 223 end; 224 else star_sw (request_count) = "0"b; 225 matched (request_count) = "0"b; 226 new_dir (request_count) = ""; 227 end; 228 229 230 else if arg = "-destination" | arg = "-ds" then do; 231 i = i+1; 232 call cu_$arg_ptr (i, arg_ptr, arg_len, code); 233 if code ^= 0 then do; 234 call com_err_ (0, ME, "-destination value missing."); 235 go to RETURN; 236 end; 237 ds_sw = "1"b; 238 destination = arg; 239 mseg_name = arg || ".carry.ms"; 240 call hcs_$status_minf (mseg_dir, mseg_name, 1, (0), (0), code); 241 if code ^= 0 & code ^= error_table_$no_s_permission then do; 242 call com_err_ (0, ME, "Invalid destination ^a", arg); 243 go to RETURN; 244 end; 245 end; 246 247 else if arg = "-entry" | arg = "-et" then do; 248 if op ^= ccr_op then go to BADOPT; 249 i = i + 1; 250 call cu_$arg_ptr (i, arg_ptr, arg_len, code); 251 if code ^= 0 then do; 252 call com_err_ (0, ME, "No value specified for -entry"); 253 go to RETURN; 254 end; 255 call check_star_name_$entry (arg, code); 256 if (code = 1 | code = 2) then star_sw (request_count) = "1"b; 257 else if code ^= 0 then go to BAD_STARNAME; 258 else star_sw (request_count) = "0"b; 259 request_count = request_count + 1; 260 dn (request_count) = ""; 261 en (request_count) = arg; 262 matched (request_count) = "0"b; 263 new_dir (request_count) = ""; 264 end; 265 266 else if arg = "-queue_dir" | arg = "-qd" then do; 267 i = i+1; 268 call cu_$arg_ptr (i, arg_ptr, arg_len, code); 269 if code ^= 0 then do; 270 call com_err_ (0, ME, "No value specified for -queue_dir"); 271 go to RETURN; 272 end; 273 call absolute_pathname_ (arg, mseg_dir, code); 274 if code ^= 0 then do; 275 call com_err_ (code, ME, "^a", arg); 276 go to RETURN; 277 end; 278 default_destination = "default destination"; /* have to recompute */ 279 end; 280 281 else if arg = "-admin" | arg = "-am" then 282 if op = ecr_op then go to BADOPT; 283 else admin_mode = "1"b; 284 285 else if arg = "-all" | arg = "-a" then do; 286 if op ^= lcr_op then go to BADOPT; 287 all_queues = "1"b; 288 end; 289 290 else if op ^= ecr_op then go to BADOPT; /* the rest are for ecr */ 291 292 else if arg = "-hold" | arg = "-hd" then hold_sw = "1"b; 293 else if arg = "-trim" then trim_sw = "1"b; 294 else if arg = "-no_trim" | arg = "-notrim" then trim_sw = "0"b; 295 else if arg = "-notify" | arg = "-nt" then notify_sw = "1"b; 296 else if arg = "-no_notify" | arg = "-nnt" then notify_sw = "0"b; 297 else if arg = "-new_dir" | arg = "-nd" then do; 298 if request_count = 0 then do; 299 call com_err_ (0, ME, "No path preceding ^a.", arg); 300 go to RETURN; 301 end; 302 i = i+1; 303 call cu_$arg_ptr (i, arg_ptr, arg_len, code); 304 if code ^= 0 then do; 305 call com_err_ (0, ME, "No value specified for -new_dir"); 306 go to RETURN; 307 end; 308 if arg = "" then do; 309 call com_err_ (0, ME, "Invalid -new_dir argument """"."); 310 go to RETURN; 311 end; 312 call absolute_pathname_ (arg, new_dir (request_count), code); 313 if code ^= 0 then do; 314 call com_err_ (code, ME, "^a", arg); 315 go to RETURN; 316 end; 317 call check_star_name_$path (new_dir (request_count), code); 318 if code ^= 0 then do; /* bad syntax, equal or starname */ 319 call com_err_ (error_table_$badstar, ME, "^a", new_dir (request_count)); 320 go to RETURN; 321 end; 322 end; 323 324 else if arg = "-user" then do; 325 i = i+1; 326 call cu_$arg_ptr (i, arg_ptr, arg_len, code); 327 if code ^= 0 then do; 328 call com_err_ (0, ME, "No value specified for -user"); 329 go to RETURN; 330 end; 331 new_user = arg; 332 j = index (new_user, "."); 333 if j = 0 then do; 334 call com_err_ (0, ME, "-user argument not of the form Person.Project"); 335 go to RETURN; 336 end; 337 k = index (substr (new_user, j + 1), "."); 338 if k ^= 0 then new_user = substr (new_user, 1, j + k - 1); 339 end; 340 341 else do; 342 BADOPT: call com_err_ (error_table_$badopt, ME, "^a", arg); 343 go to RETURN; 344 end; 345 end; 346 347 if all_queues & ds_sw & op = lcr_op then do; 348 call com_err_ (0, ME, "Incompatible control arguments -all and -ds"); 349 go to RETURN; 350 end; 351 352 if ^ds_sw then destination = default_destination; 353 354 if request_count = 0 & (^listing | cancelling) then do; 355 call com_err_ (0, ME, "No pathnames specified."); 356 go to RETURN; 357 end; 358 359 if op = ecr_op then go to ENTER_REQUESTS; 360 361 header_printed = "0"b; 362 363 if ^all_queues then do; 364 if destination = "default destination" then call get_default_destination (mseg_dir, mseg_name); 365 366 call list_queue (mseg_dir, mseg_name); 367 end; 368 369 else do; 370 call hcs_$star_ (mseg_dir, "**.carry.ms", 2 /* segs */, area_ptr, ecount, entries_ptr, names_ptr, code); 371 if code ^= 0 then do; 372 call com_err_ (code, ME, "^a^[>^]**.carry.ms", mseg_dir, mseg_dir ^= ">"); 373 go to RETURN; 374 end; 375 376 do ej = 1 to ecount; 377 if entries (ej).entry_type = SEG_TYPE then do; 378 mseg_name = names_ptr -> names (entries_ptr -> entries (ej).nindex); 379 380 call get_destination (mseg_dir, mseg_name); 381 382 call list_queue (mseg_dir, mseg_name); 383 end; 384 end; 385 end; 386 387 go to RETURN; 388 389 ENTER_REQUESTS: 390 391 call message_segment_$open (mseg_dir, mseg_name, mseg_index, code); 392 if mseg_index = 0 then do; 393 call com_err_ (code, ME, "^a^[>^]^a", mseg_dir, mseg_dir ^= ">", mseg_name); 394 go to RETURN; 395 end; 396 397 call cu_$level_get (level); 398 group_id = get_group_id_$tag_star (); 399 call get_administrators; 400 401 do i = 1 to request_count; 402 403 if star_sw (i) then call enter_stars (dn (i), en (i)); 404 405 else call enter_one (dn (i), en (i)); 406 407 END: end; 408 409 RETURN: call clean_up; 410 411 return; 412 413 enter_one: proc (P_dn, P_en); 414 415 dcl (P_dn, P_en) char (*); 416 dcl j fixed bin; 417 418 do j = 1 to admin_count; 419 mode = 0; 420 call hcs_$get_user_effmode (P_dn, "", admin (j), level, mode, code); 421 if code ^= 0 | mode < S_ACCESS then do; 422 if code = error_table_$incorrect_access then 423 call ioa_$ioa_switch (iox_$error_output, 424 "Warning: Unable to check access on ^a", dn (j)); 425 else call ioa_$ioa_switch (iox_$error_output, 426 "Warning: ^a lacks s access to ^a", admin (j), dn (j)); 427 end; 428 end; 429 430 no_access, warn_hdr_printed = "0"b; 431 walk_level = 0; 432 queried_once = "0"b; /* about forcing access for this request */ 433 434 call carry_access (P_dn, P_en, type); 435 436 if no_access then do; 437 call com_err_$suppress_name (0, "enter_carry_request", "Request ^a^[>^]^a not queued.", 438 P_dn, P_dn ^= ">", P_en); 439 go to END; 440 end; 441 442 if type = dir_type then type_string = "Subtree"; 443 else type_string = "Segment"; 444 445 call ioa_$rs ("^a ^a^[>^]^a^[ -user ^a^;^s^]^[ -trim^]^[ -new_dir ^a^;^s^]^[ -notify^]^[ -hold^]", 446 request, request_len, type_string, P_dn, P_dn ^= ">", P_en, 447 new_user ^= "", new_user, trim_sw, new_dir (i) ^= "", new_dir (i), notify_sw, hold_sw); 448 449 call message_segment_$add_index (mseg_index, addr (request), request_len*9, (mseg_args.ms_id), code); 450 if code ^= 0 then do; 451 call com_err_ (code, ME, "^a>^a", mseg_dir, mseg_name); 452 go to RETURN; 453 end; 454 455 end enter_one; 456 457 enter_stars: proc (P_dn, P_starname); 458 459 dcl (P_dn, P_starname) char (*); 460 dcl 1 entries (entry_count) based (entries_ptr), 461 2 pad bit (18) unaligned, 462 2 nindex bit (18) unaligned; 463 dcl names (999) char (32) aligned based (names_ptr); 464 dcl en char (32); 465 dcl area area based (area_ptr); 466 dcl (area_ptr, entries_ptr, names_ptr) ptr; 467 dcl (entry_count, j) fixed bin; 468 469 area_ptr = get_system_free_area_ (); 470 entries_ptr, names_ptr = null; 471 472 on cleanup call star_cleanup; 473 474 call hcs_$star_ (P_dn, P_starname, ALL_ENTRIES, area_ptr, entry_count, entries_ptr, names_ptr, code); 475 if code ^= 0 then do; 476 call com_err_ (code, ME, "^a^[>^]^a", P_dn, P_dn ^= ">", P_starname); 477 return; 478 end; 479 480 do j = 1 to entry_count; 481 482 en = names_ptr -> names (fixed (entries_ptr -> entries (j).nindex)); 483 484 call enter_one (P_dn, en); 485 end; 486 487 call star_cleanup; 488 489 return; 490 491 star_cleanup: proc; 492 493 if entries_ptr ^= null then free entries in (area); 494 if names_ptr ^= null then free names in (area); 495 496 end star_cleanup; 497 498 end enter_stars; 499 500 list_queue: proc (P_dn, P_en); 501 502 /* Lists requests in a single queue */ 503 504 dcl (P_dn, P_en) char (*); 505 506 call message_segment_$open (P_dn, P_en, mseg_index, code); 507 if mseg_index = 0 then do; 508 call com_err_ (code, ME, "^a>^a", P_dn, P_en); 509 return; 510 end; 511 512 first = "1"b; 513 514 LOOP: if first then do; 515 516 first = "0"b; 517 518 if admin_mode then call message_segment_$read_index (mseg_index, area_ptr, "0"b, addr (mseg_args), code); 519 else call message_segment_$own_read_index (mseg_index, area_ptr, "0"b, addr (mseg_args), code); 520 if code ^= 0 then do; 521 if code = error_table_$no_message then 522 if admin_mode then call ioa_ ("Queue ^a is empty.", queue_name (P_dn, P_en)); 523 else call ioa_ ("You have no requests in queue ^a", queue_name (P_dn, P_en)); 524 else call com_err_ (code, ME, "^a>^a", P_dn, P_en); 525 QUEUE_RETURN: call message_segment_$close (mseg_index, code); 526 return; 527 end; 528 529 if admin_mode & ^cancelling & ^header_printed then do; 530 call ioa_ ("DATE ENTERED^6xSENDER^26xTYPE^4xPATHNAME"); 531 header_printed = "1"b; 532 end; 533 end; 534 535 else do; 536 if admin_mode then call message_segment_$incremental_read_index 537 (mseg_index, area_ptr, "01"b, mseg_args.ms_id, addr (mseg_args), code); 538 else call message_segment_$own_incremental_read_index 539 (mseg_index, area_ptr, "01"b, mseg_args.ms_id, addr (mseg_args), code); 540 if code ^= 0 then do; 541 if code = error_table_$no_message then do; 542 if cancelling then do i = 1 to request_count; 543 if ^matched (i) then call com_err_ (0, ME, 544 "^a^[>^]^a not found in queue ^a", dn (i), dn (i) ^= "", en (i), 545 queue_name (P_dn, P_en)); 546 end; 547 if admin_mode then call ioa_ (""); 548 end; 549 else call com_err_ (code, ME, "^a>^a", P_dn, P_en); 550 go to QUEUE_RETURN; 551 end; 552 end; 553 554 line_ptr = mseg_args.ms_ptr; 555 line_len, saved_line_len = divide (mseg_args.ms_len, 9, 17, 0)-1; 556 557 if ^cancelling /* listing */ & request_count = 0 then go to LIST; 558 559 i = index (line, " -") - 1; 560 if i > 0 then line_len = i; 561 call expand_path_ (addrel (line_ptr, 2), line_len-8, addr (request_dir), addr (request_name), code); 562 name_len = length (rtrim (request_name)); 563 do i = 1 to request_count; 564 565 if dn (i) = request_dir | dn (i) = "" /* -entry */ then do; 566 call match_star_name_ (request_name, en (i), code); 567 if code = 0 then do; 568 569 PROCESS: if cancelling then do; 570 matched (i) = "1"b; /* found a match for this argument */ 571 call message_segment_$delete_index (mseg_index, mseg_args.ms_id, code); 572 if code ^= 0 then call com_err_ (code, ME, 573 "Unable to delete ^a^[>^]^a from queue ^a", 574 request_dir, request_dir ^= ">", request_name, 575 queue_name (P_dn, P_en)); 576 else do; 577 call ioa_ ("Carry of ^a>^a to ^a cancelled.", request_dir, request_name, destination); 578 end; 579 go to NEXT; 580 end; 581 582 else do; 583 LIST: line_len = saved_line_len; 584 unspec (time) = mseg_args.ms_id; 585 call date_time_ (time, atime); 586 i = index (line, " -new_dir"); 587 if i ^= 0 then do; 588 move_line = substr (line, i + 1); 589 line_len = i - 1; 590 end; 591 else move_line = ""; 592 if admin_mode then call ioa_ ("^16a ^32a^a^[ (destination ^a)^]", 593 substr (atime, 1, 16), mseg_args.sender_id, line, all_queues, destination); 594 else call ioa_ ("^16a ^a^[ (destination ^a)^]", 595 substr (atime, 1, 16), line, all_queues, destination); 596 if move_line ^= "" then call ioa_ ("^10x^a", move_line); 597 go to NEXT; 598 end; 599 end; 600 end; 601 602 /* If pathnames differ but entrynames are the same, compare unique id's */ 603 604 else if en (i) = request_name then do; 605 call hcs_$status_long (request_dir, request_name, 1, addr (branch_status), null, code); 606 if code = 0 then do; 607 request_id = branch_status.unique_id; 608 call hcs_$status_long (dn (i), en (i), 1, addr (branch_status), null, code); 609 if code = 0 & branch_status.unique_id = request_id then go to PROCESS; 610 end; 611 end; 612 end; 613 614 NEXT: free line in (area); 615 616 go to LOOP; 617 618 end list_queue; 619 620 clean_up: proc; 621 622 if mseg_index ^= 0 then call message_segment_$close (mseg_index, code); 623 if line_ptr ^= null then free line in (area); 624 if request_array_ptr ^= null then free request_array in (area); 625 if new_dir_ptr ^= null then free new_dir in (area); 626 if acl_ptr ^= null then free acl in (area); 627 if admin_ptr ^= null then free admin in (area); 628 if entries_ptr ^= null then free entries in (area); 629 if names_ptr ^= null then free names in (area); 630 631 if mseg_dir ^= default_queue_dir then default_destination = "default destination"; /* restore */ 632 633 end clean_up; 634 635 carry_access: proc (access_dn, access_en, a_type); 636 637 dcl access_dn char (*); 638 dcl access_en char (*); 639 dcl (a_type, type) fixed bin (2); 640 641 dcl dir_path char (168); 642 dcl (entries_ptr, names_ptr) ptr init (null); 643 dcl (ecount, ej) fixed bin; 644 645 dcl 1 entries (ecount) aligned based (entries_ptr), 646 2 entry_type bit (2) unaligned, 647 2 nnames fixed bin (15) unaligned, 648 2 nindex fixed bin unaligned; 649 650 dcl names (99) char (32) based (names_ptr); 651 652 walk_level = walk_level + 1; 653 654 on condition (cleanup) begin; 655 if entries_ptr ^= null then free entries in (area); 656 if names_ptr ^= null then free names in (area); 657 end; 658 659 call hcs_$status_minf (access_dn, access_en, 1, a_type, (0), code); 660 if code ^= 0 then do; 661 no_access = "1"b; 662 call com_err_ (code, ME, "^a>^a", access_dn, access_en); 663 warn_hdr_printed = "0"b; 664 return; 665 end; 666 667 if a_type = seg_type then do; 668 669 call hcs_$get_user_effmode (access_dn, access_en, group_id, level, mode, code); 670 if code ^= 0 | mode 1 then call warn; 673 else do; 674 no_access = "1"b; 675 if code = error_table_$incorrect_access then do; 676 NO_S: call com_err_ (code, ME, "^/Unable to check access to ^a>^a", 677 access_dn, access_en); 678 warn_hdr_printed = "0"b; 679 return; 680 end; 681 call com_err_ (0, ME, "You need r access to ^a>^a", access_dn, access_en); 682 warn_hdr_printed = "0"b; 683 return; 684 end; 685 end; 686 end; 687 do j = 1 to admin_count; 688 call hcs_$get_user_effmode (access_dn, access_en, admin (j), level, mode, code); 689 if code ^= 0 | mode 1 then call warn; 692 else do; 693 no_access = "1"b; 694 call com_err_ (0, ME, "^a needs r access to ^a>^a", 695 admin (j), access_dn, access_en); 696 warn_hdr_printed = "0"b; 697 return; 698 end; 699 end; 700 end; 701 end; 702 end; 703 704 else do; /* directory */ 705 706 do j = 1 to admin_count; 707 call hcs_$get_user_effmode (access_dn, access_en, admin (j), level, mode, code); 708 if code ^= 0 | mode 1 then call warn; 711 else do; 712 no_access = "1"b; 713 if code = error_table_$incorrect_access then go to NO_S; 714 call com_err_ (0, ME, "^a needs sma access to ^a>^a", 715 admin (j), access_dn, access_en); 716 warn_hdr_printed = "0"b; 717 return; 718 end; 719 end; 720 end; 721 end; 722 call ioa_$rsnnl ("^a>^a", dir_path, (168), access_dn, access_en); 723 STAR: call hcs_$star_ (dir_path, "**", 2, area_ptr, ecount, entries_ptr, names_ptr, code); 724 if code ^= 0 then 725 if code = error_table_$nomatch then do; 726 if walk_level = 1 then no_access = "1"b; /* request is not queued */ 727 return; 728 end; 729 else do; 730 if ^force_access (group_id, DIR) then do; 731 if walk_level > 1 then call warn; 732 else do; 733 no_access = "1"b; 734 if code = error_table_$moderr then code = 0; 735 call com_err_ (code, ME, "^[You need sma access to ^]^a^[>^]^a", 736 code = 0, access_dn, access_dn ^= ">", access_en); 737 warn_hdr_printed = "0"b; 738 return; 739 end; 740 end; 741 else go to STAR; 742 end; 743 744 do ej = 1 to ecount; 745 746 call carry_access (dir_path, names (nindex (ej)), type); 747 748 if no_access then do; 749 free entries in (area); 750 free names in (area); 751 return; 752 end; 753 754 end; 755 756 free entries in (area); 757 free names in (area); 758 end; 759 760 761 force_access: proc (a_id, a_sw) returns (bit (1)); 762 763 dcl a_id char (32); 764 dcl a_sw bit (1) aligned; 765 766 if ^queried_once then do; 767 queried_once = "1"b; 768 769 query_info.version = query_info_version_4; 770 query_info.yes_or_no_sw = "1"b; 771 772 call command_query_ (addr (query_info), answer, "enter_carry_request", 773 "Do you want to force access to Carry and/or yourself?"); 774 if answer ^= "yes" then go to CA_RETURN; 775 end; 776 segment_acl.access_name = a_id; 777 if a_sw = DIR then segment_acl.modes = "111"b; /* sma */ 778 else segment_acl.modes = "100"b; /* r */ 779 if a_sw = DIR then call hcs_$add_dir_acl_entries 780 (access_dn, access_en, addr (segment_acl), 1, code1); 781 else call hcs_$add_acl_entries (access_dn, access_en, addr (segment_acl), 1, code1); 782 if code1 ^= 0 then return ("0"b); 783 return ("1"b); 784 785 end force_access; 786 787 warn: proc; 788 789 if code = 0 then do; 790 if ^warn_hdr_printed then do; 791 warn_hdr_printed = "1"b; 792 call ioa_$ioa_switch (iox_$error_output, 793 "Warning: Entries in subtree will be omitted due to lack of access:^/^5x^a>^a", 794 access_dn, access_en); 795 end; 796 else call ioa_$ioa_switch (iox_$error_output, "^5x^a>^a", access_dn, access_en); 797 go to CA_RETURN; 798 end; 799 warn_hdr_printed = "0"b; 800 call ioa_$ioa_switch_nnl (iox_$error_output, "Warning: "); 801 call com_err_$suppress_name (code, ME, "Entry in subtree will be omitted: ^a>^a", 802 access_dn, access_en); 803 804 go to CA_RETURN; 805 806 end warn; 807 808 809 CA_RETURN: return; 810 811 end carry_access; 812 813 queue_name: proc (P_dn, P_en) returns (char (168)); 814 815 dcl (P_dn, P_en) char (*); 816 dcl path char (168); 817 818 /* returns "for destination STR" if queue is in the default dir, else pathname */ 819 820 if mseg_dir = default_queue_dir then do; 821 if destination = "default destination" then 822 call get_default_destination (mseg_dir, mseg_name); 823 if destination = "" | destination = "default destination" then 824 return ("for default destination"); 825 else return ("for destination " || destination); 826 end; 827 828 call ioa_$rsnnl ("^a^[>^]^a", path, length (path), P_dn, P_dn ^= ">", P_en); 829 return (path); 830 831 end queue_name; 832 833 get_default_destination: proc (P_dn, P_en); 834 835 /* Sets the default destination by calling get_destination */ 836 837 dcl (P_dn, P_en) char (*); 838 839 if default_destination ^= "default destination" then do; /* if already set, just return it */ 840 destination = default_destination; 841 return; 842 end; 843 844 call get_destination (P_dn, "carry.ms"); 845 846 default_destination = destination; 847 848 end get_default_destination; 849 850 get_destination: proc (P_dn, P_en); 851 852 /* Determines the destination name from the prefixed entryname of the queue */ 853 854 dcl (P_dn, P_en) char (*); 855 dcl (i, j, names_count) fixed bin; 856 dcl names_ptr ptr; 857 dcl names (names_count) char (32) based (names_ptr); 858 859 call hcs_$status_long (P_dn, P_en, 1, addr (branch_status), area_ptr, code); 860 if code ^= 0 then do; 861 NO_DS: destination = "unknown destination"; 862 return; 863 end; 864 names_ptr = ptr (area_ptr, branch_status.names_rel_pointer); 865 names_count = fixed (branch_status.number_names); 866 do j = 1 to names_count; 867 if after (names (j), ".") = "carry.ms" then do; /* DEST.carry.ms */ 868 destination = before (names (j), "."); 869 free names in (area); 870 return; 871 end; 872 end; 873 free names in (area); 874 go to NO_DS; 875 876 end get_destination; 877 878 get_administrators: proc; 879 880 /* This internal procedure enumerates users having "adros" 881* extended access to the carry queue. */ 882 883 dcl i fixed bin; 884 885 acl_count = -1; 886 call message_segment_$ms_acl_list (mseg_dir, mseg_name, acl_ptr, acl_count, area_ptr, code); 887 allocate admin in (area) set (admin_ptr); 888 admin_count = 0; 889 do i = 1 to acl_count; 890 if substr (acl.exmode (i), 1, 5) = ADROS_ACCESS then do; 891 admin_count = admin_count+1; 892 admin (admin_count) = acl.user_id (i); 893 end; 894 end; 895 896 end get_administrators; 897 898 end enter_carry_request; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 02/14/85 0740.1 enter_carry_request.pl1 >special_ldd>online>41-8>enter_carry_request.pl1 128 1 03/11/83 1204.3 query_info.incl.pl1 >ldd>include>query_info.incl.pl1 129 2 11/22/82 0955.6 branch_status.incl.pl1 >ldd>include>branch_status.incl.pl1 130 3 05/17/82 1411.5 mseg_return_args.incl.pl1 >ldd>include>mseg_return_args.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. ADROS_ACCESS constant bit(5) initial dcl 82 ref 890 ALL_ENTRIES 000033 constant fixed bin(2,0) initial dcl 92 set ref 474* DIR 000074 constant bit(1) initial dcl 80 set ref 709* 730* 777 779 ME 000626 automatic char(32) unaligned dcl 71 set ref 172* 179* 186* 192* 192* 215* 221* 234* 242* 252* 270* 275* 299* 305* 309* 314* 319* 328* 334* 342* 348* 355* 372* 393* 451* 476* 508* 524* 543* 549* 572* 662* 676* 681* 694* 714* 735* 801* P_dn parameter char unaligned dcl 415 in procedure "enter_one" set ref 413 420* 434* 437* 437 445* 445 P_dn parameter char unaligned dcl 459 in procedure "enter_stars" set ref 457 474* 476* 476 484* P_dn parameter char unaligned dcl 504 in procedure "list_queue" set ref 500 506* 508* 521* 521* 523* 523* 524* 543* 543* 549* 572* 572* P_dn parameter char unaligned dcl 837 in procedure "get_default_destination" set ref 833 844* P_dn parameter char unaligned dcl 854 in procedure "get_destination" set ref 850 859* P_dn parameter char unaligned dcl 815 in procedure "queue_name" set ref 813 828* 828 P_en parameter char unaligned dcl 837 in procedure "get_default_destination" ref 833 P_en parameter char unaligned dcl 815 in procedure "queue_name" set ref 813 828* P_en parameter char unaligned dcl 854 in procedure "get_destination" set ref 850 859* P_en parameter char unaligned dcl 504 in procedure "list_queue" set ref 500 506* 508* 521* 521* 523* 523* 524* 543* 543* 549* 572* 572* P_en parameter char unaligned dcl 415 in procedure "enter_one" set ref 413 434* 437* 445* P_starname parameter char unaligned dcl 459 set ref 457 474* 476* R_ACCESS constant fixed bin(5,0) initial dcl 91 ref 670 689 SEG 000075 constant bit(1) initial dcl 80 set ref 671* 690* SEG_TYPE constant bit(2) initial unaligned dcl 81 ref 377 SMA_ACCESS constant fixed bin(5,0) initial dcl 91 ref 708 S_ACCESS constant fixed bin(5,0) initial dcl 91 ref 421 a_id parameter char(32) unaligned dcl 763 ref 761 776 a_sw parameter bit(1) dcl 764 ref 761 777 779 a_type parameter fixed bin(2,0) dcl 639 set ref 635 659* 667 absolute_pathname_ 000036 constant entry external dcl 135 ref 273 312 access_dn parameter char unaligned dcl 637 set ref 635 659* 662* 669* 676* 681* 688* 694* 707* 714* 722* 735* 735 779* 781* 792* 796* 801* access_en parameter char unaligned dcl 638 set ref 635 659* 662* 669* 676* 681* 688* 694* 707* 714* 722* 735* 779* 781* 792* 796* 801* access_name 000752 automatic char(32) level 2 packed unaligned dcl 117 set ref 776* acl based structure array level 1 dcl 122 ref 626 acl_count 000722 automatic fixed bin(17,0) dcl 95 set ref 626 627 885* 886* 887 889 acl_ptr 000674 automatic pointer initial dcl 87 set ref 87* 626 626 886* 890 892 addr builtin function dcl 166 ref 449 449 518 518 519 519 536 536 538 538 561 561 561 561 605 605 608 608 772 772 779 779 781 781 859 859 addrel builtin function dcl 166 ref 561 561 admin based char(32) array unaligned dcl 72 set ref 420* 425* 627 688* 690* 694* 707* 709* 714* 887 892* admin_count 000723 automatic fixed bin(17,0) dcl 95 set ref 418 687 706 888* 891* 891 892 admin_mode 000654 automatic bit(1) initial dcl 77 set ref 77* 283* 518 521 529 536 547 592 admin_ptr 000676 automatic pointer initial dcl 87 set ref 87* 420 425 627 627 688 690 694 707 709 714 887* 892 after builtin function dcl 166 ref 867 all_queues 000655 automatic bit(1) initial dcl 77 set ref 77* 287* 347 363 592* 594* answer 000565 automatic varying char(32) dcl 70 set ref 772* 774 answer_iocbp 6 000766 automatic pointer initial level 2 dcl 1-7 set ref 1-7* area based area(1024) dcl 465 in procedure "enter_stars" ref 493 494 area based area(1024) dcl 85 in procedure "ecr" ref 200 201 614 623 624 625 626 627 628 629 655 656 749 750 756 757 869 873 887 area_ptr 000110 automatic pointer dcl 466 in procedure "enter_stars" set ref 469* 474* 493 494 area_ptr 000704 automatic pointer dcl 88 in procedure "ecr" set ref 195* 200 201 370* 518* 519* 536* 538* 614 623 624 625 626 627 628 629 655 656 723* 749 750 756 757 859* 864 869 873 886* 887 arg based char unaligned dcl 65 set ref 210 213* 215* 230 230 238 239 242* 247 247 255* 261 266 266 273* 275* 281 281 285 285 292 292 293 294 294 295 295 296 296 297 297 299* 308 312* 314* 324 331 342* arg_count 000724 automatic fixed bin(17,0) dcl 95 set ref 190* 191 200 201 206 624 625 arg_len 000725 automatic fixed bin(17,0) dcl 95 set ref 208* 210 213 213 215 215 230 230 232* 238 239 242 242 247 247 250* 255 255 261 266 266 268* 273 273 275 275 281 281 285 285 292 292 293 294 294 295 295 296 296 297 297 299 299 303* 308 312 312 314 314 324 326* 331 342 342 arg_ptr 000702 automatic pointer dcl 88 set ref 208* 210 213 215 230 230 232* 238 239 242 247 247 250* 255 261 266 266 268* 273 275 281 281 285 285 292 292 293 294 294 295 295 296 296 297 297 299 303* 308 312 314 324 326* 331 342 atime 000636 automatic char(24) unaligned dcl 73 set ref 585* 592 592 594 594 before builtin function dcl 166 ref 868 branch_status 001003 automatic structure level 1 dcl 2-1 set ref 605 605 608 608 859 859 cancelling 000656 automatic bit(1) initial dcl 77 set ref 77* 188* 354 529 542 557 569 ccr_op 000721 automatic fixed bin(17,0) initial dcl 94 set ref 94* 187 248 check_star_name_$entry 000040 constant entry external dcl 136 ref 218 255 check_star_name_$path 000042 constant entry external dcl 137 ref 317 cleanup 001040 stack reference condition dcl 168 ref 198 472 654 code 000744 automatic fixed bin(35,0) dcl 98 set ref 208* 213* 214 215* 218* 219 219 220 221* 232* 233 240* 241 241 250* 251 255* 256 256 257 268* 269 273* 274 275* 303* 304 312* 313 314* 317* 318 326* 327 370* 371 372* 389* 393* 420* 421 422 449* 450 451* 474* 475 476* 506* 508* 518* 519* 520 521 524* 525* 536* 538* 540 541 549* 561* 566* 567 571* 572 572* 605* 606 608* 609 622* 659* 660 662* 669* 670 675 676* 688* 689 707* 708 713 723* 724 724 734 734* 735* 735 789 801* 859* 860 886* code1 000745 automatic fixed bin(35,0) dcl 98 set ref 779* 781* 782 com_err_ 000044 constant entry external dcl 138 ref 215 221 234 242 252 270 275 299 305 309 314 319 328 334 342 348 355 372 393 451 476 508 524 543 549 572 662 676 681 694 714 735 com_err_$suppress_name 000046 constant entry external dcl 138 ref 192 437 801 command_query_ 000050 constant entry external dcl 139 ref 772 cp_escape_control 1(02) 000766 automatic bit(2) initial level 3 packed unaligned dcl 1-7 set ref 1-7* cu_$arg_count 000052 constant entry external dcl 140 ref 190 cu_$arg_ptr 000054 constant entry external dcl 141 ref 208 232 250 268 303 326 cu_$level_get 000056 constant entry external dcl 142 ref 397 date_time_ 000060 constant entry external dcl 143 ref 585 default_destination 000010 internal static char(23) initial unaligned dcl 53 set ref 278* 352 631* 839 840 846* default_queue_dir 000100 automatic char(168) initial unaligned dcl 55 set ref 55* 631 820 destination 000644 automatic char(23) initial unaligned dcl 74 set ref 74* 238* 352* 364 577* 592* 594* 821 823 823 825 840* 846 861* 868* dir_path 000101 automatic char(168) unaligned dcl 641 set ref 722* 723* 746* dir_type constant fixed bin(2,0) initial dcl 93 ref 442 divide builtin function dcl 166 ref 555 dn based char(168) array level 2 packed unaligned dcl 109 set ref 213* 260* 403* 405* 422* 425* 543* 543 565 565 608* ds_count 000726 automatic fixed bin(17,0) dcl 95 set ref 202* ds_sw 000657 automatic bit(1) initial dcl 77 set ref 77* 203* 237* 347 352 ecount 000160 automatic fixed bin(17,0) dcl 643 in procedure "carry_access" set ref 655 723* 744 749 756 ecount 000727 automatic fixed bin(17,0) dcl 95 in procedure "ecr" set ref 370* 376 628 ecr_op 000717 automatic fixed bin(17,0) initial dcl 94 set ref 94* 173 281 290 359 ej 000161 automatic fixed bin(17,0) dcl 643 in procedure "carry_access" set ref 744* 746* ej 000730 automatic fixed bin(17,0) dcl 95 in procedure "ecr" set ref 376* 377 378* en 000100 automatic char(32) unaligned dcl 464 in procedure "enter_stars" set ref 482* 484* en 52 based char(32) array level 2 in structure "request_array" packed unaligned dcl 109 in procedure "ecr" set ref 213* 218* 221* 261* 403* 405* 543* 566* 604 608* entries based structure array level 1 dcl 58 in procedure "ecr" ref 628 entries based structure array level 1 packed unaligned dcl 460 in procedure "enter_stars" ref 493 entries based structure array level 1 dcl 645 in procedure "carry_access" ref 655 749 756 entries_ptr 000154 automatic pointer initial dcl 642 in procedure "carry_access" set ref 642* 655 655 723* 746 749 756 entries_ptr 000706 automatic pointer dcl 88 in procedure "ecr" set ref 196* 370* 377 378 628 628 entries_ptr 000112 automatic pointer dcl 466 in procedure "enter_stars" set ref 470* 474* 482 493 493 entry_count 000116 automatic fixed bin(17,0) dcl 467 set ref 474* 480 493 entry_type based bit(2) array level 2 packed unaligned dcl 58 ref 377 error_table_$badopt 000016 external static fixed bin(35,0) dcl 100 set ref 342* error_table_$badstar 000020 external static fixed bin(35,0) dcl 101 set ref 319* error_table_$incorrect_access 000022 external static fixed bin(35,0) dcl 102 ref 422 675 713 error_table_$moderr 000024 external static fixed bin(35,0) dcl 103 ref 734 error_table_$no_message 000026 external static fixed bin(35,0) dcl 104 ref 521 541 error_table_$no_s_permission 000030 external static fixed bin(35,0) dcl 105 ref 241 error_table_$nomatch 000032 external static fixed bin(35,0) dcl 106 ref 724 exmode 11 based bit(36) array level 2 dcl 122 ref 890 expand_path_ 000062 constant entry external dcl 144 ref 561 expand_pathname_ 000064 constant entry external dcl 145 ref 213 expecting_ds 000660 automatic bit(1) initial dcl 77 set ref 77* expecting_path 000661 automatic bit(1) initial dcl 77 set ref 77* explanation_len 14 000766 automatic fixed bin(21,0) initial level 2 dcl 1-7 set ref 1-7* explanation_ptr 12 000766 automatic pointer initial level 2 dcl 1-7 set ref 1-7* first 000665 automatic bit(1) dcl 79 set ref 512* 514 516* fixed builtin function dcl 166 ref 482 865 get_group_id_$tag_star 000066 constant entry external dcl 146 ref 398 get_system_free_area_ 000070 constant entry external dcl 147 ref 195 469 group_id 000576 automatic char(32) unaligned dcl 71 set ref 398* 669* 671* 730* hcs_$add_acl_entries 000072 constant entry external dcl 148 ref 781 hcs_$add_dir_acl_entries 000074 constant entry external dcl 149 ref 779 hcs_$get_user_effmode 000076 constant entry external dcl 150 ref 420 669 688 707 hcs_$star_ 000100 constant entry external dcl 151 ref 370 474 723 hcs_$status_long 000102 constant entry external dcl 152 ref 605 608 859 hcs_$status_minf 000104 constant entry external dcl 153 ref 240 659 header_printed 000666 automatic bit(1) dcl 79 set ref 361* 529 531* hold_sw 000662 automatic bit(1) initial dcl 78 set ref 78* 292* 445* i 000732 automatic fixed bin(17,0) dcl 96 in procedure "ecr" set ref 206* 208* 231* 231 232* 249* 249 250* 267* 267 268* 302* 302 303* 325* 325 326* 401* 403 403 403 405 405* 445 445 542* 543 543 543 543* 559* 560 560 563* 565 565 566 570 586* 587 588 589 604 608 608* i 001172 automatic fixed bin(17,0) dcl 883 in procedure "get_administrators" set ref 889* 890 892* index builtin function dcl 166 ref 332 337 559 586 ioa_ 000106 constant entry external dcl 154 ref 521 523 530 547 577 592 594 596 ioa_$ioa_switch 000110 constant entry external dcl 154 ref 422 425 792 796 ioa_$ioa_switch_nnl 000112 constant entry external dcl 154 ref 800 ioa_$rs 000114 constant entry external dcl 154 ref 445 ioa_$rsnnl 000116 constant entry external dcl 154 ref 722 828 iox_$error_output 000034 external static pointer dcl 133 set ref 422* 425* 792* 796* 800* j 001156 automatic fixed bin(17,0) dcl 855 in procedure "get_destination" set ref 866* 867 868* j 000733 automatic fixed bin(17,0) dcl 96 in procedure "ecr" set ref 332* 333 337 338 687* 688 690 694* 706* 707 709 714* j 000117 automatic fixed bin(17,0) dcl 467 in procedure "enter_stars" set ref 480* 482* j 000100 automatic fixed bin(17,0) dcl 416 in procedure "enter_one" set ref 418* 420 422 425 425* k 000734 automatic fixed bin(17,0) dcl 96 set ref 337* 338 338 lcr_op 000720 automatic fixed bin(17,0) initial dcl 94 set ref 94* 180 191 192 211 286 347 length builtin function dcl 166 ref 562 828 828 level 000735 automatic fixed bin(17,0) dcl 96 set ref 397* 420* 669* 688* 707* line based char unaligned dcl 66 set ref 559 586 588 592* 594* 614 623 line_len 000736 automatic fixed bin(17,0) dcl 96 set ref 555* 559 560* 561 583* 586 588 589* 592 592 594 594 614 614 623 623 line_ptr 000700 automatic pointer initial dcl 87 set ref 87* 554* 559 561 561 586 588 592 594 614 623 623 listing 000663 automatic bit(1) initial dcl 78 set ref 78* 181* 188* 354 literal_sw 1(05) 000766 automatic bit(1) initial level 3 packed unaligned dcl 1-7 set ref 1-7* match_star_name_ 000120 constant entry external dcl 155 ref 566 matched 62(01) based bit(1) array level 2 packed unaligned dcl 109 set ref 225* 262* 543 570* message_segment_$add_index 000122 constant entry external dcl 156 ref 449 message_segment_$close 000124 constant entry external dcl 157 ref 525 622 message_segment_$delete_index 000126 constant entry external dcl 158 ref 571 message_segment_$incremental_read_index 000130 constant entry external dcl 159 ref 536 message_segment_$ms_acl_list 000132 constant entry external dcl 160 ref 886 message_segment_$open 000134 constant entry external dcl 161 ref 389 506 message_segment_$own_incremental_read_index 000136 constant entry external dcl 162 ref 538 message_segment_$own_read_index 000140 constant entry external dcl 163 ref 519 message_segment_$read_index 000142 constant entry external dcl 164 ref 518 mode 000714 automatic fixed bin(5,0) dcl 91 set ref 419* 420* 421 669* 670 688* 689 707* 708 modes 10 000752 automatic bit(36) level 2 dcl 117 set ref 777* 778* move_line 000431 automatic char(200) unaligned dcl 68 set ref 588* 591* 596 596* ms_id 14 001016 automatic bit(72) level 2 packed unaligned dcl 131 set ref 449 536* 538* 571* 584 ms_len 2 001016 automatic fixed bin(24,0) level 2 dcl 131 set ref 555 ms_ptr 001016 automatic pointer level 2 dcl 131 set ref 554 mseg_args 001016 automatic structure level 1 unaligned dcl 131 set ref 518 518 519 519 536 536 538 538 mseg_dir 000152 automatic char(168) initial unaligned dcl 55 set ref 55* 240* 273* 364* 366* 370* 372* 372 380* 382* 389* 393* 393 451* 631 820 821* 886* mseg_index 000743 automatic fixed bin(17,0) initial dcl 97 set ref 97* 389* 392 449* 506* 507 518* 519* 525* 536* 538* 571* 622 622* mseg_name 000224 automatic char(32) initial unaligned dcl 56 set ref 56* 239* 240* 364* 366* 378* 380* 382* 389* 393* 451* 821* 886* mseg_return_args based structure level 1 dcl 3-9 name_len 000731 automatic fixed bin(17,0) dcl 95 set ref 562* names based char(32) array unaligned dcl 857 in procedure "get_destination" ref 867 868 869 873 names based char(32) array unaligned dcl 63 in procedure "ecr" ref 378 629 names based char(32) array dcl 463 in procedure "enter_stars" ref 482 494 names based char(32) array unaligned dcl 650 in procedure "carry_access" set ref 656 746* 750 757 names_count 001157 automatic fixed bin(17,0) dcl 855 set ref 865* 866 869 873 names_ptr 000114 automatic pointer dcl 466 in procedure "enter_stars" set ref 470* 474* 482 494 494 names_ptr 001160 automatic pointer dcl 856 in procedure "get_destination" set ref 864* 867 868 869 873 names_ptr 000156 automatic pointer initial dcl 642 in procedure "carry_access" set ref 642* 656 656 723* 746 750 757 names_ptr 000710 automatic pointer dcl 88 in procedure "ecr" set ref 196* 370* 378 629 629 names_rel_pointer 0(18) 001003 automatic bit(18) level 2 packed unaligned dcl 2-1 set ref 864 new_dir based char(168) array unaligned dcl 114 set ref 201 226* 263* 312* 317* 319* 445 445* 625 new_dir_ptr 000750 automatic pointer initial dcl 115 set ref 115* 201* 226 263 312 317 319 445 445 625 625 new_user 000606 automatic char(32) unaligned dcl 71 set ref 204* 331* 332 337 338* 338 445 445* nindex 0(18) based fixed bin(17,0) array level 2 in structure "entries" packed unaligned dcl 645 in procedure "carry_access" ref 746 nindex 0(18) based bit(18) array level 2 in structure "entries" packed unaligned dcl 460 in procedure "enter_stars" ref 482 nindex 0(18) based fixed bin(17,0) array level 2 in structure "entries" packed unaligned dcl 58 in procedure "ecr" ref 378 no_access 000667 automatic bit(1) dcl 79 set ref 430* 436 661* 674* 693* 712* 726* 733* 748 notify_sw 000670 automatic bit(1) dcl 79 set ref 174* 295* 296* 445* null builtin function dcl 166 ref 87 87 87 115 115 196 1-7 1-7 1-7 470 493 494 605 605 608 608 623 624 625 626 627 628 629 642 642 655 656 number_names 0(02) 001003 automatic bit(16) level 2 packed unaligned dcl 2-1 set ref 865 op 000716 automatic fixed bin(17,0) dcl 94 set ref 173* 180* 187* 191 192 211 248 281 286 290 347 359 padding 1(07) 000766 automatic bit(29) initial level 3 packed unaligned dcl 1-7 set ref 1-7* path 001070 automatic char(168) unaligned dcl 816 set ref 828* 828 828 829 prompt_after_explanation 1(06) 000766 automatic bit(1) initial level 3 packed unaligned dcl 1-7 set ref 1-7* ptr builtin function dcl 166 ref 864 queried_once 000671 automatic bit(1) dcl 79 set ref 432* 766 767* query_code 3 000766 automatic fixed bin(35,0) initial level 2 dcl 1-7 set ref 1-7* query_info 000766 automatic structure level 1 dcl 1-7 set ref 772 772 query_info_version_4 constant fixed bin(17,0) initial dcl 1-34 ref 769 question_iocbp 4 000766 automatic pointer initial level 2 dcl 1-7 set ref 1-7* repeat_time 10 000766 automatic fixed bin(71,0) initial level 2 dcl 1-7 set ref 1-7* request 000234 automatic char(500) unaligned dcl 67 set ref 445* 449 449 request_array based structure array level 1 packed unaligned dcl 109 set ref 200 624 request_array_ptr 000746 automatic pointer initial dcl 115 set ref 115* 200* 213 213 218 219 221 224 225 256 258 260 261 262 403 403 403 405 405 422 425 543 543 543 543 565 565 566 570 604 608 608 624 624 request_count 000737 automatic fixed bin(17,0) dcl 96 set ref 202* 212* 212 213 213 218 219 221 224 225 226 256 258 259* 259 260 261 262 263 298 312 317 319 354 401 542 557 563 request_dir 000513 automatic char(168) unaligned dcl 69 set ref 561 561 565 572* 572 577* 605* request_id 000673 automatic bit(36) unaligned dcl 83 set ref 607* 609 request_len 000740 automatic fixed bin(17,0) dcl 96 set ref 445* 449 request_name 000616 automatic char(32) unaligned dcl 71 set ref 561 561 562 566* 572* 577* 604 605* rtrim builtin function dcl 166 ref 562 saved_line_len 000741 automatic fixed bin(17,0) dcl 96 set ref 555* 583 seg_type constant fixed bin(2,0) initial dcl 93 ref 667 segment_acl 000752 automatic structure level 1 dcl 117 set ref 779 779 781 781 sender_id 3 001016 automatic char(32) level 2 packed unaligned dcl 131 set ref 592* star_sw 62 based bit(1) array level 2 packed unaligned dcl 109 set ref 219* 224* 256* 258* 403 status_code 2 000766 automatic fixed bin(35,0) initial level 2 dcl 1-7 set ref 1-7* substr builtin function dcl 166 ref 210 337 338 588 592 592 594 594 890 suppress_name_sw 1(01) 000766 automatic bit(1) initial level 3 packed unaligned dcl 1-7 set ref 1-7* suppress_spacing 1(04) 000766 automatic bit(1) initial level 3 packed unaligned dcl 1-7 set ref 1-7* switches 1 000766 automatic structure level 2 dcl 1-7 time 000712 automatic fixed bin(71,0) dcl 90 set ref 584* 585* trim_sw 000664 automatic bit(1) initial dcl 78 set ref 78* 293* 294* 445* type 000100 automatic fixed bin(2,0) dcl 639 in procedure "carry_access" set ref 746* type 000715 automatic fixed bin(2,0) dcl 93 in procedure "ecr" set ref 434* 442 type_string 000652 automatic char(7) unaligned dcl 75 set ref 442* 443* 445* unique_id 11 001003 automatic bit(36) level 2 packed unaligned dcl 2-1 set ref 607 609 unspec builtin function dcl 166 set ref 584* user_id based char(32) array level 2 dcl 122 ref 892 version 000766 automatic fixed bin(17,0) level 2 dcl 1-7 set ref 769* walk_level 000742 automatic fixed bin(17,0) dcl 96 set ref 431* 652* 652 672 691 710 726 731 warn_hdr_printed 000672 automatic bit(1) dcl 79 set ref 430* 663* 678* 682* 696* 716* 737* 790 791* 799* yes_or_no_sw 1 000766 automatic bit(1) initial level 3 packed unaligned dcl 1-7 set ref 1-7* 770* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. directory_type internal static bit(2) initial dcl 2-1 error_table_$nostars external static fixed bin(35,0) dcl 107 i automatic fixed bin(17,0) dcl 855 link_type internal static bit(2) initial dcl 2-1 ms_arg_ptr automatic pointer dcl 3-7 msf_type internal static bit(2) initial dcl 2-1 query_info_version_3 internal static fixed bin(17,0) initial dcl 1-33 query_info_version_5 internal static fixed bin(17,0) initial dcl 1-35 query_info_version_6 internal static fixed bin(17,0) initial dcl 1-36 segment_type internal static bit(2) initial dcl 2-1 NAMES DECLARED BY EXPLICIT CONTEXT. BADOPT 003101 constant label dcl 342 ref 248 281 286 290 BAD_STARNAME 001461 constant label dcl 221 ref 257 CA_RETURN 010144 constant label dcl 809 ref 774 797 804 COMMON 001122 constant label dcl 190 ref 175 182 END 003646 constant label dcl 407 ref 439 ENTER_REQUESTS 003441 constant label dcl 389 ref 359 LIST 006136 constant label dcl 583 ref 557 LOOP 005047 constant label dcl 514 ref 616 NEXT 006506 constant label dcl 614 ref 579 597 NO_DS 011056 constant label dcl 861 ref 874 NO_S 007137 constant label dcl 676 ref 713 PROCESS 005764 constant label dcl 569 ref 609 QUEUE_RETURN 005274 constant label dcl 525 ref 550 RETURN 003650 constant label dcl 409 ref 216 222 235 243 253 271 276 300 306 310 315 320 329 335 343 349 356 373 387 394 452 STAR 007670 constant label dcl 723 ref 730 USAGE 001136 constant label dcl 192 ref 211 cancel_carry_request 001104 constant entry external dcl 184 carry_access 006646 constant entry internal dcl 635 ref 434 746 ccr 001074 constant entry external dcl 184 clean_up 006515 constant entry internal dcl 620 ref 198 409 ecr 001017 constant entry external dcl 10 enter_carry_request 001027 constant entry external dcl 10 enter_one 003656 constant entry internal dcl 413 ref 405 484 enter_stars 004437 constant entry internal dcl 457 ref 403 force_access 010145 constant entry internal dcl 761 ref 671 690 709 730 get_administrators 011157 constant entry internal dcl 878 ref 399 get_default_destination 010715 constant entry internal dcl 833 ref 364 821 get_destination 010774 constant entry internal dcl 850 ref 380 844 lcr 001045 constant entry external dcl 177 list_carry_requests 001055 constant entry external dcl 177 list_queue 004740 constant entry internal dcl 500 ref 366 382 queue_name 010545 constant entry internal dcl 813 ref 521 521 523 523 543 543 572 572 star_cleanup 004714 constant entry internal dcl 491 ref 472 487 warn 010366 constant entry internal dcl 787 ref 672 691 710 731 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 12126 12272 11307 12136 Length 12706 11307 144 400 617 6 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME ecr 975 external procedure is an external procedure. on unit on line 198 64 on unit enter_one 200 internal procedure is called by several nonquick procedures. enter_stars 130 internal procedure enables or reverts conditions. on unit on line 472 64 on unit star_cleanup 64 internal procedure is called by several nonquick procedures. list_queue internal procedure shares stack frame of external procedure ecr. clean_up 70 internal procedure is called by several nonquick procedures. carry_access 348 internal procedure enables or reverts conditions. on unit on line 654 64 on unit force_access internal procedure shares stack frame of internal procedure carry_access. warn internal procedure shares stack frame of internal procedure carry_access. queue_name internal procedure shares stack frame of external procedure ecr. get_default_destination internal procedure shares stack frame of external procedure ecr. get_destination internal procedure shares stack frame of external procedure ecr. get_administrators internal procedure shares stack frame of external procedure ecr. STORAGE FOR INTERNAL STATIC VARIABLES. LOC IDENTIFIER BLOCK NAME 000010 default_destination ecr STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME carry_access 000100 type carry_access 000101 dir_path carry_access 000154 entries_ptr carry_access 000156 names_ptr carry_access 000160 ecount carry_access 000161 ej carry_access ecr 000100 default_queue_dir ecr 000152 mseg_dir ecr 000224 mseg_name ecr 000234 request ecr 000431 move_line ecr 000513 request_dir ecr 000565 answer ecr 000576 group_id ecr 000606 new_user ecr 000616 request_name ecr 000626 ME ecr 000636 atime ecr 000644 destination ecr 000652 type_string ecr 000654 admin_mode ecr 000655 all_queues ecr 000656 cancelling ecr 000657 ds_sw ecr 000660 expecting_ds ecr 000661 expecting_path ecr 000662 hold_sw ecr 000663 listing ecr 000664 trim_sw ecr 000665 first ecr 000666 header_printed ecr 000667 no_access ecr 000670 notify_sw ecr 000671 queried_once ecr 000672 warn_hdr_printed ecr 000673 request_id ecr 000674 acl_ptr ecr 000676 admin_ptr ecr 000700 line_ptr ecr 000702 arg_ptr ecr 000704 area_ptr ecr 000706 entries_ptr ecr 000710 names_ptr ecr 000712 time ecr 000714 mode ecr 000715 type ecr 000716 op ecr 000717 ecr_op ecr 000720 lcr_op ecr 000721 ccr_op ecr 000722 acl_count ecr 000723 admin_count ecr 000724 arg_count ecr 000725 arg_len ecr 000726 ds_count ecr 000727 ecount ecr 000730 ej ecr 000731 name_len ecr 000732 i ecr 000733 j ecr 000734 k ecr 000735 level ecr 000736 line_len ecr 000737 request_count ecr 000740 request_len ecr 000741 saved_line_len ecr 000742 walk_level ecr 000743 mseg_index ecr 000744 code ecr 000745 code1 ecr 000746 request_array_ptr ecr 000750 new_dir_ptr ecr 000752 segment_acl ecr 000766 query_info ecr 001003 branch_status ecr 001016 mseg_args ecr 001070 path queue_name 001156 j get_destination 001157 names_count get_destination 001160 names_ptr get_destination 001172 i get_administrators enter_one 000100 j enter_one enter_stars 000100 en enter_stars 000110 area_ptr enter_stars 000112 entries_ptr enter_stars 000114 names_ptr enter_stars 000116 entry_count enter_stars 000117 j enter_stars THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. r_e_as r_ne_as alloc_cs call_ext_out_desc call_ext_out call_int_this_desc call_int_this call_int_other_desc call_int_other return tra_ext mpfx2 enable shorten_stack ext_entry int_entry int_entry_desc set_cs_eis index_cs_eis alloc_based free_based THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. absolute_pathname_ check_star_name_$entry check_star_name_$path com_err_ com_err_$suppress_name command_query_ cu_$arg_count cu_$arg_ptr cu_$level_get date_time_ expand_path_ expand_pathname_ get_group_id_$tag_star get_system_free_area_ hcs_$add_acl_entries hcs_$add_dir_acl_entries hcs_$get_user_effmode hcs_$star_ hcs_$status_long hcs_$status_minf ioa_ ioa_$ioa_switch ioa_$ioa_switch_nnl ioa_$rs ioa_$rsnnl match_star_name_ message_segment_$add_index message_segment_$close message_segment_$delete_index message_segment_$incremental_read_index message_segment_$ms_acl_list message_segment_$open message_segment_$own_incremental_read_index message_segment_$own_read_index message_segment_$read_index THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$badopt error_table_$badstar error_table_$incorrect_access error_table_$moderr error_table_$no_message error_table_$no_s_permission error_table_$nomatch iox_$error_output LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 55 000722 56 000730 74 000733 77 000736 78 000744 87 000747 94 000753 97 000761 115 000762 1 7 000765 10 001016 172 001035 173 001040 174 001042 175 001043 177 001044 179 001063 180 001066 181 001070 182 001072 184 001073 186 001112 187 001115 188 001117 190 001122 191 001131 192 001136 193 001176 195 001177 196 001206 198 001211 200 001233 201 001243 202 001251 203 001253 204 001254 206 001257 208 001267 210 001304 211 001311 212 001314 213 001315 214 001360 215 001362 216 001414 218 001415 219 001442 220 001457 221 001461 222 001520 224 001521 225 001530 226 001536 227 001545 230 001546 231 001557 232 001560 233 001575 234 001577 235 001624 237 001625 238 001627 239 001634 240 001650 241 001712 242 001717 243 001752 245 001753 247 001754 248 001764 249 001767 250 001770 251 002005 252 002007 253 002034 255 002035 256 002055 257 002072 258 002074 259 002103 260 002104 261 002111 262 002116 263 002122 264 002131 266 002132 267 002142 268 002143 269 002160 270 002162 271 002207 273 002210 274 002234 275 002236 276 002270 278 002271 279 002275 281 002276 283 002311 285 002314 286 002324 287 002327 288 002331 290 002332 292 002335 293 002350 294 002357 295 002371 296 002404 297 002416 298 002426 299 002430 300 002464 302 002465 303 002466 304 002503 305 002505 306 002532 308 002533 309 002541 310 002566 312 002567 313 002620 314 002622 315 002654 317 002655 318 002677 319 002701 320 002735 322 002736 324 002737 325 002743 326 002744 327 002761 328 002763 329 003010 331 003011 332 003016 333 003027 334 003030 335 003055 337 003056 338 003072 339 003100 342 003101 343 003133 345 003134 347 003136 348 003146 349 003173 352 003174 354 003202 355 003210 356 003235 359 003236 361 003241 363 003242 364 003245 366 003254 367 003257 370 003260 371 003332 372 003334 373 003400 376 003401 377 003411 378 003416 380 003430 382 003433 384 003436 387 003440 389 003441 392 003466 393 003470 394 003535 397 003536 398 003545 399 003554 401 003555 403 003565 405 003622 407 003646 409 003650 411 003654 413 003655 418 003676 419 003707 420 003711 421 003756 422 003764 425 004024 428 004067 430 004071 431 004074 432 004075 434 004076 436 004121 437 004124 439 004204 442 004207 443 004215 445 004220 449 004345 450 004375 451 004400 452 004432 455 004435 457 004436 469 004457 470 004465 472 004470 474 004512 475 004560 476 004563 477 004635 480 004636 482 004645 484 004665 485 004704 487 004706 489 004712 491 004713 493 004721 494 004730 496 004737 500 004740 506 004756 507 005005 508 005007 509 005044 512 005045 514 005047 516 005051 518 005052 519 005100 520 005123 521 005125 523 005175 524 005240 525 005274 526 005305 529 005306 530 005314 531 005330 533 005332 536 005333 538 005363 540 005410 541 005412 542 005415 543 005427 546 005545 547 005547 548 005562 549 005563 550 005617 554 005620 555 005622 557 005627 559 005633 560 005645 561 005647 562 005700 563 005712 565 005721 566 005734 567 005762 569 005764 570 005766 571 005775 572 006010 577 006105 579 006135 583 006136 584 006140 585 006142 586 006157 587 006166 588 006167 589 006176 590 006201 591 006202 592 006205 594 006257 596 006322 597 006345 600 006346 604 006347 605 006353 606 006415 607 006417 608 006421 609 006477 612 006504 614 006506 616 006513 620 006514 622 006522 623 006535 624 006547 625 006562 626 006573 627 006604 628 006615 629 006624 631 006633 633 006644 635 006645 642 006666 652 006671 654 006673 655 006707 656 006716 657 006725 659 006726 660 006771 661 006774 662 006776 663 007033 664 007035 667 007036 669 007042 670 007100 671 007106 672 007123 674 007131 675 007133 676 007137 678 007176 679 007200 681 007201 682 007237 683 007241 687 007242 688 007254 689 007320 690 007326 691 007346 693 007354 694 007356 696 007426 697 007430 701 007431 702 007434 706 007435 707 007446 708 007512 709 007520 710 007540 712 007546 713 007550 714 007554 716 007623 717 007625 721 007626 722 007631 723 007670 724 007740 726 007746 727 007753 730 007754 731 007771 733 007777 734 010001 735 010006 737 010064 738 010066 744 010067 746 010077 748 010126 749 010131 750 010133 751 010135 754 010136 756 010140 757 010142 809 010144 761 010145 766 010147 767 010152 769 010154 770 010156 772 010160 774 010220 776 010226 777 010233 778 010242 779 010244 781 010310 782 010347 783 010360 787 010366 789 010367 790 010372 791 010374 792 010376 795 010430 796 010431 797 010462 799 010463 800 010464 801 010505 804 010544 813 010545 820 010563 821 010567 823 010576 825 010614 828 010633 829 010707 833 010715 839 010733 840 010740 841 010743 844 010744 846 010764 848 010773 850 010774 859 011012 860 011054 861 011056 862 011061 864 011062 865 011067 866 011073 867 011101 868 011132 869 011143 870 011147 872 011150 873 011152 874 011156 878 011157 885 011160 886 011162 887 011216 888 011224 889 011225 890 011235 891 011244 892 011245 894 011256 896 011260 ----------------------------------------------------------- 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