COMPILATION LISTING OF SEGMENT display_user_messages Compiled by: Multics PL/I Compiler, Release 30, of February 16, 1988 Compiled at: Honeywell Bull, Phoenix AZ, SysM Compiled on: 07/13/88 1034.6 mst Wed Options: optimize map 1 /****^ ******************************************** 2* * * 3* * Copyright, (C) Honeywell Bull Inc., 1987 * 4* * * 5* ******************************************** */ 6 7 /****^ HISTORY COMMENTS: 8* 1) change(87-05-28,GDixon), approve(87-07-07,MCR7719), 9* audit(87-07-08,Hartogs), install(87-08-04,MR12.1-1055): 10* A) Initial coding, cribbed from display_connection_list. 11* 2) change(87-07-07,GDixon), approve(87-07-07,MCR7719), 12* audit(87-07-08,Hartogs), install(87-08-04,MR12.1-1055): 13* A) Remove magic numbers in several places. 14* B) Correct coding error in matching_entry subroutine. 15* END HISTORY COMMENTS */ 16 17 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 18 /* */ 19 /* display_user_messages: a utility to display contents of the */ 20 /* active_connection_list table, maintained by the connection_list_manager_ */ 21 /* subsystem. */ 22 /* */ 23 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 24 25 26 27 display_user_messages: 28 proc; 29 30 31 /* AUTOMATIC */ 32 33 dcl brief_sw bit(1) aligned automatic; 34 dcl code fixed bin(35) automatic; 35 dcl entry_var entry variable; 36 dcl (exclude, match) char(100) varying automatic; 37 dcl message_handle bit(72) aligned automatic; 38 dcl message_id bit(72) aligned automatic; 39 dcl octal_sw bit(1) aligned automatic; 40 dcl 1 source aligned automatic, 41 2 id char(32), 42 2 person char(24), 43 2 project char(12), 44 2 tag char(1) unal, 45 2 tag_pad char(3) unal; 46 dcl source_id bit(36) aligned automatic; 47 dcl system_area_ptr ptr automatic; 48 dcl 1 target aligned automatic like source; 49 dcl target_id bit(36) aligned automatic; 50 51 52 /* BASED */ 53 54 dcl system_area area based (system_area_ptr); 55 56 57 /* ENTRIES */ 58 59 dcl date_time_$format entry (char(*), fixed bin(71), 60 char(*), char(*)) 61 returns(char(250) var); 62 dcl dump_segment_ entry (ptr, ptr, fixed bin, 63 fixed bin(18), fixed bin(18), 64 bit(*)); 65 dcl get_system_free_area_ entry() returns(ptr); 66 dcl ioa_ entry() options(variable); 67 dcl user_message_admin_$read_message entry (ptr, ptr, ptr, fixed bin(35)); 68 69 70 /* BUILTINS AND CONDITIONS */ 71 72 dcl (addr, after, before, char, dimension, index, hbound, lbound, length, 73 ltrim, max, null, rtrim, size, string, substr, unspec) 74 builtin; 75 dcl (cleanup, linkage_error) condition; 76 77 78 /* INTERNAL STATIC */ 79 80 dcl COMMAND_VERSION char(3) int static options(constant) 81 init("1.0"); 82 dcl CONTINUATION_LINE char(8) int static options(constant) 83 init(" 84 "); 85 dcl DO_NOT_BLOCK fixed bin int static options(constant) 86 init(-1); 87 dcl (FALSE init("0"b), 88 TRUE init("1"b)) bit(1) 89 int static options(constant); 90 dcl ME char (21) int static options (constant) 91 init ("display_user_messages"); 92 dcl ZERO_OFFSET fixed bin(18) int static 93 options(constant) init(0); 94 95 /* EXTERNAL STATIC */ 96 97 dcl (error_table_$bad_arg, 98 error_table_$bad_opt, 99 error_table_$no_message) fixed bin(35) ext static; 100 dcl iox_$user_output ptr ext static; 101 102 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 103 /* */ 104 /* INVOCATION TYPE AND ARGUMENTS: */ 105 /* 1) Initialize variables, and establish cleanup handler. */ 106 /* 2) Create standalone ssu_ invocation for argument processing. */ 107 /* 3) Initialize argument handling routines. */ 108 /* 4) Process input arguments, reporting any errors as they are encountered. */ 109 /* */ 110 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 111 112 call initialize_args(); 113 on cleanup call cleanup_invocation(); 114 call ssu_$standalone_invocation (sci_ptr, ME, COMMAND_VERSION, 115 cu_$arg_list_ptr(),exit_proc, code); 116 call check_invocation_type (ALLOW_COMMAND); 117 call process_args(); 118 call scan_messages(); 119 120 121 122 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 123 /* */ 124 /* REVOCATION AND EXIT: */ 125 /* This point is reached when normal processing completes successfully, */ 126 /* or when the error$fatal routine is called to abnormally end processing. */ 127 /* */ 128 /* 1) Cleanup the standalone invocation. */ 129 /* 2) Return to command processor. */ 130 /* */ 131 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 132 133 EXIT: 134 call cleanup_invocation(); 135 return; 136 137 exit_proc: 138 proc; 139 go to EXIT; 140 end exit_proc; 141 142 /* * * * * * * * * * * * * * * * * * * * * * * * * */ 143 144 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 145 /* */ 146 /* alloc_aumi: get next aumi structure from array. Handle array overflow */ 147 /* gracefully. */ 148 /* */ 149 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 150 151 dcl 1 aumi_struct structure aligned 152 based (aumi_struct_ptr), 153 2 count fixed bin, 154 2 max_count fixed bin, 155 2 array (aumi_struct_count refer (aumi_struct.max_count)) 156 like as_user_message_info; 157 dcl aumi_struct_count fixed bin; 158 dcl (aumi_struct_ptr, temp_struct_ptr) ptr; 159 dcl 1 auto_aumi_struct structure aligned automatic, 160 2 count fixed bin, 161 2 max_count fixed bin, 162 2 array (50) like as_user_message_info; 163 164 dcl 1 aumi aligned based(aumi_ptr) 165 like as_user_message_info; 166 dcl aumi_ptr ptr; 167 dcl aumi_message_time fixed bin(71) 168 based(addr(aumi.message_id)); 169 dcl aumi_message (aumi.message_length) fixed bin(35) based (aumi.message_ptr); 170 dcl ax fixed bin; 171 dcl AUMI_ARRAY_INCREMENT fixed bin int static options(constant) 172 init(50); 173 174 alloc_aumi: 175 procedure; 176 177 if aumi_struct.count = aumi_struct.max_count then do; 178 aumi_struct_count = aumi_struct.max_count + AUMI_ARRAY_INCREMENT; 179 allocate aumi_struct in (system_area) set (temp_struct_ptr); 180 temp_struct_ptr -> aumi_struct.max_count = aumi_struct.max_count; 181 temp_struct_ptr -> aumi_struct = aumi_struct; 182 temp_struct_ptr -> aumi_struct.max_count = 183 aumi_struct.max_count + AUMI_ARRAY_INCREMENT; 184 if aumi_struct_ptr ^= addr (auto_aumi_struct) then 185 free aumi_struct in (system_area); 186 aumi_struct_ptr = temp_struct_ptr; 187 temp_struct_ptr = null; 188 end; 189 190 ax = aumi_struct.count + 1; 191 aumi_ptr = addr(aumi_struct.array(ax)); 192 aumi.version = AS_USER_MESSAGE_INFO_VERSION_1; 193 aumi.flags = FALSE; 194 aumi.flags.no_handle_given = TRUE; 195 aumi.flags.dont_delete = TRUE; 196 aumi.message_info.message_ptr = null; 197 aumi.message_info.message_length = 0; 198 aumi_struct.count = ax; 199 return; 200 201 /* * * * * * * * * * * * * * * * * * * * * * * * * */ 202 203 /* * * * * * * * * * * * * * * * * * * * * * * * * */ 204 205 alloc_aumi$init: 206 entry; 207 208 auto_aumi_struct.count = 0; 209 auto_aumi_struct.max_count = dimension(auto_aumi_struct.array,1); 210 aumi_struct_ptr = addr (auto_aumi_struct); 211 temp_struct_ptr = null; 212 return; 213 214 /* * * * * * * * * * * * * * * * * * * * * * * * * */ 215 216 217 alloc_aumi$term: 218 entry; 219 220 if temp_struct_ptr = aumi_struct_ptr then 221 temp_struct_ptr = null; 222 if temp_struct_ptr ^= null then 223 free temp_struct_ptr -> aumi_struct in (system_area); 224 do ax = 1 to aumi_struct.count; 225 if aumi_struct.message_ptr(ax) ^= null then do; 226 aumi_ptr = addr(aumi_struct.array(ax)); 227 free aumi_message in (system_area); 228 aumi.message_ptr = null; 229 end; 230 end; 231 if aumi_struct_ptr ^= addr (auto_aumi_struct) then 232 free aumi_struct in (system_area); 233 return; 234 235 end alloc_aumi; 236 237 /* * * * * * * * * * * * * * * * * * * * * * * * * */ 238 239 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 240 /* */ 241 /* ARGUMENT PROCESSING: */ 242 /* Declare variables and subroutines needed for argument processing. */ 243 /* */ 244 /* CHECK INVOCATION TYPE: */ 245 /* 1) Initialize error handling subroutines. */ 246 /* 2) Determine whether invoked as command or af. */ 247 /* 3) Is this type of invocation allowed? */ 248 /* 4) Initialize af return argument, and index of current argument. */ 249 /* */ 250 /* SEE OTHER ARGUMENT PROCESSING PROGRAMS: */ 251 /* get_arg, get_ctl_arg, get_bit36_opt, get_bit72_opt */ 252 /* */ 253 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 254 255 dcl af_sw bit(1) aligned, /* on: active fnc*/ 256 arg char(argl) based(argp), 257 argl fixed bin(21), /* current arg */ 258 argp ptr, 259 argn fixed bin, /* arg count */ 260 argx fixed bin, /* arg index */ 261 bit_opt bit(72) var aligned,/* 1-2 word octal*/ 262 opt char(optl) based(optp), 263 optl fixed bin(21), /* current option*/ 264 optp ptr, 265 ret char(retl) varying based(retp), 266 retl fixed bin(21), /* af return val */ 267 retp ptr, 268 sci_ptr ptr; /* ssu_ info ptr */ 269 270 dcl cu_$arg_list_ptr entry returns(ptr), 271 ssu_$abort_subsystem entry() options(variable), 272 ssu_$arg_ptr entry (ptr, fixed bin, ptr, 273 fixed bin(21)), 274 ssu_$destroy_invocation entry (ptr), 275 ssu_$print_message entry() options(variable), 276 ssu_$return_arg entry (ptr, fixed bin, bit(1) aligned, 277 ptr, fixed bin(21)), 278 ssu_$standalone_invocation entry (ptr, char(*), char(*), ptr, 279 entry, fixed bin(35)); 280 281 dcl (ALLOW_COMMAND init(1), 282 ALLOW_AF init(2), 283 ALLOW_COMMAND_AF init(3)) fixed bin int static options(constant); 284 285 check_invocation_type: 286 proc (allowed); 287 288 dcl allowed fixed bin; 289 dcl (error_table_$active_function, 290 error_table_$not_act_fnc) fixed bin(35) ext static; 291 292 call error$init(); 293 call ssu_$return_arg (sci_ptr, argn, af_sw, retp, retl); 294 if allowed = ALLOW_COMMAND & af_sw then 295 call error$fatal (sci_ptr, error_table_$active_function); 296 else if allowed = ALLOW_AF & ^af_sw then 297 call error$fatal (sci_ptr, error_table_$not_act_fnc); 298 else if allowed = ALLOW_COMMAND_AF then; 299 if af_sw then 300 ret = ""; 301 argx = 0; 302 end check_invocation_type; 303 304 305 306 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 307 /* */ 308 /* CLEANUP: */ 309 /* 1) Destroy the ssu_ invocation (releasing temp segs obtained thru ssu_). */ 310 /* */ 311 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 312 313 cleanup_invocation: 314 proc; 315 316 call alloc_aumi$term(); 317 318 if sci_ptr ^= null then 319 call ssu_$destroy_invocation (sci_ptr); 320 end cleanup_invocation; 321 322 /* * * * * * * * * * * * * * * * * * * * * * * * * */ 323 324 /* * * * * * * * * * * * * * * * * * * * * * * * * */ 325 326 327 cv_access_class: 328 procedure (class) returns (char(256) varying); 329 330 dcl class bit(72) aligned parameter; 331 332 dcl class_str char(256) automatic, 333 code fixed bin(35); 334 335 dcl convert_access_class_$to_string_short 336 entry (bit(72) aligned, char(*), 337 fixed bin(35)); 338 339 dcl error_table_$smallarg fixed bin(35) ext static; 340 341 call convert_access_class_$to_string_short (class, class_str, code); 342 if code ^= 0 then do; 343 if code = error_table_$smallarg then; 344 else class_str = "Unknown"; 345 end; 346 return (rtrim(class_str)); 347 348 end cv_access_class; 349 350 /* * * * * * * * * * * * * * * * * * * * * * * * * */ 351 352 /* * * * * * * * * * * * * * * * * * * * * * * * * */ 353 354 355 cv_message_type: 356 procedure (source, target, handle, message) returns (char(256) varying); 357 358 dcl (source, target) char(32) parameter; 359 dcl handle bit(72) aligned parameter; 360 dcl message (*) fixed bin(35) parameter; 361 362 dcl type char(256) varying; 363 364 if handle = SYSTEM_MESSAGE_HANDLE then do; 365 type = "system message: "; 366 if addr(message) ^= null then do; 367 system_message_ptr = addr(message); 368 if system_message.header.version = SYSTEM_MESSAGE_VERSION_1 then do; 369 if lbound(SYSTEM_MESSAGE_TYPES,1) <= system_message.header.type & 370 system_message.header.type <= hbound(SYSTEM_MESSAGE_TYPES,1) 371 then do; 372 type = type || 373 SYSTEM_MESSAGE_TYPES(system_message.header.type); 374 if ^brief_sw then do; 375 type = type || ": "; 376 type = type || rtrim(warn_system_message.caller); 377 type = type || CONTINUATION_LINE; 378 type = type || warn_system_message.text; 379 end; 380 end; 381 else do; 382 type = type || "UNKNOWN TYPE ("; 383 type = type || ltrim(char(system_message.header.type)); 384 type = type || ")"; 385 end; 386 end; 387 else do; 388 type = type || "UNKNOWN VERSION ("; 389 type = type || rtrim(system_message.header.version); 390 type = type || ")"; 391 end; 392 end; 393 else 394 type = type || "NULL MESSAGE POINTER"; 395 end; 396 397 else if handle = USER_MESSAGE_LS_CONNECTION_INFO_HANDLE then do; 398 type = "ls "; 399 LS_DIAL: 400 if addr(message) ^= null then do; 401 ls_connection_message_ptr = addr(message); 402 if ls_connection_message.version = LS_CONNECTION_MESSAGE_V1 then do; 403 if ls_connection_message.reason = LS_MSG_CONNECTED then 404 type = type || "connected: "; 405 else if ls_connection_message.reason = LS_MSG_DISCONNECTED then 406 type = type || "disconnected: "; 407 else do; 408 type = type || "unknown operation"; 409 type = type || 410 cv_octal(unspec(ls_connection_message.reason)); 411 type = type || " "; 412 end; 413 type = type || rtrim (ls_connection_message.io_module_name); 414 type = type || " "; 415 type = type || rtrim (ls_connection_message.connection_name); 416 end; 417 else do; 418 type = type || "connection: "; 419 type = type || "UNKNOWN VERSION ("; 420 type = type || rtrim (ls_connection_message.version); 421 type = type || ")"; 422 end; 423 end; 424 else do; 425 type = type || "connection: "; 426 type = type || "NULL MESSAGE POINTER"; 427 end; 428 end; 429 430 else if substr(handle, length(handle) - 431 length (USER_MESSAGE_LS_CONNECTION_INFO_HANDLE_LOWER_18) + 1, 432 length (USER_MESSAGE_LS_CONNECTION_INFO_HANDLE_LOWER_18)) = 433 USER_MESSAGE_LS_CONNECTION_INFO_HANDLE_LOWER_18 then do; 434 type = "ls dial "; 435 go to LS_DIAL; 436 end; 437 438 else do; 439 if addr(message) = null then 440 type = "UNKNOWN MESSAGE: NULL POINTER"; 441 else do; 442 as_com_channel_info_ptr, ls_response_ptr = addr(message); 443 if lbound (LS_RESPONSE_TYPES, 1) <= 444 login_server_response_header.message_type & 445 login_server_response_header.message_type <= 446 hbound (LS_RESPONSE_TYPES, 1) then do; 447 type = "ls "; 448 type = type || 449 LS_RESPONSE_TYPES (login_server_response_header.message_type); 450 type = type || "response"; 451 452 if login_server_response_header.message_type = 453 LS_UNKNOWN_RESPONSE then; 454 455 else if login_server_response_header.message_type = 456 LS_VALIDATE_RESPONSE then do; 457 if login_server_response_header.version ^= 458 LS_VALIDATE_RESPONSE_VERSION_1 then do; 459 type = type || ": UNKNOWN VERSION ("; 460 type = type || 461 rtrim (login_server_response_header.version); 462 type = type || ")"; 463 end; 464 else do; 465 type = type || ": "; 466 type = type || 467 rtrim (login_server_validate_response.person_id); 468 type = type || "."; 469 type = type || 470 rtrim (login_server_validate_response.project_id); 471 if ^brief_sw then 472 type = type || cv_status_code ( 473 login_server_validate_response.status_code); 474 end; 475 end; 476 477 else if login_server_response_header.message_type = 478 LS_PROCESS_RESPONSE then do; 479 if login_server_response_header.version ^= 480 LOGIN_SERVER_PROCESS_RESPONSE_VERSION_1 then do; 481 type = type || ": UNKNOWN VERSION ("; 482 type = type || 483 rtrim (login_server_response_header.version); 484 type = type || ")"; 485 end; 486 else do; 487 type = type || ": "; 488 type = type || 489 rtrim (login_server_process_response.process_group_id); 490 if ^brief_sw then do; 491 type = type || CONTINUATION_LINE; 492 if login_server_process_response.flags. 493 message_coordinator then 494 type = type || "MESSAGE COORD"; 495 else if login_server_process_response.flags.created then 496 type = type || "CREATE"; 497 else 498 if login_server_process_response.flags.connected then 499 type = type || "CONNECT"; 500 else 501 if login_server_process_response.flags.new_proc then 502 type = type || "NEW_PROC"; 503 else 504 if login_server_process_response.flags.destroyed then 505 type = type || "DESTROY"; 506 if login_server_process_response.process_id ^= ""b 507 then 508 type = type || cv_octal ( 509 login_server_process_response.process_id); 510 type = type || cv_status_code ( 511 login_server_process_response.status_code); 512 if login_server_process_response. 513 accounting_message_length > 0 then do; 514 type = type || ": "; 515 type = type || 516 login_server_process_response.accounting_message; 517 end; 518 end; 519 end; 520 end; 521 522 else if login_server_response_header.message_type = 523 LS_LIST_RESPONSE then do; 524 if login_server_response_header.version ^= 525 LOGIN_SERVER_LIST_RESPONSE_VERSION_1 then do; 526 type = type || ": UNKNOWN VERSION ("; 527 type = type || 528 rtrim (login_server_response_header.version); 529 type = type || ")"; 530 end; 531 end; 532 533 else if login_server_response_header.message_type = 534 LS_DIAL_RESPONSE then do; 535 if login_server_response_header.version ^= 536 LOGIN_SERVER_DIAL_RESPONSE_VERSION_1 then do; 537 type = type || ": UNKNOWN VERSION ("; 538 type = type || 539 rtrim (login_server_response_header.version); 540 type = type || ")"; 541 end; 542 else do; 543 type = type || ": "; 544 type = type || 545 rtrim (login_server_dial_response.process_group_id); 546 if ^brief_sw then 547 type = type || cv_octal ( 548 login_server_dial_response.process_id); 549 end; 550 end; 551 552 else if login_server_response_header.message_type = 553 LS_TERMINATION_RESPONSE then do; 554 if login_server_response_header.version ^= 555 LOGIN_SERVER_TERMINATION_RESPONSE_VERSION_1 then do; 556 type = type || ": UNKNOWN VERSION ("; 557 type = type || 558 rtrim (login_server_response_header.version); 559 type = type || ")"; 560 end; 561 else do; 562 type = type || ": "; 563 type = type || rtrim ( 564 login_server_termination_response.process_group_id); 565 if ^brief_sw then do; 566 type = type || 567 cv_octal ( 568 login_server_termination_response.process_id); 569 type = type || CONTINUATION_LINE; 570 if login_server_termination_response.flags.new_proc then 571 type = type || "new_proc"; 572 else if login_server_termination_response. 573 flags.fatal_error then 574 type = type || "fatal error"; 575 else 576 type = type || "logout"; 577 type = type || cv_status_code ( 578 login_server_termination_response.status_code); 579 end; 580 end; 581 end; 582 583 else if login_server_response_header.message_type = 584 LS_NEW_PROC_RESPONSE then do; 585 if login_server_response_header.version ^= 586 LOGIN_SERVER_NEW_PROC_RESPONSE_VERSION_1 then do; 587 type = type || ": UNKNOWN VERSION ("; 588 type = type || 589 rtrim (login_server_response_header.version); 590 type = type || ")"; 591 end; 592 else 593 type = type || cv_octal ( 594 login_server_new_proc_response.new_process_id); 595 end; 596 597 else if login_server_response_header.message_type = 598 LS_OPERATOR_RESPONSE then do; 599 if login_server_response_header.version ^= 600 LOGIN_SERVER_OPERATOR_RESPONSE_VERSION_1 then do; 601 type = type || ": UNKNOWN VERSION ("; 602 type = type || 603 rtrim (login_server_response_header.version); 604 type = type || ")"; 605 end; 606 else do; 607 type = type || ": "; 608 type = type || 609 rtrim (login_server_operator_response.process_group_id); 610 if ^brief_sw then do; 611 if login_server_operator_response.process_id ^= ""b then 612 type = type || cv_octal ( 613 login_server_operator_response.process_id); 614 type = type || cv_status_code ( 615 login_server_operator_response.status_code); 616 end; 617 end; 618 end; 619 end; 620 621 else if dimension(message,1) = size(as_com_channel_info) & 622 as_com_channel_info.version = 623 AS_COM_CHANNEL_INFO_VERSION_1 then do; 624 type = "com channel info"; 625 if ^brief_sw then do; 626 type = type || " for "; 627 type = type || rtrim(as_com_channel_info.channel_name); 628 end; 629 end; 630 631 else 632 type = "UNKNOWN MESSAGE TYPE"; 633 end; 634 end; 635 return (type); 636 637 end cv_message_type; 638 639 /* * * * * * * * * * * * * * * * * * * * * * * * * */ 640 641 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 642 /* */ 643 /* cv_octal: return octal representation of a word. */ 644 /* */ 645 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 646 647 648 cv_octal: 649 procedure (word) returns (char(13)); 650 651 dcl word bit(36) aligned parameter; 652 653 dcl octal_id char(13); 654 655 dcl ioa_$rsnnl entry() options(variable); 656 657 call ioa_$rsnnl (" ^12.3b", octal_id, 0, word); 658 return (octal_id); 659 660 end cv_octal; 661 662 /* * * * * * * * * * * * * * * * * * * * * * * * * */ 663 664 665 cv_status_code: 666 procedure (code) returns (char(100) varying); 667 668 dcl code fixed bin(35) parameter; 669 670 dcl long char(100) aligned, 671 short char(8) aligned; 672 673 dcl convert_status_code_ entry (fixed bin(35), char(8) aligned, 674 char(100) aligned); 675 676 if code = 0 then 677 return (""); 678 call convert_status_code_ (code, short, long); 679 if short ^= "" then 680 return (" (" || rtrim(short) || ")"); 681 else 682 return (" (" || rtrim(long) || ")"); 683 end cv_status_code; 684 685 /* * * * * * * * * * * * * * * * * * * * * * * * * */ 686 687 /* * * * * * * * * * * * * * * * * * * * * * * * * */ 688 689 690 cv_target: 691 procedure (target) returns (char(32) varying); 692 693 dcl 1 target aligned parameter 694 like as_user_message_info.destination_info; 695 696 dcl code fixed bin(35), 697 group char(32) varying, 698 pers char(24), 699 proj char(12), 700 tag char(1); 701 702 dcl get_userid_$info entry (bit(36) aligned, char(*), 703 char(*), char(*), fixed bin, 704 fixed bin, fixed bin, 705 fixed bin(35)); 706 707 if target.process_id = ""b then 708 return (rtrim (target.group_id)); 709 else if target.group_id ^= "" & target.group_id ^= "*.*.*" then 710 return (rtrim (target.group_id)); 711 else do; 712 call get_userid_$info (target.process_id, pers, proj, tag, 0, 713 0, 0, code); 714 if code = 0 then do; 715 group = rtrim(pers); 716 group = group || "."; 717 group = group || rtrim(proj); 718 group = group || "."; 719 group = group || tag; 720 return (group); 721 end; 722 else do; 723 return (cv_octal (target.process_id)); 724 end; 725 end; 726 727 end cv_target; 728 729 /* * * * * * * * * * * * * * * * * * * * * * * * * */ 730 731 732 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 733 /* */ 734 /* display_message: Display one matching user message. */ 735 /* */ 736 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 737 738 dcl 1 begin aligned automatic, 739 2 (target, type) fixed bin; 740 dcl matching_entries fixed bin; 741 dcl need_heading bit(1) aligned automatic; 742 dcl 1 width aligned automatic, 743 2 (source, target, type) fixed bin; 744 745 display_message: 746 procedure; 747 748 matching_entries = matching_entries + 1; 749 750 if brief_sw then do; 751 if need_heading then do; 752 call ioa_ ( 753 "^/SOURCE^vtTARGET^vtMESSAGE", 754 begin.target, begin.type); 755 need_heading = "0"b; 756 end; 757 call ioa_ ("^a^vt^a^vt^a", before(aumi.sender_info.group_id, "."), 758 begin.target, before (cv_target (aumi.destination_info), "."), 759 begin.type, cv_message_type (aumi.sender_info.group_id, 760 aumi.destination_info.group_id, aumi.message_handle, aumi_message)); 761 end; 762 763 else do; 764 call ioa_ (""); 765 call ioa_ ("Source name: ^32a pid: ^12.3b", 766 aumi.sender_info.group_id, aumi.sender_info.process_id); 767 call ioa_ ("Target name: ^32a pid: ^12.3b ring: ^d", 768 cv_target(aumi.destination_info), aumi.destination_info.process_id, 769 aumi.destination_info.ring); 770 call ioa_ ("Message handle: ^24.3b^8x id: ^24.3b", 771 aumi.message_handle, aumi.message_id); 772 call ioa_ ("Message time: ^a", 773 date_time_$format ("clock", aumi_message_time, "", "")); 774 if aumi.message_access_class ^= ""b then 775 call ioa_ ("Message class: ^a", 776 cv_access_class (aumi.message_access_class)); 777 if aumi.message_ring ^= 4 then 778 call ioa_ ("Message ring: ^d", aumi.message_ring); 779 call ioa_ ("Message length: ^d words", aumi.message_length); 780 call ioa_ ("Message type: ^a", 781 cv_message_type (aumi.sender_info.group_id, 782 aumi.destination_info.group_id, aumi.message_handle, aumi_message)); 783 784 if octal_sw & aumi.message_length > 0 then do; 785 call ioa_ (""); 786 string(dump_segment_format_structure) = ""b; 787 dump_segment_format_structure.offset = TRUE; 788 dump_segment_format_structure.ascii = TRUE; 789 dump_segment_format_structure.raw_data = TRUE; 790 dump_segment_format_structure.interpreted_data = TRUE; 791 dump_segment_format_structure.suppress_duplicates = TRUE; 792 call dump_segment_ (iox_$user_output, addr(aumi_message), 793 DO_NOT_BLOCK, ZERO_OFFSET, dimension(aumi_message,1), 794 dump_segment_format); 795 end; 796 end; 797 return; 798 799 /* * * * * * * * * * * * * * * * * * * * * * * * * */ 800 801 802 display_message$init: 803 entry; 804 805 matching_entries = 0; 806 need_heading = TRUE; 807 width.source = length("SOURCE"); 808 width.target = length("TARGET"); 809 width.type = length("TYPE"); 810 begin = 0; 811 return; 812 813 /* * * * * * * * * * * * * * * * * * * * * * * * * */ 814 815 816 display_message$matching_entry_count: 817 entry returns (fixed bin); 818 return (matching_entries); 819 820 /* * * * * * * * * * * * * * * * * * * * * * * * * */ 821 822 823 display_message$set_widths: 824 entry; 825 826 dcl (COLUMN_1 init(1), 827 COLUMN_GUTTER init(2)) fixed bin int static 828 options(constant); 829 830 width.source = max (width.source, 831 length (before (rtrim (aumi.sender_info.group_id), "."))); 832 width.target = max (width.target, 833 length (before (cv_target (aumi.destination_info), "."))); 834 width.type = max (width.type, 835 length (cv_message_type (aumi.sender_info.group_id, 836 aumi.destination_info.group_id, aumi.message_handle, aumi_message))); 837 begin.target = COLUMN_1 + width.source + COLUMN_GUTTER; 838 begin.type = begin.target + width.target + COLUMN_GUTTER; 839 end display_message; 840 841 /* * * * * * * * * * * * * * * * * * * * * * * * * */ 842 843 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 844 /* */ 845 /* ERROR REPORTING ROUTINES: */ 846 /* 1) Nonfatal errors set a switch, which can be tested via error_occurred */ 847 /* function. */ 848 /* 2) Fatal errors abort the subsystem by calling the exit_proc, which */ 849 /* branches to the EXIT label to exit the command. */ 850 /* */ 851 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 852 853 dcl error_occurred_sw bit(1); 854 855 error: 856 proc options (variable); 857 858 dcl code fixed bin(35) based (codep), 859 codep ptr; 860 861 dcl cu_$arg_list_ptr entry returns(ptr), 862 cu_$arg_ptr entry (fixed bin, ptr, fixed bin(21), 863 fixed bin(35)), 864 cu_$generate_call entry (entry, ptr); 865 866 dcl CODE_ARG fixed bin int static options(constant) init(2), 867 (FALSE init("0"b), 868 TRUE init("1"b)) bit(1) int static options(constant); 869 870 call cu_$arg_ptr (CODE_ARG, codep, 0, 0); 871 if code = 0 then return; 872 if code = -1 then code = 0; 873 error_occurred_sw = TRUE; 874 call cu_$generate_call (ssu_$print_message, cu_$arg_list_ptr()); 875 return; 876 877 878 error$init: 879 entry; 880 error_occurred_sw = FALSE; 881 return; 882 883 884 error$occurred: 885 entry returns (bit(1)); 886 return (error_occurred_sw); 887 888 889 error$fatal: 890 entry options(variable); 891 892 call cu_$arg_ptr (CODE_ARG, codep, 0, 0); 893 if code = 0 then return; 894 if code = -1 then code = 0; 895 error_occurred_sw = TRUE; 896 call ioa_ (""); 897 call cu_$generate_call (ssu_$abort_subsystem, cu_$arg_list_ptr()); 898 end error; 899 900 /* * * * * * * * * * * * * * * * * * * * * * * * * */ 901 902 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 903 /* */ 904 /* ARGUMENT GETTING FUNCTIONS: */ 905 /* get_arg: Get next argument. */ 906 /* get_arg_count: Get number of arguments. */ 907 /* get_ctl_arg: Get next argument, which must be a control argument. */ 908 /* */ 909 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 910 911 get_arg: 912 proc returns (bit(1)); 913 914 dcl (FALSE init("0"b), 915 TRUE init("1"b)) bit(1) int static options(constant); 916 917 if argx < argn then do; 918 argx = argx + 1; 919 call ssu_$arg_ptr (sci_ptr, argx, argp, argl); 920 return (TRUE); 921 end; 922 else 923 return (FALSE); 924 end get_arg; 925 926 927 get_ctl_arg: 928 proc returns (bit(1)); 929 930 dcl index builtin; 931 932 dcl (FALSE init("0"b), 933 TRUE init("1"b)) bit(1) int static options(constant), 934 error_table_$bad_arg fixed bin(35) ext static; 935 936 if get_arg() then 937 if index(arg, "-") = 1 then 938 return (TRUE); 939 else 940 call error$fatal (sci_ptr, error_table_$bad_arg, 941 "^a.^/A control argument was expected.", arg); 942 return (FALSE); 943 end get_ctl_arg; 944 945 /* * * * * * * * * * * * * * * * * * * * * * * * * */ 946 947 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 948 /* */ 949 /* CONTROL ARG OPERAND GETTING FUNCTIONS: */ 950 /* get_bit36_opt: Gets next arg, treats it as an octal integer operand. */ 951 /* get_bit72_opt: Gets next arg, treats it as 2-word octal integer operand.*/ 952 /* get_opt: Gets next arg. */ 953 /* */ 954 /* Both allow the caller to specify whether the operand is required (an */ 955 /* opt_desc is provided) or optional (opt_desc=""). */ 956 /* */ 957 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 958 959 get_bit36_opt: 960 proc (arg_name, opt_desc) returns (bit(1)); 961 962 dcl arg_name char(*), 963 opt_desc char(*); 964 965 dcl code fixed bin(35); 966 dcl max_bits fixed bin; 967 dcl (FALSE init("0"b), 968 TRUE init("1"b)) bit(1) 969 int static options(constant), 970 (error_table_$bad_arg, 971 error_table_$noarg) fixed bin(35) ext static; 972 973 max_bits = 36; 974 go to GET_BIT_COMMON; 975 976 get_bit72_opt: 977 entry (arg_name, opt_desc) returns (bit(1)); 978 max_bits = 72; 979 980 GET_BIT_COMMON: 981 if argx < argn then do; 982 argx = argx + 1; 983 call ssu_$arg_ptr (sci_ptr, argx, optp, optl); 984 bit_opt = oct_to_bit (opt, max_bits, code); 985 if code ^= 0 then do; 986 call error (sci_ptr, error_table_$bad_arg, 987 "^a ^a 988 ^a must be followed by a^[n^] ^a.", 989 arg_name, opt, arg_name, 990 vowel(opt_desc), opt_desc); 991 return (FALSE); 992 end; 993 else return (TRUE); 994 end; 995 else if opt_desc ^= "" then do; 996 call error (sci_ptr, error_table_$noarg, 997 "^/^a must be followed by a^[n^] ^a.", arg_name, 998 vowel(opt_desc), opt_desc); 999 return (FALSE); 1000 end; 1001 else return (FALSE); 1002 end get_bit36_opt; 1003 1004 /* * * * * * * * * * * * * * * * * * * * * * * * * */ 1005 1006 /* * * * * * * * * * * * * * * * * * * * * * * * * */ 1007 1008 1009 get_opt: 1010 proc (arg_name, opt_desc) returns (bit(1)); 1011 1012 dcl arg_name char(*), 1013 opt_desc char(*); 1014 1015 dcl (FALSE init("0"b), 1016 TRUE init("1"b)) bit(1) int static options(constant), 1017 error_table_$noarg fixed bin(35) ext static; 1018 1019 if argx < argn then do; 1020 argx = argx + 1; 1021 call ssu_$arg_ptr (sci_ptr, argx, optp, optl); 1022 if index(opt, "-") = 1 then do; /* options cannot*/ 1023 argx = argx - 1; /* look like */ 1024 go to NO_OPT; /* control args */ 1025 end; 1026 else 1027 return (TRUE); 1028 end; 1029 1030 else 1031 NO_OPT: 1032 if opt_desc ^= "" then do; 1033 call error (sci_ptr, error_table_$noarg, 1034 "^/^a must be followed by a^[n^] ^a.", arg_name, 1035 vowel(opt_desc), opt_desc); 1036 return (FALSE); 1037 end; 1038 return (FALSE); 1039 end get_opt; 1040 1041 /* * * * * * * * * * * * * * * * * * * * * * * * * */ 1042 1043 1044 vowel: 1045 proc (str) returns (bit(1)); /* does opt_desc */ 1046 /* begin with a */ 1047 /* vowel? */ 1048 1049 dcl str char(*); 1050 1051 dcl (search, substr) builtin; 1052 1053 dcl (FALSE init("0"b), 1054 TRUE init("1"b)) bit(1) int static options(constant); 1055 1056 if search ("aeiouAEIO", substr(str,1,1)) > 0 then 1057 return (TRUE); 1058 else 1059 return (FALSE); 1060 end vowel; 1061 1062 /* * * * * * * * * * * * * * * * * * * * * * * * * */ 1063 1064 /* * * * * * * * * * * * * * * * * * * * * * * * * */ 1065 1066 1067 group_id: 1068 procedure (arg) returns (1 like source); 1069 1070 dcl arg char(*); 1071 dcl 1 group aligned automatic like source; 1072 1073 group.id = arg; 1074 group.person = before(arg,"."); 1075 if group.person = "" then group.person = "*"; 1076 group.project = before(after(arg,"."),"."); 1077 if group.project = "" then group.project = "*"; 1078 group.tag = after(after(arg,"."),"."); 1079 if group.tag = "" then group.tag = "*"; 1080 return (group); 1081 1082 end group_id; 1083 1084 /* * * * * * * * * * * * * * * * * * * * * * * * * */ 1085 1086 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 1087 /* */ 1088 /* INITIALIZATION. */ 1089 /* 1) Initialize variables holding argument values. */ 1090 /* 2) Initialize ssu_ info pointer. */ 1091 /* */ 1092 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 1093 1094 initialize_args: 1095 proc; 1096 1097 sci_ptr = null; 1098 1099 brief_sw = TRUE; 1100 octal_sw = FALSE; 1101 1102 exclude, match, source, target = ""; 1103 source_id, target_id, message_id, message_handle = ""b; 1104 1105 call alloc_aumi$init(); 1106 1107 aumari.version = AS_USER_MESSAGE_ADMIN_READ_INFO_VERSION_1; 1108 aumari.source_group_id = ""; 1109 aumari.source_process_id = ""b; 1110 aumari.target_group_id = ""; 1111 aumari.target_process_id = ""b; 1112 aumari.target_handle = ""b; 1113 aumari.after_message_id = ""b; 1114 1115 call display_message$init(); 1116 1117 system_area_ptr = get_system_free_area_ (); 1118 1119 end initialize_args; 1120 1121 /* * * * * * * * * * * * * * * * * * * * * * * * * */ 1122 1123 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 1124 /* */ 1125 /* matching_entry: return TRUE if active_connection_list entry match the */ 1126 /* criteria given in input control args. Otherwise, return FALSE. */ 1127 /* */ 1128 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 1129 1130 matching_entry: 1131 procedure returns (bit(1)); 1132 1133 dcl ok_so_far bit(1); 1134 1135 ok_so_far = TRUE; 1136 if message_id ^= ""b & ok_so_far then 1137 ok_so_far = (aumi.message_id = message_id); 1138 1139 if message_handle ^= ""b & ok_so_far then 1140 ok_so_far = (aumi.message_handle = message_handle); 1141 1142 if source_id ^= ""b & ok_so_far then 1143 ok_so_far = (aumi.sender_info.process_id = source_id); 1144 1145 if target_id ^= ""b & ok_so_far then 1146 ok_so_far = (aumi.destination_info.process_id = target_id); 1147 1148 if source.id ^= "" & ok_so_far then do; 1149 if source.person ^= "*" then 1150 ok_so_far = (source.person = before(aumi.sender_info.group_id,".")); 1151 if source.project ^= "*" & ok_so_far then 1152 ok_so_far = 1153 (source.project = before(after(aumi.sender_info.group_id,"."),".")); 1154 if source.tag ^= "*" & ok_so_far then 1155 ok_so_far = 1156 (source.tag = after(after(aumi.sender_info.group_id,"."),".")); 1157 end; 1158 1159 if target.id ^= "" & ok_so_far then do; 1160 if aumi.destination_info.group_id = "" | 1161 aumi.destination_info.group_id = "*.*.*" then 1162 aumi.destination_info.group_id = cv_target (aumi.destination_info); 1163 if target.person ^= "*" then 1164 ok_so_far = 1165 (target.person = before(aumi.destination_info.group_id,".")); 1166 if target.project ^= "*" & ok_so_far then 1167 ok_so_far = (target.project = 1168 before(after(aumi.destination_info.group_id,"."),".")); 1169 if target.tag ^= "*" & ok_so_far then 1170 ok_so_far = 1171 (target.tag = after(after(aumi.destination_info.group_id,"."),".")); 1172 end; 1173 1174 if match ^= "" & ok_so_far then do; 1175 ok_so_far = index (cv_message_type (aumi.sender_info.group_id, 1176 aumi.destination_info.group_id, aumi.message_handle, aumi_message), 1177 match) > 0; 1178 end; 1179 1180 if exclude ^= "" & ok_so_far then do; 1181 ok_so_far = index (cv_message_type (aumi.sender_info.group_id, 1182 aumi.destination_info.group_id, aumi.message_handle, aumi_message), 1183 exclude) = 0; 1184 end; 1185 1186 return (ok_so_far); 1187 1188 end matching_entry; 1189 1190 /* * * * * * * * * * * * * * * * * * * * * * * * * */ 1191 1192 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 1193 /* */ 1194 /* oct_to_bit: converts octal integer to bit(36) or bit(72) string. */ 1195 /* */ 1196 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 1197 1198 oct_to_bit: 1199 procedure (integer, max_bits, code) returns (bit(72) varying aligned); 1200 1201 dcl integer char(*) parameter; 1202 dcl max_bits fixed bin; 1203 dcl code fixed bin(35) parameter; 1204 1205 dcl bits bit(73) varying; 1206 dcl digit fixed bin; 1207 dcl oct_bits (48:55 /* = 060:067 octal = "0":"7" */) 1208 bit(3) int static options(constant) 1209 init("0"b3, "1"b3, "2"b3, "3"b3, "4"b3, "5"b3, "6"b3, "7"b3); 1210 1211 dcl (length, rank, substr, verify) builtin; 1212 1213 dcl ZERO_BITS bit(72) aligned int static 1214 options(constant) init("0"b); 1215 1216 dcl (error_table_$bad_conversion, 1217 error_table_$size_error) fixed bin(35) ext static; 1218 1219 code = 0; 1220 1221 if verify (integer, "01234567") > 0 then do; /* check for */ 1222 code = error_table_$bad_conversion; /* nonoctal */ 1223 return (""b); /* digits */ 1224 end; 1225 1226 bits = ""b; /* convert octal */ 1227 do digit = 1 to length(integer); /* digits to bits*/ 1228 bits = bits || oct_bits(rank(substr(integer,digit,1))); 1229 end; 1230 1231 if length(bits) > max_bits then do; /* check for too */ 1232 code = error_table_$size_error; /* many digits */ 1233 return (""b); 1234 end; 1235 1236 bits = substr(ZERO_BITS, 1, max_bits - length(bits)) || bits; 1237 /* right adjust */ 1238 return (bits); 1239 1240 end oct_to_bit; 1241 1242 /* * * * * * * * * * * * * * * * * * * * * * * * * */ 1243 1244 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 1245 /* */ 1246 /* PROCESS ARGUMENTS */ 1247 /* 1) Match argument to ctl_arg name and operands. */ 1248 /* */ 1249 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 1250 1251 process_args: 1252 proc; 1253 1254 CTL_ARG_LOOP: 1255 do while (get_ctl_arg ()); 1256 1257 if arg = "-brief" | arg = "-bf" then 1258 brief_sw = TRUE; 1259 else if arg = "-long" | arg = "-lg" then 1260 brief_sw = FALSE; 1261 else if arg = "-octal" | arg = "-oc" then 1262 octal_sw = TRUE; 1263 else if arg = "-no_octal" | arg = "-noc" then 1264 octal_sw = FALSE; 1265 1266 else if arg = "-source" | arg = "-sc" then do; 1267 if get_opt (arg, "source group id") then 1268 source = group_id (opt); 1269 end; 1270 else if arg = "-target" | arg = "-tgt" then do; 1271 if get_opt (arg, "target group id") then 1272 target = group_id (opt); 1273 end; 1274 1275 else if arg = "-source_id" | arg = "-scid" | arg = "-sid" then do; 1276 if get_bit36_opt (arg, "octal source process id") then 1277 source_id = bit_opt; 1278 end; 1279 else if arg = "-target_id" | arg = "-tgtid" | arg = "-tid" | 1280 arg = "-process_id" | arg = "-processid" | 1281 arg = "-pid" then do; 1282 if get_bit36_opt (arg, "octal target process id") then 1283 target_id = bit_opt; 1284 end; 1285 1286 else if arg = "-message_id" | arg = "-mid" then do; 1287 if get_bit72_opt (arg, "octal message identifier") then 1288 message_id = bit_opt; 1289 end; 1290 1291 else if arg = "-handle" | arg = "-hdl" then do; 1292 if get_bit72_opt (arg, "octal message handle") then 1293 message_handle = bit_opt; 1294 end; 1295 1296 else if arg = "-match_data" | arg = "-match" then do; 1297 if get_opt (arg, "match string") then 1298 match = opt; 1299 end; 1300 else if arg = "-exclude_data" | arg = "-exclude" | arg = "-ex" then do; 1301 if get_opt ( arg, "exclude string") then 1302 exclude = opt; 1303 end; 1304 1305 else if index (arg, "-") ^= 1 then 1306 call error (sci_ptr, error_table_$bad_arg, "^a 1307 Usage: ^a {-control_args}", arg, ME); 1308 1309 else 1310 call error (sci_ptr, error_table_$bad_opt, "^a", arg); 1311 end CTL_ARG_LOOP; 1312 1313 if octal_sw then /* -octal implies*/ 1314 brief_sw = FALSE; /* -brief. */ 1315 1316 if error$occurred() then /* stop now if */ 1317 call error$fatal (sci_ptr, -1); /* ctl arg errs */ 1318 1319 end process_args; 1320 1321 /* * * * * * * * * * * * * * * * * * * * * * * * * */ 1322 1323 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 1324 /* */ 1325 /* scan_messages: Walk through user message entries, displaying */ 1326 /* those that match the user's criteria. */ 1327 /* */ 1328 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 1329 1330 scan_messages: 1331 procedure; 1332 1333 on linkage_error begin; 1334 call error$fatal (sci_ptr, -1, 1335 "Incorrect access to the user_message_admin_ gate."); 1336 end; 1337 entry_var = user_message_admin_$read_message; /* force linkage */ 1338 revert linkage_error; /* error now. */ 1339 1340 aumari.after_message_id = "0"b; /* get 1st entry */ 1341 code = 0; 1342 do while (code = 0); 1343 call alloc_aumi(); 1344 call user_message_admin_$read_message (addr(aumari), addr(aumi), 1345 addr(system_area), code); 1346 if code ^= 0 then 1347 aumi_struct.count = aumi_struct.count - 1; 1348 else aumari.after_message_id = aumi.message_id; /* get next entry*/ 1349 end; 1350 1351 if brief_sw then 1352 do ax = 1 to aumi_struct.count; 1353 aumi_ptr = addr (aumi_struct.array(ax)); 1354 if matching_entry() then 1355 call display_message$set_widths(); 1356 end; 1357 1358 do ax = 1 to aumi_struct.count; 1359 aumi_ptr = addr (aumi_struct.array(ax)); 1360 if matching_entry() then 1361 call display_message(); 1362 end; 1363 1364 if code ^= error_table_$no_message then 1365 call error$fatal (sci_ptr, code, "Getting user messages."); 1366 1367 if display_message$matching_entry_count() = 0 then 1368 call error$fatal (sci_ptr, -1, 1369 "No matching user messages were found."); 1370 1371 end scan_messages; 1372 1373 /* * * * * * * * * * * * * * * * * * * * * * * * * */ 1374 /* Begin include file as_com_channel_info.incl.pl1 */ 1 2 1 3 /* Created 1985-02-19 by BIM */ 1 4 /* Recreated 1985-02-22 by E. Swenson since the include file was lost. */ 1 5 1 6 /* format: style4 */ 1 7 1 8 dcl as_com_channel_info_ptr pointer; 1 9 dcl 1 as_com_channel_info aligned 1 10 based (as_com_channel_info_ptr), 1 11 2 version char (8), 1 12 2 channel_name char (32), 1 13 2 flags aligned, 1 14 3 access_control unaligned, 1 15 4 login bit (1), 1 16 4 dial_slave bit (1), 1 17 4 priv_attach bit (1), 1 18 4 dial_server bit (1), 1 19 4 dial_out bit (1), 1 20 3 attached_to_caller bit (1) unaligned, 1 21 3 user_authenticated bit (1) unaligned, 1 22 3 dialed_to_caller bit (1) unaligned, 1 23 3 pad bit (28) unaligned, 1 24 2 service_type fixed bin, 1 25 2 current_service_type fixed bin, 1 26 2 access_class (2) bit (72) aligned, 1 27 2 current_access_class bit (72) aligned, 1 28 2 auth_user_name char (32) unaligned; 1 29 1 30 declare AS_COM_CHANNEL_INFO_VERSION_1 char (8) aligned init ("ascci001") int static options (constant); 1 31 1 32 /* End include file as_com_channel_info.incl.pl1 */ 1374 1375 /* Begin include file as_user_message_aread.incl.pl1 BIM 1985-01-12 */ 2 2 /* format: style4 */ 2 3 2 4 declare as_user_message_admin_read_info_ptr pointer; 2 5 declare 1 as_user_message_admin_read_info aligned 2 6 based (as_user_message_admin_read_info_ptr), 2 7 2 version char (8) aligned, 2 8 2 source_group_id char (32) unal, 2 9 2 source_process_id bit (36) aligned, 2 10 2 target_group_id char (32) unal, 2 11 2 target_process_id bit (36) aligned, 2 12 2 target_handle bit (72) aligned, 2 13 2 after_message_id bit (72) aligned; 2 14 2 15 declare AS_USER_MESSAGE_ADMIN_READ_INFO_VERSION_1 2 16 char (8) init ("aumar001") int static options (constant); 2 17 2 18 /* End include file as_user_message_aread.incl.pl1 */ 1375 1376 1377 dcl 1 aumari aligned automatic like as_user_message_admin_read_info; 1378 /* Begin include file as_user_message_info.incl.pl1 BIM 1985-01-11 */ 3 2 /* format: style4 */ 3 3 3 4 /**** This structure is passed in by a user process to read out 3 5* an A.S. user message. */ 3 6 3 7 declare as_user_message_info_ptr pointer; 3 8 declare 1 as_user_message_info aligned based (as_user_message_info_ptr), 3 9 2 version char (8) aligned, 3 10 2 flags aligned, 3 11 3 read_message_id bit (1) unaligned, /* message_id specified -- read that one */ 3 12 3 read_after_message_id bit (1) unaligned, /* message_id specified -- read the next one for the handle after that */ 3 13 3 no_handle_given bit (1) unaligned, /* application debugging: look at all messages for us, regardless of handle */ 3 14 3 ring_given bit (1) unaligned, /* application debugging: look at outer ring messages */ 3 15 3 dont_delete bit (1) unaligned, /* application debugging, look at message but don't delete them */ 3 16 3 pad bit (31) unaligned, 3 17 2 message_info aligned, /* Output arguments */ 3 18 3 message_ptr pointer, 3 19 3 message_length fixed bin (18), /* words */ 3 20 3 pad bit (36) aligned, 3 21 3 message_id bit (72) aligned, 3 22 3 message_access_class bit (72) aligned, 3 23 3 message_handle bit (72) aligned, 3 24 3 message_ring fixed bin (3), 3 25 2 sender_info aligned, 3 26 3 group_id char (32) unaligned, 3 27 3 process_id bit (36) aligned, 3 28 2 destination_info aligned, 3 29 3 group_id char (32) unal, 3 30 3 process_id bit (36) aligned, 3 31 3 ring fixed bin (3) aligned; 3 32 3 33 declare AS_USER_MESSAGE_INFO_VERSION_1 char (8) aligned init ("asum0001") int static options (constant); 3 34 3 35 /* End include file as_user_message_info.incl.pl1 */ 1378 1379 /* BEGIN INCLUDE FILE ... dialup_values.incl.pl1 */ 4 2 4 3 /* format: style4 */ 4 4 4 5 /* Values for "cdte.tra_vec" used by dialup_ and others. */ 4 6 4 7 /* Modified by T. Casey April 1976 to add WAIT_NEW_PASSWORD 4 8* - in 1977 and 1978 to add WAIT_(GREETING_MSG DELETE_CHANNEL) 4 9* - and in October 1979 to add WAIT_CONNECT_REQUEST 4 10* Modified by Robert Coren in May 1981 to add TANDD_ATTACH values and 4 11* WAIT_DISCARD_WAKEUP 4 12* Modified by T. Casey, July 1981, for MR9.0, to add WAIT_BEFORE_HANGUP. 4 13* Modified by E. N. Kittlitz, July 1982, to add TTY_MASKED. 4 14**/ 4 15 4 16 /****^ HISTORY COMMENTS: 4 17* 1) change(87-04-20,GDixon), approve(87-07-13,MCR7741), 4 18* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 4 19* Add constant arrays naming cdte.state, cdte.tra_vec and ute.active values. 4 20* 2) change(87-05-11,GDixon), approve(87-07-13,MCR7741), 4 21* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 4 22* Add named constants for instance tags. 4 23* END HISTORY COMMENTS */ 4 24 4 25 dcl (WAIT_DIALUP init (1), /* Channel waiting for dialup. */ 4 26 WAIT_ANSWERBACK initial (2), /* WRU sent, waiting for reply */ 4 27 WAIT_LOGIN_LINE init (3), /* Greeting typed, wait for login command. */ 4 28 WAIT_LOGIN_ARGS init (4), /* Want rest of login line */ 4 29 WAIT_OLD_PASSWORD init (5), /* "-cpw" was specified. Wait for old password. */ 4 30 WAIT_PASSWORD init (6), /* Waiting for password. (If "-cpw", repeat of new one.) */ 4 31 WAIT_NEW_PASSWORD init (7), /* "-cpw" was specified. Wait for new password */ 4 32 WAIT_LOGOUT_SIG init (8), /* Channel is hooked up. Wait for logout. */ 4 33 WAIT_LOGOUT init (9), /* A logout has been requested. Wait for process to die */ 4 34 WAIT_LOGOUT_HOLD init (10), /* As above but don't hang up when it dies. */ 4 35 WAIT_DETACH init (11), /* As above but ignore channel afterwards. */ 4 36 WAIT_NEW_PROC init (12), /* As above but make new process and continue. */ 4 37 WAIT_REMOVE init (13), /* As above but completely expunge channel. */ 4 38 WAIT_FIN_PRIV_ATTACH init (14), /* When channel dials up, connect it to user */ 4 39 WAIT_DIAL_RELEASE init (15), /* Waiting for master process to release. */ 4 40 WAIT_DIAL_OUT init (16), /* Waiting for auto call to complete */ 4 41 WAIT_HANGUP init (17), /* Wait for the hangup event to occur for a channel */ 4 42 WAIT_SLAVE_REQUEST init (18), /* Ignore line until someone asks */ 4 43 WAIT_GREETING_MSG init (19), /* Print greeting message and wait for login line */ 4 44 WAIT_DELETE_CHANNEL init (20), /* Channel deleted - mark cdte after process is destroyed */ 4 45 WAIT_CONNECT_REQUEST init (21), /* logged in; awaiting request re disconnected processes */ 4 46 WAIT_TANDD_HANGUP init (22), /* when channel hangs up, proceed with t & d attachment */ 4 47 WAIT_FIN_TANDD_ATTACH init (23), /* when channel dials up, finish t & d attachment */ 4 48 WAIT_DISCARD_WAKEUPS init (24), /* disregard all wakeups on channel */ 4 49 WAIT_BEFORE_HANGUP init (25), /* allow output to print before hanging up */ 4 50 WAIT_DESTROY_REQUEST init (26), /* waiting to continue with destroy request after process has destroyed itself */ 4 51 WAIT_NEW_PROC_REQUEST init (27) /* waiting to continue with new_proc request after process has destroyed itself */ 4 52 ) fixed bin internal static options (constant); 4 53 4 54 dcl TRA_VEC_VALUES (0:13) char (32) aligned int static options (constant) init 4 55 /* names of ute.destroy_flag values */ 4 56 ("", "wait dialup", "wait answerback", "wait login line", /* 0-3 */ 4 57 "wait login args", "wait old password", "wait password", /* 4-6 */ 4 58 "wait new password", "wait logout signal", "wait logout", /* 7-9 */ 4 59 "wait logout hold", "wait detach", "wait new proc", /* 10-12 */ 4 60 "wait remove"); /* -13 */ 4 61 4 62 /* Values for "cdte.state", typewriter state. */ 4 63 4 64 dcl (TTY_MASKED init (-1), /* Terminal channel is there, but masked by MCS */ 4 65 TTY_HUNG init (1), /* Terminal channel is there, but dead. */ 4 66 TTY_KNOWN init (2), /* Channel being "listened" to, awaiting dialup. */ 4 67 TTY_DIALED init (5) /* Channel is dialed up. This is normal state. */ 4 68 ) fixed bin internal static options (constant); 4 69 4 70 dcl STATE_VALUES (-1:5) char (15) aligned int static options (constant) init 4 71 /* names of cdte.state values */ 4 72 ("masked", "dead", "hung up", "listening", "", "", "dialed up"); 4 73 4 74 /* Values for "cdte.in_use" and "ate.active" */ 4 75 4 76 dcl (NOW_FREE init (0), /* Entry is empty. */ 4 77 NOW_HUNG_UP init (1), /* Entry is usable but tty is hung up. */ 4 78 NOW_LISTENING init (2), /* Entry is waiting for phone call. */ 4 79 NOW_DIALED init (3), /* Entry is connected but login not complete. */ 4 80 NOW_LOGGED_IN init (4), /* Entry is logged in but no process. */ 4 81 NOW_HAS_PROCESS init (5), /* Entry has a valid process. */ 4 82 NOW_DIALING init (6), /* Entry (auto_call line) is dialing */ 4 83 NOW_DIALED_OUT init (7) /* Entry (auto_call line) is in use */ 4 84 ) fixed bin internal static options (constant); 4 85 4 86 dcl ACTIVE_VALUES (0:5) char (18) aligned int static options (constant) init 4 87 /* names of ute.active values */ 4 88 ("free", "hung-up", "listening", "dialed", "logged in, no proc", "logged in & proc"); 4 89 4 90 4 91 /**** Values for ute.tag */ 4 92 4 93 dcl (TAG_INTERACTIVE init("a"), 4 94 TAG_UFT init("f"), 4 95 TAG_ABSENTEE init("m"), 4 96 TAG_PROXY init("p"), 4 97 TAG_DAEMON init("z") 4 98 ) char(1) int static options(constant); 4 99 4 100 4 101 /**** Following are constants used to indicate to the process termination 4 102* handler the reason for the process termination. They are used by 4 103* uc_proc_term_handler_, as well as uc_ls_new_proc_request_ and 4 104* uc_ls_destroy_request_. */ 4 105 4 106 dcl ( 4 107 PT_FPE initial (1), 4 108 PT_LOGOUT initial (4), 4 109 PT_NEW_PROC_AUTH initial (13), 4 110 PT_HANGUP initial (20), 4 111 PT_SHUTDOWN initial (21), 4 112 PT_BUMP initial (22), 4 113 PT_ALARM initial (23), 4 114 PT_DETACH initial (24), 4 115 PT_UNBUMP initial (25), 4 116 PT_OPERATOR_TERMINATE initial (27), 4 117 PT_DESTROY_REQUEST initial (30), 4 118 PT_NEW_PROC_REQUEST initial (31) 4 119 ) fixed bin (17) internal static options (constant); 4 120 4 121 /**** Values for ute.preempted: 4 122* -1 user unbumped after term signal sent 4 123* 0 user unbumped; ignore alarm___ 4 124* 1 value internally used in load_ctl_ 4 125* 2 user bumped; when alarm___ comes in, send term signal 4 126* 3 term signal sent; destroy process if termsgnl, alarm___, or cpulimit 4 127* signals come in 4 128* 4 user bumped; process sick, so destroy without sending term signal 4 129* 5 trm_ signal sent, termsgnl received; (if still 3, we never got the 4 130* termsgnl). */ 4 131 4 132 dcl ( 4 133 PREEMPT_UNBUMP initial (-1), 4 134 PREEMPT_UNBUMP_IGNORE_ALARM initial (0), 4 135 PREEMPT_LOAD_CTL initial (1), 4 136 PREEMPT_BUMPED initial (2), 4 137 PREEMPT_TERM_SENT initial (3), 4 138 PREEMPT_BUMPED_NO_TERM initial (4), 4 139 PREEMPT_TERMSGNL_RECEIVED initial (5) 4 140 ) fixed bin (17) internal static options(constant); 4 141 4 142 dcl PREEMPT_VALUES (-1:5) char(28) varying int static options(constant) init( 4 143 "unbumped", 4 144 "not bumped, ignore alarm___", 4 145 "load_ctl_", 4 146 "bumped", 4 147 "bumped, trm_ sent", 4 148 "bumped without trm_", 4 149 "bumped, termsgnl received"); 4 150 4 151 /* END INCLUDE FILE ... dialup_values.incl.pl1 */ 1379 1380 /* START OF: dump_segment_format.incl.pl1 * * * * * * * * * * * * * * * * */ 5 2 5 3 /* Describes the output format understood by the dump_segment_ and 5 4* dump_segment_$return_string subroutines. */ 5 5 5 6 /* Created: 10/25/83 by C Spitzer */ 5 7 5 8 dcl dump_segment_format bit (36) based (addr (dump_segment_format_structure)); 5 9 5 10 dcl 1 dump_segment_format_structure aligned, /* if = "1"b, then */ 5 11 2 address bit (1) unaligned, /* display address part */ 5 12 2 offset bit (1) unaligned, /* display offset part */ 5 13 2 short bit (1) unaligned, /* format display to have 4 words per line */ 5 14 2 bcd bit (1) unaligned, /* interpret data as BCD */ 5 15 2 ascii bit (1) unaligned, /* interpret data as ASCII */ 5 16 2 long bit (1) unaligned, /* format display to have 8 words per line */ 5 17 2 ebcdic9 bit (1) unaligned, /* interpret data as EBCDIC (9 bits) */ 5 18 2 ebcdic8 bit (1) unaligned, /* interpret data as EBCDIC (8 bits) */ 5 19 2 bit4 bit (1) unaligned, /* interpret data as 4 bit data */ 5 20 2 hex8 bit (1) unaligned, /* raw data is hexadecimal (8 bit) */ 5 21 2 hex9 bit (1) unaligned, /* raw data is hexadecimal (9 bit) */ 5 22 5 23 /* Beginning of MR11 understood items */ 5 24 5 25 2 octal bit (1) unaligned, /* raw data is octal */ 5 26 2 header bit (1) unaligned, /* display header */ 5 27 2 raw_data bit (1) unaligned, /* display raw data */ 5 28 2 interpreted_data bit (1) unaligned, /* display interpreted data */ 5 29 2 suppress_duplicates bit (1) unaligned, /* replace duplicate lines with equal signs */ 5 30 2 command_output bit (1) unaligned, /* if returning output, return in command-type output format */ 5 31 2 mbz bit (19) unaligned; /* future expansion */ 5 32 5 33 /* END OF: dump_segment_format.incl.pl1 * * * * * * * * * * * * * * * * */ 1380 1381 /* BEGIN INCLUDE FILE ... login_server_messages.incl.pl1 */ 6 2 6 3 /****^ HISTORY COMMENTS: 6 4* 1) change(86-06-30,Coren), approve(86-06-30,MCR7415), 6 5* audit(86-07-02,Margolin), install(86-07-11,MR12.0-1092): 6 6* Initial implementation. 6 7* 2) change(87-04-16,GDixon), approve(87-07-13,MCR7679), 6 8* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 6 9* A) Add REQUEST_TYPES and RESPONSE_TYPES arrays. 6 10* B) Add login_server_validate_response.last_incorrect_password.time. 6 11* C) Add user_connection_info.line_type. 6 12* D) Add login_server_process_request.minimum_ring. 6 13* 3) change(87-05-14,GDixon), approve(87-07-13,MCR7737), 6 14* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 6 15* A) Add login_server_process_response.brief. 6 16* B) Add login_server_list_response.initial_ring. 6 17* C) Separate login_server_process_response into fixed and variable parts. 6 18* D) Move user_connection_info into login_server_request_header. 6 19* END HISTORY COMMENTS */ 6 20 6 21 /* This include file defines all the structures passed in message segments 6 22* between a login server process and the Initializer (or "answering service") 6 23* process. For convenience, messages from the server to the initializer, 6 24* passed using the send_ls_request_ subroutine, are called "requests"; 6 25* messages from the initializer to the server, passed using the user_message_ 6 26* mechanism, are called "responses". 6 27**/ 6 28 6 29 /* Request types */ 6 30 6 31 dcl (LS_VALIDATE_REQUEST initial (1), /* validate user ID and password */ 6 32 LS_PROCESS_REQUEST initial (2), /* create or connect to a process */ 6 33 LS_LIST_REQUEST initial (3), /* list disconnected processes */ 6 34 LS_DIAL_REQUEST initial (4), /* find a dial server */ 6 35 LS_DISCONNECT_REQUEST initial (5), /* report disconnection of a login channel */ 6 36 LS_LOGOUT_REQUEST initial (6), /* discard UTE (end of dialogue) */ 6 37 LS_OPERATOR_REQUEST initial (7)) /* log the user in as an operator */ 6 38 fixed bin internal static options (constant); 6 39 6 40 dcl LS_REQUEST_TYPES (7) char (10) internal static options (constant) initial 6 41 ( 6 42 "validate", 6 43 "process", 6 44 "list", 6 45 "dial", 6 46 "disconnect", 6 47 "logout", 6 48 "operator"); 6 49 6 50 dcl ls_request_ptr pointer; 6 51 6 52 /* common header for all requests */ 6 53 6 54 dcl 1 ls_request_header aligned based (ls_request_ptr), 6 55 2 header_version char (8), /* version for this header */ 6 56 2 request_version char (8), /* varies depending on the request */ 6 57 2 request_type fixed bin, 6 58 2 pad1 bit (36), 6 59 2 reply_event_channel fixed bin (71), /* event channel over which reply_message should be sent */ 6 60 2 reply_handle bit (72) aligned, /* used for dispatching response */ 6 61 2 connection_info like user_connection_info; /* connection making this request. */ 6 62 6 63 dcl LS_REQUEST_HEADER_VERSION_1 char (8) initial ("lsrh0001") internal static options (constant); 6 64 6 65 dcl 1 user_connection_info aligned based, /* common info passed in most requests */ 6 66 2 connection_name char (32), 6 67 2 access_class_range (2) bit (72), 6 68 2 terminal_type char (32), 6 69 2 terminal_id char (4), 6 70 2 line_type fixed bin; 6 71 6 72 6 73 6 74 /* "validate" request: validate user ID and password */ 6 75 6 76 dcl 1 login_server_validate_request aligned based (ls_request_ptr), 6 77 2 header like ls_request_header, /* request_type = LS_VALIDATE_REQUEST */ 6 78 2 current_password char (8), /* scrambled */ 6 79 2 authorization bit (72), /* only valid if auth_given = "1"b */ 6 80 2 terminate_event_channel fixed bin (71), /* event channel to notify server when process terminates */ 6 81 2 person_id char (22), /* as specified in login line */ 6 82 2 project_id char (9), /* likewise, might be null string */ 6 83 2 network_connection_type fixed bin, /* see below for values */ 6 84 2 new_password char (8), /* only valid if change_password = "1"b */ 6 85 2 flags, 6 86 3 gpw bit (1) unaligned, /* password generated in response to -generate_password */ 6 87 3 auth_given bit (1) unaligned, /* -authorization specified */ 6 88 3 anonymous bit (1) unaligned, /* "enterp" request */ 6 89 3 anon_no_password bit (1) unaligned, /* "enter" request */ 6 90 3 change_password bit (1) unaligned, /* gave -cpw or -gpw */ 6 91 3 change_default_auth bit (1) unaligned, /* gave -change_default_authorization */ 6 92 3 change_default_proj bit (1) unaligned, /* gave -change_default_project */ 6 93 3 operator bit (1) unaligned, /* gave -operator */ 6 94 3 pad bit (28) unaligned; 6 95 6 96 6 97 dcl LS_VALIDATE_REQUEST_VERSION_1 char (8) internal static options (constant) initial ("lsvr0001"); 6 98 6 99 6 100 6 101 /* "process" request: create a process or reconnect to an existing process for the specified user */ 6 102 6 103 dcl 1 login_server_process_request aligned based (ls_request_ptr), 6 104 2 fixed_part, /* to allow for automatic copies */ 6 105 3 header like ls_request_header, /* request_type = LS_PROCESS_REQUEST */ 6 106 3 handle bit (72), /* as provided in validate_response */ 6 107 3 person_id char (22), /* the real one */ 6 108 3 project_id char (9), /* likewise */ 6 109 3 project_pad fixed bin, 6 110 3 command_type fixed bin, /* login, connect, etc.; see below for names */ 6 111 3 process_number fixed bin, /* 0 if unspecified or irrelevant */ 6 112 3 default_io_module char (32), /* I/O module to use if no outer_module specified */ 6 113 3 switch_flags, /* used to indicate if "switch"-type control args were specified */ 6 114 4 warn_given bit (1) unaligned, 6 115 4 force_given bit (1) unaligned, 6 116 4 save_given bit (1) unaligned, 6 117 4 preempt_given bit (1) unaligned, 6 118 4 brief_given bit (1) unaligned, 6 119 4 pad2 bit (31) unaligned, 6 120 3 switch_values, /* these are only valid if corresponding bit in switch_flags is on */ 6 121 4 warn bit (1) unaligned, 6 122 4 force bit (1) unaligned, 6 123 4 save_on_disconnect bit (1) unaligned, 6 124 4 preempt bit (1) unaligned, 6 125 4 brief bit (1) unaligned, /* "0"b & brief_given => -long */ 6 126 4 pad3 bit (31) unaligned, 6 127 3 other_flags, 6 128 4 init_ring_given bit (1) unaligned, /* "1"b if -ring */ 6 129 4 minimum_ring_given bit (1) unaligned, /* "1"b if MNA terminal interface ring > 1 */ 6 130 4 immediate bit (1) unaligned, /* "1"b => -new_proc (or -destroy) -immediate */ 6 131 4 no_start_up bit (1) unaligned, /* "1"b if -no_start_up */ 6 132 4 pad4 bit (32) unaligned, 6 133 3 initial_ring fixed bin, /* valid iff init_ring_given = "1"b */ 6 134 3 minimum_ring fixed bin, /* ring in which MNA terminal mgr operates */ 6 135 3 home_dir char (168), /* null if not specified */ 6 136 3 outer_module char (32), /* likewise */ 6 137 3 process_overseer char (168), /* likewise */ 6 138 3 subsystem char (168), /* likewise */ 6 139 3 n_args fixed bin, /* how many arguments specified after -ag; if 0, ignore the rest of the structure */ 6 140 2 login_arguments, /* variable part, describes stuff after -ag */ 6 141 3 arg_string_length fixed bin (21), 6 142 3 args (ls_process_request_n_args refer (login_server_process_request.n_args)), 6 143 4 start_index fixed bin (21), /* position in arg_string at which arg (i) starts */ 6 144 4 arg_length fixed bin (21), /* length of arg (i) */ 6 145 3 arg_string char (ls_process_request_arg_string_length refer (login_server_process_request.arg_string_length)); 6 146 6 147 dcl ls_process_request_n_args fixed bin; 6 148 dcl ls_process_request_arg_string_length fixed bin (21); 6 149 6 150 dcl LS_PROCESS_REQUEST_VERSION_1 char (8) internal static options (constant) initial ("lspr0001"); 6 151 6 152 6 153 6 154 /* "list" request: list the user's disconnected processes, if any */ 6 155 6 156 dcl 1 login_server_list_request aligned based (ls_request_ptr), 6 157 2 header like ls_request_header, /* request_type = LS_LIST_REQUEST */ 6 158 2 handle bit (72); 6 159 6 160 dcl LS_LIST_REQUEST_VERSION_1 char (8) internal static options (constant) initial ("lslr0001"); 6 161 6 162 6 163 6 164 /* "dial" request: find a process to accept a dial */ 6 165 6 166 /* Note: because a dial request may or may not have been preceded 6 167* by a validate request/response, the initializer_handle may be null. 6 168**/ 6 169 6 170 dcl 1 login_server_dial_request aligned based (ls_request_ptr), 6 171 2 header like ls_request_header, /* request_type = LS_DIAL_REQUEST */ 6 172 2 initializer_handle bit (72), /* as provided in validate_response (if any) */ 6 173 2 terminate_event_channel fixed bin (71), /* event channel to wake up login server when master process terminates */ 6 174 2 dial_qualifier char (22), 6 175 2 person_id char (22), /* null if not specified */ 6 176 2 project_id char (9), /* likewise */ 6 177 2 user_person_id char (22), /* if -user was specified, otherwise "" */ 6 178 2 user_project_id char (9); /* likewise */ 6 179 6 180 dcl LS_DIAL_REQUEST_VERSION_1 char (8) internal static options (constant) initial ("lsdr0001"); 6 181 6 182 6 183 6 184 /* "disconnect" request: report that a login channel has disconnected */ 6 185 /* Note: this message is sent if the connection is broken either during the login dialogue 6 186* or later on when the process was using it */ 6 187 6 188 dcl 1 login_server_disconnect_request aligned based (ls_request_ptr), 6 189 2 header like ls_request_header, /* request_type = LS_DISCONNECT_REQUEST */ 6 190 2 handle bit (72), /* from original validate_response */ 6 191 2 process_id bit (36); /* ""b if no process established */ 6 192 6 193 dcl LS_DISCONNECT_REQUEST_VERSION_1 char (8) internal static options (constant) initial ("lsdc0001"); 6 194 6 195 6 196 6 197 /* "logout" request: indicates that user entered the "logout" request, ending the dialogue; does not require any response */ 6 198 6 199 dcl 1 login_server_logout_request aligned based (ls_request_ptr), 6 200 2 header like ls_request_header, /* request_type = LS_LOGOUT_REQUEST */ 6 201 2 handle bit (72); 6 202 6 203 dcl LS_LOGOUT_REQUEST_VERSION_1 char (8) internal static options (constant) initial ("lslg0001"); 6 204 6 205 6 206 6 207 /* "operator" request: sign the user on as an operator, the result of either 6 208* "login -operator" or "dial system". Note that in the latter case, there may 6 209* not have been a validate request (if the -user control argument wasn't specified), 6 210* in which case initializer_handle is null, and the person_id and project_id 6 211* are blank. 6 212**/ 6 213 6 214 dcl 1 login_server_operator_request aligned based (ls_request_ptr), 6 215 2 header like ls_request_header, /* request_type = LS_OPERATOR_REQUEST */ 6 216 2 initializer_handle bit (72) aligned, /* as provided in validate_response (if any) */ 6 217 2 terminate_event_channel fixed bin (71), /* event channel for wakeup when connection is dropped */ 6 218 2 person_id char (22), /* likewise */ 6 219 2 project_id char (9), /* likewise */ 6 220 2 virtual_channel char (32); /* if -virtual_channel specified, otherwise "" */ 6 221 6 222 dcl LOGIN_SERVER_OPERATOR_REQUEST_VERSION_1 char (8) internal static options (constant) initial ("lsor0001"); 6 223 6 224 6 225 6 226 /* Response types */ 6 227 6 228 dcl (LS_UNKNOWN_RESPONSE initial (100), /* unknown response type. */ 6 229 LS_VALIDATE_RESPONSE initial (101), /* response to validation request */ 6 230 LS_PROCESS_RESPONSE initial (102), /* response to process request */ 6 231 LS_LIST_RESPONSE initial (103), /* response to list request */ 6 232 LS_DIAL_RESPONSE initial (104), /* response to dial request */ 6 233 LS_TERMINATION_RESPONSE initial (105), /* to notify server of a logout */ 6 234 LS_NEW_PROC_RESPONSE initial (106), /* to notify server of process termination */ 6 235 LS_OPERATOR_RESPONSE initial (107)) /* response to operator request */ 6 236 fixed bin internal static options (constant); 6 237 6 238 dcl LS_RESPONSE_TYPES (100:107) char (10) internal static options (constant) initial 6 239 ( 6 240 "UNKNOWN", 6 241 "validate", 6 242 "process", 6 243 "list", 6 244 "dial", 6 245 "terminate", 6 246 "new_proc", 6 247 "operator"); 6 248 6 249 /* NOTE: the server_handle is not included in the response structures because 6 250* it is provided in the user_message_ structures */ 6 251 6 252 6 253 6 254 dcl ls_response_ptr pointer; 6 255 6 256 /* common header for all responses */ 6 257 6 258 dcl 1 login_server_response_header aligned based (ls_response_ptr), 6 259 2 message_type fixed bin, 6 260 2 header_pad bit (36), /* force doubleword alignment */ 6 261 2 version char (8); 6 262 6 263 6 264 6 265 /* "validate" response: indicate whether user_id/password is valid */ 6 266 6 267 dcl 1 login_server_validate_response aligned based (ls_response_ptr), 6 268 2 header like login_server_response_header, /* message_type = LS_VALIDATE_RESPONSE */ 6 269 2 handle bit (72), /* to be provided by the server in subsequent */ 6 270 /* messages for the same connection */ 6 271 2 authorization bit (72), /* default if none was supplied */ 6 272 2 authorization_range (2) bit (72), /* authorization range permitted for this user */ 6 273 2 status_code fixed bin (35), /* 0 iff user is validated */ 6 274 2 person_id char (22), /* primary name from the PNT */ 6 275 2 project_id char (9), /* primary name from the PNT or PDT */ 6 276 2 n_disconnected_processes fixed bin, /* number of disconnected processes for specified user */ 6 277 2 validate_pad fixed bin, 6 278 2 previous_login_info, /* for printing login message */ 6 279 3 time fixed bin (71), 6 280 3 terminal_type char (32), 6 281 3 terminal_id char (4), 6 282 2 incorrect_passwords fixed bin, /* number of times password given incorrectly */ 6 283 2 last_incorrect_password, /* where it came from */ 6 284 3 time fixed bin (71), 6 285 3 terminal_type char (32), 6 286 3 terminal_id char (4), 6 287 2 password_interval fixed bin, /* limit (in days) for password use or change */ 6 288 2 flags, 6 289 3 disconnect bit (1) unaligned, /* if "1"b, close the connection immediately */ 6 290 3 password_changed bit (1) unal, /* "1"b => changed password */ 6 291 3 default_auth_changed bit (1) unal, /* "1"b => changed default authorization */ 6 292 3 default_proj_changed bit (1) unal, /* "1"b => changed default project */ 6 293 3 password_expired bit (1) unal, /* "1"b => password not changed recently enough */ 6 294 3 password_unused_too_long bit (1) unal, /* "1"b => password hasn't been used recently */ 6 295 3 pad bit (30) unaligned; 6 296 6 297 dcl LS_VALIDATE_RESPONSE_VERSION_1 char (8) internal static options (constant) initial ("lsvs0001"); 6 298 6 299 6 300 6 301 /* "process" response: responds to request to create or connect */ 6 302 6 303 dcl 1 login_server_process_response aligned based (ls_response_ptr), 6 304 2 fixed_part, 6 305 3 header like login_server_response_header, /* message_type = LS_PROCESS_RESPONSE */ 6 306 3 status_code fixed bin (35), /* 0 iff process was created or requested process exists */ 6 307 3 process_id bit (36), 6 308 3 new_handle bit (72), /* changed if reconnecting, etc. to preexisting process, all 0 otherwise */ 6 309 3 authorization bit (72), /* authorization of created or existing process */ 6 310 3 process_group_id char (32), /* Person.Project.tag */ 6 311 3 process_number fixed bin, /* as in, "Your disconnected process #2..." */ 6 312 3 n_disconnected_processes fixed bin, /* valid even if code ^= 0, e.g., if request was ambiguous */ 6 313 3 start_event_channel fixed bin (71), /* event channel to wake up user process on */ 6 314 3 login_instance fixed bin, /* "This is your Nth interactive login" */ 6 315 3 accounting_info, /* for destroyed process, if any */ 6 316 4 cpu_usage fixed bin (71), 6 317 4 cost float bin, 6 318 3 flags, /* except for disconnect and logout, invalid if status_code ^= 0 */ 6 319 4 disconnect bit (1) unaligned, /* "1"b => break the connection immediately */ 6 320 4 logout bit (1) unaligned, /* "1"b => restart login sequence */ 6 321 4 created bit (1) unaligned, /* "1"b => new process created */ 6 322 4 connected bit (1) unaligned, /* "1"b => connected to old process */ 6 323 4 new_proc bit (1) unaligned, /* "1"b => connected after new_proc */ 6 324 4 destroyed bit (1) unaligned, /* "1"b => process destroyed */ 6 325 4 anonymous bit (1) unaligned, /* "1"b => anonymous user ("enter" or "enterp") */ 6 326 4 already_logged_in bit (1) unaligned, /* "1"b => user can't log in because he already is */ 6 327 4 message_coordinator bit (1) unaligned, /* "1"b => this connection is going to be used by the message coordinator */ 6 328 4 brief bit (1) unaligned, /* "1"b => brief user attribute from PDT */ 6 329 4 pad bit (26) unaligned, 6 330 3 initial_ring fixed bin, /* ring in which process was created */ 6 331 3 already_logged_in_info, /* relevant if already_logged_in flag is "1"b */ 6 332 4 connection_name char (32), 6 333 4 terminal_type char (32), 6 334 4 terminal_id char (4), 6 335 2 accounting_message_struc, /* character string assembled by initializer giving error or warnings about the user's account */ 6 336 3 accounting_message_length fixed bin, 6 337 3 accounting_message char (ls_process_response_accounting_message_length refer (login_server_process_response.accounting_message_length)); 6 338 6 339 dcl ls_process_response_accounting_message_length fixed bin; 6 340 6 341 dcl LOGIN_SERVER_PROCESS_RESPONSE_VERSION_1 char (8) internal static options (constant) initial ("lsps0001"); 6 342 6 343 6 344 6 345 /* "list" response: used if create request specified "list" command */ 6 346 6 347 dcl 1 login_server_list_response aligned based (ls_response_ptr), 6 348 2 header like login_server_response_header, /* message_type = LS_LIST_RESPONSE */ 6 349 2 n_processes fixed bin, /* number of disconnected processes (might be 0) */ 6 350 2 pad_header fixed bin, 6 351 2 process_info (login_server_list_response_n_processes refer (login_server_list_response.n_processes)), 6 352 3 creation_time fixed bin (71), 6 353 3 authorization bit (72), 6 354 3 initial_ring fixed bin, 6 355 3 pad_process_info fixed bin, 6 356 3 connection_info like user_connection_info; 6 357 6 358 dcl login_server_list_response_n_processes fixed bin; 6 359 6 360 dcl LOGIN_SERVER_LIST_RESPONSE_VERSION_1 char (8) internal static options (constant) initial ("lslr0001"); 6 361 6 362 6 363 6 364 /* "dial" response: response to dial request */ 6 365 6 366 dcl 1 login_server_dial_response aligned based (ls_response_ptr), 6 367 2 header like login_server_response_header, /* message_type = LS_DIAL_RESPONSE */ 6 368 2 status_code fixed bin (35), /* 0 iff dial server was found and all is OK */ 6 369 2 process_id bit (36), /* of dial server */ 6 370 2 process_group_id char (32), /* likewise */ 6 371 2 authorization bit (72), /* likewise, to make sure connection is usable */ 6 372 2 start_event_channel fixed bin (71), /* event channel to wake up user process on */ 6 373 2 process_ring fixed bin, /* initial ring of dial server */ 6 374 2 flags, 6 375 3 disconnect bit (1) unaligned, /* "1"b => break connection immediately */ 6 376 3 pad bit (35) unaligned; 6 377 6 378 dcl LOGIN_SERVER_DIAL_RESPONSE_VERSION_1 char (8) internal static options (constant) initial ("lsds0001"); 6 379 6 380 6 381 6 382 /* "termination" response: (not a response to anything): notify server that a 6 383* process terminated other than by logout */ 6 384 6 385 dcl 1 login_server_termination_response aligned based (ls_response_ptr), 6 386 2 header like login_server_response_header, /* message_type = LS_TERMINATION_RESPONSE */ 6 387 2 accounting_info, /* for printing in logout message */ 6 388 3 cpu_usage fixed bin (71), 6 389 3 cost float bin, 6 390 3 pad bit (33) unaligned, 6 391 2 process_id bit (36), /* of the logged-out process */ 6 392 2 process_group_id char (32), 6 393 2 status_code fixed bin (35), /* e.g., to indicate reason for fatal error */ 6 394 2 flags, 6 395 3 logout bit (1) aligned, /* no new process coming */ 6 396 3 automatic_logout bit (1) unaligned, 6 397 3 hold bit (1) unaligned, 6 398 3 brief bit (1) unaligned, 6 399 3 new_proc bit (1) unaligned, /* user-requested new process */ 6 400 3 fatal_error bit (1) unaligned, /* process died unexpectedly */ 6 401 3 fpe_caused_logout bit (1) unaligned, /* fatal error doesn't generate new process */ 6 402 3 fpe_loop bit (1) unaligned, /* fatal error loop: too many in too short a time */ 6 403 3 fpe_during_init bit (1) unaligned, /* fatal error during process initialization */ 6 404 3 offer_help bit (1) unaligned, /* print a message offering "help" */ 6 405 3 pad bit (27) unaligned; 6 406 6 407 dcl LOGIN_SERVER_TERMINATION_RESPONSE_VERSION_1 char (8) internal static options (constant) initial ("lstr0001"); 6 408 6 409 6 410 6 411 /* "new_proc" response: (not actually a response to anything) -- describes a 6 412* new process (after a termination_response) */ 6 413 6 414 dcl 1 login_server_new_proc_response aligned based (ls_response_ptr), 6 415 2 header like login_server_response_header, /* message_type = LS_NEW_PROC_RESPONSE */ 6 416 2 new_authorization bit (72), /* in case of new_proc -auth */ 6 417 2 new_start_event_channel fixed bin (71), /* event channel for starting new process */ 6 418 2 new_process_id bit (36); /* process_id of newly-created process */ 6 419 6 420 dcl LOGIN_SERVER_NEW_PROC_RESPONSE_VERSION_1 char (8) internal static options (constant) initial ("lsnp0001"); 6 421 6 422 6 423 6 424 /* "operator" response: indicates success or failure of operator request */ 6 425 6 426 dcl 1 login_server_operator_response aligned based (ls_response_ptr), 6 427 2 header like login_server_response_header, /* message_type = LS_OPERATOR_RESPONSE */ 6 428 2 status_code fixed bin (35), /* indicates success or failure */ 6 429 2 process_id bit (36), /* process ID of the message coordinator */ 6 430 2 process_group_id char (32), /* Person.Project.tag */ 6 431 2 event_channel fixed bin (71), /* event channel over which to send connect/disconnect wakeups */ 6 432 2 ring fixed bin, /* ring of message coordinator */ 6 433 2 flags, 6 434 3 disconnect bit (1) unaligned, /* "1" => break the connection immediately */ 6 435 3 mbz bit (35) unaligned; 6 436 6 437 6 438 dcl LOGIN_SERVER_OPERATOR_RESPONSE_VERSION_1 char (8) internal static options (constant) initial ("lsos0001"); 6 439 6 440 6 441 /* format of reply message sent to acknowledge receipt of a request */ 6 442 6 443 dcl ls_reply_message_ptr pointer; 6 444 6 445 dcl 1 ls_reply_message aligned based (ls_reply_message_ptr), 6 446 2 code fixed bin (35), 6 447 2 flags, 6 448 3 request_invalid bit (1) unaligned, /* "1"b => could not process request */ 6 449 3 response_sent bit (1) unaligned, /* "1"b => there is a response message */ 6 450 3 as_error_code bit (1) unaligned, /* "1"b => code is from as_error_table_ */ 6 451 3 do_not_reply bit (1) unaligned, /* "1"b => special flag for AS to prevent any reply from being sent to login server */ 6 452 3 mbz bit (32) unaligned; 6 453 6 454 /* The following are values used to identify the various requests internally; those from CREATE_REQ on 6 455* can appear as "command_type" in ls_process_requests. */ 6 456 6 457 dcl (LOGIN_REQ initial (1), 6 458 ENTER_REQ initial (2), 6 459 ENTERP_REQ initial (3), 6 460 CREATE_REQ initial (4), 6 461 DESTROY_REQ initial (5), 6 462 CONNECT_REQ initial (6), 6 463 NEW_PROC_REQ initial (7), 6 464 LIST_REQ initial (8)) 6 465 fixed bin internal static options (constant); 6 466 6 467 /* The following are the possible values for login_server_validate_request.network_connection_type. 6 468* They are used by the initializer to select a default process overseer and an instance tag. 6 469**/ 6 470 6 471 dcl (NETWORK_CONNECTION_LOGIN initial (1), 6 472 NETWORK_CONNECTION_DSA_FILE_TRANSFER initial (2)) 6 473 fixed bin internal static options (constant); 6 474 6 475 /* END INCLUDE FILE ... login_server_messages.incl.pl1 */ 1381 1382 /* BEGIN INCLUDE FILE...ls_connection_message.incl.pl1 */ 7 2 7 3 7 4 /****^ HISTORY COMMENTS: 7 5* 1) change(86-07-02,Coren), approve(86-07-02,MCR7415), 7 6* audit(86-07-02,Margolin), install(86-07-11,MR12.0-1092): 7 7* Initial implementation. 7 8* END HISTORY COMMENTS */ 7 9 7 10 /* This include file describes the user_message passed by a login server to 7 11* a user process when a connection is assigned to, or disconnected from, 7 12* that process. The format of the "connection_info" is dependent on the type 7 13* of connection. The connection_info is not included in disconnect messages. 7 14* 7 15* The "common" portion of the message is passed separately for "dialed" channels 7 16* so that convert_dial_message_ in the dial-server's process can use it to 7 17* to determine the names of the connectin and the associated I/O module. The 7 18* "full" message is passed in all cases and used when actually doing the 7 19* attachment. 7 20**/ 7 21 7 22 /* Written April 1985 by Robert Coren */ 7 23 7 24 7 25 dcl ls_connection_message_ptr pointer; 7 26 7 27 dcl ls_connection_message_info_length fixed bin (18) unsigned; 7 28 7 29 7 30 /* The portion of the message that identifies the connection: used in all cases */ 7 31 7 32 dcl 1 ls_connection_message_common aligned based (ls_connection_message_ptr), 7 33 2 version char (8), /* "lscmNNNN" */ 7 34 2 connection_name char (32), 7 35 2 io_module_name char (32); 7 36 7 37 7 38 /* The full message: used by the I/O module when attaching */ 7 39 7 40 dcl 1 ls_connection_message aligned based (ls_connection_message_ptr), 7 41 2 common like ls_connection_message_common, 7 42 2 connection_handle fixed bin (35), 7 43 2 reason fixed bin, /* LS_MSG_CONNECTED or LS_MSG_DISCONNECTED */ 7 44 2 connection_info_length fixed bin (18) unsigned, 7 45 2 mbz bit (36), /* pad to even word boundary */ 7 46 2 connection_info (ls_connection_message_info_length refer (ls_connection_message.connection_info_length)) bit (36); 7 47 7 48 dcl LS_CONNECTION_MESSAGE_V1 char (8) internal static options (constant) initial ("lscm0001"); 7 49 7 50 dcl LS_MSG_CONNECTED fixed bin internal static options (constant) initial (1); 7 51 dcl LS_MSG_DISCONNECTED fixed bin internal static options (constant) initial (2); 7 52 7 53 7 54 /* END INCLUDE FILE...ls_connection_message.incl.pl1 */ 1382 1383 /* BEGIN INCLUDE FILE system_message.incl.pl1 */ 8 2 8 3 /****^ HISTORY COMMENTS: 8 4* 1) change(85-12-19,Herbst), approve(87-07-20,MCR7697), 8 5* audit(87-07-20,GDixon), install(87-08-04,MR12.1-1056): 8 6* Moved SYSTEM MESSAGE_HANDLE to user_message_handles.incl.pl1 8 7* 2) change(87-02-24,Brunelle), approve(87-07-20,MCR7697), 8 8* audit(87-07-20,GDixon), install(87-08-04,MR12.1-1056): 8 9* added INACTIVITY message same as WARN message to be able to tell messages 8 10* apart. 8 11* 3) change(87-05-30,Brunelle), approve(87-07-20,MCR7697), 8 12* audit(87-07-20,GDixon), install(87-08-04,MR12.1-1056): 8 13* Added SYSTEM_MESSAGE_TYPES array. 8 14* END HISTORY COMMENTS */ 8 15 8 16 dcl system_message_ptr ptr aligned; 8 17 8 18 dcl 1 system_message_header aligned based, 8 19 2 version char (8), /* version of this structure */ 8 20 2 type fixed bin, /* type of message: AS_WARN_.., etc. */ 8 21 2 type_version char (8); /* version of info for this type */ 8 22 8 23 dcl 1 system_message aligned based (system_message_ptr), /* generic */ 8 24 2 header aligned like system_message_header, 8 25 2 contents bit (0); /* types are of different length */ 8 26 8 27 dcl SYSTEM_MESSAGE_VERSION_1 char (8) int static options (constant) init ("SYSMSG01"); 8 28 8 29 dcl system_message_text_len fixed bin; 8 30 8 31 dcl 1 warn_system_message aligned based (system_message_ptr), 8 32 2 header aligned like system_message_header, 8 33 2 caller char (64), 8 34 2 text_len fixed bin (21), 8 35 2 text char (system_message_text_len refer (warn_system_message.text_len)); 8 36 8 37 dcl 1 inactivity_system_message aligned based (system_message_ptr), 8 38 2 header aligned like system_message_header, 8 39 2 caller char (64), 8 40 2 text_len fixed bin (21), 8 41 2 text char (system_message_text_len refer (inactivity_system_message.text_len)); 8 42 8 43 dcl 1 dm_shut_system_message aligned based (system_message_ptr), 8 44 2 header aligned like system_message_header, 8 45 2 caller char (64), 8 46 2 text_len fixed bin (21), 8 47 2 text char (system_message_text_len refer (dm_shut_system_message.text_len)); 8 48 8 49 dcl (ANY_TYPE init (0), 8 50 SYSTEM_MESSAGE_TYPE_AS_WARN init (1), 8 51 SYSTEM_MESSAGE_TYPE_DM_SHUT init (2), 8 52 SYSTEM_MESSAGE_TYPE_AS_INACTIVITY init (3)) 8 53 fixed bin int static options (constant); 8 54 8 55 dcl (SYSTEM_MESSAGE_AS_WARN_V1 init ("SYSASW01"), 8 56 SYSTEM_MESSAGE_DM_SHUT_V1 init ("SYSDMS01"), 8 57 SYSTEM_MESSAGE_AS_INACTIVITY_V1 init ("SYSASI01")) 8 58 char (8) int static options (constant); 8 59 8 60 dcl SYSTEM_MESSAGE_TYPES (0:3) char(12) varying int static options(constant) 8 61 init("unknown type", "AS warning", "DM shutdown", "inactivity"); 8 62 8 63 8 64 /* END INCLUDE FILE system_message.incl.pl1 */ 1383 1384 /* BEGIN INCLUDE FILE...user_message_handles.incl.pl1 */ 9 2 9 3 9 4 /****^ HISTORY COMMENTS: 9 5* 1) change(85-12-19,Herbst), approve(87-07-20,MCR7697), 9 6* audit(87-07-20,GDixon), install(87-08-04,MR12.1-1056): 9 7* Added SYSTEM_MESSAGE_HANDLE 9 8* 2) change(86-06-30,Coren), approve(86-06-30,MCR7415), 9 9* audit(86-07-02,Margolin), install(86-07-11,MR12.0-1092): 9 10* Added USER_MESSAGE_LS_CONNECTION_INFO_HANDLE and 9 11* USER_MESSAGE_LS_CONNECTION_INFO_HANDLE_LOWER_18 for use by login servers. 9 12* END HISTORY COMMENTS */ 9 13 9 14 /* This include file defines "well-known" handles for as_user_messages, 9 15* i.e., each of the handles defined here will be used for a particular purpose, 9 16* and programs that expect to receive such messages will use the appropriate 9 17* handle to read them. 9 18**/ 9 19 9 20 dcl USER_MESSAGE_LS_CONNECTION_INFO_HANDLE initial ("000000000000777777777777"b3) /* connection_info sent by login server to newly created process */ 9 21 bit (72) aligned internal static options (constant); 9 22 9 23 dcl USER_MESSAGE_LS_CONNECTION_INFO_HANDLE_LOWER_18 initial ("777777"b3) /* allows upper 54 bits to be used for unique identifier */ 9 24 bit (18) aligned internal static options (constant); 9 25 9 26 dcl SYSTEM_MESSAGE_HANDLE initial ("770007700077000770007700"b3) /* for warn and dm_shut messages */ 9 27 bit (72) aligned internal static options (constant); 9 28 9 29 9 30 /* END INCLUDE FILE...user_message_handles.incl.pl1 */ 1384 1385 /* BEGIN INCLUDE FILE ... user_attributes.incl.pl1 TAC 10/79 */ 10 2 10 3 10 4 /****^ HISTORY COMMENTS: 10 5* 1) change(86-12-11,Brunelle), approve(87-07-13,MCR7741), 10 6* audit(87-04-19,GDixon), install(87-08-04,MR12.1-1056): 10 7* Add incl for abs_attributes.incl.pl1 to automatically include absentee 10 8* attribute switches. 10 9* 2) change(87-04-19,GDixon), approve(87-07-13,MCR7741), 10 10* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 10 11* A) Add USER_ATTRIBUTE_NAMES arrays. attribute_names.incl.pl1 can thereby 10 12* be deleted. 10 13* B) Add constants identifying attributes that can be changed by user at 10 14* login, etc. 10 15* END HISTORY COMMENTS */ 10 16 10 17 10 18 /* Modified 82-01-03 E. N. Kittlitz. to declare a complete level-1 structure */ 10 19 10 20 /* format: style4 */ 10 21 dcl 1 user_attributes aligned based, /* the user user_attributes */ 10 22 (2 administrator bit (1), /* 1 system administrator privileges */ 10 23 2 primary_line bit (1), /* 2 user has primary-line privileges */ 10 24 2 nobump bit (1), /* 2 user cannot be bumped */ 10 25 2 guaranteed_login bit (1), /* 4 user has guaranteed login privileges */ 10 26 2 anonymous bit (1), /* 5 used only in SAT. project may have anon.users */ 10 27 2 nopreempt bit (1), /* 6 used only in PDT. user not preemptable by others 10 28* . of same project (distinct from "nobump") */ 10 29 2 nolist bit (1), /* 7 don't list user on "who" */ 10 30 2 dialok bit (1), /* 8 user may have multiple consoles */ 10 31 2 multip bit (1), /* 9 user may have several processes */ 10 32 2 bumping bit (1), /* 10 in SAT. Can users in project bump each other? */ 10 33 2 brief bit (1), /* 11 no login or logout message */ 10 34 2 vinitproc bit (1), /* 12 user may change initial procedure */ 10 35 2 vhomedir bit (1), /* 13 user may change homedir */ 10 36 2 nostartup bit (1), /* 14 user does not want start_up.ec */ 10 37 2 sb_ok bit (1), /* 15 user may be standby */ 10 38 2 pm_ok bit (1), /* 16 user may be primary */ 10 39 2 eo_ok bit (1), /* 17 user may be edit_only */ 10 40 2 daemon bit (1), /* 18 user may login as daemon */ 10 41 2 vdim bit (1), /* 19 * OBSOLETE * user may change outer mdle */ 10 42 2 no_warning bit (1), /* 20 no warning message */ 10 43 2 igroup bit (1), /* 21 in SAT: this project may give its users individual groups 10 44* . in PDT: this user has an individual load control group */ 10 45 2 save_pdir bit (1), /* 22 save pdir after fatal process error */ 10 46 2 disconnect_ok bit (1), /* 23 ok to save user's disconnected processes */ 10 47 2 save_on_disconnect bit (1), /* 24 save them unless -nosave login arg is given */ 10 48 2 pad bit (12)) unaligned; 10 49 10 50 dcl USER_ATTRIBUTE_NAMES (0:24) char (20) int static options (constant) init 10 51 ("none", /* 0 */ 10 52 "administrator", /* 1 */ 10 53 "primary_line", /* 2 */ 10 54 "nobump", /* 3 */ 10 55 "guaranteed_login", /* 4 */ 10 56 "anonymous", /* 5 */ 10 57 "nopreempt", /* 6 */ 10 58 "nolist", /* 7 */ 10 59 "dialok", /* 8 */ 10 60 "multip", /* 9 */ 10 61 "bumping", /* 10 */ 10 62 "brief", /* 11 */ 10 63 "vinitproc", /* 12 */ 10 64 "vhomedir", /* 13 */ 10 65 "nostartup", /* 14 */ 10 66 "no_secondary", /* 15 */ 10 67 "no_prime", /* 16 */ 10 68 "no_eo", /* 17 */ 10 69 "daemon", /* 18 */ 10 70 "", /* 19 vdim OBSOLETE */ 10 71 "no_warning", /* 20 */ 10 72 "igroup", /* 21 */ 10 73 "save_pdir", /* 22 */ 10 74 "disconnect_ok", /* 23 */ 10 75 "save_on_disconnect"); /* 24 */ 10 76 10 77 dcl ALT_USER_ATTRIBUTE_NAMES (0:24) char (20) int static options (constant) init 10 78 ("null", /* 0 */ 10 79 "admin", /* 1 */ 10 80 "", "", /* 2 - 3 */ 10 81 "guar", /* 4 */ 10 82 "anon", /* 5 */ 10 83 "", "", /* 6 - 7 */ 10 84 "dial", /* 8 */ 10 85 "multi_login", /* 9 */ 10 86 "preempting", /* 10 */ 10 87 "", /* 11 */ 10 88 "v_process_overseer", /* 12 */ 10 89 "v_home_dir", /* 13 */ 10 90 "no_start_up", /* 14 */ 10 91 "no_sec", /* 15 */ 10 92 "no_primary", /* 16 */ 10 93 "no_edit_only", /* 17 */ 10 94 "op_login", /* 18 */ 10 95 "", /* 19 */ 10 96 "nowarn", /* 20 */ 10 97 "", "", "", /* 21 - 23 */ 10 98 "save"); /* 24 */ 10 99 10 100 dcl USER_ATTRIBUTES_always_allowed bit (36) aligned int static 10 101 options(constant) init("000000000010000000010000000000000000"b); 10 102 /* SAT/PDT attributes not needed for user to give (brief, no_warning) */ 10 103 10 104 dcl USER_ATTRIBUTES_default_in_pdt bit (36) aligned int static 10 105 options(constant) init("000000000010000000010000000000000000"b); 10 106 /* PDT value for (brief, no_warning) is default */ 10 107 10 108 dcl USER_ATTRIBUTES_settable_by_user bit (36) aligned int static 10 109 options(constant) init("000100000110010000010000000000000000"b); 10 110 /* user MIGHT set (bump, ns, brief, guar, no_warning) */ 10 111 11 1 /* BEGIN INCLUDE FILE ... user_abs_attributes.incl.pl1 */ 11 2 11 3 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 11 4 /* */ 11 5 /* This include file describes the attributes of an absentee job. It is */ 11 6 /* used by user_table_entry.incl.pl1, abs_message_format.incl.pl1 */ 11 7 /* and PIT.incl.pl1. */ 11 8 /* */ 11 9 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 11 10 11 11 /****^ HISTORY COMMENTS: 11 12* 1) change(86-12-08,GDixon), approve(87-07-13,MCR7741), 11 13* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 11 14* Separated abs_attributes from the request structure 11 15* (abs_message_format.incl.pl1) so that the identical structure could be 11 16* used in the ute structure (user_table_entry.incl.pl1). 11 17* 2) change(87-04-19,GDixon), approve(87-07-13,MCR7741), 11 18* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 11 19* Added ABS_ATTRIBUTE_NAMES array. 11 20* 3) change(87-11-11,Parisek), approve(88-02-11,MCR7849), 11 21* audit(88-03-22,Lippard), install(88-07-13,MR12.2-1047): 11 22* Added the no_start_up flag. SCP6367 11 23* END HISTORY COMMENTS */ 11 24 11 25 dcl 1 user_abs_attributes aligned based, 11 26 2 restartable bit (1) unaligned, /* 1 if request may be started over from the beginning */ 11 27 2 user_deferred_until_time bit (1) unaligned, /* 1 if request was specified as deferred */ 11 28 2 proxy bit (1) unaligned, /* 1 if request submitted for someone else */ 11 29 2 set_bit_cnt bit (1) unaligned, /* 1 if should set bit count after every write call */ 11 30 2 time_in_gmt bit (1) unaligned, /* 1 if deferred_time is in GMT */ 11 31 2 user_deferred_indefinitely bit (1) unaligned, /* 1 if operator is to say when to run it */ 11 32 2 secondary_ok bit (1) unaligned, /* 1 if ok to log in as secondary foreground user */ 11 33 2 truncate_absout bit (1) unaligned, /* 1 if .absout is to be truncated */ 11 34 2 restarted bit (1) unaligned, /* 1 if job is restarted */ 11 35 2 no_start_up bit (1) unaligned, /* 1 if requested -ns */ 11 36 2 attributes_pad bit (26) unaligned; 11 37 11 38 dcl ABS_ATTRIBUTE_NAMES (10) char (28) varying int static options(constant) init( 11 39 "restartable", 11 40 "user_deferred_until_time", 11 41 "proxy", 11 42 "set_bit_cnt", 11 43 "time_in_gmt", 11 44 "user_deferred_indefinitely", 11 45 "secondary_ok", 11 46 "truncate_absout", 11 47 "restarted", 11 48 "no_start_up"); 11 49 11 50 /* END INCLUDE FILE ... user_abs_attributes.incl.pl1 */ 11 51 10 112 10 113 10 114 /* END INCLUDE FILE ... user_attributes.incl.pl1 */ 1385 1386 /* BEGIN INCLUDE FILE ... user_table_entry.incl.pl1 */ 12 2 12 3 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 12 4 /* */ 12 5 /* This include file requires that the user include */ 12 6 /* user_attributes.incl.pl1 as well. It also includes */ 12 7 /* abs_attributes.incl.pl1 itself. */ 12 8 /* */ 12 9 /* This include file must be included to use absentee_user_table.incl.pl1, */ 12 10 /* answer_table.incl.pl1, and daemon_user_table.incl.pl1. */ 12 11 /* */ 12 12 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 12 13 12 14 /****^ HISTORY COMMENTS: 12 15* 1) change(81-12-21,Gilcrease), approve(86-03-27,MCR7370), 12 16* audit(86-06-23,Lippard), install(86-06-30,MR12.0-1082): 12 17* This comment for hcom. 12 18* 81-12-21 E. N. Kittlitz. derived from abs_user_tab.incl.pl1, 12 19* anstbl.incl.pl1, and dutbl.incl.pl1. 12 20* 82-01-02 E. N. Kittlitz. user_attributes.incl.pl1 changes 12 21* 84-04-04 BIM added privileged_dial_server and dial_server_ring 12 22* 84-07-12 BIM added min_process_authorization 12 23* 84-12-31 Keith Loepere added pdir_dir_quota 12 24* 85-01-16 by E. Swenson to add ute.session_uid 12 25* 2) change(85-11-16,Swenson), approve(87-07-13,MCR7737), 12 26* audit(87-04-14,GDixon), install(87-08-04,MR12.1-1056): 12 27* Added fields for DSA login server support. 12 28* 3) change(86-03-27,Gilcrease), approve(86-03-27,MCR7370), 12 29* audit(86-06-23,Lippard), install(86-06-30,MR12.0-1082): 12 30* Add truncate_absout and restarted bit for -truncate absout, SCP6297. 12 31* 4) change(86-04-09,Herbst), approve(87-07-13,MCR7697), 12 32* audit(87-04-14,GDixon), install(87-08-04,MR12.1-1056): 12 33* Added disconnection_rel_minutes. 12 34* 5) change(86-12-08,GDixon), approve(87-07-13,MCR7741), 12 35* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 12 36* Changed structure under ute.abs_attributes to use like structure in 12 37* abs_attributes.incl.pl1. This allows the same attributes to be used 12 38* in abs_message_format.incl.pl1 and pit.incl.pl1 as well as this include 12 39* file. 12 40* 6) change(87-04-14,GDixon), approve(87-07-13,MCR7741), 12 41* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 12 42* Move constants for ute.pw_flags.mask_ctl from answer_table.incl.pl1. 12 43* 7) change(87-04-16,GDixon), approve(87-07-13,MCR7741), 12 44* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 12 45* A) Global reorganization to locate things by type of data. 12 46* B) Eliminate ute.uflags.logged_in. 12 47* 8) change(87-05-10,GDixon), approve(87-07-13,MCR7741), 12 48* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 12 49* A) Reduced overlength person and project fields to proper length. 12 50* B) Adjusted dialed-console section to begin on even word boundary. 12 51* 9) change(87-05-13,GDixon), approve(87-07-13,MCR7741), 12 52* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 12 53* Add ute.line_type. 12 54* 10) change(87-11-19,Parisek), approve(88-02-11,MCR7849), 12 55* audit(88-02-23,Lippard), install(88-07-13,MR12.2-1047): 12 56* Added the lowest_ring element. Used the upper half of ute.highest_ring 12 57* for the storage. SCP6367 12 58* END HISTORY COMMENTS */ 12 59 12 60 /* format: style4 */ 12 61 12 62 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 12 63 /* */ 12 64 /* Each of the named sections below defines a type of data. Typing comes */ 12 65 /* from data associated with the ute entry itself, with the person, with */ 12 66 /* login argument data, from the main user of the data (eg, dialup_, */ 12 67 /* load_ctl_, login server). Each section begins on a double-word boundary */ 12 68 /* and is an even number of words long. The total structure is 300 decimal */ 12 69 /* words long. */ 12 70 /* */ 12 71 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 12 72 12 73 12 74 dcl UTE_version_4 fixed bin internal static options (constant) init (4); 12 75 12 76 dcl utep pointer automatic init (null); 12 77 12 78 dcl 1 ute based (utep) aligned, /* individual entry in one of the user control tables */ 12 79 12 80 /* Variables which give state of this entry */ 12 81 2 active fixed bin, /* state of entry. 0=>free. see dialup_values.incl.pl1 */ 12 82 2 process_type fixed bin, /* 1=interactive, 2=absentee, 3=daemon */ 12 83 2 ute_index fixed bin, /* index of ute in (anstbl autbl dutbl).entry array */ 12 84 2 next_free fixed bin, /* points to previous free entry */ 12 85 12 86 /* Information user gave about person_id associated with this entry. */ 12 87 2 person char (24) unal, /* user's name */ 12 88 2 project char (12) unal, /* project of absentee user */ 12 89 2 tag char (1) unal, /* instance tag - someday will be generated */ 12 90 2 tag_pad bit (27) unal, 12 91 2 anonymous fixed bin, /* 1 if anonymous, otherwise 0 */ 12 92 2 login_flags, /* flags for login data */ 12 93 3 cpw bit (1) unal, /* flag for wish to change password */ 12 94 3 generate_pw bit (1) unal, /* flag meaning -generate_pw (-gpw) was used. */ 12 95 3 special_pw unal, /* dial or slave */ 12 96 4 dial_pw bit (1) unal, /* true if dial -user */ 12 97 4 slave_pw bit (1) unal, /* true if slave -user */ 12 98 3 cdp bit (1) unal, /* flag for wish to change default project */ 12 99 3 cda bit (1) unal, /* flag to change default authorization */ 12 100 3 auth_given bit (1) unal, /* flag to mean -authorization was used. */ 12 101 3 noprint bit (1) unal, /* used at logout. inhibits printing. */ 12 102 3 operator bit (1) unaligned, /* user specified -operator on login command line */ 12 103 3 pw_pad bit (25) unal, /* spare parts */ 12 104 3 mask_ctl bit (2) unal, /* bits controlling pw mask. See constants, below */ 12 105 /* Must remain last in pw_flags so it does not */ 12 106 /* appear in PW_FLAG_VALUES array below. */ 12 107 2 generated_pw char (8) unal, /* user must type this as new password */ 12 108 2 old_password char (8) unal, /* must match user's previous password (value scrambled) */ 12 109 2 process_authorization bit (72), /* access_authorization of this process */ 12 110 12 111 /* Information user gave about process associated with this entry. */ 12 112 2 outer_module char (32) unal, /* Name of console dim */ 12 113 2 home_dir char (64) unal, /* initial home directory */ 12 114 2 init_proc char (64) unal, /* name of login responder */ 12 115 2 ip_len fixed bin (17) unal, /* length of initproc string */ 12 116 2 ss_len fixed bin (17) unal, /* length of subsystem string */ 12 117 2 ur_at like user_attributes aligned, /* bits on means attributes given by user */ 12 118 2 at like user_attributes aligned, /* bits on means attribute is on */ 12 119 2 initial_ring fixed bin, /* ring process will be started in */ 12 120 2 arg_count fixed bin, /* number of arguments to absentee control segment */ 12 121 2 ln_args fixed bin, /* length of string containing arguments */ 12 122 2 arg_lengths_ptr ptr, /* pointer to array of argument lengths */ 12 123 2 args_ptr ptr, /* pointer to arguments to absentee control segment */ 12 124 12 125 /* Most of the following information is relevant only to absentee processes */ 12 126 2 input_seg char (168) unal, /* pathname of absentee control segment */ 12 127 2 output_seg char (168) unal, /* pathname of absentee output file */ 12 128 2 request_id fixed bin (71), /* time request was entered - used as uid of request */ 12 129 2 reservation_id fixed bin (71), /* nonzero if job has a resource reservation */ 12 130 2 message_id bit (72), /* message segment id assoc with absentee request */ 12 131 2 deferred_time fixed bin (71), /* time at which absentee process should be created */ 12 132 2 max_cpu_time fixed bin (35), /* maximum number of seconds this process can run */ 12 133 2 queue fixed bin, /* -1=daemon;0=interactive or foreground;>0=queue no. 12 134* (but see uflags.adjust_abs_q_no). */ 12 135 2 real_queue fixed bin, /* real queue number; ute.queue gets fudged sometimes */ 12 136 2 abs_attributes aligned like user_abs_attributes, /* include abs_attributes.incl.pl1 */ 12 137 2 abs_flags, 12 138 3 abs_run bit (1) unal, /* on if job was started by abs run command */ 12 139 3 notify bit (1) unal, /* on if user wants notification at login and logout */ 12 140 3 abs_flags_pad bit (34) unal, 12 141 2 abs_group char (8) unal, /* original group before load_ctl_ moves it to absentee group */ 12 142 2 sender char (32) unal, /* name of RJE station that job is from */ 12 143 2 proxy_person char (28) unal, /* name of user who actually entered the request, if proxy */ 12 144 2 proxy_project char (9) unal, 12 145 2 proxy_project_pad char (3) unal, 12 146 2 abs_pad fixed bin, 12 147 12 148 /* Information about process actually created */ 12 149 2 proc_id bit (36), /* process id of absentee process */ 12 150 2 session_uid fixed bin (35), /* Unique authentication session id */ 12 151 2 process_authorization_range (2) bit (72) aligned, 12 152 2 audit bit (36), /* audit flags for user */ 12 153 2 lot_size fixed bin, /* Size of linkage offset table */ 12 154 2 kst_size fixed bin, /* Size of process known segment table */ 12 155 2 cls_size fixed bin, /* Size of process combined linkage */ 12 156 2 sus_channel fixed bin (71), /* event channel on which suspended process is blocked */ 12 157 2 lowest_ring fixed bin (17) unal, /* lowest ring permitted */ 12 158 2 highest_ring fixed bin (17) unal, /* highest ring permitted */ 12 159 2 pdir_lvix fixed bin (17) unal, /* index in disk table of lv where pdir is */ 12 160 2 pdir_quota fixed bin (17) unal, /* process directory quota */ 12 161 2 pdir_dir_quota fixed bin (17) unal, /* process directory quota for dirs */ 12 162 2 pdir_pad fixed bin(17) unal, 12 163 2 process_pad fixed bin, 12 164 12 165 /* Information about primary terminal associated with this entry */ 12 166 2 tty_name char (32) unal, /* absentee=>"abs1", etc. daemon=>"bk", etc. */ 12 167 2 terminal_type char (32) unaligned, /* terminal type */ 12 168 2 line_type fixed bin, /* line type */ 12 169 2 tty_id_code char (4) unal, /* "none" for absentee */ 12 170 2 network_connection_type fixed bin, /* see net_event_message.incl.pl1 */ 12 171 2 channel ptr unal, /* points to CDT entry for user, if any */ 12 172 12 173 /* Variables useful for dialed terminals */ 12 174 2 ndialed_consoles fixed bin, /* if master, number of slaves */ 12 175 2 dial_qualifier char (22) unal, /* first argument to dial command */ 12 176 2 dial_server_ring fixed bin (3) unsigned unaligned, /* dial server intends to attach dialing in channels at this ring. */ 12 177 2 dial_server_flags, 12 178 3 registered_dial_server bit (1) unal, /* process is a registered dial server */ 12 179 3 privileged_dial_server bit (1) unal, /* "1"b -> serves range of AIM classes */ 12 180 3 dial_server_flags_pad bit (13) unal, /* fill out the word */ 12 181 2 dial_ev_chn fixed bin (71), /* if master, control event channel */ 12 182 12 183 /* Information about usage/accounting. Device usage meters are in a 12 184* separate segment, "devtab" */ 12 185 2 pdtep ptr, /* ptr to user's pdt entry, where usage meters live */ 12 186 2 cpu_this_process fixed bin (71), /* cpu used so far this process */ 12 187 2 cpu_usage fixed bin (71), /* total cpu time used in this session */ 12 188 2 mem_usage fixed bin (71), /* memory usage for previous processes in session */ 12 189 2 mem_this_process fixed bin (71), /* memory usage at last update */ 12 190 2 last_update_time fixed bin (71), /* time of last account update */ 12 191 2 session_cost float bin, /* dollar cost of session, for printing in logout messages */ 12 192 2 ndevices fixed bin, /* Count of attached devices */ 12 193 2 device_head fixed bin, /* Table index of head of device chain */ 12 194 2 device_tail fixed bin, /* Table index of tail of device chain */ 12 195 2 rs_number fixed bin (6) unsigned unal, /* rate structure number */ 12 196 2 rs_number_pad bit(30) unal, 12 197 2 usage_pad fixed bin, 12 198 12 199 /* Information for dialup_ (control variables). */ 12 200 2 event fixed bin (71), /* event associated with channel or user manager */ 12 201 2 uprojp ptr, /* ptr to user project sat entry */ 12 202 2 login_time fixed bin (71), /* time when absentee user approved by lg_ctl_ */ 12 203 2 cant_bump_until fixed bin (71), /* bump-protection clock */ 12 204 2 recent_fatal_error_time fixed bin (71), /* time of first error in the suspected loop */ 12 205 2 recent_fatal_error_count fixed bin, /* counter to detect fatal process error loops */ 12 206 2 failure_reason fixed bin, /* why login refused 1=lg_ctl, 2=act_ctl, 3=load_ctl */ 12 207 2 count fixed bin, /* counter for logins and dialups */ 12 208 2 n_processes fixed bin, /* number of processes created in this session */ 12 209 2 lock_value fixed bin, /* number of locks set for this entry */ 12 210 2 login_result fixed bin, /* 0=logged in;1=hopeless,hang him up;2=allow another attempt */ 12 211 2 login_code char (8) unal, /* login command from LOGIN line */ 12 212 2 preempted fixed bin, /* if ^= 0 user preempted (never for abs) */ 12 213 2 destroy_flag fixed bin, /* >8 when awaiting destroy */ 12 214 2 logout_type char (4) unal, /* type of logout */ 12 215 2 logout_index fixed bin, /* to save logout handler index while waiting for termsgnl */ 12 216 2 disconnection_rel_minutes fixed bin (17) unal, /* disconnected this many minutes after login_time */ 12 217 2 next_disconnected_ate_index fixed bin (17) unal, /* thread of list of user's disconnected processes */ 12 218 2 work_class fixed bin, /* work class used by priority scheduler */ 12 219 2 group char (8) unal, /* party group identifier */ 12 220 2 whotabx fixed bin, /* index of user's entry in whotab */ 12 221 12 222 2 uflags, /* Miscellaneous flags */ 12 223 3 dont_call_init_admin bit (1) unal, /* Call overseer directly */ 12 224 3 ip_given bit (1) unal, /* user gave an initproc arg on login line */ 12 225 3 ss_given bit (1) unal, /* initial_procedure contains a subsystem name */ 12 226 3 lvs_attached bit (1) unal, /* set and used by the lv_request_ procedure */ 12 227 3 send_initial_string bit (1) unal, /* initial string should be sent after login line read */ 12 228 3 adjust_abs_q_no bit (1) unal, /* this is an absentee job; user_profile.queue is NOT true Q # */ 12 229 3 foreground_secondary_ok bit (1) unal, /* ok to login foreground absentee job as secondary */ 12 230 3 foreground_job bit (1) unal, /* job was originally from foreground queue */ 12 231 3 sus_sent bit (1) unal, /* sus_ ips signal has been sent to process */ 12 232 3 suspended bit (1) unal, /* process has responded to sus_ signal */ 12 233 3 ignore_cpulimit bit (1) unal, /* process is released, but timer can't be turned off */ 12 234 3 deferral_logged bit (1) unal, /* abs job deferral has already been logged once */ 12 235 3 save_if_disconnected bit (1) unal, /* user wants process preserved across hangups */ 12 236 3 disconnected bit (1) unal, /* process is disconnected from terminal */ 12 237 3 disconnected_list bit (1) unal, /* this ate is on a list of disconnected processes */ 12 238 3 proc_create_ok bit (1) unal, /* lg_ctl_ has set the process creation variables */ 12 239 3 activity_can_unbump bit (1) unal, /* only bump pending is for inactivity */ 12 240 3 fpe_causes_logout bit (1) unal, /* "1"b means don't try to new_proc after fatal process error */ 12 241 3 user_specified_immediate bit (1) unal, /* "1"b -> don't wait around for process destruction. */ 12 242 3 uflags_pad bit (17) unal, 12 243 12 244 /* Information used by load_ctl_ for the process */ 12 245 2 user_weight fixed bin, /* usually 10 - used in load control */ 12 246 2 standby_line fixed bin, /* 0=user has primary line, 1=standby user */ 12 247 2 bump_grace fixed bin (71), /* bump grace in microseconds */ 12 248 12 249 12 250 /* Information for login server */ 12 251 2 login_server_info, 12 252 3 our_handle bit (72) aligned, /* how LS refers to us. */ 12 253 3 his_handle bit (72) aligned, /* how we talk to LS */ 12 254 3 termination_event_channel fixed bin (71), /* for process termination notifications to the LS */ 12 255 3 response_event_channel fixed bin (71), /* for other communications with the LS */ 12 256 3 process_id bit (36) aligned, /* process_id of login server */ 12 257 2 ls_pad (5) fixed bin; /* pad to 300 decimal words */ 12 258 12 259 /* values for ute.process_type */ 12 260 12 261 dcl (PT_INTERACTIVE initial (1), 12 262 PT_ABSENTEE initial (2), 12 263 PT_DAEMON initial (3)) fixed bin internal static options (constant); 12 264 12 265 dcl PROCESS_TYPE_NAMES (0:3) char(12) varying int static options(constant) init( 12 266 "INVALID-TYPE", 12 267 "interactive", 12 268 "absentee", 12 269 "daemon"); 12 270 12 271 dcl TABLE_NAMES (0:3) char(20) int static options(constant) init( 12 272 "UNKNOWN-TABLE", 12 273 "answer_table", 12 274 "absentee_user_table", 12 275 "daemon_user_table"); 12 276 12 277 12 278 /* values for ute.pw_flags.mask_ctl */ 12 279 12 280 dcl (DO_MASK init ("00"b), 12 281 DONT_MASK init ("01"b), 12 282 DERIVE_MASK init ("10"b)) bit (2) internal static options (constant); 12 283 12 284 dcl MASK_CTL_NAMES (0:3) char(12) varying int static options(constant) init( 12 285 "do_mask", "dont_mask", "derive_mask", ""); 12 286 12 287 12 288 /* names for ute.pw_flags */ 12 289 12 290 dcl PW_FLAG_NAMES (9) char (12) varying int static options(constant) init( 12 291 "cpw", 12 292 "generate_pw", 12 293 "dial_pw", 12 294 "slave_pw", 12 295 "cdp", 12 296 "cda", 12 297 "auth_given", 12 298 "noprint", 12 299 "operator"); 12 300 12 301 /* names for ute.uflags */ 12 302 12 303 dcl UFLAG_NAMES (19) char (24) varying int static options (constant) init ( 12 304 "dont_call_init_admin", 12 305 "ip_given", 12 306 "ss_given", 12 307 "lvs_attached", 12 308 "send_initial_string", 12 309 "adjust_abs_q_no", 12 310 "foreground_secondary_ok", 12 311 "foreground_job", 12 312 "sus_sent", 12 313 "suspended", 12 314 "ignore_cpulimit", 12 315 "deferral_logged", 12 316 "save_if_disconnected", 12 317 "disconnected", 12 318 "disconnected_list", 12 319 "proc_create_ok", 12 320 "activity_can_unbump", 12 321 "fpe_causes_logout", 12 322 "user_specified_immediate"); 12 323 12 324 /* names for ute.abs_flags */ 12 325 12 326 dcl ABS_FLAG_NAMES (2) char (8) varying int static options (constant) init ( 12 327 "abs_run", 12 328 "notify"); 12 329 12 330 /* names of ute.dial_server_flags */ 12 331 12 332 dcl DIAL_SERVER_FLAG_NAMES (2) char (12) varying int static options (constant) init ( 12 333 "registered", 12 334 "privileged"); 12 335 12 336 /* values of ute.login_result */ 12 337 12 338 dcl LOGIN_RESULT_VALUES (0:2) char(24) varying int static options(constant) init( 12 339 "logged in", 12 340 "login failed, hangup", 12 341 "login failed, try again"); 12 342 12 343 /* END INCLUDE FILE ... user_table_entry.incl.pl1 */ 1386 1387 1388 end display_user_messages; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 07/13/88 0937.9 display_user_messages.pl1 >special_ldd>install>MR12.2-1047>display_user_messages.pl1 1374 1 03/08/85 0852.7 as_com_channel_info.incl.pl1 >ldd>include>as_com_channel_info.incl.pl1 1375 2 03/08/85 0852.6 as_user_message_aread.incl.pl1 >ldd>include>as_user_message_aread.incl.pl1 1378 3 03/08/85 0852.7 as_user_message_info.incl.pl1 >ldd>include>as_user_message_info.incl.pl1 1379 4 08/06/87 0913.4 dialup_values.incl.pl1 >ldd>include>dialup_values.incl.pl1 1380 5 09/24/84 1459.2 dump_segment_format.incl.pl1 >ldd>include>dump_segment_format.incl.pl1 1381 6 08/06/87 0913.4 login_server_messages.incl.pl1 >ldd>include>login_server_messages.incl.pl1 1382 7 07/15/86 2005.5 ls_connection_message.incl.pl1 >ldd>include>ls_connection_message.incl.pl1 1383 8 08/06/87 0913.5 system_message.incl.pl1 >ldd>include>system_message.incl.pl1 1384 9 08/06/87 0913.6 user_message_handles.incl.pl1 >ldd>include>user_message_handles.incl.pl1 1385 10 08/06/87 0913.6 user_attributes.incl.pl1 >ldd>include>user_attributes.incl.pl1 10-112 11 07/13/88 0900.1 user_abs_attributes.incl.pl1 >special_ldd>install>MR12.2-1047>user_abs_attributes.incl.pl1 1386 12 07/13/88 0903.2 user_table_entry.incl.pl1 >special_ldd>install>MR12.2-1047>user_table_entry.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. ALLOW_AF constant fixed bin(17,0) initial dcl 281 ref 296 ALLOW_COMMAND constant fixed bin(17,0) initial dcl 281 set ref 116* 294 ALLOW_COMMAND_AF constant fixed bin(17,0) initial dcl 281 ref 298 AS_COM_CHANNEL_INFO_VERSION_1 000102 constant char(8) initial dcl 1-30 ref 621 AS_USER_MESSAGE_ADMIN_READ_INFO_VERSION_1 000100 constant char(8) initial packed unaligned dcl 2-15 ref 1107 AS_USER_MESSAGE_INFO_VERSION_1 000076 constant char(8) initial dcl 3-33 ref 192 AUMI_ARRAY_INCREMENT constant fixed bin(17,0) initial dcl 171 ref 178 182 CODE_ARG 000216 constant fixed bin(17,0) initial dcl 866 set ref 870* 892* COLUMN_1 constant fixed bin(17,0) initial dcl 826 ref 837 COLUMN_GUTTER constant fixed bin(17,0) initial dcl 826 ref 837 838 COMMAND_VERSION 000114 constant char(3) initial packed unaligned dcl 80 set ref 114* CONTINUATION_LINE 000112 constant char(8) initial packed unaligned dcl 82 ref 377 491 569 DO_NOT_BLOCK 000150 constant fixed bin(17,0) initial dcl 85 set ref 792* FALSE constant bit(1) initial packed unaligned dcl 866 in procedure "error" ref 880 FALSE constant bit(1) initial packed unaligned dcl 1053 in procedure "vowel" ref 1058 FALSE constant bit(1) initial packed unaligned dcl 914 in procedure "get_arg" ref 922 FALSE constant bit(1) initial packed unaligned dcl 932 in procedure "get_ctl_arg" ref 942 FALSE constant bit(1) initial packed unaligned dcl 87 in procedure "display_user_messages" ref 193 1100 1259 1263 1313 FALSE constant bit(1) initial packed unaligned dcl 1015 in procedure "get_opt" ref 1036 1038 FALSE constant bit(1) initial packed unaligned dcl 967 in procedure "get_bit36_opt" ref 991 999 1001 LOGIN_SERVER_DIAL_RESPONSE_VERSION_1 000042 constant char(8) initial packed unaligned dcl 6-378 ref 535 LOGIN_SERVER_LIST_RESPONSE_VERSION_1 000044 constant char(8) initial packed unaligned dcl 6-360 ref 524 LOGIN_SERVER_NEW_PROC_RESPONSE_VERSION_1 000036 constant char(8) initial packed unaligned dcl 6-420 ref 585 LOGIN_SERVER_OPERATOR_RESPONSE_VERSION_1 000034 constant char(8) initial packed unaligned dcl 6-438 ref 599 LOGIN_SERVER_PROCESS_RESPONSE_VERSION_1 000046 constant char(8) initial packed unaligned dcl 6-341 ref 479 LOGIN_SERVER_TERMINATION_RESPONSE_VERSION_1 000040 constant char(8) initial packed unaligned dcl 6-407 ref 554 LS_CONNECTION_MESSAGE_V1 000032 constant char(8) initial packed unaligned dcl 7-48 ref 402 LS_DIAL_RESPONSE constant fixed bin(17,0) initial dcl 6-228 ref 533 LS_LIST_RESPONSE constant fixed bin(17,0) initial dcl 6-228 ref 522 LS_MSG_CONNECTED constant fixed bin(17,0) initial dcl 7-50 ref 403 LS_MSG_DISCONNECTED constant fixed bin(17,0) initial dcl 7-51 ref 405 LS_NEW_PROC_RESPONSE constant fixed bin(17,0) initial dcl 6-228 ref 583 LS_OPERATOR_RESPONSE constant fixed bin(17,0) initial dcl 6-228 ref 597 LS_PROCESS_RESPONSE constant fixed bin(17,0) initial dcl 6-228 ref 477 LS_RESPONSE_TYPES 000052 constant char(10) initial array packed unaligned dcl 6-238 ref 443 443 448 LS_TERMINATION_RESPONSE constant fixed bin(17,0) initial dcl 6-228 ref 552 LS_UNKNOWN_RESPONSE constant fixed bin(17,0) initial dcl 6-228 ref 452 LS_VALIDATE_RESPONSE constant fixed bin(17,0) initial dcl 6-228 ref 455 LS_VALIDATE_RESPONSE_VERSION_1 000050 constant char(8) initial packed unaligned dcl 6-297 ref 457 ME 000104 constant char(21) initial packed unaligned dcl 90 set ref 114* 1305* SYSTEM_MESSAGE_HANDLE 000004 constant bit(72) initial dcl 9-26 ref 364 SYSTEM_MESSAGE_TYPES 000010 constant varying char(12) initial array dcl 8-60 ref 369 369 372 SYSTEM_MESSAGE_VERSION_1 000030 constant char(8) initial packed unaligned dcl 8-27 ref 368 TRUE constant bit(1) initial packed unaligned dcl 866 in procedure "error" ref 873 895 TRUE constant bit(1) initial packed unaligned dcl 967 in procedure "get_bit36_opt" ref 993 TRUE constant bit(1) initial packed unaligned dcl 932 in procedure "get_ctl_arg" ref 936 TRUE constant bit(1) initial packed unaligned dcl 914 in procedure "get_arg" ref 920 TRUE constant bit(1) initial packed unaligned dcl 1053 in procedure "vowel" ref 1056 TRUE constant bit(1) initial packed unaligned dcl 1015 in procedure "get_opt" ref 1026 TRUE constant bit(1) initial packed unaligned dcl 87 in procedure "display_user_messages" ref 194 195 787 788 789 790 791 806 1099 1135 1257 1261 USER_MESSAGE_LS_CONNECTION_INFO_HANDLE 000006 constant bit(72) initial dcl 9-20 ref 397 USER_MESSAGE_LS_CONNECTION_INFO_HANDLE_LOWER_18 constant bit(18) initial dcl 9-23 ref 430 430 430 ZERO_BITS 000000 constant bit(72) initial dcl 1213 ref 1236 ZERO_OFFSET 000201 constant fixed bin(18,0) initial dcl 92 set ref 792* accounting_message 57 based char level 3 dcl 6-303 ref 515 accounting_message_length 56 based fixed bin(17,0) level 3 dcl 6-303 ref 512 515 accounting_message_struc 56 based structure level 2 dcl 6-303 addr builtin function dcl 72 ref 184 191 210 226 231 366 367 399 401 439 442 772 792 792 792 1344 1344 1344 1344 1344 1344 1353 1359 af_sw 003535 automatic bit(1) dcl 255 set ref 293* 294 296 299 after builtin function dcl 72 ref 1076 1078 1078 1151 1154 1154 1166 1169 1169 after_message_id 26 003572 automatic bit(72) level 2 dcl 1377 set ref 1113* 1340* 1348* allowed parameter fixed bin(17,0) dcl 288 ref 285 294 296 298 arg parameter char packed unaligned dcl 1070 in procedure "group_id" ref 1067 1073 1074 1076 1078 arg based char packed unaligned dcl 255 in procedure "display_user_messages" set ref 936 939* 1257 1257 1259 1259 1261 1261 1263 1263 1266 1266 1267* 1270 1270 1271* 1275 1275 1275 1276* 1279 1279 1279 1279 1279 1279 1282* 1286 1286 1287* 1291 1291 1292* 1296 1296 1297* 1300 1300 1300 1301* 1305 1305* 1309* arg_name parameter char packed unaligned dcl 962 in procedure "get_bit36_opt" set ref 959 976 986* 986* 996* arg_name parameter char packed unaligned dcl 1012 in procedure "get_opt" set ref 1009 1033* argl 003536 automatic fixed bin(21,0) dcl 255 set ref 919* 936 939 939 1257 1257 1259 1259 1261 1261 1263 1263 1266 1266 1267 1267 1270 1270 1271 1271 1275 1275 1275 1276 1276 1279 1279 1279 1279 1279 1279 1282 1282 1286 1286 1287 1287 1291 1291 1292 1292 1296 1296 1297 1297 1300 1300 1300 1301 1301 1305 1305 1305 1309 1309 argn 003542 automatic fixed bin(17,0) dcl 255 set ref 293* 917 980 1019 argp 003540 automatic pointer dcl 255 set ref 919* 936 939 1257 1257 1259 1259 1261 1261 1263 1263 1266 1266 1267 1270 1270 1271 1275 1275 1275 1276 1279 1279 1279 1279 1279 1279 1282 1286 1286 1287 1291 1291 1292 1296 1296 1297 1300 1300 1300 1301 1305 1305 1309 argx 003543 automatic fixed bin(17,0) dcl 255 set ref 301* 917 918* 918 919* 980 982* 982 983* 1019 1020* 1020 1021* 1023* 1023 array 2 000264 automatic structure array level 2 in structure "auto_aumi_struct" dcl 159 in procedure "display_user_messages" set ref 209 array 2 based structure array level 2 in structure "aumi_struct" dcl 151 in procedure "display_user_messages" set ref 191 226 1353 1359 as_com_channel_info based structure level 1 dcl 1-9 ref 621 as_com_channel_info_ptr 003570 automatic pointer dcl 1-8 set ref 442* 621 621 627 as_user_message_admin_read_info based structure level 1 dcl 2-5 as_user_message_info based structure level 1 dcl 3-8 ascii 0(04) 003622 automatic bit(1) level 2 packed packed unaligned dcl 5-10 set ref 788* aumari 003572 automatic structure level 1 dcl 1377 set ref 1344 1344 aumi based structure level 1 dcl 164 set ref 1344 1344 aumi_message based fixed bin(35,0) array dcl 169 set ref 227 757* 780* 792 792 792 792 834* 1175* 1181* aumi_message_time based fixed bin(71,0) dcl 167 set ref 772* aumi_ptr 003532 automatic pointer dcl 166 set ref 191* 192 193 194 195 196 197 226* 227 227 228 757 757 757 757 757 757 757 757 757 765 765 767 767 767 770 770 772 774 774 777 777 779 780 780 780 780 780 784 792 792 792 792 792 792 830 832 834 834 834 834 834 1136 1139 1142 1145 1149 1151 1154 1160 1160 1160 1160 1163 1166 1169 1175 1175 1175 1175 1175 1181 1181 1181 1181 1181 1344 1344 1348 1353* 1359* aumi_struct based structure level 1 dcl 151 set ref 179 181* 181 184 222 231 aumi_struct_count 000256 automatic fixed bin(17,0) dcl 157 set ref 178* 179 179 aumi_struct_ptr 000260 automatic pointer dcl 158 set ref 177 177 178 180 181 182 184 184 186* 190 191 198 210* 220 224 225 226 231 231 1346 1346 1351 1353 1358 1359 auto_aumi_struct 000264 automatic structure level 1 dcl 159 set ref 184 210 231 ax 003534 automatic fixed bin(17,0) dcl 170 set ref 190* 191 198 224* 225 226* 1351* 1353* 1358* 1359* before builtin function dcl 72 ref 757 757 757 757 830 832 1074 1076 1149 1151 1163 1166 begin 003560 automatic structure level 1 dcl 738 set ref 810* bit_opt 003544 automatic varying bit(72) dcl 255 set ref 984* 1276 1282 1287 1292 bits 003746 automatic varying bit(73) dcl 1205 set ref 1226* 1228* 1228 1231 1236* 1236 1236 1238 brief_sw 000100 automatic bit(1) dcl 33 set ref 374 471 490 546 565 610 625 750 1099* 1257* 1259* 1313* 1351 caller 5 based char(64) level 2 dcl 8-31 ref 376 channel_name 2 based char(32) level 2 dcl 1-9 ref 627 char builtin function dcl 72 ref 383 class parameter bit(72) dcl 330 set ref 327 341* class_str 000106 automatic char(256) packed unaligned dcl 332 set ref 341* 344* 346 cleanup 000250 stack reference condition dcl 75 ref 113 code 000206 automatic fixed bin(35,0) dcl 332 in procedure "cv_access_class" set ref 341* 342 343 code 003664 automatic fixed bin(35,0) dcl 965 in procedure "get_bit36_opt" set ref 984* 985 code 000100 automatic fixed bin(35,0) dcl 696 in procedure "cv_target" set ref 712* 714 code parameter fixed bin(35,0) dcl 668 in procedure "cv_status_code" set ref 665 676 678* code 000101 automatic fixed bin(35,0) dcl 34 in procedure "display_user_messages" set ref 114* 1341* 1342 1344* 1346 1364 1364* code based fixed bin(35,0) dcl 858 in procedure "error" set ref 871 872 872* 893 894 894* code parameter fixed bin(35,0) dcl 1203 in procedure "oct_to_bit" set ref 1198 1219* 1222* 1232* codep 000100 automatic pointer dcl 858 set ref 870* 871 872 872 892* 893 894 894 common based structure level 2 dcl 7-40 connected 33(03) based bit(1) level 4 packed packed unaligned dcl 6-303 ref 497 connection_name 2 based char(32) level 3 dcl 7-40 ref 415 convert_access_class_$to_string_short 000054 constant entry external dcl 335 ref 341 convert_status_code_ 000062 constant entry external dcl 673 ref 678 count based fixed bin(17,0) level 2 in structure "aumi_struct" dcl 151 in procedure "display_user_messages" set ref 177 190 198* 224 1346* 1346 1351 1358 count 000264 automatic fixed bin(17,0) level 2 in structure "auto_aumi_struct" dcl 159 in procedure "display_user_messages" set ref 208* created 33(02) based bit(1) level 4 packed packed unaligned dcl 6-303 ref 495 cu_$arg_list_ptr 000032 constant entry external dcl 270 in procedure "display_user_messages" ref 114 114 cu_$arg_list_ptr 000066 constant entry external dcl 861 in procedure "error" ref 874 874 897 897 cu_$arg_ptr 000070 constant entry external dcl 861 ref 870 892 cu_$generate_call 000072 constant entry external dcl 861 ref 874 897 date_time_$format 000010 constant entry external dcl 59 ref 772 destination_info 32 000264 automatic structure array level 3 in structure "auto_aumi_struct" dcl 159 in procedure "display_user_messages" destination_info 32 based structure array level 3 in structure "aumi_struct" dcl 151 in procedure "display_user_messages" destination_info 30 based structure level 2 in structure "aumi" dcl 164 in procedure "display_user_messages" set ref 757* 757* 767* 832* 1160* destination_info 30 based structure level 2 in structure "as_user_message_info" dcl 3-8 in procedure "display_user_messages" destroyed 33(05) based bit(1) level 4 packed packed unaligned dcl 6-303 ref 503 digit 003752 automatic fixed bin(17,0) dcl 1206 set ref 1227* 1228* dimension builtin function dcl 72 ref 209 621 792 792 dont_delete 2(04) based bit(1) level 3 packed packed unaligned dcl 164 set ref 195* dump_segment_ 000012 constant entry external dcl 62 ref 792 dump_segment_format based bit(36) packed unaligned dcl 5-8 set ref 792* dump_segment_format_structure 003622 automatic structure level 1 dcl 5-10 set ref 786* 792 entry_var 000102 automatic entry variable dcl 35 set ref 1337* error_occurred_sw 003567 automatic bit(1) packed unaligned dcl 853 set ref 873* 880* 886 895* error_table_$active_function 000050 external static fixed bin(35,0) dcl 289 set ref 294* error_table_$bad_arg 000074 external static fixed bin(35,0) dcl 932 in procedure "get_ctl_arg" set ref 939* error_table_$bad_arg 000076 external static fixed bin(35,0) dcl 967 in procedure "get_bit36_opt" set ref 986* error_table_$bad_arg 000022 external static fixed bin(35,0) dcl 97 in procedure "display_user_messages" set ref 1305* error_table_$bad_conversion 000104 external static fixed bin(35,0) dcl 1216 ref 1222 error_table_$bad_opt 000024 external static fixed bin(35,0) dcl 97 set ref 1309* error_table_$no_message 000026 external static fixed bin(35,0) dcl 97 ref 1364 error_table_$noarg 000102 external static fixed bin(35,0) dcl 1015 in procedure "get_opt" set ref 1033* error_table_$noarg 000100 external static fixed bin(35,0) dcl 967 in procedure "get_bit36_opt" set ref 996* error_table_$not_act_fnc 000052 external static fixed bin(35,0) dcl 289 set ref 296* error_table_$size_error 000106 external static fixed bin(35,0) dcl 1216 ref 1232 error_table_$smallarg 000056 external static fixed bin(35,0) dcl 339 ref 343 exclude 000106 automatic varying char(100) dcl 36 set ref 1102* 1180 1181 1301* fatal_error 23(04) based bit(1) level 3 packed packed unaligned dcl 6-385 ref 572 fixed_part based structure level 2 dcl 6-303 flags 22 based structure level 2 in structure "login_server_termination_response" dcl 6-385 in procedure "display_user_messages" flags 2 based structure level 2 in structure "aumi" dcl 164 in procedure "display_user_messages" set ref 193* flags 33 based structure level 3 in structure "login_server_process_response" dcl 6-303 in procedure "display_user_messages" get_system_free_area_ 000014 constant entry external dcl 65 ref 1117 get_userid_$info 000064 constant entry external dcl 702 ref 712 group 000101 automatic varying char(32) dcl 696 in procedure "cv_target" set ref 715* 716* 716 717* 717 718* 718 719* 719 720 group 003710 automatic structure level 1 dcl 1071 in procedure "group_id" set ref 1080 group_id 17 based char(32) level 3 in structure "aumi" packed packed unaligned dcl 164 in procedure "display_user_messages" set ref 757 757 757* 765* 780* 830 834* 1149 1151 1154 1175* 1181* group_id parameter char(32) level 2 in structure "target" packed packed unaligned dcl 693 in procedure "cv_target" ref 707 709 709 709 group_id 30 based char(32) level 3 in structure "aumi" packed packed unaligned dcl 164 in procedure "display_user_messages" set ref 757* 780* 834* 1160 1160 1160* 1163 1166 1169 1175* 1181* handle parameter bit(72) dcl 359 ref 355 364 397 430 430 hbound builtin function dcl 72 ref 369 443 header based structure level 2 dcl 8-23 id 000177 automatic char(32) level 2 in structure "source" dcl 40 in procedure "display_user_messages" set ref 1148 id 000224 automatic char(32) level 2 in structure "target" dcl 48 in procedure "display_user_messages" set ref 1159 id 003710 automatic char(32) level 2 in structure "group" dcl 1071 in procedure "group_id" set ref 1073* index builtin function dcl 72 in procedure "display_user_messages" ref 1022 1175 1181 1305 index builtin function dcl 930 in procedure "get_ctl_arg" ref 936 integer parameter char packed unaligned dcl 1201 ref 1198 1221 1227 1228 interpreted_data 0(14) 003622 automatic bit(1) level 2 packed packed unaligned dcl 5-10 set ref 790* io_module_name 12 based char(32) level 3 dcl 7-40 ref 413 ioa_ 000016 constant entry external dcl 66 ref 752 757 764 765 767 770 772 774 777 779 780 785 896 ioa_$rsnnl 000060 constant entry external dcl 655 ref 657 iox_$user_output 000030 external static pointer dcl 100 set ref 792* lbound builtin function dcl 72 ref 369 443 length builtin function dcl 1211 in procedure "oct_to_bit" ref 1227 1231 1236 length builtin function dcl 72 in procedure "display_user_messages" ref 430 430 430 807 808 809 830 832 834 linkage_error 000000 stack reference condition dcl 75 ref 1333 1338 login_server_dial_response based structure level 1 dcl 6-366 login_server_new_proc_response based structure level 1 dcl 6-414 login_server_operator_response based structure level 1 dcl 6-426 login_server_process_response based structure level 1 dcl 6-303 login_server_response_header based structure level 1 dcl 6-258 login_server_termination_response based structure level 1 dcl 6-385 login_server_validate_response based structure level 1 dcl 6-267 long 000210 automatic char(100) dcl 670 set ref 678* 681 ls_connection_message based structure level 1 dcl 7-40 ls_connection_message_common based structure level 1 dcl 7-32 ls_connection_message_ptr 003626 automatic pointer dcl 7-25 set ref 401* 402 403 405 409 409 413 415 420 ls_request_header based structure level 1 dcl 6-54 ls_response_ptr 003624 automatic pointer dcl 6-254 set ref 442* 443 443 448 452 455 457 460 466 469 471 477 479 482 488 492 495 497 500 503 506 506 510 512 515 522 524 527 533 535 538 544 546 552 554 557 563 566 570 572 577 583 585 588 592 597 599 602 608 611 611 614 ltrim builtin function dcl 72 ref 383 match 000140 automatic varying char(100) dcl 36 set ref 1102* 1174 1175 1297* matching_entries 003562 automatic fixed bin(17,0) dcl 740 set ref 748* 748 805* 818 max builtin function dcl 72 ref 830 832 834 max_bits parameter fixed bin(17,0) dcl 1202 in procedure "oct_to_bit" ref 1198 1231 1236 max_bits 003665 automatic fixed bin(17,0) dcl 966 in procedure "get_bit36_opt" set ref 973* 978* 984* max_count 1 based fixed bin(17,0) level 2 in structure "aumi_struct" dcl 151 in procedure "display_user_messages" set ref 177 178 179* 180* 180 181 182* 182 184 222 231 max_count 1 000264 automatic fixed bin(17,0) level 2 in structure "auto_aumi_struct" dcl 159 in procedure "display_user_messages" set ref 209* message parameter fixed bin(35,0) array dcl 360 set ref 355 366 367 399 401 439 442 621 message_access_class 12 based bit(72) level 3 dcl 164 set ref 774 774* message_coordinator 33(08) based bit(1) level 4 packed packed unaligned dcl 6-303 ref 492 message_handle 14 based bit(72) level 3 in structure "aumi" dcl 164 in procedure "display_user_messages" set ref 757* 770* 780* 834* 1139 1175* 1181* message_handle 000172 automatic bit(72) dcl 37 in procedure "display_user_messages" set ref 1103* 1139 1139 1292* message_id 000174 automatic bit(72) dcl 38 in procedure "display_user_messages" set ref 1103* 1136 1136 1287* message_id 10 based bit(72) level 3 in structure "aumi" dcl 164 in procedure "display_user_messages" set ref 770* 772 1136 1348 message_info 4 based structure level 2 in structure "aumi" dcl 164 in procedure "display_user_messages" message_info 6 based structure array level 3 in structure "aumi_struct" dcl 151 in procedure "display_user_messages" message_length 6 based fixed bin(18,0) level 3 dcl 164 set ref 197* 227 757 779* 780 784 792 792 834 1175 1181 message_ptr 4 based pointer level 3 in structure "aumi" dcl 164 in procedure "display_user_messages" set ref 196* 227 228* 757 780 792 792 792 792 834 1175 1181 message_ptr 6 based pointer array level 4 in structure "aumi_struct" dcl 151 in procedure "display_user_messages" set ref 225 message_ring 16 based fixed bin(3,0) level 3 dcl 164 set ref 777 777* message_type based fixed bin(17,0) level 2 dcl 6-258 ref 443 443 448 452 455 477 522 533 552 583 597 need_heading 003563 automatic bit(1) dcl 741 set ref 751 755* 806* new_proc 33(04) based bit(1) level 4 in structure "login_server_process_response" packed packed unaligned dcl 6-303 in procedure "display_user_messages" ref 500 new_proc 23(03) based bit(1) level 3 in structure "login_server_termination_response" packed packed unaligned dcl 6-385 in procedure "display_user_messages" ref 570 new_process_id 10 based bit(36) level 2 dcl 6-414 set ref 592* no_handle_given 2(02) based bit(1) level 3 packed packed unaligned dcl 164 set ref 194* null builtin function dcl 72 ref 12-76 187 196 211 220 222 225 228 318 366 399 439 1097 oct_bits 000002 constant bit(3) initial array packed unaligned dcl 1207 ref 1228 octal_id 000100 automatic char(13) packed unaligned dcl 653 set ref 657* 658 octal_sw 000176 automatic bit(1) dcl 39 set ref 784 1100* 1261* 1263* 1313 offset 0(01) 003622 automatic bit(1) level 2 packed packed unaligned dcl 5-10 set ref 787* ok_so_far 000106 automatic bit(1) packed unaligned dcl 1133 set ref 1135* 1136 1136* 1139 1139* 1142 1142* 1145 1145* 1148 1149* 1151 1151* 1154 1154* 1159 1163* 1166 1166* 1169 1169* 1174 1175* 1180 1181* 1186 opt based char packed unaligned dcl 255 set ref 984* 986* 1022 1267* 1271* 1297 1301 opt_desc parameter char packed unaligned dcl 1012 in procedure "get_opt" set ref 1009 1030 1033* 1033* 1033* opt_desc parameter char packed unaligned dcl 962 in procedure "get_bit36_opt" set ref 959 976 986* 986* 986* 995 996* 996* 996* optl 003547 automatic fixed bin(21,0) dcl 255 set ref 983* 984 984 986 986 1021* 1022 1267 1267 1271 1271 1297 1301 optp 003550 automatic pointer dcl 255 set ref 983* 984 986 1021* 1022 1267 1271 1297 1301 pers 000112 automatic char(24) packed unaligned dcl 696 set ref 712* 715 person 10 000224 automatic char(24) level 2 in structure "target" dcl 48 in procedure "display_user_messages" set ref 1163 1163 person 10 000177 automatic char(24) level 2 in structure "source" dcl 40 in procedure "display_user_messages" set ref 1149 1149 person 10 003710 automatic char(24) level 2 in structure "group" dcl 1071 in procedure "group_id" set ref 1074* 1075 1075* person_id 15 based char(22) level 2 dcl 6-267 ref 466 process_group_id 11 based char(32) level 2 in structure "login_server_termination_response" dcl 6-385 in procedure "display_user_messages" ref 563 process_group_id 6 based char(32) level 2 in structure "login_server_dial_response" dcl 6-366 in procedure "display_user_messages" ref 544 process_group_id 12 based char(32) level 3 in structure "login_server_process_response" dcl 6-303 in procedure "display_user_messages" ref 488 process_group_id 6 based char(32) level 2 in structure "login_server_operator_response" dcl 6-426 in procedure "display_user_messages" ref 608 process_id 40 based bit(36) level 3 in structure "aumi" dcl 164 in procedure "display_user_messages" set ref 767* 1145 process_id 10 based bit(36) level 2 in structure "login_server_termination_response" dcl 6-385 in procedure "display_user_messages" set ref 566* process_id 5 based bit(36) level 3 in structure "login_server_process_response" dcl 6-303 in procedure "display_user_messages" set ref 506 506* process_id 10 parameter bit(36) level 2 in structure "target" dcl 693 in procedure "cv_target" set ref 707 712* 723* process_id 5 based bit(36) level 2 in structure "login_server_operator_response" dcl 6-426 in procedure "display_user_messages" set ref 611 611* process_id 5 based bit(36) level 2 in structure "login_server_dial_response" dcl 6-366 in procedure "display_user_messages" set ref 546* process_id 27 based bit(36) level 3 in structure "aumi" dcl 164 in procedure "display_user_messages" set ref 765* 1142 proj 000120 automatic char(12) packed unaligned dcl 696 set ref 712* 717 project 16 000224 automatic char(12) level 2 in structure "target" dcl 48 in procedure "display_user_messages" set ref 1166 1166 project 16 003710 automatic char(12) level 2 in structure "group" dcl 1071 in procedure "group_id" set ref 1076* 1077 1077* project 16 000177 automatic char(12) level 2 in structure "source" dcl 40 in procedure "display_user_messages" set ref 1151 1151 project_id 23 based char(9) level 2 dcl 6-267 ref 469 rank builtin function dcl 1211 ref 1228 raw_data 0(13) 003622 automatic bit(1) level 2 packed packed unaligned dcl 5-10 set ref 789* reason 23 based fixed bin(17,0) level 2 dcl 7-40 ref 403 405 409 409 ret based varying char dcl 255 set ref 299* retl 003552 automatic fixed bin(21,0) dcl 255 set ref 293* 299 retp 003554 automatic pointer dcl 255 set ref 293* 299 ring 41 based fixed bin(3,0) level 3 dcl 164 set ref 767* rtrim builtin function dcl 72 ref 346 376 389 413 415 420 460 466 469 482 488 527 538 544 557 563 588 602 608 627 679 681 707 709 715 717 830 sci_ptr 003556 automatic pointer dcl 255 set ref 114* 293* 294* 296* 318 318* 919* 939* 983* 986* 996* 1021* 1033* 1097* 1305* 1309* 1316* 1334* 1364* 1367* search builtin function dcl 1051 ref 1056 sender_info 17 based structure level 2 dcl 164 short 000242 automatic char(8) dcl 670 set ref 678* 679 679 size builtin function dcl 72 ref 621 source 000177 automatic structure level 1 dcl 40 in procedure "display_user_messages" set ref 1102* 1267* source 003564 automatic fixed bin(17,0) level 2 in structure "width" dcl 742 in procedure "display_user_messages" set ref 807* 830* 830 837 source parameter char(32) packed unaligned dcl 358 in procedure "cv_message_type" ref 355 source_group_id 2 003572 automatic char(32) level 2 packed packed unaligned dcl 1377 set ref 1108* source_id 000221 automatic bit(36) dcl 46 set ref 1103* 1142 1142 1276* source_process_id 12 003572 automatic bit(36) level 2 dcl 1377 set ref 1109* ssu_$abort_subsystem 000034 constant entry external dcl 270 ref 897 897 ssu_$arg_ptr 000036 constant entry external dcl 270 ref 919 983 1021 ssu_$destroy_invocation 000040 constant entry external dcl 270 ref 318 ssu_$print_message 000042 constant entry external dcl 270 ref 874 874 ssu_$return_arg 000044 constant entry external dcl 270 ref 293 ssu_$standalone_invocation 000046 constant entry external dcl 270 ref 114 status_code 4 based fixed bin(35,0) level 2 in structure "login_server_operator_response" dcl 6-426 in procedure "display_user_messages" set ref 614* status_code 14 based fixed bin(35,0) level 2 in structure "login_server_validate_response" dcl 6-267 in procedure "display_user_messages" set ref 471* status_code 21 based fixed bin(35,0) level 2 in structure "login_server_termination_response" dcl 6-385 in procedure "display_user_messages" set ref 577* status_code 4 based fixed bin(35,0) level 3 in structure "login_server_process_response" dcl 6-303 in procedure "display_user_messages" set ref 510* str parameter char packed unaligned dcl 1049 ref 1044 1056 string builtin function dcl 72 set ref 786* substr builtin function dcl 72 in procedure "display_user_messages" ref 430 substr builtin function dcl 1051 in procedure "vowel" ref 1056 substr builtin function dcl 1211 in procedure "oct_to_bit" ref 1228 1236 suppress_duplicates 0(15) 003622 automatic bit(1) level 2 packed packed unaligned dcl 5-10 set ref 791* system_area based area(1024) dcl 54 set ref 179 184 222 227 231 1344 1344 system_area_ptr 000222 automatic pointer dcl 47 set ref 179 184 222 227 231 1117* 1344 1344 system_message based structure level 1 dcl 8-23 system_message_header based structure level 1 dcl 8-18 system_message_ptr 003630 automatic pointer dcl 8-16 set ref 367* 368 369 369 372 376 378 383 389 tag 21 000224 automatic char(1) level 2 in structure "target" packed packed unaligned dcl 48 in procedure "display_user_messages" set ref 1169 1169 tag 21 003710 automatic char(1) level 2 in structure "group" packed packed unaligned dcl 1071 in procedure "group_id" set ref 1078* 1079 1079* tag 21 000177 automatic char(1) level 2 in structure "source" packed packed unaligned dcl 40 in procedure "display_user_messages" set ref 1154 1154 tag 000123 automatic char(1) packed unaligned dcl 696 in procedure "cv_target" set ref 712* 719 target parameter structure level 1 dcl 693 in procedure "cv_target" set ref 690 target 1 003564 automatic fixed bin(17,0) level 2 in structure "width" dcl 742 in procedure "display_user_messages" set ref 808* 832* 832 838 target 003560 automatic fixed bin(17,0) level 2 in structure "begin" dcl 738 in procedure "display_user_messages" set ref 752* 757* 837* 838 target parameter char(32) packed unaligned dcl 358 in procedure "cv_message_type" ref 355 target 000224 automatic structure level 1 dcl 48 in procedure "display_user_messages" set ref 1102* 1271* target_group_id 13 003572 automatic char(32) level 2 packed packed unaligned dcl 1377 set ref 1110* target_handle 24 003572 automatic bit(72) level 2 dcl 1377 set ref 1112* target_id 000246 automatic bit(36) dcl 49 set ref 1103* 1145 1145 1282* target_process_id 23 003572 automatic bit(36) level 2 dcl 1377 set ref 1111* temp_struct_ptr 000262 automatic pointer dcl 158 set ref 179* 180 181 182 186 187* 211* 220 220* 222 222 text 26 based char level 2 dcl 8-31 ref 378 text_len 25 based fixed bin(21,0) level 2 dcl 8-31 ref 378 type 2 003564 automatic fixed bin(17,0) level 2 in structure "width" dcl 742 in procedure "display_user_messages" set ref 809* 834* 834 type 000100 automatic varying char(256) dcl 362 in procedure "cv_message_type" set ref 365* 372* 372 375* 375 376* 376 377* 377 378* 378 382* 382 383* 383 384* 384 388* 388 389* 389 390* 390 393* 393 398* 403* 403 405* 405 408* 408 409* 409 411* 411 413* 413 414* 414 415* 415 418* 418 419* 419 420* 420 421* 421 425* 425 426* 426 434* 439* 447* 448* 448 450* 450 459* 459 460* 460 462* 462 465* 465 466* 466 468* 468 469* 469 471* 471 481* 481 482* 482 484* 484 487* 487 488* 488 491* 491 492* 492 495* 495 497* 497 500* 500 503* 503 506* 506 510* 510 514* 514 515* 515 526* 526 527* 527 529* 529 537* 537 538* 538 540* 540 543* 543 544* 544 546* 546 556* 556 557* 557 559* 559 562* 562 563* 563 566* 566 569* 569 570* 570 572* 572 575* 575 577* 577 587* 587 588* 588 590* 590 592* 592 601* 601 602* 602 604* 604 607* 607 608* 608 611* 611 614* 614 624* 626* 626 627* 627 631* 635 type 1 003560 automatic fixed bin(17,0) level 2 in structure "begin" dcl 738 in procedure "display_user_messages" set ref 752* 757* 838* type 2 based fixed bin(17,0) level 3 in structure "system_message" dcl 8-23 in procedure "display_user_messages" ref 369 369 372 383 unspec builtin function dcl 72 ref 409 409 user_abs_attributes based structure level 1 dcl 11-25 user_attributes based structure level 1 dcl 10-21 user_connection_info based structure level 1 dcl 6-65 user_message_admin_$read_message 000020 constant entry external dcl 67 ref 1337 1344 utep 003632 automatic pointer initial dcl 12-76 set ref 12-76* verify builtin function dcl 1211 ref 1221 version 2 based char(8) level 2 in structure "login_server_response_header" dcl 6-258 in procedure "display_user_messages" ref 457 460 479 482 524 527 535 538 554 557 585 588 599 602 version based char(8) level 3 in structure "system_message" dcl 8-23 in procedure "display_user_messages" ref 368 389 version based char(8) level 3 in structure "ls_connection_message" dcl 7-40 in procedure "display_user_messages" ref 402 420 version 003572 automatic char(8) level 2 in structure "aumari" dcl 1377 in procedure "display_user_messages" set ref 1107* version based char(8) level 2 in structure "as_com_channel_info" dcl 1-9 in procedure "display_user_messages" ref 621 version based char(8) level 2 in structure "aumi" dcl 164 in procedure "display_user_messages" set ref 192* warn_system_message based structure level 1 dcl 8-31 width 003564 automatic structure level 1 dcl 742 word parameter bit(36) dcl 651 set ref 648 657* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. ABS_ATTRIBUTE_NAMES internal static varying char(28) initial array dcl 11-38 ABS_FLAG_NAMES internal static varying char(8) initial array dcl 12-326 ACTIVE_VALUES internal static char(18) initial array dcl 4-86 ALT_USER_ATTRIBUTE_NAMES internal static char(20) initial array packed unaligned dcl 10-77 ANY_TYPE internal static fixed bin(17,0) initial dcl 8-49 CONNECT_REQ internal static fixed bin(17,0) initial dcl 6-457 CREATE_REQ internal static fixed bin(17,0) initial dcl 6-457 DERIVE_MASK internal static bit(2) initial packed unaligned dcl 12-280 DESTROY_REQ internal static fixed bin(17,0) initial dcl 6-457 DIAL_SERVER_FLAG_NAMES internal static varying char(12) initial array dcl 12-332 DONT_MASK internal static bit(2) initial packed unaligned dcl 12-280 DO_MASK internal static bit(2) initial packed unaligned dcl 12-280 ENTERP_REQ internal static fixed bin(17,0) initial dcl 6-457 ENTER_REQ internal static fixed bin(17,0) initial dcl 6-457 LIST_REQ internal static fixed bin(17,0) initial dcl 6-457 LOGIN_REQ internal static fixed bin(17,0) initial dcl 6-457 LOGIN_RESULT_VALUES internal static varying char(24) initial array dcl 12-338 LOGIN_SERVER_OPERATOR_REQUEST_VERSION_1 internal static char(8) initial packed unaligned dcl 6-222 LS_DIAL_REQUEST internal static fixed bin(17,0) initial dcl 6-31 LS_DIAL_REQUEST_VERSION_1 internal static char(8) initial packed unaligned dcl 6-180 LS_DISCONNECT_REQUEST internal static fixed bin(17,0) initial dcl 6-31 LS_DISCONNECT_REQUEST_VERSION_1 internal static char(8) initial packed unaligned dcl 6-193 LS_LIST_REQUEST internal static fixed bin(17,0) initial dcl 6-31 LS_LIST_REQUEST_VERSION_1 internal static char(8) initial packed unaligned dcl 6-160 LS_LOGOUT_REQUEST internal static fixed bin(17,0) initial dcl 6-31 LS_LOGOUT_REQUEST_VERSION_1 internal static char(8) initial packed unaligned dcl 6-203 LS_OPERATOR_REQUEST internal static fixed bin(17,0) initial dcl 6-31 LS_PROCESS_REQUEST internal static fixed bin(17,0) initial dcl 6-31 LS_PROCESS_REQUEST_VERSION_1 internal static char(8) initial packed unaligned dcl 6-150 LS_REQUEST_HEADER_VERSION_1 internal static char(8) initial packed unaligned dcl 6-63 LS_REQUEST_TYPES internal static char(10) initial array packed unaligned dcl 6-40 LS_VALIDATE_REQUEST internal static fixed bin(17,0) initial dcl 6-31 LS_VALIDATE_REQUEST_VERSION_1 internal static char(8) initial packed unaligned dcl 6-97 MASK_CTL_NAMES internal static varying char(12) initial array dcl 12-284 NETWORK_CONNECTION_DSA_FILE_TRANSFER internal static fixed bin(17,0) initial dcl 6-471 NETWORK_CONNECTION_LOGIN internal static fixed bin(17,0) initial dcl 6-471 NEW_PROC_REQ internal static fixed bin(17,0) initial dcl 6-457 NOW_DIALED internal static fixed bin(17,0) initial dcl 4-76 NOW_DIALED_OUT internal static fixed bin(17,0) initial dcl 4-76 NOW_DIALING internal static fixed bin(17,0) initial dcl 4-76 NOW_FREE internal static fixed bin(17,0) initial dcl 4-76 NOW_HAS_PROCESS internal static fixed bin(17,0) initial dcl 4-76 NOW_HUNG_UP internal static fixed bin(17,0) initial dcl 4-76 NOW_LISTENING internal static fixed bin(17,0) initial dcl 4-76 NOW_LOGGED_IN internal static fixed bin(17,0) initial dcl 4-76 PREEMPT_BUMPED internal static fixed bin(17,0) initial dcl 4-132 PREEMPT_BUMPED_NO_TERM internal static fixed bin(17,0) initial dcl 4-132 PREEMPT_LOAD_CTL internal static fixed bin(17,0) initial dcl 4-132 PREEMPT_TERMSGNL_RECEIVED internal static fixed bin(17,0) initial dcl 4-132 PREEMPT_TERM_SENT internal static fixed bin(17,0) initial dcl 4-132 PREEMPT_UNBUMP internal static fixed bin(17,0) initial dcl 4-132 PREEMPT_UNBUMP_IGNORE_ALARM internal static fixed bin(17,0) initial dcl 4-132 PREEMPT_VALUES internal static varying char(28) initial array dcl 4-142 PROCESS_TYPE_NAMES internal static varying char(12) initial array dcl 12-265 PT_ABSENTEE internal static fixed bin(17,0) initial dcl 12-261 PT_ALARM internal static fixed bin(17,0) initial dcl 4-106 PT_BUMP internal static fixed bin(17,0) initial dcl 4-106 PT_DAEMON internal static fixed bin(17,0) initial dcl 12-261 PT_DESTROY_REQUEST internal static fixed bin(17,0) initial dcl 4-106 PT_DETACH internal static fixed bin(17,0) initial dcl 4-106 PT_FPE internal static fixed bin(17,0) initial dcl 4-106 PT_HANGUP internal static fixed bin(17,0) initial dcl 4-106 PT_INTERACTIVE internal static fixed bin(17,0) initial dcl 12-261 PT_LOGOUT internal static fixed bin(17,0) initial dcl 4-106 PT_NEW_PROC_AUTH internal static fixed bin(17,0) initial dcl 4-106 PT_NEW_PROC_REQUEST internal static fixed bin(17,0) initial dcl 4-106 PT_OPERATOR_TERMINATE internal static fixed bin(17,0) initial dcl 4-106 PT_SHUTDOWN internal static fixed bin(17,0) initial dcl 4-106 PT_UNBUMP internal static fixed bin(17,0) initial dcl 4-106 PW_FLAG_NAMES internal static varying char(12) initial array dcl 12-290 STATE_VALUES internal static char(15) initial array dcl 4-70 SYSTEM_MESSAGE_AS_INACTIVITY_V1 internal static char(8) initial packed unaligned dcl 8-55 SYSTEM_MESSAGE_AS_WARN_V1 internal static char(8) initial packed unaligned dcl 8-55 SYSTEM_MESSAGE_DM_SHUT_V1 internal static char(8) initial packed unaligned dcl 8-55 SYSTEM_MESSAGE_TYPE_AS_INACTIVITY internal static fixed bin(17,0) initial dcl 8-49 SYSTEM_MESSAGE_TYPE_AS_WARN internal static fixed bin(17,0) initial dcl 8-49 SYSTEM_MESSAGE_TYPE_DM_SHUT internal static fixed bin(17,0) initial dcl 8-49 TABLE_NAMES internal static char(20) initial array packed unaligned dcl 12-271 TAG_ABSENTEE internal static char(1) initial packed unaligned dcl 4-93 TAG_DAEMON internal static char(1) initial packed unaligned dcl 4-93 TAG_INTERACTIVE internal static char(1) initial packed unaligned dcl 4-93 TAG_PROXY internal static char(1) initial packed unaligned dcl 4-93 TAG_UFT internal static char(1) initial packed unaligned dcl 4-93 TRA_VEC_VALUES internal static char(32) initial array dcl 4-54 TTY_DIALED internal static fixed bin(17,0) initial dcl 4-64 TTY_HUNG internal static fixed bin(17,0) initial dcl 4-64 TTY_KNOWN internal static fixed bin(17,0) initial dcl 4-64 TTY_MASKED internal static fixed bin(17,0) initial dcl 4-64 UFLAG_NAMES internal static varying char(24) initial array dcl 12-303 USER_ATTRIBUTES_always_allowed internal static bit(36) initial dcl 10-100 USER_ATTRIBUTES_default_in_pdt internal static bit(36) initial dcl 10-104 USER_ATTRIBUTES_settable_by_user internal static bit(36) initial dcl 10-108 USER_ATTRIBUTE_NAMES internal static char(20) initial array packed unaligned dcl 10-50 UTE_version_4 internal static fixed bin(17,0) initial dcl 12-74 WAIT_ANSWERBACK internal static fixed bin(17,0) initial dcl 4-25 WAIT_BEFORE_HANGUP internal static fixed bin(17,0) initial dcl 4-25 WAIT_CONNECT_REQUEST internal static fixed bin(17,0) initial dcl 4-25 WAIT_DELETE_CHANNEL internal static fixed bin(17,0) initial dcl 4-25 WAIT_DESTROY_REQUEST internal static fixed bin(17,0) initial dcl 4-25 WAIT_DETACH internal static fixed bin(17,0) initial dcl 4-25 WAIT_DIALUP internal static fixed bin(17,0) initial dcl 4-25 WAIT_DIAL_OUT internal static fixed bin(17,0) initial dcl 4-25 WAIT_DIAL_RELEASE internal static fixed bin(17,0) initial dcl 4-25 WAIT_DISCARD_WAKEUPS internal static fixed bin(17,0) initial dcl 4-25 WAIT_FIN_PRIV_ATTACH internal static fixed bin(17,0) initial dcl 4-25 WAIT_FIN_TANDD_ATTACH internal static fixed bin(17,0) initial dcl 4-25 WAIT_GREETING_MSG internal static fixed bin(17,0) initial dcl 4-25 WAIT_HANGUP internal static fixed bin(17,0) initial dcl 4-25 WAIT_LOGIN_ARGS internal static fixed bin(17,0) initial dcl 4-25 WAIT_LOGIN_LINE internal static fixed bin(17,0) initial dcl 4-25 WAIT_LOGOUT internal static fixed bin(17,0) initial dcl 4-25 WAIT_LOGOUT_HOLD internal static fixed bin(17,0) initial dcl 4-25 WAIT_LOGOUT_SIG internal static fixed bin(17,0) initial dcl 4-25 WAIT_NEW_PASSWORD internal static fixed bin(17,0) initial dcl 4-25 WAIT_NEW_PROC internal static fixed bin(17,0) initial dcl 4-25 WAIT_NEW_PROC_REQUEST internal static fixed bin(17,0) initial dcl 4-25 WAIT_OLD_PASSWORD internal static fixed bin(17,0) initial dcl 4-25 WAIT_PASSWORD internal static fixed bin(17,0) initial dcl 4-25 WAIT_REMOVE internal static fixed bin(17,0) initial dcl 4-25 WAIT_SLAVE_REQUEST internal static fixed bin(17,0) initial dcl 4-25 WAIT_TANDD_HANGUP internal static fixed bin(17,0) initial dcl 4-25 as_user_message_admin_read_info_ptr automatic pointer dcl 2-4 as_user_message_info_ptr automatic pointer dcl 3-7 dm_shut_system_message based structure level 1 dcl 8-43 inactivity_system_message based structure level 1 dcl 8-37 login_server_dial_request based structure level 1 dcl 6-170 login_server_disconnect_request based structure level 1 dcl 6-188 login_server_list_request based structure level 1 dcl 6-156 login_server_list_response based structure level 1 dcl 6-347 login_server_list_response_n_processes automatic fixed bin(17,0) dcl 6-358 login_server_logout_request based structure level 1 dcl 6-199 login_server_operator_request based structure level 1 dcl 6-214 login_server_process_request based structure level 1 dcl 6-103 login_server_validate_request based structure level 1 dcl 6-76 ls_connection_message_info_length automatic fixed bin(18,0) unsigned dcl 7-27 ls_process_request_arg_string_length automatic fixed bin(21,0) dcl 6-148 ls_process_request_n_args automatic fixed bin(17,0) dcl 6-147 ls_process_response_accounting_message_length automatic fixed bin(17,0) dcl 6-339 ls_reply_message based structure level 1 dcl 6-445 ls_reply_message_ptr automatic pointer dcl 6-443 ls_request_ptr automatic pointer dcl 6-50 system_message_text_len automatic fixed bin(17,0) dcl 8-29 ute based structure level 1 dcl 12-78 NAMES DECLARED BY EXPLICIT CONTEXT. CTL_ARG_LOOP 010460 constant label dcl 1254 EXIT 001056 constant label dcl 133 ref 139 GET_BIT_COMMON 006602 constant label dcl 980 ref 974 LS_DIAL 002071 constant label dcl 399 ref 435 NO_OPT 007150 constant label dcl 1030 ref 1024 alloc_aumi 001075 constant entry internal dcl 174 ref 1343 alloc_aumi$init 001225 constant entry internal dcl 205 ref 1105 alloc_aumi$term 001244 constant entry internal dcl 217 ref 316 check_invocation_type 001343 constant entry internal dcl 285 ref 116 cleanup_invocation 001451 constant entry internal dcl 313 ref 113 133 cv_access_class 001500 constant entry internal dcl 327 ref 774 cv_message_type 001560 constant entry internal dcl 355 ref 757 780 834 1175 1181 cv_octal 004276 constant entry internal dcl 648 ref 409 506 546 566 592 611 723 cv_status_code 004341 constant entry internal dcl 665 ref 471 510 577 614 cv_target 004506 constant entry internal dcl 690 ref 757 757 767 832 1160 display_message 004767 constant entry internal dcl 745 ref 1360 display_message$init 005712 constant entry internal dcl 802 ref 1115 display_message$matching_entry_count 005744 constant entry internal dcl 816 ref 1367 display_message$set_widths 005766 constant entry internal dcl 823 ref 1354 display_user_messages 000747 constant entry external dcl 27 error 006133 constant entry internal dcl 855 ref 986 996 1033 1305 1309 error$fatal 006300 constant entry internal dcl 889 ref 294 296 939 1316 1334 1364 1367 error$init 006233 constant entry internal dcl 878 ref 292 error$occurred 006254 constant entry internal dcl 884 ref 1316 exit_proc 001064 constant entry internal dcl 137 ref 114 114 get_arg 006411 constant entry internal dcl 911 ref 936 get_bit36_opt 006541 constant entry internal dcl 959 ref 1276 1282 get_bit72_opt 006562 constant entry internal dcl 976 ref 1287 1292 get_ctl_arg 006447 constant entry internal dcl 927 ref 1254 get_opt 007064 constant entry internal dcl 1009 ref 1267 1271 1297 1301 group_id 007303 constant entry internal dcl 1067 ref 1267 1271 initialize_args 007457 constant entry internal dcl 1094 ref 112 matching_entry 007563 constant entry internal dcl 1130 ref 1354 1360 oct_to_bit 010313 constant entry internal dcl 1198 ref 984 process_args 010457 constant entry internal dcl 1251 ref 117 scan_messages 011514 constant entry internal dcl 1330 ref 118 vowel 007251 constant entry internal dcl 1044 ref 986 986 996 996 1033 1033 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 13060 13170 12272 13070 Length 13764 12272 110 560 566 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME display_user_messages 2338 external procedure is an external procedure. on unit on line 113 64 on unit exit_proc 64 internal procedure is assigned to an entry variable. alloc_aumi 70 internal procedure is called by several nonquick procedures. check_invocation_type internal procedure shares stack frame of external procedure display_user_messages. cleanup_invocation 68 internal procedure is called by several nonquick procedures. cv_access_class internal procedure shares stack frame of internal procedure display_message. cv_message_type 226 internal procedure is called during a stack extension. cv_octal 90 internal procedure is called by several nonquick procedures. cv_status_code internal procedure shares stack frame of internal procedure cv_message_type. cv_target 130 internal procedure is called during a stack extension. display_message 304 internal procedure is called by several nonquick procedures. error 92 internal procedure is declared options(variable). get_arg internal procedure shares stack frame of external procedure display_user_messages. get_ctl_arg internal procedure shares stack frame of external procedure display_user_messages. get_bit36_opt internal procedure shares stack frame of external procedure display_user_messages. get_opt internal procedure shares stack frame of external procedure display_user_messages. vowel internal procedure shares stack frame of external procedure display_user_messages. group_id internal procedure shares stack frame of external procedure display_user_messages. initialize_args internal procedure shares stack frame of external procedure display_user_messages. matching_entry internal procedure shares stack frame of internal procedure scan_messages. oct_to_bit internal procedure shares stack frame of external procedure display_user_messages. process_args internal procedure shares stack frame of external procedure display_user_messages. scan_messages 226 internal procedure enables or reverts conditions. on unit on line 1333 96 on unit STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME cv_message_type 000100 type cv_message_type 000210 long cv_status_code 000242 short cv_status_code cv_octal 000100 octal_id cv_octal cv_target 000100 code cv_target 000101 group cv_target 000112 pers cv_target 000120 proj cv_target 000123 tag cv_target display_message 000106 class_str cv_access_class 000206 code cv_access_class display_user_messages 000100 brief_sw display_user_messages 000101 code display_user_messages 000102 entry_var display_user_messages 000106 exclude display_user_messages 000140 match display_user_messages 000172 message_handle display_user_messages 000174 message_id display_user_messages 000176 octal_sw display_user_messages 000177 source display_user_messages 000221 source_id display_user_messages 000222 system_area_ptr display_user_messages 000224 target display_user_messages 000246 target_id display_user_messages 000256 aumi_struct_count display_user_messages 000260 aumi_struct_ptr display_user_messages 000262 temp_struct_ptr display_user_messages 000264 auto_aumi_struct display_user_messages 003532 aumi_ptr display_user_messages 003534 ax display_user_messages 003535 af_sw display_user_messages 003536 argl display_user_messages 003540 argp display_user_messages 003542 argn display_user_messages 003543 argx display_user_messages 003544 bit_opt display_user_messages 003547 optl display_user_messages 003550 optp display_user_messages 003552 retl display_user_messages 003554 retp display_user_messages 003556 sci_ptr display_user_messages 003560 begin display_user_messages 003562 matching_entries display_user_messages 003563 need_heading display_user_messages 003564 width display_user_messages 003567 error_occurred_sw display_user_messages 003570 as_com_channel_info_ptr display_user_messages 003572 aumari display_user_messages 003622 dump_segment_format_structure display_user_messages 003624 ls_response_ptr display_user_messages 003626 ls_connection_message_ptr display_user_messages 003630 system_message_ptr display_user_messages 003632 utep display_user_messages 003664 code get_bit36_opt 003665 max_bits get_bit36_opt 003710 group group_id 003746 bits oct_to_bit 003752 digit oct_to_bit error 000100 codep error scan_messages 000106 ok_so_far matching_entry THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. r_g_a r_e_as alloc_char_temp alloc_bit_temp cat_realloc_chars call_ext_out_desc call_ext_out call_int_this_desc call_int_this call_int_other_desc call_int_other return_mac tra_ext_1 signal_op enable_op shorten_stack ext_entry int_entry int_entry_desc set_chars_eis index_chars_eis search_eis op_alloc_ op_freen_ THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. convert_access_class_$to_string_short convert_status_code_ cu_$arg_list_ptr cu_$arg_list_ptr cu_$arg_ptr cu_$generate_call date_time_$format dump_segment_ get_system_free_area_ get_userid_$info ioa_ ioa_$rsnnl ssu_$abort_subsystem ssu_$arg_ptr ssu_$destroy_invocation ssu_$print_message ssu_$return_arg ssu_$standalone_invocation user_message_admin_$read_message THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$active_function error_table_$bad_arg error_table_$bad_arg error_table_$bad_arg error_table_$bad_conversion error_table_$bad_opt error_table_$no_message error_table_$noarg error_table_$noarg error_table_$not_act_fnc error_table_$size_error error_table_$smallarg iox_$user_output LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 27 000746 12 76 000754 112 000756 113 000757 114 001001 116 001047 117 001051 118 001052 133 001056 135 001062 137 001063 139 001071 174 001074 177 001102 178 001107 179 001112 180 001125 181 001130 182 001137 184 001142 186 001155 187 001161 190 001163 191 001167 192 001173 193 001176 194 001212 195 001214 196 001216 197 001220 198 001221 199 001223 205 001224 208 001232 209 001234 210 001236 211 001240 212 001242 217 001243 220 001251 222 001260 224 001272 225 001304 226 001313 227 001316 228 001320 230 001324 231 001326 233 001342 285 001343 292 001345 293 001351 294 001370 296 001415 298 001440 299 001442 301 001446 302 001447 313 001450 316 001456 318 001463 320 001477 327 001500 341 001502 342 001523 343 001525 344 001531 346 001534 355 001557 364 001565 365 001573 366 001600 367 001606 368 001611 369 001615 372 001621 374 001636 375 001640 376 001652 377 001677 378 001711 380 001723 382 001724 383 001736 384 001772 386 002001 388 002002 389 002014 390 002040 392 002047 393 002050 395 002062 397 002063 398 002065 399 002071 401 002100 402 002103 403 002107 405 002125 408 002142 409 002154 411 002201 413 002210 414 002236 415 002245 416 002271 418 002272 419 002304 420 002316 421 002342 423 002351 425 002352 426 002364 428 002376 430 002377 434 002403 435 002410 439 002411 442 002425 443 002432 447 002440 448 002444 450 002461 452 002473 455 002477 457 002501 459 002505 460 002517 462 002543 463 002552 465 002553 466 002565 468 002611 469 002620 471 002644 475 002670 477 002671 479 002673 481 002677 482 002711 484 002735 485 002744 487 002745 488 002757 490 003003 491 003005 492 003017 495 003035 497 003053 500 003071 503 003107 506 003124 510 003151 512 003175 514 003201 515 003213 520 003225 522 003226 524 003230 526 003234 527 003246 529 003272 531 003301 533 003302 535 003304 537 003310 538 003322 540 003346 541 003355 543 003356 544 003370 546 003414 550 003441 552 003442 554 003444 556 003450 557 003462 559 003506 560 003515 562 003516 563 003530 565 003554 566 003556 569 003601 570 003613 572 003633 575 003651 577 003663 581 003705 583 003706 585 003710 587 003714 588 003726 590 003752 591 003761 592 003762 595 004005 597 004006 599 004010 601 004014 602 004026 604 004052 605 004061 607 004062 608 004074 610 004120 611 004122 614 004147 619 004173 621 004174 624 004212 625 004217 626 004221 627 004233 629 004257 631 004260 635 004265 648 004275 657 004303 658 004333 665 004341 676 004343 678 004350 679 004363 681 004436 690 004505 707 004513 709 004541 712 004573 714 004640 715 004642 716 004662 717 004671 718 004715 719 004724 720 004733 723 004743 745 004766 748 004776 750 005000 751 005002 752 005004 755 005026 757 005030 761 005203 764 005205 765 005215 767 005243 770 005310 772 005335 774 005411 777 005452 779 005477 780 005521 784 005606 785 005614 786 005625 787 005627 788 005631 789 005633 790 005635 791 005637 792 005641 797 005702 802 005711 805 005721 806 005723 807 005725 808 005727 809 005730 810 005732 811 005734 816 005743 818 005752 823 005765 830 005775 832 006021 834 006045 837 006114 838 006120 839 006123 855 006132 870 006142 871 006160 872 006171 873 006174 874 006177 875 006223 878 006232 880 006242 881 006244 884 006253 886 006262 889 006277 892 006307 893 006326 894 006337 895 006342 896 006345 897 006356 898 006402 911 006411 917 006413 918 006416 919 006417 920 006434 922 006442 927 006447 936 006451 939 006500 942 006533 959 006541 973 006557 974 006561 976 006562 978 006600 980 006602 982 006605 983 006606 984 006623 985 006652 986 006654 991 006747 993 006755 995 006763 996 006772 999 007051 1001 007057 1009 007064 1019 007102 1020 007105 1021 007106 1022 007123 1023 007137 1024 007141 1026 007142 1030 007150 1033 007157 1036 007236 1038 007244 1044 007251 1056 007262 1058 007276 1067 007303 1073 007314 1074 007321 1075 007331 1076 007340 1077 007365 1078 007374 1079 007416 1080 007430 1094 007457 1097 007460 1099 007462 1100 007464 1102 007465 1103 007521 1105 007526 1107 007532 1108 007534 1109 007537 1110 007540 1111 007543 1112 007544 1113 007546 1115 007547 1117 007553 1119 007562 1130 007563 1135 007565 1136 007567 1139 007601 1142 007614 1145 007625 1148 007636 1149 007644 1151 007663 1154 007717 1159 007766 1160 007774 1163 010024 1166 010042 1169 010075 1174 010143 1175 010152 1180 010224 1181 010233 1186 010305 1198 010313 1219 010324 1221 010326 1222 010341 1223 010344 1226 010347 1227 010350 1228 010363 1229 010405 1231 010407 1232 010413 1233 010416 1236 010421 1238 010444 1251 010457 1254 010460 1257 010465 1259 010502 1261 010514 1263 010527 1266 010541 1267 010551 1269 010642 1270 010643 1271 010653 1273 010746 1275 010747 1276 010763 1278 011017 1279 011020 1282 011050 1284 011104 1286 011105 1287 011115 1289 011151 1291 011152 1292 011162 1294 011216 1296 011217 1297 011227 1299 011271 1300 011272 1301 011306 1303 011352 1305 011353 1309 011425 1311 011457 1313 011460 1316 011463 1319 011512 1330 011513 1333 011521 1334 011535 1336 011565 1337 011566 1338 011574 1340 011575 1341 011577 1342 011600 1343 011603 1344 011610 1346 011637 1348 011645 1349 011651 1351 011652 1353 011664 1354 011670 1356 011702 1358 011705 1359 011716 1360 011722 1362 011734 1364 011737 1367 011767 1371 012027 ----------------------------------------------------------- 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