COMPILATION LISTING OF SEGMENT operator_mc_cmds_ Compiled by: Multics PL/I Compiler, Release 30, of February 16, 1988 Compiled at: Honeywell Bull, Phoenix AZ, SysM Compiled on: 07/20/88 1038.6 mst Wed Options: optimize map 1 /****^ *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Bull Inc., 1987 * 4* * * 5* * Copyright, (C) Honeywell Information Systems Inc., 1985 * 6* * * 7* *********************************************************** */ 8 9 /****^ HISTORY COMMENTS: 10* 1) change(86-01-07,MSharpe), approve(87-07-09,MCR7690), 11* audit(87-07-30,Parisek), install(87-08-04,MR12.1-1055): 12* Removed the message_coordinator commands from admin_ and created this 13* program. Added accept_vchn which accepts virtual channel names. Fixed 14* accept to leave broadcast list alone if not specified. 15* 2) change(87-04-07,Parisek), approve(87-07-09,MCR7690), 16* audit(87-08-03,Beattie), install(87-08-04,MR12.1-1055): 17* Bypass printing error message on MC terminal if code returned by 18* mc_commands_$new_tty is error_table_$ioname_not_active. We don't care if 19* it's not active cause if not it will become active after "accept". 20* 3) change(87-04-26,GDixon), approve(87-07-09,MCR7690), 21* audit(87-07-30,Parisek), install(87-08-04,MR12.1-1055): 22* Upgraded for change to answer_table.incl.pl1. 23* 4) change(87-06-25,Parisek), approve(87-06-25,MCR7690), 24* audit(87-08-03,Beattie), install(87-08-04,MR12.1-1055): 25* Created a new internal procedure for searching the answer table for DSA MC 26* user (no proc), and send a "bump" wakeup to AS to remove the ute for the 27* user only when "drop" or "substty" is called. 28* 5) change(87-06-29,Parisek), approve(87-06-29,MCR7690), 29* audit(87-08-03,Beattie), install(87-08-04,MR12.1-1055): 30* Ignore error_table_$action_not_performed returned from asu_$bump_user if 31* dsa channel. 32* END HISTORY COMMENTS */ 33 34 /* format: style4,indattr */ 35 36 37 operator_mc_cmds_: 38 proc (); 39 40 /* AUTOMATIC */ 41 42 dcl answer char (256) init (""); 43 dcl arg_count fixed bin (17); 44 dcl arg_index fixed bin (17); 45 dcl arg_length fixed bin (21); 46 dcl arg_list_ptr ptr; 47 dcl arg_ptr ptr; 48 dcl attauth bit (36); /* .. privilege bits */ 49 dcl attchan char (32); /* .. channel ID or file name */ 50 dcl attchan1 char (32); /* .. channel ID or file name */ 51 dcl attype char (8); /* .. attachment type (file or tty) */ 52 dcl auth_flag bit (1) aligned; 53 dcl bc_flag bit (1) aligned; 54 dcl bc_list char (329) aligned; /* 10 char (32) + 9 separating commas */ 55 dcl cdte_flag bit (1) aligned; /* 1=>attchan is defined in cdt */ 56 dcl code fixed bin (35); 57 dcl comname char (32) aligned; 58 dcl dsa_flag bit (1) aligned; /* dsa channel specified */ 59 dcl iutep ptr; /* Initializer's utep */ 60 dcl reply_target char (32); 61 dcl source char (8); /* Source name, used in "route" */ 62 dcl stream char (32); /* .. stream name */ 63 dcl target_flag bit (1) aligned; 64 dcl vcon char (32); /* .. virtual console name */ 65 dcl vcon1 char (32); /* .. virtual console name */ 66 dcl virtual_dsa bit (1) aligned; /* virtual dsa channel ident */ 67 68 dcl 1 CAI structure aligned like channel_audit_info automatic; 69 70 /* CONSTANTS */ 71 72 declare (TRUE init ("1"b), 73 FALSE init (""b)) bit (1) aligned int static options (constant); 74 75 /* BASED */ 76 77 dcl arg char (arg_length) based (arg_ptr); 78 79 /* BUILTIN */ 80 81 dcl (addr, index, length, null, rtrim, substr) builtin; 82 83 /* ENTRY */ 84 85 dcl as_access_audit_$channel 86 entry (ptr, ptr, ptr, fixed bin, ptr, char(*)); 87 dcl asu_$bump_user entry (ptr, char (*), fixed bin (35), fixed bin); 88 dcl cu_$arg_list_ptr entry returns (ptr); 89 dcl cu_$arg_ptr_rel entry (fixed bin, ptr, fixed bin (21), fixed bin (35), ptr); 90 dcl cu_$arg_count_rel entry (fixed bin, ptr, fixed bin (35)); 91 dcl cv_oct_check_ entry (char (*), fixed bin (35)) returns (bit (36)); 92 dcl get_process_access_class_ 93 entry () returns (bit (72) aligned); 94 dcl get_process_id_ entry () returns (bit (36)); 95 dcl hcs_$initiate entry (char (*), char (*), char (*), fixed bin (1), fixed bin (2), ptr, fixed bin (35)); 96 dcl initiate_file_ entry (char (*), char (*), bit (*), ptr, fixed bin (24), fixed bin (35)); 97 dcl ioa_$rsnnl entry options (variable); 98 dcl mc_commands_$new_tty entry (char (*), bit (36), bit (1) aligned, 99 ptr, fixed bin (35)); 100 dcl mc_commands_$new_vchannel 101 entry (char (*), bit (36), ptr, fixed bin (35)); 102 dcl mc_commands_$set_restrict 103 entry (char (*), char (*), fixed bin (35)); 104 dcl mc_commands_$set_broadcast 105 entry (char (*), char (*), fixed bin (35)); 106 dcl mc_commands_$remove_tty 107 entry (char (*), bit (1) aligned, fixed bin (35)); 108 dcl mc_commands_$define entry (char (*), char (*), char (*), fixed bin (35)); 109 dcl mc_commands_$deroute entry (char (*), char (*), char (*), fixed bin (35)); 110 dcl mc_commands_$route entry (char (*), char (*), char (*), char (*), fixed bin (35)); 111 dcl mc_commands_$reroute entry (char (*), char (*), char (*), char (*), char (*), fixed bin (35)); 112 dcl mc_commands_$undefine entry (char (*), char (*), fixed bin (35)); 113 dcl mc_commands_$redefine entry (char (*), char (*), char (*), char (*), fixed bin (35)); 114 dcl mc_commands_$substty entry (char (*), char (*), bit (1) aligned, ptr, 115 bit (1) aligned, fixed bin (35)); 116 dcl sys_log_$command entry options (variable); 117 dcl sys_log_$command_error entry options (variable); 118 dcl terminate_file_ entry (ptr, fixed bin (24), bit (*), fixed bin (35)); 119 120 /* EXTERNAL */ 121 122 dcl error_table_$action_not_performed 123 fixed bin(35) ext static; 124 dcl error_table_$bad_arg fixed bin (35) ext; 125 dcl error_table_$bad_channel 126 fixed bin (35) ext; 127 dcl error_table_$badopt fixed bin (35) ext; 128 dcl error_table_$ioname_not_active 129 fixed bin (35) ext; 130 dcl error_table_$ioname_not_found 131 fixed bin (35) ext; 132 dcl error_table_$ionmat fixed bin (35) ext; 133 dcl error_table_$noentry fixed bin (35) ext; 134 135 136 /* The following ten entries are used to invoke service functions of 137* the answering service message coordinator program, which distributes 138* messages from sources within the answering service and sources in 139* daemon processes attached via "mrd_", to virtual consoles which in 140* turn are connected either to real channels or to logs. 141**/ 142 accept: 143 entry options (variable); 144 145 /**** The operator "accept" command. It adds a new terminal to the 146* message coordinator. */ 147 148 dutp = as_data_$dutp; 149 iutep = addr (dutbl.entry (1)); /* Initializer's utep for audit */ 150 151 arg_list_ptr = cu_$arg_list_ptr (); 152 comname = "operator_mc_cmds_: accept"; /* Set up command name for err msg */ 153 154 call validate; /* locate answer table */ 155 answer = "Usage: accept channel_id {authority} {target} {broadcast_list}"; 156 arg_index = 1; 157 call cu_$arg_ptr_rel (arg_index, arg_ptr, arg_length, code, 158 arg_list_ptr); /* arg 1 is tty id */ 159 if code ^= 0 160 then go to ERROR_RETURN; /* required */ 161 162 attchan = arg; 163 164 if attchan = "otw_" 165 then do; 166 answer = "This name is reserved for the system console."; 167 code = error_table_$bad_channel; 168 goto ERROR_RETURN; 169 end; 170 171 else if index (attchan, ".") ^= 0 172 then do; 173 cdtep = null (); /* may not be a terminal */ 174 if index (attchan, "dsa.") = 1 /* not in cdte; this test should be modified when other 175* formats of channel names become acceptable */ 176 177 then cdte_flag = ""b; 178 else do; 179 cdte_flag = "1"b; 180 call check_acceptable (code); /* make sure not used by answering service */ 181 182 if code ^= 0 183 then go to ANSWER_RETURN; /* error message will have been set up */ 184 end; 185 186 if cdtep ^= null () /* if an MCS channel ... */ 187 then cdte.current_service_type = MC_SERVICE; 188 /* flag as MC channel */ 189 end; 190 191 arg_index = arg_index + 1; 192 auth_flag = "1"b; /* assume authority is supplied */ 193 call cu_$arg_ptr_rel (arg_index, arg_ptr, arg_length, code, 194 arg_list_ptr); 195 if code ^= 0 196 then do; 197 auth_flag = ""b; /* authority not supplied */ 198 attauth = (36)"1"b; /* second arg, if supplied, is privilege level */ 199 end; 200 else if arg = "full" 201 then attauth = (36)"1"b; /* full is the current default */ 202 else if arg = "none" 203 then attauth = (36)"0"b; /* output-only terminals are ok */ 204 else if arg = "reply" 205 then do; /* as are reply-only */ 206 attauth = "0"b; 207 addr (attauth) -> rcodebits.reply = "1"b; 208 /* system_control_ checks these bits when command issured */ 209 end; 210 else if arg = "daemon" 211 then do; /* also daemon-control */ 212 attauth = "0"b; 213 addr (attauth) -> rcodebits.reply = "1"b; 214 addr (attauth) -> rcodebits.intercom = "1"b; 215 addr (attauth) -> rcodebits.exec = "1"b; 216 end; 217 else if arg = "query" 218 then do; /* almost zero privilege */ 219 attauth = "0"b; 220 addr (attauth) -> rcodebits.status = "1"b; 221 end; 222 else do; /* Assume octal. */ 223 attauth = cv_oct_check_ (arg, code); 224 if code ^= 0 225 then do; 226 answer = "unknown privilege code"; 227 go to ANSWER_RETURN; 228 end; 229 end; 230 231 answer = "Failed to accept " || attchan || "."; /* prepare error message */ 232 call mc_commands_$new_tty (attchan, attauth, cdte_flag, arg_ptr, 233 code); /* grab the new tty and set it up; 234* arg_ptr is actually superfluous here; turn_on_mc_ 235* uses the value returned for the system console */ 236 237 if code = error_table_$ionmat 238 then do; 239 call cu_$arg_count_rel (arg_count, arg_list_ptr, (0)); 240 if arg_count = arg_index 241 then do; 242 if ^auth_flag 243 then /* no new value supplied */ 244 call sys_log_$command (SL_LOG, "operator_mc_cmds_: accept: ^a set to ""full"".", attchan); 245 go to RETURN; 246 end; 247 code = 0; /* go ahead and reset other attributes */ 248 end; 249 250 if code = error_table_$ioname_not_active then; /* Suppress error message on MC terminal */ 251 else if code ^= 0 then do; 252 if code = error_table_$ioname_not_found 253 then answer = "Channel " || attchan || "is not in Message Coordinator service."; 254 go to ERROR_RETURN; 255 end; 256 257 arg_index = arg_index + 1; 258 call cu_$arg_ptr_rel (arg_index, arg_ptr, arg_length, code, 259 arg_list_ptr); /* Next argument may be reply restricter. */ 260 if code ^= 0 261 then do; 262 call AUDIT_OK (); 263 goto RETURN; /* leave the rest alone */ 264 end; 265 if arg ^= "*" 266 then do; 267 answer = "Failed to set restriction to " || arg || "."; 268 call mc_commands_$set_restrict (attchan, arg, code); 269 if code ^= 0 270 then go to ERROR_RETURN; 271 end; 272 else do; 273 answer = "Failed to reset restriction."; 274 call mc_commands_$set_restrict (attchan, "", code); 275 if code ^= 0 276 then go to ERROR_RETURN; 277 end; 278 279 arg_index = arg_index + 1; 280 call cu_$arg_ptr_rel (arg_index, arg_ptr, arg_length, code, 281 arg_list_ptr); /* Next argument maybe broadcast list. */ 282 if code = 0 283 then do; /* optional. */ 284 answer = "Failed to set broadcast list to " || arg || "."; 285 call mc_commands_$set_broadcast (attchan, arg, code); 286 if code ^= 0 287 then go to ERROR_RETURN; 288 end; 289 290 call AUDIT_OK (); 291 go to RETURN; 292 293 294 accept_vchn: 295 entry options (variable); 296 297 /**** The operator "accept_vchn" command. It adds a new virtual channel 298* to the message coordinator. Virtual channels thus defined must be 299* manually accepted by an operator when a user attempts to use them.*/ 300 301 arg_list_ptr = cu_$arg_list_ptr (); 302 comname = "operator_mc_cmds_: accept_vchn"; /* Set up command name for err msg */ 303 304 call validate; /* locate answer table */ 305 answer = "Usage: accept_vchn channel_id -auth authority -target reply_target -bc_list input_broadcast_list"; 306 call cu_$arg_ptr_rel (1, arg_ptr, arg_length, code, arg_list_ptr); 307 /* arg 1 is tty id */ 308 if code ^= 0 309 then go to ERROR_RETURN; /* required */ 310 311 attchan = arg; /* copy arg */ 312 313 if index (attchan, ".") ^= 0 314 then do; 315 answer = rtrim (attchan) || 316 ". Virtual channel names may not contain a ""."""; 317 code = error_table_$bad_channel; 318 goto ERROR_RETURN; 319 end; 320 321 else if attchan = "otw_" 322 then do; 323 answer = "This name is reserved for the system console."; 324 code = error_table_$bad_channel; 325 goto ERROR_RETURN; 326 end; 327 328 auth_flag, target_flag, bc_flag = ""b; 329 reply_target, bc_list = ""; 330 331 arg_index = 2; 332 do while (arg_index <= arg_count); 333 call cu_$arg_ptr_rel (arg_index, arg_ptr, arg_length, code, arg_list_ptr); 334 arg_index = arg_index + 1; 335 336 if arg = "-auth" | arg = "-authority" 337 then do; 338 auth_flag = "1"b; /* necessary arg */ 339 340 call cu_$arg_ptr_rel (arg_index, arg_ptr, arg_length, code, arg_list_ptr); 341 if code ^= 0 342 then goto ERROR_RETURN; 343 344 arg_index = arg_index + 1; 345 346 if arg = "full" 347 then attauth = (36)"1"b; /* full is the current default */ 348 else if arg = "none" 349 then attauth = (36)"0"b; /* output-only terminals are ok */ 350 else if arg = "reply" 351 then do; /* as are reply-only */ 352 attauth = "0"b; 353 addr (attauth) -> rcodebits.reply = "1"b; 354 /* system_control_ checks these bits when command issued */ 355 end; 356 357 else if arg = "daemon" 358 then do; /* also daemon-control */ 359 attauth = "0"b; 360 addr (attauth) -> rcodebits.reply = "1"b; 361 addr (attauth) -> rcodebits.intercom = "1"b; 362 addr (attauth) -> rcodebits.exec = "1"b; 363 end; 364 365 else if arg = "query" 366 then do; /* almost zero privilege */ 367 attauth = "0"b; 368 addr (attauth) -> rcodebits.status = "1"b; 369 end; 370 371 else do; /* bad arg */ 372 code = error_table_$bad_arg; 373 answer = 374 "-auth may be followed by one of the following:^/ full, none, reply, daemon, query" 375 ; 376 377 go to ERROR_RETURN; 378 end; 379 end; 380 381 else if arg = "-target" 382 then do; 383 call cu_$arg_ptr_rel (arg_index, arg_ptr, arg_length, code, arg_list_ptr); 384 if code ^= 0 385 then goto ERROR_RETURN; 386 387 target_flag = "1"b; 388 arg_index = arg_index + 1; 389 390 if arg_length > length (reply_target) 391 then do; 392 code = error_table_$bad_arg; 393 answer = "Bad reply target: " || arg; 394 goto ERROR_RETURN; 395 end; 396 397 reply_target = arg; 398 end; 399 400 else if arg = "-bc_list" | arg = "-bcl" 401 then do; 402 call cu_$arg_ptr_rel (arg_index, arg_ptr, arg_length, code, arg_list_ptr); 403 if code ^= 0 404 then goto ERROR_RETURN; 405 406 bc_flag = "1"b; 407 arg_index = arg_index + 1; 408 if arg_length > length (bc_list) 409 then do; 410 code = error_table_$bad_arg; 411 answer = "Bad broadcast list: " || arg; 412 goto ERROR_RETURN; 413 end; 414 bc_list = arg; 415 end; 416 else do; 417 code = error_table_$badopt; 418 answer = "Argument not accepted: " || arg; 419 goto ERROR_RETURN; 420 end; 421 end; 422 423 if ^auth_flag 424 then attauth = (36)"1"b; 425 426 answer = "Failed to accept " || attchan || "."; 427 428 call mc_commands_$new_vchannel (attchan, attauth, arg_ptr, code); 429 /* set up a new virtual channel */ 430 431 if code = error_table_$ionmat 432 then do; 433 if ^auth_flag /* no new value supplied */ 434 /* so report that we assumed default */ 435 then call sys_log_$command (SL_LOG, "operator_mc_cmds_: accept_vchn: ^a set to ""full"".", attchan); 436 if ^bc_flag & ^target_flag /* user specified nothing else to do; */ 437 then goto RETURN; 438 439 code = 0; /* go ahead and reset other attributes */ 440 end; 441 442 443 if code ^= 0 444 then go to ERROR_RETURN; 445 446 if target_flag 447 then do; 448 449 if reply_target ^= "*" 450 then do; 451 answer = "Failed to set restriction to " || reply_target 452 || "."; 453 call mc_commands_$set_restrict (attchan, reply_target, 454 code); 455 if code ^= 0 456 then go to ERROR_RETURN; 457 end; 458 else do; 459 answer = "Failed to reset restriction."; 460 call mc_commands_$set_restrict (attchan, "", code); 461 if code ^= 0 462 then go to ERROR_RETURN; 463 end; 464 end; 465 466 if bc_flag 467 then do; 468 answer = "Failed to set broadcast list to " || rtrim(bc_list) || "."; 469 call mc_commands_$set_broadcast (attchan, (rtrim (bc_list)), 470 code); 471 if code ^= 0 472 then go to ERROR_RETURN; 473 end; 474 475 go to RETURN; 476 477 478 /* Make entry in Message Routing Table */ 479 480 route: 481 entry options (variable); 482 arg_list_ptr = cu_$arg_list_ptr (); 483 comname = "operator_mc_cmds_: route"; 484 call validate; 485 answer = "Incorrect number of arguments."; 486 call cu_$arg_ptr_rel (1, arg_ptr, arg_length, code, arg_list_ptr); 487 /* Get first argument, source id */ 488 if code ^= 0 489 then go to ERROR_RETURN; 490 source = arg; /* Copy source id */ 491 call cu_$arg_ptr_rel (2, arg_ptr, arg_length, code, arg_list_ptr); 492 if code ^= 0 493 then go to ERROR_RETURN; 494 stream = arg; /* Copy stream id */ 495 call cu_$arg_ptr_rel (3, arg_ptr, arg_length, code, arg_list_ptr); 496 /* get vcon */ 497 if code ^= 0 498 then go to ERROR_RETURN; 499 if substr (arg, 1, 1) = "*" 500 then do; /* Want to ring the bell? */ 501 attype = "alarm"; /* yes. */ 502 vcon = substr (arg, 2); 503 end; 504 else do; 505 attype = ""; 506 vcon = arg; 507 end; 508 answer = "route unsuccessful."; 509 call mc_commands_$route (source, stream, vcon, attype, code); 510 if code ^= 0 511 then go to ERROR_RETURN; 512 go to RETURN; 513 514 /* Define virtual console */ 515 516 define: 517 entry options (variable); 518 arg_list_ptr = cu_$arg_list_ptr (); 519 comname = "operator_mc_cmds_: define"; 520 call validate; 521 answer = "Incorrect number of arguments."; 522 call cu_$arg_ptr_rel (1, arg_ptr, arg_length, code, arg_list_ptr); 523 /* first arg is vcon id */ 524 if code ^= 0 525 then go to ERROR_RETURN; 526 vcon = arg; 527 call cu_$arg_ptr_rel (2, arg_ptr, arg_length, code, arg_list_ptr); 528 /* get attachment type */ 529 if code ^= 0 530 then go to ERROR_RETURN; 531 attype = arg; 532 call cu_$arg_ptr_rel (3, arg_ptr, arg_length, code, arg_list_ptr); 533 /* get channel id */ 534 if code ^= 0 535 then go to ERROR_RETURN; 536 attchan = arg; 537 answer = "define unsuccessful."; 538 call mc_commands_$define (vcon, attype, attchan, code); 539 if code ^= 0 540 then go to ERROR_RETURN; 541 go to RETURN; 542 543 /* Redefine destination for virtual console */ 544 545 redefine: 546 entry options (variable); 547 arg_list_ptr = cu_$arg_list_ptr (); 548 comname = "operator_mc_cmds_: redefine"; 549 call validate; 550 answer = "Incorrect number of arguments."; 551 call cu_$arg_ptr_rel (1, arg_ptr, arg_length, code, arg_list_ptr); 552 /* get vocn */ 553 if code ^= 0 554 then go to ERROR_RETURN; 555 vcon = arg; 556 call cu_$arg_ptr_rel (2, arg_ptr, arg_length, code, arg_list_ptr); 557 /* get dest */ 558 if code ^= 0 559 then go to ERROR_RETURN; 560 attchan = arg; 561 call cu_$arg_ptr_rel (3, arg_ptr, arg_length, code, arg_list_ptr); 562 if code ^= 0 563 then go to ERROR_RETURN; 564 attype = arg; 565 call cu_$arg_ptr_rel (4, arg_ptr, arg_length, code, arg_list_ptr); 566 if code ^= 0 567 then go to ERROR_RETURN; 568 attchan1 = arg; 569 answer = "redefine unsuccessful."; 570 call mc_commands_$redefine (vcon, attchan, attype, attchan1, code); 571 if code ^= 0 572 then go to ERROR_RETURN; 573 go to RETURN; 574 575 /* Undefine channel from virtual console. (formerly deldest) */ 576 577 undefine: 578 entry options (variable); 579 arg_list_ptr = cu_$arg_list_ptr (); 580 comname = "operator_mc_cmds_: undefine"; 581 call validate; 582 answer = "Incorrect number of arguments."; 583 call cu_$arg_ptr_rel (1, arg_ptr, arg_length, code, arg_list_ptr); 584 /* get vcon */ 585 if code ^= 0 586 then go to ERROR_RETURN; 587 vcon = arg; 588 call cu_$arg_ptr_rel (2, arg_ptr, arg_length, code, arg_list_ptr); 589 /* get dest */ 590 if code ^= 0 591 then go to ERROR_RETURN; 592 attchan = arg; 593 answer = "undefine unsuccessful."; 594 call mc_commands_$undefine (vcon, attchan, code); 595 if code ^= 0 596 then go to ERROR_RETURN; 597 go to RETURN; 598 599 /* Swap one destination (terminal or file) for another */ 600 601 substty: 602 entry options (variable); 603 arg_list_ptr = cu_$arg_list_ptr (); 604 comname = "operator_mc_cmds_: substty"; 605 call validate; 606 answer = "Incorrect number of arguments."; 607 call cu_$arg_ptr_rel (1, arg_ptr, arg_length, code, arg_list_ptr); 608 /* get channel */ 609 if code ^= 0 610 then go to ERROR_RETURN; 611 attchan1 = arg; 612 613 virtual_dsa = ""b; 614 if (index (attchan1, "dsa.") = 1) | (index (attchan1, ".") = 0) then do; 615 dsa_flag = "1"b; 616 if index (attchan1, ".") = 0 then virtual_dsa = "1"b; 617 end; 618 else dsa_flag = ""b; 619 call cu_$arg_ptr_rel (2, arg_ptr, arg_length, code, arg_list_ptr); 620 /* get new channel */ 621 if code ^= 0 622 then go to ERROR_RETURN; 623 attchan = arg; 624 if attchan = attchan1 625 then do; /* bad idea */ 626 answer = "cannot substty for same channel"; 627 go to ANSWER_RETURN; 628 end; 629 if index (attchan, "dsa.") = 1 630 then cdte_flag = ""b; 631 else if (index (attchan, ".") ^= 0) | (attchan = "otw_") 632 then do; 633 call check_acceptable (code); 634 if code ^= 0 635 then go to ANSWER_RETURN; /* answer set up by check_acceptable */ 636 637 if attchan ^= "otw_" 638 then cdte.current_service_type = MC_SERVICE; /* mark as belonging to MC */ 639 cdte_flag = "1"b; 640 end; 641 642 if dsa_flag then call process_dsa_ute ((attchan1)); 643 644 answer = "removing channel " || attchan1; 645 call mc_commands_$substty (attchan1, attchan, cdte_flag, arg_ptr, 646 "1"b, code); /* arg_ptr is actually useless; it's required because 647* turn_on_mc_ and mc_commands_$substty use it to get 648* the value returned from mc_commands_$new_tty */ 649 650 if code = error_table_$action_not_performed 651 then do; 652 call ioa_$rsnnl ("Channel ^a not dialed to initializer", 653 answer, (0), attchan); 654 goto ANSWER_RETURN; 655 end; 656 if code = error_table_$noentry 657 then do; 658 call ioa_$rsnnl ("Channel ^a not configured.", answer, (0), 659 attchan1); 660 goto ANSWER_RETURN; 661 end; 662 else if code ^= 0 663 then goto ERROR_RETURN; 664 665 goto RETURN; 666 667 deroute: 668 entry options (variable); 669 670 /**** Operator "deroute" command. Deletes an entry in the Message Routing 671* Table. */ 672 673 arg_list_ptr = cu_$arg_list_ptr (); 674 comname = "operator_mc_cmds_: deroute"; 675 call validate; 676 answer = "Incorrect number of arguments."; 677 call cu_$arg_ptr_rel (1, arg_ptr, arg_length, code, arg_list_ptr); 678 /* get source */ 679 if code ^= 0 680 then go to ERROR_RETURN; 681 source = arg; 682 call cu_$arg_ptr_rel (2, arg_ptr, arg_length, code, arg_list_ptr); 683 /* get stream */ 684 if code ^= 0 685 then go to ERROR_RETURN; 686 stream = arg; 687 call cu_$arg_ptr_rel (3, arg_ptr, arg_length, code, arg_list_ptr); 688 /* get vcon */ 689 if code ^= 0 690 then go to ERROR_RETURN; 691 vcon = arg; 692 answer = "deroute unsuccessful."; 693 call mc_commands_$deroute (source, stream, vcon, code); 694 if code ^= 0 695 then go to ERROR_RETURN; 696 go to RETURN; 697 698 /* REROUTE - modify entry in Message Routing Table */ 699 700 reroute: 701 entry options (variable); 702 arg_list_ptr = cu_$arg_list_ptr (); 703 comname = "operator_mc_cmds_: reroute"; 704 call validate; 705 answer = "Incorrect number of arguments."; 706 call cu_$arg_ptr_rel (1, arg_ptr, arg_length, code, arg_list_ptr); 707 /* get source */ 708 if code ^= 0 709 then go to ERROR_RETURN; 710 source = arg; 711 call cu_$arg_ptr_rel (2, arg_ptr, arg_length, code, arg_list_ptr); 712 /* get stream */ 713 if code ^= 0 714 then go to ERROR_RETURN; 715 stream = arg; 716 call cu_$arg_ptr_rel (3, arg_ptr, arg_length, code, arg_list_ptr); 717 /* get old vcon */ 718 if code ^= 0 719 then go to ERROR_RETURN; 720 vcon = arg; 721 call cu_$arg_ptr_rel (4, arg_ptr, arg_length, code, arg_list_ptr); 722 /* get new vcon */ 723 if code ^= 0 724 then go to ERROR_RETURN; 725 if substr (arg, 1, 1) = "*" 726 then do; /* ring bell? */ 727 attype = "alarm"; 728 vcon1 = substr (arg, 2); 729 end; 730 else do; /* no */ 731 attype = ""; 732 vcon1 = arg; 733 end; 734 answer = "reroute unsuccessful."; 735 call mc_commands_$reroute (source, stream, vcon, vcon1, attype, code); 736 if code ^= 0 737 then go to ERROR_RETURN; 738 go to RETURN; 739 740 741 drop: 742 entry options (variable); 743 744 /**** Operator "drop" command. Removes a terminal from the message 745* coordinator. */ 746 747 dutp = as_data_$dutp; 748 iutep = addr (dutbl.entry (1)); /* Initializer's utep for audit */ 749 750 arg_list_ptr = cu_$arg_list_ptr (); 751 comname = "operator_mc_cmds_: drop"; /* set up command name */ 752 call validate; /* locate anstbl */ 753 answer = "Incorrect number of arguments."; 754 call cu_$arg_ptr_rel (1, arg_ptr, arg_length, code, arg_list_ptr); 755 /* get channel */ 756 if code ^= 0 757 then go to ERROR_RETURN; 758 759 attchan = arg; 760 virtual_dsa = ""b; 761 if (index (attchan, "dsa.") = 1) | (index (attchan, ".") = 0) then do; 762 dsa_flag = "1"b; 763 if index (attchan, ".") = 0 then virtual_dsa = "1"b; 764 end; 765 else dsa_flag = ""b; 766 767 cdtep = null; 768 answer = "drop unsuccessful."; 769 770 if dsa_flag then call process_dsa_ute (attchan); 771 else call mc_commands_$remove_tty (attchan, "1"b, code); 772 /* get rid of tty */ 773 if code = error_table_$action_not_performed 774 then do; 775 call ioa_$rsnnl ("Channel ^a not dialed to initializer", 776 answer, (0), attchan); 777 goto ANSWER_RETURN; 778 end; 779 if code = error_table_$noentry 780 then do; 781 call ioa_$rsnnl ("Channel ^a not configured.", answer, (0), 782 attchan); 783 goto ANSWER_RETURN; 784 end; 785 if code = error_table_$ioname_not_found 786 then do; 787 call ioa_$rsnnl ( 788 "Channel ^a not a message coordinator terminal.", 789 answer, (0), attchan); 790 goto ANSWER_RETURN; 791 end; 792 else if code ^= 0 793 then goto ERROR_RETURN; 794 795 call AUDIT_OK (); 796 go to RETURN; 797 798 799 /* THAT'S IT FOLKS! */ 800 801 ERROR_RETURN: 802 call sys_log_$command_error (SL_TYPE, code, comname, answer); 803 go to RETURN; 804 805 ANSWER_RETURN: 806 call sys_log_$command (SL_TYPE, "^a: error: ^a", comname, answer); 807 go to RETURN; 808 809 RETURN: 810 return; /* almost all entries exit here */ 811 812 /* INTERNAL PROCEDURES */ 813 814 validate: 815 proc; 816 817 if ^sc_stat_$Multics_typed 818 then as_data_$sysdir = sc_stat_$sysdir; 819 820 if as_data_$ansp = null 821 then do; 822 call hcs_$initiate (sysdir, "answer_table", "", 0, 0, as_data_$ansp, code); 823 as_procid = get_process_id_ (); 824 if as_data_$ansp = null 825 then do; 826 call sys_log_$command_error (SL_LOG_BEEP, code, comname, "^a>answer_table", sysdir); 827 go to RETURN; 828 end; 829 end; 830 ansp = as_data_$ansp; 831 832 if whoptr = null 833 then do; 834 call hcs_$initiate (sysdir, "whotab", "", 0, 0, whoptr, code); 835 if whoptr = null 836 then call sys_log_$command_error (SL_LOG_BEEP, code, comname, "^a>whotab", sysdir); 837 end; 838 if ip = null 839 then do; 840 call hcs_$initiate (sysdir, "installation_parms", "", 0, 1, ip, code); 841 if ip = null 842 then call sys_log_$command_error (SL_LOG_BEEP, code, comname, "^a>installation_parms", sysdir); 843 end; 844 if scdtp = null 845 then do; 846 call hcs_$initiate (sysdir, "cdt", "", 0, 1, scdtp, code); 847 if scdtp = null 848 then call sys_log_$command_error (SL_LOG_BEEP, code, comname, "^a>cdt", sysdir); 849 end; 850 call cu_$arg_count_rel (arg_count, arg_list_ptr, (0)); 851 /* AF invocation not an issue */ 852 return; /* end of setup */ 853 end validate; 854 855 856 /* Internal procedure to check that channel given as argument to operator 857* ACCEPT and SUBSTTY commands is available. There are 3 cases: 858* 1) The CMF specified "service: mc;" 859* 2) The operator typed "dial system" on the terminal 860* 3) The operator typed "slave" on the terminal 861* All other cases are rejected. 862**/ 863 864 check_acceptable: 865 procedure (P_code); 866 867 dcl P_code fixed bin (35) parameter; 868 869 P_code = 0; 870 if attchan = "otw_" 871 then return; /* "The" console is always cool */ 872 873 cdtep = FIND_CDTE (attchan); 874 if cdtep ^= null () 875 then do; 876 if cdte.current_service_type = MC_SERVICE 877 then return; 878 else if cdte.current_service_type = SLAVE_SERVICE 879 then return; 880 else if cdte.current_service_type = INACTIVE 881 then return; /* drop sets it to INACTIVE. Allow accept to get it back */ 882 else do; /* AS or FTP line. don't mess */ 883 P_code = 2; 884 answer = "channel not available"; 885 return; 886 end; 887 end; 888 P_code = 2; 889 answer = "channel not defined in cdt."; 890 return; 891 end check_acceptable; 892 893 FIND_CDTE: 894 procedure (P_channel_name) returns (ptr); 895 896 dcl P_channel_name char (*) parameter; 897 898 dcl cdtep ptr automatic; 899 dcl i fixed bin (17) automatic; 900 901 do i = 1 to scdtp -> cdt.current_size; 902 cdtep = addr (scdtp -> cdt.cdt_entry (i)); 903 if cdtep -> cdte.in_use > NOW_FREE 904 then if cdtep -> cdte.name = P_channel_name 905 then return (cdtep); 906 end; 907 return (null ()); 908 end FIND_CDTE; 909 910 process_dsa_ute: 911 procedure (chan_name); 912 913 dcl chan_name char (32) parm; 914 dcl i fixed bin; 915 dcl continue bit (1); 916 917 continue = "1"b; 918 if virtual_dsa then do; 919 call initiate_file_ (sysdir, "mc_anstbl", R_ACCESS, mc_ansp, (0), code); 920 if mc_ansp = null then do; 921 call ioa_$rsnnl ("trying to access ^a>mc_anstbl", answer, (0), sysdir); 922 goto ERROR_RETURN; 923 end; 924 do i = 1 to mc_anstbl.current_size while (continue); 925 mc_atep = addr (mc_anstbl.entry (i)); 926 if chan_name = mc_ate.virtual_tty_name then do; 927 chan_name = mc_ate.real_tty_name; 928 continue = ""b; 929 end; 930 end; 931 call terminate_file_ (mc_ansp, 0, TERM_FILE_TERM, (0)); 932 end; 933 934 continue = "1"b; 935 do i = 1 to anstbl.current_size while (continue); 936 utep = addr (anstbl.entry (i)); 937 if ute.active = NOW_LOGGED_IN 938 then do; 939 if chan_name = ute.tty_name 940 then do; 941 if comname = "operator_mc_cmds_: substty" then do; 942 if ute.login_flags.operator then ute.login_flags.operator = ""b; 943 else if ute.login_flags.special_pw.dial_pw then 944 ute.login_flags.special_pw.dial_pw = ""b; 945 end; 946 947 call asu_$bump_user (utep, "", code, 0); 948 if code = error_table_$action_not_performed then code = 0; 949 else if code ^= 0 then do; 950 answer = "removing user (no proc) on channel " || chan_name; 951 goto ERROR_RETURN; 952 end; 953 continue = ""b; 954 end; 955 end; 956 end; 957 958 end process_dsa_ute; 959 960 AUDIT_OK: 961 procedure (); 962 963 dcl action fixed bin (17); 964 965 if rtrim(comname) = "operator_mc_cmds_: attach" then 966 action = AS_AUDIT_CHANNEL_ATTACH; 967 else do; 968 action = AS_AUDIT_CHANNEL_DETACH; 969 if cdtep = null then cdtep = FIND_CDTE ((attchan)); /* Hasn't been established for drop */ 970 end; 971 972 CAI.channel_name = cdte.name; 973 CAI.valid = FALSE; 974 CAI.valid.service_info = FALSE; 975 CAI.service_info = "system"; 976 CAI.valid.access_class = TRUE; 977 CAI.access_class = FALSE; 978 CAI.valid.access_class_range = FALSE; 979 CAI.access_class_range = get_process_access_class_ (); 980 CAI.valid.user_validation_level = TRUE; 981 CAI.user_validation_level = iutep->ute.initial_ring; 982 983 call as_access_audit_$channel (cdtep, null, iutep, action, addr (CAI), ""); 984 end AUDIT_OK; 985 986 /* BEGIN include file access_audit_bin_header.incl.pl1 */ 1 2 1 3 /* format: style4 */ 1 4 1 5 /* NOTE: All changes must also be done to access_audit_bin_header.incl.alm */ 1 6 1 7 /* 85-01-18 E. Swenson - renamed to access_audit_bin_header.incl.pl1 */ 1 8 /* 85-01-17 E. Swenson - restructured, added session_uid, changed 1 9* min and max authorization to authorization range. */ 1 10 /* 85-01-07 EJ Sharpe - added min_authorization, cleanup */ 1 11 /* 84-11-15 EJ Sharpe - added event_flags word */ 1 12 /* 84-11-06 EJ Sharpe - added unaligned attr to version and proxy_flag */ 1 13 /* 84-10-24 EJ Sharpe - added the constants */ 1 14 /* 84-09-04 BIM - created */ 1 15 1 16 declare audit_record_ptr pointer; 1 17 1 18 dcl 1 audit_record_header aligned based (audit_record_ptr), 1 19 2 header aligned like arh_header_, 1 20 2 subject aligned like arh_user_info_; 1 21 1 22 dcl 1 audit_record_header_proxy aligned based (audit_record_ptr), 1 23 2 header aligned like arh_header_, 1 24 2 subjects (2) aligned like arh_user_info_; 1 25 1 26 dcl 1 arh_header_ aligned based, 1 27 2 type fixed bin (9) unsigned unaligned, 1 28 2 version fixed bin (9) unsigned unaligned, 1 29 2 flags unaligned, 1 30 3 ( 1 31 subject_is_process, /* binary data in subject is valid */ 1 32 object_is_valid /* There is an object */ 1 33 ) bit (1) unaligned, 1 34 3 pad bit (16) unaligned, 1 35 2 operation_code bit (36) aligned, /* like access_audit_encoded_op */ 1 36 2 event_flags bit (36) aligned, /* like access_audit_eventflags */ 1 37 2 session_uid fixed bin (35); /* uid for the login session */ 1 38 1 39 dcl 1 arh_user_info_ aligned based, 1 40 2 person char (22) unaligned, /* see anonymous bit */ 1 41 2 project char (9) unaligned, /* blank for nologin w/out proj */ 1 42 2 tag char (1) unaligned, 1 43 2 ring fixed bin (3) uns unaligned, 1 44 2 anonymous bit (1) unaligned, 1 45 2 pad3 bit (32) unaligned, 1 46 2 process_id bit (36) aligned, 1 47 2 authorization bit (72) aligned, 1 48 2 authorization_range (2) bit (72) aligned; 1 49 1 50 dcl ARH_TYPE_PROXY fixed bin init (2) 1 51 static options (constant); 1 52 dcl ARH_TYPE_NO_PROXY fixed bin init (1) 1 53 static options (constant); 1 54 dcl ACCESS_AUDIT_HEADER_VERSION_3 fixed bin (9) unsigned 1 55 init (3) static options (constant); 1 56 1 57 /* End include file access_audit_bin_header.incl.pl1 */ 986 987 /* BEGIN INCLUDE FILE ... access_mode_values.incl.pl1 2 2* 2 3* Values for the "access mode" argument so often used in hardcore 2 4* James R. Davis 26 Jan 81 MCR 4844 2 5* Added constants for SM access 4/28/82 Jay Pattin 2 6* Added text strings 03/19/85 Chris Jones 2 7**/ 2 8 2 9 2 10 /* format: style4,delnl,insnl,indattr,ifthen,dclind10 */ 2 11 dcl ( 2 12 N_ACCESS init ("000"b), 2 13 R_ACCESS init ("100"b), 2 14 E_ACCESS init ("010"b), 2 15 W_ACCESS init ("001"b), 2 16 RE_ACCESS init ("110"b), 2 17 REW_ACCESS init ("111"b), 2 18 RW_ACCESS init ("101"b), 2 19 S_ACCESS init ("100"b), 2 20 M_ACCESS init ("010"b), 2 21 A_ACCESS init ("001"b), 2 22 SA_ACCESS init ("101"b), 2 23 SM_ACCESS init ("110"b), 2 24 SMA_ACCESS init ("111"b) 2 25 ) bit (3) internal static options (constant); 2 26 2 27 /* The following arrays are meant to be accessed by doing either 1) bin (bit_value) or 2 28* 2) divide (bin_value, 2) to come up with an index into the array. */ 2 29 2 30 dcl SEG_ACCESS_MODE_NAMES (0:7) init ("null", "W", "E", "EW", "R", "RW", "RE", "REW") char (4) internal 2 31 static options (constant); 2 32 2 33 dcl DIR_ACCESS_MODE_NAMES (0:7) init ("null", "A", "M", "MA", "S", "SA", "SM", "SMA") char (4) internal 2 34 static options (constant); 2 35 2 36 dcl ( 2 37 N_ACCESS_BIN init (00000b), 2 38 R_ACCESS_BIN init (01000b), 2 39 E_ACCESS_BIN init (00100b), 2 40 W_ACCESS_BIN init (00010b), 2 41 RW_ACCESS_BIN init (01010b), 2 42 RE_ACCESS_BIN init (01100b), 2 43 REW_ACCESS_BIN init (01110b), 2 44 S_ACCESS_BIN init (01000b), 2 45 M_ACCESS_BIN init (00010b), 2 46 A_ACCESS_BIN init (00001b), 2 47 SA_ACCESS_BIN init (01001b), 2 48 SM_ACCESS_BIN init (01010b), 2 49 SMA_ACCESS_BIN init (01011b) 2 50 ) fixed bin (5) internal static options (constant); 2 51 2 52 /* END INCLUDE FILE ... access_mode_values.incl.pl1 */ 987 988 /* BEGIN INCLUDE FILE ... answer_table.incl.pl1 */ 3 2 3 3 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 3 4 /* */ 3 5 /* The answer table has one entry per "login instance" whether completed or */ 3 6 /* not. It is connected to the Channel Definition Table by the pointer */ 3 7 /* "channel". The header is used mostly by dialup_. */ 3 8 /* */ 3 9 /* Programs which use this file must also include user_table_header.incl.pl1 */ 3 10 /* */ 3 11 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 3 12 3 13 /****^ HISTORY COMMENTS: 3 14* 1) change(81-09-10,Kittlitz), approve(), audit(), install(): 3 15* Replace anstbl.incl.pl1. 3 16* 2) change(85-01-15,Swenson), approve(), audit(), install(): 3 17* Add anstbl.session_uid_counter. 3 18* 3) change(85-08-21,Coren), approve(), audit(), install(): 3 19* Add anstbl.message_update_time and named constants for values of 3 20* anstbl.session, and to make all padding explicit. 3 21* 4) change(85-08-23,Coren), approve(), audit(), install(): 3 22* Change "entry" to a placeholder so as not to require 3 23* user_table_entry.incl.pl1. 3 24* 5) change(86-06-29,Swenson), approve(87-07-13,MCR7741), 3 25* audit(87-04-14,GDixon), install(87-08-04,MR12.1-1056): 3 26* Added the flag login_server_present which indicates whether a login 3 27* server request has been received. This is used to determine whether 3 28* dial_ctl_ should call uc_cleanup_network_dials_ (and thus 3 29* hpriv_connection_list_, which only exists with the MNA RPQ software). 3 30* 6) change(87-04-14,GDixon), approve(87-07-13,MCR7741), 3 31* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 3 32* A) Moved constants for ute.pw_flags.mask_ctl into 3 33* user_table_entry.incl.pl1. 3 34* B) Added common table header to all user tables. 3 35* END HISTORY COMMENTS */ 3 36 3 37 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 3 38 /* */ 3 39 /* The anstbl structure below is divided into sections. Each section begins */ 3 40 /* with a comment describing the elements in the section. Elements are */ 3 41 /* placed within a section, based upon their function or the programs that */ 3 42 /* use them. Each section begins on a double word and is an even number of */ 3 43 /* words long. */ 3 44 /* */ 3 45 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 3 46 3 47 3 48 3 49 /* format: style4 */ 3 50 3 51 dcl ANSTBL_version_4 static options (constant) init (4); /* version of this declaration */ 3 52 3 53 dcl ansp ptr automatic init (null); 3 54 3 55 dcl 1 anstbl based (ansp) aligned, /* Structure of answer table */ 3 56 2 header like ut_header, /* Header common to all user tables. */ 3 57 3 58 /* Counter elements. */ 3 59 2 nlin fixed bin, /* number of active lines */ 3 60 2 mxlin fixed bin, /* maximum number of active lines */ 3 61 2 n_users fixed bin, /* number of logged-in users */ 3 62 2 max_users fixed bin, /* maximum number of users allowed */ 3 63 2 n_units fixed bin, /* number of logged in units */ 3 64 2 max_units fixed bin, /* maximum number of units */ 3 65 2 n_sessions fixed bin, /* number of Multics sessions */ 3 66 2 n_pad fixed bin, 3 67 3 68 /* Name elements. */ 3 69 2 sysdir char (64) unal, /* name of main system control directory */ 3 70 2 as_tty char (8) unal, /* name of main answering service device. */ 3 71 3 72 /* Login elements. */ 3 73 2 login_word char (8) unal, /* login word if special_session=1 */ 3 74 2 session char (8) unal, /* session indicator */ 3 75 2 special_message char (128) unal, /* message to be printed for special session */ 3 76 2 message_update_time fixed bin (71), /* time at which special_message was last updated */ 3 77 2 message_lng fixed bin, /* length of special message */ 3 78 2 login_pad fixed bin, 3 79 3 80 /* Table update elements. */ 3 81 2 lock_count fixed bin, /* global lock for all system control tables */ 3 82 2 update_pending bit (1) aligned, /* flag indicating that update is required */ 3 83 2 update_channel fixed binary (71), /* event channel of update procedure */ 3 84 2 acct_update_chn fixed bin (71) aligned, /* Timer IPC channel */ 3 85 2 acct_last_update_time fixed bin (71) aligned, /* Time of last accounting update */ 3 86 2 acct_alarm_fail fixed bin, /* non-zero if alarm has failed */ 3 87 2 update_pad fixed bin, 3 88 3 89 /* dialup_ data values. */ 3 90 2 current_time fixed bin (71), /* Time of last transaction */ 3 91 2 processid_index fixed bin (18), /* unique index for process id generation */ 3 92 2 session_uid_counter fixed bin (35), /* current session_uid */ 3 93 3 94 /* load_ctl_ elements. */ 3 95 2 shift fixed bin, /* Shift, set by act_ctl_ */ 3 96 2 auto_maxu fixed bin, /* 0 = manual, 1 = config, 2 = load-level */ 3 97 2 extra_units fixed bin, /* Total daemon and abs units. */ 3 98 /* load_ctl_ load leveling desired response range: */ 3 99 2 response_high fixed bin, /* bad if user response time slower than this */ 3 100 2 response_low fixed bin, /* bad if user response time faster than this */ 3 101 2 load_ctl_pad fixed bin, 3 102 3 103 /* Login server request server data. */ 3 104 2 ls_request_server_event_channel fixed bin (71), /* channel for login server requests */ 3 105 2 ls_request_server_process_id bit (36) aligned, /* process serving login server requests */ 3 106 2 login_server_present bit (1) aligned, /* On IFF a login server request has been processed */ 3 107 3 108 2 entry_pad (28) fixed bin, /* pad to 128 words */ 3 109 2 entry (0 refer (anstbl.current_size)), /* user entries */ 3 110 3 contents (UTE_SIZE) fixed bin; 3 111 3 112 /* constants */ 3 113 3 114 /* values for anstbl.session */ 3 115 3 116 dcl (AT_NORMAL init ("normal "), 3 117 AT_SPECIAL init ("special "), 3 118 AT_SHUTDOWN init ("shutdown")) char (8) internal static options (constant); 3 119 3 120 dcl UTE_SIZE fixed bin internal static initial (300); 3 121 3 122 /* END INCLUDE FILE ... answer_table.incl.pl1 */ 988 989 /* BEGIN: as_audit_structures.incl.pl1 * * * * * */ 4 2 4 3 /****^ HISTORY COMMENTS: 4 4* 1) change(84-01-17,Swenson), approve(), audit(), install(): 4 5* Initial coding. 4 6* 2) change(87-06-08,GDixon), approve(87-07-13,MCR7741), 4 7* audit(87-07-31,Brunelle), install(87-08-04,MR12.1-1056): 4 8* A) Add AS_AUDIT_CHANNEL_ACTIONS, AS_AUDIT_CHANNEL_DIRECTION, and 4 9* AS_AUDIT_CHANNEL_SERVICE_INFO arrays. 4 10* B) Add channel audit actions for dialin, dialout and dial system. 4 11* C) Correct declaration of as_channel_audit_record_.pad2. 4 12* D) Revise channel_audit_info. 4 13* 3) change(87-07-15,GDixon), approve(87-07-15,MCR7741), 4 14* audit(87-07-31,Brunelle), install(87-08-04,MR12.1-1056): 4 15* A) Add AS_AUDIT_PROCESS_TERMINATE action code. 4 16* END HISTORY COMMENTS */ 4 17 4 18 /* format: style2 */ 4 19 4 20 /* This include file describes the binary data associated with 4 21* Answering Service audit records. */ 4 22 4 23 /**** This first structure defines the Identification and Authentication 4 24* (I&A) audit records associated with login attempts for interactive 4 25* and daemon logins */ 4 26 4 27 dcl 1 as_ia_audit_record_int_dmn 4 28 structure aligned based, 4 29 2 header like audit_record_header aligned, 4 30 2 record like as_ia_audit_record_; 4 31 4 32 /**** This one is for absentee logins which are not proxy absentees */ 4 33 4 34 dcl 1 as_ia_audit_record_abs 4 35 structure aligned based, 4 36 2 header like audit_record_header aligned, 4 37 2 record like as_ia_audit_record_, 4 38 2 absentee_input_path 4 39 char (168); 4 40 4 41 dcl 1 as_ia_audit_record_abs_proxy 4 42 structure aligned based, 4 43 2 header like audit_record_header aligned, 4 44 2 record like as_ia_audit_record_, 4 45 2 absentee_input_path 4 46 char (168), 4 47 2 proxy_user char (32); 4 48 4 49 /**** The following structure is common to all the I&A records. It 4 50* contains the relevant information about the I&A process. */ 4 51 4 52 dcl 1 as_ia_audit_record_ structure aligned based, 4 53 2 type fixed bin (9) unsigned unaligned, 4 54 2 version fixed bin (9) unsigned unaligned, 4 55 2 process_type fixed bin (3) unsigned unaligned, 4 56 2 min_ring fixed bin (3) unsigned unaligned, 4 57 2 max_ring fixed bin (3) unsigned unaligned, 4 58 2 pad1 bit (9) unaligned, 4 59 2 attributes like user_attributes, 4 60 2 audit_flags bit (36) aligned, 4 61 2 channel char (32) aligned, 4 62 2 terminal_type char (32) aligned, 4 63 2 answerback char (4) aligned; 4 64 4 65 /**** The following structure represents the binary information 4 66* associated with a communications channel access audit message. */ 4 67 4 68 dcl 1 as_channel_audit_record 4 69 structure aligned based, 4 70 2 header like audit_record_header aligned, 4 71 2 record like as_channel_audit_record_; 4 72 4 73 4 74 dcl 1 as_channel_audit_record_ 4 75 structure aligned based, 4 76 2 type fixed bin (9) unsigned unaligned, 4 77 2 version fixed bin (9) unsigned unaligned, 4 78 2 flags unaligned, 4 79 3 channel_info_valid 4 80 bit (1) unaligned, 4 81 3 current_access_class_valid 4 82 bit (1) unaligned, 4 83 3 pad1 bit (16) unaligned, 4 84 2 channel_name char (32), 4 85 2 current_access_class 4 86 (2) bit (72) aligned, 4 87 2 access_class_range (2) bit (72) aligned, 4 88 2 current_service_type 4 89 fixed bin (17) unaligned, 4 90 2 service_type fixed bin (17) unaligned, 4 91 2 terminal_type char (32), 4 92 2 authenticated_user aligned, 4 93 3 personid char (22) unaligned, 4 94 3 projectid char (9) unaligned, 4 95 3 pad2 bit (9) unaligned; 4 96 4 97 /**** The following structure represents the binary information 4 98* associated with a dial service audit record */ 4 99 4 100 dcl 1 as_dial_service_audit_record 4 101 structure aligned based, 4 102 2 header like audit_record_header aligned, 4 103 2 record like as_dial_service_audit_record_; 4 104 4 105 dcl 1 as_dial_service_audit_record_ 4 106 structure aligned based, 4 107 2 type fixed bin (9) unsigned unaligned, 4 108 2 version fixed bin (9) unsigned unaligned, 4 109 2 dial_server_ring fixed bin (3) unsigned unaligned, 4 110 2 flags unaligned, 4 111 3 registered_server 4 112 bit (1) unaligned, 4 113 3 privileged_server 4 114 bit (1) unaligned, 4 115 3 pad1 bit (13) unaligned, 4 116 2 dial_qualifier char (32); 4 117 4 118 /**** The following structure is used by dial_ctl_ to pass the required 4 119* information to as_access_audit_. This structure is necessary since 4 120* the data is not available in the user_table_entry or cdte. */ 4 121 4 122 dcl dial_server_info_ptr ptr; /* pointer to following structure */ 4 123 4 124 dcl 1 dial_server_info structure aligned based (dial_server_info_ptr), 4 125 2 server_ring fixed bin (3) unaligned, 4 126 2 flags unaligned, 4 127 3 registered bit (1) unaligned, 4 128 3 privileged bit (1) unaligned, 4 129 3 pad1 bit (31) unaligned, 4 130 2 dial_qualifier char (32); 4 131 4 132 /**** The following structure is used by dial_ctl_ to pass relevant information 4 133* to as_access_audit_. The channel name is passed here when we do not 4 134* have a cdtep, for instance. */ 4 135 4 136 dcl channel_audit_info_ptr ptr; 4 137 4 138 dcl 1 channel_audit_info aligned based (channel_audit_info_ptr), 4 139 2 channel_name char (32), 4 140 2 valid, 4 141 (3 service_info, 4 142 3 access_class, 4 143 3 access_class_range, 4 144 3 user_validation_level) 4 145 bit(1) unal, 4 146 3 mbz bit(32) unal, 4 147 2 service_info char (32), 4 148 2 access_class bit(72) aligned, 4 149 2 access_class_range (2) bit(72) aligned, 4 150 2 user_validation_level 4 151 fixed bin (3); 4 152 4 153 dcl AS_AUDIT_RECORD_IA_VERSION_1 4 154 fixed bin (9) initial (1) internal static options (constant); 4 155 4 156 dcl AS_AUDIT_RECORD_CHN_VERSION_1 4 157 fixed bin (9) initial (1) internal static options (constant); 4 158 4 159 dcl AS_AUDIT_RECORD_DIALID_VERSION_1 4 160 fixed bin (9) initial (1) internal static options (constant); 4 161 4 162 dcl ( 4 163 AS_AUDIT_PROCESS_CREATE 4 164 initial (1), 4 165 AS_AUDIT_PROCESS_DESTROY 4 166 initial (2), 4 167 AS_AUDIT_PROCESS_CONNECT 4 168 initial (3), 4 169 AS_AUDIT_PROCESS_DISCONNECT 4 170 initial (4), 4 171 AS_AUDIT_PROCESS_TERMINATE 4 172 initial (5) 4 173 ) fixed bin (17) internal static options (constant); 4 174 4 175 dcl ( 4 176 AS_AUDIT_CHANNEL_ATTACH 4 177 initial (1), 4 178 AS_AUDIT_CHANNEL_DETACH 4 179 initial (2), 4 180 AS_AUDIT_CHANNEL_DIALIN 4 181 initial (3), 4 182 AS_AUDIT_CHANNEL_DIALOUT 4 183 initial (4), 4 184 AS_AUDIT_CHANNEL_DIAL_SYSTEM 4 185 initial (5) 4 186 ) fixed bin (17) internal static options (constant); 4 187 4 188 dcl ( 4 189 AS_AUDIT_DIALID_START initial (1), 4 190 AS_AUDIT_DIALID_STOP initial (2) 4 191 ) fixed bin (17) internal static options (constant); 4 192 4 193 dcl AS_AUDIT_CHANNEL_ACTIONS 4 194 (5) char (12) internal static options (constant) 4 195 initial ("ATTACH", "DETACH", "DIALIN", "DIALOUT", "DIAL SYSTEM"); 4 196 dcl AS_AUDIT_CHANNEL_DIRECTION 4 197 (5) char (4) internal static options (constant) 4 198 initial ("to", "from", "to", "from", "to"); 4 199 dcl AS_AUDIT_CHANNEL_SERVICE_INFO 4 200 (5) char (12) internal static options (constant) 4 201 initial ("Service", "Service", "Dial ID", "Destination", "VChannel"); 4 202 dcl AS_AUDIT_PROCESS_ACTIONS 4 203 (5) char (10) internal static options (constant) 4 204 initial ("CREATE", "DESTROY", "CONNECT", "DISCONNECT", "TERMINATE"); 4 205 4 206 /* END OF: as_audit_structures.incl.pl1 * * * * * */ 989 990 /* BEGIN INCLUDE FILE ... as_data_.incl.pl1 ... */ 5 2 5 3 /* format: style4 */ 5 4 5 5 /* This file must be kept in sync with as_data_.alm */ 5 6 5 7 /****^ HISTORY COMMENTS: 5 8* 1) change(86-09-21,Beattie), approve(86-09-22,MCR7542), 5 9* audit(86-10-31,Brunelle), install(86-11-12,MR12.0-1211): 5 10* Remove references to the 963 and 029 preaccess commands and remove support 5 11* for ARDS, 202_ETX, 2741 and 1050 in system interfaces. 5 12* 2) change(86-09-25,Swenson), approve(87-07-20,MCR7737), 5 13* audit(87-07-20,GDixon), install(87-08-04,MR12.1-1056): 5 14* Add references to as_data_ entrypoints added for Login Server. 5 15* 3) change(87-03-03,Brunelle), approve(87-07-20,MCR7697), 5 16* audit(87-07-20,GDixon), install(87-08-04,MR12.1-1056): 5 17* Added new user signal field of inacrcvd (14) to handle inactivity response 5 18* from user. 5 19* END HISTORY COMMENTS */ 5 20 5 21 dcl as_data_$BS char (1) aligned ext static; /* BACKSPACE character */ 5 22 dcl as_data_$CR char (1) aligned ext static; /* CARRIAGE RETURN character */ 5 23 dcl as_data_$abs_dim char (32) ext static; /* absentee DIM */ 5 24 dcl as_data_$acct_update_priority fixed bin ext static; /* accounting update IPC priority */ 5 25 dcl as_data_$acsdir char (168) ext static; /* Access Control Segment directory */ 5 26 dcl as_data_$ansp ptr ext static; /* answer_table */ 5 27 dcl as_data_$as_procid bit (36) aligned ext static; /* Answering Service process id */ 5 28 dcl as_data_$as_ring fixed bin (3) ext static; /* AS operating ring */ 5 29 dcl as_data_$as_tty char (6); /* AS master tty channel */ 5 30 dcl as_data_$asmtp ptr ext static; /* AS meter table */ 5 31 dcl as_data_$autp ptr ext static; /* absentee_user_table */ 5 32 dcl as_data_$buzzardp ptr ext static; /* dpg_ list of buteo processes */ 5 33 dcl as_data_$cdtp ptr ext static; /* CDT */ 5 34 dcl as_data_$default_weight fixed bin (35) ext; /* default user process load control weight */ 5 35 dcl as_data_$devtabp ptr ext static; /* device_table */ 5 36 dcl as_data_$dft_user_ring fixed bin (3) ext static; /* default user ring */ 5 37 dcl as_data_$dutp ptr ext static; /* daemon_user_table */ 5 38 dcl as_data_$g115_dim char (32) ext static; 5 39 dcl as_data_$lct_initialized bit (1) aligned ext static; /* LCT allocated in ring 0 */ 5 40 dcl as_data_$lct_size fixed bin ext static; /* CDT tty channels + spares */ 5 41 dcl as_data_$max_user_ring fixed bin (3) ext static; /* maximum user ring */ 5 42 dcl as_data_$mgtp ptr ext static; /* master group table */ 5 43 dcl as_data_$mrd_dim char (32) ext static; /* daemon's message routing DIM */ 5 44 dcl as_data_$ntty_dim char (32) ext static; /* network connection DIM */ 5 45 dcl as_data_$pdtdir char (168) ext static; /* PDT directory */ 5 46 dcl as_data_$pit_ptr ptr ext static; /* pit_temp_ */ 5 47 dcl as_data_$rcpdir char (168) ext static; /* RCP directory */ 5 48 dcl as_data_$request_priority fixed bin ext static; 5 49 dcl as_data_$rs_ptrs (0:9) ptr ext static; /* rate_structures */ 5 50 dcl as_data_$rtdtp ptr ext static; /* RTDT */ 5 51 dcl as_data_$sat_htp ptr ext static; /* SAT hash table */ 5 52 dcl as_data_$satp ptr ext static; /* SAT */ 5 53 dcl as_data_$suffix (0:9) char (2) unaligned ext static; 5 54 dcl as_data_$sysdir char (168) ext static; /* system control directory */ 5 55 dcl as_data_$teens_suffix (10:19) char (2) unaligned ext static; 5 56 dcl as_data_$terminet_tabs_string char (144) varying ext static; 5 57 dcl as_data_$tty_dim char (32) ext static; /* standard interactive DIM */ 5 58 dcl as_data_$update_priority fixed bin ext static; /* ??? */ 5 59 dcl as_data_$version char (8) ext static; /* AS version */ 5 60 dcl as_data_$whoptr ptr ext static; /* whotab */ 5 61 5 62 dcl 1 as_data_$login_args aligned ext static, /* control arguments for login */ 5 63 2 n_login_args fixed bin, 5 64 2 pad fixed bin, 5 65 2 login_args (55 /* as_data_$login_args.n_login_args */) char (24) unaligned; 5 66 5 67 dcl 1 as_data_$signal_types ext static aligned, /* IPC process control signals */ 5 68 2 n_signals fixed bin, 5 69 2 pad fixed bin, 5 70 2 signals (14 /* as_data_$signal_types.n_signals */) char (8) unaligned; 5 71 5 72 dcl 1 as_data_$system_signal_types ext static aligned, /* IPC process control signals */ 5 73 2 n_system_signals fixed bin, 5 74 2 pad fixed bin, 5 75 2 system_signals (10 /* as_data_$system_signal_types.n_system_signals */) char (8) unaligned; 5 76 5 77 dcl as_data_$login_words fixed bin ext static aligned, 5 78 /* interactive login words */ 5 79 1 as_data_login_words aligned based (addr (as_data_$login_words)), 5 80 2 n_words fixed bin, 5 81 2 pad fixed bin, 5 82 2 words (0 refer (as_data_login_words.n_words)) char (16) unaligned; 5 83 5 84 dcl as_data_$debug_flag bit (1) aligned external static; 5 85 dcl as_data_$ls_request_server_info_ptr ptr external static; 5 86 dcl as_data_$ls_message_buffer_cur_lth fixed bin (18) external static; 5 87 dcl as_data_$ls_message_buffer_max_lth fixed bin (18) external static; 5 88 dcl as_data_$ls_message_buffer_ptr ptr external static; 5 89 5 90 /* END INCLUDE FILE ... as_data_.incl.pl1 ... */ 990 991 /* BEGIN INCLUDE FILE ... as_data_definitions_.incl.pl1 ... */ 6 2 6 3 6 4 /****^ HISTORY COMMENTS: 6 5* 1) change(87-04-26,GDixon), approve(87-07-13,MCR7741), 6 6* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 6 7* Removed ansp, autp and dutp from this include file, adding them to 6 8* answer_table.incl.pl1, absentee_user_table.incl.pl1 and 6 9* daemon_user_table.incl.pl1. 6 10* END HISTORY COMMENTS */ 6 11 6 12 6 13 /* This include file requires as_data_.incl.pl1 */ 6 14 6 15 /* format: style4 */ 6 16 6 17 dcl as_procid bit (36) aligned defined (as_data_$as_procid); 6 18 dcl as_tty char (6) based (addr (as_data_$as_tty)); 6 19 dcl asmtp ptr defined (as_data_$asmtp); 6 20 dcl devtabp ptr defined (as_data_$devtabp); 6 21 dcl ip ptr defined (as_data_$rs_ptrs (0)); 6 22 dcl mgtp ptr defined (as_data_$mgtp); 6 23 dcl pdtdir char (168) based (addr (as_data_$pdtdir)); 6 24 dcl rs_ptrs (0:9) ptr based (addr (as_data_$rs_ptrs (0))); 6 25 dcl sat_htp ptr defined (as_data_$sat_htp); 6 26 dcl satp ptr defined (as_data_$satp); 6 27 dcl scdtp ptr defined (as_data_$cdtp); 6 28 dcl sysdir char (168) defined (as_data_$sysdir); 6 29 dcl whoptr ptr defined (as_data_$whoptr); 6 30 6 31 /* END INCLUDE FILE ... as_data_definitions_.incl.pl1 ... */ 991 992 /* BEGIN INCLUDE FILE ... author_dcl.incl.pl1 */ 7 2 7 3 /* This include file declares the "author" substructure 7 4* in a form suitable for using the PL/I "like" attribute. 7 5* 7 6* Written 750304 by PG 7 7**/ 7 8 7 9 dcl 1 author_dcl aligned based, 8 1 /* BEGIN INCLUDE FILE author.incl.pl1 */ 8 2 8 3 /* the "author" items must always be the first ones in the table. The 8 4* module which moves the converted table to the System Control process 8 5* fills in these data items and assumes them to be at the head of the segment 8 6* regardless of the specific table's actual declaration. The variables 8 7* "lock" and "last_install_time" used to be "process_id" and "ev_channel" 8 8* respectively. For tables installed in multiple processes, these 8 9* are to be used to lock out multiple installations. */ 8 10 8 11 /* Lock should be used as a modification lock. Since, in general, 8 12* entries may not be moved in system tables, even by installations, 8 13* it is sufficient for only installers and programs that change threads 8 14* to set or respect the lock. Simply updating data in an entry 8 15* requires no such protection. 8 16* 8 17* Last_install_time is used by readers of system tables to detect 8 18* installations or other serious modifications. By checking it before 8 19* and after copying a block of data, they can be protected against 8 20* modifications. 8 21* 8 22* Modules that set the lock should save proc_group_id, and then 8 23* put their group id there for the time they hold the lock. 8 24* if they do not actually install the, they should restore the group id. 8 25**/ 8 26 8 27 2 author aligned, /* validation data about table's author */ 8 28 3 proc_group_id char (32), /* process-group-id (personid.projectid.tag) */ 8 29 3 lock bit (36), /* installation lock */ 8 30 3 update_attributes bit (1) unal, /* update/add/delete attributes */ 8 31 3 update_authorization bit (1) unal, /* update only authorizations */ 8 32 3 deferral_notified bit (1) unal, /* installer notified of deferral of installation */ 8 33 3 pad bit (33) unaligned, 8 34 3 last_install_time fixed bin (71), 8 35 3 table char (4), /* name of table, e.g., SAT MGT TTT RTDT PDT etc. */ 8 36 3 w_dir char (64), /* author's working directory */ 8 37 8 38 /* END INCLUDE FILE author.incl.pl1 */ 7 10 7 11 2 pad; 7 12 7 13 /* END INCLUDE FILE ... author_dcl.incl.pl1 */ 992 993 /* BEGIN INCLUDE FILE ... cdt.incl.pl1 */ 9 2 9 3 /* format: style3,idind25,indcomtxt */ 9 4 9 5 /* Channel Definition Table. 9 6* This table lists all of the hardware channels (ports) connected 9 7* to the system, and maintains the attributes of each one. 9 8* 9 9* PG 741230 9 10* Modified by Mike Grady 5/6/76 to add FNP info. 9 11* Modified by Tom Casey 7/29/76 to add more FNP info and a few other things. 9 12* Modified by Robert Coren 6/13/77 to make terminal types be character strings. 9 13* Modified July 1979 by T. Casey to add several variables for MR8.0 process preservation facility. 9 14* Modified December 1980 by E. N. Kittlitz to eliminate cdte.phone_no. 9 15* Modified March 1981 by Robert Coren to add "listening" flag for multiplexers and to add TANDD_SERVICE service_type. 9 16* Modified April 1981 by E. N. Kittlitz to add cdte.dial_ev_chn, cdte.recent_wakeup_time, cdte.recent_wakeup_count. 9 17* Modified July 1981 by T. Casey for MR9.0 to add dialup_flags.detach_after_hangup 9 18* Modified December 1981 by E. N. Kittlitz for cdte.leave_edited, cdte.hold_arg, 9 19* Modified September 1981 by Benson I. Margulies for cdt_mgr_'s tree of multiplexer's. 9 20* Modified August 1982 by E. N. Kittlitz for check_acs. 9 21* Modified January 1983 by Keith Loepere for generic_destination. 9 22* Modified August 1983 by Robert Coren to add mpxe.check and mpxe.retry_load. 9 23* Modified 831216 by E. N. Kittlitz for required_access_class. 9 24* Modified 84-04-01 by BIM to finish communications AIM: 9 25* access class ranges, 9 26* access_control flags. 9 27**/ 9 28 9 29 9 30 /****^ HISTORY COMMENTS: 9 31* 1) change(87-03-17,Beattie), approve(87-04-06,MCR7656), 9 32* audit(87-07-13,Parisek), install(87-08-04,MR12.1-1056): 9 33* Add support for answering service to use IOCBs when tty_ cannot be 9 34* used to service login channels. 9 35* END HISTORY COMMENTS */ 9 36 9 37 9 38 dcl CDT_version_5 fixed bin internal static initial (5) options (constant); 9 39 dcl CDT_version fixed bin internal static initial (6) options (constant); 9 40 9 41 dcl (cdtp, cdtep, fnpep, mpxep) 9 42 ptr; 9 43 9 44 dcl 1 cdt based (cdtp) aligned, /* all of the system channels */ 9 45 2 author like author_dcl.author, /* standard header */ 9 46 2 max_size fixed bin, /* maximum number of cdte's in 255K */ 9 47 2 current_size fixed bin, /* number of last cdte. */ 9 48 2 version fixed bin, 9 49 2 freep fixed bin, /* chain of free cdte's */ 9 50 2 n_cdtes fixed bin, /* number of used cdte's */ 9 51 2 meters_last_reset fixed bin (71), /* clock time dialup meters were reset */ 9 52 2 realtime_in_dialup fixed bin (71), /* Dialup meter */ 9 53 2 cpu_in_dialup fixed bin (71), /* .. */ 9 54 2 pf_in_dialup fixed bin, /* .. */ 9 55 2 pp_in_dialup fixed bin, /* .. */ 9 56 2 entries_to_dialup fixed bin, /* .. */ 9 57 2 flags, 9 58 3 go bit (1) unal, /* ans. serv. said "go ahead and answer the phones" */ 9 59 3 cdt_is_live bit (1) unal, /* cdt is active */ 9 60 3 mux_mgr_system_init 9 61 bit (1) unal, /* mux mgr has loaded top-levels */ 9 62 3 pad1 bit (33) unal, 9 63 2 acceptable_fnp_tbf fixed bin, /* acceptable minutes between FNP crashes */ 9 64 2 spare_channel_count fixed bin, /* number of extra channels to leave room for in ring0 */ 9 65 2 threads aligned like channel_threads, 9 66 /* root of non-fnp-top-level-multiplexers */ 9 67 2 pad2 (31) bit (36) aligned, /* pad header to 80 words */ 9 68 2 fnp_entry dim (8) like fnpe, /* max of 8 FNPs for now */ 9 69 2 cdt_entry dim (2500) like cdte; /* # of cdte's in 255K */ 9 70 9 71 9 72 dcl 1 cdte based (cdtep) aligned, /* a channel */ 9 73 2 in_use fixed bin, /* see dialup_values. 0=NOW_FREE */ 9 74 /**** * These variables are filled in when the CDTE is created by cv_cmf. They are not dynamic. */ 9 75 2 pad1 bit (36) aligned, 9 76 2 name char (32), /* ASCII name of channel */ 9 77 2 access_class (2) bit (72) aligned, /* access class range */ 9 78 2 comment char (48), /* printable message about channel */ 9 79 2 charge_type fixed bin (17) unal, /* billing group */ 9 80 2 service_type fixed bin (17) unal, /* service group (AS, ftp, mc) */ 9 81 2 line_type fixed bin (17) unal, /* tty line type (protocol) */ 9 82 2 baud_rate fixed bin (17) unal, /* 110, 133, 150, etc. */ 9 83 2 modem_type fixed bin (17) unal, /* type of modem on this channel */ 9 84 2 pad2 bit (18) unaligned, 9 85 2 answerback char (8), /* answerback string expected */ 9 86 2 initial_terminal_type 9 87 char (32) unal, /* as specified in the CMF */ 9 88 2 mpx_data unal, /* data used only for multiplexed channels */ 9 89 3 mpx_type fixed bin (17), /* type of multiplexing used */ 9 90 3 mpx_service fixed bin (17), /* service type, active or inactive */ 9 91 2 flags, 9 92 ( 3 attributes, 9 93 4 ck_answerback bit (1), /* ON means that ansbk must equal our records */ 9 94 4 audit_access_error 9 95 bit (1), /* ON means ck that person auth is inside access class range */ 9 96 /* this implies that the access_class describes a range of 9 97* legitimate user auths. */ 9 98 4 hardwired bit (1), /* ON means it is */ 9 99 4 set_modes bit (1), /* ON means to set initial modes at dialup */ 9 100 4 dont_read_answerback 9 101 bit (1), /* ON means don't try to read answerback */ 9 102 4 pada bit (4), 9 103 3 access_control unaligned, /* As below */ 9 104 4 dial_out bit (1), /* dialing user must be on ACS */ 9 105 4 priv_attach bit (1), /* PA_ user must be on ACS */ 9 106 4 dial_server bit (1), /* accept_dials process must be on acs */ 9 107 4 login bit (1), /* logging in user must be on acs */ 9 108 4 slave_dial bit (1), /* dialing user must give -user and be on acs */ 9 109 4 pado bit (3), 9 110 3 options, 9 111 4 execute_initial_command 9 112 bit (1), /* ON means to do it */ 9 113 4 attached_by_operator 9 114 bit (1), /* ON means temporary attachment. */ 9 115 4 private_line bit (1), /* ON means private_line sync modem in use */ 9 116 4 bsc_ebcdic bit (1), /* ON means bsc would like to use ebcdic code set */ 9 117 4 bsc_transparent bit (1), /* ON means bsc is in transparent mode */ 9 118 4 vip_pollselect bit (1), /* ON means VIP line is multidrop */ 9 119 4 autobaud bit (1), /* ON means auto baud detection this channel */ 9 120 4 generic_destination_present 9 121 bit (1), /* ON means that the initial_command field contains 9 122* a generic destination to match on dial_out or priv attach */ 9 123 4 use_iocb bit (1), /* ON means to use IOCB operations to support channel */ 9 124 4 pado bit (9) 9 125 ) unaligned, 9 126 2 initial_command char (64), /* pseudo first input line */ 9 127 /**** The following variables represent dynamic control info, and 9 128* are used mostly by dialup_ and asu_ */ 9 129 2 event fixed bin (71), /* event call channel for channel events */ 9 130 2 current_service_type fixed bin (17) unal, /* Current usage of line. */ 9 131 2 tra_vec fixed bin (17) unal, /* which section of dialup_ to do next */ 9 132 2 count fixed bin (17) unal, /* How many login tries he's had. */ 9 133 2 dialup_flags unal, /* flag bits for dialup to maintain */ 9 134 3 ppm bit (1) unal, /* print preaccess message for IBM terminals */ 9 135 3 cpo bit (1) unal, /* conditional printer-off (depends on answerback */ 9 136 3 wakeup_handler bit (1) unal, /* says who is wakeup handler for this channel */ 9 137 /* 0 = dialup_, 1 = mc_tty_ */ 9 138 3 save_arg bit (1) unal, /* -save login arg given */ 9 139 3 nosave_arg bit (1) unal, /* -nosave login arg given */ 9 140 3 detach_after_hangup 9 141 bit (1) unal, /* remember WAIT_DETACH when setting WAIT_BEFORE_HANGUP */ 9 142 3 leave_edited bit (1) unal, /* user control of edited mode */ 9 143 3 hold_arg bit (1) unal, /* -hold arg given */ 9 144 3 no_hold_arg bit (1) unal, /* -no_hold arg given */ 9 145 3 immediate_arg bit (1) unal, /* -immediate arg given */ 9 146 3 current_access_class_valid 9 147 bit (1) unal, /* dialup_ or lg_ctl_ has determined the current_access_class */ 9 148 3 pad bit (7) unal, 9 149 2 twx fixed bin, /* channel device index */ 9 150 2 state fixed bin, /* channel state */ 9 151 2 tty_id_code char (4), /* channel id (answerback) */ 9 152 2 current_terminal_type 9 153 char (32) unal, /* most recently-set terminal type */ 9 154 2 process ptr unal, /* ptr to ATE owning this channel */ 9 155 2 dialed_to_procid bit (36), /* Dialed channels remember owner's proc id */ 9 156 2 next_channel fixed bin (17) unal, /* cdte index of next channel for this process */ 9 157 2 cur_line_type fixed bin (17) unal, /* line type of currently dialed terminal */ 9 158 2 current_access_class (2) bit (72) aligned, /* This is a range, but at this time it must be a null range. 9 159* We do not yet define multi-class connections, but we will someday. */ 9 160 2 disconnected_ate_index 9 161 fixed bin (17) unal, /* index of ate of disconnected process */ 9 162 2 dial_ctl_ring fixed bin (3) unsigned unaligned, 9 163 /* used by dial_ctl_ to record ring of priv_attach or dial_out attachments */ 9 164 2 dial_rq_privileged bit (1) unaligned, /* used by dial ctl to record comm priv from priv_attach or dial_out request */ 9 165 2 pad3 bit (14) unaligned, 9 166 /**** The following variables are kept for metering purposes. */ 9 167 2 n_dialups fixed bin, /* number of times channel has been dialed up */ 9 168 2 n_logins fixed bin, /* number of login sessions on this channel */ 9 169 2 dialed_up_time fixed bin (35), /* total time channel was dialed up (seconds) */ 9 170 2 dialup_time fixed bin (71), /* time of present dialup */ 9 171 2 disconnected_proc_command 9 172 fixed bin (12) unsigned unal, 9 173 /* 1 to 5 for -list,-create,-connect,-new_proc,-destroy */ 9 174 2 disconnected_proc_number 9 175 fixed bin (12) unsigned unal, 9 176 /* {N} in -connect {N}, -new_proc {N}, -destroy {N} */ 9 177 2 n_disconnected_procs fixed bin (12) unsigned unal, 9 178 /* number of disconnected processes that user has */ 9 179 2 recent_wakeup_count fixed bin, /* counter to detect channel wakeup loop */ 9 180 2 recent_wakeup_time fixed bin (71), /* time of first wakeup in suspected channel wakeup loop */ 9 181 2 dial_ev_chn fixed bin (71), /* Dialed channels remember master's IPC channel */ 9 182 /**** cdt_mgr_ uses these to maintain the tree of channels. They ****/ 9 183 /**** really belong in the mpxe, but it is full up, and the cdte ****/ 9 184 /**** had the space. */ 9 185 2 threads aligned like channel_threads, 9 186 /**** The use name is that of the user who gave the dial or slave ****/ 9 187 /**** preaccess request. ****/ 9 188 2 user_name unaligned, 9 189 3 person char (20) unaligned, 9 190 3 project char (9) unaligned, 9 191 3 pad char (3) unaligned, /* no tag */ 9 192 2 iocbp ptr unaligned; /* 104 words */ 9 193 9 194 9 195 dcl generic_destination based char (32); /* used to match destinations on dial_out and priv_attach, 9 196* overlays initial_command field for slave and autocall lines */ 9 197 9 198 9 199 9 200 dcl 1 fnpe based (fnpep) aligned, /* an FNP */ 9 201 /* These variables are filled in from the CMF */ 9 202 2 type fixed bin, /* type of this FNP, DN355, DN6670, etc. */ 9 203 2 memory fixed bin, /* amount of memory on this FNP */ 9 204 2 nlslas fixed bin, /* number of lslas on this FNP */ 9 205 2 nhslas fixed bin, /* number of hslas on this FNP */ 9 206 2 service_type fixed bin, /* service type */ 9 207 2 mpx_type fixed bin, /* type of multiplexer on this fnp */ 9 208 2 coreimage char (168), /* pathname of image, maybe in >sl1 */ 9 209 /**** The following are used during system operation to remember the state of the FNP */ 9 210 2 boot_segp ptr, /* ptr to seg used for bootload */ 9 211 2 boot_ev_chan fixed bin (71), /* for ring0 to report crashes and bootload complete */ 9 212 2 mpxe like mpxe, /* standard multiplexer data */ 9 213 2 threads aligned like channel_threads, 9 214 /* same mpx threads as channel */ 9 215 2 pad3 (25) fixed bin; /* pad to 96 words per entry */ 9 216 9 217 /* This structure describes the data necessary to control a multiplexer. 9 218* For FNP's., a copy appears in the fnpe. For communications lines, it 9 219* overlays the initial_command field in the cdte. */ 9 220 9 221 dcl 1 mpxe based (mpxep) aligned, 9 222 2 state fixed bin, /* current state, up, down, loading */ 9 223 2 current_service_type fixed bin, /* usually = service type, unless cdt installation changes it */ 9 224 2 current_mpx_type fixed bin, /* type of multiplexer currently running */ 9 225 2 n_bootloads fixed bin, /* count of load attempts */ 9 226 2 time_initial_load fixed bin (71), /* time this MPX first completed a load */ 9 227 2 time_last_load fixed bin (71), /* time MPX last completed a bootload */ 9 228 2 time_last_crash fixed bin (71), /* time MPX last crashed */ 9 229 2 time_load_start fixed bin (71), /* time current load started */ 9 230 2 last_tbf fixed bin, /* number of minutes this MPX was up last bootload */ 9 231 2 flags unal, 9 232 3 go bit (1), /* start MPX after it loads */ 9 233 3 listening bit (1), /* listen has been done on subchannels */ 9 234 3 check bit (1), /* loaded with check option */ 9 235 3 retry_load bit (1), /* reload if load fails */ 9 236 3 pad1 bit (32), 9 237 2 pad2 (2) fixed bin; /* pad to 16 words */ 9 238 9 239 /* These threads define the tree of multiplexers in the cdt. */ 9 240 /* next_sister and prev_sister link nodes at the same level, ordered */ 9 241 /* by alpha sort order of the channel name. Daughter points to the */ 9 242 /* first child of this node, if any. Daughter count is the number */ 9 243 /* of children, as a consistency check. Mother is a back pointer to */ 9 244 /* the parent, present in all the children, not just the first. */ 9 245 /* threads are cdt indexes. If positive, they index the cdt_entry array */ 9 246 /* in cdt, if negative, they are the negative of an index into the fnp_entry */ 9 247 /* array. If zero, they refer to the top of the non-fnp mpx tree. */ 9 248 9 249 dcl 1 channel_threads aligned based, 9 250 2 next_sister fixed bin unaligned, 9 251 2 prev_sister fixed bin unaligned, 9 252 2 daughter fixed bin unaligned, 9 253 2 mother fixed bin unaligned, /* negative is a fnpx, positive a cdtx */ 9 254 2 pad bit (18) unaligned, 9 255 2 daughter_count fixed bin unaligned; 9 256 9 257 /* Values for cdte.service_type field */ 9 258 9 259 dcl ( 9 260 ANS_SERVICE init (1), /* login or dial */ 9 261 FTP_SERVICE init (2), /* file transfer service */ 9 262 MC_SERVICE init (3), /* message coordinator */ 9 263 SLAVE_SERVICE init (4), /* special channel */ 9 264 DIAL_SERVICE init (5), /* transient state */ 9 265 DIAL_OUT_SERVICE init (6), /* auto call line */ 9 266 MPX_SERVICE init (8), /* ring0 demultiplexed line */ 9 267 TANDD_SERVICE init (9) /* transient state, attached for T & D */ 9 268 ) fixed bin internal static options (constant); 9 269 9 270 /* Values for service type in both cdte and fnpe */ 9 271 9 272 dcl ( 9 273 INACTIVE init (7), /* not to be used, even though configured */ 9 274 ACTIVE init (1) 9 275 ) /* for FNP only, configured and to be used */ 9 276 fixed bin internal static options (constant); 9 277 9 278 /* Value for both cdte.in_use and fnpe.state */ 9 279 9 280 dcl NOT_CONFIGURED fixed bin int static init (-1) options (constant); 9 281 /* was not configured at Multics bootload time */ 9 282 9 283 /* NOTE: an INACTIVE channel can be made active by operator command or CDT installation, 9 284* but a NOT_CONFIGURED channel can not be used until its multiplexer is reloaded */ 9 285 9 286 /* Value for cdte.in_use */ 9 287 9 288 dcl CHANNEL_DELETED fixed bin int static init (-2); 9 289 /* channel deleted by CDT installation */ 9 290 9 291 /* NOTE: a configured channel being deleted by a CDT installation is set to CHANNEL_DELETED. 9 292* multiplexer_mgr_ sets cdte.in_use to NOW_FREE at the next reload of its multiplexer. 9 293* A NOT_CONFIGURED channel is set to NOW_FREE immediately when deleted by a CDT installation. */ 9 294 9 295 9 296 /* Values for mpxe.state field */ 9 297 9 298 dcl ( 9 299 FNP_FREE init (0), /* this fnpe is not used */ 9 300 FNP_UNKNOWN init (1), /* FNP is in some unknown state */ 9 301 FNP_DOWN init (2), /* FNP crashed, not yet reloaded */ 9 302 FNP_BOOT init (3), /* FNP has been booted, but no response yet */ 9 303 FNP_UP init (4) /* FNP is up and running fine */ 9 304 ) fixed bin internal static options (constant); 9 305 9 306 dcl ( 9 307 MPX_FREE init (0), /* this mpxe is not used */ 9 308 MPX_UNKNOWN init (1), /* MPX is in some unknown state */ 9 309 MPX_DOWN init (2), /* MPX crashed, not yet reloaded */ 9 310 MPX_BOOT init (3), /* MPX has been booted, but no response yet */ 9 311 MPX_UP init (4) /* MPX is up and running fine */ 9 312 ) fixed bin internal static options (constant); 9 313 10 1 /* BEGIN INCLUDE FILE ... fnp_types.incl.pl1 */ 10 2 10 3 10 4 10 5 /****^ HISTORY COMMENTS: 10 6* 1) change(88-06-15,Berno), approve(88-07-13,MCR7928), 10 7* audit(88-06-15,Parisek), install(88-07-19,MR12.2-1061): 10 8* Add data needed for the uncp multiplexer (DSA gateway) interface 10 9* implementation. 10 10* END HISTORY COMMENTS */ 10 11 10 12 10 13 /* Values for fnpe.type field */ 10 14 /* 10 15* Created 79 May 14 by Art Beattie by splitting information out from cdt.incl.pl1 10 16* Added in March 1982 - DN7100.fd. 10 17**/ 10 18 10 19 dcl (DN355 init (1), /* a DataNet 355 FNP */ 10 20 DN6600 init (2), /* a DataNet 6600 FNP */ 10 21 DN6670 init (3), /* a Honeywell Bull Network Processor (18x) */ 10 22 DN7100 init (4) /* The DSA Datanet architecture (DN7) */ 10 23 ) fixed bin internal static options (constant); 10 24 10 25 dcl fnp_types (4) char (8) int static options (constant) 10 26 init ("DN355", "DN6600", "DN6670", "DN7100"); 10 27 10 28 dcl fnp_models (4) fixed bin (17) int static options (constant) 10 29 init (355, 6600, 6670, 7100); 10 30 10 31 dcl supported_fnp (4) bit (1) int static options (constant) 10 32 init ("0"b, "0"b, "1"b, "1"b); 10 33 10 34 10 35 /* END INCLUDE FILE ... fnp_types.incl.pl1 */ 9 314 9 315 9 316 /* END INCLUDE FILE ... cdt.incl.pl1 */ 993 994 /* BEGIN INCLUDE FILE ... daemon_user_table.incl.pl1 */ 11 2 11 3 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 11 4 /* */ 11 5 /* The daemon_user_table has one entry per daemon. Daemons are logged in by */ 11 6 /* operator command or automatically. If they do any I/O, it is done via */ 11 7 /* the message coordinator. */ 11 8 /* */ 11 9 /* Programs using this include file must also use user_table_header.incl.pl1 */ 11 10 /* and user_table_entry.incl.pl1. */ 11 11 /* */ 11 12 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 11 13 11 14 11 15 /****^ HISTORY COMMENTS: 11 16* 1) change(81-09-10,Kittlitz), approve(), audit(), install(): 11 17* Initially coded from dutbl.incl.pl1. 11 18* 2) change(87-04-26,GDixon), approve(87-07-13,MCR7741), 11 19* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 11 20* A) Add use of ut_header common to all user control tables. 11 21* B) Corrected padding prior to first ute entry. 11 22* END HISTORY COMMENTS */ 11 23 11 24 11 25 dcl DUTBL_version_4 fixed bin int static init (4); /* version of this declaration */ 11 26 11 27 dcl dutp ptr automatic init (null); 11 28 11 29 dcl 1 dutbl based (dutp) aligned, /* Daemon user table */ 11 30 2 header like ut_header, /* Header common to all user tables. */ 11 31 11 32 2 active_count fixed bin, /* the count of active daemons managed by DUM_ */ 11 33 11 34 2 entry_pad (117) fixed bin, /* pad to 128 words */ 11 35 2 entry (0 refer (dutbl.current_size)) like ute; /* daemon user entries */ 11 36 11 37 /* END INCLUDE FILE ... daemon_user_table.incl.pl1 */ 994 995 /* BEGIN INCLUDE FILE ... dialup_values.incl.pl1 */ 12 2 12 3 /* format: style4 */ 12 4 12 5 /* Values for "cdte.tra_vec" used by dialup_ and others. */ 12 6 12 7 /* Modified by T. Casey April 1976 to add WAIT_NEW_PASSWORD 12 8* - in 1977 and 1978 to add WAIT_(GREETING_MSG DELETE_CHANNEL) 12 9* - and in October 1979 to add WAIT_CONNECT_REQUEST 12 10* Modified by Robert Coren in May 1981 to add TANDD_ATTACH values and 12 11* WAIT_DISCARD_WAKEUP 12 12* Modified by T. Casey, July 1981, for MR9.0, to add WAIT_BEFORE_HANGUP. 12 13* Modified by E. N. Kittlitz, July 1982, to add TTY_MASKED. 12 14**/ 12 15 12 16 /****^ HISTORY COMMENTS: 12 17* 1) change(87-04-20,GDixon), approve(87-07-13,MCR7741), 12 18* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 12 19* Add constant arrays naming cdte.state, cdte.tra_vec and ute.active values. 12 20* 2) change(87-05-11,GDixon), approve(87-07-13,MCR7741), 12 21* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 12 22* Add named constants for instance tags. 12 23* END HISTORY COMMENTS */ 12 24 12 25 dcl (WAIT_DIALUP init (1), /* Channel waiting for dialup. */ 12 26 WAIT_ANSWERBACK initial (2), /* WRU sent, waiting for reply */ 12 27 WAIT_LOGIN_LINE init (3), /* Greeting typed, wait for login command. */ 12 28 WAIT_LOGIN_ARGS init (4), /* Want rest of login line */ 12 29 WAIT_OLD_PASSWORD init (5), /* "-cpw" was specified. Wait for old password. */ 12 30 WAIT_PASSWORD init (6), /* Waiting for password. (If "-cpw", repeat of new one.) */ 12 31 WAIT_NEW_PASSWORD init (7), /* "-cpw" was specified. Wait for new password */ 12 32 WAIT_LOGOUT_SIG init (8), /* Channel is hooked up. Wait for logout. */ 12 33 WAIT_LOGOUT init (9), /* A logout has been requested. Wait for process to die */ 12 34 WAIT_LOGOUT_HOLD init (10), /* As above but don't hang up when it dies. */ 12 35 WAIT_DETACH init (11), /* As above but ignore channel afterwards. */ 12 36 WAIT_NEW_PROC init (12), /* As above but make new process and continue. */ 12 37 WAIT_REMOVE init (13), /* As above but completely expunge channel. */ 12 38 WAIT_FIN_PRIV_ATTACH init (14), /* When channel dials up, connect it to user */ 12 39 WAIT_DIAL_RELEASE init (15), /* Waiting for master process to release. */ 12 40 WAIT_DIAL_OUT init (16), /* Waiting for auto call to complete */ 12 41 WAIT_HANGUP init (17), /* Wait for the hangup event to occur for a channel */ 12 42 WAIT_SLAVE_REQUEST init (18), /* Ignore line until someone asks */ 12 43 WAIT_GREETING_MSG init (19), /* Print greeting message and wait for login line */ 12 44 WAIT_DELETE_CHANNEL init (20), /* Channel deleted - mark cdte after process is destroyed */ 12 45 WAIT_CONNECT_REQUEST init (21), /* logged in; awaiting request re disconnected processes */ 12 46 WAIT_TANDD_HANGUP init (22), /* when channel hangs up, proceed with t & d attachment */ 12 47 WAIT_FIN_TANDD_ATTACH init (23), /* when channel dials up, finish t & d attachment */ 12 48 WAIT_DISCARD_WAKEUPS init (24), /* disregard all wakeups on channel */ 12 49 WAIT_BEFORE_HANGUP init (25), /* allow output to print before hanging up */ 12 50 WAIT_DESTROY_REQUEST init (26), /* waiting to continue with destroy request after process has destroyed itself */ 12 51 WAIT_NEW_PROC_REQUEST init (27) /* waiting to continue with new_proc request after process has destroyed itself */ 12 52 ) fixed bin internal static options (constant); 12 53 12 54 dcl TRA_VEC_VALUES (0:13) char (32) aligned int static options (constant) init 12 55 /* names of ute.destroy_flag values */ 12 56 ("", "wait dialup", "wait answerback", "wait login line", /* 0-3 */ 12 57 "wait login args", "wait old password", "wait password", /* 4-6 */ 12 58 "wait new password", "wait logout signal", "wait logout", /* 7-9 */ 12 59 "wait logout hold", "wait detach", "wait new proc", /* 10-12 */ 12 60 "wait remove"); /* -13 */ 12 61 12 62 /* Values for "cdte.state", typewriter state. */ 12 63 12 64 dcl (TTY_MASKED init (-1), /* Terminal channel is there, but masked by MCS */ 12 65 TTY_HUNG init (1), /* Terminal channel is there, but dead. */ 12 66 TTY_KNOWN init (2), /* Channel being "listened" to, awaiting dialup. */ 12 67 TTY_DIALED init (5) /* Channel is dialed up. This is normal state. */ 12 68 ) fixed bin internal static options (constant); 12 69 12 70 dcl STATE_VALUES (-1:5) char (15) aligned int static options (constant) init 12 71 /* names of cdte.state values */ 12 72 ("masked", "dead", "hung up", "listening", "", "", "dialed up"); 12 73 12 74 /* Values for "cdte.in_use" and "ate.active" */ 12 75 12 76 dcl (NOW_FREE init (0), /* Entry is empty. */ 12 77 NOW_HUNG_UP init (1), /* Entry is usable but tty is hung up. */ 12 78 NOW_LISTENING init (2), /* Entry is waiting for phone call. */ 12 79 NOW_DIALED init (3), /* Entry is connected but login not complete. */ 12 80 NOW_LOGGED_IN init (4), /* Entry is logged in but no process. */ 12 81 NOW_HAS_PROCESS init (5), /* Entry has a valid process. */ 12 82 NOW_DIALING init (6), /* Entry (auto_call line) is dialing */ 12 83 NOW_DIALED_OUT init (7) /* Entry (auto_call line) is in use */ 12 84 ) fixed bin internal static options (constant); 12 85 12 86 dcl ACTIVE_VALUES (0:5) char (18) aligned int static options (constant) init 12 87 /* names of ute.active values */ 12 88 ("free", "hung-up", "listening", "dialed", "logged in, no proc", "logged in & proc"); 12 89 12 90 12 91 /**** Values for ute.tag */ 12 92 12 93 dcl (TAG_INTERACTIVE init("a"), 12 94 TAG_UFT init("f"), 12 95 TAG_ABSENTEE init("m"), 12 96 TAG_PROXY init("p"), 12 97 TAG_DAEMON init("z") 12 98 ) char(1) int static options(constant); 12 99 12 100 12 101 /**** Following are constants used to indicate to the process termination 12 102* handler the reason for the process termination. They are used by 12 103* uc_proc_term_handler_, as well as uc_ls_new_proc_request_ and 12 104* uc_ls_destroy_request_. */ 12 105 12 106 dcl ( 12 107 PT_FPE initial (1), 12 108 PT_LOGOUT initial (4), 12 109 PT_NEW_PROC_AUTH initial (13), 12 110 PT_HANGUP initial (20), 12 111 PT_SHUTDOWN initial (21), 12 112 PT_BUMP initial (22), 12 113 PT_ALARM initial (23), 12 114 PT_DETACH initial (24), 12 115 PT_UNBUMP initial (25), 12 116 PT_OPERATOR_TERMINATE initial (27), 12 117 PT_DESTROY_REQUEST initial (30), 12 118 PT_NEW_PROC_REQUEST initial (31) 12 119 ) fixed bin (17) internal static options (constant); 12 120 12 121 /**** Values for ute.preempted: 12 122* -1 user unbumped after term signal sent 12 123* 0 user unbumped; ignore alarm___ 12 124* 1 value internally used in load_ctl_ 12 125* 2 user bumped; when alarm___ comes in, send term signal 12 126* 3 term signal sent; destroy process if termsgnl, alarm___, or cpulimit 12 127* signals come in 12 128* 4 user bumped; process sick, so destroy without sending term signal 12 129* 5 trm_ signal sent, termsgnl received; (if still 3, we never got the 12 130* termsgnl). */ 12 131 12 132 dcl ( 12 133 PREEMPT_UNBUMP initial (-1), 12 134 PREEMPT_UNBUMP_IGNORE_ALARM initial (0), 12 135 PREEMPT_LOAD_CTL initial (1), 12 136 PREEMPT_BUMPED initial (2), 12 137 PREEMPT_TERM_SENT initial (3), 12 138 PREEMPT_BUMPED_NO_TERM initial (4), 12 139 PREEMPT_TERMSGNL_RECEIVED initial (5) 12 140 ) fixed bin (17) internal static options(constant); 12 141 12 142 dcl PREEMPT_VALUES (-1:5) char(28) varying int static options(constant) init( 12 143 "unbumped", 12 144 "not bumped, ignore alarm___", 12 145 "load_ctl_", 12 146 "bumped", 12 147 "bumped, trm_ sent", 12 148 "bumped without trm_", 12 149 "bumped, termsgnl received"); 12 150 12 151 /* END INCLUDE FILE ... dialup_values.incl.pl1 */ 995 996 /* BEGIN INCLUDE FILE ... login_server_messages.incl.pl1 */ 13 2 13 3 /****^ HISTORY COMMENTS: 13 4* 1) change(86-06-30,Coren), approve(86-06-30,MCR7415), 13 5* audit(86-07-02,Margolin), install(86-07-11,MR12.0-1092): 13 6* Initial implementation. 13 7* 2) change(87-04-16,GDixon), approve(87-07-13,MCR7679), 13 8* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 13 9* A) Add REQUEST_TYPES and RESPONSE_TYPES arrays. 13 10* B) Add login_server_validate_response.last_incorrect_password.time. 13 11* C) Add user_connection_info.line_type. 13 12* D) Add login_server_process_request.minimum_ring. 13 13* 3) change(87-05-14,GDixon), approve(87-07-13,MCR7737), 13 14* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 13 15* A) Add login_server_process_response.brief. 13 16* B) Add login_server_list_response.initial_ring. 13 17* C) Separate login_server_process_response into fixed and variable parts. 13 18* D) Move user_connection_info into login_server_request_header. 13 19* END HISTORY COMMENTS */ 13 20 13 21 /* This include file defines all the structures passed in message segments 13 22* between a login server process and the Initializer (or "answering service") 13 23* process. For convenience, messages from the server to the initializer, 13 24* passed using the send_ls_request_ subroutine, are called "requests"; 13 25* messages from the initializer to the server, passed using the user_message_ 13 26* mechanism, are called "responses". 13 27**/ 13 28 13 29 /* Request types */ 13 30 13 31 dcl (LS_VALIDATE_REQUEST initial (1), /* validate user ID and password */ 13 32 LS_PROCESS_REQUEST initial (2), /* create or connect to a process */ 13 33 LS_LIST_REQUEST initial (3), /* list disconnected processes */ 13 34 LS_DIAL_REQUEST initial (4), /* find a dial server */ 13 35 LS_DISCONNECT_REQUEST initial (5), /* report disconnection of a login channel */ 13 36 LS_LOGOUT_REQUEST initial (6), /* discard UTE (end of dialogue) */ 13 37 LS_OPERATOR_REQUEST initial (7)) /* log the user in as an operator */ 13 38 fixed bin internal static options (constant); 13 39 13 40 dcl LS_REQUEST_TYPES (7) char (10) internal static options (constant) initial 13 41 ( 13 42 "validate", 13 43 "process", 13 44 "list", 13 45 "dial", 13 46 "disconnect", 13 47 "logout", 13 48 "operator"); 13 49 13 50 dcl ls_request_ptr pointer; 13 51 13 52 /* common header for all requests */ 13 53 13 54 dcl 1 ls_request_header aligned based (ls_request_ptr), 13 55 2 header_version char (8), /* version for this header */ 13 56 2 request_version char (8), /* varies depending on the request */ 13 57 2 request_type fixed bin, 13 58 2 pad1 bit (36), 13 59 2 reply_event_channel fixed bin (71), /* event channel over which reply_message should be sent */ 13 60 2 reply_handle bit (72) aligned, /* used for dispatching response */ 13 61 2 connection_info like user_connection_info; /* connection making this request. */ 13 62 13 63 dcl LS_REQUEST_HEADER_VERSION_1 char (8) initial ("lsrh0001") internal static options (constant); 13 64 13 65 dcl 1 user_connection_info aligned based, /* common info passed in most requests */ 13 66 2 connection_name char (32), 13 67 2 access_class_range (2) bit (72), 13 68 2 terminal_type char (32), 13 69 2 terminal_id char (4), 13 70 2 line_type fixed bin; 13 71 13 72 13 73 13 74 /* "validate" request: validate user ID and password */ 13 75 13 76 dcl 1 login_server_validate_request aligned based (ls_request_ptr), 13 77 2 header like ls_request_header, /* request_type = LS_VALIDATE_REQUEST */ 13 78 2 current_password char (8), /* scrambled */ 13 79 2 authorization bit (72), /* only valid if auth_given = "1"b */ 13 80 2 terminate_event_channel fixed bin (71), /* event channel to notify server when process terminates */ 13 81 2 person_id char (22), /* as specified in login line */ 13 82 2 project_id char (9), /* likewise, might be null string */ 13 83 2 network_connection_type fixed bin, /* see below for values */ 13 84 2 new_password char (8), /* only valid if change_password = "1"b */ 13 85 2 flags, 13 86 3 gpw bit (1) unaligned, /* password generated in response to -generate_password */ 13 87 3 auth_given bit (1) unaligned, /* -authorization specified */ 13 88 3 anonymous bit (1) unaligned, /* "enterp" request */ 13 89 3 anon_no_password bit (1) unaligned, /* "enter" request */ 13 90 3 change_password bit (1) unaligned, /* gave -cpw or -gpw */ 13 91 3 change_default_auth bit (1) unaligned, /* gave -change_default_authorization */ 13 92 3 change_default_proj bit (1) unaligned, /* gave -change_default_project */ 13 93 3 operator bit (1) unaligned, /* gave -operator */ 13 94 3 pad bit (28) unaligned; 13 95 13 96 13 97 dcl LS_VALIDATE_REQUEST_VERSION_1 char (8) internal static options (constant) initial ("lsvr0001"); 13 98 13 99 13 100 13 101 /* "process" request: create a process or reconnect to an existing process for the specified user */ 13 102 13 103 dcl 1 login_server_process_request aligned based (ls_request_ptr), 13 104 2 fixed_part, /* to allow for automatic copies */ 13 105 3 header like ls_request_header, /* request_type = LS_PROCESS_REQUEST */ 13 106 3 handle bit (72), /* as provided in validate_response */ 13 107 3 person_id char (22), /* the real one */ 13 108 3 project_id char (9), /* likewise */ 13 109 3 project_pad fixed bin, 13 110 3 command_type fixed bin, /* login, connect, etc.; see below for names */ 13 111 3 process_number fixed bin, /* 0 if unspecified or irrelevant */ 13 112 3 default_io_module char (32), /* I/O module to use if no outer_module specified */ 13 113 3 switch_flags, /* used to indicate if "switch"-type control args were specified */ 13 114 4 warn_given bit (1) unaligned, 13 115 4 force_given bit (1) unaligned, 13 116 4 save_given bit (1) unaligned, 13 117 4 preempt_given bit (1) unaligned, 13 118 4 brief_given bit (1) unaligned, 13 119 4 pad2 bit (31) unaligned, 13 120 3 switch_values, /* these are only valid if corresponding bit in switch_flags is on */ 13 121 4 warn bit (1) unaligned, 13 122 4 force bit (1) unaligned, 13 123 4 save_on_disconnect bit (1) unaligned, 13 124 4 preempt bit (1) unaligned, 13 125 4 brief bit (1) unaligned, /* "0"b & brief_given => -long */ 13 126 4 pad3 bit (31) unaligned, 13 127 3 other_flags, 13 128 4 init_ring_given bit (1) unaligned, /* "1"b if -ring */ 13 129 4 minimum_ring_given bit (1) unaligned, /* "1"b if MNA terminal interface ring > 1 */ 13 130 4 immediate bit (1) unaligned, /* "1"b => -new_proc (or -destroy) -immediate */ 13 131 4 no_start_up bit (1) unaligned, /* "1"b if -no_start_up */ 13 132 4 pad4 bit (32) unaligned, 13 133 3 initial_ring fixed bin, /* valid iff init_ring_given = "1"b */ 13 134 3 minimum_ring fixed bin, /* ring in which MNA terminal mgr operates */ 13 135 3 home_dir char (168), /* null if not specified */ 13 136 3 outer_module char (32), /* likewise */ 13 137 3 process_overseer char (168), /* likewise */ 13 138 3 subsystem char (168), /* likewise */ 13 139 3 n_args fixed bin, /* how many arguments specified after -ag; if 0, ignore the rest of the structure */ 13 140 2 login_arguments, /* variable part, describes stuff after -ag */ 13 141 3 arg_string_length fixed bin (21), 13 142 3 args (ls_process_request_n_args refer (login_server_process_request.n_args)), 13 143 4 start_index fixed bin (21), /* position in arg_string at which arg (i) starts */ 13 144 4 arg_length fixed bin (21), /* length of arg (i) */ 13 145 3 arg_string char (ls_process_request_arg_string_length refer (login_server_process_request.arg_string_length)); 13 146 13 147 dcl ls_process_request_n_args fixed bin; 13 148 dcl ls_process_request_arg_string_length fixed bin (21); 13 149 13 150 dcl LS_PROCESS_REQUEST_VERSION_1 char (8) internal static options (constant) initial ("lspr0001"); 13 151 13 152 13 153 13 154 /* "list" request: list the user's disconnected processes, if any */ 13 155 13 156 dcl 1 login_server_list_request aligned based (ls_request_ptr), 13 157 2 header like ls_request_header, /* request_type = LS_LIST_REQUEST */ 13 158 2 handle bit (72); 13 159 13 160 dcl LS_LIST_REQUEST_VERSION_1 char (8) internal static options (constant) initial ("lslr0001"); 13 161 13 162 13 163 13 164 /* "dial" request: find a process to accept a dial */ 13 165 13 166 /* Note: because a dial request may or may not have been preceded 13 167* by a validate request/response, the initializer_handle may be null. 13 168**/ 13 169 13 170 dcl 1 login_server_dial_request aligned based (ls_request_ptr), 13 171 2 header like ls_request_header, /* request_type = LS_DIAL_REQUEST */ 13 172 2 initializer_handle bit (72), /* as provided in validate_response (if any) */ 13 173 2 terminate_event_channel fixed bin (71), /* event channel to wake up login server when master process terminates */ 13 174 2 dial_qualifier char (22), 13 175 2 person_id char (22), /* null if not specified */ 13 176 2 project_id char (9), /* likewise */ 13 177 2 user_person_id char (22), /* if -user was specified, otherwise "" */ 13 178 2 user_project_id char (9); /* likewise */ 13 179 13 180 dcl LS_DIAL_REQUEST_VERSION_1 char (8) internal static options (constant) initial ("lsdr0001"); 13 181 13 182 13 183 13 184 /* "disconnect" request: report that a login channel has disconnected */ 13 185 /* Note: this message is sent if the connection is broken either during the login dialogue 13 186* or later on when the process was using it */ 13 187 13 188 dcl 1 login_server_disconnect_request aligned based (ls_request_ptr), 13 189 2 header like ls_request_header, /* request_type = LS_DISCONNECT_REQUEST */ 13 190 2 handle bit (72), /* from original validate_response */ 13 191 2 process_id bit (36); /* ""b if no process established */ 13 192 13 193 dcl LS_DISCONNECT_REQUEST_VERSION_1 char (8) internal static options (constant) initial ("lsdc0001"); 13 194 13 195 13 196 13 197 /* "logout" request: indicates that user entered the "logout" request, ending the dialogue; does not require any response */ 13 198 13 199 dcl 1 login_server_logout_request aligned based (ls_request_ptr), 13 200 2 header like ls_request_header, /* request_type = LS_LOGOUT_REQUEST */ 13 201 2 handle bit (72); 13 202 13 203 dcl LS_LOGOUT_REQUEST_VERSION_1 char (8) internal static options (constant) initial ("lslg0001"); 13 204 13 205 13 206 13 207 /* "operator" request: sign the user on as an operator, the result of either 13 208* "login -operator" or "dial system". Note that in the latter case, there may 13 209* not have been a validate request (if the -user control argument wasn't specified), 13 210* in which case initializer_handle is null, and the person_id and project_id 13 211* are blank. 13 212**/ 13 213 13 214 dcl 1 login_server_operator_request aligned based (ls_request_ptr), 13 215 2 header like ls_request_header, /* request_type = LS_OPERATOR_REQUEST */ 13 216 2 initializer_handle bit (72) aligned, /* as provided in validate_response (if any) */ 13 217 2 terminate_event_channel fixed bin (71), /* event channel for wakeup when connection is dropped */ 13 218 2 person_id char (22), /* likewise */ 13 219 2 project_id char (9), /* likewise */ 13 220 2 virtual_channel char (32); /* if -virtual_channel specified, otherwise "" */ 13 221 13 222 dcl LOGIN_SERVER_OPERATOR_REQUEST_VERSION_1 char (8) internal static options (constant) initial ("lsor0001"); 13 223 13 224 13 225 13 226 /* Response types */ 13 227 13 228 dcl (LS_UNKNOWN_RESPONSE initial (100), /* unknown response type. */ 13 229 LS_VALIDATE_RESPONSE initial (101), /* response to validation request */ 13 230 LS_PROCESS_RESPONSE initial (102), /* response to process request */ 13 231 LS_LIST_RESPONSE initial (103), /* response to list request */ 13 232 LS_DIAL_RESPONSE initial (104), /* response to dial request */ 13 233 LS_TERMINATION_RESPONSE initial (105), /* to notify server of a logout */ 13 234 LS_NEW_PROC_RESPONSE initial (106), /* to notify server of process termination */ 13 235 LS_OPERATOR_RESPONSE initial (107)) /* response to operator request */ 13 236 fixed bin internal static options (constant); 13 237 13 238 dcl LS_RESPONSE_TYPES (100:107) char (10) internal static options (constant) initial 13 239 ( 13 240 "UNKNOWN", 13 241 "validate", 13 242 "process", 13 243 "list", 13 244 "dial", 13 245 "terminate", 13 246 "new_proc", 13 247 "operator"); 13 248 13 249 /* NOTE: the server_handle is not included in the response structures because 13 250* it is provided in the user_message_ structures */ 13 251 13 252 13 253 13 254 dcl ls_response_ptr pointer; 13 255 13 256 /* common header for all responses */ 13 257 13 258 dcl 1 login_server_response_header aligned based (ls_response_ptr), 13 259 2 message_type fixed bin, 13 260 2 header_pad bit (36), /* force doubleword alignment */ 13 261 2 version char (8); 13 262 13 263 13 264 13 265 /* "validate" response: indicate whether user_id/password is valid */ 13 266 13 267 dcl 1 login_server_validate_response aligned based (ls_response_ptr), 13 268 2 header like login_server_response_header, /* message_type = LS_VALIDATE_RESPONSE */ 13 269 2 handle bit (72), /* to be provided by the server in subsequent */ 13 270 /* messages for the same connection */ 13 271 2 authorization bit (72), /* default if none was supplied */ 13 272 2 authorization_range (2) bit (72), /* authorization range permitted for this user */ 13 273 2 status_code fixed bin (35), /* 0 iff user is validated */ 13 274 2 person_id char (22), /* primary name from the PNT */ 13 275 2 project_id char (9), /* primary name from the PNT or PDT */ 13 276 2 n_disconnected_processes fixed bin, /* number of disconnected processes for specified user */ 13 277 2 validate_pad fixed bin, 13 278 2 previous_login_info, /* for printing login message */ 13 279 3 time fixed bin (71), 13 280 3 terminal_type char (32), 13 281 3 terminal_id char (4), 13 282 2 incorrect_passwords fixed bin, /* number of times password given incorrectly */ 13 283 2 last_incorrect_password, /* where it came from */ 13 284 3 time fixed bin (71), 13 285 3 terminal_type char (32), 13 286 3 terminal_id char (4), 13 287 2 password_interval fixed bin, /* limit (in days) for password use or change */ 13 288 2 flags, 13 289 3 disconnect bit (1) unaligned, /* if "1"b, close the connection immediately */ 13 290 3 password_changed bit (1) unal, /* "1"b => changed password */ 13 291 3 default_auth_changed bit (1) unal, /* "1"b => changed default authorization */ 13 292 3 default_proj_changed bit (1) unal, /* "1"b => changed default project */ 13 293 3 password_expired bit (1) unal, /* "1"b => password not changed recently enough */ 13 294 3 password_unused_too_long bit (1) unal, /* "1"b => password hasn't been used recently */ 13 295 3 pad bit (30) unaligned; 13 296 13 297 dcl LS_VALIDATE_RESPONSE_VERSION_1 char (8) internal static options (constant) initial ("lsvs0001"); 13 298 13 299 13 300 13 301 /* "process" response: responds to request to create or connect */ 13 302 13 303 dcl 1 login_server_process_response aligned based (ls_response_ptr), 13 304 2 fixed_part, 13 305 3 header like login_server_response_header, /* message_type = LS_PROCESS_RESPONSE */ 13 306 3 status_code fixed bin (35), /* 0 iff process was created or requested process exists */ 13 307 3 process_id bit (36), 13 308 3 new_handle bit (72), /* changed if reconnecting, etc. to preexisting process, all 0 otherwise */ 13 309 3 authorization bit (72), /* authorization of created or existing process */ 13 310 3 process_group_id char (32), /* Person.Project.tag */ 13 311 3 process_number fixed bin, /* as in, "Your disconnected process #2..." */ 13 312 3 n_disconnected_processes fixed bin, /* valid even if code ^= 0, e.g., if request was ambiguous */ 13 313 3 start_event_channel fixed bin (71), /* event channel to wake up user process on */ 13 314 3 login_instance fixed bin, /* "This is your Nth interactive login" */ 13 315 3 accounting_info, /* for destroyed process, if any */ 13 316 4 cpu_usage fixed bin (71), 13 317 4 cost float bin, 13 318 3 flags, /* except for disconnect and logout, invalid if status_code ^= 0 */ 13 319 4 disconnect bit (1) unaligned, /* "1"b => break the connection immediately */ 13 320 4 logout bit (1) unaligned, /* "1"b => restart login sequence */ 13 321 4 created bit (1) unaligned, /* "1"b => new process created */ 13 322 4 connected bit (1) unaligned, /* "1"b => connected to old process */ 13 323 4 new_proc bit (1) unaligned, /* "1"b => connected after new_proc */ 13 324 4 destroyed bit (1) unaligned, /* "1"b => process destroyed */ 13 325 4 anonymous bit (1) unaligned, /* "1"b => anonymous user ("enter" or "enterp") */ 13 326 4 already_logged_in bit (1) unaligned, /* "1"b => user can't log in because he already is */ 13 327 4 message_coordinator bit (1) unaligned, /* "1"b => this connection is going to be used by the message coordinator */ 13 328 4 brief bit (1) unaligned, /* "1"b => brief user attribute from PDT */ 13 329 4 pad bit (26) unaligned, 13 330 3 initial_ring fixed bin, /* ring in which process was created */ 13 331 3 already_logged_in_info, /* relevant if already_logged_in flag is "1"b */ 13 332 4 connection_name char (32), 13 333 4 terminal_type char (32), 13 334 4 terminal_id char (4), 13 335 2 accounting_message_struc, /* character string assembled by initializer giving error or warnings about the user's account */ 13 336 3 accounting_message_length fixed bin, 13 337 3 accounting_message char (ls_process_response_accounting_message_length refer (login_server_process_response.accounting_message_length)); 13 338 13 339 dcl ls_process_response_accounting_message_length fixed bin; 13 340 13 341 dcl LOGIN_SERVER_PROCESS_RESPONSE_VERSION_1 char (8) internal static options (constant) initial ("lsps0001"); 13 342 13 343 13 344 13 345 /* "list" response: used if create request specified "list" command */ 13 346 13 347 dcl 1 login_server_list_response aligned based (ls_response_ptr), 13 348 2 header like login_server_response_header, /* message_type = LS_LIST_RESPONSE */ 13 349 2 n_processes fixed bin, /* number of disconnected processes (might be 0) */ 13 350 2 pad_header fixed bin, 13 351 2 process_info (login_server_list_response_n_processes refer (login_server_list_response.n_processes)), 13 352 3 creation_time fixed bin (71), 13 353 3 authorization bit (72), 13 354 3 initial_ring fixed bin, 13 355 3 pad_process_info fixed bin, 13 356 3 connection_info like user_connection_info; 13 357 13 358 dcl login_server_list_response_n_processes fixed bin; 13 359 13 360 dcl LOGIN_SERVER_LIST_RESPONSE_VERSION_1 char (8) internal static options (constant) initial ("lslr0001"); 13 361 13 362 13 363 13 364 /* "dial" response: response to dial request */ 13 365 13 366 dcl 1 login_server_dial_response aligned based (ls_response_ptr), 13 367 2 header like login_server_response_header, /* message_type = LS_DIAL_RESPONSE */ 13 368 2 status_code fixed bin (35), /* 0 iff dial server was found and all is OK */ 13 369 2 process_id bit (36), /* of dial server */ 13 370 2 process_group_id char (32), /* likewise */ 13 371 2 authorization bit (72), /* likewise, to make sure connection is usable */ 13 372 2 start_event_channel fixed bin (71), /* event channel to wake up user process on */ 13 373 2 process_ring fixed bin, /* initial ring of dial server */ 13 374 2 flags, 13 375 3 disconnect bit (1) unaligned, /* "1"b => break connection immediately */ 13 376 3 pad bit (35) unaligned; 13 377 13 378 dcl LOGIN_SERVER_DIAL_RESPONSE_VERSION_1 char (8) internal static options (constant) initial ("lsds0001"); 13 379 13 380 13 381 13 382 /* "termination" response: (not a response to anything): notify server that a 13 383* process terminated other than by logout */ 13 384 13 385 dcl 1 login_server_termination_response aligned based (ls_response_ptr), 13 386 2 header like login_server_response_header, /* message_type = LS_TERMINATION_RESPONSE */ 13 387 2 accounting_info, /* for printing in logout message */ 13 388 3 cpu_usage fixed bin (71), 13 389 3 cost float bin, 13 390 3 pad bit (33) unaligned, 13 391 2 process_id bit (36), /* of the logged-out process */ 13 392 2 process_group_id char (32), 13 393 2 status_code fixed bin (35), /* e.g., to indicate reason for fatal error */ 13 394 2 flags, 13 395 3 logout bit (1) aligned, /* no new process coming */ 13 396 3 automatic_logout bit (1) unaligned, 13 397 3 hold bit (1) unaligned, 13 398 3 brief bit (1) unaligned, 13 399 3 new_proc bit (1) unaligned, /* user-requested new process */ 13 400 3 fatal_error bit (1) unaligned, /* process died unexpectedly */ 13 401 3 fpe_caused_logout bit (1) unaligned, /* fatal error doesn't generate new process */ 13 402 3 fpe_loop bit (1) unaligned, /* fatal error loop: too many in too short a time */ 13 403 3 fpe_during_init bit (1) unaligned, /* fatal error during process initialization */ 13 404 3 offer_help bit (1) unaligned, /* print a message offering "help" */ 13 405 3 pad bit (27) unaligned; 13 406 13 407 dcl LOGIN_SERVER_TERMINATION_RESPONSE_VERSION_1 char (8) internal static options (constant) initial ("lstr0001"); 13 408 13 409 13 410 13 411 /* "new_proc" response: (not actually a response to anything) -- describes a 13 412* new process (after a termination_response) */ 13 413 13 414 dcl 1 login_server_new_proc_response aligned based (ls_response_ptr), 13 415 2 header like login_server_response_header, /* message_type = LS_NEW_PROC_RESPONSE */ 13 416 2 new_authorization bit (72), /* in case of new_proc -auth */ 13 417 2 new_start_event_channel fixed bin (71), /* event channel for starting new process */ 13 418 2 new_process_id bit (36); /* process_id of newly-created process */ 13 419 13 420 dcl LOGIN_SERVER_NEW_PROC_RESPONSE_VERSION_1 char (8) internal static options (constant) initial ("lsnp0001"); 13 421 13 422 13 423 13 424 /* "operator" response: indicates success or failure of operator request */ 13 425 13 426 dcl 1 login_server_operator_response aligned based (ls_response_ptr), 13 427 2 header like login_server_response_header, /* message_type = LS_OPERATOR_RESPONSE */ 13 428 2 status_code fixed bin (35), /* indicates success or failure */ 13 429 2 process_id bit (36), /* process ID of the message coordinator */ 13 430 2 process_group_id char (32), /* Person.Project.tag */ 13 431 2 event_channel fixed bin (71), /* event channel over which to send connect/disconnect wakeups */ 13 432 2 ring fixed bin, /* ring of message coordinator */ 13 433 2 flags, 13 434 3 disconnect bit (1) unaligned, /* "1" => break the connection immediately */ 13 435 3 mbz bit (35) unaligned; 13 436 13 437 13 438 dcl LOGIN_SERVER_OPERATOR_RESPONSE_VERSION_1 char (8) internal static options (constant) initial ("lsos0001"); 13 439 13 440 13 441 /* format of reply message sent to acknowledge receipt of a request */ 13 442 13 443 dcl ls_reply_message_ptr pointer; 13 444 13 445 dcl 1 ls_reply_message aligned based (ls_reply_message_ptr), 13 446 2 code fixed bin (35), 13 447 2 flags, 13 448 3 request_invalid bit (1) unaligned, /* "1"b => could not process request */ 13 449 3 response_sent bit (1) unaligned, /* "1"b => there is a response message */ 13 450 3 as_error_code bit (1) unaligned, /* "1"b => code is from as_error_table_ */ 13 451 3 do_not_reply bit (1) unaligned, /* "1"b => special flag for AS to prevent any reply from being sent to login server */ 13 452 3 mbz bit (32) unaligned; 13 453 13 454 /* The following are values used to identify the various requests internally; those from CREATE_REQ on 13 455* can appear as "command_type" in ls_process_requests. */ 13 456 13 457 dcl (LOGIN_REQ initial (1), 13 458 ENTER_REQ initial (2), 13 459 ENTERP_REQ initial (3), 13 460 CREATE_REQ initial (4), 13 461 DESTROY_REQ initial (5), 13 462 CONNECT_REQ initial (6), 13 463 NEW_PROC_REQ initial (7), 13 464 LIST_REQ initial (8)) 13 465 fixed bin internal static options (constant); 13 466 13 467 /* The following are the possible values for login_server_validate_request.network_connection_type. 13 468* They are used by the initializer to select a default process overseer and an instance tag. 13 469**/ 13 470 13 471 dcl (NETWORK_CONNECTION_LOGIN initial (1), 13 472 NETWORK_CONNECTION_DSA_FILE_TRANSFER initial (2)) 13 473 fixed bin internal static options (constant); 13 474 13 475 /* END INCLUDE FILE ... login_server_messages.incl.pl1 */ 996 997 /* BEGIN INCLUDE FILE ... mc_anstbl.incl.pl1 */ 14 2 14 3 14 4 /****^ HISTORY COMMENTS: 14 5* 1) change(85-12-19,MSharpe), approve(87-05-25,MCR7690), 14 6* audit(87-03-30,GDixon), install(87-08-04,MR12.1-1056): 14 7* Added the pending and virtual flags and virtual_tty_name to mc_ate; 14 8* changed mc_ate.tty_name to mc_ate.real_tty_name; added mc_ate.ls_procid, 14 9* mc_ate.ls_term_ev_chn, mc_ate.ls_resp_ev_chn, mc_ate.ls_handle. 14 10* 2) change(87-02-04,GDixon), approve(87-05-25,MCR7690), 14 11* audit(87-06-01,Parisek), install(87-08-04,MR12.1-1056): 14 12* Add mc_ate.vchn_requires_accept in support of virtual channels. Explicitly 14 13* declare implicit pad fields which the compile adds for element alignment 14 14* purposes. Declare mc_ansp and mc_atep, on which major structures are 14 15* based, rather than depending upon includers do to so. 14 16* 3) change(87-03-27,Parisek), approve(87-05-25,MCR7690), 14 17* audit(87-06-11,GDixon), install(87-08-04,MR12.1-1056): 14 18* Added the dsa_ring_number element to provide a constant for determining 14 19* the DSA ring. 14 20* END HISTORY COMMENTS */ 14 21 14 22 14 23 /* format: style3,idind30 */ 14 24 14 25 dcl 1 mc_anstbl based (mc_ansp) aligned, 14 26 /* Structure of answer table */ 14 27 2 max_size fixed bin, /* max number of entries table can grow */ 14 28 2 current_size fixed bin, /* actual size of table (in entries) */ 14 29 2 mc_procid bit (36), /* process ID of message coordinator */ 14 30 2 sysdir char (168), /* name of main system control directory */ 14 31 2 pad_ptrs bit (36), 14 32 2 mrtp ptr, 14 33 2 vconsp ptr, 14 34 2 cons_cont_proc entry, /* mc_tty_ */ 14 35 2 con_rec, /* Data for console recovery. */ 14 36 3 mc_ate_ptr ptr, /* Pts to recovery device. */ 14 37 3 ec_id fixed bin (71), /* Recovery event chan. */ 14 38 3 seq_num fixed bin (35), /* Syserr sequence number. */ 14 39 3 offset bit (18), /* Log entry offset. */ 14 40 3 flags, 14 41 ( 4 enabled bit (1), /* ON => recovery possible. */ 14 42 4 active bit (1), 14 43 4 pad_flags bit (16) 14 44 ) unaligned, /* ON => recovery going on. */ 14 45 2 n_sources fixed bin, /* number of communicating sources */ 14 46 2 max_sources fixed bin, /* maximum number of sources allowed */ 14 47 2 current_time fixed bin (71), /* Time of last transaction */ 14 48 2 trace bit (1) aligned, 14 49 2 dsa_ring_number fixed bin, /* DSA ring number */ 14 50 2 pad_entries (30) bit (36) aligned, 14 51 2 entry (0 refer (mc_anstbl.current_size)) aligned like mc_ate, 14 52 mc_ansp ptr; 14 53 14 54 dcl 1 mc_ate based (mc_atep) aligned, 14 55 /* declaration of a single answer table entry */ 14 56 2 flags aligned, 14 57 3 virtual bit (1) unaligned, /* 1 => login -vchn XXX */ 14 58 3 pending bit (1) unaligned, /* 1 => pending entry created for DSA channel 14 59* since we can't keep info in cdte for it */ 14 60 3 active bit (1) unaligned, 14 61 3 the_system_console bit (1) unaligned, /* otw_/ocd_ */ 14 62 3 a_system_console bit (1) unaligned, /* Not yet implemented -- a random opc through a */ 14 63 /* nonexistent I/O module */ 14 64 3 pad001 bit (1) unaligned, 14 65 3 signed_on bit (1) unaligned, 14 66 3 reply_restricted bit (1) unaligned, 14 67 3 broadcast bit (1) unaligned, 14 68 3 broadcast_all bit (1) unaligned, 14 69 3 vchn_requires_accept bit (1) unaligned, 14 70 3 pad_flags bit (25) unaligned, 14 71 2 virtual_tty_name char (32) unaligned, 14 72 2 real_tty_name char (32) unaligned, 14 73 2 pad_ptrs bit (36), 14 74 2 cdtep pointer, /* we get info from cdt */ 14 75 2 iocb pointer, /* do I/O here */ 14 76 2 sci_ptr pointer, 14 77 2 tra_vec fixed bin, 14 78 2 restrict_reply char (32), /* Source name. if "", everybody. */ 14 79 /* Broadcasting information. */ 14 80 2 n_casts fixed bin, /* If flag is 1 */ 14 81 2 cast (10) char (32), /* If flag is 1, list of consoles. */ 14 82 2 oper_info, /* for oper assigned this console... */ 14 83 3 personid char (32), 14 84 3 last_input_time fixed bin (71), /* time of last input on this console... */ 14 85 2 queue_ptr ptr, 14 86 2 queue_event fixed bin (71), 14 87 2 event fixed binary (71), /* name of event call channel associated with TTY */ 14 88 2 ls_procid bit (36), /* ID of login_server who will wake us up with connect 14 89* and disconnect -- used only for network channels */ 14 90 2 pad_ev_chn bit (36), 14 91 2 ls_term_ev_chn fixed bin (71), /* event channel to send terminate response to ls */ 14 92 2 ls_resp_ev_chn fixed bin (71), /* event channel to send operator response to ls */ 14 93 2 ls_handle bit (72), /* login server handle for this connection */ 14 94 2 authority, 14 95 3 privilege (36) bit (1) unaligned, 14 96 2 control, 14 97 3 inhibit bit (1) unal, 14 98 3 output_wait bit (1) unal, 14 99 3 output_pending bit (1) unal, 14 100 3 pad_control bit (33) unal, 14 101 mc_atep ptr; 14 102 14 103 declare ( 14 104 MC_WAIT_DIALUP init (1), 14 105 MC_WAIT_ANSWERBACK init (2), 14 106 MC_WAIT_READY init (3), 14 107 MC_WAIT_COMMAND init (4) 14 108 ) fixed bin int static options (constant); 14 109 14 110 /* END INCLUDE FILE ... mc_anstbl.incl.pl1 */ 997 998 /* BEGIN INCLUDE FILE ... mc_restriction_codes.incl.pl1 */ 15 2 15 3 /* This declaration explains the "bits" in the restriction code for message coordinator consoles. 15 4* The terminal the system came up on always has all bits on. */ 15 5 15 6 dcl 1 rcodebits based aligned, /* Overlay for mc_ate.authority.privilege */ 15 7 2 master_console bit (1) unal, /* 1 Admin mode, reloads, mc, etc.. */ 15 8 2 as_control bit (1) unal, /* 2 Startup, shutdown, etc. */ 15 9 2 reset_sc bit (1) unal, /* 3 reset and force_reset */ 15 10 2 reply bit (1) unal, /* 4 reply to other daemons */ 15 11 2 edit_motd bit (1) unal, /* 5 message command */ 15 12 2 intercom bit (1) unal, /* 6 intercom */ 15 13 2 mpx_control bit (1) unal, /* 7 control mpx's */ 15 14 2 admin_mode bit (1) unal, /* 8 enter admin mode */ 15 15 2 pad11 bit (9) unal, /* 9-17 */ 15 16 2 rcp_control bit (1) unal, /* 18 reply to mount requests */ 15 17 2 reconfig_system bit (1) unal, /* 19 reconfigure the system */ 15 18 2 pad6 bit (1) unal, /* 20 unused */ 15 19 2 exec bit (1) unal, /* 21 execute macro-commands */ 15 20 2 status bit (1) unal, /* 22 who, hmu, dvm */ 15 21 2 daemon_control bit (1) unal, /* 23 login, logout, quit */ 15 22 2 loginword bit (1) unal, /* 24 set login word */ 15 23 2 mod_sysid bit (1) unal, /* 25 set system id */ 15 24 2 down_ok bit (1) unal, /* 26 schedule shutdown and say stop */ 15 25 2 warning bit (1) unal, /* 27 warn users */ 15 26 2 set_maxu bit (1) unal, /* 28 maxunits */ 15 27 2 channel_control bit (1) unal, /* 29 attach, remove */ 15 28 2 bump_user bit (1) unal, /* 30 bump, detach, unbump, term */ 15 29 2 route_messages bit (1) unal, /* 31 route, define, accept, etc. */ 15 30 2 abs_control bit (1) unal, /* 32 abs commands */ 15 31 2 pad2 bit (4) unal; /* 34-36 */ 15 32 15 33 /* END INCLUDE FILE ... mc_restriction_codes.incl.pl1 */ 998 999 /* BEGIN: sc_stat_.incl.pl1 * * * * * */ 16 2 16 3 16 4 /****^ HISTORY COMMENTS: 16 5* 1) change(87-02-04,GDixon), approve(87-05-25,MCR7690), 16 6* audit(87-06-02,Parisek), install(87-08-04,MR12.1-1056): 16 7* Add sc_stat_$vchn_requires_accept in support of DSA virtual channels. 16 8* 2) change(87-02-04,GDixon), approve(87-05-25,MCR7680), 16 9* audit(87-06-02,Parisek), install(87-08-04,MR12.1-1056): 16 10* Reorganized by type of data to improve readability. 16 11* END HISTORY COMMENTS */ 16 12 16 13 16 14 /* ACCESS NAMES */ 16 15 dcl ( 16 16 sc_stat_$exec_access_name, /* check MC access in an exec request */ 16 17 sc_stat_$unidentified_access_name /* check access if no one is logged in. */ 16 18 ) char(32) ext static; 16 19 16 20 /* PATHNAMES */ 16 21 dcl ( 16 22 sc_stat_$info_dir, /* admin info segs directory */ 16 23 sc_stat_$log_dir, /* as log segs directory */ 16 24 sc_stat_$mc_acs_dir, /* message coordinator ACS segments (.mcacs) dir */ 16 25 sc_stat_$sysdir /* system control directory */ 16 26 ) char(168) ext static; 16 27 16 28 /* OTHER CHAR STRINGS */ 16 29 dcl ( 16 30 sc_stat_$master_channel /* Master TTY channel. */ 16 31 ) char(6) aligned ext static; 16 32 16 33 /* LABELS */ 16 34 dcl ( 16 35 sc_stat_$admin_listener_exit_label, /* GO here to exit admin mode. Set to */ 16 36 /* ssu_$null_label unless */ 16 37 /* admin_listener is active. */ 16 38 sc_stat_$master_abort_label, /* GO here after fault that is not */ 16 39 /* attributable to a particular */ 16 40 /* command. */ 16 41 sc_stat_$system_shutdown_label /* GO here to shut down system */ 16 42 ) label variable ext static; 16 43 16 44 /* POINTERS TO */ 16 45 dcl ( 16 46 sc_stat_$admin_log_iocb, /* IOCB for admin log */ 16 47 sc_stat_$admin_log_write_ptr, /* DATA for log_write_ calls on the admin log */ 16 48 sc_stat_$admin_sci_ptr, /* DATA ssu_ for terminal currently executing */ 16 49 sc_stat_$as_log_write_ptr, /* DATA for log_write_ calls on as log, used */ 16 50 /* by sys_log_. */ 16 51 sc_stat_$initzer_ttyp, /* ENT mc_ate for initializer terminal */ 16 52 sc_stat_$master_iocb, /* IOCB for "master_i/o" */ 16 53 sc_stat_$master_sci_ptr, /* DATA ssu_ (permanent) for system control */ 16 54 sc_stat_$mc_ansp, /* HEAD of mc_anstbl */ 16 55 sc_stat_$mc_iocb, /* IOCB ptr for "mc_i/o" */ 16 56 sc_stat_$sv1_iocb, /* IOCB ptr for "severity1" */ 16 57 sc_stat_$sv2_iocb, /* IOCB ptr for "severity2" */ 16 58 sc_stat_$sv3_iocb /* IOCB ptr for "severity3" */ 16 59 ) ptr ext static; 16 60 16 61 /* SWITCHES */ 16 62 dcl ( 16 63 sc_stat_$Go, /* TRUE after answering service is listening*/ 16 64 sc_stat_$Go_typed, /* TRUE immediately after 'go' is typed */ 16 65 sc_stat_$Multics, /* TRUE after answering service started */ 16 66 sc_stat_$Multics_typed, /* TRUE immediately after 'mult' is typed */ 16 67 sc_stat_$Star_typed, /* TRUE if 'mult' and 'go' came from 'star' */ 16 68 sc_stat_$admin_listener_switch, /* TRUE if in the admin listener */ 16 69 sc_stat_$did_part1, /* TRUE if part 1 of system startup ec done */ 16 70 sc_stat_$did_part2, /* TRUE if part 2 of system startup ec done */ 16 71 sc_stat_$did_part3, /* TRUE if part 3 of system startup ec done */ 16 72 sc_stat_$mc_is_on, /* TRUE if message coordinator running */ 16 73 sc_stat_$no_operator_login, /* TRUE if operator login not required, or */ 16 74 /* if PNT not yet available. */ 16 75 sc_stat_$shutdown_typed, /* TRUE if 'shutdown' command in progress. */ 16 76 sc_stat_$test_mode, /* TRUE if in test environment */ 16 77 sc_stat_$vchn_requires_accept /* TRUE if vchn may only be used if accepted*/ 16 78 /* by operator signed on system console*/ 16 79 ) bit(1) aligned ext static; 16 80 16 81 16 82 /* END OF: sc_stat_.incl.pl1 * * * * * */ 999 1000 /* BEGIN INCLUDE FILE sys_log_constants.incl.pl1 ... 82-09-24 E. N. Kittlitz */ 17 2 17 3 17 4 /****^ HISTORY COMMENTS: 17 5* 1) change(87-04-22,GDixon), approve(87-06-10,MCR7708), 17 6* audit(87-06-02,Parisek), install(87-08-04,MR12.1-1056): 17 7* Added sl_info structure and associated named constants for use in calling 17 8* sys_log_$general. 17 9* END HISTORY COMMENTS */ 17 10 17 11 17 12 /* format: style4 */ 17 13 17 14 dcl ( 17 15 SL_TYPE_CRASH init (-3), /* type message with banner & kill system */ 17 16 SL_TYPE_BEEP init (-2), /* type message with banner */ 17 17 SL_TYPE init (-1), /* type message */ 17 18 SL_LOG_SILENT init (0), /* log message */ 17 19 SL_LOG init (1), /* log & type message */ 17 20 SL_LOG_BEEP init (2), /* log & type message with banner */ 17 21 SL_LOG_CRASH init (3) /* log & type message with banner & kill system */ 17 22 ) fixed bin internal static options (constant); 17 23 17 24 dcl 1 sl_info aligned automatic, 17 25 2 version char(8), /* structure version */ 17 26 2 arg_list_ptr ptr, /* arg_list with values */ 17 27 2 loc, 17 28 3 (mode, severity, code, caller, data, class, ioa_msg) fixed bin, 17 29 /* These flags control where the corresponding data item is found.*/ 17 30 /* -1: data appears in the corresponding structure element below */ 17 31 /* 0: data is not present anywhere */ 17 32 /* +N: data is Nth item in argument list pointed to by */ 17 33 /* sl_info.arg_list_ptr. Upon return, data copied into */ 17 34 /* corresponding structure element. */ 17 35 /* if data = +N: */ 17 36 /* argN is data_ptr, argN+1 is data_len */ 17 37 /* if ioa_msg = +N: */ 17 38 /* argN+1, ... argLAST are arguments substituted into the */ 17 39 /* ioa_msg control string. The formatted msg is returned. */ 17 40 2 flags, 17 41 3 ioa_msg_is_error_code bit(1) unal, /* ioa_ctl is error code. */ 17 42 3 flags_pad bit(35) unal, 17 43 2 mode fixed bin, /* as-mode, command-mode */ 17 44 2 severity fixed bin, /* error severity */ 17 45 2 code fixed bin(35), /* error table code */ 17 46 2 caller char(65) varying, /* caller refname$entryname*/ 17 47 2 data, /* binary data ptr/length */ 17 48 3 data_ptr ptr, 17 49 3 data_lth fixed bin(21), 17 50 2 class char(10) varying, /* binary data class */ 17 51 2 ioa_msg char(500) varying; /* formatted message text */ 17 52 17 53 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 17 54 /* */ 17 55 /* If data values (eg, sl_info.caller) are passed in the argument list, */ 17 56 /* their data types should be as shown in the structure above, except that */ 17 57 /* character strings should be char(*) nonvarying. */ 17 58 /* */ 17 59 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 17 60 17 61 /* value for sl_info.version */ 17 62 dcl SL_INFO_version_1 char (8) int static options(constant) init("sl_info1"); 17 63 17 64 /* values for sl_info.mode */ 17 65 dcl (SL_INFO_as_mode init(1), 17 66 SL_INFO_command_mode init(2)) fixed bin int static options(constant); 17 67 17 68 /* values for sl_info.loc.(severity code caller data class ioa_ctl arg) */ 17 69 dcl (SL_INFO_arg_given_in_structure init(-1), 17 70 SL_INFO_arg_not_given init(0)) fixed bin int static options(constant); 17 71 17 72 17 73 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 17 74 /* */ 17 75 /* The following static structures are commonly used in the Login Server */ 17 76 /* user control software. */ 17 77 /* */ 17 78 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 17 79 17 80 /* Syntax: call Abort (severity, code, ioa_ctl, args); */ 17 81 17 82 dcl 1 sl_info_sev_code_msg aligned int static options(constant), 17 83 2 version char(8) init ("sl_info1"), 17 84 2 arg_list_ptr ptr init (null), 17 85 2 loc, 17 86 3 (mode init (-1), 17 87 severity init ( 1), 17 88 code init ( 2), 17 89 caller init (-1), 17 90 data init ( 0), 17 91 class init ( 0), 17 92 ioa_msg init ( 3)) fixed bin, 17 93 2 flags, 17 94 3 ioa_msg_is_error_code bit(1) unal init ("0"b), 17 95 3 flags_pad bit(35) unal init ("0"b), 17 96 2 mode fixed bin init ( 1), 17 97 2 severity fixed bin init ( 0), 17 98 2 code fixed bin(35) init ( 0), 17 99 2 caller char(65) varying init (""), 17 100 2 data, 17 101 3 data_ptr ptr init (null), 17 102 3 data_lth fixed bin(21) init ( 0), 17 103 2 class char(10) varying init (""), 17 104 2 ioa_msg char(500) varying init (""); 17 105 17 106 /* Syntax: call Abort (severity, ioa_ctl, args); */ 17 107 17 108 dcl 1 sl_info_sev_msg aligned int static options(constant), 17 109 2 version char(8) init ("sl_info1"), 17 110 2 arg_list_ptr ptr init (null), 17 111 2 loc, 17 112 3 (mode init (-1), 17 113 severity init ( 1), 17 114 code init ( 0), 17 115 caller init (-1), 17 116 data init ( 0), 17 117 class init ( 0), 17 118 ioa_msg init ( 2)) fixed bin, 17 119 2 flags, 17 120 3 ioa_msg_is_error_code bit(1) unal init ("0"b), 17 121 3 flags_pad bit(35) unal init ("0"b), 17 122 2 mode fixed bin init ( 1), 17 123 2 severity fixed bin init ( 0), 17 124 2 code fixed bin(35) init ( 0), 17 125 2 caller char(65) varying init (""), 17 126 2 data, 17 127 3 data_ptr ptr init (null), 17 128 3 data_lth fixed bin(21) init ( 0), 17 129 2 class char(10) varying init (""), 17 130 2 ioa_msg char(500) varying init (""); 17 131 17 132 /* Syntax: call Abort (severity, ioa_ctl_as_error_code, args); */ 17 133 17 134 dcl 1 sl_info_sev_coded_msg aligned int static options(constant), 17 135 2 version char(8) init ("sl_info1"), 17 136 2 arg_list_ptr ptr init (null), 17 137 2 loc, 17 138 3 (mode init (-1), 17 139 severity init ( 1), 17 140 code init ( 0), 17 141 caller init (-1), 17 142 data init ( 0), 17 143 class init ( 0), 17 144 ioa_msg init ( 2)) fixed bin, 17 145 2 flags, 17 146 3 ioa_msg_is_error_code bit(1) unal init ("1"b), 17 147 3 flags_pad bit(35) unal init ("0"b), 17 148 2 mode fixed bin init ( 1), 17 149 2 severity fixed bin init ( 0), 17 150 2 code fixed bin(35) init ( 0), 17 151 2 caller char(65) varying init (""), 17 152 2 data, 17 153 3 data_ptr ptr init (null), 17 154 3 data_lth fixed bin(21) init ( 0), 17 155 2 class char(10) varying init (""), 17 156 2 ioa_msg char(500) varying init (""); 17 157 17 158 17 159 /* Syntax: call Abort (severity, code, error_return_label, ioa_ctl, args); */ 17 160 17 161 dcl 1 sl_info_sev_code_label_msg aligned int static options(constant), 17 162 2 version char(8) init ("sl_info1"), 17 163 2 arg_list_ptr ptr init (null), 17 164 2 loc, 17 165 3 (mode init (-1), 17 166 severity init ( 1), 17 167 code init ( 2), 17 168 caller init (-1), 17 169 data init ( 0), 17 170 class init ( 0), 17 171 ioa_msg init ( 4)) fixed bin, 17 172 2 flags, 17 173 3 ioa_msg_is_error_code bit(1) unal init ("0"b), 17 174 3 flags_pad bit(35) unal init ("0"b), 17 175 2 mode fixed bin init ( 1), 17 176 2 severity fixed bin init ( 0), 17 177 2 code fixed bin(35) init ( 0), 17 178 2 caller char(65) varying init (""), 17 179 2 data, 17 180 3 data_ptr ptr init (null), 17 181 3 data_lth fixed bin(21) init ( 0), 17 182 2 class char(10) varying init (""), 17 183 2 ioa_msg char(500) varying init (""); 17 184 17 185 /* Syntax: call Log_error (code, ioa_ctl, args); */ 17 186 17 187 dcl 1 sl_info_code_msg aligned int static options(constant), 17 188 2 version char(8) init ("sl_info1"), 17 189 2 arg_list_ptr ptr init (null), 17 190 2 loc, 17 191 3 (mode init (-1), 17 192 severity init (-1), 17 193 code init ( 1), 17 194 caller init (-1), 17 195 data init ( 0), 17 196 class init ( 0), 17 197 ioa_msg init ( 2)) fixed bin, 17 198 2 flags, 17 199 3 ioa_msg_is_error_code bit(1) unal init ("0"b), 17 200 3 flags_pad bit(35) unal init ("0"b), 17 201 2 mode fixed bin init ( 1), 17 202 2 severity fixed bin init ( 0), 17 203 2 code fixed bin(35) init ( 0), 17 204 2 caller char(65) varying init (""), 17 205 2 data, 17 206 3 data_ptr ptr init (null), 17 207 3 data_lth fixed bin(21) init ( 0), 17 208 2 class char(10) varying init (""), 17 209 2 ioa_msg char(500) varying init (""); 17 210 17 211 17 212 /* Syntax: call Trace (ioa_ctl, args); */ 17 213 17 214 dcl 1 sl_info_msg aligned int static options(constant), 17 215 2 version char(8) init ("sl_info1"), 17 216 2 arg_list_ptr ptr init (null), 17 217 2 loc, 17 218 3 (mode init (-1), 17 219 severity init (-1), 17 220 code init ( 0), 17 221 caller init (-1), 17 222 data init ( 0), 17 223 class init ( 0), 17 224 ioa_msg init ( 1)) fixed bin, 17 225 2 flags, 17 226 3 ioa_msg_is_error_code bit(1) unal init ("0"b), 17 227 3 flags_pad bit(35) unal init ("0"b), 17 228 2 mode fixed bin init ( 1), 17 229 2 severity fixed bin init ( 0), 17 230 2 code fixed bin(35) init ( 0), 17 231 2 caller char(65) varying init (""), 17 232 2 data, 17 233 3 data_ptr ptr init (null), 17 234 3 data_lth fixed bin(21) init ( 0), 17 235 2 class char(10) varying init (""), 17 236 2 ioa_msg char(500) varying init (""); 17 237 17 238 /* END INCLUDE FILE sys_log_constants.incl.pl1 */ 1000 1001 /* BEGIN INCLUDE FILE ... terminate_file.incl.pl1 */ 18 2 /* format: style2,^inddcls,idind32 */ 18 3 18 4 declare 1 terminate_file_switches based, 18 5 2 truncate bit (1) unaligned, 18 6 2 set_bc bit (1) unaligned, 18 7 2 terminate bit (1) unaligned, 18 8 2 force_write bit (1) unaligned, 18 9 2 delete bit (1) unaligned; 18 10 18 11 declare TERM_FILE_TRUNC bit (1) internal static options (constant) initial ("1"b); 18 12 declare TERM_FILE_BC bit (2) internal static options (constant) initial ("01"b); 18 13 declare TERM_FILE_TRUNC_BC bit (2) internal static options (constant) initial ("11"b); 18 14 declare TERM_FILE_TERM bit (3) internal static options (constant) initial ("001"b); 18 15 declare TERM_FILE_TRUNC_BC_TERM bit (3) internal static options (constant) initial ("111"b); 18 16 declare TERM_FILE_FORCE_WRITE bit (4) internal static options (constant) initial ("0001"b); 18 17 declare TERM_FILE_DELETE bit (5) internal static options (constant) initial ("00001"b); 18 18 18 19 /* END INCLUDE FILE ... terminate_file.incl.pl1 */ 1001 1002 /* BEGIN INCLUDE FILE ... user_attributes.incl.pl1 TAC 10/79 */ 19 2 19 3 19 4 /****^ HISTORY COMMENTS: 19 5* 1) change(86-12-11,Brunelle), approve(87-07-13,MCR7741), 19 6* audit(87-04-19,GDixon), install(87-08-04,MR12.1-1056): 19 7* Add incl for abs_attributes.incl.pl1 to automatically include absentee 19 8* attribute switches. 19 9* 2) change(87-04-19,GDixon), approve(87-07-13,MCR7741), 19 10* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 19 11* A) Add USER_ATTRIBUTE_NAMES arrays. attribute_names.incl.pl1 can thereby 19 12* be deleted. 19 13* B) Add constants identifying attributes that can be changed by user at 19 14* login, etc. 19 15* END HISTORY COMMENTS */ 19 16 19 17 19 18 /* Modified 82-01-03 E. N. Kittlitz. to declare a complete level-1 structure */ 19 19 19 20 /* format: style4 */ 19 21 dcl 1 user_attributes aligned based, /* the user user_attributes */ 19 22 (2 administrator bit (1), /* 1 system administrator privileges */ 19 23 2 primary_line bit (1), /* 2 user has primary-line privileges */ 19 24 2 nobump bit (1), /* 2 user cannot be bumped */ 19 25 2 guaranteed_login bit (1), /* 4 user has guaranteed login privileges */ 19 26 2 anonymous bit (1), /* 5 used only in SAT. project may have anon.users */ 19 27 2 nopreempt bit (1), /* 6 used only in PDT. user not preemptable by others 19 28* . of same project (distinct from "nobump") */ 19 29 2 nolist bit (1), /* 7 don't list user on "who" */ 19 30 2 dialok bit (1), /* 8 user may have multiple consoles */ 19 31 2 multip bit (1), /* 9 user may have several processes */ 19 32 2 bumping bit (1), /* 10 in SAT. Can users in project bump each other? */ 19 33 2 brief bit (1), /* 11 no login or logout message */ 19 34 2 vinitproc bit (1), /* 12 user may change initial procedure */ 19 35 2 vhomedir bit (1), /* 13 user may change homedir */ 19 36 2 nostartup bit (1), /* 14 user does not want start_up.ec */ 19 37 2 sb_ok bit (1), /* 15 user may be standby */ 19 38 2 pm_ok bit (1), /* 16 user may be primary */ 19 39 2 eo_ok bit (1), /* 17 user may be edit_only */ 19 40 2 daemon bit (1), /* 18 user may login as daemon */ 19 41 2 vdim bit (1), /* 19 * OBSOLETE * user may change outer mdle */ 19 42 2 no_warning bit (1), /* 20 no warning message */ 19 43 2 igroup bit (1), /* 21 in SAT: this project may give its users individual groups 19 44* . in PDT: this user has an individual load control group */ 19 45 2 save_pdir bit (1), /* 22 save pdir after fatal process error */ 19 46 2 disconnect_ok bit (1), /* 23 ok to save user's disconnected processes */ 19 47 2 save_on_disconnect bit (1), /* 24 save them unless -nosave login arg is given */ 19 48 2 pad bit (12)) unaligned; 19 49 19 50 dcl USER_ATTRIBUTE_NAMES (0:24) char (20) int static options (constant) init 19 51 ("none", /* 0 */ 19 52 "administrator", /* 1 */ 19 53 "primary_line", /* 2 */ 19 54 "nobump", /* 3 */ 19 55 "guaranteed_login", /* 4 */ 19 56 "anonymous", /* 5 */ 19 57 "nopreempt", /* 6 */ 19 58 "nolist", /* 7 */ 19 59 "dialok", /* 8 */ 19 60 "multip", /* 9 */ 19 61 "bumping", /* 10 */ 19 62 "brief", /* 11 */ 19 63 "vinitproc", /* 12 */ 19 64 "vhomedir", /* 13 */ 19 65 "nostartup", /* 14 */ 19 66 "no_secondary", /* 15 */ 19 67 "no_prime", /* 16 */ 19 68 "no_eo", /* 17 */ 19 69 "daemon", /* 18 */ 19 70 "", /* 19 vdim OBSOLETE */ 19 71 "no_warning", /* 20 */ 19 72 "igroup", /* 21 */ 19 73 "save_pdir", /* 22 */ 19 74 "disconnect_ok", /* 23 */ 19 75 "save_on_disconnect"); /* 24 */ 19 76 19 77 dcl ALT_USER_ATTRIBUTE_NAMES (0:24) char (20) int static options (constant) init 19 78 ("null", /* 0 */ 19 79 "admin", /* 1 */ 19 80 "", "", /* 2 - 3 */ 19 81 "guar", /* 4 */ 19 82 "anon", /* 5 */ 19 83 "", "", /* 6 - 7 */ 19 84 "dial", /* 8 */ 19 85 "multi_login", /* 9 */ 19 86 "preempting", /* 10 */ 19 87 "", /* 11 */ 19 88 "v_process_overseer", /* 12 */ 19 89 "v_home_dir", /* 13 */ 19 90 "no_start_up", /* 14 */ 19 91 "no_sec", /* 15 */ 19 92 "no_primary", /* 16 */ 19 93 "no_edit_only", /* 17 */ 19 94 "op_login", /* 18 */ 19 95 "", /* 19 */ 19 96 "nowarn", /* 20 */ 19 97 "", "", "", /* 21 - 23 */ 19 98 "save"); /* 24 */ 19 99 19 100 dcl USER_ATTRIBUTES_always_allowed bit (36) aligned int static 19 101 options(constant) init("000000000010000000010000000000000000"b); 19 102 /* SAT/PDT attributes not needed for user to give (brief, no_warning) */ 19 103 19 104 dcl USER_ATTRIBUTES_default_in_pdt bit (36) aligned int static 19 105 options(constant) init("000000000010000000010000000000000000"b); 19 106 /* PDT value for (brief, no_warning) is default */ 19 107 19 108 dcl USER_ATTRIBUTES_settable_by_user bit (36) aligned int static 19 109 options(constant) init("000100000110010000010000000000000000"b); 19 110 /* user MIGHT set (bump, ns, brief, guar, no_warning) */ 19 111 20 1 /* BEGIN INCLUDE FILE ... user_abs_attributes.incl.pl1 */ 20 2 20 3 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 20 4 /* */ 20 5 /* This include file describes the attributes of an absentee job. It is */ 20 6 /* used by user_table_entry.incl.pl1, abs_message_format.incl.pl1 */ 20 7 /* and PIT.incl.pl1. */ 20 8 /* */ 20 9 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 20 10 20 11 /****^ HISTORY COMMENTS: 20 12* 1) change(86-12-08,GDixon), approve(87-07-13,MCR7741), 20 13* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 20 14* Separated abs_attributes from the request structure 20 15* (abs_message_format.incl.pl1) so that the identical structure could be 20 16* used in the ute structure (user_table_entry.incl.pl1). 20 17* 2) change(87-04-19,GDixon), approve(87-07-13,MCR7741), 20 18* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 20 19* Added ABS_ATTRIBUTE_NAMES array. 20 20* 3) change(87-11-11,Parisek), approve(88-02-11,MCR7849), 20 21* audit(88-03-22,Lippard), install(88-07-13,MR12.2-1047): 20 22* Added the no_start_up flag. SCP6367 20 23* END HISTORY COMMENTS */ 20 24 20 25 dcl 1 user_abs_attributes aligned based, 20 26 2 restartable bit (1) unaligned, /* 1 if request may be started over from the beginning */ 20 27 2 user_deferred_until_time bit (1) unaligned, /* 1 if request was specified as deferred */ 20 28 2 proxy bit (1) unaligned, /* 1 if request submitted for someone else */ 20 29 2 set_bit_cnt bit (1) unaligned, /* 1 if should set bit count after every write call */ 20 30 2 time_in_gmt bit (1) unaligned, /* 1 if deferred_time is in GMT */ 20 31 2 user_deferred_indefinitely bit (1) unaligned, /* 1 if operator is to say when to run it */ 20 32 2 secondary_ok bit (1) unaligned, /* 1 if ok to log in as secondary foreground user */ 20 33 2 truncate_absout bit (1) unaligned, /* 1 if .absout is to be truncated */ 20 34 2 restarted bit (1) unaligned, /* 1 if job is restarted */ 20 35 2 no_start_up bit (1) unaligned, /* 1 if requested -ns */ 20 36 2 attributes_pad bit (26) unaligned; 20 37 20 38 dcl ABS_ATTRIBUTE_NAMES (10) char (28) varying int static options(constant) init( 20 39 "restartable", 20 40 "user_deferred_until_time", 20 41 "proxy", 20 42 "set_bit_cnt", 20 43 "time_in_gmt", 20 44 "user_deferred_indefinitely", 20 45 "secondary_ok", 20 46 "truncate_absout", 20 47 "restarted", 20 48 "no_start_up"); 20 49 20 50 /* END INCLUDE FILE ... user_abs_attributes.incl.pl1 */ 20 51 19 112 19 113 19 114 /* END INCLUDE FILE ... user_attributes.incl.pl1 */ 1002 1003 /* BEGIN INCLUDE FILE ... user_table_entry.incl.pl1 */ 21 2 21 3 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 21 4 /* */ 21 5 /* This include file requires that the user include */ 21 6 /* user_attributes.incl.pl1 as well. It also includes */ 21 7 /* abs_attributes.incl.pl1 itself. */ 21 8 /* */ 21 9 /* This include file must be included to use absentee_user_table.incl.pl1, */ 21 10 /* answer_table.incl.pl1, and daemon_user_table.incl.pl1. */ 21 11 /* */ 21 12 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 21 13 21 14 /****^ HISTORY COMMENTS: 21 15* 1) change(81-12-21,Gilcrease), approve(86-03-27,MCR7370), 21 16* audit(86-06-23,Lippard), install(86-06-30,MR12.0-1082): 21 17* This comment for hcom. 21 18* 81-12-21 E. N. Kittlitz. derived from abs_user_tab.incl.pl1, 21 19* anstbl.incl.pl1, and dutbl.incl.pl1. 21 20* 82-01-02 E. N. Kittlitz. user_attributes.incl.pl1 changes 21 21* 84-04-04 BIM added privileged_dial_server and dial_server_ring 21 22* 84-07-12 BIM added min_process_authorization 21 23* 84-12-31 Keith Loepere added pdir_dir_quota 21 24* 85-01-16 by E. Swenson to add ute.session_uid 21 25* 2) change(85-11-16,Swenson), approve(87-07-13,MCR7737), 21 26* audit(87-04-14,GDixon), install(87-08-04,MR12.1-1056): 21 27* Added fields for DSA login server support. 21 28* 3) change(86-03-27,Gilcrease), approve(86-03-27,MCR7370), 21 29* audit(86-06-23,Lippard), install(86-06-30,MR12.0-1082): 21 30* Add truncate_absout and restarted bit for -truncate absout, SCP6297. 21 31* 4) change(86-04-09,Herbst), approve(87-07-13,MCR7697), 21 32* audit(87-04-14,GDixon), install(87-08-04,MR12.1-1056): 21 33* Added disconnection_rel_minutes. 21 34* 5) change(86-12-08,GDixon), approve(87-07-13,MCR7741), 21 35* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 21 36* Changed structure under ute.abs_attributes to use like structure in 21 37* abs_attributes.incl.pl1. This allows the same attributes to be used 21 38* in abs_message_format.incl.pl1 and pit.incl.pl1 as well as this include 21 39* file. 21 40* 6) change(87-04-14,GDixon), approve(87-07-13,MCR7741), 21 41* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 21 42* Move constants for ute.pw_flags.mask_ctl from answer_table.incl.pl1. 21 43* 7) change(87-04-16,GDixon), approve(87-07-13,MCR7741), 21 44* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 21 45* A) Global reorganization to locate things by type of data. 21 46* B) Eliminate ute.uflags.logged_in. 21 47* 8) change(87-05-10,GDixon), approve(87-07-13,MCR7741), 21 48* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 21 49* A) Reduced overlength person and project fields to proper length. 21 50* B) Adjusted dialed-console section to begin on even word boundary. 21 51* 9) change(87-05-13,GDixon), approve(87-07-13,MCR7741), 21 52* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 21 53* Add ute.line_type. 21 54* 10) change(87-11-19,Parisek), approve(88-02-11,MCR7849), 21 55* audit(88-02-23,Lippard), install(88-07-13,MR12.2-1047): 21 56* Added the lowest_ring element. Used the upper half of ute.highest_ring 21 57* for the storage. SCP6367 21 58* END HISTORY COMMENTS */ 21 59 21 60 /* format: style4 */ 21 61 21 62 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 21 63 /* */ 21 64 /* Each of the named sections below defines a type of data. Typing comes */ 21 65 /* from data associated with the ute entry itself, with the person, with */ 21 66 /* login argument data, from the main user of the data (eg, dialup_, */ 21 67 /* load_ctl_, login server). Each section begins on a double-word boundary */ 21 68 /* and is an even number of words long. The total structure is 300 decimal */ 21 69 /* words long. */ 21 70 /* */ 21 71 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 21 72 21 73 21 74 dcl UTE_version_4 fixed bin internal static options (constant) init (4); 21 75 21 76 dcl utep pointer automatic init (null); 21 77 21 78 dcl 1 ute based (utep) aligned, /* individual entry in one of the user control tables */ 21 79 21 80 /* Variables which give state of this entry */ 21 81 2 active fixed bin, /* state of entry. 0=>free. see dialup_values.incl.pl1 */ 21 82 2 process_type fixed bin, /* 1=interactive, 2=absentee, 3=daemon */ 21 83 2 ute_index fixed bin, /* index of ute in (anstbl autbl dutbl).entry array */ 21 84 2 next_free fixed bin, /* points to previous free entry */ 21 85 21 86 /* Information user gave about person_id associated with this entry. */ 21 87 2 person char (24) unal, /* user's name */ 21 88 2 project char (12) unal, /* project of absentee user */ 21 89 2 tag char (1) unal, /* instance tag - someday will be generated */ 21 90 2 tag_pad bit (27) unal, 21 91 2 anonymous fixed bin, /* 1 if anonymous, otherwise 0 */ 21 92 2 login_flags, /* flags for login data */ 21 93 3 cpw bit (1) unal, /* flag for wish to change password */ 21 94 3 generate_pw bit (1) unal, /* flag meaning -generate_pw (-gpw) was used. */ 21 95 3 special_pw unal, /* dial or slave */ 21 96 4 dial_pw bit (1) unal, /* true if dial -user */ 21 97 4 slave_pw bit (1) unal, /* true if slave -user */ 21 98 3 cdp bit (1) unal, /* flag for wish to change default project */ 21 99 3 cda bit (1) unal, /* flag to change default authorization */ 21 100 3 auth_given bit (1) unal, /* flag to mean -authorization was used. */ 21 101 3 noprint bit (1) unal, /* used at logout. inhibits printing. */ 21 102 3 operator bit (1) unaligned, /* user specified -operator on login command line */ 21 103 3 pw_pad bit (25) unal, /* spare parts */ 21 104 3 mask_ctl bit (2) unal, /* bits controlling pw mask. See constants, below */ 21 105 /* Must remain last in pw_flags so it does not */ 21 106 /* appear in PW_FLAG_VALUES array below. */ 21 107 2 generated_pw char (8) unal, /* user must type this as new password */ 21 108 2 old_password char (8) unal, /* must match user's previous password (value scrambled) */ 21 109 2 process_authorization bit (72), /* access_authorization of this process */ 21 110 21 111 /* Information user gave about process associated with this entry. */ 21 112 2 outer_module char (32) unal, /* Name of console dim */ 21 113 2 home_dir char (64) unal, /* initial home directory */ 21 114 2 init_proc char (64) unal, /* name of login responder */ 21 115 2 ip_len fixed bin (17) unal, /* length of initproc string */ 21 116 2 ss_len fixed bin (17) unal, /* length of subsystem string */ 21 117 2 ur_at like user_attributes aligned, /* bits on means attributes given by user */ 21 118 2 at like user_attributes aligned, /* bits on means attribute is on */ 21 119 2 initial_ring fixed bin, /* ring process will be started in */ 21 120 2 arg_count fixed bin, /* number of arguments to absentee control segment */ 21 121 2 ln_args fixed bin, /* length of string containing arguments */ 21 122 2 arg_lengths_ptr ptr, /* pointer to array of argument lengths */ 21 123 2 args_ptr ptr, /* pointer to arguments to absentee control segment */ 21 124 21 125 /* Most of the following information is relevant only to absentee processes */ 21 126 2 input_seg char (168) unal, /* pathname of absentee control segment */ 21 127 2 output_seg char (168) unal, /* pathname of absentee output file */ 21 128 2 request_id fixed bin (71), /* time request was entered - used as uid of request */ 21 129 2 reservation_id fixed bin (71), /* nonzero if job has a resource reservation */ 21 130 2 message_id bit (72), /* message segment id assoc with absentee request */ 21 131 2 deferred_time fixed bin (71), /* time at which absentee process should be created */ 21 132 2 max_cpu_time fixed bin (35), /* maximum number of seconds this process can run */ 21 133 2 queue fixed bin, /* -1=daemon;0=interactive or foreground;>0=queue no. 21 134* (but see uflags.adjust_abs_q_no). */ 21 135 2 real_queue fixed bin, /* real queue number; ute.queue gets fudged sometimes */ 21 136 2 abs_attributes aligned like user_abs_attributes, /* include abs_attributes.incl.pl1 */ 21 137 2 abs_flags, 21 138 3 abs_run bit (1) unal, /* on if job was started by abs run command */ 21 139 3 notify bit (1) unal, /* on if user wants notification at login and logout */ 21 140 3 abs_flags_pad bit (34) unal, 21 141 2 abs_group char (8) unal, /* original group before load_ctl_ moves it to absentee group */ 21 142 2 sender char (32) unal, /* name of RJE station that job is from */ 21 143 2 proxy_person char (28) unal, /* name of user who actually entered the request, if proxy */ 21 144 2 proxy_project char (9) unal, 21 145 2 proxy_project_pad char (3) unal, 21 146 2 abs_pad fixed bin, 21 147 21 148 /* Information about process actually created */ 21 149 2 proc_id bit (36), /* process id of absentee process */ 21 150 2 session_uid fixed bin (35), /* Unique authentication session id */ 21 151 2 process_authorization_range (2) bit (72) aligned, 21 152 2 audit bit (36), /* audit flags for user */ 21 153 2 lot_size fixed bin, /* Size of linkage offset table */ 21 154 2 kst_size fixed bin, /* Size of process known segment table */ 21 155 2 cls_size fixed bin, /* Size of process combined linkage */ 21 156 2 sus_channel fixed bin (71), /* event channel on which suspended process is blocked */ 21 157 2 lowest_ring fixed bin (17) unal, /* lowest ring permitted */ 21 158 2 highest_ring fixed bin (17) unal, /* highest ring permitted */ 21 159 2 pdir_lvix fixed bin (17) unal, /* index in disk table of lv where pdir is */ 21 160 2 pdir_quota fixed bin (17) unal, /* process directory quota */ 21 161 2 pdir_dir_quota fixed bin (17) unal, /* process directory quota for dirs */ 21 162 2 pdir_pad fixed bin(17) unal, 21 163 2 process_pad fixed bin, 21 164 21 165 /* Information about primary terminal associated with this entry */ 21 166 2 tty_name char (32) unal, /* absentee=>"abs1", etc. daemon=>"bk", etc. */ 21 167 2 terminal_type char (32) unaligned, /* terminal type */ 21 168 2 line_type fixed bin, /* line type */ 21 169 2 tty_id_code char (4) unal, /* "none" for absentee */ 21 170 2 network_connection_type fixed bin, /* see net_event_message.incl.pl1 */ 21 171 2 channel ptr unal, /* points to CDT entry for user, if any */ 21 172 21 173 /* Variables useful for dialed terminals */ 21 174 2 ndialed_consoles fixed bin, /* if master, number of slaves */ 21 175 2 dial_qualifier char (22) unal, /* first argument to dial command */ 21 176 2 dial_server_ring fixed bin (3) unsigned unaligned, /* dial server intends to attach dialing in channels at this ring. */ 21 177 2 dial_server_flags, 21 178 3 registered_dial_server bit (1) unal, /* process is a registered dial server */ 21 179 3 privileged_dial_server bit (1) unal, /* "1"b -> serves range of AIM classes */ 21 180 3 dial_server_flags_pad bit (13) unal, /* fill out the word */ 21 181 2 dial_ev_chn fixed bin (71), /* if master, control event channel */ 21 182 21 183 /* Information about usage/accounting. Device usage meters are in a 21 184* separate segment, "devtab" */ 21 185 2 pdtep ptr, /* ptr to user's pdt entry, where usage meters live */ 21 186 2 cpu_this_process fixed bin (71), /* cpu used so far this process */ 21 187 2 cpu_usage fixed bin (71), /* total cpu time used in this session */ 21 188 2 mem_usage fixed bin (71), /* memory usage for previous processes in session */ 21 189 2 mem_this_process fixed bin (71), /* memory usage at last update */ 21 190 2 last_update_time fixed bin (71), /* time of last account update */ 21 191 2 session_cost float bin, /* dollar cost of session, for printing in logout messages */ 21 192 2 ndevices fixed bin, /* Count of attached devices */ 21 193 2 device_head fixed bin, /* Table index of head of device chain */ 21 194 2 device_tail fixed bin, /* Table index of tail of device chain */ 21 195 2 rs_number fixed bin (6) unsigned unal, /* rate structure number */ 21 196 2 rs_number_pad bit(30) unal, 21 197 2 usage_pad fixed bin, 21 198 21 199 /* Information for dialup_ (control variables). */ 21 200 2 event fixed bin (71), /* event associated with channel or user manager */ 21 201 2 uprojp ptr, /* ptr to user project sat entry */ 21 202 2 login_time fixed bin (71), /* time when absentee user approved by lg_ctl_ */ 21 203 2 cant_bump_until fixed bin (71), /* bump-protection clock */ 21 204 2 recent_fatal_error_time fixed bin (71), /* time of first error in the suspected loop */ 21 205 2 recent_fatal_error_count fixed bin, /* counter to detect fatal process error loops */ 21 206 2 failure_reason fixed bin, /* why login refused 1=lg_ctl, 2=act_ctl, 3=load_ctl */ 21 207 2 count fixed bin, /* counter for logins and dialups */ 21 208 2 n_processes fixed bin, /* number of processes created in this session */ 21 209 2 lock_value fixed bin, /* number of locks set for this entry */ 21 210 2 login_result fixed bin, /* 0=logged in;1=hopeless,hang him up;2=allow another attempt */ 21 211 2 login_code char (8) unal, /* login command from LOGIN line */ 21 212 2 preempted fixed bin, /* if ^= 0 user preempted (never for abs) */ 21 213 2 destroy_flag fixed bin, /* >8 when awaiting destroy */ 21 214 2 logout_type char (4) unal, /* type of logout */ 21 215 2 logout_index fixed bin, /* to save logout handler index while waiting for termsgnl */ 21 216 2 disconnection_rel_minutes fixed bin (17) unal, /* disconnected this many minutes after login_time */ 21 217 2 next_disconnected_ate_index fixed bin (17) unal, /* thread of list of user's disconnected processes */ 21 218 2 work_class fixed bin, /* work class used by priority scheduler */ 21 219 2 group char (8) unal, /* party group identifier */ 21 220 2 whotabx fixed bin, /* index of user's entry in whotab */ 21 221 21 222 2 uflags, /* Miscellaneous flags */ 21 223 3 dont_call_init_admin bit (1) unal, /* Call overseer directly */ 21 224 3 ip_given bit (1) unal, /* user gave an initproc arg on login line */ 21 225 3 ss_given bit (1) unal, /* initial_procedure contains a subsystem name */ 21 226 3 lvs_attached bit (1) unal, /* set and used by the lv_request_ procedure */ 21 227 3 send_initial_string bit (1) unal, /* initial string should be sent after login line read */ 21 228 3 adjust_abs_q_no bit (1) unal, /* this is an absentee job; user_profile.queue is NOT true Q # */ 21 229 3 foreground_secondary_ok bit (1) unal, /* ok to login foreground absentee job as secondary */ 21 230 3 foreground_job bit (1) unal, /* job was originally from foreground queue */ 21 231 3 sus_sent bit (1) unal, /* sus_ ips signal has been sent to process */ 21 232 3 suspended bit (1) unal, /* process has responded to sus_ signal */ 21 233 3 ignore_cpulimit bit (1) unal, /* process is released, but timer can't be turned off */ 21 234 3 deferral_logged bit (1) unal, /* abs job deferral has already been logged once */ 21 235 3 save_if_disconnected bit (1) unal, /* user wants process preserved across hangups */ 21 236 3 disconnected bit (1) unal, /* process is disconnected from terminal */ 21 237 3 disconnected_list bit (1) unal, /* this ate is on a list of disconnected processes */ 21 238 3 proc_create_ok bit (1) unal, /* lg_ctl_ has set the process creation variables */ 21 239 3 activity_can_unbump bit (1) unal, /* only bump pending is for inactivity */ 21 240 3 fpe_causes_logout bit (1) unal, /* "1"b means don't try to new_proc after fatal process error */ 21 241 3 user_specified_immediate bit (1) unal, /* "1"b -> don't wait around for process destruction. */ 21 242 3 uflags_pad bit (17) unal, 21 243 21 244 /* Information used by load_ctl_ for the process */ 21 245 2 user_weight fixed bin, /* usually 10 - used in load control */ 21 246 2 standby_line fixed bin, /* 0=user has primary line, 1=standby user */ 21 247 2 bump_grace fixed bin (71), /* bump grace in microseconds */ 21 248 21 249 21 250 /* Information for login server */ 21 251 2 login_server_info, 21 252 3 our_handle bit (72) aligned, /* how LS refers to us. */ 21 253 3 his_handle bit (72) aligned, /* how we talk to LS */ 21 254 3 termination_event_channel fixed bin (71), /* for process termination notifications to the LS */ 21 255 3 response_event_channel fixed bin (71), /* for other communications with the LS */ 21 256 3 process_id bit (36) aligned, /* process_id of login server */ 21 257 2 ls_pad (5) fixed bin; /* pad to 300 decimal words */ 21 258 21 259 /* values for ute.process_type */ 21 260 21 261 dcl (PT_INTERACTIVE initial (1), 21 262 PT_ABSENTEE initial (2), 21 263 PT_DAEMON initial (3)) fixed bin internal static options (constant); 21 264 21 265 dcl PROCESS_TYPE_NAMES (0:3) char(12) varying int static options(constant) init( 21 266 "INVALID-TYPE", 21 267 "interactive", 21 268 "absentee", 21 269 "daemon"); 21 270 21 271 dcl TABLE_NAMES (0:3) char(20) int static options(constant) init( 21 272 "UNKNOWN-TABLE", 21 273 "answer_table", 21 274 "absentee_user_table", 21 275 "daemon_user_table"); 21 276 21 277 21 278 /* values for ute.pw_flags.mask_ctl */ 21 279 21 280 dcl (DO_MASK init ("00"b), 21 281 DONT_MASK init ("01"b), 21 282 DERIVE_MASK init ("10"b)) bit (2) internal static options (constant); 21 283 21 284 dcl MASK_CTL_NAMES (0:3) char(12) varying int static options(constant) init( 21 285 "do_mask", "dont_mask", "derive_mask", ""); 21 286 21 287 21 288 /* names for ute.pw_flags */ 21 289 21 290 dcl PW_FLAG_NAMES (9) char (12) varying int static options(constant) init( 21 291 "cpw", 21 292 "generate_pw", 21 293 "dial_pw", 21 294 "slave_pw", 21 295 "cdp", 21 296 "cda", 21 297 "auth_given", 21 298 "noprint", 21 299 "operator"); 21 300 21 301 /* names for ute.uflags */ 21 302 21 303 dcl UFLAG_NAMES (19) char (24) varying int static options (constant) init ( 21 304 "dont_call_init_admin", 21 305 "ip_given", 21 306 "ss_given", 21 307 "lvs_attached", 21 308 "send_initial_string", 21 309 "adjust_abs_q_no", 21 310 "foreground_secondary_ok", 21 311 "foreground_job", 21 312 "sus_sent", 21 313 "suspended", 21 314 "ignore_cpulimit", 21 315 "deferral_logged", 21 316 "save_if_disconnected", 21 317 "disconnected", 21 318 "disconnected_list", 21 319 "proc_create_ok", 21 320 "activity_can_unbump", 21 321 "fpe_causes_logout", 21 322 "user_specified_immediate"); 21 323 21 324 /* names for ute.abs_flags */ 21 325 21 326 dcl ABS_FLAG_NAMES (2) char (8) varying int static options (constant) init ( 21 327 "abs_run", 21 328 "notify"); 21 329 21 330 /* names of ute.dial_server_flags */ 21 331 21 332 dcl DIAL_SERVER_FLAG_NAMES (2) char (12) varying int static options (constant) init ( 21 333 "registered", 21 334 "privileged"); 21 335 21 336 /* values of ute.login_result */ 21 337 21 338 dcl LOGIN_RESULT_VALUES (0:2) char(24) varying int static options(constant) init( 21 339 "logged in", 21 340 "login failed, hangup", 21 341 "login failed, try again"); 21 342 21 343 /* END INCLUDE FILE ... user_table_entry.incl.pl1 */ 1003 1004 /* BEGIN INCLUDE FILE ... user_table_header.incl.pl1 */ 22 2 22 3 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 22 4 /* */ 22 5 /* This include file declares the header shared by the answer_table, */ 22 6 /* absentee_user_table and daemon_user_table include files. */ 22 7 /* */ 22 8 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 22 9 22 10 /****^ HISTORY COMMENTS: 22 11* 1) change(87-04-26,GDixon), approve(87-07-13,MCR7741), 22 12* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 22 13* Initial coding. 22 14* END HISTORY COMMENTS */ 22 15 22 16 dcl 1 ut_header aligned based, /* header shared by all user control tables. */ 22 17 2 header_version fixed bin, /* version of the header (3) */ 22 18 2 entry_version fixed bin, /* version of user table entries */ 22 19 2 user_table_type fixed bin, /* 1 interactive, 2 absentee, 3 daemon */ 22 20 2 header_length fixed bin, /* length of the header */ 22 21 2 max_size fixed bin, /* max number of entries in this table */ 22 22 2 current_size fixed bin, /* actual size of table (in entries) */ 22 23 2 number_free fixed bin, /* number of free entries in the table. */ 22 24 2 first_free fixed bin, /* index of first entry in the free list. */ 22 25 2 as_procid bit (36), /* process ID of user table manager process */ 22 26 2 ut_header_pad fixed bin; 22 27 22 28 /* END INCLUDE FILE ... user_table_header.incl.pl1 */ 1004 1005 1006 /* BEGIN MESSAGE DOCUMENTATION 1007* Message: 1008* operator_mc_cmds_: COMMAND: ERROR_TABLE_MESSAGE SYSDIR>answer_table 1009* 1010* S: $as1 1011* 1012* T: In response to an operator command, COMMAND. 1013* 1014* M: The system was unable to access the answer_table in SYSDIR. 1015* 1016* A: $inform 1017* 1018* 1019* Message: 1020* operator_mc_cmds_: COMMAND: ERROR_TABLE_MESSAGE SYSDIR>whotab 1021* 1022* S: $as1 1023* 1024* T: In response to an operator command, COMMAND. 1025* 1026* M: The system was unable to access the whotab in SYSDIR. 1027* 1028* A: $inform 1029* 1030* 1031* Message: 1032* operator_mc_cmds_: COMMAND: ERROR_TABLE_MESSAGE SYSDIR>installation_parms 1033* 1034* S: $as1 1035* 1036* T: In response to an operator command, COMMAND. 1037* 1038* M: The system was unable to access the installation_parms in SYSDIR. 1039* 1040* A: $inform 1041* 1042* 1043* Message: 1044* operator_mc_cmds_: COMMAND: ERROR_TABLE_MESSAGE SYSDIR>cdt 1045* 1046* S: $as1 1047* 1048* T: In response to an operator command, COMMAND. 1049* 1050* M: The system was unable to access the cdt in SYSDIR. 1051* 1052* A: $inform 1053* 1054* 1055* Message: 1056* operator_mc_cmds_: accept: error: unknown privilege code 1057* 1058* S: $as1 1059* 1060* T: In response to an operator accept command. 1061* 1062* M: The operator has typed accept CHANNEL PRIVILEGE but PRIVILEGE is 1063* not a known privilege code. 1064* 1065* A: $tryagain 1066* 1067* 1068* Message: 1069* operator_mc_cmds_: accept: ERROR_TABLE_MESSAGE Usage: accept channel_id {authority} {target} {broadcast_list} 1070* 1071* S: $as1 1072* 1073* T: In response to an operator accept command. 1074* 1075* M: The operator has issued an accept command without any arguments. 1076* 1077* A: $tryagain 1078* 1079* 1080* Message: 1081* operator_mc_cmds_: accept: ERROR_TABLE_MESSAGE Failed to accept CHANNEL. 1082* 1083* S: $as1 1084* 1085* T: In response to an operator accept command. 1086* 1087* M: The operator has issued an accept CHANNEL command, but CHANNEL cannot 1088* be accepted. 1089* 1090* A: $tryagain 1091* 1092* 1093* Message: 1094* operator_mc_cmds_: accept: CHANNEL set to "full". 1095* 1096* S: $as1 1097* 1098* T: In response to an operator accept command. 1099* 1100* M: CHANNEL is already in use and authorization request has not changed 1101* from it's current state. 1102* 1103* A: $tryagain 1104* 1105* 1106* Message: 1107* operator_mc_cmds_: accept: ERROR_TABLE_MESSAGE Channel CHANNEL is not in 1108* Message Coordinator service. 1109* 1110* S: $as1 1111* 1112* T: In response to an operator accept command. 1113* 1114* M: CHANNEL cannot be accepted as a message coordinator terminal. 1115* 1116* A: $tryagain 1117* 1118* 1119* Message: 1120* operator_mc_cmds_: accept: ERROR_TABLE_MESSAGE Failed to set restriction to RESTRICTION. 1121* 1122* S: $as1 1123* 1124* T: In response to an operator accept command. 1125* 1126* M: Failed to set the reply restriction. 1127* 1128* A: $tryagain 1129* 1130* 1131* Message: 1132* operator_mc_cmds_: accept: ERROR_TABLE_MESSAGE Failed to reset restriction. 1133* 1134* S: $as1 1135* 1136* T: In response to an operator accept command. 1137* 1138* M: Failed to reset the reply restriction. 1139* 1140* A: $tryagain 1141* 1142* 1143* Message: 1144* operator_mc_cmds_: accept: ERROR_TABLE_MESSAGE Failed to set broadcast list to BROADCAST_LIST. 1145* 1146* S: $as1 1147* 1148* T: In response to an operator accept command. 1149* 1150* M: Failed to set the broadcast list BROADCAST_LIST. 1151* 1152* A: $tryagain 1153* 1154* 1155* Message: 1156* operator_mc_cmds_: accept: ERROR_TABLE_MESSAGE This name is reserved for the system console. 1157* 1158* S: $as1 1159* 1160* T: In response to an operator accept command. 1161* 1162* M: Attempt to accept identifier "otw_" which is THE identifier for the 1163* master console, which is automatically accepted on bootload. 1164* 1165* A: $tryagain 1166* 1167* 1168* Message: 1169* operator_mc_cmds_: accept: channel not available 1170* 1171* S: $as1 1172* 1173* T: In response to an operator accept command. 1174* 1175* M: Channel cannot be used as a message coordinator channel. 1176* 1177* A: $tryagain 1178* 1179* 1180* Message: 1181* operator_mc_cmds_: accept: channel not defined in cdt. 1182* 1183* S: $as1 1184* 1185* T: In response to an operator accept command. 1186* 1187* M: Channel is not found in the system cdt and therefore cannot be used. 1188* 1189* A: $tryagain 1190* 1191* 1192* Message: 1193* operator_mc_cmds_: accept: Ioname already attached and active. accept unsuccessful. 1194* 1195* S: $as1 1196* 1197* T: In response to an operator accept command. 1198* 1199* M: The error was returned from mc_commands_$new_tty causing the accept 1200* to abort. 1201* 1202* A: $tryagain 1203* 1204* 1205* Message: 1206* operator_mc_cmds_: accept: ERROR_TABLE_MESSAGE accept unsuccessful. 1207* 1208* S: $as1 1209* 1210* T: In response to an operator accept command. 1211* 1212* M: The error was returned from mc_commands_$new_tty causing the accept 1213* to abort. 1214* 1215* A: $tryagain 1216* 1217* 1218* Message: 1219* operator_mc_cmds_: accept: Ioname not found. accept unsuccessful. 1220* 1221* S: $as1 1222* 1223* T: In response to an operator accept command. 1224* 1225* M: The error was returned from mc_commands_$new_tty causing the accept 1226* to abort. Channel not found in the cdt or pre-accepted as a virtual channel. 1227* 1228* A: $tryagain 1229* 1230* 1231* Message: 1232* operator_mc_cmds_: COMMAND: ERROR_TABLE_MESSAGE Incorrect number of arguments. 1233* 1234* S: $as1 1235* 1236* T: In response to an operator command COMMAND. 1237* 1238* M: Insufficient number of arguments supplied with the command. 1239* 1240* A: $tryagain 1241* 1242* 1243* Message: 1244* operator_mc_cmds_: drop: error: Channel CHANNEL not a message coordinator terminal. 1245* 1246* S: $as1 1247* 1248* T: $response 1249* 1250* M: Cannot drop CHANNEL as it cannot be found attached to the message coordinator. 1251* 1252* A: $inform 1253* 1254* 1255* Message: 1256* operator_mc_cmds_: drop: error: Channel CHANNEL not configured. 1257* 1258* S: $as1 1259* 1260* T: $response 1261* 1262* M: Channel CHANNEL is not defined in the system cdt. 1263* 1264* A: $inform 1265* 1266* 1267* Message: 1268* operator_mc_cmds_: drop: error: Channel CHANNEL not dialed to initializer. 1269* 1270* S: $as1 1271* 1272* T: $response 1273* 1274* M: CHANNEL must be dialed to the initializer before being dropped. 1275* 1276* A: $inform 1277* 1278* 1279* Message: 1280* operator_mc_cmds_: drop: ERROR_TABLE_MESSAGE drop unsuccessful. 1281* 1282* S: $as1 1283* 1284* T: In response to an operator drop command. 1285* 1286* M: An error was returned from mc_commands_$remove_tty causing the drop 1287* to abort. 1288* 1289* A: $tryagain 1290* 1291* Message: 1292* operator_mc_cmds_: COMMAND: ERROR_TABLE_MESSAGE removing user (no proc) on channel CHANNEL 1293* 1294* S: $as1 1295* 1296* T: $response 1297* 1298* M: An error described by ERROR_TABLE_MESSAGE occured while attempting 1299* the operator command, COMMAND. 1300* 1301* A: $inform 1302* 1303* Message: 1304* operator_mc_cmds_: COMMAND: ERROR_TABLE_MESSAGE trying to access SYSDIR>mc_anstbl 1305* 1306* S: $as1 1307* 1308* T: In response to an operator command, COMMAND. 1309* 1310* M: The system was not able to access the mc_anstbl in SYSDIR. 1311* 1312* A: $inform 1313* 1314* 1315* Message: 1316* operator_mc_cmds_: substty: error: cannot substty for same channel 1317* 1318* S: $as1 1319* 1320* T: In response to an operator substty command. 1321* 1322* M: The operator has attempted to use substty to substitute 1323* a channel for itself. 1324* 1325* A: $tryagain 1326* 1327* 1328* Message: 1329* operator_mc_cmds_: substty: error: channel not available 1330* 1331* S: $as1 1332* 1333* T: In response to an operator accept command. 1334* 1335* M: Channel cannot be used as a message coordinator channel. 1336* 1337* A: $tryagain 1338* 1339* 1340* Message: 1341* operator_mc_cmds_: substty: error: channel not defined in cdt. 1342* 1343* S: $as1 1344* 1345* T: In response to an operator accept command. 1346* 1347* M: Channel is not found in the system cdt and therefore cannot be used. 1348* 1349* A: $tryagain 1350* 1351* 1352* Message: 1353* operator_mc_cmds_: substty: ERROR_TABLE_MESSAGE removing channel CHANNEL 1354* 1355* S: $as1 1356* 1357* T: In response to an operator substty command. 1358* 1359* M: Unable to remove CHANNEL designated as the source of the substitution. 1360* 1361* A: $tryagain 1362* 1363* 1364* Message: 1365* operator_mc_cmds_: substty: Channel CHANNEL not dialed to initializer 1366* 1367* S: $as1 1368* 1369* T: In response to an operator substty command. 1370* 1371* M: Channel CHANNEL was not previously dialed to the initializer and thus 1372* cannot be substituted. 1373* 1374* A: $tryagain 1375* 1376* 1377* Message: 1378* operator_mc_cmds_: substty: Channel CHANNEL not configured. 1379* 1380* S: $as1 1381* 1382* T: In response to an operator substty command. 1383* 1384* M: Channel CHANNEL is not found in the system cdt. 1385* 1386* A: $tryagain 1387* 1388* 1389* Message: 1390* operator_mc_cmds_: substty: ERROR_TABLE_MESSAGE substty unsuccessful. 1391* 1392* S: $as1 1393* 1394* T: In response to an operator substty command. 1395* 1396* M: An error was returned from mc_commands_$substty causing the substty 1397* to abort. 1398* 1399* A: $tryagain 1400* 1401* 1402* Message: 1403* operator_mc_cmds_: substty: Ioname not found. substty unsuccessful. 1404* 1405* S: $as1 1406* 1407* T: In response to an operator substty command. 1408* 1409* M: An error was returned from mc_commands_$substty causing the substty 1410* to abort. Could not locate source channel in mc_anstbl. 1411* 1412* A: $tryagain 1413* 1414* 1415* Message: 1416* operator_mc_cmds_: substty: Ioname not found. substty unsuccessful. 1417* 1418* S: $as1 1419* 1420* T: In response to an operator substty command. 1421* 1422* M: The error was returned from mc_commands_$new_tty causing the substty 1423* to abort. The target channel not found in the cdt or pre-accepted as a 1424* virtual channel. 1425* 1426* A: $tryagain 1427* 1428* 1429* Message: 1430* operator_mc_cmds_: substty: The requested action was not performed. substty unsuccessful. 1431* 1432* S: $as1 1433* 1434* T: In response to an operator substty command. 1435* 1436* M: An error was returned from mc_commands_$substty causing the substty 1437* to abort. The target channel is in a "pending" state, which means it has 1438* not been accepted yet. 1439* 1440* A: $tryagain 1441* 1442* 1443* Message: 1444* operator_mc_cmds_: redefine: ERROR_TABLE_MESSAGE redefine unsuccessful. 1445* 1446* S: $as1 1447* 1448* T: In response to an operator redefine command. 1449* 1450* M: An error was returned from mc_commands_$redefine causing the redefine 1451* to abort. 1452* 1453* A: $tryagain 1454* 1455* 1456* Message: 1457* operator_mc_cmds_: redefine: Ioname not found. redefine unsuccessful. 1458* 1459* S: $as1 1460* 1461* T: In response to an operator redefine command. 1462* 1463* M: An error was returned from mc_commands_$redefine causing the redefine 1464* to abort. Could not locate VCONS in vcons_tab. 1465* 1466* A: $tryagain 1467* 1468* 1469* Message: 1470* operator_mc_cmds_: redefine: Ioname not active. redefine unsuccessful. 1471* 1472* S: $as1 1473* 1474* T: In response to an operator redefine command. 1475* 1476* M: An error was returned from mc_commands_$redefine causing the redefine 1477* to abort. Target channel not active in the mc_anstbl. 1478* 1479* A: $tryagain 1480* 1481* 1482* Message: 1483* operator_mc_cmds_: redefine: Action not performed. redefine unsuccessful. 1484* 1485* S: $as1 1486* 1487* T: In response to an operator redefine command. 1488* 1489* M: An error was returned from mc_commands_$redefine causing the redefine 1490* to abort. Target channel found requiring an accept in mc_anstbl. 1491* 1492* A: $tryagain 1493* 1494* 1495* Message: 1496* operator_mc_cmds_: redefine: Typename not found. redefine unsuccessful. 1497* 1498* S: $as1 1499* 1500* T: In response to an operator redefine command. 1501* 1502* M: An error was returned from mc_commands_$redefine causing the redefine 1503* to abort. Target VCONS type not known. 1504* 1505* A: $tryagain 1506* 1507* 1508* Message: 1509* operator_mc_cmds_: redefine: Allocation could not be performed. redefine unsuccessful. 1510* 1511* S: $as1 1512* 1513* T: In response to an operator redefine command. 1514* 1515* M: The operator has issued a redefine VCONS SOURCE STREAM VCONS 1516* command but the system could not make the new entry in the 1517* message routing table. No action was taken. 1518* 1519* A: $tryagain 1520* 1521* 1522* Message: 1523* operator_mc_cmds_: define: ERROR_TABLE_MESSAGE define unsuccessful. 1524* 1525* S: $as1 1526* 1527* T: In response to an operator define command. 1528* 1529* M: An error was returned from mc_commands_$define causing the define 1530* to abort. 1531* 1532* A: $tryagain 1533* 1534* 1535* Message: 1536* operator_mc_cmds_: define: Ioname not found. define unsuccessful. 1537* 1538* S: $as1 1539* 1540* T: In response to an operator define command. 1541* 1542* M: An error was returned from mc_commands_$define causing the define 1543* to abort. Could not locate VCONS in vcons_tab. 1544* 1545* A: $tryagain 1546* 1547* 1548* Message: 1549* operator_mc_cmds_: define: Ioname not active. define unsuccessful. 1550* 1551* S: $as1 1552* 1553* T: In response to an operator define command. 1554* 1555* M: An error was returned from mc_commands_$define causing the define 1556* to abort. Target channel not active in the mc_anstbl. 1557* 1558* A: $tryagain 1559* 1560* 1561* Message: 1562* operator_mc_cmds_: define: Action not performed. define unsuccessful. 1563* 1564* S: $as1 1565* 1566* T: In response to an operator define command. 1567* 1568* M: An error was returned from mc_commands_$define causing the define 1569* to abort. Target channel found requiring an accept in mc_anstbl. 1570* 1571* A: $tryagain 1572* 1573* 1574* Message: 1575* operator_mc_cmds_: define: Typename not found. define unsuccessful. 1576* 1577* S: $as1 1578* 1579* T: In response to an operator define command. 1580* 1581* M: An error was returned from mc_commands_$define causing the define 1582* to abort. Target VCONS type not known. 1583* 1584* A: $tryagain 1585* 1586* 1587* Message: 1588* operator_mc_cmds_: define: There is no room to make requested allocations. 1589* 1590* S: $as1 1591* 1592* T: In response to an operator define command. 1593* 1594* M: The operator has issued a define SOURCE STREAM VCONS 1595* command but the system could not make the new entry in the 1596* message routing table. No action was taken. 1597* 1598* A: $tryagain 1599* 1600* 1601* Message: 1602* operator_mc_cmds_: route: There is no room to make requested allocations. 1603* 1604* S: $as1 1605* 1606* T: In response to an operator route command. 1607* 1608* M: The operator has issued a route SOURCE STREAM VCONS command 1609* but the system had no room to make the new entry in the message 1610* routing table. There may be up to 16 sources, each with 8 streams, 1611* and each stream may have up to 8 virtual consoles. No action was taken. 1612* 1613* A: $tryagain 1614* 1615* 1616* Message: 1617* operator_mc_cmds_: route: ERROR_TABLE_MESSAGE route unsuccessful. 1618* 1619* S: $as1 1620* 1621* T: In response to an operator route command. 1622* 1623* M: An error was returned from mc_commands_$route causing the route 1624* to abort. 1625* 1626* A: $tryagain 1627* 1628* 1629* Message: 1630* operator_mc_cmds_: route: Ioname not found. route unsuccessful. 1631* 1632* S: $as1 1633* 1634* T: In response to an operator route command. 1635* 1636* M: An error was returned from mc_commands_$route causing the route 1637* to abort. VCONS not located in vcons_tab. 1638* 1639* A: $tryagain 1640* 1641* 1642* Message: 1643* operator_mc_cmds_: undefine: ERROR_TABLE_MESSAGE undefine unsuccessful. 1644* 1645* S: $as1 1646* 1647* T: In response to an operator undefine command. 1648* 1649* M: An error was returned from mc_commands_$undefine causing the 1650* undefine to abort. 1651* 1652* A: $tryagain 1653* 1654* 1655* Message: 1656* operator_mc_cmds_: undefine: Ioname not found. undefine unsuccessful. 1657* 1658* S: $as1 1659* 1660* T: In response to an operator undefine command. 1661* 1662* M: An error was returned from mc_commands_$undefine causing the 1663* undefine to abort. Could not locate VCONS in vcons_tab. 1664* 1665* A: $tryagain 1666* 1667* 1668* Message: 1669* operator_mc_cmds_: reroute: ERROR_TABLE_MESSAGE reroute unsuccessful. 1670* 1671* S: $as1 1672* 1673* T: In response to an operator reroute command. 1674* 1675* M: An error was returned from mc_commands_$reroute causing the 1676* reroute to abort. 1677* 1678* A: $tryagain 1679* 1680* 1681* Message: 1682* operator_mc_cmds_: reroute: There is no room to make requested allocations. 1683* 1684* S: $as1 1685* 1686* T: In response to an operator reroute command. 1687* 1688* M: The operator has issued a reroute SOURCE STREAM OLD_VCONS 1689* NEW_VCONS command but the system had no room to make the new entry 1690* in the message routing table. There may be up to 16 sources, each 1691* with 8 streams, and each stream may have up to 8 virtual consoles. 1692* No action was taken. 1693* 1694* A: $tryagain 1695* 1696* 1697* Message: 1698* operator_mc_cmds_: deroute: ERROR_TABLE_MESSAGE reroute unsuccessful. 1699* 1700* S: $as1 1701* 1702* T: In response to an operator deroute command. 1703* 1704* M: An error was returned from mc_commands_$deroute causing the 1705* deroute to abort. 1706* 1707* A: $tryagain 1708* 1709* 1710* Message: 1711* operator_mc_cmds_: deroute: There is no room to make requested allocations. 1712* 1713* S: $as1 1714* 1715* T: In response to an operator deroute command. 1716* 1717* M: The operator has issued a deroute SOURCE STREAM VCONS 1718* command but the system had no room to make the new entry 1719* in the message routing table. There may be up to 16 sources, each 1720* with 8 streams, and each stream may have up to 8 virtual consoles. 1721* No action was taken. 1722* 1723* A: $tryagain 1724* 1725* 1726* Message: 1727* operator_mc_cmds_: accept_vchn: ERROR_TABLE_MESSAGE Usage: accept_vchn 1728* channel_id -auth authority -target reply_target -bc_list input_broadcast_list 1729* 1730* S: $as1 1731* 1732* T: In response to an operator accept_vchn command. 1733* 1734* M: Incorrect number of arguments supplied. 1735* 1736* A: $tryagain 1737* 1738* 1739* Message: 1740* operator_mc_cmds_: accept_vchn: Incorrect IO channel specification. DOT Virtual channel names may not contain a DOT 1741* 1742* S: $as1 1743* 1744* T: In response to an operator accept_vchn command. 1745* 1746* M: The DOT (".") character cannot be used in the virtual channel specifier. 1747* 1748* A: $tryagain 1749* 1750* 1751* Message: 1752* operator_mc_cmds_: accept_vchn: Incorrect IO channel specification. 1753* This name is reserved for the system console. 1754* 1755* S: $as1 1756* 1757* T: In response to an operator accept_vchn command. 1758* 1759* M: The specified virtual channel name given was "otw_". This identifier 1760* cannot be used as it identifies the system console. 1761* 1762* A: $tryagain 1763* 1764* 1765* Message: 1766* operator_mc_cmds_: accept_vchn: Invalid argument -auth may be followed by one of the following: 1767* full, none, reply, daemon, query 1768* 1769* S: $as1 1770* 1771* T: In response to an operator accept_vchn command. 1772* 1773* M: An incorrect argument to the -auth control argument was supplied. 1774* 1775* A: $tryagain 1776* 1777* 1778* Message: 1779* operator_mc_cmds_: accept_vchn: Invalid argument Bad reply target: TARGET 1780* 1781* S: $as1 1782* 1783* T: In response to an operator accept_vchn command. 1784* 1785* M: An incorrect argument to the -reply control argument was supplied. 1786* 1787* A: $tryagain 1788* 1789* 1790* Message: 1791* operator_mc_cmds_: accept_vchn: Specified control argument is not accpeted 1792* Argument not accepted: ARGUMENT 1793* 1794* S: $as1 1795* 1796* T: In response to an operator accept_vchn command. 1797* 1798* M: An incorrect control argument was supplied to the accept_vchn request. 1799* 1800* A: $tryagain 1801* 1802* 1803* Message: 1804* operator_mc_cmds_: accept_vchn: ERROR_TABLE_MESSAGE Failed to accept VCHANNEL 1805* 1806* S: $as1 1807* 1808* T: In response to an operator accept_vchn command. 1809* 1810* M: Unable to pre-accept VCHANNEL as a virtual channel identifier. 1811* 1812* A: $tryagain 1813* 1814* 1815* Message: 1816* operator_mc_cmds_: accept_vchn: Invalid argument Bad broadcast list: BROADCAST_LIST 1817* 1818* S: $as1 1819* 1820* T: In response to an operator accept_vchn command. 1821* 1822* M: Incorrect argument supplied to the -bc_list control argument. 1823* 1824* A: $tryagain 1825* 1826* 1827* Message: 1828* operator_mc_cmds_: accept_vchn: Ioname already attached and active. 1829* VCHANNEL set to full. 1830* 1831* S: $as1 1832* 1833* T: In response to an operator accept_vchn command. 1834* 1835* M: VCHANNEL already active and authorization request is same. 1836* 1837* A: $tryagain 1838* 1839* 1840* Message: 1841* operator_mc_cmds_: accept_vchn: ERROR_TABLE_MESSAGE Failed to set restriction to REPLY_TARGET 1842* 1843* S: $as1 1844* 1845* T: In response to an operator accept command. 1846* 1847* M: Failed to set the reply restriction for REPLY_TARGET. 1848* 1849* A: $tryagain 1850* 1851* 1852* Message: 1853* operator_mc_cmds_: accept_vchn: ERROR_TABLE_MESSAGE Failed to reset restriction. 1854* 1855* S: $as1 1856* 1857* T: In response to an operator accept command. 1858* 1859* M: Failed to reset the reply restriction. 1860* 1861* A: $tryagain 1862* 1863* 1864* Message: 1865* operator_mc_cmds_: accept_vchn: ERROR_TABLE_MESSAGE Failed to set broadcast list to BROADCAST_LIST. 1866* 1867* S: $as1 1868* 1869* T: In response to an operator accept command. 1870* 1871* M: Failed to set the broadcast list for BROADCAST_LIST. 1872* 1873* A: $tryagain 1874* 1875* 1876* END MESSAGE DOCUMENTATION */ 1877 1878 end operator_mc_cmds_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 07/19/88 1536.5 operator_mc_cmds_.pl1 >special_ldd>install>MR12.2-1061>operator_mc_cmds_.pl1 986 1 02/12/85 1429.5 access_audit_bin_header.incl.pl1 >ldd>include>access_audit_bin_header.incl.pl1 987 2 04/11/85 1452.6 access_mode_values.incl.pl1 >ldd>include>access_mode_values.incl.pl1 988 3 08/06/87 0913.0 answer_table.incl.pl1 >ldd>include>answer_table.incl.pl1 989 4 08/06/87 0913.4 as_audit_structures.incl.pl1 >ldd>include>as_audit_structures.incl.pl1 990 5 08/06/87 0913.4 as_data_.incl.pl1 >ldd>include>as_data_.incl.pl1 991 6 08/06/87 0913.4 as_data_definitions_.incl.pl1 >ldd>include>as_data_definitions_.incl.pl1 992 7 09/09/75 2007.3 author_dcl.incl.pl1 >ldd>include>author_dcl.incl.pl1 7-10 8 04/21/82 1211.8 author.incl.pl1 >ldd>include>author.incl.pl1 993 9 08/06/87 0913.0 cdt.incl.pl1 >ldd>include>cdt.incl.pl1 9-314 10 07/19/88 1524.1 fnp_types.incl.pl1 >special_ldd>install>MR12.2-1061>fnp_types.incl.pl1 994 11 08/06/87 0912.9 daemon_user_table.incl.pl1 >ldd>include>daemon_user_table.incl.pl1 995 12 08/06/87 0913.4 dialup_values.incl.pl1 >ldd>include>dialup_values.incl.pl1 996 13 08/06/87 0913.4 login_server_messages.incl.pl1 >ldd>include>login_server_messages.incl.pl1 997 14 08/06/87 0913.5 mc_anstbl.incl.pl1 >ldd>include>mc_anstbl.incl.pl1 998 15 01/21/85 0912.3 mc_restriction_codes.incl.pl1 >ldd>include>mc_restriction_codes.incl.pl1 999 16 08/06/87 0913.5 sc_stat_.incl.pl1 >ldd>include>sc_stat_.incl.pl1 1000 17 08/06/87 0913.5 sys_log_constants.incl.pl1 >ldd>include>sys_log_constants.incl.pl1 1001 18 04/06/83 1239.4 terminate_file.incl.pl1 >ldd>include>terminate_file.incl.pl1 1002 19 08/06/87 0913.6 user_attributes.incl.pl1 >ldd>include>user_attributes.incl.pl1 19-112 20 07/14/88 2015.0 user_abs_attributes.incl.pl1 >ldd>include>user_abs_attributes.incl.pl1 1003 21 07/14/88 2015.0 user_table_entry.incl.pl1 >ldd>include>user_table_entry.incl.pl1 1004 22 08/06/87 0913.6 user_table_header.incl.pl1 >ldd>include>user_table_header.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. AS_AUDIT_CHANNEL_ATTACH constant fixed bin(17,0) initial dcl 4-175 ref 965 AS_AUDIT_CHANNEL_DETACH constant fixed bin(17,0) initial dcl 4-175 ref 968 CAI 000442 automatic structure level 1 dcl 68 set ref 983 983 FALSE constant bit(1) initial dcl 72 ref 973 974 977 978 INACTIVE constant fixed bin(17,0) initial dcl 9-272 ref 880 MC_SERVICE constant fixed bin(17,0) initial dcl 9-259 ref 186 637 876 NOW_FREE constant fixed bin(17,0) initial dcl 12-76 ref 903 NOW_LOGGED_IN constant fixed bin(17,0) initial dcl 12-76 ref 937 P_channel_name parameter char packed unaligned dcl 896 ref 893 903 P_code parameter fixed bin(35,0) dcl 867 set ref 864 869* 883* 888* R_ACCESS 000044 constant bit(3) initial packed unaligned dcl 2-11 set ref 919* SLAVE_SERVICE constant fixed bin(17,0) initial dcl 9-259 ref 878 SL_LOG 000053 constant fixed bin(17,0) initial dcl 17-14 set ref 242* 433* SL_LOG_BEEP 000052 constant fixed bin(17,0) initial dcl 17-14 set ref 826* 835* 841* 847* SL_TYPE 000043 constant fixed bin(17,0) initial dcl 17-14 set ref 801* 805* TERM_FILE_TERM 000000 constant bit(3) initial packed unaligned dcl 18-14 set ref 931* TRUE constant bit(1) initial dcl 72 ref 976 980 UTE_SIZE constant fixed bin(17,0) initial dcl 3-120 ref 936 936 access_class 10(01) 000442 automatic bit(1) level 3 in structure "CAI" packed packed unaligned dcl 68 in procedure "operator_mc_cmds_" set ref 976* access_class 21 000442 automatic bit(72) level 2 in structure "CAI" dcl 68 in procedure "operator_mc_cmds_" set ref 977* access_class_range 10(02) 000442 automatic bit(1) level 3 in structure "CAI" packed packed unaligned dcl 68 in procedure "operator_mc_cmds_" set ref 978* access_class_range 23 000442 automatic bit(72) array level 2 in structure "CAI" dcl 68 in procedure "operator_mc_cmds_" set ref 979* action 000554 automatic fixed bin(17,0) dcl 963 set ref 965* 968* 983* active based fixed bin(17,0) level 2 dcl 21-78 ref 937 addr builtin function dcl 81 ref 149 207 213 214 215 220 353 360 361 362 368 748 902 925 936 983 983 ansp 000472 automatic pointer initial dcl 3-53 set ref 3-53* 830* 935 936 anstbl based structure level 1 dcl 3-55 answer 000100 automatic char(256) initial packed unaligned dcl 42 set ref 42* 155* 166* 226* 231* 252* 267* 273* 284* 305* 315* 323* 373* 393* 411* 418* 426* 451* 459* 468* 485* 508* 521* 537* 550* 569* 582* 593* 606* 626* 644* 652* 658* 676* 692* 705* 734* 753* 768* 775* 781* 787* 801* 805* 884* 889* 921* 950* arg based char packed unaligned dcl 77 set ref 162 200 202 204 210 217 223* 265 267 268* 284 285* 311 336 336 346 348 350 357 365 381 393 397 400 400 411 414 418 490 494 499 502 506 526 531 536 555 560 564 568 587 592 611 623 681 686 691 710 715 720 725 728 732 759 arg_count 000200 automatic fixed bin(17,0) dcl 43 set ref 239* 240 332 850* arg_index 000201 automatic fixed bin(17,0) dcl 44 set ref 156* 157* 191* 191 193* 240 257* 257 258* 279* 279 280* 331* 332 333* 334* 334 340* 344* 344 383* 388* 388 402* 407* 407 arg_length 000202 automatic fixed bin(21,0) dcl 45 set ref 157* 162 193* 200 202 204 210 217 223 223 258* 265 267 268 268 280* 284 285 285 306* 311 333* 336 336 340* 346 348 350 357 365 381 383* 390 393 397 400 400 402* 408 411 414 418 486* 490 491* 494 495* 499 502 506 522* 526 527* 531 532* 536 551* 555 556* 560 561* 564 565* 568 583* 587 588* 592 607* 611 619* 623 677* 681 682* 686 687* 691 706* 710 711* 715 716* 720 721* 725 728 732 754* 759 arg_list_ptr 000204 automatic pointer dcl 46 set ref 151* 157* 193* 239* 258* 280* 301* 306* 333* 340* 383* 402* 482* 486* 491* 495* 518* 522* 527* 532* 547* 551* 556* 561* 565* 579* 583* 588* 603* 607* 619* 673* 677* 682* 687* 702* 706* 711* 716* 721* 750* 754* 850* arg_ptr 000206 automatic pointer dcl 47 set ref 157* 162 193* 200 202 204 210 217 223 232* 258* 265 267 268 280* 284 285 306* 311 333* 336 336 340* 346 348 350 357 365 381 383* 393 397 400 400 402* 411 414 418 428* 486* 490 491* 494 495* 499 502 506 522* 526 527* 531 532* 536 551* 555 556* 560 561* 564 565* 568 583* 587 588* 592 607* 611 619* 623 645* 677* 681 682* 686 687* 691 706* 710 711* 715 716* 720 721* 725 728 732 754* 759 arh_header_ based structure level 1 dcl 1-26 arh_user_info_ based structure level 1 dcl 1-39 as_access_audit_$channel 000010 constant entry external dcl 85 ref 983 as_channel_audit_record_ based structure level 1 dcl 4-74 as_data_$ansp 000114 external static pointer dcl 5-26 set ref 820 822* 824 830 as_data_$as_procid 000116 external static bit(36) dcl 5-27 set ref 823* 823 as_data_$cdtp 000120 external static pointer dcl 5-33 ref 844 844 846 846 847 847 901 901 902 902 as_data_$dutp 000122 external static pointer dcl 5-37 ref 148 747 as_data_$rs_ptrs 000124 external static pointer array dcl 5-49 ref 838 838 840 840 841 841 as_data_$sysdir 000126 external static char(168) packed unaligned dcl 5-54 set ref 817* 822 822 826 826 834 834 835 835 840 840 841 841 846 846 847 847 919 919 921 921 as_data_$whoptr 000130 external static pointer dcl 5-60 ref 832 832 834 834 835 835 as_dial_service_audit_record_ based structure level 1 dcl 4-105 as_ia_audit_record_ based structure level 1 dcl 4-52 as_procid defined bit(36) dcl 6-17 set ref 823* asu_$bump_user 000012 constant entry external dcl 87 ref 947 attauth 000210 automatic bit(36) packed unaligned dcl 48 set ref 198* 200* 202* 206* 207 212* 213 214 215 219* 220 223* 232* 346* 348* 352* 353 359* 360 361 362 367* 368 423* 428* attchan 000211 automatic char(32) packed unaligned dcl 49 set ref 162* 164 171 174 231 232* 242* 252 268* 274* 285* 311* 313 315 321 426 428* 433* 453* 460* 469* 536* 538* 560* 570* 592* 594* 623* 624 629 631 631 637 645* 652* 759* 761 761 763 770* 771* 775* 781* 787* 870 873* 969 attchan1 000221 automatic char(32) packed unaligned dcl 50 set ref 568* 570* 611* 614 614 616 624 642 644 645* 658* attype 000232 automatic char(8) packed unaligned dcl 51 set ref 501* 505* 509* 531* 538* 564* 570* 727* 731* 735* audit_record_header based structure level 1 dcl 1-18 auth_flag 000234 automatic bit(1) dcl 52 set ref 192* 197* 242 328* 338* 423 433 author based structure level 2 dcl 7-9 author_dcl based structure level 1 dcl 7-9 bc_flag 000235 automatic bit(1) dcl 53 set ref 328* 406* 436 466 bc_list 000236 automatic char(329) dcl 54 set ref 329* 408 414* 468 469 cdt based structure level 1 dcl 9-44 cdt_entry 1520 based structure array level 2 dcl 9-44 set ref 902 cdte based structure level 1 dcl 9-72 cdte_flag 000361 automatic bit(1) dcl 55 set ref 174* 179* 232* 629* 639* 645* cdtep 000474 automatic pointer dcl 9-41 in procedure "operator_mc_cmds_" set ref 173* 186 186 637 767* 873* 874 876 878 880 969 969* 972 983* cdtep 000530 automatic pointer dcl 898 in procedure "FIND_CDTE" set ref 902* 903 903 903 chan_name parameter char(32) packed unaligned dcl 913 set ref 910 926 927* 939 950 channel_audit_info based structure level 1 dcl 4-138 channel_name 000442 automatic char(32) level 2 dcl 68 set ref 972* channel_threads based structure level 1 dcl 9-249 code 000362 automatic fixed bin(35,0) dcl 56 set ref 157* 159 167* 180* 182 193* 195 223* 224 232* 237 247* 250 251 252 258* 260 268* 269 274* 275 280* 282 285* 286 306* 308 317* 324* 333* 340* 341 372* 383* 384 392* 402* 403 410* 417* 428* 431 439* 443 453* 455 460* 461 469* 471 486* 488 491* 492 495* 497 509* 510 522* 524 527* 529 532* 534 538* 539 551* 553 556* 558 561* 562 565* 566 570* 571 583* 585 588* 590 594* 595 607* 609 619* 621 633* 634 645* 650 656 662 677* 679 682* 684 687* 689 693* 694 706* 708 711* 713 716* 718 721* 723 735* 736 754* 756 771* 773 779 785 792 801* 822* 826* 834* 835* 840* 841* 846* 847* 919* 947* 948 948* 949 comname 000363 automatic char(32) dcl 57 set ref 152* 302* 483* 519* 548* 580* 604* 674* 703* 751* 801* 805* 826* 835* 841* 847* 941 965 continue 000543 automatic bit(1) packed unaligned dcl 915 set ref 917* 924 928* 934* 935 953* cu_$arg_count_rel 000020 constant entry external dcl 90 ref 239 850 cu_$arg_list_ptr 000014 constant entry external dcl 88 ref 151 301 482 518 547 579 603 673 702 750 cu_$arg_ptr_rel 000016 constant entry external dcl 89 ref 157 193 258 280 306 333 340 383 402 486 491 495 522 527 532 551 556 561 565 583 588 607 619 677 682 687 706 711 716 721 754 current_service_type 74 based fixed bin(17,0) level 2 packed packed unaligned dcl 9-72 set ref 186* 637* 876 878 880 current_size 5 based fixed bin(17,0) level 3 in structure "anstbl" dcl 3-55 in procedure "operator_mc_cmds_" ref 935 current_size 36 based fixed bin(17,0) level 2 in structure "cdt" dcl 9-44 in procedure "operator_mc_cmds_" ref 901 current_size 1 based fixed bin(17,0) level 2 in structure "mc_anstbl" dcl 14-25 in procedure "operator_mc_cmds_" ref 924 cv_oct_check_ 000022 constant entry external dcl 91 ref 223 dial_pw 17(02) based bit(1) level 4 packed packed unaligned dcl 21-78 set ref 943 943* dsa_flag 000373 automatic bit(1) dcl 58 set ref 615* 618* 642 762* 765* 770 dutbl based structure level 1 dcl 11-29 dutp 000476 automatic pointer initial dcl 11-27 set ref 148* 149 747* 748 11-27* entry 200 based structure array level 2 in structure "dutbl" dcl 11-29 in procedure "operator_mc_cmds_" set ref 149 748 entry 200 based structure array level 2 in structure "anstbl" dcl 3-55 in procedure "operator_mc_cmds_" set ref 936 entry 142 based structure array level 2 in structure "mc_anstbl" dcl 14-25 in procedure "operator_mc_cmds_" set ref 925 error_table_$action_not_performed 000074 external static fixed bin(35,0) dcl 122 ref 650 773 948 error_table_$bad_arg 000076 external static fixed bin(35,0) dcl 124 ref 372 392 410 error_table_$bad_channel 000100 external static fixed bin(35,0) dcl 125 ref 167 317 324 error_table_$badopt 000102 external static fixed bin(35,0) dcl 127 ref 417 error_table_$ioname_not_active 000104 external static fixed bin(35,0) dcl 128 ref 250 error_table_$ioname_not_found 000106 external static fixed bin(35,0) dcl 130 ref 252 785 error_table_$ionmat 000110 external static fixed bin(35,0) dcl 132 ref 237 431 error_table_$noentry 000112 external static fixed bin(35,0) dcl 133 ref 656 779 exec 0(20) based bit(1) level 2 packed packed unaligned dcl 15-6 set ref 215* 362* fnpe based structure level 1 dcl 9-200 get_process_access_class_ 000024 constant entry external dcl 92 ref 979 get_process_id_ 000026 constant entry external dcl 94 ref 823 hcs_$initiate 000030 constant entry external dcl 95 ref 822 834 840 846 header based structure level 2 dcl 3-55 i 000542 automatic fixed bin(17,0) dcl 914 in procedure "process_dsa_ute" set ref 924* 925* 935* 936* i 000532 automatic fixed bin(17,0) dcl 899 in procedure "FIND_CDTE" set ref 901* 902* in_use based fixed bin(17,0) level 2 dcl 9-72 ref 903 index builtin function dcl 81 ref 171 174 313 614 614 616 629 631 761 761 763 initial_ring 101 based fixed bin(17,0) level 2 dcl 21-78 ref 981 initiate_file_ 000032 constant entry external dcl 96 ref 919 intercom 0(05) based bit(1) level 2 packed packed unaligned dcl 15-6 set ref 214* 361* ioa_$rsnnl 000034 constant entry external dcl 97 ref 652 658 775 781 787 921 ip defined pointer dcl 6-21 set ref 838 840* 841 iutep 000374 automatic pointer dcl 59 set ref 149* 748* 981 983* length builtin function dcl 81 ref 390 408 login_flags 17 based structure level 2 dcl 21-78 login_server_response_header based structure level 1 dcl 13-258 ls_request_header based structure level 1 dcl 13-54 mc_ansp 000500 automatic pointer dcl 14-25 set ref 919* 920 924 925 931* mc_anstbl based structure level 1 dcl 14-25 mc_ate based structure level 1 dcl 14-54 mc_atep 000502 automatic pointer dcl 14-54 set ref 925* 926 927 mc_commands_$define 000050 constant entry external dcl 108 ref 538 mc_commands_$deroute 000052 constant entry external dcl 109 ref 693 mc_commands_$new_tty 000036 constant entry external dcl 98 ref 232 mc_commands_$new_vchannel 000040 constant entry external dcl 100 ref 428 mc_commands_$redefine 000062 constant entry external dcl 113 ref 570 mc_commands_$remove_tty 000046 constant entry external dcl 106 ref 771 mc_commands_$reroute 000056 constant entry external dcl 111 ref 735 mc_commands_$route 000054 constant entry external dcl 110 ref 509 mc_commands_$set_broadcast 000044 constant entry external dcl 104 ref 285 469 mc_commands_$set_restrict 000042 constant entry external dcl 102 ref 268 274 453 460 mc_commands_$substty 000064 constant entry external dcl 114 ref 645 mc_commands_$undefine 000060 constant entry external dcl 112 ref 594 mpxe based structure level 1 dcl 9-221 name 2 based char(32) level 2 dcl 9-72 ref 903 972 null builtin function dcl 81 ref 173 186 767 3-53 11-27 21-76 820 824 832 835 838 841 844 847 874 907 920 969 983 983 operator 17(08) based bit(1) level 3 packed packed unaligned dcl 21-78 set ref 942 942* rcodebits based structure level 1 dcl 15-6 real_tty_name 11 based char(32) level 2 packed packed unaligned dcl 14-54 ref 927 reply 0(03) based bit(1) level 2 packed packed unaligned dcl 15-6 set ref 207* 213* 353* 360* reply_target 000376 automatic char(32) packed unaligned dcl 60 set ref 329* 390 397* 449 451 453* rtrim builtin function dcl 81 ref 315 468 469 965 sc_stat_$Multics_typed 000134 external static bit(1) dcl 16-62 ref 817 sc_stat_$sysdir 000132 external static char(168) packed unaligned dcl 16-21 ref 817 scdtp defined pointer dcl 6-27 set ref 844 846* 847 901 902 service_info 11 000442 automatic char(32) level 2 in structure "CAI" dcl 68 in procedure "operator_mc_cmds_" set ref 975* service_info 10 000442 automatic bit(1) level 3 in structure "CAI" packed packed unaligned dcl 68 in procedure "operator_mc_cmds_" set ref 974* source 000406 automatic char(8) packed unaligned dcl 61 set ref 490* 509* 681* 693* 710* 735* special_pw 17(02) based structure level 3 packed packed unaligned dcl 21-78 status 0(21) based bit(1) level 2 packed packed unaligned dcl 15-6 set ref 220* 368* stream 000410 automatic char(32) packed unaligned dcl 62 set ref 494* 509* 686* 693* 715* 735* substr builtin function dcl 81 ref 499 502 725 728 sys_log_$command 000066 constant entry external dcl 116 ref 242 433 805 sys_log_$command_error 000070 constant entry external dcl 117 ref 801 826 835 841 847 sysdir defined char(168) packed unaligned dcl 6-28 set ref 822* 826* 834* 835* 840* 841* 846* 847* 919* 921* target_flag 000420 automatic bit(1) dcl 63 set ref 328* 387* 436 446 terminate_file_ 000072 constant entry external dcl 118 ref 931 tty_name 316 based char(32) level 2 packed packed unaligned dcl 21-78 ref 939 user_abs_attributes based structure level 1 dcl 20-25 user_attributes based structure level 1 dcl 19-21 user_connection_info based structure level 1 dcl 13-65 user_validation_level 27 000442 automatic fixed bin(3,0) level 2 in structure "CAI" dcl 68 in procedure "operator_mc_cmds_" set ref 981* user_validation_level 10(03) 000442 automatic bit(1) level 3 in structure "CAI" packed packed unaligned dcl 68 in procedure "operator_mc_cmds_" set ref 980* ut_header based structure level 1 dcl 22-16 ute based structure level 1 dcl 21-78 utep 000504 automatic pointer initial dcl 21-76 set ref 21-76* 936* 937 939 942 942 943 943 947* valid 10 000442 automatic structure level 2 dcl 68 set ref 973* vcon 000421 automatic char(32) packed unaligned dcl 64 set ref 502* 506* 509* 526* 538* 555* 570* 587* 594* 691* 693* 720* 735* vcon1 000431 automatic char(32) packed unaligned dcl 65 set ref 728* 732* 735* virtual_dsa 000441 automatic bit(1) dcl 66 set ref 613* 616* 760* 763* 918 virtual_tty_name 1 based char(32) level 2 packed packed unaligned dcl 14-54 ref 926 whoptr defined pointer dcl 6-29 set ref 832 834* 835 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. ABS_ATTRIBUTE_NAMES internal static varying char(28) initial array dcl 20-38 ABS_FLAG_NAMES internal static varying char(8) initial array dcl 21-326 ACCESS_AUDIT_HEADER_VERSION_3 internal static fixed bin(9,0) initial unsigned dcl 1-54 ACTIVE internal static fixed bin(17,0) initial dcl 9-272 ACTIVE_VALUES internal static char(18) initial array dcl 12-86 ALT_USER_ATTRIBUTE_NAMES internal static char(20) initial array packed unaligned dcl 19-77 ANSTBL_version_4 internal static fixed bin(17,0) initial dcl 3-51 ANS_SERVICE internal static fixed bin(17,0) initial dcl 9-259 ARH_TYPE_NO_PROXY internal static fixed bin(17,0) initial dcl 1-52 ARH_TYPE_PROXY internal static fixed bin(17,0) initial dcl 1-50 AS_AUDIT_CHANNEL_ACTIONS internal static char(12) initial array packed unaligned dcl 4-193 AS_AUDIT_CHANNEL_DIALIN internal static fixed bin(17,0) initial dcl 4-175 AS_AUDIT_CHANNEL_DIALOUT internal static fixed bin(17,0) initial dcl 4-175 AS_AUDIT_CHANNEL_DIAL_SYSTEM internal static fixed bin(17,0) initial dcl 4-175 AS_AUDIT_CHANNEL_DIRECTION internal static char(4) initial array packed unaligned dcl 4-196 AS_AUDIT_CHANNEL_SERVICE_INFO internal static char(12) initial array packed unaligned dcl 4-199 AS_AUDIT_DIALID_START internal static fixed bin(17,0) initial dcl 4-188 AS_AUDIT_DIALID_STOP internal static fixed bin(17,0) initial dcl 4-188 AS_AUDIT_PROCESS_ACTIONS internal static char(10) initial array packed unaligned dcl 4-202 AS_AUDIT_PROCESS_CONNECT internal static fixed bin(17,0) initial dcl 4-162 AS_AUDIT_PROCESS_CREATE internal static fixed bin(17,0) initial dcl 4-162 AS_AUDIT_PROCESS_DESTROY internal static fixed bin(17,0) initial dcl 4-162 AS_AUDIT_PROCESS_DISCONNECT internal static fixed bin(17,0) initial dcl 4-162 AS_AUDIT_PROCESS_TERMINATE internal static fixed bin(17,0) initial dcl 4-162 AS_AUDIT_RECORD_CHN_VERSION_1 internal static fixed bin(9,0) initial dcl 4-156 AS_AUDIT_RECORD_DIALID_VERSION_1 internal static fixed bin(9,0) initial dcl 4-159 AS_AUDIT_RECORD_IA_VERSION_1 internal static fixed bin(9,0) initial dcl 4-153 AT_NORMAL internal static char(8) initial packed unaligned dcl 3-116 AT_SHUTDOWN internal static char(8) initial packed unaligned dcl 3-116 AT_SPECIAL internal static char(8) initial packed unaligned dcl 3-116 A_ACCESS internal static bit(3) initial packed unaligned dcl 2-11 A_ACCESS_BIN internal static fixed bin(5,0) initial dcl 2-36 CDT_version internal static fixed bin(17,0) initial dcl 9-39 CDT_version_5 internal static fixed bin(17,0) initial dcl 9-38 CHANNEL_DELETED internal static fixed bin(17,0) initial dcl 9-288 CONNECT_REQ internal static fixed bin(17,0) initial dcl 13-457 CREATE_REQ internal static fixed bin(17,0) initial dcl 13-457 DERIVE_MASK internal static bit(2) initial packed unaligned dcl 21-280 DESTROY_REQ internal static fixed bin(17,0) initial dcl 13-457 DIAL_OUT_SERVICE internal static fixed bin(17,0) initial dcl 9-259 DIAL_SERVER_FLAG_NAMES internal static varying char(12) initial array dcl 21-332 DIAL_SERVICE internal static fixed bin(17,0) initial dcl 9-259 DIR_ACCESS_MODE_NAMES internal static char(4) initial array packed unaligned dcl 2-33 DN355 internal static fixed bin(17,0) initial dcl 10-19 DN6600 internal static fixed bin(17,0) initial dcl 10-19 DN6670 internal static fixed bin(17,0) initial dcl 10-19 DN7100 internal static fixed bin(17,0) initial dcl 10-19 DONT_MASK internal static bit(2) initial packed unaligned dcl 21-280 DO_MASK internal static bit(2) initial packed unaligned dcl 21-280 DUTBL_version_4 internal static fixed bin(17,0) initial dcl 11-25 ENTERP_REQ internal static fixed bin(17,0) initial dcl 13-457 ENTER_REQ internal static fixed bin(17,0) initial dcl 13-457 E_ACCESS internal static bit(3) initial packed unaligned dcl 2-11 E_ACCESS_BIN internal static fixed bin(5,0) initial dcl 2-36 FNP_BOOT internal static fixed bin(17,0) initial dcl 9-298 FNP_DOWN internal static fixed bin(17,0) initial dcl 9-298 FNP_FREE internal static fixed bin(17,0) initial dcl 9-298 FNP_UNKNOWN internal static fixed bin(17,0) initial dcl 9-298 FNP_UP internal static fixed bin(17,0) initial dcl 9-298 FTP_SERVICE internal static fixed bin(17,0) initial dcl 9-259 LIST_REQ internal static fixed bin(17,0) initial dcl 13-457 LOGIN_REQ internal static fixed bin(17,0) initial dcl 13-457 LOGIN_RESULT_VALUES internal static varying char(24) initial array dcl 21-338 LOGIN_SERVER_DIAL_RESPONSE_VERSION_1 internal static char(8) initial packed unaligned dcl 13-378 LOGIN_SERVER_LIST_RESPONSE_VERSION_1 internal static char(8) initial packed unaligned dcl 13-360 LOGIN_SERVER_NEW_PROC_RESPONSE_VERSION_1 internal static char(8) initial packed unaligned dcl 13-420 LOGIN_SERVER_OPERATOR_REQUEST_VERSION_1 internal static char(8) initial packed unaligned dcl 13-222 LOGIN_SERVER_OPERATOR_RESPONSE_VERSION_1 internal static char(8) initial packed unaligned dcl 13-438 LOGIN_SERVER_PROCESS_RESPONSE_VERSION_1 internal static char(8) initial packed unaligned dcl 13-341 LOGIN_SERVER_TERMINATION_RESPONSE_VERSION_1 internal static char(8) initial packed unaligned dcl 13-407 LS_DIAL_REQUEST internal static fixed bin(17,0) initial dcl 13-31 LS_DIAL_REQUEST_VERSION_1 internal static char(8) initial packed unaligned dcl 13-180 LS_DIAL_RESPONSE internal static fixed bin(17,0) initial dcl 13-228 LS_DISCONNECT_REQUEST internal static fixed bin(17,0) initial dcl 13-31 LS_DISCONNECT_REQUEST_VERSION_1 internal static char(8) initial packed unaligned dcl 13-193 LS_LIST_REQUEST internal static fixed bin(17,0) initial dcl 13-31 LS_LIST_REQUEST_VERSION_1 internal static char(8) initial packed unaligned dcl 13-160 LS_LIST_RESPONSE internal static fixed bin(17,0) initial dcl 13-228 LS_LOGOUT_REQUEST internal static fixed bin(17,0) initial dcl 13-31 LS_LOGOUT_REQUEST_VERSION_1 internal static char(8) initial packed unaligned dcl 13-203 LS_NEW_PROC_RESPONSE internal static fixed bin(17,0) initial dcl 13-228 LS_OPERATOR_REQUEST internal static fixed bin(17,0) initial dcl 13-31 LS_OPERATOR_RESPONSE internal static fixed bin(17,0) initial dcl 13-228 LS_PROCESS_REQUEST internal static fixed bin(17,0) initial dcl 13-31 LS_PROCESS_REQUEST_VERSION_1 internal static char(8) initial packed unaligned dcl 13-150 LS_PROCESS_RESPONSE internal static fixed bin(17,0) initial dcl 13-228 LS_REQUEST_HEADER_VERSION_1 internal static char(8) initial packed unaligned dcl 13-63 LS_REQUEST_TYPES internal static char(10) initial array packed unaligned dcl 13-40 LS_RESPONSE_TYPES internal static char(10) initial array packed unaligned dcl 13-238 LS_TERMINATION_RESPONSE internal static fixed bin(17,0) initial dcl 13-228 LS_UNKNOWN_RESPONSE internal static fixed bin(17,0) initial dcl 13-228 LS_VALIDATE_REQUEST internal static fixed bin(17,0) initial dcl 13-31 LS_VALIDATE_REQUEST_VERSION_1 internal static char(8) initial packed unaligned dcl 13-97 LS_VALIDATE_RESPONSE internal static fixed bin(17,0) initial dcl 13-228 LS_VALIDATE_RESPONSE_VERSION_1 internal static char(8) initial packed unaligned dcl 13-297 MASK_CTL_NAMES internal static varying char(12) initial array dcl 21-284 MC_WAIT_ANSWERBACK internal static fixed bin(17,0) initial dcl 14-103 MC_WAIT_COMMAND internal static fixed bin(17,0) initial dcl 14-103 MC_WAIT_DIALUP internal static fixed bin(17,0) initial dcl 14-103 MC_WAIT_READY internal static fixed bin(17,0) initial dcl 14-103 MPX_BOOT internal static fixed bin(17,0) initial dcl 9-306 MPX_DOWN internal static fixed bin(17,0) initial dcl 9-306 MPX_FREE internal static fixed bin(17,0) initial dcl 9-306 MPX_SERVICE internal static fixed bin(17,0) initial dcl 9-259 MPX_UNKNOWN internal static fixed bin(17,0) initial dcl 9-306 MPX_UP internal static fixed bin(17,0) initial dcl 9-306 M_ACCESS internal static bit(3) initial packed unaligned dcl 2-11 M_ACCESS_BIN internal static fixed bin(5,0) initial dcl 2-36 NETWORK_CONNECTION_DSA_FILE_TRANSFER internal static fixed bin(17,0) initial dcl 13-471 NETWORK_CONNECTION_LOGIN internal static fixed bin(17,0) initial dcl 13-471 NEW_PROC_REQ internal static fixed bin(17,0) initial dcl 13-457 NOT_CONFIGURED internal static fixed bin(17,0) initial dcl 9-280 NOW_DIALED internal static fixed bin(17,0) initial dcl 12-76 NOW_DIALED_OUT internal static fixed bin(17,0) initial dcl 12-76 NOW_DIALING internal static fixed bin(17,0) initial dcl 12-76 NOW_HAS_PROCESS internal static fixed bin(17,0) initial dcl 12-76 NOW_HUNG_UP internal static fixed bin(17,0) initial dcl 12-76 NOW_LISTENING internal static fixed bin(17,0) initial dcl 12-76 N_ACCESS internal static bit(3) initial packed unaligned dcl 2-11 N_ACCESS_BIN internal static fixed bin(5,0) initial dcl 2-36 PREEMPT_BUMPED internal static fixed bin(17,0) initial dcl 12-132 PREEMPT_BUMPED_NO_TERM internal static fixed bin(17,0) initial dcl 12-132 PREEMPT_LOAD_CTL internal static fixed bin(17,0) initial dcl 12-132 PREEMPT_TERMSGNL_RECEIVED internal static fixed bin(17,0) initial dcl 12-132 PREEMPT_TERM_SENT internal static fixed bin(17,0) initial dcl 12-132 PREEMPT_UNBUMP internal static fixed bin(17,0) initial dcl 12-132 PREEMPT_UNBUMP_IGNORE_ALARM internal static fixed bin(17,0) initial dcl 12-132 PREEMPT_VALUES internal static varying char(28) initial array dcl 12-142 PROCESS_TYPE_NAMES internal static varying char(12) initial array dcl 21-265 PT_ABSENTEE internal static fixed bin(17,0) initial dcl 21-261 PT_ALARM internal static fixed bin(17,0) initial dcl 12-106 PT_BUMP internal static fixed bin(17,0) initial dcl 12-106 PT_DAEMON internal static fixed bin(17,0) initial dcl 21-261 PT_DESTROY_REQUEST internal static fixed bin(17,0) initial dcl 12-106 PT_DETACH internal static fixed bin(17,0) initial dcl 12-106 PT_FPE internal static fixed bin(17,0) initial dcl 12-106 PT_HANGUP internal static fixed bin(17,0) initial dcl 12-106 PT_INTERACTIVE internal static fixed bin(17,0) initial dcl 21-261 PT_LOGOUT internal static fixed bin(17,0) initial dcl 12-106 PT_NEW_PROC_AUTH internal static fixed bin(17,0) initial dcl 12-106 PT_NEW_PROC_REQUEST internal static fixed bin(17,0) initial dcl 12-106 PT_OPERATOR_TERMINATE internal static fixed bin(17,0) initial dcl 12-106 PT_SHUTDOWN internal static fixed bin(17,0) initial dcl 12-106 PT_UNBUMP internal static fixed bin(17,0) initial dcl 12-106 PW_FLAG_NAMES internal static varying char(12) initial array dcl 21-290 REW_ACCESS internal static bit(3) initial packed unaligned dcl 2-11 REW_ACCESS_BIN internal static fixed bin(5,0) initial dcl 2-36 RE_ACCESS internal static bit(3) initial packed unaligned dcl 2-11 RE_ACCESS_BIN internal static fixed bin(5,0) initial dcl 2-36 RW_ACCESS internal static bit(3) initial packed unaligned dcl 2-11 RW_ACCESS_BIN internal static fixed bin(5,0) initial dcl 2-36 R_ACCESS_BIN internal static fixed bin(5,0) initial dcl 2-36 SA_ACCESS internal static bit(3) initial packed unaligned dcl 2-11 SA_ACCESS_BIN internal static fixed bin(5,0) initial dcl 2-36 SEG_ACCESS_MODE_NAMES internal static char(4) initial array packed unaligned dcl 2-30 SL_INFO_arg_given_in_structure internal static fixed bin(17,0) initial dcl 17-69 SL_INFO_arg_not_given internal static fixed bin(17,0) initial dcl 17-69 SL_INFO_as_mode internal static fixed bin(17,0) initial dcl 17-65 SL_INFO_command_mode internal static fixed bin(17,0) initial dcl 17-65 SL_INFO_version_1 internal static char(8) initial packed unaligned dcl 17-62 SL_LOG_CRASH internal static fixed bin(17,0) initial dcl 17-14 SL_LOG_SILENT internal static fixed bin(17,0) initial dcl 17-14 SL_TYPE_BEEP internal static fixed bin(17,0) initial dcl 17-14 SL_TYPE_CRASH internal static fixed bin(17,0) initial dcl 17-14 SMA_ACCESS internal static bit(3) initial packed unaligned dcl 2-11 SMA_ACCESS_BIN internal static fixed bin(5,0) initial dcl 2-36 SM_ACCESS internal static bit(3) initial packed unaligned dcl 2-11 SM_ACCESS_BIN internal static fixed bin(5,0) initial dcl 2-36 STATE_VALUES internal static char(15) initial array dcl 12-70 S_ACCESS internal static bit(3) initial packed unaligned dcl 2-11 S_ACCESS_BIN internal static fixed bin(5,0) initial dcl 2-36 TABLE_NAMES internal static char(20) initial array packed unaligned dcl 21-271 TAG_ABSENTEE internal static char(1) initial packed unaligned dcl 12-93 TAG_DAEMON internal static char(1) initial packed unaligned dcl 12-93 TAG_INTERACTIVE internal static char(1) initial packed unaligned dcl 12-93 TAG_PROXY internal static char(1) initial packed unaligned dcl 12-93 TAG_UFT internal static char(1) initial packed unaligned dcl 12-93 TANDD_SERVICE internal static fixed bin(17,0) initial dcl 9-259 TERM_FILE_BC internal static bit(2) initial packed unaligned dcl 18-12 TERM_FILE_DELETE internal static bit(5) initial packed unaligned dcl 18-17 TERM_FILE_FORCE_WRITE internal static bit(4) initial packed unaligned dcl 18-16 TERM_FILE_TRUNC internal static bit(1) initial packed unaligned dcl 18-11 TERM_FILE_TRUNC_BC internal static bit(2) initial packed unaligned dcl 18-13 TERM_FILE_TRUNC_BC_TERM internal static bit(3) initial packed unaligned dcl 18-15 TRA_VEC_VALUES internal static char(32) initial array dcl 12-54 TTY_DIALED internal static fixed bin(17,0) initial dcl 12-64 TTY_HUNG internal static fixed bin(17,0) initial dcl 12-64 TTY_KNOWN internal static fixed bin(17,0) initial dcl 12-64 TTY_MASKED internal static fixed bin(17,0) initial dcl 12-64 UFLAG_NAMES internal static varying char(24) initial array dcl 21-303 USER_ATTRIBUTES_always_allowed internal static bit(36) initial dcl 19-100 USER_ATTRIBUTES_default_in_pdt internal static bit(36) initial dcl 19-104 USER_ATTRIBUTES_settable_by_user internal static bit(36) initial dcl 19-108 USER_ATTRIBUTE_NAMES internal static char(20) initial array packed unaligned dcl 19-50 UTE_version_4 internal static fixed bin(17,0) initial dcl 21-74 WAIT_ANSWERBACK internal static fixed bin(17,0) initial dcl 12-25 WAIT_BEFORE_HANGUP internal static fixed bin(17,0) initial dcl 12-25 WAIT_CONNECT_REQUEST internal static fixed bin(17,0) initial dcl 12-25 WAIT_DELETE_CHANNEL internal static fixed bin(17,0) initial dcl 12-25 WAIT_DESTROY_REQUEST internal static fixed bin(17,0) initial dcl 12-25 WAIT_DETACH internal static fixed bin(17,0) initial dcl 12-25 WAIT_DIALUP internal static fixed bin(17,0) initial dcl 12-25 WAIT_DIAL_OUT internal static fixed bin(17,0) initial dcl 12-25 WAIT_DIAL_RELEASE internal static fixed bin(17,0) initial dcl 12-25 WAIT_DISCARD_WAKEUPS internal static fixed bin(17,0) initial dcl 12-25 WAIT_FIN_PRIV_ATTACH internal static fixed bin(17,0) initial dcl 12-25 WAIT_FIN_TANDD_ATTACH internal static fixed bin(17,0) initial dcl 12-25 WAIT_GREETING_MSG internal static fixed bin(17,0) initial dcl 12-25 WAIT_HANGUP internal static fixed bin(17,0) initial dcl 12-25 WAIT_LOGIN_ARGS internal static fixed bin(17,0) initial dcl 12-25 WAIT_LOGIN_LINE internal static fixed bin(17,0) initial dcl 12-25 WAIT_LOGOUT internal static fixed bin(17,0) initial dcl 12-25 WAIT_LOGOUT_HOLD internal static fixed bin(17,0) initial dcl 12-25 WAIT_LOGOUT_SIG internal static fixed bin(17,0) initial dcl 12-25 WAIT_NEW_PASSWORD internal static fixed bin(17,0) initial dcl 12-25 WAIT_NEW_PROC internal static fixed bin(17,0) initial dcl 12-25 WAIT_NEW_PROC_REQUEST internal static fixed bin(17,0) initial dcl 12-25 WAIT_OLD_PASSWORD internal static fixed bin(17,0) initial dcl 12-25 WAIT_PASSWORD internal static fixed bin(17,0) initial dcl 12-25 WAIT_REMOVE internal static fixed bin(17,0) initial dcl 12-25 WAIT_SLAVE_REQUEST internal static fixed bin(17,0) initial dcl 12-25 WAIT_TANDD_HANGUP internal static fixed bin(17,0) initial dcl 12-25 W_ACCESS internal static bit(3) initial packed unaligned dcl 2-11 W_ACCESS_BIN internal static fixed bin(5,0) initial dcl 2-36 as_channel_audit_record based structure level 1 dcl 4-68 as_data_$BS external static char(1) dcl 5-21 as_data_$CR external static char(1) dcl 5-22 as_data_$abs_dim external static char(32) packed unaligned dcl 5-23 as_data_$acct_update_priority external static fixed bin(17,0) dcl 5-24 as_data_$acsdir external static char(168) packed unaligned dcl 5-25 as_data_$as_ring external static fixed bin(3,0) dcl 5-28 as_data_$as_tty automatic char(6) packed unaligned dcl 5-29 as_data_$asmtp external static pointer dcl 5-30 as_data_$autp external static pointer dcl 5-31 as_data_$buzzardp external static pointer dcl 5-32 as_data_$debug_flag external static bit(1) dcl 5-84 as_data_$default_weight external static fixed bin(35,0) dcl 5-34 as_data_$devtabp external static pointer dcl 5-35 as_data_$dft_user_ring external static fixed bin(3,0) dcl 5-36 as_data_$g115_dim external static char(32) packed unaligned dcl 5-38 as_data_$lct_initialized external static bit(1) dcl 5-39 as_data_$lct_size external static fixed bin(17,0) dcl 5-40 as_data_$login_args external static structure level 1 dcl 5-62 as_data_$login_words external static fixed bin(17,0) dcl 5-77 as_data_$ls_message_buffer_cur_lth external static fixed bin(18,0) dcl 5-86 as_data_$ls_message_buffer_max_lth external static fixed bin(18,0) dcl 5-87 as_data_$ls_message_buffer_ptr external static pointer dcl 5-88 as_data_$ls_request_server_info_ptr external static pointer dcl 5-85 as_data_$max_user_ring external static fixed bin(3,0) dcl 5-41 as_data_$mgtp external static pointer dcl 5-42 as_data_$mrd_dim external static char(32) packed unaligned dcl 5-43 as_data_$ntty_dim external static char(32) packed unaligned dcl 5-44 as_data_$pdtdir external static char(168) packed unaligned dcl 5-45 as_data_$pit_ptr external static pointer dcl 5-46 as_data_$rcpdir external static char(168) packed unaligned dcl 5-47 as_data_$request_priority external static fixed bin(17,0) dcl 5-48 as_data_$rtdtp external static pointer dcl 5-50 as_data_$sat_htp external static pointer dcl 5-51 as_data_$satp external static pointer dcl 5-52 as_data_$signal_types external static structure level 1 dcl 5-67 as_data_$suffix external static char(2) array packed unaligned dcl 5-53 as_data_$system_signal_types external static structure level 1 dcl 5-72 as_data_$teens_suffix external static char(2) array packed unaligned dcl 5-55 as_data_$terminet_tabs_string external static varying char(144) dcl 5-56 as_data_$tty_dim external static char(32) packed unaligned dcl 5-57 as_data_$update_priority external static fixed bin(17,0) dcl 5-58 as_data_$version external static char(8) packed unaligned dcl 5-59 as_data_login_words based structure level 1 dcl 5-77 as_dial_service_audit_record based structure level 1 dcl 4-100 as_ia_audit_record_abs based structure level 1 dcl 4-34 as_ia_audit_record_abs_proxy based structure level 1 dcl 4-41 as_ia_audit_record_int_dmn based structure level 1 dcl 4-27 as_tty based char(6) packed unaligned dcl 6-18 asmtp defined pointer dcl 6-19 audit_record_header_proxy based structure level 1 dcl 1-22 audit_record_ptr automatic pointer dcl 1-16 cdtp automatic pointer dcl 9-41 channel_audit_info_ptr automatic pointer dcl 4-136 devtabp defined pointer dcl 6-20 dial_server_info based structure level 1 dcl 4-124 dial_server_info_ptr automatic pointer dcl 4-122 fnp_models internal static fixed bin(17,0) initial array dcl 10-28 fnp_types internal static char(8) initial array packed unaligned dcl 10-25 fnpep automatic pointer dcl 9-41 generic_destination based char(32) packed unaligned dcl 9-195 login_server_dial_request based structure level 1 dcl 13-170 login_server_dial_response based structure level 1 dcl 13-366 login_server_disconnect_request based structure level 1 dcl 13-188 login_server_list_request based structure level 1 dcl 13-156 login_server_list_response based structure level 1 dcl 13-347 login_server_list_response_n_processes automatic fixed bin(17,0) dcl 13-358 login_server_logout_request based structure level 1 dcl 13-199 login_server_new_proc_response based structure level 1 dcl 13-414 login_server_operator_request based structure level 1 dcl 13-214 login_server_operator_response based structure level 1 dcl 13-426 login_server_process_request based structure level 1 dcl 13-103 login_server_process_response based structure level 1 dcl 13-303 login_server_termination_response based structure level 1 dcl 13-385 login_server_validate_request based structure level 1 dcl 13-76 login_server_validate_response based structure level 1 dcl 13-267 ls_process_request_arg_string_length automatic fixed bin(21,0) dcl 13-148 ls_process_request_n_args automatic fixed bin(17,0) dcl 13-147 ls_process_response_accounting_message_length automatic fixed bin(17,0) dcl 13-339 ls_reply_message based structure level 1 dcl 13-445 ls_reply_message_ptr automatic pointer dcl 13-443 ls_request_ptr automatic pointer dcl 13-50 ls_response_ptr automatic pointer dcl 13-254 mgtp defined pointer dcl 6-22 mpxep automatic pointer dcl 9-41 pdtdir based char(168) packed unaligned dcl 6-23 rs_ptrs based pointer array dcl 6-24 sat_htp defined pointer dcl 6-25 satp defined pointer dcl 6-26 sc_stat_$Go external static bit(1) dcl 16-62 sc_stat_$Go_typed external static bit(1) dcl 16-62 sc_stat_$Multics external static bit(1) dcl 16-62 sc_stat_$Star_typed external static bit(1) dcl 16-62 sc_stat_$admin_listener_exit_label external static label variable dcl 16-34 sc_stat_$admin_listener_switch external static bit(1) dcl 16-62 sc_stat_$admin_log_iocb external static pointer dcl 16-45 sc_stat_$admin_log_write_ptr external static pointer dcl 16-45 sc_stat_$admin_sci_ptr external static pointer dcl 16-45 sc_stat_$as_log_write_ptr external static pointer dcl 16-45 sc_stat_$did_part1 external static bit(1) dcl 16-62 sc_stat_$did_part2 external static bit(1) dcl 16-62 sc_stat_$did_part3 external static bit(1) dcl 16-62 sc_stat_$exec_access_name external static char(32) packed unaligned dcl 16-15 sc_stat_$info_dir external static char(168) packed unaligned dcl 16-21 sc_stat_$initzer_ttyp external static pointer dcl 16-45 sc_stat_$log_dir external static char(168) packed unaligned dcl 16-21 sc_stat_$master_abort_label external static label variable dcl 16-34 sc_stat_$master_channel external static char(6) dcl 16-29 sc_stat_$master_iocb external static pointer dcl 16-45 sc_stat_$master_sci_ptr external static pointer dcl 16-45 sc_stat_$mc_acs_dir external static char(168) packed unaligned dcl 16-21 sc_stat_$mc_ansp external static pointer dcl 16-45 sc_stat_$mc_iocb external static pointer dcl 16-45 sc_stat_$mc_is_on external static bit(1) dcl 16-62 sc_stat_$no_operator_login external static bit(1) dcl 16-62 sc_stat_$shutdown_typed external static bit(1) dcl 16-62 sc_stat_$sv1_iocb external static pointer dcl 16-45 sc_stat_$sv2_iocb external static pointer dcl 16-45 sc_stat_$sv3_iocb external static pointer dcl 16-45 sc_stat_$system_shutdown_label external static label variable dcl 16-34 sc_stat_$test_mode external static bit(1) dcl 16-62 sc_stat_$unidentified_access_name external static char(32) packed unaligned dcl 16-15 sc_stat_$vchn_requires_accept external static bit(1) dcl 16-62 sl_info automatic structure level 1 dcl 17-24 sl_info_code_msg internal static structure level 1 dcl 17-187 sl_info_msg internal static structure level 1 dcl 17-214 sl_info_sev_code_label_msg internal static structure level 1 dcl 17-161 sl_info_sev_code_msg internal static structure level 1 dcl 17-82 sl_info_sev_coded_msg internal static structure level 1 dcl 17-134 sl_info_sev_msg internal static structure level 1 dcl 17-108 supported_fnp internal static bit(1) initial array packed unaligned dcl 10-31 terminate_file_switches based structure level 1 packed packed unaligned dcl 18-4 NAMES DECLARED BY EXPLICIT CONTEXT. ANSWER_RETURN 005224 constant label dcl 805 ref 182 227 627 634 654 660 777 783 790 AUDIT_OK 006451 constant entry internal dcl 960 ref 262 290 795 ERROR_RETURN 005176 constant label dcl 801 ref 159 168 254 269 275 286 308 318 325 341 377 384 394 403 412 419 443 455 461 471 488 492 497 510 524 529 534 539 553 558 562 566 571 585 590 595 609 621 662 679 684 689 694 708 713 718 723 736 756 792 922 951 FIND_CDTE 006053 constant entry internal dcl 893 ref 873 969 RETURN 005256 constant label dcl 809 ref 245 263 291 436 475 512 541 573 597 665 696 738 796 803 807 827 accept 000743 constant entry external dcl 142 accept_vchn 001656 constant entry external dcl 294 check_acceptable 006001 constant entry internal dcl 864 ref 180 633 define 003110 constant entry external dcl 516 deroute 004243 constant entry external dcl 667 drop 004675 constant entry external dcl 741 operator_mc_cmds_ 000733 constant entry external dcl 37 process_dsa_ute 006126 constant entry internal dcl 910 ref 642 770 redefine 003277 constant entry external dcl 545 reroute 004432 constant entry external dcl 700 route 002700 constant entry external dcl 480 substty 003654 constant entry external dcl 601 undefine 003521 constant entry external dcl 577 validate 005257 constant entry internal dcl 814 ref 154 304 484 520 549 581 605 675 704 752 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 7432 7570 6700 7442 Length 10610 6700 136 1004 532 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME operator_mc_cmds_ 602 external procedure is an external procedure. validate internal procedure shares stack frame of external procedure operator_mc_cmds_. check_acceptable internal procedure shares stack frame of external procedure operator_mc_cmds_. FIND_CDTE internal procedure shares stack frame of external procedure operator_mc_cmds_. process_dsa_ute internal procedure shares stack frame of external procedure operator_mc_cmds_. AUDIT_OK internal procedure shares stack frame of external procedure operator_mc_cmds_. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME operator_mc_cmds_ 000100 answer operator_mc_cmds_ 000200 arg_count operator_mc_cmds_ 000201 arg_index operator_mc_cmds_ 000202 arg_length operator_mc_cmds_ 000204 arg_list_ptr operator_mc_cmds_ 000206 arg_ptr operator_mc_cmds_ 000210 attauth operator_mc_cmds_ 000211 attchan operator_mc_cmds_ 000221 attchan1 operator_mc_cmds_ 000232 attype operator_mc_cmds_ 000234 auth_flag operator_mc_cmds_ 000235 bc_flag operator_mc_cmds_ 000236 bc_list operator_mc_cmds_ 000361 cdte_flag operator_mc_cmds_ 000362 code operator_mc_cmds_ 000363 comname operator_mc_cmds_ 000373 dsa_flag operator_mc_cmds_ 000374 iutep operator_mc_cmds_ 000376 reply_target operator_mc_cmds_ 000406 source operator_mc_cmds_ 000410 stream operator_mc_cmds_ 000420 target_flag operator_mc_cmds_ 000421 vcon operator_mc_cmds_ 000431 vcon1 operator_mc_cmds_ 000441 virtual_dsa operator_mc_cmds_ 000442 CAI operator_mc_cmds_ 000472 ansp operator_mc_cmds_ 000474 cdtep operator_mc_cmds_ 000476 dutp operator_mc_cmds_ 000500 mc_ansp operator_mc_cmds_ 000502 mc_atep operator_mc_cmds_ 000504 utep operator_mc_cmds_ 000530 cdtep FIND_CDTE 000532 i FIND_CDTE 000542 i process_dsa_ute 000543 continue process_dsa_ute 000554 action AUDIT_OK THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. alloc_char_temp cat_realloc_chars call_ext_out_desc call_ext_out return_mac shorten_stack ext_entry set_chars_eis index_chars_eis THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. as_access_audit_$channel asu_$bump_user cu_$arg_count_rel cu_$arg_list_ptr cu_$arg_ptr_rel cv_oct_check_ get_process_access_class_ get_process_id_ hcs_$initiate initiate_file_ ioa_$rsnnl mc_commands_$define mc_commands_$deroute mc_commands_$new_tty mc_commands_$new_vchannel mc_commands_$redefine mc_commands_$remove_tty mc_commands_$reroute mc_commands_$route mc_commands_$set_broadcast mc_commands_$set_restrict mc_commands_$substty mc_commands_$undefine sys_log_$command sys_log_$command_error terminate_file_ THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. as_data_$ansp as_data_$as_procid as_data_$cdtp as_data_$dutp as_data_$rs_ptrs as_data_$sysdir as_data_$whoptr error_table_$action_not_performed error_table_$bad_arg error_table_$bad_channel error_table_$badopt error_table_$ioname_not_active error_table_$ioname_not_found error_table_$ionmat error_table_$noentry sc_stat_$Multics_typed sc_stat_$sysdir LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 42 000721 3 53 000724 11 27 000726 21 76 000727 37 000732 142 000741 148 000751 149 000755 151 000760 152 000766 154 000771 155 000772 156 000775 157 000777 159 001016 162 001020 164 001025 166 001031 167 001034 168 001037 171 001040 173 001051 174 001053 179 001065 180 001067 182 001071 186 001073 191 001102 192 001103 193 001105 195 001124 197 001126 198 001127 199 001131 200 001132 202 001143 204 001151 206 001155 207 001156 209 001160 210 001161 212 001165 213 001166 214 001170 215 001172 216 001174 217 001175 219 001201 220 001202 221 001204 223 001205 224 001231 226 001233 227 001236 231 001237 232 001257 237 001311 239 001315 240 001330 242 001333 245 001361 247 001362 250 001363 251 001370 252 001372 254 001414 257 001416 258 001417 260 001435 262 001437 263 001440 265 001441 267 001447 268 001475 269 001522 271 001524 273 001525 274 001530 275 001551 279 001553 280 001554 282 001573 284 001575 285 001624 286 001651 290 001653 291 001654 294 001655 301 001664 302 001673 304 001676 305 001677 306 001702 308 001723 311 001725 313 001732 315 001743 317 001771 318 001775 321 001776 323 002002 324 002005 325 002010 328 002011 329 002014 331 002022 332 002024 333 002027 334 002046 336 002047 338 002061 340 002063 341 002102 344 002104 346 002105 348 002116 350 002124 352 002130 353 002131 355 002133 357 002134 359 002140 360 002141 361 002143 362 002145 363 002147 365 002150 367 002154 368 002155 369 002157 372 002160 373 002163 377 002166 379 002167 381 002170 383 002174 384 002213 387 002215 388 002217 390 002220 392 002223 393 002226 394 002244 397 002246 398 002252 400 002253 402 002263 403 002302 406 002304 407 002306 408 002307 410 002312 411 002315 412 002333 414 002335 415 002341 417 002342 418 002345 419 002362 421 002364 423 002365 426 002373 428 002413 431 002441 433 002445 436 002472 439 002476 443 002477 446 002501 449 002503 451 002507 453 002527 455 002550 457 002552 459 002553 460 002556 461 002577 466 002601 468 002603 469 002642 471 002673 475 002676 480 002677 482 002706 483 002715 484 002720 485 002721 486 002724 488 002745 490 002747 491 002754 492 002775 494 002777 495 003004 497 003025 499 003027 501 003034 502 003036 503 003043 505 003044 506 003046 508 003052 509 003055 510 003104 512 003106 516 003107 518 003116 519 003125 520 003130 521 003131 522 003134 524 003155 526 003157 527 003164 529 003205 531 003207 532 003214 534 003235 536 003237 537 003244 538 003247 539 003273 541 003275 545 003276 547 003305 548 003314 549 003317 550 003320 551 003323 553 003344 555 003346 556 003353 558 003374 560 003376 561 003403 562 003424 564 003426 565 003433 566 003454 568 003456 569 003463 570 003466 571 003515 573 003517 577 003520 579 003527 580 003536 581 003541 582 003542 583 003545 585 003566 587 003570 588 003575 590 003616 592 003620 593 003625 594 003630 595 003650 597 003652 601 003653 603 003662 604 003671 605 003674 606 003675 607 003700 609 003721 611 003723 613 003730 614 003731 615 003754 616 003756 617 003761 618 003762 619 003763 621 004004 623 004006 624 004013 626 004017 627 004022 629 004023 631 004035 633 004052 634 004054 637 004056 639 004065 642 004067 644 004076 645 004111 650 004147 652 004153 654 004203 656 004204 658 004206 660 004236 662 004237 665 004241 667 004242 673 004251 674 004260 675 004263 676 004264 677 004267 679 004310 681 004312 682 004317 684 004340 686 004342 687 004347 689 004370 691 004372 692 004377 693 004402 694 004426 696 004430 700 004431 702 004440 703 004447 704 004452 705 004453 706 004456 708 004477 710 004501 711 004506 713 004527 715 004531 716 004536 718 004557 720 004561 721 004566 723 004607 725 004611 727 004616 728 004620 729 004625 731 004626 732 004630 734 004634 735 004637 736 004671 738 004673 741 004674 747 004703 748 004707 750 004712 751 004720 752 004723 753 004724 754 004727 756 004750 759 004752 760 004757 761 004760 762 005003 763 005005 764 005010 765 005011 767 005012 768 005014 770 005017 771 005024 773 005047 775 005053 777 005103 779 005104 781 005106 783 005136 785 005137 787 005141 790 005171 792 005172 795 005174 796 005175 801 005176 803 005223 805 005224 807 005255 809 005256 814 005257 817 005260 820 005270 822 005274 823 005342 824 005354 826 005360 827 005414 830 005415 832 005420 834 005424 835 005470 838 005532 840 005537 841 005610 844 005653 846 005660 847 005725 850 005764 852 006000 864 006001 869 006003 870 006004 873 006011 874 006014 876 006020 878 006027 880 006032 883 006035 884 006040 885 006043 888 006044 889 006047 890 006052 893 006053 901 006064 902 006077 903 006105 906 006120 907 006122 910 006126 917 006130 918 006132 919 006134 920 006176 921 006202 922 006233 924 006234 925 006247 926 006253 927 006261 928 006264 930 006265 931 006267 934 006316 935 006320 936 006333 937 006340 939 006343 941 006351 942 006355 943 006363 947 006370 948 006416 949 006424 950 006426 951 006443 953 006445 956 006446 958 006450 960 006451 965 006452 968 006472 969 006474 972 006506 973 006512 974 006524 975 006526 976 006531 977 006533 978 006537 979 006541 980 006564 981 006566 983 006571 984 006627 ----------------------------------------------------------- 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