COMPILATION LISTING OF SEGMENT uc_login_ Compiled by: Multics PL/I Compiler, Release 30, of February 16, 1988 Compiled at: Honeywell Bull, Phoenix AZ, SysM Compiled on: 07/13/88 1028.1 mst Wed Options: optimize map 1 /****^ ******************************************** 2* * * 3* * Copyright, (C) Honeywell Bull Inc., 1987 * 4* * * 5* ******************************************** */ 6 7 8 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 9 /* */ 10 /* This module is part of the Multics Network Architecture (MNA) version of */ 11 /* user control. MNA user control serves users coming into Multics via */ 12 /* separate networks (eg, the Distributed Systems Architecture (DSA) */ 13 /* network. MNA user control is not used for logins through the Multics */ 14 /* Communications System (MCS). A separate MCS user control system serves */ 15 /* MCS users. */ 16 /* */ 17 /* To Be Supplied: */ 18 /* 1) Brief module description. See MDD010 or MTBs 751 and 752 for details */ 19 /* about this module, and its relationship to modules in the MCS user */ 20 /* control system. */ 21 /* 2) Operator error message documentation. This program calls */ 22 /* sys_log_$general but does not contain the required descriptions of */ 23 /* these messages. This omission was waived for initial installation */ 24 /* of the subsystem by the auditor, security coordinator, and by MDC */ 25 /* management. */ 26 /* */ 27 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 28 29 /****^ HISTORY COMMENTS: 30* 1) change(86-04-19,Swenson), approve(87-07-13,MCR7737), 31* audit(87-04-24,GDixon), install(87-08-04,MR12.1-1055): 32* Initial coding. 33* 2) change(87-04-21,GDixon), approve(87-07-13,MCR7737), 34* audit(87-07-30,Brunelle), install(87-08-04,MR12.1-1055): 35* A) For notification of other processes for this personid, require that 36* a process exist, not just that user be logged in. 37* B) Changed DETERMINE_AUTHORIZATIONS to use convert_access_class_$(minimum 38* and maximum) instead of aim_check_$greater to find the minimum range 39* of authorizations between the SAT, PDT and PNT. 40* C) Corrected to properly enforce password expiration interval. 41* D) Removed references to ute.uflags.logged_in. 42* E) Make all decisions on which internal procs to run in Setup, rather 43* than making some there and some in the main procedure. 44* F) Upgraded for change to answer_table.incl.pl1 and 45* user_table_entry.incl.pl1 46* 3) change(87-05-12,GDixon), approve(87-07-13,MCR7737), 47* audit(87-07-30,Brunelle), install(87-08-04,MR12.1-1055): 48* A) Don't send login notifications to disconnected or UFT processes. 49* Neither can receive the message or act upon an invalid login. 50* (dsa 119) 51* B) Don't send bad password information to UFT processes, since they 52* cannot pass it along to the user (there is no user at the terminal). 53* 4) change(87-05-14,GDixon), approve(87-07-13,MCR7737), 54* audit(87-07-30,Brunelle), install(87-08-04,MR12.1-1055): 55* A) Replace use of uc_validate_info.channel_info.line_type with 56* ute.line_type. 57* B) Correct person_id (= anonymous) in group_id of anonymous users. 58* END HISTORY COMMENTS */ 59 60 /* format: style4,indattr */ 61 62 uc_login_: 63 procedure (P_uc_validate_info_ptr, P_utep, P_code); 64 65 /* Parameters */ 66 67 dcl P_uc_validate_info_ptr ptr parameter; 68 dcl P_utep ptr parameter; 69 dcl P_code fixed bin (35) parameter; 70 71 /* Automatic */ 72 73 dcl authorization (3) bit (72) aligned; 74 dcl auth_string char (200); 75 dcl auth_string_octal char (32); 76 dcl code fixed bin (35) automatic; 77 dcl 1 flags structure aligned automatic, 78 2 anonymous bit (1) unaligned, 79 2 check_password bit (1) unaligned, 80 2 check_physical_security_breach 81 bit (1) unaligned, 82 2 check_change_arguments 83 bit (1) unaligned, 84 2 check_authorization_argument 85 bit (1) unaligned, 86 2 check_daemon_access bit (1) unaligned, 87 2 check_channel_access 88 bit (1) unaligned, 89 2 check_channel_access_class bit (1) unaligned, 90 2 check_anonymous_password bit (1) unaligned, 91 2 pad1 bit (27) unaligned; 92 dcl htp ptr; 93 dcl ip ptr automatic; 94 dcl maybe_update_pnte bit (1) aligned automatic; 95 dcl pdtep ptr automatic; 96 dcl pdtp ptr automatic; 97 dcl 1 pnte structure aligned like pnt_entry; 98 dcl 1 old_pnte structure aligned like pnt_entry; 99 dcl satep ptr automatic; 100 dcl satp ptr automatic; 101 dcl whoptr ptr automatic; 102 103 /* Entries */ 104 105 dcl aim_check_$greater_or_equal 106 entry (bit (72) aligned, bit (72) aligned) 107 returns (bit (1) aligned); 108 dcl aim_check_$in_range entry (bit (72) aligned, 109 (2) bit (72) aligned) 110 returns (bit (1) aligned); 111 dcl as_access_audit_$login entry (ptr, char (*)); 112 dcl asu_$blast_user entry (ptr, char (*), char (*), fixed bin (35)); 113 dcl convert_access_class_$maximum 114 entry ((*) bit (72) aligned, fixed bin, bit (72) aligned); 115 dcl convert_access_class_$minimum 116 entry ((*) bit (72) aligned, fixed bin, bit (72) aligned); 117 dcl convert_access_class_$to_string_short 118 entry (bit (72) aligned, char (*), fixed bin (35)); 119 dcl convert_access_class_$to_string_range_short 120 entry ((2) bit (72) aligned, char (*), 121 fixed bin (35)); 122 dcl convert_status_code_ entry (fixed bin (35), char (8) aligned, 123 char (100) aligned); 124 dcl display_access_class_ entry (bit (72) aligned) returns (char (32) aligned); 125 dcl display_access_class_$range 126 entry ((2) bit (72) aligned) 127 returns (char (32) aligned); 128 dcl hash_$search entry (ptr, char (*), fixed bin (35), 129 fixed bin (35)); 130 dcl hcs_$get_user_access_modes 131 entry (char (*), char (*), char (*), 132 fixed bin, bit (36) aligned, 133 bit (36) aligned, fixed bin (35)); 134 dcl initiate_file_ entry (char (*), char (*), bit (*), ptr, 135 fixed bin (24), fixed bin (35)); 136 dcl ioa_$rs entry () options (variable); 137 dcl ioa_$rsnnl entry () options (variable); 138 dcl mail_table_initializer_$set_dft_proj 139 entry (char (*), char (*), fixed bin (35)); 140 dcl mc_check_access_$log_in_as_daemon 141 entry (char (*), char (*), fixed bin (35)); 142 dcl merge_access_audit_flags_ 143 entry (bit (36) aligned, bit (36) aligned) 144 returns (bit (36) aligned); 145 dcl pnt_manager_$admin_get_entry 146 entry (char (*), ptr, fixed bin (35)); 147 dcl pnt_manager_$login_get_entry 148 entry (char (*), char (*), ptr, 149 fixed bin (35)); 150 dcl pnt_manager_$update_entry 151 entry (ptr, bit (1) aligned, 152 bit (1) aligned, fixed bin (35)); 153 dcl scramble_ entry (char (8)) returns (char (8)); 154 dcl ttt_info_$decode_type entry (fixed bin, char (*), fixed bin (35)); 155 dcl ttt_info_$encode_type entry (char (*), fixed bin, fixed bin (35)); 156 dcl up_sat_$make_sat_hash entry (ptr, fixed bin, ptr, char (*), fixed bin (35)); 157 158 /* External */ 159 160 dcl (as_error_table_$already_in_notify_msg, 161 as_error_table_$bad_anon_pw, 162 as_error_table_$bad_password, 163 as_error_table_$bad_personid, 164 as_error_table_$bad_project, 165 as_error_table_$breach, 166 as_error_table_$breach_msg, 167 as_error_table_$cant_give_dft_auth, 168 as_error_table_$cant_give_that_authorization, 169 as_error_table_$dialup_error, 170 as_error_table_$must_change, 171 as_error_table_$must_use_generate_pw, 172 as_error_table_$no_change, 173 as_error_table_$no_line_permission, 174 as_error_table_$not_in_pdt, 175 as_error_table_$operator_not_allowed, 176 as_error_table_$password_expired, 177 as_error_table_$password_locked, 178 as_error_table_$password_probe_mail_msg, 179 as_error_table_$password_probe1_mail_msg, 180 as_error_table_$password_trap, 181 as_error_table_$pdt_missing, 182 as_error_table_$person_auth_msg, 183 as_error_table_$terminal_auth_msg, 184 as_error_table_$too_many_bad_pw) fixed bin (35) ext static; 185 dcl (error_table_$bad_arg, 186 error_table_$bad_password, 187 error_table_$id_not_found, 188 error_table_$messages_off, 189 error_table_$smallarg, 190 error_table_$wakeup_denied) fixed bin (35) ext static; 191 192 /* Constant */ 193 194 dcl ALLOW_RETRY bit (1) aligned initial ("1"b) 195 internal static options (constant); 196 dcl FALSE bit (1) aligned initial ("0"b) 197 internal static options (constant); 198 dcl ME char (9) initial ("uc_login_") 199 internal static options (constant); 200 dcl SYSTEM_LOW bit (72) aligned initial (""b) 201 internal static options (constant); 202 dcl TRUE bit (1) aligned initial ("1"b) 203 internal static options (constant); 204 dcl USECS_PER_DAY fixed bin (71) initial (86400000000) 205 internal static options (constant); 206 207 /* Builtin */ 208 209 dcl (addr, addrel, clock, length, mod, null, rtrim, string, substr, unspec) 210 builtin; 211 212 /* Conditions */ 213 214 dcl seg_fault_error condition; 215 216 /* Program */ 217 218 /**** TBS: Fault Handler */ 219 call Setup (); 220 call Validate_Personid (); 221 if flags.check_password then 222 call Check_Password_Flags (); 223 if flags.check_physical_security_breach then 224 call Check_Physical_Security_Breach (); 225 if flags.check_change_arguments then 226 call Process_Change_Arguments (); 227 if flags.check_authorization_argument then 228 call Check_Authorization_Argument (); 229 call Validate_Projectid (); 230 if flags.check_anonymous_password then 231 call Check_Anonymous_Password (); 232 if flags.check_daemon_access then 233 call Check_Daemon_Access (); 234 if flags.check_channel_access then 235 call Check_Channel_Access (); 236 call Process_Attributes (); 237 call Check_Access_Authorization (); 238 if flags.check_channel_access_class then 239 call Check_Channel_Access_Class (); 240 241 call Login (); 242 243 RETURN: 244 P_code = code; 245 if maybe_update_pnte then 246 if unspec (old_pnte) ^= unspec (pnte) then 247 call Update_Pnte (); 248 return; 249 250 Setup: 251 procedure (); 252 253 uc_validate_info_ptr = P_uc_validate_info_ptr; 254 utep = P_utep; 255 code = 0; 256 257 ansp = as_data_$ansp; 258 ip = as_data_$rs_ptrs (0); 259 satp = as_data_$satp; 260 whoptr = as_data_$whoptr; 261 262 anstbl.current_time = clock (); 263 264 unspec (flags) = ""b; 265 if ute.process_type = PT_INTERACTIVE then do; 266 flags.check_password = TRUE; 267 flags.check_physical_security_breach = TRUE; 268 flags.check_change_arguments = TRUE; 269 flags.check_authorization_argument = TRUE; 270 flags.check_daemon_access = FALSE; 271 flags.check_channel_access = TRUE; 272 flags.check_channel_access_class = TRUE; 273 end; 274 else if ute.process_type = PT_ABSENTEE then 275 do; 276 flags.check_password = FALSE; 277 flags.check_physical_security_breach = FALSE; 278 flags.check_change_arguments = FALSE; 279 flags.check_authorization_argument = FALSE; 280 flags.check_daemon_access = FALSE; 281 flags.check_channel_access = FALSE; 282 flags.check_channel_access_class = FALSE; 283 end; 284 else if ute.process_type = PT_DAEMON then 285 do; 286 flags.check_password = FALSE; 287 flags.check_physical_security_breach = FALSE; 288 flags.check_change_arguments = TRUE; 289 flags.check_authorization_argument = TRUE; 290 flags.check_daemon_access = TRUE; 291 flags.check_channel_access = FALSE; 292 flags.check_channel_access_class = FALSE; 293 end; 294 else 295 call Abort (error_table_$bad_arg, ^ALLOW_RETRY); 296 297 if ^uc_validate_info.flags.check_channel_access then 298 flags.check_channel_access = FALSE; 299 300 if ute.anonymous = 1 then 301 do; 302 flags.anonymous = TRUE; 303 flags.check_password = FALSE; 304 flags.check_anonymous_password = uc_validate_info.flags.check_anonymous_password; 305 flags.check_change_arguments = FALSE; 306 end; 307 else 308 flags.anonymous = FALSE; 309 310 anstbl.session_uid_counter = anstbl.session_uid_counter + 1; 311 ute.session_uid = anstbl.session_uid_counter; 312 maybe_update_pnte = FALSE; 313 return; 314 end Setup; 315 316 Validate_Personid: 317 procedure (); 318 319 dcl password char (32) automatic; 320 321 if ute.person = "" then 322 call Abort (as_error_table_$bad_personid, ALLOW_RETRY); 323 324 if flags.anonymous then 325 if ute.project = "" then 326 do; 327 ute.project = ute.person; 328 return; 329 end; 330 331 if flags.check_password then 332 do; 333 if ute.login_flags.cpw then 334 password = ute.old_password; 335 else 336 password = uc_validate_info.password; 337 338 unspec (pnte) = ""b; 339 call pnt_manager_$login_get_entry (ute.person, password, addr (pnte), 340 code); 341 end; 342 else 343 call pnt_manager_$admin_get_entry (ute.person, addr (pnte), code); 344 345 if code = error_table_$id_not_found then 346 call Abort (as_error_table_$bad_personid, ALLOW_RETRY); 347 else if code ^= error_table_$bad_password & code ^= 0 then 348 do; 349 call Log_Error_with_Code (SL_LOG_BEEP, code, 350 "Reading PNT entry for ^a.", ute.person); 351 call Abort (as_error_table_$dialup_error, ^ALLOW_RETRY); 352 end; 353 354 /* If we get here, we were able to read the PNT entry. The password, 355* however, may still have been incorrect. */ 356 357 old_pnte = pnte; 358 maybe_update_pnte = TRUE; 359 360 ute.person = substr (pnte.user_id, 1, length (ute.person)); 361 if ute.project = "" then 362 ute.project = pnte.default_project; 363 364 if code = error_table_$bad_password then 365 do; 366 call Bad_Password (); 367 call Abort (as_error_table_$bad_password, ALLOW_RETRY); 368 end; 369 370 /**** Check to see if user is login in as an operator. Validate his 371* authorization to do so. */ 372 373 if ute.login_flags.operator then 374 if ^pnte.flags.operator then 375 call Abort (as_error_table_$operator_not_allowed, 376 ALLOW_RETRY); 377 378 /**** Personid is validated */ 379 380 return; 381 382 Bad_Password: 383 procedure (); 384 385 dcl mail_for_user char (128) automatic; 386 dcl message char (256) automatic; 387 388 pnte.n_bad_pw = pnte.n_bad_pw + 1; 389 pnte.n_bad_pw_since_good = pnte.n_bad_pw_since_good + 1; 390 pnte.time_last_bad_pw = anstbl.current_time; 391 pnte.last_bad_pw_reported = FALSE; 392 pnte.bad_pw_term_id = ute.tty_id_code; 393 pnte.bad_pw_term_type = ute.terminal_type; 394 pnte.bad_pw_line_type = ute.line_type; 395 396 if pnte.n_bad_pw_since_good = 1 then 397 message = 398 Convert_Message (as_error_table_$password_probe1_mail_msg); 399 else 400 message = Convert_Message (as_error_table_$password_probe_mail_msg); 401 402 if message ^= "" then 403 do; 404 if pnte.n_bad_pw_since_good = 1 then 405 call ioa_$rs (message, mail_for_user, (0), ute.person, 406 ute.terminal_type, ute.tty_id_code); 407 else 408 call ioa_$rs (message, mail_for_user, (0), ute.person, 409 pnte.n_bad_pw_since_good, ute.terminal_type, 410 ute.tty_id_code); 411 412 call Send_User_Mail (ute.person, ute.project, mail_for_user, 413 pnte.default_person_authorization, code); 414 if (code ^= 0) & (code ^= error_table_$wakeup_denied) 415 & (code ^= error_table_$messages_off) then 416 do; 417 call Send_User_Mail (ute.person, (pnte.default_project), 418 mail_for_user, pnte.default_person_authorization, code); 419 if code = 0 then 420 pnte.flags.last_bad_pw_reported = "1"b; 421 end; 422 else 423 pnte.flags.last_bad_pw_reported = "1"b; 424 end; 425 if mod (pnte.n_bad_pw_since_good, installation_parms.login_tries) = 0 then do; 426 call Log_Coded_Error (SL_LOG_BEEP, 427 as_error_table_$too_many_bad_pw, ute.person, 428 ute.project, ute.tty_name, ute.terminal_type, 429 ute.tty_id_code); 430 end; 431 return; 432 end Bad_Password; 433 434 end Validate_Personid; 435 436 Check_Password_Flags: 437 procedure (); 438 439 if ute.login_flags.cpw & ^ute.login_flags.generate_pw & pnte.flags.generate_pw 440 then 441 call Abort (as_error_table_$must_use_generate_pw, ALLOW_RETRY); 442 443 if installation_parms.password_expiration_interval ^= 0 then 444 if ((anstbl.current_time - pnte.time_last_good_pw) 445 > (installation_parms.password_expiration_interval 446 * USECS_PER_DAY)) 447 & ((anstbl.current_time - pnte.user_validated_time) 448 > (installation_parms.password_expiration_interval 449 * USECS_PER_DAY)) then 450 do; 451 uc_validate_info.password_unused_too_long = TRUE; 452 uc_validate_info.password_interval = installation_parms.password_expiration_interval; 453 call Abort (as_error_table_$password_expired, 454 ^ALLOW_RETRY); 455 end; 456 457 if ^ute.login_flags.cpw then 458 do; 459 if pnte.flags.must_change then 460 do; 461 if ^pnte.flags.generate_pw then 462 call Abort (as_error_table_$must_change, ALLOW_RETRY); 463 else call Abort (as_error_table_$must_use_generate_pw, 464 ALLOW_RETRY); 465 end; 466 467 if installation_parms.password_change_interval ^= 0 then 468 if (anstbl.current_time - pnte.time_pw_changed) 469 > (installation_parms.password_change_interval 470 * USECS_PER_DAY) then 471 do; 472 uc_validate_info.password_expired = TRUE; 473 uc_validate_info.password_interval = installation_parms.password_change_interval; 474 if ^pnte.flags.generate_pw then 475 call Abort (as_error_table_$must_change, 476 ALLOW_RETRY); 477 else call Abort (as_error_table_$must_use_generate_pw, 478 ALLOW_RETRY); 479 end; 480 end; 481 482 pnte.n_good_pw = pnte.n_good_pw + 1; 483 pnte.time_last_good_pw = anstbl.current_time; 484 485 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 486 /* We used to check pnte.flags.last_bad_pw_reported here to decide whether */ 487 /* to print the message "Your password was ..." on the terminal upon login. */ 488 /* Since it is possible (and likely) that the user logging in will have */ 489 /* never seen the mail sent telling him that his password was used */ 490 /* incorrectly, we remove that check and force the message on his terminal. */ 491 /* The theory is that if there really is someone trying to guess a password, */ 492 /* and he does manage to succeed and get in, he will most likely delete any */ 493 /* mail telling the REAL user that someone was hacking. */ 494 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 495 496 if pnte.n_bad_pw_since_good > 0 & 497 ute.tag ^= TAG_UFT then /* UFT processes cannot send msgs to user */ 498 do; 499 uc_validate_info.last_bad_pw_info.time = pnte.time_last_bad_pw; 500 uc_validate_info.last_bad_pw_info.number = 501 pnte.n_bad_pw_since_good; 502 uc_validate_info.last_bad_pw_info.terminal_type = 503 pnte.bad_pw_term_type; 504 uc_validate_info.last_bad_pw_info.terminal_id = 505 pnte.bad_pw_term_id; 506 uc_validate_info.last_bad_pw_info.line_type = 507 pnte.bad_pw_line_type; 508 pnte.last_bad_pw_reported = "1"b; 509 end; 510 else do; /* better than returning garbage */ 511 uc_validate_info.last_bad_pw_info.time = 0; 512 uc_validate_info.last_bad_pw_info.number = 0; 513 uc_validate_info.last_bad_pw_info.terminal_type = ""; 514 uc_validate_info.last_bad_pw_info.terminal_id = ""; 515 uc_validate_info.last_bad_pw_info.line_type = 0; 516 end; 517 518 if pnte.last_bad_pw_reported then 519 pnte.n_bad_pw_since_good = 0; 520 521 if pnte.flags.trap then do; 522 call Log_Coded_Error (SL_LOG_BEEP, 523 as_error_table_$password_trap, ute.person, ute.project, 524 ute.tty_name, ute.terminal_type, ute.tty_id_code); 525 end; 526 if (pnte.flags.pw_time_lock & anstbl.current_time < pnte.password_timelock) 527 | pnte.flags.lock then 528 call Abort (as_error_table_$password_locked, ^ALLOW_RETRY); 529 530 if ute.login_flags.cpw then 531 if pnte.flags.nochange then 532 call Abort (as_error_table_$no_change, ALLOW_RETRY); 533 else 534 do; 535 pnte.password = uc_validate_info.password; 536 pnte.time_pw_changed = anstbl.current_time; 537 pnte.flags.must_change = FALSE; 538 uc_validate_info.changed_password = TRUE; 539 end; 540 return; 541 end Check_Password_Flags; 542 543 Check_Physical_Security_Breach: 544 procedure (); 545 546 dcl maximum_authorization bit (72) aligned automatic; 547 548 if flags.anonymous then 549 maximum_authorization = SYSTEM_LOW; 550 else 551 maximum_authorization = pnte.person_authorization (2); 552 553 if ^aim_check_$greater_or_equal (maximum_authorization, 554 uc_validate_info.channel_info.access_class_range (1)) then 555 do; 556 call Log_Coded_Error (SL_LOG_BEEP, as_error_table_$breach_msg, 557 ute.person, ute.project, ute.tty_name, ute.terminal_type, 558 ute.tty_id_code); 559 560 auth_string_octal = 561 display_access_class_ (maximum_authorization); 562 call convert_access_class_$to_string_short ( 563 maximum_authorization, auth_string, code); 564 if code ^= 0 then 565 if code = error_table_$smallarg then 566 code = 0; 567 else auth_string = ""; 568 call Log_Coded_Error (SL_LOG, as_error_table_$person_auth_msg, 569 auth_string_octal, auth_string); 570 571 auth_string_octal = display_access_class_$range ( 572 uc_validate_info.channel_info.access_class_range); 573 call convert_access_class_$to_string_range_short ( 574 uc_validate_info.channel_info.access_class_range, 575 auth_string, code); 576 if code ^= 0 then 577 if code = error_table_$smallarg then 578 code = 0; 579 else auth_string = ""; 580 call Log_Coded_Error (SL_LOG, as_error_table_$terminal_auth_msg, 581 auth_string_octal, auth_string); 582 583 call Abort (as_error_table_$breach, ^ALLOW_RETRY); 584 end; 585 return; 586 end Check_Physical_Security_Breach; 587 588 Process_Change_Arguments: 589 procedure (); 590 591 if ute.login_flags.cdp then 592 if ^pnte.flags.nochange then 593 do; 594 pnte.default_project = substr (ute.project, 1, length (pnte.default_project)); 595 uc_validate_info.changed_default_project = TRUE; 596 end; 597 else 598 call Abort (as_error_table_$no_change, ALLOW_RETRY); 599 600 if ute.login_flags.cda then 601 if ^pnte.flags.nochange then 602 do; 603 pnte.default_person_authorization = ute.process_authorization; 604 uc_validate_info.default_authorization_changed = TRUE; 605 end; 606 else 607 call Abort (as_error_table_$no_change, ALLOW_RETRY); 608 609 610 if uc_validate_info.changed_default_project then 611 do; 612 call mail_table_initializer_$set_dft_proj (rtrim (pnte.user_id), 613 rtrim (pnte.default_project), code); 614 if code ^= 0 then 615 call Log_Error_with_Code (SL_LOG_BEEP, code, 616 "Changing Mail Table default project for ^a to ^a", 617 pnte.user_id, pnte.default_project); 618 end; 619 return; 620 end Process_Change_Arguments; 621 622 Check_Authorization_Argument: 623 procedure (); 624 625 if ^ute.login_flags.auth_given then 626 if flags.anonymous then 627 ute.process_authorization = SYSTEM_LOW; 628 else 629 ute.process_authorization = pnte.default_person_authorization; 630 return; 631 end Check_Authorization_Argument; 632 633 Validate_Projectid: 634 procedure (); 635 636 dcl ans char (64) automatic; 637 dcl i fixed bin (35) automatic; 638 dcl pdt_entryname char (32) automatic; 639 dcl pdt_htp ptr automatic; 640 dcl temp_person_name char (32) automatic; 641 642 lookup_loop: 643 call hash_$search (as_data_$sat_htp, ute.project, i, code); 644 if code ^= 0 then 645 call Abort (as_error_table_$bad_project, ALLOW_RETRY); 646 647 satep = addr (sat.project (i)); 648 if ute.project ^= project.project_id then 649 if ute.project ^= project.alias then 650 do; 651 call Log_Error_with_Code (SL_LOG_SILENT, -1, 652 "sat.ht has ""^a"", SAT has ""^a"" at ^p", 653 ute.project, project.project_id, satep); 654 call up_sat_$make_sat_hash (satp, sat.n_projects, 655 as_data_$sat_htp, ans, code); 656 if code ^= 0 then 657 do; 658 call Log_Error_with_Code (SL_LOG, code, 659 "Unable to rehash sat.ht: ^a", ans); 660 call Abort (as_error_table_$dialup_error, 661 ^ALLOW_RETRY); 662 end; 663 else 664 goto lookup_loop; /* go try the lookup again */ 665 end; 666 667 if project.state ^= 1 then 668 do; 669 call Log_Error_with_Code (SL_LOG_SILENT, -1, 670 "Project ^a, state ^d, still in sat.ht", 671 project.project_id, project.state); 672 call Abort (as_error_table_$bad_project, ALLOW_RETRY); 673 end; 674 675 ute.project = project.project_id; /* in case alias */ 676 /* was used. */ 677 678 if project.pdt_ptr ^= null () then 679 pdtp = project.pdt_ptr; 680 else 681 do; 682 pdt_entryname = rtrim (project.project_id) || ".pdt"; 683 call initiate_file_ (as_data_$pdtdir, pdt_entryname, RW_ACCESS, 684 pdtp, (0), code); 685 if code ^= 0 then 686 do; 687 call Log_Error_with_Code (SL_LOG_SILENT, code, "^a>^a", 688 as_data_$pdtdir, project.project_id); 689 call Abort (as_error_table_$pdt_missing, ALLOW_RETRY); 690 end; 691 project.pdt_ptr = pdtp; 692 end; 693 694 if project.rs_number < 0 | project.rs_number > whotab.n_rate_structures 695 then 696 do; 697 call Log_Error_with_Code (SL_LOG_BEEP, -1, 698 "Project ^a has invalid rate_structure number ^d. Using rate_structure 0.", 699 project.project_id, project.rs_number); 700 ute.rs_number = 0; 701 end; 702 else 703 ute.rs_number = project.rs_number; 704 705 temp_person_name = ute.person; 706 707 if flags.anonymous then 708 if ^project.at.anonymous then 709 call Abort (as_error_table_$not_in_pdt, ALLOW_RETRY); 710 else 711 temp_person_name = "*"; 712 713 pdtep = null (); 714 715 on seg_fault_error 716 begin; 717 call Log_Error_with_Code (SL_LOG_BEEP, -1, 718 "PDT for project ^a has its damage switch set. Login for user ^a refused.", 719 ute.project, ute.person); 720 call Abort (as_error_table_$dialup_error, ^ALLOW_RETRY); 721 end; 722 i = pdt.ht_relp; 723 revert seg_fault_error; 724 725 if pdt.ht_relp > 0 then 726 do; 727 pdt_htp = addrel (pdtp, pdt.ht_relp); 728 if pdt_htp -> htable.id ^= "ht01" & pdt_htp -> htable.id ^= "ht02" 729 then 730 do; 731 call Log_Error_with_Code (SL_LOG_BEEP, -1, 732 "No hash table at ^o of ^a.pdt", pdt.ht_relp, 733 project.project_id); 734 end; 735 else 736 do; 737 call hash_$search (pdt_htp, temp_person_name, i, code); 738 if code ^= 0 then 739 call Abort (as_error_table_$not_in_pdt, ALLOW_RETRY); 740 pdtep = addr (pdt.user (i)); 741 if user.state ^= 1 then 742 do; 743 call Log_Error_with_Code (SL_LOG_BEEP, -1, 744 "User ^a, state ^d, still in hash table of ^a.pdt", 745 temp_person_name, user.state, project.project_id); 746 call Abort (as_error_table_$not_in_pdt, ALLOW_RETRY); 747 end; 748 749 if user.person_id ^= temp_person_name then 750 do; 751 call Log_Error_with_Code (SL_LOG_BEEP, -1, 752 "Hash table of ^a.pdt has ^a, pdt has ^a, at ^p", 753 project.project_id, temp_person_name, 754 user.person_id, pdtep); 755 pdtep = null (); 756 end; 757 end; 758 end; 759 760 if pdtep = null then 761 do i = 1 to pdt.current_size while (pdtep = null ()); 762 pdtep = addr (pdt.user (i)); 763 if user.state = 1 then 764 do; 765 if user.person_id ^= temp_person_name then 766 pdtep = null (); 767 end; 768 else 769 pdtep = null (); 770 end; 771 772 if pdtep = null () then 773 call Abort (as_error_table_$not_in_pdt, ALLOW_RETRY); 774 775 ute.pdtep = pdtep; 776 ute.uprojp = satep; 777 return; 778 end Validate_Projectid; 779 780 Check_Anonymous_Password: 781 procedure (); 782 783 if user.password ^= "" then 784 if scramble_ ((user.password)) ^= uc_validate_info.password then 785 call Abort (as_error_table_$bad_anon_pw, ALLOW_RETRY); 786 return; 787 end Check_Anonymous_Password; 788 789 Check_Daemon_Access: 790 procedure (); 791 792 dcl group_id char (32) automatic; 793 794 call ioa_$rsnnl ("^a.^a.z", group_id, (0), ute.person, ute.project); 795 call mc_check_access_$log_in_as_daemon (group_id, ute.tty_name, code); 796 if code ^= 0 then 797 call Abort (code, ^ALLOW_RETRY); 798 return; 799 end Check_Daemon_Access; 800 801 Check_Channel_Access: 802 procedure (); 803 804 dcl group_id char (32) automatic; 805 dcl mode bit (36) aligned automatic; 806 dcl type char (8) automatic; 807 808 if ute.login_flags.dial_pw then 809 type = "dial"; 810 else if ute.login_flags.slave_pw then 811 type = "slave"; 812 else 813 type = "login"; 814 815 call ioa_$rsnnl ("^[anonymous^s^;^a^].^a.^a", group_id, (0), 816 (ute.anonymous = 1), ute.person, ute.project, ute.tag); 817 818 call hcs_$get_user_access_modes (as_data_$rcpdir, 819 rtrim (ute.tty_name) || ".acs", group_id, 0, mode, (""b), code); 820 if code ^= 0 then 821 do; 822 call Log_Error_with_Code (SL_LOG, code, 823 "Unable to check access for channel ^a.", ute.tty_name); 824 mode = ""b; 825 end; 826 827 if (mode & RW_ACCESS) ^= RW_ACCESS then 828 call Abort (as_error_table_$no_line_permission, ^ALLOW_RETRY); 829 return; 830 end Check_Channel_Access; 831 832 Process_Attributes: 833 procedure (); 834 835 dcl bstemp bit (36) aligned automatic; 836 837 /**** Don't let user set attributes disallowed by SAT or PDT */ 838 string (ute.ur_at) = string (ute.ur_at) & 839 ((string (user.at) & string (project.at)) 840 | USER_ATTRIBUTES_always_allowed); 841 842 /**** Turn on attributes which user cannot set. */ 843 string (ute.at) = 844 string (ute.at) | ^USER_ATTRIBUTES_settable_by_user; 845 846 /**** Turn on defaults for attributes user didn't specify. */ 847 string (ute.at) = string (ute.at) | 848 (string (user.at) & USER_ATTRIBUTES_default_in_pdt & 849 ^string (ute.ur_at)); 850 851 /**** Turn off attributes denied by SAT or PDT */ 852 string (ute.at) = string (ute.at) & 853 ((string (user.at) & string (project.at)) 854 | USER_ATTRIBUTES_always_allowed); 855 856 /**** Remember attributes set by user. */ 857 bstemp = string (ute.at) & 858 (string (ute.ur_at) | USER_ATTRIBUTES_settable_by_user); 859 860 /**** Turn off attributes user is allowed to set. */ 861 string (ute.at) = string (ute.at) & 862 ^USER_ATTRIBUTES_settable_by_user; 863 864 /**** Set user-settable attributes according to user wishes. */ 865 string (ute.at) = string (ute.at) | bstemp; 866 867 if ute.at.guaranteed_login then 868 ute.at.nobump = "1"b; 869 870 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 871 /* The process-saving attributes, disconnect_ok and save_on_disconnect, need */ 872 /* special handling. After the above logic, each is on in ute.at only if it */ 873 /* was on in both SAT and PDT. */ 874 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 875 876 /**** First we force both on if both were on in SAT. */ 877 if project.at.save_on_disconnect & project.at.disconnect_ok then 878 ute.at.save_on_disconnect, ute.at.disconnect_ok = "1"b; 879 880 /**** Then turn on save_on_disconnect if on in PDT, even if off in SAT */ 881 if user.at.save_on_disconnect then 882 ute.at.save_on_disconnect = "1"b; 883 884 /**** Process saving is impossible for anonymous users. */ 885 if flags.anonymous then 886 ute.at.save_on_disconnect, ute.at.disconnect_ok = ""b; 887 888 end Process_Attributes; 889 890 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 891 /* */ 892 /* Here we determine the user process authorization and maximum */ 893 /* authorization. We also set the audit flags. */ 894 /* */ 895 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 896 897 Check_Access_Authorization: 898 procedure (); 899 900 /**** Currently, we only allow anonymous users to log in at system_low 901* authorization. To lift this restriction, all that is necessary 902* is to delete the following statement. */ 903 if flags.anonymous then 904 ute.process_authorization = SYSTEM_LOW; 905 906 ute.process_authorization_range (*) = ""b; 907 908 /**** Set the process minimum authorization to the maximum of the following */ 909 authorization (1) = user.user_authorization (1); 910 authorization (2) = project.project_authorization (1); 911 if ute.anonymous = 1 then /* anonymous have no pnte */ 912 authorization (3) = project.project_authorization (1); 913 else authorization (3) = pnte.person_authorization (1); 914 call convert_access_class_$maximum (authorization, 3, ute.process_authorization_range (1)); 915 916 /**** Set the process maximum authorization to the minimum of the following */ 917 authorization (1) = user.user_authorization (2); 918 authorization (2) = project.project_authorization (2); 919 if ute.anonymous = 1 then /* anonymous have no pnte */ 920 authorization (3) = project.project_authorization (2); 921 else authorization (3) = pnte.person_authorization (2); 922 call convert_access_class_$minimum (authorization, 3, ute.process_authorization_range (2)); 923 924 /**** Merge the audit flags from the SAT and the PNT. If the user is 925* anonymous, there is no PNT entry se we set the ute.audit to the SAT 926* value. */ 927 if flags.anonymous then 928 ute.audit = project.audit; 929 else 930 ute.audit = merge_access_audit_flags_ (project.audit, pnte.audit); 931 932 /**** Compare the requested or default authorization with the computed 933* authorization range and reject the login if this authorization is 934* outside the allowed range. */ 935 if ^aim_check_$in_range (ute.process_authorization, 936 ute.process_authorization_range) then 937 do; 938 if ute.login_flags.auth_given | ute.process_type = PT_ABSENTEE 939 then 940 call Abort (as_error_table_$cant_give_that_authorization, 941 ALLOW_RETRY); 942 else 943 call Abort (as_error_table_$cant_give_dft_auth, 944 ALLOW_RETRY); 945 end; 946 947 end Check_Access_Authorization; 948 949 Check_Channel_Access_Class: 950 procedure (); 951 952 if ^aim_check_$in_range (ute.process_authorization, 953 uc_validate_info.channel_info.access_class_range) then do; 954 955 if ute.login_flags.auth_given | ute.process_type = PT_ABSENTEE then 956 call Abort (as_error_table_$cant_give_that_authorization, 957 ALLOW_RETRY); 958 else 959 call Abort (as_error_table_$cant_give_dft_auth, 960 ALLOW_RETRY); 961 end; 962 end Check_Channel_Access_Class; 963 964 Login: 965 procedure (); 966 967 dcl temp_code fixed bin (35) automatic; 968 dcl temp_coded_type fixed bin automatic; 969 dcl temp_terminal_type char (32) automatic; 970 971 ute.login_result = 0; 972 ute.active = NOW_LOGGED_IN; 973 ute.login_time = anstbl.current_time; 974 call as_access_audit_$login (utep, ""); 975 if ^flags.anonymous then 976 do; 977 978 /**** Tell caller about last login info */ 979 980 uc_validate_info.last_login_info.time = user.last_login_time; 981 if user.last_login_type = 0 then /* no such thing, old type */ 982 temp_coded_type = user.last_login_line_type; 983 else 984 temp_coded_type = user.last_login_type; 985 call ttt_info_$decode_type (temp_coded_type, temp_terminal_type, code) 986 ; 987 if code ^= 0 then 988 temp_terminal_type = "UNKNOWN"; 989 uc_validate_info.last_login_info.terminal_type = 990 temp_terminal_type; 991 uc_validate_info.last_login_info.terminal_id = 992 user.last_login_unit; 993 uc_validate_info.last_login_info.line_type = 994 user.last_login_line_type; 995 996 /**** Update last login info for next time */ 997 998 user.last_login_time = anstbl.current_time; 999 user.last_login_unit = 1000 ute.tty_id_code; 1001 call ttt_info_$encode_type (ute.terminal_type, 1002 temp_coded_type, temp_code); 1003 user.last_login_type = temp_coded_type; 1004 if temp_code ^= 0 then 1005 user.last_login_type = 0; 1006 user.last_login_line_type = ute.line_type; 1007 1008 /**** Tell caller about number of disconnected processes. */ 1009 1010 uc_validate_info.number_disconnected_processes = 1011 user.n_disconnected; 1012 end; 1013 1014 /**** Update the who table */ 1015 1016 call Update_Whotable (); 1017 1018 /**** Notify other login instances of this login */ 1019 1020 call Notify_Other_Instances (); 1021 code = 0; 1022 return; 1023 1024 Notify_Other_Instances: 1025 procedure (); 1026 1027 dcl code fixed bin (35) automatic; 1028 dcl i fixed bin automatic; 1029 dcl mail_for_user char (256); 1030 dcl notified_instance bit (1) aligned automatic; 1031 dcl temp_lth fixed bin (21) automatic; 1032 dcl temp_string char (100) automatic; 1033 dcl temp_utep ptr automatic; 1034 1035 notified_instance = FALSE; 1036 do i = 1 to anstbl.current_size while (^notified_instance); 1037 temp_utep = addr (anstbl.entry (i)); 1038 if temp_utep ^= utep & 1039 temp_utep -> ute.active >= NOW_HAS_PROCESS & 1040 temp_utep -> ute.anonymous = 0 & 1041 temp_utep -> ute.person = ute.person & 1042 ^temp_utep -> ute.disconnected & 1043 temp_utep -> ute.tag ^= TAG_UFT then do; 1044 temp_string = Convert_Message (as_error_table_$already_in_notify_msg); 1045 call ioa_$rsnnl (temp_string, mail_for_user, temp_lth, 1046 ute.person, ute.person, ute.project, 1047 ute.terminal_type, ute.tty_id_code); 1048 call Send_User_Mail (temp_utep -> ute.person, 1049 temp_utep -> ute.project, 1050 substr (mail_for_user, 1, temp_lth), 1051 ute.process_authorization, code); 1052 if code = 0 then 1053 notified_instance = TRUE; 1054 else do; 1055 call asu_$blast_user (temp_utep, mail_for_user, 1056 (""), code); 1057 if code = 0 then 1058 notified_instance = TRUE; 1059 end; 1060 end; 1061 end; 1062 return; 1063 end Notify_Other_Instances; 1064 end Login; 1065 1066 Abort: 1067 procedure (P_code, P_allow_retry); 1068 1069 dcl P_code fixed bin (35) parameter; 1070 dcl P_allow_retry bit (1) aligned parameter; 1071 1072 dcl status_code_string char (8) aligned automatic; 1073 1074 code = P_code; 1075 if code ^= 0 then 1076 call convert_status_code_ (code, status_code_string, ("")); 1077 else status_code_string = ""; 1078 1079 if P_allow_retry then 1080 ute.login_result = 2; /* allow retry */ 1081 else ute.login_result = 1; /* don't allow retry */ 1082 ute.failure_reason = 1; /* 1 = "lg_ctl_" said no */ 1083 call as_access_audit_$login (utep, (status_code_string)); 1084 goto RETURN; 1085 end Abort; 1086 1087 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 1088 /* */ 1089 /* Log_Error_with_Code: log an error via sys_log_$general and continue */ 1090 /* execution. */ 1091 /* */ 1092 /* Syntax: call Log_Error_with_Code (severity, code, ioa_ctl, args); */ 1093 /* */ 1094 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 1095 1096 Log_Error_with_Code: 1097 procedure options (variable); 1098 1099 dcl cu_$arg_list_ptr entry returns (ptr); 1100 dcl sys_log_$general entry (ptr); 1101 1102 sl_info = sl_info_sev_code_msg; 1103 sl_info.caller = ME; 1104 sl_info.arg_list_ptr = cu_$arg_list_ptr (); 1105 call sys_log_$general (addr (sl_info)); 1106 1107 end Log_Error_with_Code; 1108 1109 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 1110 /* */ 1111 /* Log_Coded_Error: log an error via sys_log_$general and continue */ 1112 /* execution. */ 1113 /* */ 1114 /* Syntax: call Log_Error_with_Code (severity, ioa_ctl_in_error_code, args); */ 1115 /* */ 1116 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 1117 1118 1119 Log_Coded_Error: 1120 procedure options (variable); 1121 1122 dcl cu_$arg_list_ptr entry returns (ptr); 1123 dcl sys_log_$general entry (ptr); 1124 1125 sl_info = sl_info_sev_coded_msg; 1126 sl_info.caller = ME; 1127 sl_info.arg_list_ptr = cu_$arg_list_ptr (); 1128 call sys_log_$general (addr (sl_info)); 1129 1130 end Log_Coded_Error; 1131 1132 /* * * * * * * * * * * * * * * * * * * * * * * * * */ 1133 1134 Convert_Message: 1135 procedure (P_code) returns (char (100) varying); 1136 1137 dcl P_code fixed bin (35) parameter; 1138 dcl message char (100) aligned automatic; 1139 1140 call convert_status_code_ (P_code, (""), message); 1141 return (rtrim (message)); 1142 1143 end Convert_Message; 1144 1145 Update_Pnte: 1146 procedure (); 1147 1148 call pnt_manager_$update_entry (addr (pnte), 1149 (uc_validate_info.changed_password), FALSE, code); 1150 maybe_update_pnte = FALSE; 1151 if code ^= 0 then 1152 do; 1153 call Log_Error_with_Code (SL_LOG_BEEP, code, 1154 "Error updating PNT entry for ^a.", ute.person); 1155 call Abort (as_error_table_$dialup_error, ALLOW_RETRY); 1156 end; 1157 return; 1158 end Update_Pnte; 1159 1160 1161 Send_User_Mail: 1162 procedure (P_personid, P_projectid, P_message, P_access_class, P_code); 1163 1164 dcl P_personid char (*) parameter; 1165 dcl P_projectid char (*) parameter; 1166 dcl P_message char (*) parameter; 1167 dcl P_access_class bit (72) aligned parameter; 1168 dcl P_code fixed bin (35) parameter; 1169 1170 dcl pdt_name char (32) automatic; 1171 dcl send_mail_$access_class entry (char (*), char (*), ptr, bit (72) aligned, fixed bin (35)); 1172 1173 unspec (send_mail_info) = ""b; 1174 send_mail_info.version = send_mail_info_version_2; 1175 send_mail_info.sent_from = "login"; 1176 send_mail_info.switches.wakeup = TRUE; 1177 send_mail_info.always_add = TRUE; 1178 1179 call ioa_$rsnnl ("^a.^a", pdt_name, (0), P_personid, P_projectid); 1180 call send_mail_$access_class (pdt_name, rtrim (P_message), addr (send_mail_info), P_access_class, code); 1181 if (code = 0) | (code = error_table_$wakeup_denied) 1182 | (code = error_table_$messages_off) then 1183 P_code = 0; 1184 else P_code = code; 1185 return; 1186 /* BEGIN send_mail_info include file */ 1 2 1 3 dcl send_mail_info_version_2 fixed bin init(2); 1 4 1 5 dcl 1 send_mail_info aligned, 1 6 2 version fixed bin, /* = 2 */ 1 7 2 sent_from char(32) aligned, 1 8 2 switches, 1 9 3 wakeup bit(1) unal, 1 10 3 mbz1 bit(1) unal, 1 11 3 always_add bit(1) unal, 1 12 3 never_add bit(1) unal, 1 13 3 notify bit(1) unal, 1 14 3 acknowledge bit(1) unal, 1 15 3 mbz bit(30) unal; 1 16 1 17 /* END send_mail_info include file */ 1186 1187 end Send_User_Mail; 1188 1189 Update_Whotable: 1190 procedure (); 1191 1192 /**** Publish the login in the whotab */ 1193 1194 dcl whotab_idx fixed bin automatic; 1195 1196 whoptr = as_data_$whoptr; 1197 whotab.n_users = whotab.n_users + 1; 1198 if ute.at.nolist then do; 1199 whotab_idx = 0; 1200 ute.whotabx = 0; 1201 end; 1202 else do; 1203 if whotab.freep = 0 then do; /* no free slots up to max */ 1204 whotab.laste = whotab.laste + 1; 1205 whotab_idx = whotab.laste - whotab.laste_adjust; 1206 end; 1207 else do; /* have a free slot */ 1208 whotab_idx = whotab.freep; 1209 whotab.freep = whotab.e (whotab_idx).chain; 1210 end; 1211 ute.whotabx = whotab_idx; 1212 if ute.anonymous = 1 then 1213 whotab.e (whotab_idx).person = "anonymous"; 1214 else whotab.e (whotab_idx).person = ute.person; 1215 whotab.e (whotab_idx).project = ute.project; 1216 whotab.e (whotab_idx).units = 0; /* filled in later */ 1217 whotab.e (whotab_idx).timeon = anstbl.current_time; 1218 whotab.e (whotab_idx).anon = ute.anonymous; 1219 whotab.e (whotab_idx).stby = 0; /* later */ 1220 whotab.e (whotab_idx).active = NOW_LOGGED_IN; 1221 whotab.e (whotab_idx).idcode = ute.tty_id_code; 1222 whotab.e (whotab_idx).group = ""; /* later */ 1223 whotab.e (whotab_idx).cant_bump_until = 0; /* later */ 1224 whotab.e (whotab_idx).proc_type = ute.process_type; 1225 whotab.e (whotab_idx).process_authorization = ute.process_authorization; 1226 whotab.e (whotab_idx).fg_abs, whotab.e (whotab_idx).disconnected, whotab.e (whotab_idx).suspended = FALSE; 1227 end; 1228 1229 if ute.process_type = PT_DAEMON then /* daemon process */ 1230 whotab.n_daemons = whotab.n_daemons + 1; 1231 else if ute.process_type = PT_ABSENTEE then do; /* absentee process */ 1232 if ute.queue > 0 then do; /* background absentee */ 1233 whotab.abs_users = whotab.abs_users + 1; 1234 if whotab_idx > 0 then 1235 whotab.e (whotab_idx).fg_abs = FALSE; 1236 end; 1237 else do; /* foreground absentee */ 1238 whotab.fg_abs_users = whotab.fg_abs_users + 1; 1239 if whotab_idx > 0 then 1240 whotab.e (whotab_idx).fg_abs = TRUE; 1241 end; 1242 end; 1243 return; 1244 end Update_Whotable; 1245 1246 /* format: off */ 1247 /* BEGIN INCLUDE FILE ... access_mode_values.incl.pl1 2 2* 2 3* Values for the "access mode" argument so often used in hardcore 2 4* James R. Davis 26 Jan 81 MCR 4844 2 5* Added constants for SM access 4/28/82 Jay Pattin 2 6* Added text strings 03/19/85 Chris Jones 2 7**/ 2 8 2 9 2 10 /* format: style4,delnl,insnl,indattr,ifthen,dclind10 */ 2 11 dcl ( 2 12 N_ACCESS init ("000"b), 2 13 R_ACCESS init ("100"b), 2 14 E_ACCESS init ("010"b), 2 15 W_ACCESS init ("001"b), 2 16 RE_ACCESS init ("110"b), 2 17 REW_ACCESS init ("111"b), 2 18 RW_ACCESS init ("101"b), 2 19 S_ACCESS init ("100"b), 2 20 M_ACCESS init ("010"b), 2 21 A_ACCESS init ("001"b), 2 22 SA_ACCESS init ("101"b), 2 23 SM_ACCESS init ("110"b), 2 24 SMA_ACCESS init ("111"b) 2 25 ) bit (3) internal static options (constant); 2 26 2 27 /* The following arrays are meant to be accessed by doing either 1) bin (bit_value) or 2 28* 2) divide (bin_value, 2) to come up with an index into the array. */ 2 29 2 30 dcl SEG_ACCESS_MODE_NAMES (0:7) init ("null", "W", "E", "EW", "R", "RW", "RE", "REW") char (4) internal 2 31 static options (constant); 2 32 2 33 dcl DIR_ACCESS_MODE_NAMES (0:7) init ("null", "A", "M", "MA", "S", "SA", "SM", "SMA") char (4) internal 2 34 static options (constant); 2 35 2 36 dcl ( 2 37 N_ACCESS_BIN init (00000b), 2 38 R_ACCESS_BIN init (01000b), 2 39 E_ACCESS_BIN init (00100b), 2 40 W_ACCESS_BIN init (00010b), 2 41 RW_ACCESS_BIN init (01010b), 2 42 RE_ACCESS_BIN init (01100b), 2 43 REW_ACCESS_BIN init (01110b), 2 44 S_ACCESS_BIN init (01000b), 2 45 M_ACCESS_BIN init (00010b), 2 46 A_ACCESS_BIN init (00001b), 2 47 SA_ACCESS_BIN init (01001b), 2 48 SM_ACCESS_BIN init (01010b), 2 49 SMA_ACCESS_BIN init (01011b) 2 50 ) fixed bin (5) internal static options (constant); 2 51 2 52 /* END INCLUDE FILE ... access_mode_values.incl.pl1 */ 1247 1248 /* BEGIN INCLUDE FILE ... as_data_.incl.pl1 ... */ 3 2 3 3 /* format: style4 */ 3 4 3 5 /* This file must be kept in sync with as_data_.alm */ 3 6 3 7 /****^ HISTORY COMMENTS: 3 8* 1) change(86-09-21,Beattie), approve(86-09-22,MCR7542), 3 9* audit(86-10-31,Brunelle), install(86-11-12,MR12.0-1211): 3 10* Remove references to the 963 and 029 preaccess commands and remove support 3 11* for ARDS, 202_ETX, 2741 and 1050 in system interfaces. 3 12* 2) change(86-09-25,Swenson), approve(87-07-20,MCR7737), 3 13* audit(87-07-20,GDixon), install(87-08-04,MR12.1-1056): 3 14* Add references to as_data_ entrypoints added for Login Server. 3 15* 3) change(87-03-03,Brunelle), approve(87-07-20,MCR7697), 3 16* audit(87-07-20,GDixon), install(87-08-04,MR12.1-1056): 3 17* Added new user signal field of inacrcvd (14) to handle inactivity response 3 18* from user. 3 19* END HISTORY COMMENTS */ 3 20 3 21 dcl as_data_$BS char (1) aligned ext static; /* BACKSPACE character */ 3 22 dcl as_data_$CR char (1) aligned ext static; /* CARRIAGE RETURN character */ 3 23 dcl as_data_$abs_dim char (32) ext static; /* absentee DIM */ 3 24 dcl as_data_$acct_update_priority fixed bin ext static; /* accounting update IPC priority */ 3 25 dcl as_data_$acsdir char (168) ext static; /* Access Control Segment directory */ 3 26 dcl as_data_$ansp ptr ext static; /* answer_table */ 3 27 dcl as_data_$as_procid bit (36) aligned ext static; /* Answering Service process id */ 3 28 dcl as_data_$as_ring fixed bin (3) ext static; /* AS operating ring */ 3 29 dcl as_data_$as_tty char (6); /* AS master tty channel */ 3 30 dcl as_data_$asmtp ptr ext static; /* AS meter table */ 3 31 dcl as_data_$autp ptr ext static; /* absentee_user_table */ 3 32 dcl as_data_$buzzardp ptr ext static; /* dpg_ list of buteo processes */ 3 33 dcl as_data_$cdtp ptr ext static; /* CDT */ 3 34 dcl as_data_$default_weight fixed bin (35) ext; /* default user process load control weight */ 3 35 dcl as_data_$devtabp ptr ext static; /* device_table */ 3 36 dcl as_data_$dft_user_ring fixed bin (3) ext static; /* default user ring */ 3 37 dcl as_data_$dutp ptr ext static; /* daemon_user_table */ 3 38 dcl as_data_$g115_dim char (32) ext static; 3 39 dcl as_data_$lct_initialized bit (1) aligned ext static; /* LCT allocated in ring 0 */ 3 40 dcl as_data_$lct_size fixed bin ext static; /* CDT tty channels + spares */ 3 41 dcl as_data_$max_user_ring fixed bin (3) ext static; /* maximum user ring */ 3 42 dcl as_data_$mgtp ptr ext static; /* master group table */ 3 43 dcl as_data_$mrd_dim char (32) ext static; /* daemon's message routing DIM */ 3 44 dcl as_data_$ntty_dim char (32) ext static; /* network connection DIM */ 3 45 dcl as_data_$pdtdir char (168) ext static; /* PDT directory */ 3 46 dcl as_data_$pit_ptr ptr ext static; /* pit_temp_ */ 3 47 dcl as_data_$rcpdir char (168) ext static; /* RCP directory */ 3 48 dcl as_data_$request_priority fixed bin ext static; 3 49 dcl as_data_$rs_ptrs (0:9) ptr ext static; /* rate_structures */ 3 50 dcl as_data_$rtdtp ptr ext static; /* RTDT */ 3 51 dcl as_data_$sat_htp ptr ext static; /* SAT hash table */ 3 52 dcl as_data_$satp ptr ext static; /* SAT */ 3 53 dcl as_data_$suffix (0:9) char (2) unaligned ext static; 3 54 dcl as_data_$sysdir char (168) ext static; /* system control directory */ 3 55 dcl as_data_$teens_suffix (10:19) char (2) unaligned ext static; 3 56 dcl as_data_$terminet_tabs_string char (144) varying ext static; 3 57 dcl as_data_$tty_dim char (32) ext static; /* standard interactive DIM */ 3 58 dcl as_data_$update_priority fixed bin ext static; /* ??? */ 3 59 dcl as_data_$version char (8) ext static; /* AS version */ 3 60 dcl as_data_$whoptr ptr ext static; /* whotab */ 3 61 3 62 dcl 1 as_data_$login_args aligned ext static, /* control arguments for login */ 3 63 2 n_login_args fixed bin, 3 64 2 pad fixed bin, 3 65 2 login_args (55 /* as_data_$login_args.n_login_args */) char (24) unaligned; 3 66 3 67 dcl 1 as_data_$signal_types ext static aligned, /* IPC process control signals */ 3 68 2 n_signals fixed bin, 3 69 2 pad fixed bin, 3 70 2 signals (14 /* as_data_$signal_types.n_signals */) char (8) unaligned; 3 71 3 72 dcl 1 as_data_$system_signal_types ext static aligned, /* IPC process control signals */ 3 73 2 n_system_signals fixed bin, 3 74 2 pad fixed bin, 3 75 2 system_signals (10 /* as_data_$system_signal_types.n_system_signals */) char (8) unaligned; 3 76 3 77 dcl as_data_$login_words fixed bin ext static aligned, 3 78 /* interactive login words */ 3 79 1 as_data_login_words aligned based (addr (as_data_$login_words)), 3 80 2 n_words fixed bin, 3 81 2 pad fixed bin, 3 82 2 words (0 refer (as_data_login_words.n_words)) char (16) unaligned; 3 83 3 84 dcl as_data_$debug_flag bit (1) aligned external static; 3 85 dcl as_data_$ls_request_server_info_ptr ptr external static; 3 86 dcl as_data_$ls_message_buffer_cur_lth fixed bin (18) external static; 3 87 dcl as_data_$ls_message_buffer_max_lth fixed bin (18) external static; 3 88 dcl as_data_$ls_message_buffer_ptr ptr external static; 3 89 3 90 /* END INCLUDE FILE ... as_data_.incl.pl1 ... */ 1248 1249 /* BEGIN INCLUDE FILE ... answer_table.incl.pl1 */ 4 2 4 3 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 4 4 /* */ 4 5 /* The answer table has one entry per "login instance" whether completed or */ 4 6 /* not. It is connected to the Channel Definition Table by the pointer */ 4 7 /* "channel". The header is used mostly by dialup_. */ 4 8 /* */ 4 9 /* Programs which use this file must also include user_table_header.incl.pl1 */ 4 10 /* */ 4 11 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 4 12 4 13 /****^ HISTORY COMMENTS: 4 14* 1) change(81-09-10,Kittlitz), approve(), audit(), install(): 4 15* Replace anstbl.incl.pl1. 4 16* 2) change(85-01-15,Swenson), approve(), audit(), install(): 4 17* Add anstbl.session_uid_counter. 4 18* 3) change(85-08-21,Coren), approve(), audit(), install(): 4 19* Add anstbl.message_update_time and named constants for values of 4 20* anstbl.session, and to make all padding explicit. 4 21* 4) change(85-08-23,Coren), approve(), audit(), install(): 4 22* Change "entry" to a placeholder so as not to require 4 23* user_table_entry.incl.pl1. 4 24* 5) change(86-06-29,Swenson), approve(87-07-13,MCR7741), 4 25* audit(87-04-14,GDixon), install(87-08-04,MR12.1-1056): 4 26* Added the flag login_server_present which indicates whether a login 4 27* server request has been received. This is used to determine whether 4 28* dial_ctl_ should call uc_cleanup_network_dials_ (and thus 4 29* hpriv_connection_list_, which only exists with the MNA RPQ software). 4 30* 6) change(87-04-14,GDixon), approve(87-07-13,MCR7741), 4 31* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 4 32* A) Moved constants for ute.pw_flags.mask_ctl into 4 33* user_table_entry.incl.pl1. 4 34* B) Added common table header to all user tables. 4 35* END HISTORY COMMENTS */ 4 36 4 37 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 4 38 /* */ 4 39 /* The anstbl structure below is divided into sections. Each section begins */ 4 40 /* with a comment describing the elements in the section. Elements are */ 4 41 /* placed within a section, based upon their function or the programs that */ 4 42 /* use them. Each section begins on a double word and is an even number of */ 4 43 /* words long. */ 4 44 /* */ 4 45 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 4 46 4 47 4 48 4 49 /* format: style4 */ 4 50 4 51 dcl ANSTBL_version_4 static options (constant) init (4); /* version of this declaration */ 4 52 4 53 dcl ansp ptr automatic init (null); 4 54 4 55 dcl 1 anstbl based (ansp) aligned, /* Structure of answer table */ 4 56 2 header like ut_header, /* Header common to all user tables. */ 4 57 4 58 /* Counter elements. */ 4 59 2 nlin fixed bin, /* number of active lines */ 4 60 2 mxlin fixed bin, /* maximum number of active lines */ 4 61 2 n_users fixed bin, /* number of logged-in users */ 4 62 2 max_users fixed bin, /* maximum number of users allowed */ 4 63 2 n_units fixed bin, /* number of logged in units */ 4 64 2 max_units fixed bin, /* maximum number of units */ 4 65 2 n_sessions fixed bin, /* number of Multics sessions */ 4 66 2 n_pad fixed bin, 4 67 4 68 /* Name elements. */ 4 69 2 sysdir char (64) unal, /* name of main system control directory */ 4 70 2 as_tty char (8) unal, /* name of main answering service device. */ 4 71 4 72 /* Login elements. */ 4 73 2 login_word char (8) unal, /* login word if special_session=1 */ 4 74 2 session char (8) unal, /* session indicator */ 4 75 2 special_message char (128) unal, /* message to be printed for special session */ 4 76 2 message_update_time fixed bin (71), /* time at which special_message was last updated */ 4 77 2 message_lng fixed bin, /* length of special message */ 4 78 2 login_pad fixed bin, 4 79 4 80 /* Table update elements. */ 4 81 2 lock_count fixed bin, /* global lock for all system control tables */ 4 82 2 update_pending bit (1) aligned, /* flag indicating that update is required */ 4 83 2 update_channel fixed binary (71), /* event channel of update procedure */ 4 84 2 acct_update_chn fixed bin (71) aligned, /* Timer IPC channel */ 4 85 2 acct_last_update_time fixed bin (71) aligned, /* Time of last accounting update */ 4 86 2 acct_alarm_fail fixed bin, /* non-zero if alarm has failed */ 4 87 2 update_pad fixed bin, 4 88 4 89 /* dialup_ data values. */ 4 90 2 current_time fixed bin (71), /* Time of last transaction */ 4 91 2 processid_index fixed bin (18), /* unique index for process id generation */ 4 92 2 session_uid_counter fixed bin (35), /* current session_uid */ 4 93 4 94 /* load_ctl_ elements. */ 4 95 2 shift fixed bin, /* Shift, set by act_ctl_ */ 4 96 2 auto_maxu fixed bin, /* 0 = manual, 1 = config, 2 = load-level */ 4 97 2 extra_units fixed bin, /* Total daemon and abs units. */ 4 98 /* load_ctl_ load leveling desired response range: */ 4 99 2 response_high fixed bin, /* bad if user response time slower than this */ 4 100 2 response_low fixed bin, /* bad if user response time faster than this */ 4 101 2 load_ctl_pad fixed bin, 4 102 4 103 /* Login server request server data. */ 4 104 2 ls_request_server_event_channel fixed bin (71), /* channel for login server requests */ 4 105 2 ls_request_server_process_id bit (36) aligned, /* process serving login server requests */ 4 106 2 login_server_present bit (1) aligned, /* On IFF a login server request has been processed */ 4 107 4 108 2 entry_pad (28) fixed bin, /* pad to 128 words */ 4 109 2 entry (0 refer (anstbl.current_size)), /* user entries */ 4 110 3 contents (UTE_SIZE) fixed bin; 4 111 4 112 /* constants */ 4 113 4 114 /* values for anstbl.session */ 4 115 4 116 dcl (AT_NORMAL init ("normal "), 4 117 AT_SPECIAL init ("special "), 4 118 AT_SHUTDOWN init ("shutdown")) char (8) internal static options (constant); 4 119 4 120 dcl UTE_SIZE fixed bin internal static initial (300); 4 121 4 122 /* END INCLUDE FILE ... answer_table.incl.pl1 */ 1249 1250 /* BEGIN INCLUDE FILE ... dialup_values.incl.pl1 */ 5 2 5 3 /* format: style4 */ 5 4 5 5 /* Values for "cdte.tra_vec" used by dialup_ and others. */ 5 6 5 7 /* Modified by T. Casey April 1976 to add WAIT_NEW_PASSWORD 5 8* - in 1977 and 1978 to add WAIT_(GREETING_MSG DELETE_CHANNEL) 5 9* - and in October 1979 to add WAIT_CONNECT_REQUEST 5 10* Modified by Robert Coren in May 1981 to add TANDD_ATTACH values and 5 11* WAIT_DISCARD_WAKEUP 5 12* Modified by T. Casey, July 1981, for MR9.0, to add WAIT_BEFORE_HANGUP. 5 13* Modified by E. N. Kittlitz, July 1982, to add TTY_MASKED. 5 14**/ 5 15 5 16 /****^ HISTORY COMMENTS: 5 17* 1) change(87-04-20,GDixon), approve(87-07-13,MCR7741), 5 18* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 5 19* Add constant arrays naming cdte.state, cdte.tra_vec and ute.active values. 5 20* 2) change(87-05-11,GDixon), approve(87-07-13,MCR7741), 5 21* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 5 22* Add named constants for instance tags. 5 23* END HISTORY COMMENTS */ 5 24 5 25 dcl (WAIT_DIALUP init (1), /* Channel waiting for dialup. */ 5 26 WAIT_ANSWERBACK initial (2), /* WRU sent, waiting for reply */ 5 27 WAIT_LOGIN_LINE init (3), /* Greeting typed, wait for login command. */ 5 28 WAIT_LOGIN_ARGS init (4), /* Want rest of login line */ 5 29 WAIT_OLD_PASSWORD init (5), /* "-cpw" was specified. Wait for old password. */ 5 30 WAIT_PASSWORD init (6), /* Waiting for password. (If "-cpw", repeat of new one.) */ 5 31 WAIT_NEW_PASSWORD init (7), /* "-cpw" was specified. Wait for new password */ 5 32 WAIT_LOGOUT_SIG init (8), /* Channel is hooked up. Wait for logout. */ 5 33 WAIT_LOGOUT init (9), /* A logout has been requested. Wait for process to die */ 5 34 WAIT_LOGOUT_HOLD init (10), /* As above but don't hang up when it dies. */ 5 35 WAIT_DETACH init (11), /* As above but ignore channel afterwards. */ 5 36 WAIT_NEW_PROC init (12), /* As above but make new process and continue. */ 5 37 WAIT_REMOVE init (13), /* As above but completely expunge channel. */ 5 38 WAIT_FIN_PRIV_ATTACH init (14), /* When channel dials up, connect it to user */ 5 39 WAIT_DIAL_RELEASE init (15), /* Waiting for master process to release. */ 5 40 WAIT_DIAL_OUT init (16), /* Waiting for auto call to complete */ 5 41 WAIT_HANGUP init (17), /* Wait for the hangup event to occur for a channel */ 5 42 WAIT_SLAVE_REQUEST init (18), /* Ignore line until someone asks */ 5 43 WAIT_GREETING_MSG init (19), /* Print greeting message and wait for login line */ 5 44 WAIT_DELETE_CHANNEL init (20), /* Channel deleted - mark cdte after process is destroyed */ 5 45 WAIT_CONNECT_REQUEST init (21), /* logged in; awaiting request re disconnected processes */ 5 46 WAIT_TANDD_HANGUP init (22), /* when channel hangs up, proceed with t & d attachment */ 5 47 WAIT_FIN_TANDD_ATTACH init (23), /* when channel dials up, finish t & d attachment */ 5 48 WAIT_DISCARD_WAKEUPS init (24), /* disregard all wakeups on channel */ 5 49 WAIT_BEFORE_HANGUP init (25), /* allow output to print before hanging up */ 5 50 WAIT_DESTROY_REQUEST init (26), /* waiting to continue with destroy request after process has destroyed itself */ 5 51 WAIT_NEW_PROC_REQUEST init (27) /* waiting to continue with new_proc request after process has destroyed itself */ 5 52 ) fixed bin internal static options (constant); 5 53 5 54 dcl TRA_VEC_VALUES (0:13) char (32) aligned int static options (constant) init 5 55 /* names of ute.destroy_flag values */ 5 56 ("", "wait dialup", "wait answerback", "wait login line", /* 0-3 */ 5 57 "wait login args", "wait old password", "wait password", /* 4-6 */ 5 58 "wait new password", "wait logout signal", "wait logout", /* 7-9 */ 5 59 "wait logout hold", "wait detach", "wait new proc", /* 10-12 */ 5 60 "wait remove"); /* -13 */ 5 61 5 62 /* Values for "cdte.state", typewriter state. */ 5 63 5 64 dcl (TTY_MASKED init (-1), /* Terminal channel is there, but masked by MCS */ 5 65 TTY_HUNG init (1), /* Terminal channel is there, but dead. */ 5 66 TTY_KNOWN init (2), /* Channel being "listened" to, awaiting dialup. */ 5 67 TTY_DIALED init (5) /* Channel is dialed up. This is normal state. */ 5 68 ) fixed bin internal static options (constant); 5 69 5 70 dcl STATE_VALUES (-1:5) char (15) aligned int static options (constant) init 5 71 /* names of cdte.state values */ 5 72 ("masked", "dead", "hung up", "listening", "", "", "dialed up"); 5 73 5 74 /* Values for "cdte.in_use" and "ate.active" */ 5 75 5 76 dcl (NOW_FREE init (0), /* Entry is empty. */ 5 77 NOW_HUNG_UP init (1), /* Entry is usable but tty is hung up. */ 5 78 NOW_LISTENING init (2), /* Entry is waiting for phone call. */ 5 79 NOW_DIALED init (3), /* Entry is connected but login not complete. */ 5 80 NOW_LOGGED_IN init (4), /* Entry is logged in but no process. */ 5 81 NOW_HAS_PROCESS init (5), /* Entry has a valid process. */ 5 82 NOW_DIALING init (6), /* Entry (auto_call line) is dialing */ 5 83 NOW_DIALED_OUT init (7) /* Entry (auto_call line) is in use */ 5 84 ) fixed bin internal static options (constant); 5 85 5 86 dcl ACTIVE_VALUES (0:5) char (18) aligned int static options (constant) init 5 87 /* names of ute.active values */ 5 88 ("free", "hung-up", "listening", "dialed", "logged in, no proc", "logged in & proc"); 5 89 5 90 5 91 /**** Values for ute.tag */ 5 92 5 93 dcl (TAG_INTERACTIVE init("a"), 5 94 TAG_UFT init("f"), 5 95 TAG_ABSENTEE init("m"), 5 96 TAG_PROXY init("p"), 5 97 TAG_DAEMON init("z") 5 98 ) char(1) int static options(constant); 5 99 5 100 5 101 /**** Following are constants used to indicate to the process termination 5 102* handler the reason for the process termination. They are used by 5 103* uc_proc_term_handler_, as well as uc_ls_new_proc_request_ and 5 104* uc_ls_destroy_request_. */ 5 105 5 106 dcl ( 5 107 PT_FPE initial (1), 5 108 PT_LOGOUT initial (4), 5 109 PT_NEW_PROC_AUTH initial (13), 5 110 PT_HANGUP initial (20), 5 111 PT_SHUTDOWN initial (21), 5 112 PT_BUMP initial (22), 5 113 PT_ALARM initial (23), 5 114 PT_DETACH initial (24), 5 115 PT_UNBUMP initial (25), 5 116 PT_OPERATOR_TERMINATE initial (27), 5 117 PT_DESTROY_REQUEST initial (30), 5 118 PT_NEW_PROC_REQUEST initial (31) 5 119 ) fixed bin (17) internal static options (constant); 5 120 5 121 /**** Values for ute.preempted: 5 122* -1 user unbumped after term signal sent 5 123* 0 user unbumped; ignore alarm___ 5 124* 1 value internally used in load_ctl_ 5 125* 2 user bumped; when alarm___ comes in, send term signal 5 126* 3 term signal sent; destroy process if termsgnl, alarm___, or cpulimit 5 127* signals come in 5 128* 4 user bumped; process sick, so destroy without sending term signal 5 129* 5 trm_ signal sent, termsgnl received; (if still 3, we never got the 5 130* termsgnl). */ 5 131 5 132 dcl ( 5 133 PREEMPT_UNBUMP initial (-1), 5 134 PREEMPT_UNBUMP_IGNORE_ALARM initial (0), 5 135 PREEMPT_LOAD_CTL initial (1), 5 136 PREEMPT_BUMPED initial (2), 5 137 PREEMPT_TERM_SENT initial (3), 5 138 PREEMPT_BUMPED_NO_TERM initial (4), 5 139 PREEMPT_TERMSGNL_RECEIVED initial (5) 5 140 ) fixed bin (17) internal static options(constant); 5 141 5 142 dcl PREEMPT_VALUES (-1:5) char(28) varying int static options(constant) init( 5 143 "unbumped", 5 144 "not bumped, ignore alarm___", 5 145 "load_ctl_", 5 146 "bumped", 5 147 "bumped, trm_ sent", 5 148 "bumped without trm_", 5 149 "bumped, termsgnl received"); 5 150 5 151 /* END INCLUDE FILE ... dialup_values.incl.pl1 */ 1250 1251 /* BEGIN INCLUDE FILE ... hashst.incl.pl1 */ 6 2 /* format: style4 */ 6 3 6 4 /* General Utility hash table */ 6 5 6 6 dcl 1 htable based (htp) aligned, /* hash table entries of level 2 are statistical info */ 6 7 2 nb fixed bin, /* number of buckets in hash table */ 6 8 2 ni fixed bin, /* number of entries used */ 6 9 2 np fixed bin, /* number of times hash_ called referincing this table */ 6 10 2 tnt fixed bin, /* total # of tries to find, enter, or delete an entry */ 6 11 2 id char (4), /* ht01 version 1 of hash_ */ 6 12 2 gnt fixed bin, /* greatest number of tries for search etc. */ 6 13 2 loht fixed bin (18) unsigned, /* length of hash table in words */ 6 14 2 pad bit (36) aligned, /* padding */ 6 15 2 buckets (1:hash_table_size_ refer (htable.nb)), /* 26111=((1024*255)/10 words per entry)-1 (8-word header) */ 6 16 3 name char (32) unaligned, /* identifier of entry */ 6 17 3 value bit (36) aligned, /* value corresponding to name */ 6 18 3 flags aligned, 6 19 4 ds bit (1) unal, /* deleted switch="1"b if deleted */ 6 20 4 empty bit (1) unal, 6 21 4 pad bit (34) unal, /* empty switch="1"b if empty */ 6 22 2 end_of_table bit (0) aligned; /* to get address */ 6 23 6 24 declare MAX_HT_BUCKETS_IN_SEG fixed bin init (26111) int static options (constant); 6 25 declare hash_table_size_ fixed bin; 6 26 6 27 /* END INCLUDE FILE ... hashst.incl.pl1 */ 1251 1252 /* BEGIN INCLUDE FILE ... installation_parms.incl.pl1 */ 7 2 7 3 /* Modified 740723 by PG to add short AIM access names */ 7 4 /* Modified Fall 1977 by T. Casey to add fatal loop and trm_ signal parameters */ 7 5 /* Modified 04/03/78 by CDT to add rcp_init_flags structure */ 7 6 /* Modified May 1978 by T. Casey to add resource timer and resource price list parameters */ 7 7 /* Modified November 1978 by T. Casey for MR7.0, to add absentee control parameters */ 7 8 /* Modified 17 September 1980 by G. Palter to add default absentee queue */ 7 9 /* Modified April 1981 by E. N. Kittlitz for chn_wakeup_error_loop, chn_wakeup_error_count */ 7 10 /* Modified June 1981 by E. N. Kittlitz for nrates/rate_structures UNCA rate_structure support. 7 11* Version, expand foregound_cpu_default_limit and abs_cpu_max_limit to fixed bin (35) fields. 7 12* nrscp & resource array moved from offset 2064 (octal) to 2400 (octal). */ 7 13 /* Modified 1984-06-19 BIM to remove obsolete fields, and add 7 14* strict_trusted_path. */ 7 15 /* Modified 1984-10-24 BIM for default_pdir_quota. */ 7 16 /* Modified 1984-12-05 BIM for require_operator_login. */ 7 17 /* Modified 1985-03-01 by E. Swenson for password flags. */ 7 18 7 19 7 20 /****^ HISTORY COMMENTS: 7 21* 1) change(86-01-27,MSharpe), approve(87-05-25,MCR7690), 7 22* audit(87-03-29,GDixon), install(87-08-04,MR12.1-1056): 7 23* added vchn_requires_accept parameter. 7 24* 2) change(87-02-17,GDixon), approve(87-05-25,MCR7680), 7 25* audit(87-06-02,Parisek), install(87-08-04,MR12.1-1056): 7 26* Correct formatting problems. 7 27* END HISTORY COMMENTS */ 7 28 7 29 7 30 /* NOTE: rate_structure.incl.pl1 uses these declarations */ 7 31 7 32 7 33 dcl 1 installation_parms based (ip) aligned, /* describes installation parameters */ 7 34 2 part_1 like installation_parms_part_1 aligned, 7 35 2 resource (0 refer (installation_parms.nrscp)) like installation_parms_resource_array_part aligned; 7 36 7 37 dcl installation_parms_version_1 fixed bin init (1) static internal options (constant); 7 38 dcl installation_parms_version_2 fixed bin init (2) static internal options (constant); 7 39 7 40 dcl 1 installation_parms_part_1 based aligned, /* Used only by installation_parms and rate_structure */ 7 41 2 installation_id char (32), /* Name printed at dialup and in who */ 7 42 2 company char (64), /* company name */ 7 43 2 department char (64), /* department */ 7 44 2 companyds char (120), /* company, double spaced */ 7 45 2 departmentds char (120), /* dpeartment double spaced */ 7 46 2 shifttab (336) bit (3) unal, /* half-hrs from 0000 Mon, value is shift no */ 7 47 2 cpu_price (0: 7) float bin, /* price for cpu hour, by shift */ 7 48 2 log_base_price (0: 7) float bin, /* price for log hour, by shift */ 7 49 2 io_ops_price (0: 7) float bin, /* price per 1000 terminal io ops */ 7 50 2 core_price (0: 7) float bin, /* price for core page-hour, by shift */ 7 51 2 ndevices fixed bin, /* number of devices to charge */ 7 52 2 devtab (16), /* Maximum 16 */ 7 53 3 device_id char (8), /* Name of device */ 7 54 3 device_price (0: 7) float bin, /* Price by shift */ 7 55 2 inactive_time fixed bin, /* seconds of inactivity permitted */ 7 56 2 warning_time fixed bin, /* seconds from warning to logout */ 7 57 2 login_time fixed bin, /* seconds in which to complete login */ 7 58 2 acct_update fixed bin, /* seconds between acct update */ 7 59 2 login_tries fixed bin, /* number of login tries allowed */ 7 60 2 disk_price float bin, /* disk rate, in $/page-sec */ 7 61 2 registration_price float bin, /* fee per month per user */ 7 62 2 dolsign char (1), /* "dollar sign" */ 7 63 2 abs_cpu_price (4) float bin, /* price for absentee cpu by queue */ 7 64 2 abs_mem_price (4) float bin, /* Absentee memory charge */ 7 65 2 iod_rec_price (4) float bin, /* price for io daemon lines, per K, by queue */ 7 66 2 abs_timax (4) fixed bin (35), /* Absentee TIMAX parameter */ 7 67 2 abs_cpu_default_limit (4) fixed bin (35), /* default absentee cpu limit in seconds (changed from usec.) */ 7 68 2 syserr_log_copy_threshold fixed bin (9), /* Threshold (in PAGES) at which the 7 69* Initializer will copy the syserr_log */ 7 70 2 default_pdir_seg_quota fixed bin (17) unaligned, /* if system and project say 0 */ 7 71 2 default_pdir_dir_quota fixed bin (17) unaligned, /* Always used */ 7 72 2 fatal_error_loop_count fixed bin (17) unaligned, 7 73 2 fatal_error_loop_seconds fixed bin (17) unaligned, 7 74 2 term_real_time_seconds fixed bin (17) unaligned, 7 75 2 term_cpu_time_seconds fixed bin (17) unaligned, 7 76 2 rcp_init_flags like rcp_init_flags aligned, /* one word long */ 7 77 2 rsc_timer_seconds fixed bin (17) unaligned, /* time interval at which to check for resource availability */ 7 78 2 pad_old_fg_cpu_default_limit bit (18) unaligned, 7 79 2 foreground_queue_position fixed bin (17) unal, /* queue that foreground queue comes after */ 7 80 2 idle_time_constant_seconds fixed bin (17) unal, /* how far back to maintain moving average of load */ 7 81 2 sus_cpu_time_seconds fixed bin (17) unal, /* allow suspended process this much cpu time */ 7 82 2 sus_real_time_seconds fixed bin (17) unal, /* and this much real time, before bumping it */ 7 83 2 foreground_cpu_default_limit fixed bin (35), /* default cpu time limit (sec) for foreground absentee jobs */ 7 84 2 access_authorization_ceiling bit (72), /* "System high" access authorization. */ 7 85 2 level_names (0:7) char (32), /* Names for security levels. */ 7 86 2 category_names (18) char (32), /* Names for security categories. */ 7 87 2 short_level_names (0:7) char (8), /* Abbreviated level names. */ 7 88 2 short_category_names (18) char (8), /* Abbreviated category names. */ 7 89 2 ncon fixed bin, /* Number of config elements. */ 7 90 2 cona (51), /* each entry is 5 words long */ 7 91 3 cpu fixed bin (5) unal, /* Number of CPU's */ 7 92 3 shift fixed bin (5) unal, /* Shift number */ 7 93 3 x1 fixed bin (23) unal, 7 94 3 kmem fixed bin (17) unal, /* Memory size */ 7 95 3 kbulk fixed bin (17) unal, /* Bulk store size */ 7 96 3 x2 fixed bin (17) unal, 7 97 3 maxa fixed bin (11) unal, /* Max abs users */ 7 98 3 maxq fixed bin (5) unal, /* Max abs q */ 7 99 3 maxu_base fixed bin (17) unal, 7 100 3 response_high fixed bin (17) unal, 7 101 3 response_low fixed bin (17) unal, 7 102 3 x3 fixed bin (17) unal, 7 103 7 104 /* Absentee control parameters. New for MR7.0 */ 7 105 7 106 2 max_abs (0:7) fixed bin (17) unal, /* per-shift upper limit on abs_maxu */ 7 107 2 min_abs (0:7) fixed bin (17) unal, /* per-shift lower limit on abs_maxu */ 7 108 2 pct_abs (0:7) fixed bin (17) unal, /* abs_maxu is this pct (per-shift) of idle units */ 7 109 7 110 2 max_qres (0:7, 4) fixed bin (17) unal, /* per-shift-and-queue upper limit on reserved slots */ 7 111 2 min_qres (0:7, 4) fixed bin (17) unal, /* per-shift-and-queue lower limit on reserved slots */ 7 112 2 pct_qres (0:7, 4) fixed bin (17) unal, /* reserved slots are these pcts of abs_maxu */ 7 113 7 114 2 abs_cpu_max_limit (0:7, 4) fixed bin (35), /* per-shift-and-queue upper limit (sec) on jobs' cpu times */ 7 115 7 116 2 default_absentee_queue fixed binary (17) unaligned, /* default absentee queue for ear, etc. */ 7 117 7 118 2 chn_wakeup_error_loop_count fixed bin (17) unaligned, /* maximum number of channel wakeups in following interval */ 7 119 2 chn_wakeup_error_loop_seconds fixed bin (17) unaligned, /* works like fatal_error_loop_count/seconds */ 7 120 2 rate_structure_number fixed bin (17) unaligned, /* rate_structure number of this RS */ 7 121 2 version fixed bin (35), /* must be 2 */ 7 122 2 nrates fixed bin, /* number of rate structures */ 7 123 2 rate_structures (0:9) char (32), /* names of rate_structures */ 7 124 2 trusted_path_login bit (1) aligned, /* forbid logout -hold and new_proc -auth */ 7 125 2 require_operator_login bit (1) aligned, /* just what it says */ 7 126 2 operator_inactive_time fixed bin, /* seconds between commands --> not logged in. */ 7 127 2 validate_daemon_commands bit (1) aligned, /* force existence and adequate access to 7 128* mcacs segments for operators */ 7 129 2 password_min_length fixed bin, /* minimum length of passwords */ 7 130 2 password_gpw_length fixed bin, /* length of generated passwords */ 7 131 2 password_change_interval fixed bin, /* number of days until must change */ 7 132 2 password_expiration_interval fixed bin, /* number of days that a password may remain unused */ 7 133 2 vchn_requires_accept bit (1) aligned, /* "login personid -op -vchn foo" must be 7 134* "accepted" by operator if personid is not 7 135* signed on system console */ 7 136 2 end_pad (219) bit (36) aligned, /* leave plenty of pad before the variable length price list */ 7 137 2 nrscp fixed bin; /* length of resource price array; must have offset 2400 (octal), 7 138* or someone miscounted when using part of pad2 */ 7 139 7 140 7 141 /* Entries in the following array may be accessed via system_info_$resource_price. 7 142* This array should not be accessed directly, since its format will change in subsequent releases of Multics. */ 7 143 7 144 dcl 1 installation_parms_resource_array_part (0 refer (installation_parms.nrscp)) based, 7 145 2 name char (32), 7 146 2 price float bin; 7 147 8 1 /* BEGIN INCLUDE FILE ... rcp_init_flags.incl.pl1 */ 8 2 8 3 /* Created on 04/24/78 by Michael R. Jordan */ 8 4 /* Modified 04/10/79 by C. D. Tavares */ 8 5 8 6 dcl rifp ptr; 8 7 8 8 dcl 1 rcp_init_flags based (rifp), 8 9 2 unload_on_detach bit (1) unaligned, /* ON => tape volumes are unloaded after detaching */ 8 10 2 pad1 bit (2) unaligned, /* obsolete */ 8 11 2 resource_mgmt_enabled bit (1) unaligned, /* ON => resource management has been enabled */ 8 12 2 auto_registration bit (1) unaligned, /* ON => auto registration allowed */ 8 13 2 pad2 bit (2) unaligned, /* future expansion, possibly of authentication_level */ 8 14 2 authentication_level fixed bin (2) unaligned unsigned; /* see below for values */ 8 15 8 16 dcl (No_authentication initial (0), 8 17 Nominal_authentication initial (1), 8 18 Automatic_authentication initial (2), 8 19 Manual_authentication initial (3)) fixed bin internal static options (constant); 8 20 8 21 dcl authentication_level_names (0:3) char (12) internal static options (constant) initial 8 22 ("none", "nominal", "automatic", "manual"); 8 23 8 24 /* END INCLUDE FILE ... rcp_init_flags.incl.pl1 */ 7 148 7 149 7 150 /* END INCLUDE FILE ... installation_parms.incl.pl1 */ 1252 1253 /* BEGIN INCLUDE FILE ... line_types.incl.pl1 */ 9 2 9 3 /* Written November 10 1975 by Paul Green */ 9 4 /* Modified October 1978 by Larry Johnson to include line_type_names */ 9 5 /* Modified 12/19/78 by J. Stern to add POLLED_VIP line type */ 9 6 /* Modified 9/27/79 by J. Stern to add X25LAP line type */ 9 7 /* Modified Spring 1981 by Charles Hornig to add HDLC line type */ 9 8 /* Modified May 1981 by Robert Coren to add COLTS line type */ 9 9 /* Modified September 1984 by Robert Coren to correctly count VIP as a synchronous line type */ 9 10 9 11 9 12 /****^ HISTORY COMMENTS: 9 13* 1) change(86-02-25,Negaret), approve(87-07-13,MCR7679), 9 14* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 9 15* Add a DSA line type. 9 16* 2) change(87-03-17,Beattie), approve(87-07-13,MCR7656), 9 17* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 9 18* Add HASP_OPR to identify HASP workstation consoles with login service. 9 19* END HISTORY COMMENTS */ 9 20 9 21 9 22 declare (LINE_MC initial (-2), 9 23 LINE_TELNET initial (-1), 9 24 LINE_UNKNOWN initial (0), 9 25 LINE_ASCII initial (1), 9 26 LINE_1050 initial (2), 9 27 LINE_2741 initial (3), 9 28 LINE_ARDS initial (4), 9 29 LINE_SYNCH initial (5), 9 30 LINE_G115 initial (6), 9 31 LINE_BSC initial (7), 9 32 LINE_ETX initial (8), 9 33 LINE_VIP initial (9), 9 34 LINE_ASYNC1 initial (10), 9 35 LINE_ASYNC2 initial (11), 9 36 LINE_ASYNC3 initial (12), 9 37 LINE_SYNC1 initial (13), 9 38 LINE_SYNC2 initial (14), 9 39 LINE_SYNC3 initial (15), 9 40 LINE_POLLED_VIP initial (16), 9 41 LINE_X25LAP initial (17), 9 42 LINE_HDLC initial (18), 9 43 LINE_COLTS initial (19), 9 44 LINE_DSA initial (20), 9 45 LINE_HASP_OPR initial (21) 9 46 ) fixed bin internal static options (constant); 9 47 9 48 dcl max_line_type fixed bin int static options (constant) init (21); 9 49 9 50 declare n_sync_line_types fixed bin int static options (constant) init (10); 9 51 9 52 declare sync_line_type (10) fixed bin int static options (constant) init (5, 6, 7, 9, 13, 14, 15, 16, 17, 18); 9 53 9 54 dcl line_types (-2:21) char (16) int static options (constant) init ( 9 55 "MC", /* -2 */ 9 56 "TELNET", /* -1 */ 9 57 "none", /* 0 */ 9 58 "ASCII", /* 1 */ 9 59 "1050", /* 2 */ 9 60 "2741", /* 3 */ 9 61 "ARDS", /* 4 */ 9 62 "Sync", /* 5 */ 9 63 "G115", /* 6 */ 9 64 "BSC", /* 7 */ 9 65 "202ETX", /* 8 */ 9 66 "VIP", /* 9 */ 9 67 "ASYNC1", /* 10 */ 9 68 "ASYNC2", /* 11 */ 9 69 "ASYNC3", /* 12 */ 9 70 "SYNC1", /* 13 */ 9 71 "SYNC2", /* 14 */ 9 72 "SYNC3", /* 15 */ 9 73 "POLLED_VIP", /* 16 */ 9 74 "X25LAP", /* 17 */ 9 75 "HDLC", /* 18 */ 9 76 "COLTS", /* 19 */ 9 77 "DSA", /* 20 */ 9 78 "HASP_OPR"); /* 21 */ 9 79 9 80 /* END INCLUDE FILE ... line_types.incl.pl1 */ 1253 1254 /* BEGIN INCLUDE FILE ... pdt.incl.pl1 */ 10 2 /* Requires user_attributes.incl.pl1 */ 10 3 10 4 /* Modified 740723 by PG to add AIM info */ 10 5 /* Modified 750604 by T. Casey to add priority scheduler parameters */ 10 6 /* Modified May 1976 by T. Casey to add cutoff warning thresholds and change version to 3 */ 10 7 /* Modified May 1977 by John Gintell to add reqfile, projfile, and SAT to header */ 10 8 /* Modified May 1978 by T. Casey to add pdir_quota to user entry */ 10 9 /* Modified June 1978 by T. Casey to add rel ptr to pdt hash table */ 10 10 /* Modified November 1978 by T. Casey to add max_(fore back)ground, n_(fore back)ground and abs_foreground_cpu_limit */ 10 11 /* Modified October 1979 by T. Casey to add counters for interactive and disconnected processes. */ 10 12 /* Modified Feb 1980 by M. B. Armstrong to implement multiple rate structures (UNCA). */ 10 13 /* Modified May 1980 by R. McDonald to use iod cpu time field for page charging (UNCA) */ 10 14 /* Modified December 1981 by E. N. Kittlitz for user_warn fields */ 10 15 /* Modified January 1982 by E. N. Kittlitz for user_attributes.incl.pl1 changes */ 10 16 /* Modified September 1982 by E. N. Kittlitz for default ring. */ 10 17 /* Modified 1984-07-05 BIM for min authorization, version to 4 */ 10 18 10 19 dcl (PDT_version init (4), /* version of this declaration */ 10 20 PDT_header_lth init (256), /* length in words of PDT head */ 10 21 PDT_entry_lth init (256), /* length in words of PDT entry */ 10 22 10 23 PDT_project_name_length init (9), /* proper length of pdt.project_name */ 10 24 PDT_person_id_length init (22) /* proper length of user.person_id */ 10 25 ) fixed bin internal static options (constant); 10 26 10 27 dcl 1 pdt based (pdtp) aligned, 10 28 11 1 /* BEGIN INCLUDE FILE author.incl.pl1 */ 11 2 11 3 /* the "author" items must always be the first ones in the table. The 11 4* module which moves the converted table to the System Control process 11 5* fills in these data items and assumes them to be at the head of the segment 11 6* regardless of the specific table's actual declaration. The variables 11 7* "lock" and "last_install_time" used to be "process_id" and "ev_channel" 11 8* respectively. For tables installed in multiple processes, these 11 9* are to be used to lock out multiple installations. */ 11 10 11 11 /* Lock should be used as a modification lock. Since, in general, 11 12* entries may not be moved in system tables, even by installations, 11 13* it is sufficient for only installers and programs that change threads 11 14* to set or respect the lock. Simply updating data in an entry 11 15* requires no such protection. 11 16* 11 17* Last_install_time is used by readers of system tables to detect 11 18* installations or other serious modifications. By checking it before 11 19* and after copying a block of data, they can be protected against 11 20* modifications. 11 21* 11 22* Modules that set the lock should save proc_group_id, and then 11 23* put their group id there for the time they hold the lock. 11 24* if they do not actually install the, they should restore the group id. 11 25**/ 11 26 11 27 2 author aligned, /* validation data about table's author */ 11 28 3 proc_group_id char (32), /* process-group-id (personid.projectid.tag) */ 11 29 3 lock bit (36), /* installation lock */ 11 30 3 update_attributes bit (1) unal, /* update/add/delete attributes */ 11 31 3 update_authorization bit (1) unal, /* update only authorizations */ 11 32 3 deferral_notified bit (1) unal, /* installer notified of deferral of installation */ 11 33 3 pad bit (33) unaligned, 11 34 3 last_install_time fixed bin (71), 11 35 3 table char (4), /* name of table, e.g., SAT MGT TTT RTDT PDT etc. */ 11 36 3 w_dir char (64), /* author's working directory */ 11 37 11 38 /* END INCLUDE FILE author.incl.pl1 */ 10 29 10 30 2 max_size fixed bin, /* max number of entries table can grow */ 10 31 2 current_size fixed bin, /* current size of table (in entries) */ 10 32 2 version fixed bin, /* table version */ 10 33 2 freep fixed bin, /* relptr to begin of free chain */ 10 34 2 n_users fixed bin, /* number of entries actually used */ 10 35 2 project_name char (28), /* name of project */ 10 36 2 project_dir char (64), /* treename of project's directory */ 10 37 2 projfile_version fixed bin, 10 38 2 projentry bit (66*36), 10 39 2 pad3 (5) bit (36) aligned, 10 40 2 reqfile_version fixed bin, 10 41 2 reqentry bit (40*36), 10 42 2 pad4 (9) fixed bin, 10 43 2 sat_version fixed bin, 10 44 2 satentry bit (52*36), /* everything in sat.project from project.at on */ 10 45 2 pad5 (4) bit (36) aligned, 10 46 2 date_reqfile_copied fixed bin (71), 10 47 2 rs_number fixed bin (9) unsigned unaligned, /* rate structure number, easier than looking in satentry */ 10 48 2 pad2l bit (27) unaligned, 10 49 2 pad2 (16) fixed bin, /* make header 256 words long */ 10 50 2 ht_relp fixed bin (18) aligned, /* if nonzero, pdt has hash table at that loc */ 10 51 2 user (1019) aligned, /* the project definition table entries */ 10 52 3 pad (256) bit (36) aligned; /* each entry is 256 words long */ 10 53 10 54 /* The hash table, if there is one, is right after the last user, and is described in hashst.incl.pl1 */ 10 55 10 56 10 57 10 58 dcl 1 user based (pdtep) aligned, /* declaration of a single PDT entry */ 10 59 2 state fixed bin, /* 1 = normal, 2 = deleted 0 = free */ 10 60 2 lock bit (36), /* update lock */ 10 61 2 person_id char (24) aligned, /* login name of user */ 10 62 2 now_in fixed bin, /* count of users logged in on this entry */ 10 63 2 password char (8) aligned, /* password for anonymous user */ 10 64 2 at like user_attributes aligned, /* include user_attributes.incl.pl1 */ 10 65 2 initial_procedure char (64) aligned, /* initproc and subsystem name packed into one string */ 10 66 2 home_dir char (64) aligned, /* user's default working directory */ 10 67 2 bump_grace fixed bin, /* number of minutes he is protected */ 10 68 2 high_ring fixed bin, /* highest ring user may use */ 10 69 2 default_ring fixed bin (17) unal, /* ring user will start in */ 10 70 2 low_ring fixed bin (17) unal, /* lowest ring user may use */ 10 71 2 outer_module char (32), /* outer module used if user is interactive */ 10 72 2 lot_size fixed bin, /* size of linkage offset table */ 10 73 2 kst_size fixed bin, /* size of known segment table */ 10 74 2 cls_size fixed bin, /* size of combined linkage */ 10 75 2 uflags, /* various flags */ 10 76 3 dont_call_init_admin bit (1) unal, /* call overseer direct */ 10 77 3 ip_given bit (1) unal, /* ip_len gives length of initproc packed in initial_procedure */ 10 78 3 ss_given bit (1) unal, /* subsystem name is packed in initial_procedure */ 10 79 3 flagpad bit (33) unal, 10 80 2 ip_len fixed bin (17) unal, /* length of initproc name packed in initial_procedure */ 10 81 2 ss_len fixed bin (17) unal, /* length of subsystem name packed in initial_procedure */ 10 82 2 dollar_limit float bin, 10 83 2 dollar_charge float bin, /* total dollars spent this month */ 10 84 2 shift_limit (0: 7) float bin, 10 85 2 daton fixed bin (71), /* date user added to system */ 10 86 2 datof fixed bin (71), /* date user deleted */ 10 87 2 last_login_time fixed bin (71), /* time of last login */ 10 88 2 last_login_unit char (4), /* terminal id last used */ 10 89 2 last_login_type fixed bin (17) unal, /* terminal type */ 10 90 2 last_login_line_type fixed bin (17) unal, /* terminal line type */ 10 91 2 time_last_bump fixed bin (71), /* for bump-wait */ 10 92 2 last_update fixed bin (71), /* time of last transaction */ 10 93 2 logins fixed bin, /* number of logins */ 10 94 2 crashes fixed bin, /* sessions abnormally terminated */ 10 95 2 interactive (0: 7), /* interactive use, shifts 0-7 */ 10 96 3 charge float bin, /* total dollar charge this shift */ 10 97 3 xxx fixed bin, 10 98 3 cpu fixed bin (71), /* cpu usage in microseconds */ 10 99 3 core fixed bin (71), /* core demand in page-microseconds */ 10 100 3 connect fixed bin (71), /* total console time in microseconds */ 10 101 3 io_ops fixed bin (71), /* total i/o ops on terminal */ 10 102 2 absentee (4), /* absentee use, queues 1-4 */ 10 103 3 charge float bin, /* dollar charge this queue */ 10 104 3 jobs fixed bin, /* number of jobs submitted */ 10 105 3 cpu fixed bin (71), /* total cpu time in microseconds */ 10 106 3 memory fixed bin (71), /* total memory demand */ 10 107 2 iod (4), /* io daemon use, queues 1-4 */ 10 108 3 charge float bin, /* dollar charge this queue */ 10 109 3 pieces fixed bin, /* pieces of output requested */ 10 110 3 pad fixed bin (35), 10 111 3 pages fixed bin (35), /* number of pages output */ 10 112 3 lines fixed bin (71), /* total record count of output */ 10 113 2 devices (16) float bin, /* device charges */ 10 114 2 time_last_reset fixed bin (71), /* time PDT last updated */ 10 115 2 absolute_limit float bin, /* Limit, not reset monthly */ 10 116 2 absolute_spent float bin, /* Spending against this */ 10 117 2 absolute_cutoff fixed bin (71), /* Spending will be reset on this date */ 10 118 2 absolute_increm fixed bin, /* .. time increment code. 0 = don't reset */ 10 119 2 pad_was_authorization bit (72) aligned, 10 120 2 group char (8), /* group for this user (if at.igroup = "1"b) */ 10 121 2 warn_days fixed bin (17) unaligned, /* warn user if less than this many days to cutoff */ 10 122 2 warn_pct fixed bin (17) unaligned, /* warn user if less than this percent of funds left */ 10 123 2 warn_dollars float bin, /* warn user if less than this amount of funds left */ 10 124 2 n_foreground fixed bin (9) unsigned unaligned, /* number of foreground and background processes */ 10 125 2 n_background fixed bin (9) unsigned unaligned, /* that this user has. see limits just below */ 10 126 2 max_foreground fixed bin (9) unsigned unaligned, /* max simultaneous foreground and */ 10 127 2 max_background fixed bin (9) unsigned unaligned, /* background processes that this user can have */ 10 128 2 n_interactive fixed bin (9) unsigned unaligned, /* number of interactive processes that user has */ 10 129 2 n_disconnected fixed bin (9) unsigned unaligned, /* number of disconnected processes that user has */ 10 130 2 pdtupad1 fixed bin (18) unsigned unaligned, 10 131 2 user_warn_days fixed bin (17) unaligned, /* warn user if less than this many days to user cutoff */ 10 132 2 user_warn_pct fixed bin (17) unaligned, /* warn user if less than this percent of user funds left */ 10 133 2 user_warn_dollars float bin, /* warn user if less than this amount of user funds left */ 10 134 2 user_authorization (2) bit (72) aligned, /* range */ 10 135 2 pdtupad (5) fixed bin, 10 136 2 abs_foreground_cpu_limit fixed bin (17) unaligned, /* time limit (sec) on foreground absentee jobs */ 10 137 2 pdir_quota fixed bin (17) unaligned, /* quota to put on user's pdir (0 => use default) */ 10 138 2 chain fixed bin; /* free chain */ 10 139 10 140 /* END INCLUDE FILE ... pdt.incl.pl1 */ 1254 1255 /* BEGIN INCLUDE FILE ... pnt_entry.incl.pl1 */ 12 2 12 3 /* Modified 790702 by C. Hornig for MSF PNT */ 12 4 /* Modified 84-07-18 BIM for V2, aim ranges, long passwords. */ 12 5 /* Modified 84-09-25 for operator attribute... -E. A. Ranzenbach */ 12 6 /* Modified 85-03-05 E. Swenson for user_validated_time */ 12 7 12 8 /**** The ms_table_mgr_ has fixed sized entries, for now. 12 9* The presence of a version field and some pad allow 12 10* us to have incrementally-upgraded PNTE's in a future change. 12 11**/ 12 12 12 13 /**** The conversion to V2 copies the existing encrypted passwords. 12 14* Since the 32 character scrambling algorithm will not give the 12 15* same results, the short_XX flags indicate that the old scrambler 12 16* should be used. The short flags are automatically turned off 12 17* by calls to update the password with the long-scrambled form. */ 12 18 12 19 /* format: style4,insnl,delnl */ 12 20 12 21 declare pntep pointer automatic; 12 22 declare 1 pnt_entry based (pntep) aligned, /* declaration of a single PNT entry */ 12 23 2 version fixed bin, 12 24 2 private aligned, 12 25 3 pw_flags aligned, 12 26 4 short_pw bit (1) unal, /* ON password is eight-character form */ 12 27 4 short_network_pw bit (1) unal, /* ON card password is eight character form. */ 12 28 3 password character (32), /* person's password */ 12 29 3 network_password character (32), 12 30 2 public, 12 31 3 user_id character (32), /* user ID (for alias entries */ 12 32 3 alias character (8), 12 33 3 default_project character (16), /* user's default project */ 12 34 3 flags, /* one-bit flags */ 12 35 4 has_password bit (1) unaligned, 12 36 4 has_network_password bit (1) unaligned, 12 37 4 trap bit (1) unal, /* If this password is used, holler */ 12 38 4 lock bit (1) unal, /* prevent login if on. */ 12 39 4 nochange bit (1) unal, /* user cannot change password */ 12 40 4 must_change bit unal, /* user must change password at next login */ 12 41 4 pw_time_lock bit (1) unal, /* if password has a time lock */ 12 42 4 generate_pw bit (1) unal, /* ON if we give new pw, OFF lets user select new pw */ 12 43 4 last_bad_pw_reported bit (1) unal, /* ON if user has NOT been told about last bad password */ 12 44 4 operator bit (1) unal, /* ON if user can login as an operator... */ 12 45 4 pads bit (26) unal, 12 46 3 n_good_pw fixed bin, /* Number of good passwords */ 12 47 3 n_bad_pw fixed bin, /* Number of wrong passwords */ 12 48 3 n_bad_pw_since_good fixed bin, /* Number of wrong passwords since good */ 12 49 3 time_pw_changed fixed bin (71), /* When password was modified by user */ 12 50 12 51 3 time_last_good_pw fixed bin (71), 12 52 3 time_last_bad_pw fixed bin (71), /* When pw was last given wrong */ 12 53 3 bad_pw_term_id character (4), /* where bad password from */ 12 54 3 bad_pw_line_type fixed bin (17), /* ... */ 12 55 3 bad_pw_term_type character (32), 12 56 3 password_timelock fixed bin (71), /* Password is locked up until here */ 12 57 3 person_authorization (2) bit (72), /* authorization of this person */ 12 58 3 default_person_authorization bit (72), /* default authorization of this person */ 12 59 3 audit bit (36), /* audit flags for person */ 12 60 3 pad1 bit (36), /* pad to even word boundary */ 12 61 3 user_validated_time fixed bin (71), /* time this PNT entry was last validated by an administrator */ 12 62 2 pad (80 - 64) bit (36) aligned; 12 63 12 64 declare PNT_ENTRY_VERSION_2 fixed bin init (2) int static options (constant); 12 65 12 66 /* END INCLUDE FILE ... pnte.incl.pl1 */ 1255 1256 /* BEGIN INCLUDE FILE ... sat.incl.pl1 */ 13 2 13 3 13 4 13 5 13 6 /****^ HISTORY COMMENTS: 13 7* 1) change(86-09-05,Parisek), approve(87-06-17,MCR7570), 13 8* audit(87-06-15,Hirneisen), install(87-08-06,MR12.1-1066): 13 9* Expand comment line of project.state to include the renamed state (state = 13 10* 3). 13 11* END HISTORY COMMENTS */ 13 12 13 13 13 14 13 15 /* Modified 740723 by PG to add AIM info */ 13 16 /* Modified 750604 by T. Casey to add priority scheduler parameters */ 13 17 /* Modified May 1976 by T. Casey to add project cutoff limits */ 13 18 /* Modified May 1978 by T. Casey to add pdir_quota */ 13 19 /* Modified November 1978 by T. Casey to add max_(fore back)ground and abs_foreground_cpu_limit */ 13 20 /* Modified July 1979 by J. N. R. Barnecut to support multiple rate structures. (UNCA) */ 13 21 /* Modified January 1982 by E. N. Kittlitz for user_attributes.incl.pl1 changes */ 13 22 /* Modified 1984-07-05 BIM range of authorizations, version 3 */ 13 23 13 24 dcl (SAT_version init (3), /* version 2 of this declaration */ 13 25 13 26 SAT_header_lth init (466), /* length in words of SAT header */ 13 27 SAT_entry_lth init (80), /* length in words of SAT entry */ 13 28 13 29 SAT_project_name_length init (9) /* proper length of project.project_id */ 13 30 ) fixed bin internal static options (constant); 13 31 13 32 dcl 1 sat based (satp) aligned, 13 33 14 1 /* BEGIN INCLUDE FILE author.incl.pl1 */ 14 2 14 3 /* the "author" items must always be the first ones in the table. The 14 4* module which moves the converted table to the System Control process 14 5* fills in these data items and assumes them to be at the head of the segment 14 6* regardless of the specific table's actual declaration. The variables 14 7* "lock" and "last_install_time" used to be "process_id" and "ev_channel" 14 8* respectively. For tables installed in multiple processes, these 14 9* are to be used to lock out multiple installations. */ 14 10 14 11 /* Lock should be used as a modification lock. Since, in general, 14 12* entries may not be moved in system tables, even by installations, 14 13* it is sufficient for only installers and programs that change threads 14 14* to set or respect the lock. Simply updating data in an entry 14 15* requires no such protection. 14 16* 14 17* Last_install_time is used by readers of system tables to detect 14 18* installations or other serious modifications. By checking it before 14 19* and after copying a block of data, they can be protected against 14 20* modifications. 14 21* 14 22* Modules that set the lock should save proc_group_id, and then 14 23* put their group id there for the time they hold the lock. 14 24* if they do not actually install the, they should restore the group id. 14 25**/ 14 26 14 27 2 author aligned, /* validation data about table's author */ 14 28 3 proc_group_id char (32), /* process-group-id (personid.projectid.tag) */ 14 29 3 lock bit (36), /* installation lock */ 14 30 3 update_attributes bit (1) unal, /* update/add/delete attributes */ 14 31 3 update_authorization bit (1) unal, /* update only authorizations */ 14 32 3 deferral_notified bit (1) unal, /* installer notified of deferral of installation */ 14 33 3 pad bit (33) unaligned, 14 34 3 last_install_time fixed bin (71), 14 35 3 table char (4), /* name of table, e.g., SAT MGT TTT RTDT PDT etc. */ 14 36 3 w_dir char (64), /* author's working directory */ 14 37 14 38 /* END INCLUDE FILE author.incl.pl1 */ 13 34 13 35 2 max_size fixed bin, /* max number of entries table can grow */ 13 36 2 current_size fixed bin, /* current size of table (in entries) */ 13 37 2 version fixed bin, /* version number of table (word 32) */ 13 38 2 freep fixed bin, /* free chain ptr. 0 if no free entries */ 13 39 2 n_projects fixed bin, /* number of entries actually used */ 13 40 2 pad_was_max_users bit (36) aligned, 13 41 2 max_units fixed bin, /* maximum number of login-units per session */ 13 42 2 pad_was_max_prim bit (36) aligned, 13 43 2 uwt_size fixed bin, /* size of User Weight Table */ 13 44 2 uwt (24) aligned, /* User Weight Table */ 13 45 3 initproc char (64) unaligned, /* user's initial procedure */ 13 46 3 units fixed bin, /* weight of initial procedure */ 13 47 2 system_admin (2) char (32) unal, /* system administrator ID */ 13 48 2 pad1 (4) fixed bin, /* padding to 466 wds */ 13 49 2 project (3258), /* The SAT entries. 255K segment. */ 13 50 3 pad (80) fixed bin; /* each entry is 80 words long */ 13 51 13 52 13 53 dcl 1 project based (satep) aligned, /* declaration of a single SAT entry */ 13 54 2 state fixed bin, /* state 1 = normal, 0 = free, 2 = deleted, 3 = renamed */ 13 55 2 project_id char (12) unaligned, /* project's name */ 13 56 2 project_dir char (64) unaligned, /* project's directory */ 13 57 2 pdt_ptr pointer, /* pointer to current PDT */ 13 58 2 max_users fixed bin, /* maximum number of users from project */ 13 59 2 n_users fixed bin, /* current number */ 13 60 2 at like user_attributes aligned, /* include user_attributes.incl.pl1 */ 13 61 2 admin (4) aligned, /* list of project's administrators */ 13 62 3 userid char (30) unal, /* administrator's user-id (personid.projectid) */ 13 63 3 pad char (2) unal, 13 64 2 cutoff char (1), /* if project is cut off, why. */ 13 65 2 min_ring fixed bin, /* lowest ring for project */ 13 66 2 max_ring fixed bin, /* highest ring for project */ 13 67 2 alias char (8) unal, /* project alias */ 13 68 2 group char (8) unal, /* default group for this project */ 13 69 2 grace_max fixed bin, /* maximum bump grace */ 13 70 2 audit bit (36), /* audit flags for project */ 13 71 2 project_authorization (2) bit (72), /* authorization of this project */ 13 72 2 groups (2) char (8) unal, /* authorized groups for this project */ 13 73 2 days_to_cutoff fixed bin (17) unaligned, /* these figures are as of last running of daily_summary */ 13 74 2 pct_balance fixed bin (17) unaligned, /* they are used for warning message printing only */ 13 75 2 dollars_to_cutoff float bin, /* and are not to be taken as up-to-date figures */ 13 76 2 pdir_quota fixed bin (17) unaligned, /* max pdir quota allowed for project */ 13 77 2 max_foreground fixed bin (9) unsigned unaligned, /* max simultaneous foreground and background */ 13 78 2 max_background fixed bin (9) unsigned unaligned, /* processes that a user on this project can have */ 13 79 2 abs_foreground_cpu_limit fixed bin (17) unaligned, /* time limit on foreground absentee jobs */ 13 80 2 rs_number fixed bin (9) unsigned unaligned, /* rate structure number (0=default rates ) */ 13 81 2 satpad1 fixed bin (9) unsigned unaligned, 13 82 2 satpad (1) bit (36) aligned, /* pad to 80 words */ 13 83 2 chain fixed bin; /* if free entry, chain */ 13 84 13 85 /* END INCLUDE FILE ... sat.incl.pl1 */ 1256 1257 /* BEGIN INCLUDE FILE sys_log_constants.incl.pl1 ... 82-09-24 E. N. Kittlitz */ 15 2 15 3 15 4 /****^ HISTORY COMMENTS: 15 5* 1) change(87-04-22,GDixon), approve(87-06-10,MCR7708), 15 6* audit(87-06-02,Parisek), install(87-08-04,MR12.1-1056): 15 7* Added sl_info structure and associated named constants for use in calling 15 8* sys_log_$general. 15 9* END HISTORY COMMENTS */ 15 10 15 11 15 12 /* format: style4 */ 15 13 15 14 dcl ( 15 15 SL_TYPE_CRASH init (-3), /* type message with banner & kill system */ 15 16 SL_TYPE_BEEP init (-2), /* type message with banner */ 15 17 SL_TYPE init (-1), /* type message */ 15 18 SL_LOG_SILENT init (0), /* log message */ 15 19 SL_LOG init (1), /* log & type message */ 15 20 SL_LOG_BEEP init (2), /* log & type message with banner */ 15 21 SL_LOG_CRASH init (3) /* log & type message with banner & kill system */ 15 22 ) fixed bin internal static options (constant); 15 23 15 24 dcl 1 sl_info aligned automatic, 15 25 2 version char(8), /* structure version */ 15 26 2 arg_list_ptr ptr, /* arg_list with values */ 15 27 2 loc, 15 28 3 (mode, severity, code, caller, data, class, ioa_msg) fixed bin, 15 29 /* These flags control where the corresponding data item is found.*/ 15 30 /* -1: data appears in the corresponding structure element below */ 15 31 /* 0: data is not present anywhere */ 15 32 /* +N: data is Nth item in argument list pointed to by */ 15 33 /* sl_info.arg_list_ptr. Upon return, data copied into */ 15 34 /* corresponding structure element. */ 15 35 /* if data = +N: */ 15 36 /* argN is data_ptr, argN+1 is data_len */ 15 37 /* if ioa_msg = +N: */ 15 38 /* argN+1, ... argLAST are arguments substituted into the */ 15 39 /* ioa_msg control string. The formatted msg is returned. */ 15 40 2 flags, 15 41 3 ioa_msg_is_error_code bit(1) unal, /* ioa_ctl is error code. */ 15 42 3 flags_pad bit(35) unal, 15 43 2 mode fixed bin, /* as-mode, command-mode */ 15 44 2 severity fixed bin, /* error severity */ 15 45 2 code fixed bin(35), /* error table code */ 15 46 2 caller char(65) varying, /* caller refname$entryname*/ 15 47 2 data, /* binary data ptr/length */ 15 48 3 data_ptr ptr, 15 49 3 data_lth fixed bin(21), 15 50 2 class char(10) varying, /* binary data class */ 15 51 2 ioa_msg char(500) varying; /* formatted message text */ 15 52 15 53 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 15 54 /* */ 15 55 /* If data values (eg, sl_info.caller) are passed in the argument list, */ 15 56 /* their data types should be as shown in the structure above, except that */ 15 57 /* character strings should be char(*) nonvarying. */ 15 58 /* */ 15 59 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 15 60 15 61 /* value for sl_info.version */ 15 62 dcl SL_INFO_version_1 char (8) int static options(constant) init("sl_info1"); 15 63 15 64 /* values for sl_info.mode */ 15 65 dcl (SL_INFO_as_mode init(1), 15 66 SL_INFO_command_mode init(2)) fixed bin int static options(constant); 15 67 15 68 /* values for sl_info.loc.(severity code caller data class ioa_ctl arg) */ 15 69 dcl (SL_INFO_arg_given_in_structure init(-1), 15 70 SL_INFO_arg_not_given init(0)) fixed bin int static options(constant); 15 71 15 72 15 73 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 15 74 /* */ 15 75 /* The following static structures are commonly used in the Login Server */ 15 76 /* user control software. */ 15 77 /* */ 15 78 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 15 79 15 80 /* Syntax: call Abort (severity, code, ioa_ctl, args); */ 15 81 15 82 dcl 1 sl_info_sev_code_msg aligned int static options(constant), 15 83 2 version char(8) init ("sl_info1"), 15 84 2 arg_list_ptr ptr init (null), 15 85 2 loc, 15 86 3 (mode init (-1), 15 87 severity init ( 1), 15 88 code init ( 2), 15 89 caller init (-1), 15 90 data init ( 0), 15 91 class init ( 0), 15 92 ioa_msg init ( 3)) fixed bin, 15 93 2 flags, 15 94 3 ioa_msg_is_error_code bit(1) unal init ("0"b), 15 95 3 flags_pad bit(35) unal init ("0"b), 15 96 2 mode fixed bin init ( 1), 15 97 2 severity fixed bin init ( 0), 15 98 2 code fixed bin(35) init ( 0), 15 99 2 caller char(65) varying init (""), 15 100 2 data, 15 101 3 data_ptr ptr init (null), 15 102 3 data_lth fixed bin(21) init ( 0), 15 103 2 class char(10) varying init (""), 15 104 2 ioa_msg char(500) varying init (""); 15 105 15 106 /* Syntax: call Abort (severity, ioa_ctl, args); */ 15 107 15 108 dcl 1 sl_info_sev_msg aligned int static options(constant), 15 109 2 version char(8) init ("sl_info1"), 15 110 2 arg_list_ptr ptr init (null), 15 111 2 loc, 15 112 3 (mode init (-1), 15 113 severity init ( 1), 15 114 code init ( 0), 15 115 caller init (-1), 15 116 data init ( 0), 15 117 class init ( 0), 15 118 ioa_msg init ( 2)) fixed bin, 15 119 2 flags, 15 120 3 ioa_msg_is_error_code bit(1) unal init ("0"b), 15 121 3 flags_pad bit(35) unal init ("0"b), 15 122 2 mode fixed bin init ( 1), 15 123 2 severity fixed bin init ( 0), 15 124 2 code fixed bin(35) init ( 0), 15 125 2 caller char(65) varying init (""), 15 126 2 data, 15 127 3 data_ptr ptr init (null), 15 128 3 data_lth fixed bin(21) init ( 0), 15 129 2 class char(10) varying init (""), 15 130 2 ioa_msg char(500) varying init (""); 15 131 15 132 /* Syntax: call Abort (severity, ioa_ctl_as_error_code, args); */ 15 133 15 134 dcl 1 sl_info_sev_coded_msg aligned int static options(constant), 15 135 2 version char(8) init ("sl_info1"), 15 136 2 arg_list_ptr ptr init (null), 15 137 2 loc, 15 138 3 (mode init (-1), 15 139 severity init ( 1), 15 140 code init ( 0), 15 141 caller init (-1), 15 142 data init ( 0), 15 143 class init ( 0), 15 144 ioa_msg init ( 2)) fixed bin, 15 145 2 flags, 15 146 3 ioa_msg_is_error_code bit(1) unal init ("1"b), 15 147 3 flags_pad bit(35) unal init ("0"b), 15 148 2 mode fixed bin init ( 1), 15 149 2 severity fixed bin init ( 0), 15 150 2 code fixed bin(35) init ( 0), 15 151 2 caller char(65) varying init (""), 15 152 2 data, 15 153 3 data_ptr ptr init (null), 15 154 3 data_lth fixed bin(21) init ( 0), 15 155 2 class char(10) varying init (""), 15 156 2 ioa_msg char(500) varying init (""); 15 157 15 158 15 159 /* Syntax: call Abort (severity, code, error_return_label, ioa_ctl, args); */ 15 160 15 161 dcl 1 sl_info_sev_code_label_msg aligned int static options(constant), 15 162 2 version char(8) init ("sl_info1"), 15 163 2 arg_list_ptr ptr init (null), 15 164 2 loc, 15 165 3 (mode init (-1), 15 166 severity init ( 1), 15 167 code init ( 2), 15 168 caller init (-1), 15 169 data init ( 0), 15 170 class init ( 0), 15 171 ioa_msg init ( 4)) fixed bin, 15 172 2 flags, 15 173 3 ioa_msg_is_error_code bit(1) unal init ("0"b), 15 174 3 flags_pad bit(35) unal init ("0"b), 15 175 2 mode fixed bin init ( 1), 15 176 2 severity fixed bin init ( 0), 15 177 2 code fixed bin(35) init ( 0), 15 178 2 caller char(65) varying init (""), 15 179 2 data, 15 180 3 data_ptr ptr init (null), 15 181 3 data_lth fixed bin(21) init ( 0), 15 182 2 class char(10) varying init (""), 15 183 2 ioa_msg char(500) varying init (""); 15 184 15 185 /* Syntax: call Log_error (code, ioa_ctl, args); */ 15 186 15 187 dcl 1 sl_info_code_msg aligned int static options(constant), 15 188 2 version char(8) init ("sl_info1"), 15 189 2 arg_list_ptr ptr init (null), 15 190 2 loc, 15 191 3 (mode init (-1), 15 192 severity init (-1), 15 193 code init ( 1), 15 194 caller init (-1), 15 195 data init ( 0), 15 196 class init ( 0), 15 197 ioa_msg init ( 2)) fixed bin, 15 198 2 flags, 15 199 3 ioa_msg_is_error_code bit(1) unal init ("0"b), 15 200 3 flags_pad bit(35) unal init ("0"b), 15 201 2 mode fixed bin init ( 1), 15 202 2 severity fixed bin init ( 0), 15 203 2 code fixed bin(35) init ( 0), 15 204 2 caller char(65) varying init (""), 15 205 2 data, 15 206 3 data_ptr ptr init (null), 15 207 3 data_lth fixed bin(21) init ( 0), 15 208 2 class char(10) varying init (""), 15 209 2 ioa_msg char(500) varying init (""); 15 210 15 211 15 212 /* Syntax: call Trace (ioa_ctl, args); */ 15 213 15 214 dcl 1 sl_info_msg aligned int static options(constant), 15 215 2 version char(8) init ("sl_info1"), 15 216 2 arg_list_ptr ptr init (null), 15 217 2 loc, 15 218 3 (mode init (-1), 15 219 severity init (-1), 15 220 code init ( 0), 15 221 caller init (-1), 15 222 data init ( 0), 15 223 class init ( 0), 15 224 ioa_msg init ( 1)) fixed bin, 15 225 2 flags, 15 226 3 ioa_msg_is_error_code bit(1) unal init ("0"b), 15 227 3 flags_pad bit(35) unal init ("0"b), 15 228 2 mode fixed bin init ( 1), 15 229 2 severity fixed bin init ( 0), 15 230 2 code fixed bin(35) init ( 0), 15 231 2 caller char(65) varying init (""), 15 232 2 data, 15 233 3 data_ptr ptr init (null), 15 234 3 data_lth fixed bin(21) init ( 0), 15 235 2 class char(10) varying init (""), 15 236 2 ioa_msg char(500) varying init (""); 15 237 15 238 /* END INCLUDE FILE sys_log_constants.incl.pl1 */ 1257 1258 /* BEGIN INCLUDE FILE ... uc_validate_info.incl.pl1 */ 16 2 16 3 /****^ HISTORY COMMENTS: 16 4* 1) change(87-05-14,GDixon), approve(87-07-13,MCR7737), 16 5* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 16 6* A) Explicitly declare pad fields. 16 7* B) Remove channel_info.line_type, since that is now stored in 16 8* ute.line_type. 16 9* C) Shift declarations to reduce padding needed for doubleword aligned 16 10* values. 16 11* END HISTORY COMMENTS */ 16 12 16 13 /* format: style4,indattr */ 16 14 16 15 dcl uc_validate_info_ptr ptr automatic; 16 16 16 17 dcl 1 uc_validate_info structure aligned 16 18 based (uc_validate_info_ptr), 16 19 2 input_info, 16 20 3 channel_info, 16 21 4 access_class_range (2) bit (72), 16 22 3 password char (32) unaligned, 16 23 3 flags aligned, 16 24 4 check_channel_access bit (1) unaligned, 16 25 4 check_anonymous_password bit (1) unaligned, 16 26 4 pad1 bit (36 - 2) unaligned, 16 27 2 output_info, 16 28 3 flags aligned, 16 29 4 password_expired bit (1) unaligned, 16 30 4 password_unused_too_long bit (1) unaligned, 16 31 4 changed_password bit (1) unaligned, 16 32 4 changed_default_project bit (1) unaligned, 16 33 4 default_authorization_changed bit (1) unaligned, 16 34 4 pad2 bit (36 - 5) unaligned, 16 35 3 number_disconnected_processes fixed bin, 16 36 3 pad3 fixed bin, 16 37 3 password_interval fixed bin (71), 16 38 3 last_bad_pw_info, 16 39 4 time fixed bin (71), 16 40 4 terminal_type char (32) unaligned, 16 41 4 terminal_id char (4) unaligned, 16 42 4 line_type fixed bin, 16 43 4 number fixed bin, 16 44 4 pad4 fixed bin, 16 45 3 last_login_info, 16 46 4 time fixed bin (71), 16 47 4 terminal_type char (32) unaligned, 16 48 4 terminal_id char (4) unaligned, 16 49 4 line_type fixed bin; 16 50 16 51 /* END INCLUDE FILE ... uc_validate_info.incl.pl1 */ 1258 1259 /* BEGIN INCLUDE FILE ... user_attributes.incl.pl1 TAC 10/79 */ 17 2 17 3 17 4 /****^ HISTORY COMMENTS: 17 5* 1) change(86-12-11,Brunelle), approve(87-07-13,MCR7741), 17 6* audit(87-04-19,GDixon), install(87-08-04,MR12.1-1056): 17 7* Add incl for abs_attributes.incl.pl1 to automatically include absentee 17 8* attribute switches. 17 9* 2) change(87-04-19,GDixon), approve(87-07-13,MCR7741), 17 10* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 17 11* A) Add USER_ATTRIBUTE_NAMES arrays. attribute_names.incl.pl1 can thereby 17 12* be deleted. 17 13* B) Add constants identifying attributes that can be changed by user at 17 14* login, etc. 17 15* END HISTORY COMMENTS */ 17 16 17 17 17 18 /* Modified 82-01-03 E. N. Kittlitz. to declare a complete level-1 structure */ 17 19 17 20 /* format: style4 */ 17 21 dcl 1 user_attributes aligned based, /* the user user_attributes */ 17 22 (2 administrator bit (1), /* 1 system administrator privileges */ 17 23 2 primary_line bit (1), /* 2 user has primary-line privileges */ 17 24 2 nobump bit (1), /* 2 user cannot be bumped */ 17 25 2 guaranteed_login bit (1), /* 4 user has guaranteed login privileges */ 17 26 2 anonymous bit (1), /* 5 used only in SAT. project may have anon.users */ 17 27 2 nopreempt bit (1), /* 6 used only in PDT. user not preemptable by others 17 28* . of same project (distinct from "nobump") */ 17 29 2 nolist bit (1), /* 7 don't list user on "who" */ 17 30 2 dialok bit (1), /* 8 user may have multiple consoles */ 17 31 2 multip bit (1), /* 9 user may have several processes */ 17 32 2 bumping bit (1), /* 10 in SAT. Can users in project bump each other? */ 17 33 2 brief bit (1), /* 11 no login or logout message */ 17 34 2 vinitproc bit (1), /* 12 user may change initial procedure */ 17 35 2 vhomedir bit (1), /* 13 user may change homedir */ 17 36 2 nostartup bit (1), /* 14 user does not want start_up.ec */ 17 37 2 sb_ok bit (1), /* 15 user may be standby */ 17 38 2 pm_ok bit (1), /* 16 user may be primary */ 17 39 2 eo_ok bit (1), /* 17 user may be edit_only */ 17 40 2 daemon bit (1), /* 18 user may login as daemon */ 17 41 2 vdim bit (1), /* 19 * OBSOLETE * user may change outer mdle */ 17 42 2 no_warning bit (1), /* 20 no warning message */ 17 43 2 igroup bit (1), /* 21 in SAT: this project may give its users individual groups 17 44* . in PDT: this user has an individual load control group */ 17 45 2 save_pdir bit (1), /* 22 save pdir after fatal process error */ 17 46 2 disconnect_ok bit (1), /* 23 ok to save user's disconnected processes */ 17 47 2 save_on_disconnect bit (1), /* 24 save them unless -nosave login arg is given */ 17 48 2 pad bit (12)) unaligned; 17 49 17 50 dcl USER_ATTRIBUTE_NAMES (0:24) char (20) int static options (constant) init 17 51 ("none", /* 0 */ 17 52 "administrator", /* 1 */ 17 53 "primary_line", /* 2 */ 17 54 "nobump", /* 3 */ 17 55 "guaranteed_login", /* 4 */ 17 56 "anonymous", /* 5 */ 17 57 "nopreempt", /* 6 */ 17 58 "nolist", /* 7 */ 17 59 "dialok", /* 8 */ 17 60 "multip", /* 9 */ 17 61 "bumping", /* 10 */ 17 62 "brief", /* 11 */ 17 63 "vinitproc", /* 12 */ 17 64 "vhomedir", /* 13 */ 17 65 "nostartup", /* 14 */ 17 66 "no_secondary", /* 15 */ 17 67 "no_prime", /* 16 */ 17 68 "no_eo", /* 17 */ 17 69 "daemon", /* 18 */ 17 70 "", /* 19 vdim OBSOLETE */ 17 71 "no_warning", /* 20 */ 17 72 "igroup", /* 21 */ 17 73 "save_pdir", /* 22 */ 17 74 "disconnect_ok", /* 23 */ 17 75 "save_on_disconnect"); /* 24 */ 17 76 17 77 dcl ALT_USER_ATTRIBUTE_NAMES (0:24) char (20) int static options (constant) init 17 78 ("null", /* 0 */ 17 79 "admin", /* 1 */ 17 80 "", "", /* 2 - 3 */ 17 81 "guar", /* 4 */ 17 82 "anon", /* 5 */ 17 83 "", "", /* 6 - 7 */ 17 84 "dial", /* 8 */ 17 85 "multi_login", /* 9 */ 17 86 "preempting", /* 10 */ 17 87 "", /* 11 */ 17 88 "v_process_overseer", /* 12 */ 17 89 "v_home_dir", /* 13 */ 17 90 "no_start_up", /* 14 */ 17 91 "no_sec", /* 15 */ 17 92 "no_primary", /* 16 */ 17 93 "no_edit_only", /* 17 */ 17 94 "op_login", /* 18 */ 17 95 "", /* 19 */ 17 96 "nowarn", /* 20 */ 17 97 "", "", "", /* 21 - 23 */ 17 98 "save"); /* 24 */ 17 99 17 100 dcl USER_ATTRIBUTES_always_allowed bit (36) aligned int static 17 101 options(constant) init("000000000010000000010000000000000000"b); 17 102 /* SAT/PDT attributes not needed for user to give (brief, no_warning) */ 17 103 17 104 dcl USER_ATTRIBUTES_default_in_pdt bit (36) aligned int static 17 105 options(constant) init("000000000010000000010000000000000000"b); 17 106 /* PDT value for (brief, no_warning) is default */ 17 107 17 108 dcl USER_ATTRIBUTES_settable_by_user bit (36) aligned int static 17 109 options(constant) init("000100000110010000010000000000000000"b); 17 110 /* user MIGHT set (bump, ns, brief, guar, no_warning) */ 17 111 18 1 /* BEGIN INCLUDE FILE ... user_abs_attributes.incl.pl1 */ 18 2 18 3 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 18 4 /* */ 18 5 /* This include file describes the attributes of an absentee job. It is */ 18 6 /* used by user_table_entry.incl.pl1, abs_message_format.incl.pl1 */ 18 7 /* and PIT.incl.pl1. */ 18 8 /* */ 18 9 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 18 10 18 11 /****^ HISTORY COMMENTS: 18 12* 1) change(86-12-08,GDixon), approve(87-07-13,MCR7741), 18 13* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 18 14* Separated abs_attributes from the request structure 18 15* (abs_message_format.incl.pl1) so that the identical structure could be 18 16* used in the ute structure (user_table_entry.incl.pl1). 18 17* 2) change(87-04-19,GDixon), approve(87-07-13,MCR7741), 18 18* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 18 19* Added ABS_ATTRIBUTE_NAMES array. 18 20* 3) change(87-11-11,Parisek), approve(88-02-11,MCR7849), 18 21* audit(88-03-22,Lippard), install(88-07-13,MR12.2-1047): 18 22* Added the no_start_up flag. SCP6367 18 23* END HISTORY COMMENTS */ 18 24 18 25 dcl 1 user_abs_attributes aligned based, 18 26 2 restartable bit (1) unaligned, /* 1 if request may be started over from the beginning */ 18 27 2 user_deferred_until_time bit (1) unaligned, /* 1 if request was specified as deferred */ 18 28 2 proxy bit (1) unaligned, /* 1 if request submitted for someone else */ 18 29 2 set_bit_cnt bit (1) unaligned, /* 1 if should set bit count after every write call */ 18 30 2 time_in_gmt bit (1) unaligned, /* 1 if deferred_time is in GMT */ 18 31 2 user_deferred_indefinitely bit (1) unaligned, /* 1 if operator is to say when to run it */ 18 32 2 secondary_ok bit (1) unaligned, /* 1 if ok to log in as secondary foreground user */ 18 33 2 truncate_absout bit (1) unaligned, /* 1 if .absout is to be truncated */ 18 34 2 restarted bit (1) unaligned, /* 1 if job is restarted */ 18 35 2 no_start_up bit (1) unaligned, /* 1 if requested -ns */ 18 36 2 attributes_pad bit (26) unaligned; 18 37 18 38 dcl ABS_ATTRIBUTE_NAMES (10) char (28) varying int static options(constant) init( 18 39 "restartable", 18 40 "user_deferred_until_time", 18 41 "proxy", 18 42 "set_bit_cnt", 18 43 "time_in_gmt", 18 44 "user_deferred_indefinitely", 18 45 "secondary_ok", 18 46 "truncate_absout", 18 47 "restarted", 18 48 "no_start_up"); 18 49 18 50 /* END INCLUDE FILE ... user_abs_attributes.incl.pl1 */ 18 51 17 112 17 113 17 114 /* END INCLUDE FILE ... user_attributes.incl.pl1 */ 1259 1260 /* BEGIN INCLUDE FILE ... user_table_entry.incl.pl1 */ 19 2 19 3 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 19 4 /* */ 19 5 /* This include file requires that the user include */ 19 6 /* user_attributes.incl.pl1 as well. It also includes */ 19 7 /* abs_attributes.incl.pl1 itself. */ 19 8 /* */ 19 9 /* This include file must be included to use absentee_user_table.incl.pl1, */ 19 10 /* answer_table.incl.pl1, and daemon_user_table.incl.pl1. */ 19 11 /* */ 19 12 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 19 13 19 14 /****^ HISTORY COMMENTS: 19 15* 1) change(81-12-21,Gilcrease), approve(86-03-27,MCR7370), 19 16* audit(86-06-23,Lippard), install(86-06-30,MR12.0-1082): 19 17* This comment for hcom. 19 18* 81-12-21 E. N. Kittlitz. derived from abs_user_tab.incl.pl1, 19 19* anstbl.incl.pl1, and dutbl.incl.pl1. 19 20* 82-01-02 E. N. Kittlitz. user_attributes.incl.pl1 changes 19 21* 84-04-04 BIM added privileged_dial_server and dial_server_ring 19 22* 84-07-12 BIM added min_process_authorization 19 23* 84-12-31 Keith Loepere added pdir_dir_quota 19 24* 85-01-16 by E. Swenson to add ute.session_uid 19 25* 2) change(85-11-16,Swenson), approve(87-07-13,MCR7737), 19 26* audit(87-04-14,GDixon), install(87-08-04,MR12.1-1056): 19 27* Added fields for DSA login server support. 19 28* 3) change(86-03-27,Gilcrease), approve(86-03-27,MCR7370), 19 29* audit(86-06-23,Lippard), install(86-06-30,MR12.0-1082): 19 30* Add truncate_absout and restarted bit for -truncate absout, SCP6297. 19 31* 4) change(86-04-09,Herbst), approve(87-07-13,MCR7697), 19 32* audit(87-04-14,GDixon), install(87-08-04,MR12.1-1056): 19 33* Added disconnection_rel_minutes. 19 34* 5) change(86-12-08,GDixon), approve(87-07-13,MCR7741), 19 35* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 19 36* Changed structure under ute.abs_attributes to use like structure in 19 37* abs_attributes.incl.pl1. This allows the same attributes to be used 19 38* in abs_message_format.incl.pl1 and pit.incl.pl1 as well as this include 19 39* file. 19 40* 6) change(87-04-14,GDixon), approve(87-07-13,MCR7741), 19 41* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 19 42* Move constants for ute.pw_flags.mask_ctl from answer_table.incl.pl1. 19 43* 7) change(87-04-16,GDixon), approve(87-07-13,MCR7741), 19 44* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 19 45* A) Global reorganization to locate things by type of data. 19 46* B) Eliminate ute.uflags.logged_in. 19 47* 8) change(87-05-10,GDixon), approve(87-07-13,MCR7741), 19 48* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 19 49* A) Reduced overlength person and project fields to proper length. 19 50* B) Adjusted dialed-console section to begin on even word boundary. 19 51* 9) change(87-05-13,GDixon), approve(87-07-13,MCR7741), 19 52* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 19 53* Add ute.line_type. 19 54* 10) change(87-11-19,Parisek), approve(88-02-11,MCR7849), 19 55* audit(88-02-23,Lippard), install(88-07-13,MR12.2-1047): 19 56* Added the lowest_ring element. Used the upper half of ute.highest_ring 19 57* for the storage. SCP6367 19 58* END HISTORY COMMENTS */ 19 59 19 60 /* format: style4 */ 19 61 19 62 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 19 63 /* */ 19 64 /* Each of the named sections below defines a type of data. Typing comes */ 19 65 /* from data associated with the ute entry itself, with the person, with */ 19 66 /* login argument data, from the main user of the data (eg, dialup_, */ 19 67 /* load_ctl_, login server). Each section begins on a double-word boundary */ 19 68 /* and is an even number of words long. The total structure is 300 decimal */ 19 69 /* words long. */ 19 70 /* */ 19 71 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 19 72 19 73 19 74 dcl UTE_version_4 fixed bin internal static options (constant) init (4); 19 75 19 76 dcl utep pointer automatic init (null); 19 77 19 78 dcl 1 ute based (utep) aligned, /* individual entry in one of the user control tables */ 19 79 19 80 /* Variables which give state of this entry */ 19 81 2 active fixed bin, /* state of entry. 0=>free. see dialup_values.incl.pl1 */ 19 82 2 process_type fixed bin, /* 1=interactive, 2=absentee, 3=daemon */ 19 83 2 ute_index fixed bin, /* index of ute in (anstbl autbl dutbl).entry array */ 19 84 2 next_free fixed bin, /* points to previous free entry */ 19 85 19 86 /* Information user gave about person_id associated with this entry. */ 19 87 2 person char (24) unal, /* user's name */ 19 88 2 project char (12) unal, /* project of absentee user */ 19 89 2 tag char (1) unal, /* instance tag - someday will be generated */ 19 90 2 tag_pad bit (27) unal, 19 91 2 anonymous fixed bin, /* 1 if anonymous, otherwise 0 */ 19 92 2 login_flags, /* flags for login data */ 19 93 3 cpw bit (1) unal, /* flag for wish to change password */ 19 94 3 generate_pw bit (1) unal, /* flag meaning -generate_pw (-gpw) was used. */ 19 95 3 special_pw unal, /* dial or slave */ 19 96 4 dial_pw bit (1) unal, /* true if dial -user */ 19 97 4 slave_pw bit (1) unal, /* true if slave -user */ 19 98 3 cdp bit (1) unal, /* flag for wish to change default project */ 19 99 3 cda bit (1) unal, /* flag to change default authorization */ 19 100 3 auth_given bit (1) unal, /* flag to mean -authorization was used. */ 19 101 3 noprint bit (1) unal, /* used at logout. inhibits printing. */ 19 102 3 operator bit (1) unaligned, /* user specified -operator on login command line */ 19 103 3 pw_pad bit (25) unal, /* spare parts */ 19 104 3 mask_ctl bit (2) unal, /* bits controlling pw mask. See constants, below */ 19 105 /* Must remain last in pw_flags so it does not */ 19 106 /* appear in PW_FLAG_VALUES array below. */ 19 107 2 generated_pw char (8) unal, /* user must type this as new password */ 19 108 2 old_password char (8) unal, /* must match user's previous password (value scrambled) */ 19 109 2 process_authorization bit (72), /* access_authorization of this process */ 19 110 19 111 /* Information user gave about process associated with this entry. */ 19 112 2 outer_module char (32) unal, /* Name of console dim */ 19 113 2 home_dir char (64) unal, /* initial home directory */ 19 114 2 init_proc char (64) unal, /* name of login responder */ 19 115 2 ip_len fixed bin (17) unal, /* length of initproc string */ 19 116 2 ss_len fixed bin (17) unal, /* length of subsystem string */ 19 117 2 ur_at like user_attributes aligned, /* bits on means attributes given by user */ 19 118 2 at like user_attributes aligned, /* bits on means attribute is on */ 19 119 2 initial_ring fixed bin, /* ring process will be started in */ 19 120 2 arg_count fixed bin, /* number of arguments to absentee control segment */ 19 121 2 ln_args fixed bin, /* length of string containing arguments */ 19 122 2 arg_lengths_ptr ptr, /* pointer to array of argument lengths */ 19 123 2 args_ptr ptr, /* pointer to arguments to absentee control segment */ 19 124 19 125 /* Most of the following information is relevant only to absentee processes */ 19 126 2 input_seg char (168) unal, /* pathname of absentee control segment */ 19 127 2 output_seg char (168) unal, /* pathname of absentee output file */ 19 128 2 request_id fixed bin (71), /* time request was entered - used as uid of request */ 19 129 2 reservation_id fixed bin (71), /* nonzero if job has a resource reservation */ 19 130 2 message_id bit (72), /* message segment id assoc with absentee request */ 19 131 2 deferred_time fixed bin (71), /* time at which absentee process should be created */ 19 132 2 max_cpu_time fixed bin (35), /* maximum number of seconds this process can run */ 19 133 2 queue fixed bin, /* -1=daemon;0=interactive or foreground;>0=queue no. 19 134* (but see uflags.adjust_abs_q_no). */ 19 135 2 real_queue fixed bin, /* real queue number; ute.queue gets fudged sometimes */ 19 136 2 abs_attributes aligned like user_abs_attributes, /* include abs_attributes.incl.pl1 */ 19 137 2 abs_flags, 19 138 3 abs_run bit (1) unal, /* on if job was started by abs run command */ 19 139 3 notify bit (1) unal, /* on if user wants notification at login and logout */ 19 140 3 abs_flags_pad bit (34) unal, 19 141 2 abs_group char (8) unal, /* original group before load_ctl_ moves it to absentee group */ 19 142 2 sender char (32) unal, /* name of RJE station that job is from */ 19 143 2 proxy_person char (28) unal, /* name of user who actually entered the request, if proxy */ 19 144 2 proxy_project char (9) unal, 19 145 2 proxy_project_pad char (3) unal, 19 146 2 abs_pad fixed bin, 19 147 19 148 /* Information about process actually created */ 19 149 2 proc_id bit (36), /* process id of absentee process */ 19 150 2 session_uid fixed bin (35), /* Unique authentication session id */ 19 151 2 process_authorization_range (2) bit (72) aligned, 19 152 2 audit bit (36), /* audit flags for user */ 19 153 2 lot_size fixed bin, /* Size of linkage offset table */ 19 154 2 kst_size fixed bin, /* Size of process known segment table */ 19 155 2 cls_size fixed bin, /* Size of process combined linkage */ 19 156 2 sus_channel fixed bin (71), /* event channel on which suspended process is blocked */ 19 157 2 lowest_ring fixed bin (17) unal, /* lowest ring permitted */ 19 158 2 highest_ring fixed bin (17) unal, /* highest ring permitted */ 19 159 2 pdir_lvix fixed bin (17) unal, /* index in disk table of lv where pdir is */ 19 160 2 pdir_quota fixed bin (17) unal, /* process directory quota */ 19 161 2 pdir_dir_quota fixed bin (17) unal, /* process directory quota for dirs */ 19 162 2 pdir_pad fixed bin(17) unal, 19 163 2 process_pad fixed bin, 19 164 19 165 /* Information about primary terminal associated with this entry */ 19 166 2 tty_name char (32) unal, /* absentee=>"abs1", etc. daemon=>"bk", etc. */ 19 167 2 terminal_type char (32) unaligned, /* terminal type */ 19 168 2 line_type fixed bin, /* line type */ 19 169 2 tty_id_code char (4) unal, /* "none" for absentee */ 19 170 2 network_connection_type fixed bin, /* see net_event_message.incl.pl1 */ 19 171 2 channel ptr unal, /* points to CDT entry for user, if any */ 19 172 19 173 /* Variables useful for dialed terminals */ 19 174 2 ndialed_consoles fixed bin, /* if master, number of slaves */ 19 175 2 dial_qualifier char (22) unal, /* first argument to dial command */ 19 176 2 dial_server_ring fixed bin (3) unsigned unaligned, /* dial server intends to attach dialing in channels at this ring. */ 19 177 2 dial_server_flags, 19 178 3 registered_dial_server bit (1) unal, /* process is a registered dial server */ 19 179 3 privileged_dial_server bit (1) unal, /* "1"b -> serves range of AIM classes */ 19 180 3 dial_server_flags_pad bit (13) unal, /* fill out the word */ 19 181 2 dial_ev_chn fixed bin (71), /* if master, control event channel */ 19 182 19 183 /* Information about usage/accounting. Device usage meters are in a 19 184* separate segment, "devtab" */ 19 185 2 pdtep ptr, /* ptr to user's pdt entry, where usage meters live */ 19 186 2 cpu_this_process fixed bin (71), /* cpu used so far this process */ 19 187 2 cpu_usage fixed bin (71), /* total cpu time used in this session */ 19 188 2 mem_usage fixed bin (71), /* memory usage for previous processes in session */ 19 189 2 mem_this_process fixed bin (71), /* memory usage at last update */ 19 190 2 last_update_time fixed bin (71), /* time of last account update */ 19 191 2 session_cost float bin, /* dollar cost of session, for printing in logout messages */ 19 192 2 ndevices fixed bin, /* Count of attached devices */ 19 193 2 device_head fixed bin, /* Table index of head of device chain */ 19 194 2 device_tail fixed bin, /* Table index of tail of device chain */ 19 195 2 rs_number fixed bin (6) unsigned unal, /* rate structure number */ 19 196 2 rs_number_pad bit(30) unal, 19 197 2 usage_pad fixed bin, 19 198 19 199 /* Information for dialup_ (control variables). */ 19 200 2 event fixed bin (71), /* event associated with channel or user manager */ 19 201 2 uprojp ptr, /* ptr to user project sat entry */ 19 202 2 login_time fixed bin (71), /* time when absentee user approved by lg_ctl_ */ 19 203 2 cant_bump_until fixed bin (71), /* bump-protection clock */ 19 204 2 recent_fatal_error_time fixed bin (71), /* time of first error in the suspected loop */ 19 205 2 recent_fatal_error_count fixed bin, /* counter to detect fatal process error loops */ 19 206 2 failure_reason fixed bin, /* why login refused 1=lg_ctl, 2=act_ctl, 3=load_ctl */ 19 207 2 count fixed bin, /* counter for logins and dialups */ 19 208 2 n_processes fixed bin, /* number of processes created in this session */ 19 209 2 lock_value fixed bin, /* number of locks set for this entry */ 19 210 2 login_result fixed bin, /* 0=logged in;1=hopeless,hang him up;2=allow another attempt */ 19 211 2 login_code char (8) unal, /* login command from LOGIN line */ 19 212 2 preempted fixed bin, /* if ^= 0 user preempted (never for abs) */ 19 213 2 destroy_flag fixed bin, /* >8 when awaiting destroy */ 19 214 2 logout_type char (4) unal, /* type of logout */ 19 215 2 logout_index fixed bin, /* to save logout handler index while waiting for termsgnl */ 19 216 2 disconnection_rel_minutes fixed bin (17) unal, /* disconnected this many minutes after login_time */ 19 217 2 next_disconnected_ate_index fixed bin (17) unal, /* thread of list of user's disconnected processes */ 19 218 2 work_class fixed bin, /* work class used by priority scheduler */ 19 219 2 group char (8) unal, /* party group identifier */ 19 220 2 whotabx fixed bin, /* index of user's entry in whotab */ 19 221 19 222 2 uflags, /* Miscellaneous flags */ 19 223 3 dont_call_init_admin bit (1) unal, /* Call overseer directly */ 19 224 3 ip_given bit (1) unal, /* user gave an initproc arg on login line */ 19 225 3 ss_given bit (1) unal, /* initial_procedure contains a subsystem name */ 19 226 3 lvs_attached bit (1) unal, /* set and used by the lv_request_ procedure */ 19 227 3 send_initial_string bit (1) unal, /* initial string should be sent after login line read */ 19 228 3 adjust_abs_q_no bit (1) unal, /* this is an absentee job; user_profile.queue is NOT true Q # */ 19 229 3 foreground_secondary_ok bit (1) unal, /* ok to login foreground absentee job as secondary */ 19 230 3 foreground_job bit (1) unal, /* job was originally from foreground queue */ 19 231 3 sus_sent bit (1) unal, /* sus_ ips signal has been sent to process */ 19 232 3 suspended bit (1) unal, /* process has responded to sus_ signal */ 19 233 3 ignore_cpulimit bit (1) unal, /* process is released, but timer can't be turned off */ 19 234 3 deferral_logged bit (1) unal, /* abs job deferral has already been logged once */ 19 235 3 save_if_disconnected bit (1) unal, /* user wants process preserved across hangups */ 19 236 3 disconnected bit (1) unal, /* process is disconnected from terminal */ 19 237 3 disconnected_list bit (1) unal, /* this ate is on a list of disconnected processes */ 19 238 3 proc_create_ok bit (1) unal, /* lg_ctl_ has set the process creation variables */ 19 239 3 activity_can_unbump bit (1) unal, /* only bump pending is for inactivity */ 19 240 3 fpe_causes_logout bit (1) unal, /* "1"b means don't try to new_proc after fatal process error */ 19 241 3 user_specified_immediate bit (1) unal, /* "1"b -> don't wait around for process destruction. */ 19 242 3 uflags_pad bit (17) unal, 19 243 19 244 /* Information used by load_ctl_ for the process */ 19 245 2 user_weight fixed bin, /* usually 10 - used in load control */ 19 246 2 standby_line fixed bin, /* 0=user has primary line, 1=standby user */ 19 247 2 bump_grace fixed bin (71), /* bump grace in microseconds */ 19 248 19 249 19 250 /* Information for login server */ 19 251 2 login_server_info, 19 252 3 our_handle bit (72) aligned, /* how LS refers to us. */ 19 253 3 his_handle bit (72) aligned, /* how we talk to LS */ 19 254 3 termination_event_channel fixed bin (71), /* for process termination notifications to the LS */ 19 255 3 response_event_channel fixed bin (71), /* for other communications with the LS */ 19 256 3 process_id bit (36) aligned, /* process_id of login server */ 19 257 2 ls_pad (5) fixed bin; /* pad to 300 decimal words */ 19 258 19 259 /* values for ute.process_type */ 19 260 19 261 dcl (PT_INTERACTIVE initial (1), 19 262 PT_ABSENTEE initial (2), 19 263 PT_DAEMON initial (3)) fixed bin internal static options (constant); 19 264 19 265 dcl PROCESS_TYPE_NAMES (0:3) char(12) varying int static options(constant) init( 19 266 "INVALID-TYPE", 19 267 "interactive", 19 268 "absentee", 19 269 "daemon"); 19 270 19 271 dcl TABLE_NAMES (0:3) char(20) int static options(constant) init( 19 272 "UNKNOWN-TABLE", 19 273 "answer_table", 19 274 "absentee_user_table", 19 275 "daemon_user_table"); 19 276 19 277 19 278 /* values for ute.pw_flags.mask_ctl */ 19 279 19 280 dcl (DO_MASK init ("00"b), 19 281 DONT_MASK init ("01"b), 19 282 DERIVE_MASK init ("10"b)) bit (2) internal static options (constant); 19 283 19 284 dcl MASK_CTL_NAMES (0:3) char(12) varying int static options(constant) init( 19 285 "do_mask", "dont_mask", "derive_mask", ""); 19 286 19 287 19 288 /* names for ute.pw_flags */ 19 289 19 290 dcl PW_FLAG_NAMES (9) char (12) varying int static options(constant) init( 19 291 "cpw", 19 292 "generate_pw", 19 293 "dial_pw", 19 294 "slave_pw", 19 295 "cdp", 19 296 "cda", 19 297 "auth_given", 19 298 "noprint", 19 299 "operator"); 19 300 19 301 /* names for ute.uflags */ 19 302 19 303 dcl UFLAG_NAMES (19) char (24) varying int static options (constant) init ( 19 304 "dont_call_init_admin", 19 305 "ip_given", 19 306 "ss_given", 19 307 "lvs_attached", 19 308 "send_initial_string", 19 309 "adjust_abs_q_no", 19 310 "foreground_secondary_ok", 19 311 "foreground_job", 19 312 "sus_sent", 19 313 "suspended", 19 314 "ignore_cpulimit", 19 315 "deferral_logged", 19 316 "save_if_disconnected", 19 317 "disconnected", 19 318 "disconnected_list", 19 319 "proc_create_ok", 19 320 "activity_can_unbump", 19 321 "fpe_causes_logout", 19 322 "user_specified_immediate"); 19 323 19 324 /* names for ute.abs_flags */ 19 325 19 326 dcl ABS_FLAG_NAMES (2) char (8) varying int static options (constant) init ( 19 327 "abs_run", 19 328 "notify"); 19 329 19 330 /* names of ute.dial_server_flags */ 19 331 19 332 dcl DIAL_SERVER_FLAG_NAMES (2) char (12) varying int static options (constant) init ( 19 333 "registered", 19 334 "privileged"); 19 335 19 336 /* values of ute.login_result */ 19 337 19 338 dcl LOGIN_RESULT_VALUES (0:2) char(24) varying int static options(constant) init( 19 339 "logged in", 19 340 "login failed, hangup", 19 341 "login failed, try again"); 19 342 19 343 /* END INCLUDE FILE ... user_table_entry.incl.pl1 */ 1260 1261 /* BEGIN INCLUDE FILE ... user_table_header.incl.pl1 */ 20 2 20 3 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 20 4 /* */ 20 5 /* This include file declares the header shared by the answer_table, */ 20 6 /* absentee_user_table and daemon_user_table include files. */ 20 7 /* */ 20 8 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 20 9 20 10 /****^ HISTORY COMMENTS: 20 11* 1) change(87-04-26,GDixon), approve(87-07-13,MCR7741), 20 12* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 20 13* Initial coding. 20 14* END HISTORY COMMENTS */ 20 15 20 16 dcl 1 ut_header aligned based, /* header shared by all user control tables. */ 20 17 2 header_version fixed bin, /* version of the header (3) */ 20 18 2 entry_version fixed bin, /* version of user table entries */ 20 19 2 user_table_type fixed bin, /* 1 interactive, 2 absentee, 3 daemon */ 20 20 2 header_length fixed bin, /* length of the header */ 20 21 2 max_size fixed bin, /* max number of entries in this table */ 20 22 2 current_size fixed bin, /* actual size of table (in entries) */ 20 23 2 number_free fixed bin, /* number of free entries in the table. */ 20 24 2 first_free fixed bin, /* index of first entry in the free list. */ 20 25 2 as_procid bit (36), /* process ID of user table manager process */ 20 26 2 ut_header_pad fixed bin; 20 27 20 28 /* END INCLUDE FILE ... user_table_header.incl.pl1 */ 1261 1262 /* BEGIN INCLUDE FILE ... whotab.incl.pl1 */ 21 2 21 3 /* Modified 740723 by PG to add security info */ 21 4 /* Modified April 1976 by T. Casey to add shift and shift start and end times */ 21 5 /* Modified May 1979 by T. Casey for MR7.0a to add foreground absentee variables */ 21 6 /* Modified June 1981 by E. N. Kittlitz to add n_rate_structures. */ 21 7 /* Modified December 1981 by E. N. Kittlitz to expand header. */ 21 8 /* Modified 84-11-14 by E. A. Ranzenbach to add "session" fiedld in place of obsolete system ID... */ 21 9 21 10 dcl 1 whotab based (whoptr) aligned, 21 11 2 mxusers fixed bin, /* max. number of users on system */ 21 12 2 n_users fixed bin, /* current number of users */ 21 13 2 mxunits fixed bin, /* maximun "load units" allowed */ 21 14 2 n_units fixed bin, /* current load */ 21 15 2 timeup fixed bin (71), /* time system was started */ 21 16 2 session char (8), /* AS state, same as anstbl.session */ 21 17 2 nextsd fixed bin (71), /* time we will shutdown */ 21 18 2 until fixed bin (71), /* projected time we start up again */ 21 19 2 lastsd fixed bin (71), /* time of last crash or shutdown */ 21 20 2 erfno char (8), /* if a crash, the error number */ 21 21 2 obsolete_why char (32), /* reason for last shutdown */ 21 22 2 installation_id char (32), /* name of installation */ 21 23 2 obsolete_message char (32), /* message for all users */ 21 24 2 abs_event fixed bin (71), /* event channel associated with absentee */ 21 25 2 abs_procid bit (36) aligned, /* process to whom messages about absentee are signalled */ 21 26 2 max_abs_users fixed bin, /* max number of absentee users */ 21 27 2 abs_users fixed bin, /* number of absentee users logged-in */ 21 28 2 n_daemons fixed bin, /* Number of daemon users logged in */ 21 29 2 request_channel fixed bin (71), /* System master channel for requests to AS. */ 21 30 2 request_process_id bit (36), /* Process ID of request dispatcher */ 21 31 2 shift fixed bin, /* current shift (copied from anstbl, for users to see) */ 21 32 2 next_shift_change_time fixed bin (71), /* time current shift ends */ 21 33 2 last_shift_change_time fixed bin (71), /* time current shift started */ 21 34 2 fg_abs_users fixed bin (17) unal, /* number of foreground absentee users */ 21 35 2 n_rate_structures fixed bin (9) unsigned unal, /* number of rate_structures defined at bootload */ 21 36 2 pad1 bit (9) unal, 21 37 2 pad (3) fixed bin, 21 38 2 version fixed bin, /* structure version */ 21 39 2 header_size fixed bin, /* length of header in words */ 21 40 2 entry_size fixed bin, /* length of entry in words */ 21 41 /* laste_adjust is used only by Answering Service programs */ 21 42 2 laste_adjust fixed bin, /* count of 32 wd blocks in hdr from header_extension_mbz1 */ 21 43 2 laste fixed bin, /* index of last entry in use (includes laste_adjust) */ 21 44 2 freep fixed bin (18) unsigned, /* index of first free entry. chained thru "chain" */ 21 45 21 46 /* whotab header extension: The header is extended from 64 words by 21 47* annexing whole user entries from the 'e' array. Each 'e' entry is 32 words 21 48* long. Each annexed block has its first word set to zero, indicating that no user entry is 21 49* present. This allows existing programs to function with old definitions of 21 50* whotab. Obviously no new header field can be more than 31 contiguous words in 21 51* length. In the Answering Service, all programs using whotab must be compiled 21 52* with the latest version. Only lg_ctl_ uses laste_adjust. */ 21 53 21 54 2 header_extension_mbz1 fixed bin, /* location 100o */ 21 55 2 n_abs (4) fixed bin, /* number of processes from each background queue */ 21 56 2 abs_qres (4) fixed bin, /* number of absentee positions reserved for each queue */ 21 57 2 abs_cpu_limit (4) fixed bin (35), /* current absentee cpu limits */ 21 58 2 abs_control, /* see absentee_user_table */ 21 59 3 mnbz bit (1) unal, /* must not be zero */ 21 60 3 abs_maxu_auto bit (1) unal, /* 1 if automatic */ 21 61 3 abs_maxq_auto bit (1) unal, /* 1 if automatic */ 21 62 3 abs_qres_auto bit (1) unal, /* 1 if automatic */ 21 63 3 abs_cpu_limit_auto bit (1) unal, /* 1 if automatic */ 21 64 3 queue_dropped (-1:4) bit (1) unal, /* 1 if queue dropped */ 21 65 3 abs_up bit (1) unal, /* 1 if absentee facility is running */ 21 66 3 abs_stopped bit (1) unal, /* 1 if absentee facility is stopped */ 21 67 3 control_pad bit (23) unal, 21 68 2 installation_request_channel fixed bin (71), /* IPC channel for install command */ 21 69 2 installation_request_pid bit (36), /* installation process identifier */ 21 70 2 sysid char (32), /* current system name */ 21 71 2 header_extension_pad1 (7) fixed bin, /* pad to size of e element, offset 137o */ 21 72 2 header_extension_mbz2 fixed bin, /* offset 140o */ 21 73 2 message char (124), /* message for all users */ 21 74 2 header_extension_mbz3 fixed bin, /* offset 200o */ 21 75 2 why char (124), /* reason for last shutdown */ 21 76 2 e (1000), /* offset 240o */ 21 77 3 active fixed bin, /* nonzero means logged in */ 21 78 3 person char (28) aligned, /* person name */ 21 79 3 project char (28), /* project id */ 21 80 3 anon fixed bin, /* 1 if anonymous user */ 21 81 3 padding fixed bin (71), 21 82 3 timeon fixed bin (71), /* time of login */ 21 83 3 units fixed bin, /* load units */ 21 84 3 stby fixed bin, /* 1 if stby */ 21 85 3 idcode char (4), /* tty id code */ 21 86 3 chain fixed bin (18) unsigned, /* chain for free list */ 21 87 3 proc_type fixed bin, /* 1 = interactive, 2 = absentee, 3 = daemon */ 21 88 3 group char (8), /* party-line group */ 21 89 3 fg_abs bit (1) unal, /* "1"b if foreground absentee user */ 21 90 3 disconnected bit (1) unaligned, /* "1"b if process is disconnected */ 21 91 3 suspended bit (1) unaligned, /* "1"b if process is suspended */ 21 92 3 pad2 bit (33) unal, 21 93 3 cant_bump_until fixed bin (71), /* protected from primary bump till here */ 21 94 3 process_authorization bit (72); /* access authorization of process */ 21 95 21 96 dcl WHOTAB_VERSION_1 fixed bin init (1) static options (constant); 21 97 21 98 /* END INCLUDE FILE ... whotab.incl.pl1 */ 1262 1263 1264 end uc_login_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 07/13/88 0938.2 uc_login_.pl1 >special_ldd>install>MR12.2-1047>uc_login_.pl1 1186 1 04/27/78 1504.4 send_mail_info.incl.pl1 >ldd>include>send_mail_info.incl.pl1 1247 2 04/11/85 1452.6 access_mode_values.incl.pl1 >ldd>include>access_mode_values.incl.pl1 1248 3 08/06/87 0913.4 as_data_.incl.pl1 >ldd>include>as_data_.incl.pl1 1249 4 08/06/87 0913.0 answer_table.incl.pl1 >ldd>include>answer_table.incl.pl1 1250 5 08/06/87 0913.4 dialup_values.incl.pl1 >ldd>include>dialup_values.incl.pl1 1251 6 04/21/82 1211.8 hashst.incl.pl1 >ldd>include>hashst.incl.pl1 1252 7 08/06/87 0913.4 installation_parms.incl.pl1 >ldd>include>installation_parms.incl.pl1 7-148 8 11/21/79 1458.3 rcp_init_flags.incl.pl1 >ldd>include>rcp_init_flags.incl.pl1 1253 9 08/06/87 0913.4 line_types.incl.pl1 >ldd>include>line_types.incl.pl1 1254 10 09/13/84 0921.6 pdt.incl.pl1 >ldd>include>pdt.incl.pl1 10-29 11 04/21/82 1211.8 author.incl.pl1 >ldd>include>author.incl.pl1 1255 12 03/15/85 0953.1 pnt_entry.incl.pl1 >ldd>include>pnt_entry.incl.pl1 1256 13 08/06/87 1416.6 sat.incl.pl1 >ldd>include>sat.incl.pl1 13-34 14 04/21/82 1211.8 author.incl.pl1 >ldd>include>author.incl.pl1 1257 15 08/06/87 0913.5 sys_log_constants.incl.pl1 >ldd>include>sys_log_constants.incl.pl1 1258 16 08/06/87 0913.6 uc_validate_info.incl.pl1 >ldd>include>uc_validate_info.incl.pl1 1259 17 08/06/87 0913.6 user_attributes.incl.pl1 >ldd>include>user_attributes.incl.pl1 17-112 18 07/13/88 0900.1 user_abs_attributes.incl.pl1 >special_ldd>install>MR12.2-1047>user_abs_attributes.incl.pl1 1260 19 07/13/88 0903.2 user_table_entry.incl.pl1 >special_ldd>install>MR12.2-1047>user_table_entry.incl.pl1 1261 20 08/06/87 0913.6 user_table_header.incl.pl1 >ldd>include>user_table_header.incl.pl1 1262 21 01/18/85 0953.2 whotab.incl.pl1 >ldd>include>whotab.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_RETRY 000567 constant bit(1) initial dcl 194 set ref 294 321* 345* 351 367* 373* 439* 453 461* 463* 474* 477* 526 530* 583 597* 606* 644* 660 672* 689* 707* 720 738* 746* 772* 783* 796 827 938* 942* 955* 958* 1155* FALSE 000636 constant bit(1) initial dcl 196 set ref 270 276 277 278 279 280 281 282 286 287 291 292 297 303 305 307 312 391 537 1035 1148* 1150 1226 1234 ME 000526 constant char(9) initial packed unaligned dcl 198 ref 1103 1126 NOW_HAS_PROCESS constant fixed bin(17,0) initial dcl 5-76 ref 1038 NOW_LOGGED_IN constant fixed bin(17,0) initial dcl 5-76 ref 972 1220 PT_ABSENTEE constant fixed bin(17,0) initial dcl 19-261 ref 274 938 955 1231 PT_DAEMON constant fixed bin(17,0) initial dcl 19-261 ref 284 1229 PT_INTERACTIVE constant fixed bin(17,0) initial dcl 19-261 ref 265 P_access_class parameter bit(72) dcl 1167 set ref 1161 1180* P_allow_retry parameter bit(1) dcl 1070 ref 1066 1079 P_code parameter fixed bin(35,0) dcl 1137 in procedure "Convert_Message" set ref 1134 1140* P_code parameter fixed bin(35,0) dcl 1069 in procedure "Abort" ref 1066 1074 P_code parameter fixed bin(35,0) dcl 69 in procedure "uc_login_" set ref 62 243* P_code parameter fixed bin(35,0) dcl 1168 in procedure "Send_User_Mail" set ref 1161 1181* 1184* P_message parameter char packed unaligned dcl 1166 ref 1161 1180 1180 P_personid parameter char packed unaligned dcl 1164 set ref 1161 1179* P_projectid parameter char packed unaligned dcl 1165 set ref 1161 1179* P_uc_validate_info_ptr parameter pointer dcl 67 ref 62 253 P_utep parameter pointer dcl 68 ref 62 254 RW_ACCESS 000521 constant bit(3) initial packed unaligned dcl 2-11 set ref 683* 827 827 SL_LOG 000522 constant fixed bin(17,0) initial dcl 15-14 set ref 568* 580* 658* 822* SL_LOG_BEEP 000611 constant fixed bin(17,0) initial dcl 15-14 set ref 349* 426* 522* 556* 614* 697* 717* 731* 743* 751* 1153* SL_LOG_SILENT 000524 constant fixed bin(17,0) initial dcl 15-14 set ref 651* 669* 687* SYSTEM_LOW 000524 constant bit(72) initial dcl 200 ref 548 625 903 TAG_UFT constant char(1) initial packed unaligned dcl 5-93 ref 496 1038 TRUE constant bit(1) initial dcl 202 ref 266 267 268 269 271 272 288 289 290 302 358 451 472 538 595 604 1052 1057 1176 1177 1239 USECS_PER_DAY 000522 constant fixed bin(71,0) initial dcl 204 ref 443 443 467 USER_ATTRIBUTES_always_allowed 000520 constant bit(36) initial dcl 17-100 ref 838 852 USER_ATTRIBUTES_default_in_pdt 000520 constant bit(36) initial dcl 17-104 ref 847 USER_ATTRIBUTES_settable_by_user 000517 constant bit(36) initial dcl 17-108 ref 843 857 861 UTE_SIZE constant fixed bin(17,0) initial dcl 4-120 ref 1037 1037 abs_users 54 based fixed bin(17,0) level 2 dcl 21-10 set ref 1233* 1233 access_class_range based bit(72) array level 4 dcl 16-17 set ref 553* 571* 573* 952* active 240 based fixed bin(17,0) array level 3 in structure "whotab" dcl 21-10 in procedure "uc_login_" set ref 1220* active based fixed bin(17,0) level 2 in structure "ute" dcl 19-78 in procedure "uc_login_" set ref 972* 1038 addr builtin function dcl 209 ref 339 339 342 342 647 740 762 1037 1105 1105 1128 1128 1148 1148 1180 1180 addrel builtin function dcl 209 ref 727 aim_check_$greater_or_equal 000010 constant entry external dcl 105 ref 553 aim_check_$in_range 000012 constant entry external dcl 108 ref 935 952 alias 74 based char(8) level 2 packed packed unaligned dcl 13-53 ref 648 always_add 11(02) 000111 automatic bit(1) level 3 packed packed unaligned dcl 1-5 set ref 1177* anon 257 based fixed bin(17,0) array level 3 dcl 21-10 set ref 1218* anonymous 30(04) based bit(1) level 3 in structure "project" packed packed unaligned dcl 13-53 in procedure "uc_login_" ref 707 anonymous 16 based fixed bin(17,0) level 2 in structure "ute" dcl 19-78 in procedure "uc_login_" ref 300 815 911 919 1038 1212 1218 anonymous 000201 automatic bit(1) level 2 in structure "flags" packed packed unaligned dcl 77 in procedure "uc_login_" set ref 302* 307* 324 548 625 707 885 903 927 975 ans 000100 automatic char(64) packed unaligned dcl 636 set ref 654* 658* ansp 000460 automatic pointer initial dcl 4-53 set ref 4-53* 257* 262 310 310 311 390 443 443 467 483 526 536 973 998 1036 1037 1217 anstbl based structure level 1 dcl 4-55 arg_list_ptr 2 000462 automatic pointer level 2 dcl 15-24 set ref 1104* 1127* as_access_audit_$login 000014 constant entry external dcl 111 ref 974 1083 as_data_$ansp 000172 external static pointer dcl 3-26 ref 257 as_data_$pdtdir 000174 external static char(168) packed unaligned dcl 3-45 set ref 683* 687* as_data_$rcpdir 000176 external static char(168) packed unaligned dcl 3-47 set ref 818* as_data_$rs_ptrs 000200 external static pointer array dcl 3-49 ref 258 as_data_$sat_htp 000202 external static pointer dcl 3-51 set ref 642* 654* as_data_$satp 000204 external static pointer dcl 3-52 ref 259 as_data_$whoptr 000206 external static pointer dcl 3-60 ref 260 1196 as_error_table_$already_in_notify_msg 000074 external static fixed bin(35,0) dcl 160 set ref 1044* as_error_table_$bad_anon_pw 000076 external static fixed bin(35,0) dcl 160 set ref 783* as_error_table_$bad_password 000100 external static fixed bin(35,0) dcl 160 set ref 367* as_error_table_$bad_personid 000102 external static fixed bin(35,0) dcl 160 set ref 321* 345* as_error_table_$bad_project 000104 external static fixed bin(35,0) dcl 160 set ref 644* 672* as_error_table_$breach 000106 external static fixed bin(35,0) dcl 160 set ref 583* as_error_table_$breach_msg 000110 external static fixed bin(35,0) dcl 160 set ref 556* as_error_table_$cant_give_dft_auth 000112 external static fixed bin(35,0) dcl 160 set ref 942* 958* as_error_table_$cant_give_that_authorization 000114 external static fixed bin(35,0) dcl 160 set ref 938* 955* as_error_table_$dialup_error 000116 external static fixed bin(35,0) dcl 160 set ref 351* 660* 720* 1155* as_error_table_$must_change 000120 external static fixed bin(35,0) dcl 160 set ref 461* 474* as_error_table_$must_use_generate_pw 000122 external static fixed bin(35,0) dcl 160 set ref 439* 463* 477* as_error_table_$no_change 000124 external static fixed bin(35,0) dcl 160 set ref 530* 597* 606* as_error_table_$no_line_permission 000126 external static fixed bin(35,0) dcl 160 set ref 827* as_error_table_$not_in_pdt 000130 external static fixed bin(35,0) dcl 160 set ref 707* 738* 746* 772* as_error_table_$operator_not_allowed 000132 external static fixed bin(35,0) dcl 160 set ref 373* as_error_table_$password_expired 000134 external static fixed bin(35,0) dcl 160 set ref 453* as_error_table_$password_locked 000136 external static fixed bin(35,0) dcl 160 set ref 526* as_error_table_$password_probe1_mail_msg 000142 external static fixed bin(35,0) dcl 160 set ref 396* as_error_table_$password_probe_mail_msg 000140 external static fixed bin(35,0) dcl 160 set ref 399* as_error_table_$password_trap 000144 external static fixed bin(35,0) dcl 160 set ref 522* as_error_table_$pdt_missing 000146 external static fixed bin(35,0) dcl 160 set ref 689* as_error_table_$person_auth_msg 000150 external static fixed bin(35,0) dcl 160 set ref 568* as_error_table_$terminal_auth_msg 000152 external static fixed bin(35,0) dcl 160 set ref 580* as_error_table_$too_many_bad_pw 000154 external static fixed bin(35,0) dcl 160 set ref 426* asu_$blast_user 000016 constant entry external dcl 112 ref 1055 at 100 based structure level 2 in structure "ute" dcl 19-78 in procedure "uc_login_" set ref 843* 843 847* 847 852* 852 857 861* 861 865* 865 at 13 based structure level 2 in structure "user" dcl 10-58 in procedure "uc_login_" ref 838 847 852 at 30 based structure level 2 in structure "project" dcl 13-53 in procedure "uc_login_" ref 838 852 audit 74 000212 automatic bit(36) level 3 in structure "pnte" dcl 97 in procedure "uc_login_" set ref 929* audit 304 based bit(36) level 2 in structure "ute" dcl 19-78 in procedure "uc_login_" set ref 927* 929* audit 101 based bit(36) level 2 in structure "project" dcl 13-53 in procedure "uc_login_" set ref 927 929* auth_given 17(06) based bit(1) level 3 packed packed unaligned dcl 19-78 ref 625 938 955 auth_string 000106 automatic char(200) packed unaligned dcl 74 set ref 562* 567* 568* 573* 579* 580* auth_string_octal 000170 automatic char(32) packed unaligned dcl 75 set ref 560* 568* 571* 580* authorization 000100 automatic bit(72) array dcl 73 set ref 909* 910* 911* 913* 914* 917* 918* 919* 921* 922* bad_pw_line_type 53 000212 automatic fixed bin(17,0) level 3 dcl 97 set ref 394* 506 bad_pw_term_id 52 000212 automatic char(4) level 3 dcl 97 set ref 392* 504 bad_pw_term_type 54 000212 automatic char(32) level 3 dcl 97 set ref 393* 502 bstemp 001236 automatic bit(36) dcl 835 set ref 857* 865 caller 17 000462 automatic varying char(65) level 2 dcl 15-24 set ref 1103* 1126* cant_bump_until 274 based fixed bin(71,0) array level 3 dcl 21-10 set ref 1223* cda 17(05) based bit(1) level 3 packed packed unaligned dcl 19-78 ref 600 cdp 17(04) based bit(1) level 3 packed packed unaligned dcl 19-78 ref 591 chain 267 based fixed bin(18,0) array level 3 unsigned dcl 21-10 ref 1209 changed_default_project 16(03) based bit(1) level 4 packed packed unaligned dcl 16-17 set ref 595* 610 changed_password 16(02) based bit(1) level 4 packed packed unaligned dcl 16-17 set ref 538* 1148 channel_info based structure level 3 dcl 16-17 check_anonymous_password 0(08) 000201 automatic bit(1) level 2 in structure "flags" packed packed unaligned dcl 77 in procedure "uc_login_" set ref 230 304* check_anonymous_password 14(01) based bit(1) level 4 in structure "uc_validate_info" packed packed unaligned dcl 16-17 in procedure "uc_login_" ref 304 check_authorization_argument 0(04) 000201 automatic bit(1) level 2 packed packed unaligned dcl 77 set ref 227 269* 279* 289* check_change_arguments 0(03) 000201 automatic bit(1) level 2 packed packed unaligned dcl 77 set ref 225 268* 278* 288* 305* check_channel_access 0(06) 000201 automatic bit(1) level 2 in structure "flags" packed packed unaligned dcl 77 in procedure "uc_login_" set ref 234 271* 281* 291* 297* check_channel_access 14 based bit(1) level 4 in structure "uc_validate_info" packed packed unaligned dcl 16-17 in procedure "uc_login_" ref 297 check_channel_access_class 0(07) 000201 automatic bit(1) level 2 packed packed unaligned dcl 77 set ref 238 272* 282* 292* check_daemon_access 0(05) 000201 automatic bit(1) level 2 packed packed unaligned dcl 77 set ref 232 270* 280* 290* check_password 0(01) 000201 automatic bit(1) level 2 packed packed unaligned dcl 77 set ref 221 266* 276* 286* 303* 331 check_physical_security_breach 0(02) 000201 automatic bit(1) level 2 packed packed unaligned dcl 77 set ref 223 267* 277* 287* clock builtin function dcl 209 ref 262 code 000200 automatic fixed bin(35,0) dcl 76 in procedure "uc_login_" set ref 243 255* 339* 342* 345 347 347 349* 364 412* 414 414 414 417* 419 562* 564 564 564* 573* 576 576 576* 612* 614 614* 642* 644 654* 656 658* 683* 685 687* 737* 738 795* 796 796* 818* 820 822* 985* 987 1021* 1074* 1075 1075* 1148* 1151 1153* 1180* 1181 1181 1181 1184 code 001304 automatic fixed bin(35,0) dcl 1027 in procedure "Notify_Other_Instances" set ref 1048* 1052 1055* 1057 convert_access_class_$maximum 000020 constant entry external dcl 113 ref 914 convert_access_class_$minimum 000022 constant entry external dcl 115 ref 922 convert_access_class_$to_string_range_short 000026 constant entry external dcl 119 ref 573 convert_access_class_$to_string_short 000024 constant entry external dcl 117 ref 562 convert_status_code_ 000030 constant entry external dcl 122 ref 1075 1140 cpw 17 based bit(1) level 3 packed packed unaligned dcl 19-78 ref 333 439 457 530 cu_$arg_list_ptr 000214 constant entry external dcl 1122 in procedure "Log_Coded_Error" ref 1127 cu_$arg_list_ptr 000210 constant entry external dcl 1099 in procedure "Log_Error_with_Code" ref 1104 current_size 36 based fixed bin(17,0) level 2 in structure "pdt" dcl 10-27 in procedure "uc_login_" ref 760 current_size 5 based fixed bin(17,0) level 3 in structure "anstbl" dcl 4-55 in procedure "uc_login_" ref 1036 current_time 126 based fixed bin(71,0) level 2 dcl 4-55 set ref 262* 390 443 443 467 483 526 536 973 998 1217 default_authorization_changed 16(04) based bit(1) level 4 packed packed unaligned dcl 16-17 set ref 604* default_person_authorization 72 000212 automatic bit(72) level 3 dcl 97 set ref 412* 417* 603* 628 default_project 34 000212 automatic char(16) level 3 dcl 97 set ref 361 417 594* 594 612 612 614* dial_pw 17(02) based bit(1) level 4 packed packed unaligned dcl 19-78 ref 808 disconnect_ok 100(22) based bit(1) level 3 in structure "ute" packed packed unaligned dcl 19-78 in procedure "uc_login_" set ref 877* 885* disconnect_ok 30(22) based bit(1) level 3 in structure "project" packed packed unaligned dcl 13-53 in procedure "uc_login_" ref 877 disconnected 431(13) based bit(1) level 3 in structure "ute" packed packed unaligned dcl 19-78 in procedure "uc_login_" ref 1038 disconnected 273(01) based bit(1) array level 3 in structure "whotab" packed packed unaligned dcl 21-10 in procedure "uc_login_" set ref 1226* display_access_class_ 000032 constant entry external dcl 124 ref 560 display_access_class_$range 000034 constant entry external dcl 125 ref 571 e 240 based structure array level 2 dcl 21-10 entry 200 based structure array level 2 dcl 4-55 set ref 1037 error_table_$bad_arg 000156 external static fixed bin(35,0) dcl 185 set ref 294* error_table_$bad_password 000160 external static fixed bin(35,0) dcl 185 ref 347 364 error_table_$id_not_found 000162 external static fixed bin(35,0) dcl 185 ref 345 error_table_$messages_off 000164 external static fixed bin(35,0) dcl 185 ref 414 1181 error_table_$smallarg 000166 external static fixed bin(35,0) dcl 185 ref 564 576 error_table_$wakeup_denied 000170 external static fixed bin(35,0) dcl 185 ref 414 1181 failure_reason 411 based fixed bin(17,0) level 2 dcl 19-78 set ref 1082* fg_abs 273 based bit(1) array level 3 packed packed unaligned dcl 21-10 set ref 1226* 1234* 1239* fg_abs_users 66 based fixed bin(17,0) level 2 packed packed unaligned dcl 21-10 set ref 1238* 1238 flags 14 based structure level 3 in structure "uc_validate_info" dcl 16-17 in procedure "uc_login_" flags 16 based structure level 3 in structure "uc_validate_info" dcl 16-17 in procedure "uc_login_" flags 40 000212 automatic structure level 3 in structure "pnte" dcl 97 in procedure "uc_login_" flags 000201 automatic structure level 1 dcl 77 in procedure "uc_login_" set ref 264* freep 77 based fixed bin(18,0) level 2 unsigned dcl 21-10 set ref 1203 1208 1209* generate_pw 40(07) 000212 automatic bit(1) level 4 in structure "pnte" packed packed unaligned dcl 97 in procedure "uc_login_" set ref 439 461 474 generate_pw 17(01) based bit(1) level 3 in structure "ute" packed packed unaligned dcl 19-78 in procedure "uc_login_" ref 439 group 271 based char(8) array level 3 dcl 21-10 set ref 1222* group_id 001214 automatic char(32) packed unaligned dcl 804 in procedure "Check_Channel_Access" set ref 815* 818* group_id 001176 automatic char(32) packed unaligned dcl 792 in procedure "Check_Daemon_Access" set ref 794* 795* guaranteed_login 100(03) based bit(1) level 3 packed packed unaligned dcl 19-78 set ref 867 hash_$search 000036 constant entry external dcl 128 ref 642 737 hcs_$get_user_access_modes 000040 constant entry external dcl 130 ref 818 header based structure level 2 dcl 4-55 ht_relp 377 based fixed bin(18,0) level 2 dcl 10-27 set ref 722 725 727 731* htable based structure level 1 dcl 6-6 i 000120 automatic fixed bin(35,0) dcl 637 in procedure "Validate_Projectid" set ref 642* 647 722* 737* 740 760* 762* i 001305 automatic fixed bin(17,0) dcl 1028 in procedure "Notify_Other_Instances" set ref 1036* 1037* id 4 based char(4) level 2 dcl 6-6 ref 728 728 idcode 266 based char(4) array level 3 dcl 21-10 set ref 1221* initiate_file_ 000042 constant entry external dcl 134 ref 683 input_info based structure level 2 dcl 16-17 installation_parms based structure level 1 dcl 7-33 installation_parms_part_1 based structure level 1 dcl 7-40 installation_parms_resource_array_part based structure array level 1 unaligned dcl 7-144 ioa_$rs 000044 constant entry external dcl 136 ref 404 407 ioa_$rsnnl 000046 constant entry external dcl 137 ref 794 815 1045 1179 ip 000202 automatic pointer dcl 93 set ref 258* 425 443 443 443 452 467 467 473 last_bad_pw_info 24 based structure level 3 dcl 16-17 last_bad_pw_reported 40(08) 000212 automatic bit(1) level 4 packed packed unaligned dcl 97 set ref 391* 419* 422* 508* 518 last_login_info 42 based structure level 3 dcl 16-17 last_login_line_type 115(18) based fixed bin(17,0) level 2 packed packed unaligned dcl 10-58 set ref 981 993 1006* last_login_time 112 based fixed bin(71,0) level 2 dcl 10-58 set ref 980 998* last_login_type 115 based fixed bin(17,0) level 2 packed packed unaligned dcl 10-58 set ref 981 983 1003* 1004* last_login_unit 114 based char(4) level 2 dcl 10-58 set ref 991 999* laste 76 based fixed bin(17,0) level 2 dcl 21-10 set ref 1204* 1204 1205 laste_adjust 75 based fixed bin(17,0) level 2 dcl 21-10 ref 1205 length builtin function dcl 209 ref 360 594 line_type 336 based fixed bin(17,0) level 2 in structure "ute" dcl 19-78 in procedure "uc_login_" ref 394 1006 line_type 55 based fixed bin(17,0) level 4 in structure "uc_validate_info" dcl 16-17 in procedure "uc_login_" set ref 993* line_type 37 based fixed bin(17,0) level 4 in structure "uc_validate_info" dcl 16-17 in procedure "uc_login_" set ref 506* 515* lock 40(03) 000212 automatic bit(1) level 4 packed packed unaligned dcl 97 set ref 526 login_flags 17 based structure level 2 dcl 19-78 login_result 415 based fixed bin(17,0) level 2 dcl 19-78 set ref 971* 1079* 1081* login_time 402 based fixed bin(71,0) level 2 dcl 19-78 set ref 973* login_tries 505 based fixed bin(17,0) level 3 dcl 7-33 ref 425 mail_for_user 001306 automatic char(256) packed unaligned dcl 1029 in procedure "Notify_Other_Instances" set ref 1045* 1048 1048 1055* mail_for_user 000770 automatic char(128) packed unaligned dcl 385 in procedure "Bad_Password" set ref 404* 407* 412* 417* mail_table_initializer_$set_dft_proj 000050 constant entry external dcl 138 ref 612 maximum_authorization 001144 automatic bit(72) dcl 546 set ref 548* 550* 553* 560* 562* maybe_update_pnte 000204 automatic bit(1) dcl 94 set ref 245 312* 358* 1150* mc_check_access_$log_in_as_daemon 000052 constant entry external dcl 140 ref 795 merge_access_audit_flags_ 000054 constant entry external dcl 142 ref 929 message 001030 automatic char(256) packed unaligned dcl 386 in procedure "Bad_Password" set ref 396* 399* 402 404* 407* message 001454 automatic char(100) dcl 1138 in procedure "Convert_Message" set ref 1140* 1141 mod builtin function dcl 209 ref 425 mode 001224 automatic bit(36) dcl 805 set ref 818* 824* 827 must_change 40(05) 000212 automatic bit(1) level 4 packed packed unaligned dcl 97 set ref 459 537* n_bad_pw 42 000212 automatic fixed bin(17,0) level 3 dcl 97 set ref 388* 388 n_bad_pw_since_good 43 000212 automatic fixed bin(17,0) level 3 dcl 97 set ref 389* 389 396 404 407* 425 496 500 518* n_daemons 55 based fixed bin(17,0) level 2 dcl 21-10 set ref 1229* 1229 n_disconnected 362(09) based fixed bin(9,0) level 2 packed packed unsigned unaligned dcl 10-58 ref 1010 n_good_pw 41 000212 automatic fixed bin(17,0) level 3 dcl 97 set ref 482* 482 n_projects 41 based fixed bin(17,0) level 2 dcl 13-32 set ref 654* n_rate_structures 66(18) based fixed bin(9,0) level 2 packed packed unsigned unaligned dcl 21-10 ref 694 n_users 1 based fixed bin(17,0) level 2 dcl 21-10 set ref 1197* 1197 nobump 100(02) based bit(1) level 3 packed packed unaligned dcl 19-78 set ref 867* nochange 40(04) 000212 automatic bit(1) level 4 packed packed unaligned dcl 97 set ref 530 591 600 nolist 100(06) based bit(1) level 3 packed packed unaligned dcl 19-78 set ref 1198 notified_instance 001406 automatic bit(1) dcl 1030 set ref 1035* 1036 1052* 1057* null builtin function dcl 209 ref 4-53 19-76 678 713 755 760 760 765 768 772 number 40 based fixed bin(17,0) level 4 dcl 16-17 set ref 500* 512* number_disconnected_processes 17 based fixed bin(17,0) level 3 dcl 16-17 set ref 1010* old_password 22 based char(8) level 2 packed packed unaligned dcl 19-78 ref 333 old_pnte 000332 automatic structure level 1 dcl 98 set ref 245 357* operator 17(08) based bit(1) level 3 in structure "ute" packed packed unaligned dcl 19-78 in procedure "uc_login_" ref 373 operator 40(09) 000212 automatic bit(1) level 4 in structure "pnte" packed packed unaligned dcl 97 in procedure "uc_login_" set ref 373 output_info 16 based structure level 2 dcl 16-17 part_1 based structure level 2 dcl 7-33 password 000752 automatic char(32) packed unaligned dcl 319 in procedure "Validate_Personid" set ref 333* 335* 339* password 2 000212 automatic char(32) level 3 in structure "pnte" dcl 97 in procedure "uc_login_" set ref 535* password 4 based char(32) level 3 in structure "uc_validate_info" packed packed unaligned dcl 16-17 in procedure "uc_login_" ref 335 535 783 password 11 based char(8) level 2 in structure "user" dcl 10-58 in procedure "uc_login_" ref 783 783 password_change_interval 2042 based fixed bin(17,0) level 3 dcl 7-33 ref 467 467 473 password_expiration_interval 2043 based fixed bin(17,0) level 3 dcl 7-33 ref 443 443 443 452 password_expired 16 based bit(1) level 4 packed packed unaligned dcl 16-17 set ref 472* password_interval 22 based fixed bin(71,0) level 3 dcl 16-17 set ref 452* 473* password_timelock 64 000212 automatic fixed bin(71,0) level 3 dcl 97 set ref 526 password_unused_too_long 16(01) based bit(1) level 4 packed packed unaligned dcl 16-17 set ref 451* pdt based structure level 1 dcl 10-27 pdt_entryname 000121 automatic char(32) packed unaligned dcl 638 set ref 682* 683* pdt_htp 000132 automatic pointer dcl 639 set ref 727* 728 728 737* pdt_name 000100 automatic char(32) packed unaligned dcl 1170 set ref 1179* 1180* pdt_ptr 24 based pointer level 2 dcl 13-53 set ref 678 678 691* pdtep 354 based pointer level 2 in structure "ute" dcl 19-78 in procedure "uc_login_" set ref 775* pdtep 000206 automatic pointer dcl 95 in procedure "uc_login_" set ref 713* 740* 741 743 749 751 751* 755* 760 760 762* 763 765 765* 768* 772 775 783 783 838 847 852 881 909 917 980 981 981 983 991 993 998 999 1003 1004 1006 1010 pdtp 000210 automatic pointer dcl 96 set ref 678* 683* 691 722 725 727 727 731 740 760 762 person 241 based char(28) array level 3 in structure "whotab" dcl 21-10 in procedure "uc_login_" set ref 1212* 1214* person 4 based char(24) level 2 in structure "ute" packed packed unaligned dcl 19-78 in procedure "uc_login_" set ref 321 327 339* 342* 349* 360* 360 404* 407* 412* 417* 426* 522* 556* 705 717* 794* 815* 1038 1038 1045* 1045* 1048* 1153* 1214 person_authorization 66 000212 automatic bit(72) array level 3 dcl 97 set ref 550 913 921 person_id 2 based char(24) level 2 dcl 10-58 set ref 749 751* 765 pnt_entry based structure level 1 dcl 12-22 pnt_manager_$admin_get_entry 000056 constant entry external dcl 145 ref 342 pnt_manager_$login_get_entry 000060 constant entry external dcl 147 ref 339 pnt_manager_$update_entry 000062 constant entry external dcl 150 ref 1148 pnte 000212 automatic structure level 1 dcl 97 set ref 245 338* 339 339 342 342 357 1148 1148 private 1 000212 automatic structure level 2 dcl 97 proc_type 270 based fixed bin(17,0) array level 3 dcl 21-10 set ref 1224* process_authorization 24 based bit(72) level 2 in structure "ute" dcl 19-78 in procedure "uc_login_" set ref 603 625* 628* 903* 935* 952* 1048* 1225 process_authorization 276 based bit(72) array level 3 in structure "whotab" dcl 21-10 in procedure "uc_login_" set ref 1225* process_authorization_range 300 based bit(72) array level 2 dcl 19-78 set ref 906* 914* 922* 935* process_type 1 based fixed bin(17,0) level 2 dcl 19-78 ref 265 274 284 938 955 1224 1229 1231 project 250 based char(28) array level 3 in structure "whotab" dcl 21-10 in procedure "uc_login_" set ref 1215* project 722 based structure array level 2 in structure "sat" dcl 13-32 in procedure "uc_login_" set ref 647 project 12 based char(12) level 2 in structure "ute" packed packed unaligned dcl 19-78 in procedure "uc_login_" set ref 324 327* 361 361* 412* 426* 522* 556* 594 642* 648 648 651* 675* 717* 794* 815* 1045* 1048* 1215 project based structure level 1 dcl 13-53 in procedure "uc_login_" project_authorization 102 based bit(72) array level 2 dcl 13-53 ref 910 911 918 919 project_id 1 based char(12) level 2 packed packed unaligned dcl 13-53 set ref 648 651* 669* 675 682 687* 697* 731* 743* 751* public 22 000212 automatic structure level 2 dcl 97 pw_time_lock 40(06) 000212 automatic bit(1) level 4 packed packed unaligned dcl 97 set ref 526 queue 245 based fixed bin(17,0) level 2 dcl 19-78 ref 1232 rcp_init_flags based structure level 1 packed packed unaligned dcl 8-8 rs_number 115(18) based fixed bin(9,0) level 2 in structure "project" packed packed unsigned unaligned dcl 13-53 in procedure "uc_login_" set ref 694 694 697* 702 rs_number 374 based fixed bin(6,0) level 2 in structure "ute" packed packed unsigned unaligned dcl 19-78 in procedure "uc_login_" set ref 700* 702* rtrim builtin function dcl 209 ref 612 612 612 612 682 818 1141 1180 1180 sat based structure level 1 dcl 13-32 satep 000452 automatic pointer dcl 99 set ref 647* 648 648 651 651* 667 669 669 675 678 678 682 687 691 694 694 697 697 702 707 731 743 751 776 838 852 877 877 910 911 918 919 927 929 satp 000454 automatic pointer dcl 100 set ref 259* 647 654* 654 save_on_disconnect 30(23) based bit(1) level 3 in structure "project" packed packed unaligned dcl 13-53 in procedure "uc_login_" ref 877 save_on_disconnect 13(23) based bit(1) level 3 in structure "user" packed packed unaligned dcl 10-58 in procedure "uc_login_" ref 881 save_on_disconnect 100(23) based bit(1) level 3 in structure "ute" packed packed unaligned dcl 19-78 in procedure "uc_login_" set ref 877* 881* 885* scramble_ 000064 constant entry external dcl 153 ref 783 seg_fault_error 000000 stack reference condition dcl 214 ref 715 723 send_mail_$access_class 000220 constant entry external dcl 1171 ref 1180 send_mail_info 000111 automatic structure level 1 dcl 1-5 set ref 1173* 1180 1180 send_mail_info_version_2 000110 automatic fixed bin(17,0) initial dcl 1-3 set ref 1174 1-3* sent_from 1 000111 automatic char(32) level 2 dcl 1-5 set ref 1175* session_uid 277 based fixed bin(35,0) level 2 dcl 19-78 set ref 311* session_uid_counter 131 based fixed bin(35,0) level 2 dcl 4-55 set ref 310* 310 311 sl_info 000462 automatic structure level 1 dcl 15-24 set ref 1102* 1105 1105 1125* 1128 1128 sl_info_sev_code_msg 000000 constant structure level 1 dcl 15-82 ref 1102 sl_info_sev_coded_msg 000250 constant structure level 1 dcl 15-134 ref 1125 slave_pw 17(03) based bit(1) level 4 packed packed unaligned dcl 19-78 ref 810 special_pw 17(02) based structure level 3 packed packed unaligned dcl 19-78 state based fixed bin(17,0) level 2 in structure "project" dcl 13-53 in procedure "uc_login_" set ref 667 669* state based fixed bin(17,0) level 2 in structure "user" dcl 10-58 in procedure "uc_login_" set ref 741 743* 763 status_code_string 000100 automatic char(8) dcl 1072 set ref 1075* 1077* 1083 stby 265 based fixed bin(17,0) array level 3 dcl 21-10 set ref 1219* string builtin function dcl 209 set ref 838* 838 838 838 843* 843 847* 847 847 847 852* 852 852 852 857 857 861* 861 865* 865 substr builtin function dcl 209 ref 360 594 1048 1048 suspended 273(02) based bit(1) array level 3 packed packed unaligned dcl 21-10 set ref 1226* switches 11 000111 automatic structure level 2 dcl 1-5 sys_log_$general 000216 constant entry external dcl 1123 in procedure "Log_Coded_Error" ref 1128 sys_log_$general 000212 constant entry external dcl 1100 in procedure "Log_Error_with_Code" ref 1105 tag 15 based char(1) level 2 packed packed unaligned dcl 19-78 set ref 496 815* 1038 temp_code 001264 automatic fixed bin(35,0) dcl 967 set ref 1001* 1004 temp_coded_type 001265 automatic fixed bin(17,0) dcl 968 set ref 981* 983* 985* 1001* 1003 temp_lth 001407 automatic fixed bin(21,0) dcl 1031 set ref 1045* 1048 1048 temp_person_name 000134 automatic char(32) packed unaligned dcl 640 set ref 705* 710* 737* 743* 749 751* 765 temp_string 001410 automatic char(100) packed unaligned dcl 1032 set ref 1044* 1045* temp_terminal_type 001266 automatic char(32) packed unaligned dcl 969 set ref 985* 987* 989 temp_utep 001442 automatic pointer dcl 1033 set ref 1037* 1038 1038 1038 1038 1038 1038 1048 1048 1055* terminal_id 54 based char(4) level 4 in structure "uc_validate_info" packed packed unaligned dcl 16-17 in procedure "uc_login_" set ref 991* terminal_id 36 based char(4) level 4 in structure "uc_validate_info" packed packed unaligned dcl 16-17 in procedure "uc_login_" set ref 504* 514* terminal_type 326 based char(32) level 2 in structure "ute" packed packed unaligned dcl 19-78 in procedure "uc_login_" set ref 393 404* 407* 426* 522* 556* 1001* 1045* terminal_type 26 based char(32) level 4 in structure "uc_validate_info" packed packed unaligned dcl 16-17 in procedure "uc_login_" set ref 502* 513* terminal_type 44 based char(32) level 4 in structure "uc_validate_info" packed packed unaligned dcl 16-17 in procedure "uc_login_" set ref 989* time 24 based fixed bin(71,0) level 4 in structure "uc_validate_info" dcl 16-17 in procedure "uc_login_" set ref 499* 511* time 42 based fixed bin(71,0) level 4 in structure "uc_validate_info" dcl 16-17 in procedure "uc_login_" set ref 980* time_last_bad_pw 50 000212 automatic fixed bin(71,0) level 3 dcl 97 set ref 390* 499 time_last_good_pw 46 000212 automatic fixed bin(71,0) level 3 dcl 97 set ref 443 483* time_pw_changed 44 000212 automatic fixed bin(71,0) level 3 dcl 97 set ref 467 536* timeon 262 based fixed bin(71,0) array level 3 dcl 21-10 set ref 1217* trap 40(02) 000212 automatic bit(1) level 4 packed packed unaligned dcl 97 set ref 521 ttt_info_$decode_type 000066 constant entry external dcl 154 ref 985 ttt_info_$encode_type 000070 constant entry external dcl 155 ref 1001 tty_id_code 337 based char(4) level 2 packed packed unaligned dcl 19-78 set ref 392 404* 407* 426* 522* 556* 999 1045* 1221 tty_name 316 based char(32) level 2 packed packed unaligned dcl 19-78 set ref 426* 522* 556* 795* 818 822* type 001226 automatic char(8) packed unaligned dcl 806 set ref 808* 810* 812* uc_validate_info based structure level 1 dcl 16-17 uc_validate_info_ptr 000732 automatic pointer dcl 16-15 set ref 253* 297 304 335 451 452 472 473 499 500 502 504 506 511 512 513 514 515 535 538 553 571 573 595 604 610 783 952 980 989 991 993 1010 1148 uflags 431 based structure level 2 dcl 19-78 units 264 based fixed bin(17,0) array level 3 dcl 21-10 set ref 1216* unspec builtin function dcl 209 set ref 245 245 264* 338* 1173* up_sat_$make_sat_hash 000072 constant entry external dcl 156 ref 654 uprojp 400 based pointer level 2 dcl 19-78 set ref 776* ur_at 77 based structure level 2 dcl 19-78 set ref 838* 838 847 857 user based structure level 1 dcl 10-58 in procedure "uc_login_" user 400 based structure array level 2 in structure "pdt" dcl 10-27 in procedure "uc_login_" set ref 740 762 user_abs_attributes based structure level 1 dcl 18-25 user_attributes based structure level 1 dcl 17-21 user_authorization 365 based bit(72) array level 2 dcl 10-58 ref 909 917 user_id 22 000212 automatic char(32) level 3 dcl 97 set ref 360 612 612 614* user_validated_time 76 000212 automatic fixed bin(71,0) level 3 dcl 97 set ref 443 ut_header based structure level 1 dcl 20-16 ute based structure level 1 dcl 19-78 utep 000734 automatic pointer initial dcl 19-76 set ref 19-76* 254* 265 274 284 300 311 321 324 327 327 333 333 339 342 349 360 360 361 361 373 392 393 394 404 404 404 407 407 407 412 412 417 426 426 426 426 426 439 439 457 496 522 522 522 522 522 530 556 556 556 556 556 591 594 600 603 625 625 628 642 648 648 651 675 700 702 705 717 717 775 776 794 794 795 808 810 815 815 815 815 818 822 838 838 843 843 847 847 847 852 852 857 857 861 861 865 865 867 867 877 877 881 885 885 903 906 911 914 919 922 927 929 935 935 938 938 952 955 955 971 972 973 974* 999 1001 1006 1038 1038 1045 1045 1045 1045 1045 1048 1079 1081 1082 1083* 1153 1198 1200 1211 1212 1214 1215 1218 1221 1224 1225 1229 1231 1232 version 000111 automatic fixed bin(17,0) level 2 dcl 1-5 set ref 1174* wakeup 11 000111 automatic bit(1) level 3 packed packed unaligned dcl 1-5 set ref 1176* whoptr 000456 automatic pointer dcl 101 set ref 260* 694 1196* 1197 1197 1203 1204 1204 1205 1205 1208 1209 1209 1212 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1226 1226 1229 1229 1233 1233 1234 1238 1238 1239 whotab based structure level 1 dcl 21-10 whotab_idx 001522 automatic fixed bin(17,0) dcl 1194 set ref 1199* 1205* 1208* 1209 1211 1212 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1226 1226 1234 1234 1239 1239 whotabx 430 based fixed bin(17,0) level 2 dcl 19-78 set ref 1200* 1211* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. ABS_ATTRIBUTE_NAMES internal static varying char(28) initial array dcl 18-38 ABS_FLAG_NAMES internal static varying char(8) initial array dcl 19-326 ACTIVE_VALUES internal static char(18) initial array dcl 5-86 ALT_USER_ATTRIBUTE_NAMES internal static char(20) initial array packed unaligned dcl 17-77 ANSTBL_version_4 internal static fixed bin(17,0) initial dcl 4-51 AT_NORMAL internal static char(8) initial packed unaligned dcl 4-116 AT_SHUTDOWN internal static char(8) initial packed unaligned dcl 4-116 AT_SPECIAL internal static char(8) initial packed unaligned dcl 4-116 A_ACCESS internal static bit(3) initial packed unaligned dcl 2-11 A_ACCESS_BIN internal static fixed bin(5,0) initial dcl 2-36 Automatic_authentication internal static fixed bin(17,0) initial dcl 8-16 DERIVE_MASK internal static bit(2) initial packed unaligned dcl 19-280 DIAL_SERVER_FLAG_NAMES internal static varying char(12) initial array dcl 19-332 DIR_ACCESS_MODE_NAMES internal static char(4) initial array packed unaligned dcl 2-33 DONT_MASK internal static bit(2) initial packed unaligned dcl 19-280 DO_MASK internal static bit(2) initial packed unaligned dcl 19-280 E_ACCESS internal static bit(3) initial packed unaligned dcl 2-11 E_ACCESS_BIN internal static fixed bin(5,0) initial dcl 2-36 LINE_1050 internal static fixed bin(17,0) initial dcl 9-22 LINE_2741 internal static fixed bin(17,0) initial dcl 9-22 LINE_ARDS internal static fixed bin(17,0) initial dcl 9-22 LINE_ASCII internal static fixed bin(17,0) initial dcl 9-22 LINE_ASYNC1 internal static fixed bin(17,0) initial dcl 9-22 LINE_ASYNC2 internal static fixed bin(17,0) initial dcl 9-22 LINE_ASYNC3 internal static fixed bin(17,0) initial dcl 9-22 LINE_BSC internal static fixed bin(17,0) initial dcl 9-22 LINE_COLTS internal static fixed bin(17,0) initial dcl 9-22 LINE_DSA internal static fixed bin(17,0) initial dcl 9-22 LINE_ETX internal static fixed bin(17,0) initial dcl 9-22 LINE_G115 internal static fixed bin(17,0) initial dcl 9-22 LINE_HASP_OPR internal static fixed bin(17,0) initial dcl 9-22 LINE_HDLC internal static fixed bin(17,0) initial dcl 9-22 LINE_MC internal static fixed bin(17,0) initial dcl 9-22 LINE_POLLED_VIP internal static fixed bin(17,0) initial dcl 9-22 LINE_SYNC1 internal static fixed bin(17,0) initial dcl 9-22 LINE_SYNC2 internal static fixed bin(17,0) initial dcl 9-22 LINE_SYNC3 internal static fixed bin(17,0) initial dcl 9-22 LINE_SYNCH internal static fixed bin(17,0) initial dcl 9-22 LINE_TELNET internal static fixed bin(17,0) initial dcl 9-22 LINE_UNKNOWN internal static fixed bin(17,0) initial dcl 9-22 LINE_VIP internal static fixed bin(17,0) initial dcl 9-22 LINE_X25LAP internal static fixed bin(17,0) initial dcl 9-22 LOGIN_RESULT_VALUES internal static varying char(24) initial array dcl 19-338 MASK_CTL_NAMES internal static varying char(12) initial array dcl 19-284 MAX_HT_BUCKETS_IN_SEG internal static fixed bin(17,0) initial dcl 6-24 M_ACCESS internal static bit(3) initial packed unaligned dcl 2-11 M_ACCESS_BIN internal static fixed bin(5,0) initial dcl 2-36 Manual_authentication internal static fixed bin(17,0) initial dcl 8-16 NOW_DIALED internal static fixed bin(17,0) initial dcl 5-76 NOW_DIALED_OUT internal static fixed bin(17,0) initial dcl 5-76 NOW_DIALING internal static fixed bin(17,0) initial dcl 5-76 NOW_FREE internal static fixed bin(17,0) initial dcl 5-76 NOW_HUNG_UP internal static fixed bin(17,0) initial dcl 5-76 NOW_LISTENING internal static fixed bin(17,0) initial dcl 5-76 N_ACCESS internal static bit(3) initial packed unaligned dcl 2-11 N_ACCESS_BIN internal static fixed bin(5,0) initial dcl 2-36 No_authentication internal static fixed bin(17,0) initial dcl 8-16 Nominal_authentication internal static fixed bin(17,0) initial dcl 8-16 PDT_entry_lth internal static fixed bin(17,0) initial dcl 10-19 PDT_header_lth internal static fixed bin(17,0) initial dcl 10-19 PDT_person_id_length internal static fixed bin(17,0) initial dcl 10-19 PDT_project_name_length internal static fixed bin(17,0) initial dcl 10-19 PDT_version internal static fixed bin(17,0) initial dcl 10-19 PNT_ENTRY_VERSION_2 internal static fixed bin(17,0) initial dcl 12-64 PREEMPT_BUMPED internal static fixed bin(17,0) initial dcl 5-132 PREEMPT_BUMPED_NO_TERM internal static fixed bin(17,0) initial dcl 5-132 PREEMPT_LOAD_CTL internal static fixed bin(17,0) initial dcl 5-132 PREEMPT_TERMSGNL_RECEIVED internal static fixed bin(17,0) initial dcl 5-132 PREEMPT_TERM_SENT internal static fixed bin(17,0) initial dcl 5-132 PREEMPT_UNBUMP internal static fixed bin(17,0) initial dcl 5-132 PREEMPT_UNBUMP_IGNORE_ALARM internal static fixed bin(17,0) initial dcl 5-132 PREEMPT_VALUES internal static varying char(28) initial array dcl 5-142 PROCESS_TYPE_NAMES internal static varying char(12) initial array dcl 19-265 PT_ALARM internal static fixed bin(17,0) initial dcl 5-106 PT_BUMP internal static fixed bin(17,0) initial dcl 5-106 PT_DESTROY_REQUEST internal static fixed bin(17,0) initial dcl 5-106 PT_DETACH internal static fixed bin(17,0) initial dcl 5-106 PT_FPE internal static fixed bin(17,0) initial dcl 5-106 PT_HANGUP internal static fixed bin(17,0) initial dcl 5-106 PT_LOGOUT internal static fixed bin(17,0) initial dcl 5-106 PT_NEW_PROC_AUTH internal static fixed bin(17,0) initial dcl 5-106 PT_NEW_PROC_REQUEST internal static fixed bin(17,0) initial dcl 5-106 PT_OPERATOR_TERMINATE internal static fixed bin(17,0) initial dcl 5-106 PT_SHUTDOWN internal static fixed bin(17,0) initial dcl 5-106 PT_UNBUMP internal static fixed bin(17,0) initial dcl 5-106 PW_FLAG_NAMES internal static varying char(12) initial array dcl 19-290 REW_ACCESS internal static bit(3) initial packed unaligned dcl 2-11 REW_ACCESS_BIN internal static fixed bin(5,0) initial dcl 2-36 RE_ACCESS internal static bit(3) initial packed unaligned dcl 2-11 RE_ACCESS_BIN internal static fixed bin(5,0) initial dcl 2-36 RW_ACCESS_BIN internal static fixed bin(5,0) initial dcl 2-36 R_ACCESS internal static bit(3) initial packed unaligned dcl 2-11 R_ACCESS_BIN internal static fixed bin(5,0) initial dcl 2-36 SAT_entry_lth internal static fixed bin(17,0) initial dcl 13-24 SAT_header_lth internal static fixed bin(17,0) initial dcl 13-24 SAT_project_name_length internal static fixed bin(17,0) initial dcl 13-24 SAT_version internal static fixed bin(17,0) initial dcl 13-24 SA_ACCESS internal static bit(3) initial packed unaligned dcl 2-11 SA_ACCESS_BIN internal static fixed bin(5,0) initial dcl 2-36 SEG_ACCESS_MODE_NAMES internal static char(4) initial array packed unaligned dcl 2-30 SL_INFO_arg_given_in_structure internal static fixed bin(17,0) initial dcl 15-69 SL_INFO_arg_not_given internal static fixed bin(17,0) initial dcl 15-69 SL_INFO_as_mode internal static fixed bin(17,0) initial dcl 15-65 SL_INFO_command_mode internal static fixed bin(17,0) initial dcl 15-65 SL_INFO_version_1 internal static char(8) initial packed unaligned dcl 15-62 SL_LOG_CRASH internal static fixed bin(17,0) initial dcl 15-14 SL_TYPE internal static fixed bin(17,0) initial dcl 15-14 SL_TYPE_BEEP internal static fixed bin(17,0) initial dcl 15-14 SL_TYPE_CRASH internal static fixed bin(17,0) initial dcl 15-14 SMA_ACCESS internal static bit(3) initial packed unaligned dcl 2-11 SMA_ACCESS_BIN internal static fixed bin(5,0) initial dcl 2-36 SM_ACCESS internal static bit(3) initial packed unaligned dcl 2-11 SM_ACCESS_BIN internal static fixed bin(5,0) initial dcl 2-36 STATE_VALUES internal static char(15) initial array dcl 5-70 S_ACCESS internal static bit(3) initial packed unaligned dcl 2-11 S_ACCESS_BIN internal static fixed bin(5,0) initial dcl 2-36 TABLE_NAMES internal static char(20) initial array packed unaligned dcl 19-271 TAG_ABSENTEE internal static char(1) initial packed unaligned dcl 5-93 TAG_DAEMON internal static char(1) initial packed unaligned dcl 5-93 TAG_INTERACTIVE internal static char(1) initial packed unaligned dcl 5-93 TAG_PROXY internal static char(1) initial packed unaligned dcl 5-93 TRA_VEC_VALUES internal static char(32) initial array dcl 5-54 TTY_DIALED internal static fixed bin(17,0) initial dcl 5-64 TTY_HUNG internal static fixed bin(17,0) initial dcl 5-64 TTY_KNOWN internal static fixed bin(17,0) initial dcl 5-64 TTY_MASKED internal static fixed bin(17,0) initial dcl 5-64 UFLAG_NAMES internal static varying char(24) initial array dcl 19-303 USER_ATTRIBUTE_NAMES internal static char(20) initial array packed unaligned dcl 17-50 UTE_version_4 internal static fixed bin(17,0) initial dcl 19-74 WAIT_ANSWERBACK internal static fixed bin(17,0) initial dcl 5-25 WAIT_BEFORE_HANGUP internal static fixed bin(17,0) initial dcl 5-25 WAIT_CONNECT_REQUEST internal static fixed bin(17,0) initial dcl 5-25 WAIT_DELETE_CHANNEL internal static fixed bin(17,0) initial dcl 5-25 WAIT_DESTROY_REQUEST internal static fixed bin(17,0) initial dcl 5-25 WAIT_DETACH internal static fixed bin(17,0) initial dcl 5-25 WAIT_DIALUP internal static fixed bin(17,0) initial dcl 5-25 WAIT_DIAL_OUT internal static fixed bin(17,0) initial dcl 5-25 WAIT_DIAL_RELEASE internal static fixed bin(17,0) initial dcl 5-25 WAIT_DISCARD_WAKEUPS internal static fixed bin(17,0) initial dcl 5-25 WAIT_FIN_PRIV_ATTACH internal static fixed bin(17,0) initial dcl 5-25 WAIT_FIN_TANDD_ATTACH internal static fixed bin(17,0) initial dcl 5-25 WAIT_GREETING_MSG internal static fixed bin(17,0) initial dcl 5-25 WAIT_HANGUP internal static fixed bin(17,0) initial dcl 5-25 WAIT_LOGIN_ARGS internal static fixed bin(17,0) initial dcl 5-25 WAIT_LOGIN_LINE internal static fixed bin(17,0) initial dcl 5-25 WAIT_LOGOUT internal static fixed bin(17,0) initial dcl 5-25 WAIT_LOGOUT_HOLD internal static fixed bin(17,0) initial dcl 5-25 WAIT_LOGOUT_SIG internal static fixed bin(17,0) initial dcl 5-25 WAIT_NEW_PASSWORD internal static fixed bin(17,0) initial dcl 5-25 WAIT_NEW_PROC internal static fixed bin(17,0) initial dcl 5-25 WAIT_NEW_PROC_REQUEST internal static fixed bin(17,0) initial dcl 5-25 WAIT_OLD_PASSWORD internal static fixed bin(17,0) initial dcl 5-25 WAIT_PASSWORD internal static fixed bin(17,0) initial dcl 5-25 WAIT_REMOVE internal static fixed bin(17,0) initial dcl 5-25 WAIT_SLAVE_REQUEST internal static fixed bin(17,0) initial dcl 5-25 WAIT_TANDD_HANGUP internal static fixed bin(17,0) initial dcl 5-25 WHOTAB_VERSION_1 internal static fixed bin(17,0) initial dcl 21-96 W_ACCESS internal static bit(3) initial packed unaligned dcl 2-11 W_ACCESS_BIN internal static fixed bin(5,0) initial dcl 2-36 as_data_$BS external static char(1) dcl 3-21 as_data_$CR external static char(1) dcl 3-22 as_data_$abs_dim external static char(32) packed unaligned dcl 3-23 as_data_$acct_update_priority external static fixed bin(17,0) dcl 3-24 as_data_$acsdir external static char(168) packed unaligned dcl 3-25 as_data_$as_procid external static bit(36) dcl 3-27 as_data_$as_ring external static fixed bin(3,0) dcl 3-28 as_data_$as_tty automatic char(6) packed unaligned dcl 3-29 as_data_$asmtp external static pointer dcl 3-30 as_data_$autp external static pointer dcl 3-31 as_data_$buzzardp external static pointer dcl 3-32 as_data_$cdtp external static pointer dcl 3-33 as_data_$debug_flag external static bit(1) dcl 3-84 as_data_$default_weight external static fixed bin(35,0) dcl 3-34 as_data_$devtabp external static pointer dcl 3-35 as_data_$dft_user_ring external static fixed bin(3,0) dcl 3-36 as_data_$dutp external static pointer dcl 3-37 as_data_$g115_dim external static char(32) packed unaligned dcl 3-38 as_data_$lct_initialized external static bit(1) dcl 3-39 as_data_$lct_size external static fixed bin(17,0) dcl 3-40 as_data_$login_args external static structure level 1 dcl 3-62 as_data_$login_words external static fixed bin(17,0) dcl 3-77 as_data_$ls_message_buffer_cur_lth external static fixed bin(18,0) dcl 3-86 as_data_$ls_message_buffer_max_lth external static fixed bin(18,0) dcl 3-87 as_data_$ls_message_buffer_ptr external static pointer dcl 3-88 as_data_$ls_request_server_info_ptr external static pointer dcl 3-85 as_data_$max_user_ring external static fixed bin(3,0) dcl 3-41 as_data_$mgtp external static pointer dcl 3-42 as_data_$mrd_dim external static char(32) packed unaligned dcl 3-43 as_data_$ntty_dim external static char(32) packed unaligned dcl 3-44 as_data_$pit_ptr external static pointer dcl 3-46 as_data_$request_priority external static fixed bin(17,0) dcl 3-48 as_data_$rtdtp external static pointer dcl 3-50 as_data_$signal_types external static structure level 1 dcl 3-67 as_data_$suffix external static char(2) array packed unaligned dcl 3-53 as_data_$sysdir external static char(168) packed unaligned dcl 3-54 as_data_$system_signal_types external static structure level 1 dcl 3-72 as_data_$teens_suffix external static char(2) array packed unaligned dcl 3-55 as_data_$terminet_tabs_string external static varying char(144) dcl 3-56 as_data_$tty_dim external static char(32) packed unaligned dcl 3-57 as_data_$update_priority external static fixed bin(17,0) dcl 3-58 as_data_$version external static char(8) packed unaligned dcl 3-59 as_data_login_words based structure level 1 dcl 3-77 authentication_level_names internal static char(12) initial array packed unaligned dcl 8-21 hash_table_size_ automatic fixed bin(17,0) dcl 6-25 htp automatic pointer dcl 92 installation_parms_version_1 internal static fixed bin(17,0) initial dcl 7-37 installation_parms_version_2 internal static fixed bin(17,0) initial dcl 7-38 line_types internal static char(16) initial array packed unaligned dcl 9-54 max_line_type internal static fixed bin(17,0) initial dcl 9-48 n_sync_line_types internal static fixed bin(17,0) initial dcl 9-50 pntep automatic pointer dcl 12-21 rifp automatic pointer dcl 8-6 sl_info_code_msg internal static structure level 1 dcl 15-187 sl_info_msg internal static structure level 1 dcl 15-214 sl_info_sev_code_label_msg internal static structure level 1 dcl 15-161 sl_info_sev_msg internal static structure level 1 dcl 15-108 sync_line_type internal static fixed bin(17,0) initial array dcl 9-52 NAMES DECLARED BY EXPLICIT CONTEXT. Abort 006265 constant entry internal dcl 1066 ref 294 321 345 351 367 373 439 453 461 463 474 477 526 530 583 597 606 644 660 672 689 707 720 738 746 772 783 796 827 938 942 955 958 1155 Bad_Password 001671 constant entry internal dcl 382 ref 366 Check_Access_Authorization 005335 constant entry internal dcl 897 ref 237 Check_Anonymous_Password 004643 constant entry internal dcl 780 ref 230 Check_Authorization_Argument 003327 constant entry internal dcl 622 ref 227 Check_Channel_Access 005003 constant entry internal dcl 801 ref 234 Check_Channel_Access_Class 005573 constant entry internal dcl 949 ref 238 Check_Daemon_Access 004706 constant entry internal dcl 789 ref 232 Check_Password_Flags 002234 constant entry internal dcl 436 ref 221 Check_Physical_Security_Breach 002624 constant entry internal dcl 543 ref 223 Convert_Message 006460 constant entry internal dcl 1134 ref 396 399 1044 Log_Coded_Error 006421 constant entry internal dcl 1119 ref 426 522 556 568 580 Log_Error_with_Code 006361 constant entry internal dcl 1096 ref 349 614 651 658 669 687 697 717 731 743 751 822 1153 Login 005646 constant entry internal dcl 964 ref 241 Notify_Other_Instances 006030 constant entry internal dcl 1024 ref 1020 Process_Attributes 005243 constant entry internal dcl 832 ref 236 Process_Change_Arguments 003121 constant entry internal dcl 588 ref 225 RETURN 001161 constant label dcl 243 ref 1084 Send_User_Mail 006615 constant entry internal dcl 1161 ref 412 417 1048 Setup 001174 constant entry internal dcl 250 ref 219 Update_Pnte 006522 constant entry internal dcl 1145 ref 245 Update_Whotable 007011 constant entry internal dcl 1189 ref 1016 Validate_Personid 001367 constant entry internal dcl 316 ref 220 Validate_Projectid 003350 constant entry internal dcl 633 ref 229 lookup_loop 003355 constant label dcl 642 ref 656 uc_login_ 001100 constant entry external dcl 62 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 10312 10534 7207 10322 Length 11532 7207 222 761 1102 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME uc_login_ 1425 external procedure is an external procedure. Setup internal procedure shares stack frame of external procedure uc_login_. Validate_Personid internal procedure shares stack frame of external procedure uc_login_. Bad_Password internal procedure shares stack frame of external procedure uc_login_. Check_Password_Flags internal procedure shares stack frame of external procedure uc_login_. Check_Physical_Security_Breach internal procedure shares stack frame of external procedure uc_login_. Process_Change_Arguments internal procedure shares stack frame of external procedure uc_login_. Check_Authorization_Argument internal procedure shares stack frame of external procedure uc_login_. Validate_Projectid 190 internal procedure enables or reverts conditions. on unit on line 715 110 on unit Check_Anonymous_Password internal procedure shares stack frame of external procedure uc_login_. Check_Daemon_Access internal procedure shares stack frame of external procedure uc_login_. Check_Channel_Access internal procedure shares stack frame of external procedure uc_login_. Process_Attributes internal procedure shares stack frame of external procedure uc_login_. Check_Access_Authorization internal procedure shares stack frame of external procedure uc_login_. Check_Channel_Access_Class internal procedure shares stack frame of external procedure uc_login_. Login internal procedure shares stack frame of external procedure uc_login_. Notify_Other_Instances internal procedure shares stack frame of external procedure uc_login_. Abort 102 internal procedure is called by several nonquick procedures. Log_Error_with_Code 70 internal procedure is declared options(variable). Log_Coded_Error 70 internal procedure is declared options(variable). Convert_Message internal procedure shares stack frame of external procedure uc_login_. Update_Pnte internal procedure shares stack frame of external procedure uc_login_. Send_User_Mail 114 internal procedure is called during a stack extension. Update_Whotable internal procedure shares stack frame of external procedure uc_login_. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME Abort 000100 status_code_string Abort Send_User_Mail 000100 pdt_name Send_User_Mail 000110 send_mail_info_version_2 Send_User_Mail 000111 send_mail_info Send_User_Mail Validate_Projectid 000100 ans Validate_Projectid 000120 i Validate_Projectid 000121 pdt_entryname Validate_Projectid 000132 pdt_htp Validate_Projectid 000134 temp_person_name Validate_Projectid uc_login_ 000100 authorization uc_login_ 000106 auth_string uc_login_ 000170 auth_string_octal uc_login_ 000200 code uc_login_ 000201 flags uc_login_ 000202 ip uc_login_ 000204 maybe_update_pnte uc_login_ 000206 pdtep uc_login_ 000210 pdtp uc_login_ 000212 pnte uc_login_ 000332 old_pnte uc_login_ 000452 satep uc_login_ 000454 satp uc_login_ 000456 whoptr uc_login_ 000460 ansp uc_login_ 000462 sl_info uc_login_ 000732 uc_validate_info_ptr uc_login_ 000734 utep uc_login_ 000752 password Validate_Personid 000770 mail_for_user Bad_Password 001030 message Bad_Password 001144 maximum_authorization Check_Physical_Security_Breach 001176 group_id Check_Daemon_Access 001214 group_id Check_Channel_Access 001224 mode Check_Channel_Access 001226 type Check_Channel_Access 001236 bstemp Process_Attributes 001264 temp_code Login 001265 temp_coded_type Login 001266 temp_terminal_type Login 001304 code Notify_Other_Instances 001305 i Notify_Other_Instances 001306 mail_for_user Notify_Other_Instances 001406 notified_instance Notify_Other_Instances 001407 temp_lth Notify_Other_Instances 001410 temp_string Notify_Other_Instances 001442 temp_utep Notify_Other_Instances 001454 message Convert_Message 001522 whotab_idx Update_Whotable THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. r_e_as alloc_char_temp 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 mpfx2 mdfx1 enable_op shorten_stack ext_entry int_entry int_entry_desc clock_mac THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. aim_check_$greater_or_equal aim_check_$in_range as_access_audit_$login asu_$blast_user convert_access_class_$maximum convert_access_class_$minimum convert_access_class_$to_string_range_short convert_access_class_$to_string_short convert_status_code_ cu_$arg_list_ptr cu_$arg_list_ptr display_access_class_ display_access_class_$range hash_$search hcs_$get_user_access_modes initiate_file_ ioa_$rs ioa_$rsnnl mail_table_initializer_$set_dft_proj mc_check_access_$log_in_as_daemon merge_access_audit_flags_ pnt_manager_$admin_get_entry pnt_manager_$login_get_entry pnt_manager_$update_entry scramble_ send_mail_$access_class sys_log_$general sys_log_$general ttt_info_$decode_type ttt_info_$encode_type up_sat_$make_sat_hash THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. as_data_$ansp as_data_$pdtdir as_data_$rcpdir as_data_$rs_ptrs as_data_$sat_htp as_data_$satp as_data_$whoptr as_error_table_$already_in_notify_msg as_error_table_$bad_anon_pw as_error_table_$bad_password as_error_table_$bad_personid as_error_table_$bad_project as_error_table_$breach as_error_table_$breach_msg as_error_table_$cant_give_dft_auth as_error_table_$cant_give_that_authorization as_error_table_$dialup_error as_error_table_$must_change as_error_table_$must_use_generate_pw as_error_table_$no_change as_error_table_$no_line_permission as_error_table_$not_in_pdt as_error_table_$operator_not_allowed as_error_table_$password_expired as_error_table_$password_locked as_error_table_$password_probe1_mail_msg as_error_table_$password_probe_mail_msg as_error_table_$password_trap as_error_table_$pdt_missing as_error_table_$person_auth_msg as_error_table_$terminal_auth_msg as_error_table_$too_many_bad_pw error_table_$bad_arg error_table_$bad_password error_table_$id_not_found error_table_$messages_off error_table_$smallarg error_table_$wakeup_denied LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 62 001074 4 53 001105 19 76 001107 219 001110 220 001111 221 001112 223 001116 225 001122 227 001126 229 001132 230 001136 232 001142 234 001146 236 001152 237 001153 238 001154 241 001160 243 001161 245 001164 248 001173 250 001174 253 001175 254 001201 255 001204 257 001205 258 001211 259 001214 260 001217 262 001222 264 001225 265 001226 266 001232 267 001234 268 001236 269 001240 270 001242 271 001244 272 001246 273 001250 274 001251 276 001253 277 001255 278 001257 279 001261 280 001263 281 001265 282 001267 283 001271 284 001272 286 001274 287 001276 288 001300 289 001302 290 001304 291 001306 292 001310 293 001312 294 001313 297 001327 300 001335 302 001341 303 001343 304 001345 305 001352 306 001354 307 001355 310 001357 311 001364 312 001365 313 001366 316 001367 321 001370 324 001406 327 001416 328 001424 331 001425 333 001430 335 001440 338 001444 339 001447 341 001476 342 001477 345 001523 347 001540 349 001544 351 001574 357 001610 358 001613 360 001615 361 001621 364 001632 366 001636 367 001637 373 001650 380 001670 382 001671 388 001672 389 001673 390 001674 391 001677 392 001701 393 001704 394 001707 396 001711 399 001732 402 001747 404 001753 407 002016 412 002061 414 002112 417 002121 419 002156 421 002162 422 002163 425 002165 426 002172 431 002233 436 002234 439 002235 443 002260 451 002277 452 002302 453 002305 457 002321 459 002325 461 002330 463 002345 467 002356 472 002371 473 002374 474 002377 477 002414 482 002425 483 002426 496 002431 499 002440 500 002443 502 002445 504 002450 506 002452 508 002454 509 002456 511 002457 512 002462 513 002463 514 002466 515 002470 518 002471 521 002475 522 002500 526 002541 530 002567 535 002610 536 002614 537 002617 538 002621 540 002623 543 002624 548 002625 550 002633 553 002635 556 002653 560 002714 562 002730 564 002751 567 002760 568 002763 571 003010 573 003024 576 003045 579 003054 580 003057 583 003104 585 003120 588 003121 591 003122 594 003131 595 003137 596 003142 597 003143 600 003154 603 003163 604 003166 605 003171 606 003172 610 003203 612 003207 614 003270 619 003326 622 003327 625 003330 628 003343 630 003346 633 003347 642 003355 644 003403 647 003420 648 003427 651 003440 654 003501 656 003533 658 003536 660 003566 667 003603 669 003607 672 003645 675 003657 678 003670 682 003677 683 003725 685 003764 687 003767 689 004024 691 004036 694 004043 697 004060 700 004120 701 004124 702 004125 705 004131 707 004135 710 004157 713 004162 715 004165 717 004201 720 004242 721 004257 722 004260 723 004264 725 004265 727 004266 728 004271 731 004276 734 004335 737 004336 738 004362 740 004377 741 004405 743 004410 746 004452 749 004464 751 004472 755 004541 760 004544 762 004566 763 004572 765 004575 767 004603 768 004604 770 004606 772 004613 775 004632 776 004637 777 004642 780 004643 783 004644 786 004705 789 004706 794 004707 795 004744 796 004765 798 005002 801 005003 808 005004 810 005013 812 005021 815 005023 818 005074 820 005166 822 005171 824 005221 827 005222 829 005242 832 005243 838 005244 843 005253 847 005256 852 005266 857 005272 861 005276 865 005301 867 005303 877 005310 881 005320 885 005325 888 005334 897 005335 903 005336 906 005345 909 005363 910 005367 911 005373 913 005402 914 005404 917 005427 918 005433 919 005437 921 005447 922 005451 927 005474 929 005504 935 005521 938 005540 942 005561 947 005572 949 005573 952 005574 955 005613 958 005634 962 005645 964 005646 971 005647 972 005651 973 005653 974 005656 975 005673 980 005676 981 005702 983 005713 985 005714 987 005735 989 005742 991 005746 993 005751 998 005755 999 005760 1001 005763 1003 006004 1004 006010 1006 006014 1010 006017 1016 006024 1020 006025 1021 006026 1022 006027 1024 006030 1035 006031 1036 006032 1037 006045 1038 006052 1044 006077 1045 006114 1048 006161 1052 006222 1055 006230 1057 006255 1061 006261 1062 006263 1066 006264 1074 006272 1075 006276 1077 006315 1079 006317 1081 006330 1082 006334 1083 006336 1084 006355 1096 006360 1102 006366 1103 006372 1104 006377 1105 006405 1107 006417 1119 006420 1125 006426 1126 006432 1127 006437 1128 006445 1130 006457 1134 006460 1140 006462 1141 006477 1145 006522 1148 006523 1150 006547 1151 006550 1153 006552 1155 006602 1157 006613 1161 006614 1 3 006642 1173 006644 1174 006647 1175 006650 1176 006653 1177 006655 1179 006657 1180 006713 1181 006772 1184 007006 1185 007010 1189 007011 1196 007012 1197 007016 1198 007020 1199 007024 1200 007025 1201 007026 1203 007027 1204 007031 1205 007032 1206 007035 1208 007036 1209 007037 1211 007042 1212 007044 1214 007056 1215 007064 1216 007072 1217 007073 1218 007077 1219 007101 1220 007102 1221 007104 1222 007106 1223 007111 1224 007113 1225 007115 1226 007121 1229 007140 1231 007145 1232 007147 1233 007151 1234 007152 1236 007157 1238 007160 1239 007165 1243 007172 ----------------------------------------------------------- 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