COMPILATION LISTING OF SEGMENT daemon_user_manager_ Compiled by: Multics PL/I Compiler, Release 30, of February 16, 1988 Compiled at: Honeywell Bull, Phoenix AZ, SysM Compiled on: 07/13/88 1005.3 mst Wed Options: optimize map 1 /****^ *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Bull Inc., 1987 * 4* * * 5* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 6* * * 7* * Copyright (c) 1972 by Massachusetts Institute of * 8* * Technology and Honeywell Information Systems, Inc. * 9* * * 10* *********************************************************** */ 11 12 /****^ HISTORY COMMENTS: 13* 1) change(86-05-13,GJohnson), approve(86-05-13,MCR7387), 14* audit(86-05-13,Martinson), install(86-05-14,MR12.0-1055): 15* Correct error message documentation. 16* 2) change(86-05-19,Gilcrease), approve(86-05-20,MCR7370), 17* audit(86-06-25,Lippard), install(86-06-30,MR12.0-1082): 18* Implement -truncate absout files. SCP6297. 19* Also fix ioa_$rsnnl call, phx20101. 20* 3) change(87-04-26,GDixon), approve(87-07-13,MCR7741), 21* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1055): 22* A) Modify to use user_table_mgr_ to manage daemon_user_table entries. 23* B) Upgraded for change to answer_table.incl.pl1 and 24* user_table_entry.incl.pl1 25* C) Note new user-signalled event for the disconnect command (disconn). 26* Although the command cannot be used in absentee processes, if the user 27* attempts to call terminate_process_ for a disconnection, we will 28* instead destroy the process. 29* 4) change(87-05-12,GDixon), approve(87-07-13,MCR7741), 30* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1055): 31* Use constants in dialup_values.incl.pl1 to set ute.tag. 32* 5) change(87-05-15,GDixon), approve(87-07-13,MCR7741), 33* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1055): 34* A) Set ute.line_type. 35* B) Set additional ute elements for Initializer's entry. 36* C) Use constants to set/test ute.preempted. 37* 6) change(87-07-13,GDixon), approve(87-07-13,MCR7741), 38* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1055): 39* A) Add cleanup handler to free UTE. 40* B) Remove windows in cleanup strategy. 41* C) Supply missing operator message documentation. 42* END HISTORY COMMENTS */ 43 44 45 /* format: style4 */ 46 daemon_user_manager_: proc; 47 48 /* DAEMON_USER_MANAGER - Manage login requests from the operator. 49* 50* This program is the analogue of "dialup_" and "absentee_user_manager_", for the case 51* in which the operator or the system startup deck wants a daemon process. 52* These daemon processes often run without a typewriter console, sending their output to 53* the initializer message coordinator via the message routing DIM. Real consoles are allowed though. 54* 55* Bob May, 1972 56* 57* Modified by THVV for real ttys and to fix bugs, 2/73 58* Modified 750519 by PG for new_proc -auth and to logout daemons if they 59* . get a fatal process error, rather than new_proc'ing them (caused 60* . system loops if daemon was gronked). 61* 62* Modified April 1976 by T. Casey to check for "initxxxx" process termination event message. 63* Modified 760819 by Roy Planalp to set outer module for daemons, instead of 64* letting lg_ctl_ do it 65* Modified September 1977 by T. Casey to log all ignored wakeups for debugging purposes. 66* Modified March 1980 by Tom Casey to add metering. 67* Modified June 1981 by T. Casey for MR9.0 to fix bug in metering. 68* Modified November 1981, E. N. Kittlitz. user_table_entry conversion. 69* Modified May 1982, E. N. Kittlitz. New AS intialization. 70* Modified October 1982, E. N. Kittlitz. Allow FPE to cause new_proc. 71* Modified May 1983, E. N. Kittlitz. logout trm_ mechanism. 72* Modified 84-04-24 BIM to set ute.tag 73* Modified 84-11-27 by E. Swenson for new IPC validation. 74* Modified 1985-01-10, BIM: MC access control. 75* Modified 1985-01-16 by E. Swenson to set ute.tag before calling lg_ctl_. 76* Modified 1985-02-20, BIM: logout_source_no_access_check. 77* Modified 1985-03-18, E. Swenson to fix above entry. 78* Modified 1985-04-05, E. Swenson to return error codes for subroutine calls. 79* Modified 1985-04-23, E. Swenson to zero error code for successful login. 80**/ 81 82 /* entry parameters */ 83 84 dcl a_person char (*); 85 dcl a_project char (*); 86 dcl a_source char (*); 87 dcl a_string char (*); 88 dcl a_code fixed bin (35); 89 dcl ev_chn_msgp ptr; 90 91 /* automatic */ 92 93 dcl bad_login_arg_fmt char (100); /* for login errors */ 94 dcl buff char (256); /* for formatting error messages */ 95 dcl buff_len fixed bin; /* number of good chars in buff */ 96 dcl code fixed bin (35); /* used for call status returns */ 97 dcl dum_status char (8) init ("null "); /* where we are in the process */ 98 dcl found_one_sw bit (1) aligned init ("0"b); /* TRUE in logout if one user has been done. */ 99 dcl hello char (64) aligned; /* Daemon login message. */ 100 dcl i fixed bin; /* do index */ 101 dcl indx fixed bin; /* dut index */ 102 dcl lg_ctl_reason char (8); /* return code from $daemon_in */ 103 dcl loginline char (168) aligned; /* Daemon login line. */ 104 dcl modes char (12) aligned; /* .. new modes (not used) */ 105 dcl rcode fixed bin (35); /* RCP error code. */ 106 dcl reason char (8) init ("null "); /* reason code for login or logout */ 107 dcl star_person_sw bit (1) aligned; 108 dcl star_project_sw bit (1) aligned; 109 dcl star_source_sw bit (1) aligned; 110 dcl t_person char (28); /* temporaries for commonality in login and logout processing */ 111 dcl t_project char (28); /* temporaries for commonality in login and logout processing */ 112 dcl t_source char (32); /* temporaries for commonality in login and logout processing */ 113 dcl tempp ptr; 114 dcl wakeup_from_as bit (1) aligned init (""b); 115 dcl wakeup_from_ring_0 bit (1) aligned init (""b); 116 dcl wakeup_from_user bit (1) aligned init (""b); 117 dcl ws_ev_chn fixed bin (71); /* working storage */ 118 dcl ws_ev_msg char (8); 119 dcl ws_from_procid bit (36) aligned; 120 121 /* entries */ 122 123 dcl act_ctl_$close_account entry (ptr); 124 dcl act_ctl_$cp entry (ptr); 125 dcl act_ctl_$dp entry (ptr); 126 dcl act_ctl_$open_account entry (ptr); 127 dcl aim_check_$in_range entry (bit (72) aligned, (2) bit (72) aligned) returns (bit (1) aligned); 128 dcl as_dump_ entry (char (*) aligned); 129 dcl as_meter_$enter entry (fixed bin); 130 dcl as_meter_$exit entry (fixed bin); 131 dcl asu_$find_process entry (bit (36) aligned, fixed bin, ptr); 132 dcl asu_$send_term_signal entry (ptr, fixed bin) returns (bit (1) aligned); 133 dcl asu_$start_process entry (ptr); /* called to get a process running */ 134 dcl condition_ entry (char (*), entry); 135 dcl convert_access_class_$from_string_range entry ((2) bit(72) aligned, char(*), fixed bin(35)); 136 dcl convert_status_code_ entry (fixed bin (35), char (*), char (*)); 137 dcl cpg_$cpg_daemon entry (ptr, fixed bin (35)); 138 dcl daemon_user_manager_$dum_event entry (ptr); /* for event call */ 139 dcl dpg_ entry (ptr, char(*)); 140 dcl dpg_$finish entry (ptr); 141 dcl get_authorization_ entry() returns(bit(72) aligned); 142 dcl get_process_id_ entry () returns (bit (36) aligned); 143 dcl get_ring_ entry() returns(fixed bin(3)); 144 dcl hcs_$truncate_seg entry (ptr, fixed bin(19), fixed bin(35)); 145 dcl hcs_$wakeup entry (bit (*) aligned, fixed bin (71), fixed bin (71), fixed bin (35)); 146 dcl hphcs_$set_cpu_monitor entry (bit (36) aligned, fixed bin (71), fixed bin (35)); 147 dcl ioa_$rsnnl entry options (variable); 148 dcl ipc_$decl_ev_call_chn entry (fixed bin (71), entry, ptr, fixed bin, fixed bin (35)); 149 dcl lg_ctl_$daemon_in entry (ptr, char (*), fixed bin (35)); 150 dcl lg_ctl_$daemon_out entry (ptr); 151 dcl mc_check_access_$log_daemon_out entry (pointer, character (*), fixed binary (35)); 152 dcl lv_request_$cleanup_process entry (bit (36) aligned); 153 dcl parse_login_line_ entry (ptr, fixed bin, ptr, char (*) aligned, char (*) aligned, fixed bin (35)); 154 dcl rcp_sys_$unassign_process entry (bit (36) aligned, fixed bin (35)); 155 dcl ssu_$get_info_ptr entry (ptr) returns (ptr); 156 dcl sub_err_ entry () options (variable); 157 dcl sys_log_ entry options (variable); 158 dcl sys_log_$error_log entry options (variable); 159 dcl sys_log_$command entry options (variable); /* (fixed bin) */ 160 dcl sys_log_$command_error entry options (variable); /* (fixed binary, fixed binary (35), character (*)); */ 161 dcl timer_manager_$reset_alarm_wakeup entry (fixed bin (71)); 162 dcl user_table_mgr_$allocate entry (fixed bin) returns(ptr); 163 dcl user_table_mgr_$free entry (ptr); 164 165 /* external static */ 166 167 dcl as_error_table_$illegal_new_proc ext fixed bin (35); 168 dcl as_error_table_$bump_cancelled fixed bin (35) ext static; 169 dcl as_error_table_$illegal_signal fixed bin (35) ext static; 170 dcl error_table_$out_of_sequence fixed bin (35) ext static; 171 dcl error_table_$noentry fixed bin (35) ext static; 172 dcl error_table_$namedup fixed bin (35) ext static; 173 dcl error_table_$action_not_performed fixed bin (35) ext static; 174 dcl sys_info$max_seg_size fixed bin (35) ext static; 175 176 /* builtins */ 177 178 dcl (addr, baseno, clock, divide, fixed, hbound, lbound, length, null, rel, size, substr) builtin; 179 180 /* internal static */ 181 182 dcl ME char (32) initial ("daemon_user_manager_") internal static options (constant); 183 dcl static_label label internal static; 184 dcl STOPstop char (8) aligned int static init ("STOPstop") options (constant); 185 dcl STOPstop_msg fixed bin (71) based (addr (STOPstop)); /* For special wakeup. */ 186 dcl termstop char (8) aligned int static init ("termstop") options (constant); 187 dcl termstop_msg fixed bin (71) based (addr (termstop)); 188 189 /* based */ 190 191 dcl 1 new_proc_auth aligned based (addr (ws_ev_msg)), 192 2 np_signal char (2) unaligned, 193 2 authorization bit (54) unaligned; 194 195 dcl 1 ev_msg_string aligned based (addr (ws_ev_msg)), /* to decode "term...." or other commands */ 196 2 cmd char (4), 197 2 fs_code fixed bin; /* for use in check_fs_errcode */ 198 199 dcl signal_type char (8) aligned based; 200 dcl sys_log entry variable options (variable); 201 dcl sys_log_error entry variable options (variable); 202 dcl subroutine_entry bit (1) aligned initial ("0"b); 203 204 205 /* Program */ 206 207 /**** Subroutine interface to login */ 208 209 login_: 210 entry (a_person, a_project, a_source, a_string, a_code); 211 212 sys_log = sys_log_; 213 sys_log_error = sys_log_$error_log; 214 subroutine_entry = "1"b; 215 go to login_common; 216 217 login: entry (a_person, a_project, a_source, a_string); 218 219 sys_log = sys_log_$command; 220 sys_log_error = sys_log_$command_error; 221 subroutine_entry = "0"b; 222 223 login_common: 224 225 dum_status = "login "; /* where we are in case of trouble */ 226 static_label = ucs_return; /* guarenteed return to system level */ 227 call condition_ ("any_other", ucs); /* Set up error-handling procedure. */ 228 utep = null; 229 call condition_ ("cleanup", cleaner_up); 230 if as_data_$dutp = null then go to no_init; /* check for init already done */ 231 dutp = as_data_$dutp; 232 call as_meter_$enter (DUM_METER); 233 234 /* initial checks ok. now search for open entry */ 235 236 reason = "login "; /* Note what was going on. */ 237 t_person = a_person; /* use temps for commonality */ 238 t_project = a_project; /* .. copy all arguments */ 239 t_source = a_source; /* ... */ 240 loginline = t_person || " " || t_project || " " || a_string; 241 indx = 0; /* 'indx' remembers location of free slot. */ 242 243 do i = 2 to dutbl.current_size; /* Scan daemons (skipping initializer) for free or already in */ 244 utep = addr (dutbl.entry (i)); /* Get ptr to entry. */ 245 if ute.tty_name = t_source then do; /* Source is already in use. */ 246 call sys_log (SL_LOG, "login: ^a.^a already logged in on ^a", 247 ute.person, ute.project, ute.tty_name); /* .. this would mess up message coord. */ 248 if subroutine_entry then a_code = error_table_$namedup; 249 goto exit; /* Cannot log the fellow in. */ 250 end; 251 end; 252 253 static_label = backout_1; 254 utep = user_table_mgr_$allocate (PT_DAEMON); 255 if utep = null then go to exit; 256 257 ute.uflags.fpe_causes_logout = "1"b; /* default for daemons */ 258 call parse_login_line_ (addr (loginline), 168, utep, modes, hello, code); 259 if code ^= 0 then do; /* See if error in optional args. */ 260 call convert_status_code_ (code, "", bad_login_arg_fmt); 261 call ioa_$rsnnl (bad_login_arg_fmt, buff, buff_len, hello); 262 call sys_log (SL_LOG, "login: Cannot login ^a.^a ^a", t_person, t_project, t_source); 263 call sys_log (SL_LOG, buff); 264 ute.active = NOW_FREE; 265 if subroutine_entry then a_code = code; 266 goto backout_1; 267 end; 268 269 call ipc_$decl_ev_call_chn (ute.event, 270 daemon_user_manager_$dum_event, utep, DAEMON_LOGIN_PRIO, code); 271 if code ^= 0 then do; 272 call sys_log_error (SL_LOG_BEEP, code, "login", "declaring ev_call_chn for ^a ^a ^a", 273 t_person, t_project, t_source); 274 if subroutine_entry then a_code = code; 275 go to backout_1; /* Go free this entry. */ 276 end; 277 278 ute.person = t_person; /* .. for login */ 279 ute.project = t_project; /* ... */ 280 ute.tag = TAG_DAEMON; 281 ute.tty_name = t_source; /* ... */ 282 ute.tty_id_code = substr (t_source, 1, length (ute.tty_id_code)); /* ... */ 283 ute.line_type = LINE_MC; 284 ute.queue = -1; /* special daemon flag */ 285 ute.n_processes = 0; /* no processes yet */ 286 ute.channel = null; /* no attached channels */ 287 ute.outer_module = as_data_$mrd_dim; /* daemons use message routing DIM */ 288 289 static_label = backout_2; 290 call lg_ctl_$daemon_in (utep, lg_ctl_reason, code); /* Verify that daemon is registered. */ 291 if ute.login_result ^= 0 then do; /* If daemon login is not allowed, */ 292 reason = lg_ctl_reason; /* .. complain and */ 293 if subroutine_entry then do; 294 call sys_log (SL_LOG, "login: no login ^a.^a ^a ^a", 295 ute.person, ute.project, ute.tty_name, reason); /* lg_ctl_ has audited officially */ 296 a_code = code; 297 if a_code = 0 then a_code = error_table_$action_not_performed; 298 end; 299 else call sys_log (SL_LOG, "login: no login ^a.^a ^a ^a", 300 ute.person, ute.project, ute.tty_name, reason); /* lg_ctl_ has audited officially */ 301 go to backout_1; /* .. give up. */ 302 end; 303 304 ute.active = NOW_LOGGED_IN; /* Indicate that there is a user in the slot. */ 305 call act_ctl_$open_account (utep); /* Now we check accounting limits. */ 306 l_cpg_: ute.n_processes = ute.n_processes + 1; 307 call cpg_$cpg_daemon (utep, code); /* Create daemon process */ 308 if code ^= 0 then do; /* If process cannot be created, */ 309 if subroutine_entry then do; 310 call sys_log_error (SL_LOG, code, "login", "creating proc for ^a ^a ^a", 311 t_person, t_project, t_source); /* .. fuss and */ 312 a_code = code; 313 end; 314 else call sys_log_error (SL_LOG, code, "login", "creating proc for ^a ^a ^a", 315 t_person, t_project, t_source); /* .. fuss and */ 316 317 318 go to backout_2; /* .. destroy the user. */ 319 end; 320 321 call act_ctl_$cp (utep); /* we made it all the way */ 322 323 ute.active = NOW_HAS_PROCESS; /* Mark slot having process. */ 324 ute.destroy_flag = WAIT_LOGOUT_SIG; /* .. and expecting logout next. */ 325 326 call asu_$start_process (utep); /* kick the process into execution */ 327 if subroutine_entry then 328 a_code = 0; /* no error */ 329 goto exit; 330 331 332 /**** This entrypoint is called by the server for send daemon logout commands */ 333 334 logout_source_no_access_check: 335 entry (a_source, a_code); 336 337 dum_status = "logout "; /* normal entry */ 338 subroutine_entry = "1"b; 339 static_label = ucs_return; /* set up guarenteed return to system level */ 340 call condition_ ("any_other", ucs); /* Set up error-handling procedure. */ 341 if as_data_$dutp = null then go to no_init; /* check for init already done */ 342 dutp = as_data_$dutp; 343 call as_meter_$enter (DUM_METER); 344 345 reason = "logout "; /* normal path of action */ 346 found_one_sw = "0"b; 347 t_source = a_source; 348 a_code = 0; 349 350 do i = 2 to dutbl.current_size /* never look at Initializer */ 351 while (^found_one_sw); 352 utep = addr (dutbl.entry (i)); /* step through the entries to find "t_source" */ 353 if ute.active = NOW_FREE then go to logout_nacc_get_next; 354 355 if ute.tty_name ^= t_source then go to logout_nacc_get_next; 356 found_one_sw = "1"b; /* so we don't get "missing entry" msg */ 357 358 ute.destroy_flag = WAIT_LOGOUT; /* Indicate that process logs out when it dies. */ 359 if ^asu_$send_term_signal (utep, 0) then do; /* didn't send trm_ */ 360 ute.logout_type = "term"; 361 call destroy_process; 362 end; 363 else ute.logout_type = "looc"; 364 logout_nacc_get_next: 365 end; /* loop through DUT */ 366 367 if ^found_one_sw 368 then a_code = error_table_$noentry; 369 go to exit; 370 371 372 logout: entry (a_person, a_project, a_source); 373 374 dum_status = "logout "; /* normal entry */ 375 sc_subsystem_info_ptr = ssu_$get_info_ptr (sc_stat_$admin_sci_ptr); 376 static_label = ucs_return; /* set up guarenteed return to system level */ 377 call condition_ ("any_other", ucs); /* Set up error-handling procedure. */ 378 if as_data_$dutp = null then go to no_init; /* check for init already done */ 379 dutp = as_data_$dutp; 380 call as_meter_$enter (DUM_METER); 381 382 reason = "logout "; /* normal path of action */ 383 384 found_one_sw = "0"b; /* we haven't found any */ 385 t_person = a_person; 386 star_person_sw = (t_person = "*"); 387 t_project = a_project; 388 star_project_sw = (t_project = "*"); 389 t_source = a_source; 390 star_source_sw = (t_source = "*"); 391 do i = 2 to dutbl.current_size /* never look at Initializer */ 392 while (^found_one_sw | star_person_sw | 393 star_source_sw | star_project_sw); 394 utep = addr (dutbl.entry (i)); /* step through the entries to find "t_person" */ 395 if ute.active = NOW_FREE then go to logout_get_next; 396 397 if ^star_person_sw & ute.person ^= t_person then go to logout_get_next; 398 if ^star_project_sw & ute.project ^= t_project then go to logout_get_next; 399 if ^star_source_sw & ute.tty_name ^= t_source then go to logout_get_next; 400 found_one_sw = "1"b; /* so we don't get "missing entry" msg */ 401 call mc_check_access_$log_daemon_out (sc_subsystem_info_ptr, (ute.tty_name), code); 402 if code ^= 0 then do; 403 if code = error_table_$noentry 404 then call sys_log_$command_error (SL_LOG, code, "logout", 405 "No MC ACS segment for message coordinator source ^a.", 406 ute.tty_name); 407 else call sys_log_$command_error (SL_LOG, code, "logout", 408 "Logout not permitted for message coordinator source ^a.", 409 ute.tty_name); 410 go to logout_get_next; 411 end; 412 413 ute.destroy_flag = WAIT_LOGOUT; /* Indicate that process logs out when it dies. */ 414 if ^asu_$send_term_signal (utep, 0) then do; /* didn't send trm_ */ 415 ute.logout_type = "term"; 416 call destroy_process; 417 end; 418 else ute.logout_type = "looc"; 419 logout_get_next: 420 end; /* loop through DUT */ 421 if ^found_one_sw then 422 call sys_log_$command (SL_LOG, "logout: Entry not found. ^a ^a ^a", t_person, t_project, t_source); 423 goto exit; 424 425 426 /* This entry is called in response to a signal over the event channel in the daemon user table entry. 427* It handles logout requests from the daemon, login failures from the daemon, and process terminations. */ 428 429 dum_event: entry (ev_chn_msgp); 430 431 event_call_info_ptr = ev_chn_msgp; /* copy argument */ 432 dum_status = "event "; /* where we are in case of trouble */ 433 static_label = ucs_return; 434 code = 0; 435 call condition_ ("any_other", ucs); /* Set up error-handling procedure. */ 436 437 if as_data_$dutp = null then go to no_init; /* another "impossible" */ 438 dutp = as_data_$dutp; 439 if event_call_info_ptr = null then do; /* also should never happen */ 440 call sys_log_ (SL_LOG_BEEP, "^a: Event entry called with null ev_msg_ptr", ME); 441 return; 442 end; 443 call as_meter_$enter (DUM_METER); 444 utep = event_call_info.data_ptr; /* should point right to dut.entry */ 445 if baseno (utep) ^= baseno (dutp) then do; /* check for right ballpark */ 446 go to evil; 447 end; 448 ws_ev_chn = event_call_info.channel_id; 449 ws_from_procid = event_call_info.sender; 450 if fixed (event_call_info.origin.ring, 18) = 0 then wakeup_from_ring_0 = "1"b; 451 else if ws_from_procid = dutbl.as_procid then wakeup_from_as = "1"b; 452 else if ws_from_procid = ute.proc_id then wakeup_from_user = "1"b; 453 else go to evil; 454 if ute.active ^= NOW_HAS_PROCESS then do; /* Signal should refer to active process. */ 455 if ws_ev_msg = "STOPstop" then goto log_ignored_msg; 456 if ws_ev_msg = "termstop" then goto log_ignored_msg; 457 evil: call asu_$find_process (ws_from_procid, i, tempp); 458 if tempp = null then 459 call sys_log_ (SL_LOG_BEEP, "^a: Invalid signal from process ^w", ME, ws_from_procid); 460 461 else call sys_log_ (SL_LOG_BEEP, "^a: Invalid signal from ^a ^a ^a", 462 ME, tempp -> ute.person, tempp -> ute.project, tempp -> ute.tty_name); 463 call sys_log_ (SL_LOG_BEEP, "^a: signal was ""^24.3b"" ^p", 464 ME, event_call_info.message, utep); 465 goto exit; 466 end; 467 468 t_person = ute.person; /* set up for login after logout */ 469 t_project = ute.project; 470 t_source = ute.tty_name; 471 ws_ev_msg = addr (event_call_info.message) -> signal_type; /* see what's happening */ 472 reason = ws_ev_msg; 473 if ws_ev_msg = "STOPstop" then go to logout_part_two; 474 475 /* First part of a logout. Classify the signal and dispatch on it. */ 476 477 if wakeup_from_user then do; 478 do i = 1 to n_signals while (ws_ev_msg ^= signals (i)); end; 479 if i > n_signals 480 then if new_proc_auth.np_signal = "np" 481 then i = 13; 482 else i = 1; /* hangup, probably */ 483 end; 484 else do; /* must be from system */ 485 do i = 1 to n_system_signals while (ws_ev_msg ^= system_signals (i)); end; 486 if i <= n_system_signals then i = i + 19; /* it was a system signal */ 487 else i = 19; /* foo */ 488 end; 489 490 if i < lbound (logout_handler, 1) | i > hbound (logout_handler, 1) then 491 go to log_ignored_msg; 492 go to logout_handler (i); 493 494 logout_handler (7): /* init_err */ 495 logout_handler (8): /* no_ioatt */ 496 logout_handler (9): /* no_initp */ 497 logout_handler (10): /* disconn */ 498 logout_handler (11): 499 logout_handler (12): /* Absentee only. */ 500 call sys_log_ (SL_LOG_BEEP, "^a: Daemon init error: ^a ^a ^a ^a", 501 ME, ute.person, ute.project, ute.tty_name, reason); 502 logout_handler (3): /* Logout -hold */ 503 logout_handler (4): /* logout */ 504 logout_handler (5): /* logout -bf */ 505 logout_handler (6): /* logout -hold -bf */ 506 ute.destroy_flag = WAIT_LOGOUT; 507 ute.logout_type = substr (reason, 1, length (ute.logout_type)); 508 go to event_logout; 509 logout_handler (27): /* terminat */ 510 ute.destroy_flag = WAIT_NEW_PROC; 511 ute.logout_type = "np"; 512 if ^asu_$send_term_signal (utep, 0) then 513 call destroy_process; 514 go to exit; 515 516 logout_handler (14): /* termsgnl */ 517 call timer_manager_$reset_alarm_wakeup (ute.event); 518 call hphcs_$set_cpu_monitor (ute.proc_id, -1, 0); 519 if ute.preempted = PREEMPT_UNBUMP then do; 520 code = as_error_table_$bump_cancelled; 521 go to logout_handler (1); 522 end; 523 if ute.preempted = PREEMPT_TERM_SENT then do; /* sent term signal, expecting termsgnl */ 524 ute.preempted = PREEMPT_TERMSGNL_RECEIVED; 525 go to event_logout; 526 end; 527 code = as_error_table_$illegal_signal; 528 go to logout_28a; 529 530 logout_handler (1): /* Process termination. */ 531 logout_handler (28): /* termstop */ 532 if ws_ev_msg = "termstop" then code = 0; 533 else code = ev_msg_string.fs_code; /* break out "term...." or "init...." message */ 534 logout_28a: 535 call sys_log_$error_log (SL_LOG_BEEP, code, ME, "^a.^a ^a terminated^[ (^a)^].", 536 ute.person, ute.project, ute.tty_name, (code = 0), reason); 537 if ev_msg_string.cmd = "init" then do; 538 ute.logout_type, reason = "init"; 539 ute.destroy_flag = WAIT_LOGOUT; 540 end; 541 else if ute.destroy_flag = WAIT_LOGOUT_SIG then do; /* a big-boy terminated */ 542 ute.logout_type, reason = "term"; 543 if ute.recent_fatal_error_time + installation_parms.fatal_error_loop_seconds * 1000000 < clock () then 544 do; /* if previous fatal error was long ago */ 545 if ute.uflags.fpe_causes_logout then do;/* user has no wish to continue */ 546 call sys_log_ (SL_LOG, "^a: Daemon will be logged out.", ME); 547 ute.destroy_flag = WAIT_LOGOUT; 548 end; /* fpe causes logout */ 549 else do; 550 ute.recent_fatal_error_time = clock (); /* reset the fatal error loop timer */ 551 ute.recent_fatal_error_count = 1; /* and set the counter back to 1 */ 552 create_another_new_proc: 553 ute.destroy_flag = WAIT_NEW_PROC; /* let user have another new process after destroying this one. */ 554 call sys_log_ (SL_LOG, "^a: New process created.", ME); 555 end; /* ^ute.fpe_causes_logout */ 556 end; /* last FPE was long ago */ 557 558 else do; /* we seem to have a loop */ 559 ute.recent_fatal_error_count = ute.recent_fatal_error_count + 1; /* count times around it */ 560 if ute.recent_fatal_error_count < installation_parms.fatal_error_loop_count then /* if not too many */ 561 ute.destroy_flag = WAIT_NEW_PROC; 562 else do; 563 ute.destroy_flag = WAIT_LOGOUT; /* too many. boom */ 564 call sys_log_ (SL_LOG, "^a: Fatal process error loop for ^a.^a ^a. 565 Daemon will be logged out.", 566 ME, ute.person, ute.project, ute.tty_name); 567 end; /* terminate fatal process error loop */ 568 end; /* check for FPE loop */ 569 end; /* term signalled */ 570 go to event_logout; 571 572 logout_handler (13): /* new_proc -auth AUTH */ 573 ute.destroy_flag = WAIT_NEW_PROC; 574 575 ute.logout_type = substr (reason, 1, length (ute.logout_type)); 576 if ^aim_check_$in_range ((new_proc_auth.authorization), ute.process_authorization_range) then do; 577 call sys_log_$error_log (SL_LOG, as_error_table_$illegal_new_proc, ME, 578 "Cannot new_proc to an authorization outside the daemon's allowed range."); 579 go to event_logout; 580 end; 581 582 ute.process_authorization = new_proc_auth.authorization; 583 go to event_logout; 584 585 logout_handler (2): /* new_proc */ 586 ute.destroy_flag = WAIT_NEW_PROC; 587 ute.logout_type = substr (reason, 1, length (ute.logout_type)); 588 go to event_logout; 589 590 logout_handler (23): /* alarm___ */ 591 logout_handler (29): /* cpulimit */ 592 call timer_manager_$reset_alarm_wakeup (ute.event); 593 call hphcs_$set_cpu_monitor (ute.proc_id, -1, (0)); 594 if ute.preempted <= PREEMPT_UNBUMP_IGNORE_ALARM then go to exit; 595 /* no reason to die */ 596 if ute.preempted = PREEMPT_TERM_SENT then do; /* sent trm_, got no response */ 597 ute.preempted = PREEMPT_TERMSGNL_RECEIVED; 598 call sys_log_ (SL_LOG, "^a: process ^a.^a ^a ignored trm_ signal.", 599 ME, ute.person, ute.project, ute.tty_name); 600 end; 601 else go to log_ignored_msg; 602 reason = "logout"; 603 ute.logout_type = substr (reason, 1, length (ute.logout_type)); 604 go to event_logout; 605 606 /* Come here to complete process destruction. */ 607 608 logout_handler (26): /* stopstop */ 609 logout_part_two: 610 if ute.destroy_flag = WAIT_LOGOUT_SIG then do; /* This "stopstop" is premature. */ 611 call sys_log_ (SL_LOG_SILENT, "^a: premature STOPSTOP for ^a.^a ^a", 612 ME, ute.person, ute.project, ute.tty_name); 613 call hcs_$wakeup (dutbl.as_procid, ute.event, termstop_msg, code); 614 call hcs_$wakeup (dutbl.as_procid, ute.event, STOPstop_msg, code); 615 goto exit; /* Assume that a "termxxxx" will arrive. */ 616 end; 617 call dpg_$finish (utep); /* Process destroyed self. Clean out. */ 618 ute.active = NOW_LOGGED_IN; /* Process all gone. */ 619 call act_ctl_$dp (utep); /* we destroyed the process */ 620 if ute.destroy_flag = WAIT_NEW_PROC then go to l_cpg_; /* Go make a new process. */ 621 backout_2: 622 call act_ctl_$close_account (utep); 623 call lg_ctl_$daemon_out (utep); 624 backout_1: 625 call user_table_mgr_$free (utep); 626 goto exit; 627 628 ucs_return: /* the infallible return */ 629 if subroutine_entry then 630 a_code = error_table_$action_not_performed; 631 go to exit; 632 633 event_logout: 634 call destroy_process; 635 go to exit; 636 637 logout_handler (15): /* unused */ 638 logout_handler (16): /* unused */ 639 logout_handler (17): /* unused */ 640 logout_handler (18): /* unused */ 641 logout_handler (19): /* unused */ 642 logout_handler (20): /* hangup */ 643 logout_handler (21): /* shutdown */ 644 logout_handler (22): /* bump */ 645 logout_handler (24): /* detach */ 646 logout_handler (25): /* unbump */ 647 log_ignored_msg: 648 call sys_log_ (SL_LOG_SILENT, "^a: process ^a.^a ^a ignored wakeup ^24.3b from ^w", 649 ME, event_call_info.message, ute.person, ute.project, ute.tty_name, ws_from_procid); 650 651 exit: static_label = retr; 652 call as_meter_$exit (DUM_METER); 653 retr: return; 654 655 656 no_init: /* operator no no */ 657 call sys_log_$command (SL_LOG_BEEP, "^a: Command sent to daemon_user_manager_ before it was initialized", ME); 658 if subroutine_entry then 659 a_code = error_table_$action_not_performed; 660 return; 661 662 init: entry; 663 664 if ^sc_stat_$Multics_typed then 665 call sub_err_ (error_table_$out_of_sequence, 666 "daemon_user_manager_$init", "s"); 667 dum_status = "init "; /* in case of trouble */ 668 call hcs_$truncate_seg (as_data_$dutp, 0, code); 669 if code ^= 0 then 670 call sub_err_ (code, "daemon_user_manager_$init", "s"); 671 dutp = as_data_$dutp; 672 dutbl.header_version = DUTBL_version_4; /* set version number into active table */ 673 dutbl.entry_version = UTE_version_4; 674 dutbl.user_table_type = PT_DAEMON; 675 dutbl.header_length = fixed (rel (addr (dutbl.entry (1)))); 676 dutbl.max_size = divide (sys_info$max_seg_size - dutbl.header_length, size (ute), 17, 0); 677 dutbl.current_size = 0; /* Empty table. */ 678 dutbl.number_free, dutbl.first_free = 0; 679 dutbl.as_procid = get_process_id_ (); 680 681 utep = user_table_mgr_$allocate (PT_DAEMON); /* First entry in DUT is always initializer */ 682 683 ute.active = NOW_HAS_PROCESS; /* Fill in entry.*/ 684 ute.person = "Initializer"; 685 ute.project = "SysDaemon"; 686 ute.tag = TAG_DAEMON; 687 ute.process_authorization = get_authorization_(); 688 ute.outer_module = "otw_"; 689 ute.home_dir = as_data_$sysdir; 690 ute.queue = -1; /* means "daemon"*/ 691 ute.proc_id = dutbl.as_procid; 692 call convert_access_class_$from_string_range ( 693 ute.process_authorization_range, "system_low:system_high", code); 694 ute.highest_ring = get_ring_(); 695 ute.tty_name = "sysctl"; 696 ute.line_type = LINE_MC; 697 ute.tty_id_code = "****"; 698 ute.cpu_this_process = 0; 699 ute.mem_this_process = 0; 700 ute.last_update_time = clock (); 701 ute.login_time = ute.last_update_time; 702 ute.n_processes = 1; 703 ute.work_class = 0; 704 ute.group = "System"; 705 706 return; 707 708 cleaner_up: 709 proc; 710 711 if utep = null then return; 712 if static_label = backout_2 then do; 713 call act_ctl_$close_account (utep); 714 call lg_ctl_$daemon_out (utep); 715 static_label = backout_1; 716 end; 717 if static_label = backout_1 then do; 718 call user_table_mgr_$free (utep); 719 utep = null; 720 static_label = ucs_return; 721 end; 722 if static_label = retr then do; 723 call as_meter_$exit (DUM_METER); 724 static_label = retr; 725 end; 726 end cleaner_up; 727 728 729 destroy_process: proc; 730 ws_ev_chn = ute.event; /* set for logout */ 731 call rcp_sys_$unassign_process (ute.proc_id, rcode); 732 if ute.lvs_attached then 733 call lv_request_$cleanup_process (ute.proc_id); 734 call dpg_ (utep, reason); /* logout process started */ 735 end destroy_process; 736 737 738 ucs: proc (mcptr, condname, coptr, infoptr, continue); 739 740 dcl (mcptr, coptr, infoptr) ptr, /* not used */ 741 condname char (*), 742 continue bit (1); 743 744 dcl non_local bit (1); 745 dcl err_msg char (120) aligned, err_n fixed bin; 746 dcl as_check_condition_ entry (char (*), bit (1), bit (1)); 747 748 call as_check_condition_ (condname, continue, non_local); 749 if continue | non_local then return; 750 751 call ioa_$rsnnl ("^a: Error: ^a during ^a for ^a ^a ^a", err_msg, err_n, ME, 752 condname, dum_status, t_person, t_project, t_source); 753 dum_status = "ucs "; /* we're here now */ 754 call sys_log_ (SL_LOG_BEEP, "^a", err_msg); 755 call as_dump_ (err_msg); 756 go to static_label; 757 end ucs; 758 759 /* format: off */ 760 /* BEGIN INCLUDE FILE as_meter_numbers.incl.pl1 */ 1 2 1 3 /* These are the names and numbers of the slots in as_meter_table 1 4* (see as_meter_table.incl.pl1). 1 5* 1 6* Written March 1980 by Tom Casey 1 7* Modified June 1981 by T. Casey for MR9.0 to add ABS_TRYLOG_METER. 1 8**/ 1 9 1 10 1 11 /****^ HISTORY COMMENTS: 1 12* 1) change(86-01-31,Herbst), approve(87-07-21,MCR7694), 1 13* audit(87-07-21,GDixon), install(87-08-04,MR12.1-1056): 1 14* A) Add NETUP_METER. 1 15* B) Add AS_METER_NAMES array. 1 16* END HISTORY COMMENTS */ 1 17 1 18 1 19 dcl ASINIT_METER fixed bin int static options (constant) init (1); /* as_init_, parts 1 and 2 */ 1 20 dcl DIALUP_METER fixed bin int static options (constant) init (2); /* dialup_ */ 1 21 dcl DUM_METER fixed bin int static options (constant) init (3); /* daemon_user_manager_ */ 1 22 dcl AUM_METER fixed bin int static options (constant) init (4); /* absentee_user_manager_ */ 1 23 dcl AU_METER fixed bin int static options (constant) init (5); /* absentee_utility_ */ 1 24 dcl CPG_METER fixed bin int static options (constant) init (6); /* cpg_ */ 1 25 dcl DPG_METER fixed bin int static options (constant) init (7); /* dpg_ */ 1 26 dcl ACCTUP_METER fixed bin int static options (constant) init (8); /* accounting updates */ 1 27 dcl INSTALL_METER fixed bin int static options (constant) init (9); /* installs (up_sysctl_) */ 1 28 dcl ABSQ_METER fixed bin int static options (constant) init (10); /* absentee queue reads and writes */ 1 29 dcl MSGCORD_METER fixed bin int static options (constant) init (11); /* message coordinator */ 1 30 dcl COMMAND_METER fixed bin int static options (constant) init (12); /* operator commands, other than admin */ 1 31 dcl SAC_METER fixed bin int static options (constant) init (13); /* sac (send_admin_command handling) */ 1 32 dcl ADMIN_METER fixed bin int static options (constant) init (14); /* admin mode */ 1 33 dcl SSU_METER fixed bin int static options (constant) init (15); /* system_start_up.ec, parts 1, 2, and 3 */ 1 34 dcl FIXPDT_METER fixed bin int static options (constant) init (16); /* cleanup of PDTs after crash (act_ctl_$init) */ 1 35 dcl ABS_TRYLOG_METER fixed bin int static options (constant) init (17); /* attempts to login absentees via call lg_ctl_ 1 36* (the attempts might fail because of load control limits) */ 1 37 dcl NETUP_METER fixed bin int static options (constant) init (18); /* a call to network_accounting_update_ */ 1 38 1 39 dcl recursion_possible bit (18) int static options (constant) init ("000000000011000000"b); /* 11 & 12 (MSGCORD and COMMAND) */ 1 40 1 41 /* Bit length of recursion_possible equals highest slot number given above. */ 1 42 1 43 dcl AS_METER_NAMES (18) char (8) int static options (constant) init ( 1 44 "ASINIT", "DIALUP", "DUM", "AUM", "AU", 1 45 "CPG", "DPG", "ACCTUP", "INSTALL", "ABSQ", 1 46 "MSGCORD", "COMMAND", "SAC", "ADMIN", "SSU", 1 47 "FIXPDT", "TRYABSLG", "NETUP"); 1 48 1 49 /* END INCLUDE FILE as_meter_numbers.incl.pl1 */ 760 761 /* BEGIN INCLUDE FILE ... as_data_.incl.pl1 ... */ 2 2 2 3 /* format: style4 */ 2 4 2 5 /* This file must be kept in sync with as_data_.alm */ 2 6 2 7 /****^ HISTORY COMMENTS: 2 8* 1) change(86-09-21,Beattie), approve(86-09-22,MCR7542), 2 9* audit(86-10-31,Brunelle), install(86-11-12,MR12.0-1211): 2 10* Remove references to the 963 and 029 preaccess commands and remove support 2 11* for ARDS, 202_ETX, 2741 and 1050 in system interfaces. 2 12* 2) change(86-09-25,Swenson), approve(87-07-20,MCR7737), 2 13* audit(87-07-20,GDixon), install(87-08-04,MR12.1-1056): 2 14* Add references to as_data_ entrypoints added for Login Server. 2 15* 3) change(87-03-03,Brunelle), approve(87-07-20,MCR7697), 2 16* audit(87-07-20,GDixon), install(87-08-04,MR12.1-1056): 2 17* Added new user signal field of inacrcvd (14) to handle inactivity response 2 18* from user. 2 19* END HISTORY COMMENTS */ 2 20 2 21 dcl as_data_$BS char (1) aligned ext static; /* BACKSPACE character */ 2 22 dcl as_data_$CR char (1) aligned ext static; /* CARRIAGE RETURN character */ 2 23 dcl as_data_$abs_dim char (32) ext static; /* absentee DIM */ 2 24 dcl as_data_$acct_update_priority fixed bin ext static; /* accounting update IPC priority */ 2 25 dcl as_data_$acsdir char (168) ext static; /* Access Control Segment directory */ 2 26 dcl as_data_$ansp ptr ext static; /* answer_table */ 2 27 dcl as_data_$as_procid bit (36) aligned ext static; /* Answering Service process id */ 2 28 dcl as_data_$as_ring fixed bin (3) ext static; /* AS operating ring */ 2 29 dcl as_data_$as_tty char (6); /* AS master tty channel */ 2 30 dcl as_data_$asmtp ptr ext static; /* AS meter table */ 2 31 dcl as_data_$autp ptr ext static; /* absentee_user_table */ 2 32 dcl as_data_$buzzardp ptr ext static; /* dpg_ list of buteo processes */ 2 33 dcl as_data_$cdtp ptr ext static; /* CDT */ 2 34 dcl as_data_$default_weight fixed bin (35) ext; /* default user process load control weight */ 2 35 dcl as_data_$devtabp ptr ext static; /* device_table */ 2 36 dcl as_data_$dft_user_ring fixed bin (3) ext static; /* default user ring */ 2 37 dcl as_data_$dutp ptr ext static; /* daemon_user_table */ 2 38 dcl as_data_$g115_dim char (32) ext static; 2 39 dcl as_data_$lct_initialized bit (1) aligned ext static; /* LCT allocated in ring 0 */ 2 40 dcl as_data_$lct_size fixed bin ext static; /* CDT tty channels + spares */ 2 41 dcl as_data_$max_user_ring fixed bin (3) ext static; /* maximum user ring */ 2 42 dcl as_data_$mgtp ptr ext static; /* master group table */ 2 43 dcl as_data_$mrd_dim char (32) ext static; /* daemon's message routing DIM */ 2 44 dcl as_data_$ntty_dim char (32) ext static; /* network connection DIM */ 2 45 dcl as_data_$pdtdir char (168) ext static; /* PDT directory */ 2 46 dcl as_data_$pit_ptr ptr ext static; /* pit_temp_ */ 2 47 dcl as_data_$rcpdir char (168) ext static; /* RCP directory */ 2 48 dcl as_data_$request_priority fixed bin ext static; 2 49 dcl as_data_$rs_ptrs (0:9) ptr ext static; /* rate_structures */ 2 50 dcl as_data_$rtdtp ptr ext static; /* RTDT */ 2 51 dcl as_data_$sat_htp ptr ext static; /* SAT hash table */ 2 52 dcl as_data_$satp ptr ext static; /* SAT */ 2 53 dcl as_data_$suffix (0:9) char (2) unaligned ext static; 2 54 dcl as_data_$sysdir char (168) ext static; /* system control directory */ 2 55 dcl as_data_$teens_suffix (10:19) char (2) unaligned ext static; 2 56 dcl as_data_$terminet_tabs_string char (144) varying ext static; 2 57 dcl as_data_$tty_dim char (32) ext static; /* standard interactive DIM */ 2 58 dcl as_data_$update_priority fixed bin ext static; /* ??? */ 2 59 dcl as_data_$version char (8) ext static; /* AS version */ 2 60 dcl as_data_$whoptr ptr ext static; /* whotab */ 2 61 2 62 dcl 1 as_data_$login_args aligned ext static, /* control arguments for login */ 2 63 2 n_login_args fixed bin, 2 64 2 pad fixed bin, 2 65 2 login_args (55 /* as_data_$login_args.n_login_args */) char (24) unaligned; 2 66 2 67 dcl 1 as_data_$signal_types ext static aligned, /* IPC process control signals */ 2 68 2 n_signals fixed bin, 2 69 2 pad fixed bin, 2 70 2 signals (14 /* as_data_$signal_types.n_signals */) char (8) unaligned; 2 71 2 72 dcl 1 as_data_$system_signal_types ext static aligned, /* IPC process control signals */ 2 73 2 n_system_signals fixed bin, 2 74 2 pad fixed bin, 2 75 2 system_signals (10 /* as_data_$system_signal_types.n_system_signals */) char (8) unaligned; 2 76 2 77 dcl as_data_$login_words fixed bin ext static aligned, 2 78 /* interactive login words */ 2 79 1 as_data_login_words aligned based (addr (as_data_$login_words)), 2 80 2 n_words fixed bin, 2 81 2 pad fixed bin, 2 82 2 words (0 refer (as_data_login_words.n_words)) char (16) unaligned; 2 83 2 84 dcl as_data_$debug_flag bit (1) aligned external static; 2 85 dcl as_data_$ls_request_server_info_ptr ptr external static; 2 86 dcl as_data_$ls_message_buffer_cur_lth fixed bin (18) external static; 2 87 dcl as_data_$ls_message_buffer_max_lth fixed bin (18) external static; 2 88 dcl as_data_$ls_message_buffer_ptr ptr external static; 2 89 2 90 /* END INCLUDE FILE ... as_data_.incl.pl1 ... */ 761 762 /* BEGIN INCLUDE FILE ... as_data_definitions_.incl.pl1 ... */ 3 2 3 3 3 4 /****^ HISTORY COMMENTS: 3 5* 1) change(87-04-26,GDixon), approve(87-07-13,MCR7741), 3 6* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 3 7* Removed ansp, autp and dutp from this include file, adding them to 3 8* answer_table.incl.pl1, absentee_user_table.incl.pl1 and 3 9* daemon_user_table.incl.pl1. 3 10* END HISTORY COMMENTS */ 3 11 3 12 3 13 /* This include file requires as_data_.incl.pl1 */ 3 14 3 15 /* format: style4 */ 3 16 3 17 dcl as_procid bit (36) aligned defined (as_data_$as_procid); 3 18 dcl as_tty char (6) based (addr (as_data_$as_tty)); 3 19 dcl asmtp ptr defined (as_data_$asmtp); 3 20 dcl devtabp ptr defined (as_data_$devtabp); 3 21 dcl ip ptr defined (as_data_$rs_ptrs (0)); 3 22 dcl mgtp ptr defined (as_data_$mgtp); 3 23 dcl pdtdir char (168) based (addr (as_data_$pdtdir)); 3 24 dcl rs_ptrs (0:9) ptr based (addr (as_data_$rs_ptrs (0))); 3 25 dcl sat_htp ptr defined (as_data_$sat_htp); 3 26 dcl satp ptr defined (as_data_$satp); 3 27 dcl scdtp ptr defined (as_data_$cdtp); 3 28 dcl sysdir char (168) defined (as_data_$sysdir); 3 29 dcl whoptr ptr defined (as_data_$whoptr); 3 30 3 31 /* END INCLUDE FILE ... as_data_definitions_.incl.pl1 ... */ 762 763 /* BEGIN INCLUDE FILE as_wakeup_priorities.incl.pl1 */ 4 2 4 3 /* This include file defines the priorities of all of the event channels used by the answering service. 4 4* 4 5* They are declared as named constants. They are used in calls to ipc_$decl_ev_call_chn. 4 6* The names correspond to the functions of the event call handlers. 4 7* For brevity in names, MC means message coordinator, and LOGIN includes logout as well. 4 8* 4 9* The comment on each constant lists the procedure(s) that use it to set event channel priorities. 4 10* See the code in those procedures for information on the handlers themselves 4 11* (which are entry variables in some cases, and thus could not be documented in this file). 4 12* 4 13* The priorities range from zero (highest) to 22 (lowest used by the answering service). 4 14* 4 15* The event wait channel on which the A.S. goes blocked awaiting input on the initializer console has highest 4 16* of all priorities, set by as_init_ calling ipc_$set_wait_prior. 4 17* 4 18* Written June 1981 by T. Casey for MR9.0 4 19* Modified 1984-10-15 BIM for sac -> as_request. 4 20* as_request is above login, since sac is important and 4 21* dial requests for already logged in users can take 4 22* first dibs over new logins. 4 23**/ 4 24 4 25 dcl MC_PRIO fixed bin int static options (constant) init (1); /* mc_commands_, mc_con_rec_, mc_util_, mrd_tester */ 4 26 dcl SYSERR_COPY_PRIO fixed bin int static options (constant) init (2); /* syserr_log_man_ */ 4 27 dcl SHUTDOWN_PRIO fixed bin int static options (constant) init (3); /* admin */ 4 28 dcl ACCT_UPDATE_PRIO fixed bin int static options (constant) init (4); /* act_ctl_ */ 4 29 dcl DAEMON_LOGIN_PRIO fixed bin int static options (constant) init (8); /* daemon_user_manager_ */ 4 30 dcl AS_REQUEST_PRIO fixed bin int static options (constant) init (7); /* as_request_ */ 4 31 dcl INSTALL_PRIO fixed bin int static options (constant) init (8); /* up_sysctl_ */ 4 32 dcl INT_LOGIN_PRIO fixed bin int static options (constant) init (8); /* asu_, dialup_, ftp_dialup_ */ 4 33 dcl MPX_LOAD_PRIO fixed bin int static options (constant) init (11); 4 34 /* as_vip7760_mpx_, as_mcs_mpx_, as_ibm3270_mpx_, as_hasp_mpx_ */ 4 35 dcl ABS_DEFER_PRIO fixed bin int static options (constant) init (19); /* absentee_utility_ */ 4 36 dcl ABS_LOGIN_PRIO fixed bin int static options (constant) init (20); /* abentee_user_manager_ */ 4 37 dcl CORE_FLUSH_PRIO fixed bin int static options (constant) init (22); /* as_meter_ */ 4 38 4 39 /* END INCLUDE FILE as_wakeup_priorities.incl.pl1 */ 763 764 /* BEGIN INCLUDE FILE ... daemon_user_table.incl.pl1 */ 5 2 5 3 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 5 4 /* */ 5 5 /* The daemon_user_table has one entry per daemon. Daemons are logged in by */ 5 6 /* operator command or automatically. If they do any I/O, it is done via */ 5 7 /* the message coordinator. */ 5 8 /* */ 5 9 /* Programs using this include file must also use user_table_header.incl.pl1 */ 5 10 /* and user_table_entry.incl.pl1. */ 5 11 /* */ 5 12 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 5 13 5 14 5 15 /****^ HISTORY COMMENTS: 5 16* 1) change(81-09-10,Kittlitz), approve(), audit(), install(): 5 17* Initially coded from dutbl.incl.pl1. 5 18* 2) change(87-04-26,GDixon), approve(87-07-13,MCR7741), 5 19* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 5 20* A) Add use of ut_header common to all user control tables. 5 21* B) Corrected padding prior to first ute entry. 5 22* END HISTORY COMMENTS */ 5 23 5 24 5 25 dcl DUTBL_version_4 fixed bin int static init (4); /* version of this declaration */ 5 26 5 27 dcl dutp ptr automatic init (null); 5 28 5 29 dcl 1 dutbl based (dutp) aligned, /* Daemon user table */ 5 30 2 header like ut_header, /* Header common to all user tables. */ 5 31 5 32 2 active_count fixed bin, /* the count of active daemons managed by DUM_ */ 5 33 5 34 2 entry_pad (117) fixed bin, /* pad to 128 words */ 5 35 2 entry (0 refer (dutbl.current_size)) like ute; /* daemon user entries */ 5 36 5 37 /* END INCLUDE FILE ... daemon_user_table.incl.pl1 */ 764 765 /* BEGIN INCLUDE FILE ... dialup_values.incl.pl1 */ 6 2 6 3 /* format: style4 */ 6 4 6 5 /* Values for "cdte.tra_vec" used by dialup_ and others. */ 6 6 6 7 /* Modified by T. Casey April 1976 to add WAIT_NEW_PASSWORD 6 8* - in 1977 and 1978 to add WAIT_(GREETING_MSG DELETE_CHANNEL) 6 9* - and in October 1979 to add WAIT_CONNECT_REQUEST 6 10* Modified by Robert Coren in May 1981 to add TANDD_ATTACH values and 6 11* WAIT_DISCARD_WAKEUP 6 12* Modified by T. Casey, July 1981, for MR9.0, to add WAIT_BEFORE_HANGUP. 6 13* Modified by E. N. Kittlitz, July 1982, to add TTY_MASKED. 6 14**/ 6 15 6 16 /****^ HISTORY COMMENTS: 6 17* 1) change(87-04-20,GDixon), approve(87-07-13,MCR7741), 6 18* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 6 19* Add constant arrays naming cdte.state, cdte.tra_vec and ute.active values. 6 20* 2) change(87-05-11,GDixon), approve(87-07-13,MCR7741), 6 21* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 6 22* Add named constants for instance tags. 6 23* END HISTORY COMMENTS */ 6 24 6 25 dcl (WAIT_DIALUP init (1), /* Channel waiting for dialup. */ 6 26 WAIT_ANSWERBACK initial (2), /* WRU sent, waiting for reply */ 6 27 WAIT_LOGIN_LINE init (3), /* Greeting typed, wait for login command. */ 6 28 WAIT_LOGIN_ARGS init (4), /* Want rest of login line */ 6 29 WAIT_OLD_PASSWORD init (5), /* "-cpw" was specified. Wait for old password. */ 6 30 WAIT_PASSWORD init (6), /* Waiting for password. (If "-cpw", repeat of new one.) */ 6 31 WAIT_NEW_PASSWORD init (7), /* "-cpw" was specified. Wait for new password */ 6 32 WAIT_LOGOUT_SIG init (8), /* Channel is hooked up. Wait for logout. */ 6 33 WAIT_LOGOUT init (9), /* A logout has been requested. Wait for process to die */ 6 34 WAIT_LOGOUT_HOLD init (10), /* As above but don't hang up when it dies. */ 6 35 WAIT_DETACH init (11), /* As above but ignore channel afterwards. */ 6 36 WAIT_NEW_PROC init (12), /* As above but make new process and continue. */ 6 37 WAIT_REMOVE init (13), /* As above but completely expunge channel. */ 6 38 WAIT_FIN_PRIV_ATTACH init (14), /* When channel dials up, connect it to user */ 6 39 WAIT_DIAL_RELEASE init (15), /* Waiting for master process to release. */ 6 40 WAIT_DIAL_OUT init (16), /* Waiting for auto call to complete */ 6 41 WAIT_HANGUP init (17), /* Wait for the hangup event to occur for a channel */ 6 42 WAIT_SLAVE_REQUEST init (18), /* Ignore line until someone asks */ 6 43 WAIT_GREETING_MSG init (19), /* Print greeting message and wait for login line */ 6 44 WAIT_DELETE_CHANNEL init (20), /* Channel deleted - mark cdte after process is destroyed */ 6 45 WAIT_CONNECT_REQUEST init (21), /* logged in; awaiting request re disconnected processes */ 6 46 WAIT_TANDD_HANGUP init (22), /* when channel hangs up, proceed with t & d attachment */ 6 47 WAIT_FIN_TANDD_ATTACH init (23), /* when channel dials up, finish t & d attachment */ 6 48 WAIT_DISCARD_WAKEUPS init (24), /* disregard all wakeups on channel */ 6 49 WAIT_BEFORE_HANGUP init (25), /* allow output to print before hanging up */ 6 50 WAIT_DESTROY_REQUEST init (26), /* waiting to continue with destroy request after process has destroyed itself */ 6 51 WAIT_NEW_PROC_REQUEST init (27) /* waiting to continue with new_proc request after process has destroyed itself */ 6 52 ) fixed bin internal static options (constant); 6 53 6 54 dcl TRA_VEC_VALUES (0:13) char (32) aligned int static options (constant) init 6 55 /* names of ute.destroy_flag values */ 6 56 ("", "wait dialup", "wait answerback", "wait login line", /* 0-3 */ 6 57 "wait login args", "wait old password", "wait password", /* 4-6 */ 6 58 "wait new password", "wait logout signal", "wait logout", /* 7-9 */ 6 59 "wait logout hold", "wait detach", "wait new proc", /* 10-12 */ 6 60 "wait remove"); /* -13 */ 6 61 6 62 /* Values for "cdte.state", typewriter state. */ 6 63 6 64 dcl (TTY_MASKED init (-1), /* Terminal channel is there, but masked by MCS */ 6 65 TTY_HUNG init (1), /* Terminal channel is there, but dead. */ 6 66 TTY_KNOWN init (2), /* Channel being "listened" to, awaiting dialup. */ 6 67 TTY_DIALED init (5) /* Channel is dialed up. This is normal state. */ 6 68 ) fixed bin internal static options (constant); 6 69 6 70 dcl STATE_VALUES (-1:5) char (15) aligned int static options (constant) init 6 71 /* names of cdte.state values */ 6 72 ("masked", "dead", "hung up", "listening", "", "", "dialed up"); 6 73 6 74 /* Values for "cdte.in_use" and "ate.active" */ 6 75 6 76 dcl (NOW_FREE init (0), /* Entry is empty. */ 6 77 NOW_HUNG_UP init (1), /* Entry is usable but tty is hung up. */ 6 78 NOW_LISTENING init (2), /* Entry is waiting for phone call. */ 6 79 NOW_DIALED init (3), /* Entry is connected but login not complete. */ 6 80 NOW_LOGGED_IN init (4), /* Entry is logged in but no process. */ 6 81 NOW_HAS_PROCESS init (5), /* Entry has a valid process. */ 6 82 NOW_DIALING init (6), /* Entry (auto_call line) is dialing */ 6 83 NOW_DIALED_OUT init (7) /* Entry (auto_call line) is in use */ 6 84 ) fixed bin internal static options (constant); 6 85 6 86 dcl ACTIVE_VALUES (0:5) char (18) aligned int static options (constant) init 6 87 /* names of ute.active values */ 6 88 ("free", "hung-up", "listening", "dialed", "logged in, no proc", "logged in & proc"); 6 89 6 90 6 91 /**** Values for ute.tag */ 6 92 6 93 dcl (TAG_INTERACTIVE init("a"), 6 94 TAG_UFT init("f"), 6 95 TAG_ABSENTEE init("m"), 6 96 TAG_PROXY init("p"), 6 97 TAG_DAEMON init("z") 6 98 ) char(1) int static options(constant); 6 99 6 100 6 101 /**** Following are constants used to indicate to the process termination 6 102* handler the reason for the process termination. They are used by 6 103* uc_proc_term_handler_, as well as uc_ls_new_proc_request_ and 6 104* uc_ls_destroy_request_. */ 6 105 6 106 dcl ( 6 107 PT_FPE initial (1), 6 108 PT_LOGOUT initial (4), 6 109 PT_NEW_PROC_AUTH initial (13), 6 110 PT_HANGUP initial (20), 6 111 PT_SHUTDOWN initial (21), 6 112 PT_BUMP initial (22), 6 113 PT_ALARM initial (23), 6 114 PT_DETACH initial (24), 6 115 PT_UNBUMP initial (25), 6 116 PT_OPERATOR_TERMINATE initial (27), 6 117 PT_DESTROY_REQUEST initial (30), 6 118 PT_NEW_PROC_REQUEST initial (31) 6 119 ) fixed bin (17) internal static options (constant); 6 120 6 121 /**** Values for ute.preempted: 6 122* -1 user unbumped after term signal sent 6 123* 0 user unbumped; ignore alarm___ 6 124* 1 value internally used in load_ctl_ 6 125* 2 user bumped; when alarm___ comes in, send term signal 6 126* 3 term signal sent; destroy process if termsgnl, alarm___, or cpulimit 6 127* signals come in 6 128* 4 user bumped; process sick, so destroy without sending term signal 6 129* 5 trm_ signal sent, termsgnl received; (if still 3, we never got the 6 130* termsgnl). */ 6 131 6 132 dcl ( 6 133 PREEMPT_UNBUMP initial (-1), 6 134 PREEMPT_UNBUMP_IGNORE_ALARM initial (0), 6 135 PREEMPT_LOAD_CTL initial (1), 6 136 PREEMPT_BUMPED initial (2), 6 137 PREEMPT_TERM_SENT initial (3), 6 138 PREEMPT_BUMPED_NO_TERM initial (4), 6 139 PREEMPT_TERMSGNL_RECEIVED initial (5) 6 140 ) fixed bin (17) internal static options(constant); 6 141 6 142 dcl PREEMPT_VALUES (-1:5) char(28) varying int static options(constant) init( 6 143 "unbumped", 6 144 "not bumped, ignore alarm___", 6 145 "load_ctl_", 6 146 "bumped", 6 147 "bumped, trm_ sent", 6 148 "bumped without trm_", 6 149 "bumped, termsgnl received"); 6 150 6 151 /* END INCLUDE FILE ... dialup_values.incl.pl1 */ 765 766 /* BEGIN INCLUDE FILE event_call_info.incl.pl1 */ 7 2 7 3 /* T. Casey, May 1978 */ 7 4 7 5 dcl event_call_info_ptr ptr; 7 6 7 7 dcl 1 event_call_info aligned based (event_call_info_ptr), /* argument structure passed to event call procedure */ 7 8 2 channel_id fixed bin (71), /* event channel on which wakeup occurred */ 7 9 2 message fixed bin (71), /* 72 bits of information passed by sender of wakeup */ 7 10 2 sender bit (36), /* process id of sender */ 7 11 2 origin, 7 12 3 dev_signal bit (18) unaligned, /* "1"b if device signal */ 7 13 3 ring fixed bin (17) unaligned, /* ring from which sent */ 7 14 2 data_ptr ptr; /* ptr given to dcl_event_call_channel */ 7 15 7 16 /* END INCLUDE FILE event_call_info.incl.pl1 */ 766 767 /* BEGIN INCLUDE FILE ... installation_parms.incl.pl1 */ 8 2 8 3 /* Modified 740723 by PG to add short AIM access names */ 8 4 /* Modified Fall 1977 by T. Casey to add fatal loop and trm_ signal parameters */ 8 5 /* Modified 04/03/78 by CDT to add rcp_init_flags structure */ 8 6 /* Modified May 1978 by T. Casey to add resource timer and resource price list parameters */ 8 7 /* Modified November 1978 by T. Casey for MR7.0, to add absentee control parameters */ 8 8 /* Modified 17 September 1980 by G. Palter to add default absentee queue */ 8 9 /* Modified April 1981 by E. N. Kittlitz for chn_wakeup_error_loop, chn_wakeup_error_count */ 8 10 /* Modified June 1981 by E. N. Kittlitz for nrates/rate_structures UNCA rate_structure support. 8 11* Version, expand foregound_cpu_default_limit and abs_cpu_max_limit to fixed bin (35) fields. 8 12* nrscp & resource array moved from offset 2064 (octal) to 2400 (octal). */ 8 13 /* Modified 1984-06-19 BIM to remove obsolete fields, and add 8 14* strict_trusted_path. */ 8 15 /* Modified 1984-10-24 BIM for default_pdir_quota. */ 8 16 /* Modified 1984-12-05 BIM for require_operator_login. */ 8 17 /* Modified 1985-03-01 by E. Swenson for password flags. */ 8 18 8 19 8 20 /****^ HISTORY COMMENTS: 8 21* 1) change(86-01-27,MSharpe), approve(87-05-25,MCR7690), 8 22* audit(87-03-29,GDixon), install(87-08-04,MR12.1-1056): 8 23* added vchn_requires_accept parameter. 8 24* 2) change(87-02-17,GDixon), approve(87-05-25,MCR7680), 8 25* audit(87-06-02,Parisek), install(87-08-04,MR12.1-1056): 8 26* Correct formatting problems. 8 27* END HISTORY COMMENTS */ 8 28 8 29 8 30 /* NOTE: rate_structure.incl.pl1 uses these declarations */ 8 31 8 32 8 33 dcl 1 installation_parms based (ip) aligned, /* describes installation parameters */ 8 34 2 part_1 like installation_parms_part_1 aligned, 8 35 2 resource (0 refer (installation_parms.nrscp)) like installation_parms_resource_array_part aligned; 8 36 8 37 dcl installation_parms_version_1 fixed bin init (1) static internal options (constant); 8 38 dcl installation_parms_version_2 fixed bin init (2) static internal options (constant); 8 39 8 40 dcl 1 installation_parms_part_1 based aligned, /* Used only by installation_parms and rate_structure */ 8 41 2 installation_id char (32), /* Name printed at dialup and in who */ 8 42 2 company char (64), /* company name */ 8 43 2 department char (64), /* department */ 8 44 2 companyds char (120), /* company, double spaced */ 8 45 2 departmentds char (120), /* dpeartment double spaced */ 8 46 2 shifttab (336) bit (3) unal, /* half-hrs from 0000 Mon, value is shift no */ 8 47 2 cpu_price (0: 7) float bin, /* price for cpu hour, by shift */ 8 48 2 log_base_price (0: 7) float bin, /* price for log hour, by shift */ 8 49 2 io_ops_price (0: 7) float bin, /* price per 1000 terminal io ops */ 8 50 2 core_price (0: 7) float bin, /* price for core page-hour, by shift */ 8 51 2 ndevices fixed bin, /* number of devices to charge */ 8 52 2 devtab (16), /* Maximum 16 */ 8 53 3 device_id char (8), /* Name of device */ 8 54 3 device_price (0: 7) float bin, /* Price by shift */ 8 55 2 inactive_time fixed bin, /* seconds of inactivity permitted */ 8 56 2 warning_time fixed bin, /* seconds from warning to logout */ 8 57 2 login_time fixed bin, /* seconds in which to complete login */ 8 58 2 acct_update fixed bin, /* seconds between acct update */ 8 59 2 login_tries fixed bin, /* number of login tries allowed */ 8 60 2 disk_price float bin, /* disk rate, in $/page-sec */ 8 61 2 registration_price float bin, /* fee per month per user */ 8 62 2 dolsign char (1), /* "dollar sign" */ 8 63 2 abs_cpu_price (4) float bin, /* price for absentee cpu by queue */ 8 64 2 abs_mem_price (4) float bin, /* Absentee memory charge */ 8 65 2 iod_rec_price (4) float bin, /* price for io daemon lines, per K, by queue */ 8 66 2 abs_timax (4) fixed bin (35), /* Absentee TIMAX parameter */ 8 67 2 abs_cpu_default_limit (4) fixed bin (35), /* default absentee cpu limit in seconds (changed from usec.) */ 8 68 2 syserr_log_copy_threshold fixed bin (9), /* Threshold (in PAGES) at which the 8 69* Initializer will copy the syserr_log */ 8 70 2 default_pdir_seg_quota fixed bin (17) unaligned, /* if system and project say 0 */ 8 71 2 default_pdir_dir_quota fixed bin (17) unaligned, /* Always used */ 8 72 2 fatal_error_loop_count fixed bin (17) unaligned, 8 73 2 fatal_error_loop_seconds fixed bin (17) unaligned, 8 74 2 term_real_time_seconds fixed bin (17) unaligned, 8 75 2 term_cpu_time_seconds fixed bin (17) unaligned, 8 76 2 rcp_init_flags like rcp_init_flags aligned, /* one word long */ 8 77 2 rsc_timer_seconds fixed bin (17) unaligned, /* time interval at which to check for resource availability */ 8 78 2 pad_old_fg_cpu_default_limit bit (18) unaligned, 8 79 2 foreground_queue_position fixed bin (17) unal, /* queue that foreground queue comes after */ 8 80 2 idle_time_constant_seconds fixed bin (17) unal, /* how far back to maintain moving average of load */ 8 81 2 sus_cpu_time_seconds fixed bin (17) unal, /* allow suspended process this much cpu time */ 8 82 2 sus_real_time_seconds fixed bin (17) unal, /* and this much real time, before bumping it */ 8 83 2 foreground_cpu_default_limit fixed bin (35), /* default cpu time limit (sec) for foreground absentee jobs */ 8 84 2 access_authorization_ceiling bit (72), /* "System high" access authorization. */ 8 85 2 level_names (0:7) char (32), /* Names for security levels. */ 8 86 2 category_names (18) char (32), /* Names for security categories. */ 8 87 2 short_level_names (0:7) char (8), /* Abbreviated level names. */ 8 88 2 short_category_names (18) char (8), /* Abbreviated category names. */ 8 89 2 ncon fixed bin, /* Number of config elements. */ 8 90 2 cona (51), /* each entry is 5 words long */ 8 91 3 cpu fixed bin (5) unal, /* Number of CPU's */ 8 92 3 shift fixed bin (5) unal, /* Shift number */ 8 93 3 x1 fixed bin (23) unal, 8 94 3 kmem fixed bin (17) unal, /* Memory size */ 8 95 3 kbulk fixed bin (17) unal, /* Bulk store size */ 8 96 3 x2 fixed bin (17) unal, 8 97 3 maxa fixed bin (11) unal, /* Max abs users */ 8 98 3 maxq fixed bin (5) unal, /* Max abs q */ 8 99 3 maxu_base fixed bin (17) unal, 8 100 3 response_high fixed bin (17) unal, 8 101 3 response_low fixed bin (17) unal, 8 102 3 x3 fixed bin (17) unal, 8 103 8 104 /* Absentee control parameters. New for MR7.0 */ 8 105 8 106 2 max_abs (0:7) fixed bin (17) unal, /* per-shift upper limit on abs_maxu */ 8 107 2 min_abs (0:7) fixed bin (17) unal, /* per-shift lower limit on abs_maxu */ 8 108 2 pct_abs (0:7) fixed bin (17) unal, /* abs_maxu is this pct (per-shift) of idle units */ 8 109 8 110 2 max_qres (0:7, 4) fixed bin (17) unal, /* per-shift-and-queue upper limit on reserved slots */ 8 111 2 min_qres (0:7, 4) fixed bin (17) unal, /* per-shift-and-queue lower limit on reserved slots */ 8 112 2 pct_qres (0:7, 4) fixed bin (17) unal, /* reserved slots are these pcts of abs_maxu */ 8 113 8 114 2 abs_cpu_max_limit (0:7, 4) fixed bin (35), /* per-shift-and-queue upper limit (sec) on jobs' cpu times */ 8 115 8 116 2 default_absentee_queue fixed binary (17) unaligned, /* default absentee queue for ear, etc. */ 8 117 8 118 2 chn_wakeup_error_loop_count fixed bin (17) unaligned, /* maximum number of channel wakeups in following interval */ 8 119 2 chn_wakeup_error_loop_seconds fixed bin (17) unaligned, /* works like fatal_error_loop_count/seconds */ 8 120 2 rate_structure_number fixed bin (17) unaligned, /* rate_structure number of this RS */ 8 121 2 version fixed bin (35), /* must be 2 */ 8 122 2 nrates fixed bin, /* number of rate structures */ 8 123 2 rate_structures (0:9) char (32), /* names of rate_structures */ 8 124 2 trusted_path_login bit (1) aligned, /* forbid logout -hold and new_proc -auth */ 8 125 2 require_operator_login bit (1) aligned, /* just what it says */ 8 126 2 operator_inactive_time fixed bin, /* seconds between commands --> not logged in. */ 8 127 2 validate_daemon_commands bit (1) aligned, /* force existence and adequate access to 8 128* mcacs segments for operators */ 8 129 2 password_min_length fixed bin, /* minimum length of passwords */ 8 130 2 password_gpw_length fixed bin, /* length of generated passwords */ 8 131 2 password_change_interval fixed bin, /* number of days until must change */ 8 132 2 password_expiration_interval fixed bin, /* number of days that a password may remain unused */ 8 133 2 vchn_requires_accept bit (1) aligned, /* "login personid -op -vchn foo" must be 8 134* "accepted" by operator if personid is not 8 135* signed on system console */ 8 136 2 end_pad (219) bit (36) aligned, /* leave plenty of pad before the variable length price list */ 8 137 2 nrscp fixed bin; /* length of resource price array; must have offset 2400 (octal), 8 138* or someone miscounted when using part of pad2 */ 8 139 8 140 8 141 /* Entries in the following array may be accessed via system_info_$resource_price. 8 142* This array should not be accessed directly, since its format will change in subsequent releases of Multics. */ 8 143 8 144 dcl 1 installation_parms_resource_array_part (0 refer (installation_parms.nrscp)) based, 8 145 2 name char (32), 8 146 2 price float bin; 8 147 9 1 /* BEGIN INCLUDE FILE ... rcp_init_flags.incl.pl1 */ 9 2 9 3 /* Created on 04/24/78 by Michael R. Jordan */ 9 4 /* Modified 04/10/79 by C. D. Tavares */ 9 5 9 6 dcl rifp ptr; 9 7 9 8 dcl 1 rcp_init_flags based (rifp), 9 9 2 unload_on_detach bit (1) unaligned, /* ON => tape volumes are unloaded after detaching */ 9 10 2 pad1 bit (2) unaligned, /* obsolete */ 9 11 2 resource_mgmt_enabled bit (1) unaligned, /* ON => resource management has been enabled */ 9 12 2 auto_registration bit (1) unaligned, /* ON => auto registration allowed */ 9 13 2 pad2 bit (2) unaligned, /* future expansion, possibly of authentication_level */ 9 14 2 authentication_level fixed bin (2) unaligned unsigned; /* see below for values */ 9 15 9 16 dcl (No_authentication initial (0), 9 17 Nominal_authentication initial (1), 9 18 Automatic_authentication initial (2), 9 19 Manual_authentication initial (3)) fixed bin internal static options (constant); 9 20 9 21 dcl authentication_level_names (0:3) char (12) internal static options (constant) initial 9 22 ("none", "nominal", "automatic", "manual"); 9 23 9 24 /* END INCLUDE FILE ... rcp_init_flags.incl.pl1 */ 8 148 8 149 8 150 /* END INCLUDE FILE ... installation_parms.incl.pl1 */ 767 768 /* BEGIN INCLUDE FILE ... line_types.incl.pl1 */ 10 2 10 3 /* Written November 10 1975 by Paul Green */ 10 4 /* Modified October 1978 by Larry Johnson to include line_type_names */ 10 5 /* Modified 12/19/78 by J. Stern to add POLLED_VIP line type */ 10 6 /* Modified 9/27/79 by J. Stern to add X25LAP line type */ 10 7 /* Modified Spring 1981 by Charles Hornig to add HDLC line type */ 10 8 /* Modified May 1981 by Robert Coren to add COLTS line type */ 10 9 /* Modified September 1984 by Robert Coren to correctly count VIP as a synchronous line type */ 10 10 10 11 10 12 /****^ HISTORY COMMENTS: 10 13* 1) change(86-02-25,Negaret), approve(87-07-13,MCR7679), 10 14* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 10 15* Add a DSA line type. 10 16* 2) change(87-03-17,Beattie), approve(87-07-13,MCR7656), 10 17* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 10 18* Add HASP_OPR to identify HASP workstation consoles with login service. 10 19* END HISTORY COMMENTS */ 10 20 10 21 10 22 declare (LINE_MC initial (-2), 10 23 LINE_TELNET initial (-1), 10 24 LINE_UNKNOWN initial (0), 10 25 LINE_ASCII initial (1), 10 26 LINE_1050 initial (2), 10 27 LINE_2741 initial (3), 10 28 LINE_ARDS initial (4), 10 29 LINE_SYNCH initial (5), 10 30 LINE_G115 initial (6), 10 31 LINE_BSC initial (7), 10 32 LINE_ETX initial (8), 10 33 LINE_VIP initial (9), 10 34 LINE_ASYNC1 initial (10), 10 35 LINE_ASYNC2 initial (11), 10 36 LINE_ASYNC3 initial (12), 10 37 LINE_SYNC1 initial (13), 10 38 LINE_SYNC2 initial (14), 10 39 LINE_SYNC3 initial (15), 10 40 LINE_POLLED_VIP initial (16), 10 41 LINE_X25LAP initial (17), 10 42 LINE_HDLC initial (18), 10 43 LINE_COLTS initial (19), 10 44 LINE_DSA initial (20), 10 45 LINE_HASP_OPR initial (21) 10 46 ) fixed bin internal static options (constant); 10 47 10 48 dcl max_line_type fixed bin int static options (constant) init (21); 10 49 10 50 declare n_sync_line_types fixed bin int static options (constant) init (10); 10 51 10 52 declare sync_line_type (10) fixed bin int static options (constant) init (5, 6, 7, 9, 13, 14, 15, 16, 17, 18); 10 53 10 54 dcl line_types (-2:21) char (16) int static options (constant) init ( 10 55 "MC", /* -2 */ 10 56 "TELNET", /* -1 */ 10 57 "none", /* 0 */ 10 58 "ASCII", /* 1 */ 10 59 "1050", /* 2 */ 10 60 "2741", /* 3 */ 10 61 "ARDS", /* 4 */ 10 62 "Sync", /* 5 */ 10 63 "G115", /* 6 */ 10 64 "BSC", /* 7 */ 10 65 "202ETX", /* 8 */ 10 66 "VIP", /* 9 */ 10 67 "ASYNC1", /* 10 */ 10 68 "ASYNC2", /* 11 */ 10 69 "ASYNC3", /* 12 */ 10 70 "SYNC1", /* 13 */ 10 71 "SYNC2", /* 14 */ 10 72 "SYNC3", /* 15 */ 10 73 "POLLED_VIP", /* 16 */ 10 74 "X25LAP", /* 17 */ 10 75 "HDLC", /* 18 */ 10 76 "COLTS", /* 19 */ 10 77 "DSA", /* 20 */ 10 78 "HASP_OPR"); /* 21 */ 10 79 10 80 /* END INCLUDE FILE ... line_types.incl.pl1 */ 768 769 /* BEGIN: sc_stat_.incl.pl1 * * * * * */ 11 2 11 3 11 4 /****^ HISTORY COMMENTS: 11 5* 1) change(87-02-04,GDixon), approve(87-05-25,MCR7690), 11 6* audit(87-06-02,Parisek), install(87-08-04,MR12.1-1056): 11 7* Add sc_stat_$vchn_requires_accept in support of DSA virtual channels. 11 8* 2) change(87-02-04,GDixon), approve(87-05-25,MCR7680), 11 9* audit(87-06-02,Parisek), install(87-08-04,MR12.1-1056): 11 10* Reorganized by type of data to improve readability. 11 11* END HISTORY COMMENTS */ 11 12 11 13 11 14 /* ACCESS NAMES */ 11 15 dcl ( 11 16 sc_stat_$exec_access_name, /* check MC access in an exec request */ 11 17 sc_stat_$unidentified_access_name /* check access if no one is logged in. */ 11 18 ) char(32) ext static; 11 19 11 20 /* PATHNAMES */ 11 21 dcl ( 11 22 sc_stat_$info_dir, /* admin info segs directory */ 11 23 sc_stat_$log_dir, /* as log segs directory */ 11 24 sc_stat_$mc_acs_dir, /* message coordinator ACS segments (.mcacs) dir */ 11 25 sc_stat_$sysdir /* system control directory */ 11 26 ) char(168) ext static; 11 27 11 28 /* OTHER CHAR STRINGS */ 11 29 dcl ( 11 30 sc_stat_$master_channel /* Master TTY channel. */ 11 31 ) char(6) aligned ext static; 11 32 11 33 /* LABELS */ 11 34 dcl ( 11 35 sc_stat_$admin_listener_exit_label, /* GO here to exit admin mode. Set to */ 11 36 /* ssu_$null_label unless */ 11 37 /* admin_listener is active. */ 11 38 sc_stat_$master_abort_label, /* GO here after fault that is not */ 11 39 /* attributable to a particular */ 11 40 /* command. */ 11 41 sc_stat_$system_shutdown_label /* GO here to shut down system */ 11 42 ) label variable ext static; 11 43 11 44 /* POINTERS TO */ 11 45 dcl ( 11 46 sc_stat_$admin_log_iocb, /* IOCB for admin log */ 11 47 sc_stat_$admin_log_write_ptr, /* DATA for log_write_ calls on the admin log */ 11 48 sc_stat_$admin_sci_ptr, /* DATA ssu_ for terminal currently executing */ 11 49 sc_stat_$as_log_write_ptr, /* DATA for log_write_ calls on as log, used */ 11 50 /* by sys_log_. */ 11 51 sc_stat_$initzer_ttyp, /* ENT mc_ate for initializer terminal */ 11 52 sc_stat_$master_iocb, /* IOCB for "master_i/o" */ 11 53 sc_stat_$master_sci_ptr, /* DATA ssu_ (permanent) for system control */ 11 54 sc_stat_$mc_ansp, /* HEAD of mc_anstbl */ 11 55 sc_stat_$mc_iocb, /* IOCB ptr for "mc_i/o" */ 11 56 sc_stat_$sv1_iocb, /* IOCB ptr for "severity1" */ 11 57 sc_stat_$sv2_iocb, /* IOCB ptr for "severity2" */ 11 58 sc_stat_$sv3_iocb /* IOCB ptr for "severity3" */ 11 59 ) ptr ext static; 11 60 11 61 /* SWITCHES */ 11 62 dcl ( 11 63 sc_stat_$Go, /* TRUE after answering service is listening*/ 11 64 sc_stat_$Go_typed, /* TRUE immediately after 'go' is typed */ 11 65 sc_stat_$Multics, /* TRUE after answering service started */ 11 66 sc_stat_$Multics_typed, /* TRUE immediately after 'mult' is typed */ 11 67 sc_stat_$Star_typed, /* TRUE if 'mult' and 'go' came from 'star' */ 11 68 sc_stat_$admin_listener_switch, /* TRUE if in the admin listener */ 11 69 sc_stat_$did_part1, /* TRUE if part 1 of system startup ec done */ 11 70 sc_stat_$did_part2, /* TRUE if part 2 of system startup ec done */ 11 71 sc_stat_$did_part3, /* TRUE if part 3 of system startup ec done */ 11 72 sc_stat_$mc_is_on, /* TRUE if message coordinator running */ 11 73 sc_stat_$no_operator_login, /* TRUE if operator login not required, or */ 11 74 /* if PNT not yet available. */ 11 75 sc_stat_$shutdown_typed, /* TRUE if 'shutdown' command in progress. */ 11 76 sc_stat_$test_mode, /* TRUE if in test environment */ 11 77 sc_stat_$vchn_requires_accept /* TRUE if vchn may only be used if accepted*/ 11 78 /* by operator signed on system console*/ 11 79 ) bit(1) aligned ext static; 11 80 11 81 11 82 /* END OF: sc_stat_.incl.pl1 * * * * * */ 769 770 /* BEGIN: sc_subsystem_info_.incl.pl1 * * * * * */ 12 2 12 3 /* format:style3,idind30 */ 12 4 12 5 /* Created 1984-10-24 BIM */ 12 6 /* Modified 1985-01-07, BIM: access control flags that track admin and X */ 12 7 /* Modified 1985-02-18, E. Swenson to save away abort_line procedure. */ 12 8 12 9 12 10 /****^ HISTORY COMMENTS: 12 11* 1) change(87-02-17,GDixon), approve(87-07-03,MCR7680), 12 12* audit(87-07-13,Parisek), install(87-08-04,MR12.1-1056): 12 13* Correct formatting problems. Add sc_subsystem_info.flags.dont_mask_calls 12 14* switch. 12 15* 2) change(87-07-03,GDixon), approve(87-07-03,MCR7680), 12 16* audit(87-07-13,Parisek), install(87-08-04,MR12.1-1056): 12 17* Removed dont_mask_calls flag. It is no longer needed to correctly perform 12 18* masking on a per-request basis. 12 19* END HISTORY COMMENTS */ 12 20 12 21 12 22 declare sc_subsystem_info_ptr pointer; 12 23 declare 1 sc_subsystem_info aligned based (sc_subsystem_info_ptr), 12 24 2 restriction_flags bit (36) aligned, /* copied from mc atep or fabricated */ 12 25 2 flags aligned, 12 26 3 no_real_tty bit (1) unaligned, /* for sc_admin_command_ */ 12 27 3 print_ready bit (1) unal, /* on for all except the system console, */ 12 28 /* instructs sc_process_command_line_ to deal */ 12 29 /* with the prompt */ 12 30 3 the_system_console bit (1) unal, /* syserr messages are printed here (but console */ 12 31 /* recover doesn't try to fix this) copied here */ 12 32 /* from the mc_ate to save other looking in there*/ 12 33 3 printer_offed bit (1) unal, /* suppress logging */ 12 34 3 pad bit (32) unaligned, 12 35 2 source_name char (32) unaligned, 12 36 2 area_ptr pointer, 12 37 2 mc_atep pointer, /* needed to play with attachments */ 12 38 2 real_iocb pointer, /* for sc_signal_io_handler_ */ 12 39 2 hangup_entry entry (pointer) variable, 12 40 /* called on io_no_permission. */ 12 41 2 real_execute_line entry (ptr, ptr, fixed bin (21), fixed bin (35)), 12 42 2 real_locate_request entry (ptr, char (*), ptr, fixed bin (35)), 12 43 2 access_control_name char (32) unaligned, 12 44 2 real_invoke_request entry, /* since MR11 ssu_ lacks the ability to abort a */ 12 45 /* single request, we have an invoke_request that*/ 12 46 /* handles a condition to unwind the request */ 12 47 2 abort_request_label label, /* go here (nonlocally) to unwind a single request */ 12 48 2 real_abort_line entry options (variable); 12 49 12 50 declare sc_ss_area area based (sc_subsystem_info.area_ptr); 12 51 12 52 /* The following defines the user flags for the request table. */ 12 53 12 54 declare sc_rf_ptr pointer; 12 55 declare 1 sc_request_flags unaligned based (sc_rf_ptr), 12 56 2 dont_parse_arguments bit, /* reply, intercom */ 12 57 2 obsolete bit, /* warn opr to not use it */ 12 58 2 dont_mask_calls bit, /* this runs without masking ev calls */ 12 59 2 requires_as bit, /* not before AS */ 12 60 2 requires_no_as bit, /* only before AS */ 12 61 2 complete_disks_first bit, /* try to mount disks */ 12 62 2 no_login_needed bit, /* sign_on */ 12 63 2 pad bit (5), 12 64 2 restriction_type fixed bin (6) unsigned; 12 65 /* index into restriction flag string */ 12 66 12 67 12 68 /* END OF: sc_subsystem_info_.incl.pl1 * * * * * */ 770 771 /* BEGIN INCLUDE FILE sys_log_constants.incl.pl1 ... 82-09-24 E. N. Kittlitz */ 13 2 13 3 13 4 /****^ HISTORY COMMENTS: 13 5* 1) change(87-04-22,GDixon), approve(87-06-10,MCR7708), 13 6* audit(87-06-02,Parisek), install(87-08-04,MR12.1-1056): 13 7* Added sl_info structure and associated named constants for use in calling 13 8* sys_log_$general. 13 9* END HISTORY COMMENTS */ 13 10 13 11 13 12 /* format: style4 */ 13 13 13 14 dcl ( 13 15 SL_TYPE_CRASH init (-3), /* type message with banner & kill system */ 13 16 SL_TYPE_BEEP init (-2), /* type message with banner */ 13 17 SL_TYPE init (-1), /* type message */ 13 18 SL_LOG_SILENT init (0), /* log message */ 13 19 SL_LOG init (1), /* log & type message */ 13 20 SL_LOG_BEEP init (2), /* log & type message with banner */ 13 21 SL_LOG_CRASH init (3) /* log & type message with banner & kill system */ 13 22 ) fixed bin internal static options (constant); 13 23 13 24 dcl 1 sl_info aligned automatic, 13 25 2 version char(8), /* structure version */ 13 26 2 arg_list_ptr ptr, /* arg_list with values */ 13 27 2 loc, 13 28 3 (mode, severity, code, caller, data, class, ioa_msg) fixed bin, 13 29 /* These flags control where the corresponding data item is found.*/ 13 30 /* -1: data appears in the corresponding structure element below */ 13 31 /* 0: data is not present anywhere */ 13 32 /* +N: data is Nth item in argument list pointed to by */ 13 33 /* sl_info.arg_list_ptr. Upon return, data copied into */ 13 34 /* corresponding structure element. */ 13 35 /* if data = +N: */ 13 36 /* argN is data_ptr, argN+1 is data_len */ 13 37 /* if ioa_msg = +N: */ 13 38 /* argN+1, ... argLAST are arguments substituted into the */ 13 39 /* ioa_msg control string. The formatted msg is returned. */ 13 40 2 flags, 13 41 3 ioa_msg_is_error_code bit(1) unal, /* ioa_ctl is error code. */ 13 42 3 flags_pad bit(35) unal, 13 43 2 mode fixed bin, /* as-mode, command-mode */ 13 44 2 severity fixed bin, /* error severity */ 13 45 2 code fixed bin(35), /* error table code */ 13 46 2 caller char(65) varying, /* caller refname$entryname*/ 13 47 2 data, /* binary data ptr/length */ 13 48 3 data_ptr ptr, 13 49 3 data_lth fixed bin(21), 13 50 2 class char(10) varying, /* binary data class */ 13 51 2 ioa_msg char(500) varying; /* formatted message text */ 13 52 13 53 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 13 54 /* */ 13 55 /* If data values (eg, sl_info.caller) are passed in the argument list, */ 13 56 /* their data types should be as shown in the structure above, except that */ 13 57 /* character strings should be char(*) nonvarying. */ 13 58 /* */ 13 59 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 13 60 13 61 /* value for sl_info.version */ 13 62 dcl SL_INFO_version_1 char (8) int static options(constant) init("sl_info1"); 13 63 13 64 /* values for sl_info.mode */ 13 65 dcl (SL_INFO_as_mode init(1), 13 66 SL_INFO_command_mode init(2)) fixed bin int static options(constant); 13 67 13 68 /* values for sl_info.loc.(severity code caller data class ioa_ctl arg) */ 13 69 dcl (SL_INFO_arg_given_in_structure init(-1), 13 70 SL_INFO_arg_not_given init(0)) fixed bin int static options(constant); 13 71 13 72 13 73 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 13 74 /* */ 13 75 /* The following static structures are commonly used in the Login Server */ 13 76 /* user control software. */ 13 77 /* */ 13 78 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 13 79 13 80 /* Syntax: call Abort (severity, code, ioa_ctl, args); */ 13 81 13 82 dcl 1 sl_info_sev_code_msg aligned int static options(constant), 13 83 2 version char(8) init ("sl_info1"), 13 84 2 arg_list_ptr ptr init (null), 13 85 2 loc, 13 86 3 (mode init (-1), 13 87 severity init ( 1), 13 88 code init ( 2), 13 89 caller init (-1), 13 90 data init ( 0), 13 91 class init ( 0), 13 92 ioa_msg init ( 3)) fixed bin, 13 93 2 flags, 13 94 3 ioa_msg_is_error_code bit(1) unal init ("0"b), 13 95 3 flags_pad bit(35) unal init ("0"b), 13 96 2 mode fixed bin init ( 1), 13 97 2 severity fixed bin init ( 0), 13 98 2 code fixed bin(35) init ( 0), 13 99 2 caller char(65) varying init (""), 13 100 2 data, 13 101 3 data_ptr ptr init (null), 13 102 3 data_lth fixed bin(21) init ( 0), 13 103 2 class char(10) varying init (""), 13 104 2 ioa_msg char(500) varying init (""); 13 105 13 106 /* Syntax: call Abort (severity, ioa_ctl, args); */ 13 107 13 108 dcl 1 sl_info_sev_msg aligned int static options(constant), 13 109 2 version char(8) init ("sl_info1"), 13 110 2 arg_list_ptr ptr init (null), 13 111 2 loc, 13 112 3 (mode init (-1), 13 113 severity init ( 1), 13 114 code init ( 0), 13 115 caller init (-1), 13 116 data init ( 0), 13 117 class init ( 0), 13 118 ioa_msg init ( 2)) fixed bin, 13 119 2 flags, 13 120 3 ioa_msg_is_error_code bit(1) unal init ("0"b), 13 121 3 flags_pad bit(35) unal init ("0"b), 13 122 2 mode fixed bin init ( 1), 13 123 2 severity fixed bin init ( 0), 13 124 2 code fixed bin(35) init ( 0), 13 125 2 caller char(65) varying init (""), 13 126 2 data, 13 127 3 data_ptr ptr init (null), 13 128 3 data_lth fixed bin(21) init ( 0), 13 129 2 class char(10) varying init (""), 13 130 2 ioa_msg char(500) varying init (""); 13 131 13 132 /* Syntax: call Abort (severity, ioa_ctl_as_error_code, args); */ 13 133 13 134 dcl 1 sl_info_sev_coded_msg aligned int static options(constant), 13 135 2 version char(8) init ("sl_info1"), 13 136 2 arg_list_ptr ptr init (null), 13 137 2 loc, 13 138 3 (mode init (-1), 13 139 severity init ( 1), 13 140 code init ( 0), 13 141 caller init (-1), 13 142 data init ( 0), 13 143 class init ( 0), 13 144 ioa_msg init ( 2)) fixed bin, 13 145 2 flags, 13 146 3 ioa_msg_is_error_code bit(1) unal init ("1"b), 13 147 3 flags_pad bit(35) unal init ("0"b), 13 148 2 mode fixed bin init ( 1), 13 149 2 severity fixed bin init ( 0), 13 150 2 code fixed bin(35) init ( 0), 13 151 2 caller char(65) varying init (""), 13 152 2 data, 13 153 3 data_ptr ptr init (null), 13 154 3 data_lth fixed bin(21) init ( 0), 13 155 2 class char(10) varying init (""), 13 156 2 ioa_msg char(500) varying init (""); 13 157 13 158 13 159 /* Syntax: call Abort (severity, code, error_return_label, ioa_ctl, args); */ 13 160 13 161 dcl 1 sl_info_sev_code_label_msg aligned int static options(constant), 13 162 2 version char(8) init ("sl_info1"), 13 163 2 arg_list_ptr ptr init (null), 13 164 2 loc, 13 165 3 (mode init (-1), 13 166 severity init ( 1), 13 167 code init ( 2), 13 168 caller init (-1), 13 169 data init ( 0), 13 170 class init ( 0), 13 171 ioa_msg init ( 4)) fixed bin, 13 172 2 flags, 13 173 3 ioa_msg_is_error_code bit(1) unal init ("0"b), 13 174 3 flags_pad bit(35) unal init ("0"b), 13 175 2 mode fixed bin init ( 1), 13 176 2 severity fixed bin init ( 0), 13 177 2 code fixed bin(35) init ( 0), 13 178 2 caller char(65) varying init (""), 13 179 2 data, 13 180 3 data_ptr ptr init (null), 13 181 3 data_lth fixed bin(21) init ( 0), 13 182 2 class char(10) varying init (""), 13 183 2 ioa_msg char(500) varying init (""); 13 184 13 185 /* Syntax: call Log_error (code, ioa_ctl, args); */ 13 186 13 187 dcl 1 sl_info_code_msg aligned int static options(constant), 13 188 2 version char(8) init ("sl_info1"), 13 189 2 arg_list_ptr ptr init (null), 13 190 2 loc, 13 191 3 (mode init (-1), 13 192 severity init (-1), 13 193 code init ( 1), 13 194 caller init (-1), 13 195 data init ( 0), 13 196 class init ( 0), 13 197 ioa_msg init ( 2)) fixed bin, 13 198 2 flags, 13 199 3 ioa_msg_is_error_code bit(1) unal init ("0"b), 13 200 3 flags_pad bit(35) unal init ("0"b), 13 201 2 mode fixed bin init ( 1), 13 202 2 severity fixed bin init ( 0), 13 203 2 code fixed bin(35) init ( 0), 13 204 2 caller char(65) varying init (""), 13 205 2 data, 13 206 3 data_ptr ptr init (null), 13 207 3 data_lth fixed bin(21) init ( 0), 13 208 2 class char(10) varying init (""), 13 209 2 ioa_msg char(500) varying init (""); 13 210 13 211 13 212 /* Syntax: call Trace (ioa_ctl, args); */ 13 213 13 214 dcl 1 sl_info_msg aligned int static options(constant), 13 215 2 version char(8) init ("sl_info1"), 13 216 2 arg_list_ptr ptr init (null), 13 217 2 loc, 13 218 3 (mode init (-1), 13 219 severity init (-1), 13 220 code init ( 0), 13 221 caller init (-1), 13 222 data init ( 0), 13 223 class init ( 0), 13 224 ioa_msg init ( 1)) fixed bin, 13 225 2 flags, 13 226 3 ioa_msg_is_error_code bit(1) unal init ("0"b), 13 227 3 flags_pad bit(35) unal init ("0"b), 13 228 2 mode fixed bin init ( 1), 13 229 2 severity fixed bin init ( 0), 13 230 2 code fixed bin(35) init ( 0), 13 231 2 caller char(65) varying init (""), 13 232 2 data, 13 233 3 data_ptr ptr init (null), 13 234 3 data_lth fixed bin(21) init ( 0), 13 235 2 class char(10) varying init (""), 13 236 2 ioa_msg char(500) varying init (""); 13 237 13 238 /* END INCLUDE FILE sys_log_constants.incl.pl1 */ 771 772 /* BEGIN INCLUDE FILE ... user_attributes.incl.pl1 TAC 10/79 */ 14 2 14 3 14 4 /****^ HISTORY COMMENTS: 14 5* 1) change(86-12-11,Brunelle), approve(87-07-13,MCR7741), 14 6* audit(87-04-19,GDixon), install(87-08-04,MR12.1-1056): 14 7* Add incl for abs_attributes.incl.pl1 to automatically include absentee 14 8* attribute switches. 14 9* 2) change(87-04-19,GDixon), approve(87-07-13,MCR7741), 14 10* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 14 11* A) Add USER_ATTRIBUTE_NAMES arrays. attribute_names.incl.pl1 can thereby 14 12* be deleted. 14 13* B) Add constants identifying attributes that can be changed by user at 14 14* login, etc. 14 15* END HISTORY COMMENTS */ 14 16 14 17 14 18 /* Modified 82-01-03 E. N. Kittlitz. to declare a complete level-1 structure */ 14 19 14 20 /* format: style4 */ 14 21 dcl 1 user_attributes aligned based, /* the user user_attributes */ 14 22 (2 administrator bit (1), /* 1 system administrator privileges */ 14 23 2 primary_line bit (1), /* 2 user has primary-line privileges */ 14 24 2 nobump bit (1), /* 2 user cannot be bumped */ 14 25 2 guaranteed_login bit (1), /* 4 user has guaranteed login privileges */ 14 26 2 anonymous bit (1), /* 5 used only in SAT. project may have anon.users */ 14 27 2 nopreempt bit (1), /* 6 used only in PDT. user not preemptable by others 14 28* . of same project (distinct from "nobump") */ 14 29 2 nolist bit (1), /* 7 don't list user on "who" */ 14 30 2 dialok bit (1), /* 8 user may have multiple consoles */ 14 31 2 multip bit (1), /* 9 user may have several processes */ 14 32 2 bumping bit (1), /* 10 in SAT. Can users in project bump each other? */ 14 33 2 brief bit (1), /* 11 no login or logout message */ 14 34 2 vinitproc bit (1), /* 12 user may change initial procedure */ 14 35 2 vhomedir bit (1), /* 13 user may change homedir */ 14 36 2 nostartup bit (1), /* 14 user does not want start_up.ec */ 14 37 2 sb_ok bit (1), /* 15 user may be standby */ 14 38 2 pm_ok bit (1), /* 16 user may be primary */ 14 39 2 eo_ok bit (1), /* 17 user may be edit_only */ 14 40 2 daemon bit (1), /* 18 user may login as daemon */ 14 41 2 vdim bit (1), /* 19 * OBSOLETE * user may change outer mdle */ 14 42 2 no_warning bit (1), /* 20 no warning message */ 14 43 2 igroup bit (1), /* 21 in SAT: this project may give its users individual groups 14 44* . in PDT: this user has an individual load control group */ 14 45 2 save_pdir bit (1), /* 22 save pdir after fatal process error */ 14 46 2 disconnect_ok bit (1), /* 23 ok to save user's disconnected processes */ 14 47 2 save_on_disconnect bit (1), /* 24 save them unless -nosave login arg is given */ 14 48 2 pad bit (12)) unaligned; 14 49 14 50 dcl USER_ATTRIBUTE_NAMES (0:24) char (20) int static options (constant) init 14 51 ("none", /* 0 */ 14 52 "administrator", /* 1 */ 14 53 "primary_line", /* 2 */ 14 54 "nobump", /* 3 */ 14 55 "guaranteed_login", /* 4 */ 14 56 "anonymous", /* 5 */ 14 57 "nopreempt", /* 6 */ 14 58 "nolist", /* 7 */ 14 59 "dialok", /* 8 */ 14 60 "multip", /* 9 */ 14 61 "bumping", /* 10 */ 14 62 "brief", /* 11 */ 14 63 "vinitproc", /* 12 */ 14 64 "vhomedir", /* 13 */ 14 65 "nostartup", /* 14 */ 14 66 "no_secondary", /* 15 */ 14 67 "no_prime", /* 16 */ 14 68 "no_eo", /* 17 */ 14 69 "daemon", /* 18 */ 14 70 "", /* 19 vdim OBSOLETE */ 14 71 "no_warning", /* 20 */ 14 72 "igroup", /* 21 */ 14 73 "save_pdir", /* 22 */ 14 74 "disconnect_ok", /* 23 */ 14 75 "save_on_disconnect"); /* 24 */ 14 76 14 77 dcl ALT_USER_ATTRIBUTE_NAMES (0:24) char (20) int static options (constant) init 14 78 ("null", /* 0 */ 14 79 "admin", /* 1 */ 14 80 "", "", /* 2 - 3 */ 14 81 "guar", /* 4 */ 14 82 "anon", /* 5 */ 14 83 "", "", /* 6 - 7 */ 14 84 "dial", /* 8 */ 14 85 "multi_login", /* 9 */ 14 86 "preempting", /* 10 */ 14 87 "", /* 11 */ 14 88 "v_process_overseer", /* 12 */ 14 89 "v_home_dir", /* 13 */ 14 90 "no_start_up", /* 14 */ 14 91 "no_sec", /* 15 */ 14 92 "no_primary", /* 16 */ 14 93 "no_edit_only", /* 17 */ 14 94 "op_login", /* 18 */ 14 95 "", /* 19 */ 14 96 "nowarn", /* 20 */ 14 97 "", "", "", /* 21 - 23 */ 14 98 "save"); /* 24 */ 14 99 14 100 dcl USER_ATTRIBUTES_always_allowed bit (36) aligned int static 14 101 options(constant) init("000000000010000000010000000000000000"b); 14 102 /* SAT/PDT attributes not needed for user to give (brief, no_warning) */ 14 103 14 104 dcl USER_ATTRIBUTES_default_in_pdt bit (36) aligned int static 14 105 options(constant) init("000000000010000000010000000000000000"b); 14 106 /* PDT value for (brief, no_warning) is default */ 14 107 14 108 dcl USER_ATTRIBUTES_settable_by_user bit (36) aligned int static 14 109 options(constant) init("000100000110010000010000000000000000"b); 14 110 /* user MIGHT set (bump, ns, brief, guar, no_warning) */ 14 111 15 1 /* BEGIN INCLUDE FILE ... user_abs_attributes.incl.pl1 */ 15 2 15 3 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 15 4 /* */ 15 5 /* This include file describes the attributes of an absentee job. It is */ 15 6 /* used by user_table_entry.incl.pl1, abs_message_format.incl.pl1 */ 15 7 /* and PIT.incl.pl1. */ 15 8 /* */ 15 9 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 15 10 15 11 /****^ HISTORY COMMENTS: 15 12* 1) change(86-12-08,GDixon), approve(87-07-13,MCR7741), 15 13* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 15 14* Separated abs_attributes from the request structure 15 15* (abs_message_format.incl.pl1) so that the identical structure could be 15 16* used in the ute structure (user_table_entry.incl.pl1). 15 17* 2) change(87-04-19,GDixon), approve(87-07-13,MCR7741), 15 18* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 15 19* Added ABS_ATTRIBUTE_NAMES array. 15 20* 3) change(87-11-11,Parisek), approve(88-02-11,MCR7849), 15 21* audit(88-03-22,Lippard), install(88-07-13,MR12.2-1047): 15 22* Added the no_start_up flag. SCP6367 15 23* END HISTORY COMMENTS */ 15 24 15 25 dcl 1 user_abs_attributes aligned based, 15 26 2 restartable bit (1) unaligned, /* 1 if request may be started over from the beginning */ 15 27 2 user_deferred_until_time bit (1) unaligned, /* 1 if request was specified as deferred */ 15 28 2 proxy bit (1) unaligned, /* 1 if request submitted for someone else */ 15 29 2 set_bit_cnt bit (1) unaligned, /* 1 if should set bit count after every write call */ 15 30 2 time_in_gmt bit (1) unaligned, /* 1 if deferred_time is in GMT */ 15 31 2 user_deferred_indefinitely bit (1) unaligned, /* 1 if operator is to say when to run it */ 15 32 2 secondary_ok bit (1) unaligned, /* 1 if ok to log in as secondary foreground user */ 15 33 2 truncate_absout bit (1) unaligned, /* 1 if .absout is to be truncated */ 15 34 2 restarted bit (1) unaligned, /* 1 if job is restarted */ 15 35 2 no_start_up bit (1) unaligned, /* 1 if requested -ns */ 15 36 2 attributes_pad bit (26) unaligned; 15 37 15 38 dcl ABS_ATTRIBUTE_NAMES (10) char (28) varying int static options(constant) init( 15 39 "restartable", 15 40 "user_deferred_until_time", 15 41 "proxy", 15 42 "set_bit_cnt", 15 43 "time_in_gmt", 15 44 "user_deferred_indefinitely", 15 45 "secondary_ok", 15 46 "truncate_absout", 15 47 "restarted", 15 48 "no_start_up"); 15 49 15 50 /* END INCLUDE FILE ... user_abs_attributes.incl.pl1 */ 15 51 14 112 14 113 14 114 /* END INCLUDE FILE ... user_attributes.incl.pl1 */ 772 773 /* BEGIN INCLUDE FILE ... user_table_entry.incl.pl1 */ 16 2 16 3 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 16 4 /* */ 16 5 /* This include file requires that the user include */ 16 6 /* user_attributes.incl.pl1 as well. It also includes */ 16 7 /* abs_attributes.incl.pl1 itself. */ 16 8 /* */ 16 9 /* This include file must be included to use absentee_user_table.incl.pl1, */ 16 10 /* answer_table.incl.pl1, and daemon_user_table.incl.pl1. */ 16 11 /* */ 16 12 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 16 13 16 14 /****^ HISTORY COMMENTS: 16 15* 1) change(81-12-21,Gilcrease), approve(86-03-27,MCR7370), 16 16* audit(86-06-23,Lippard), install(86-06-30,MR12.0-1082): 16 17* This comment for hcom. 16 18* 81-12-21 E. N. Kittlitz. derived from abs_user_tab.incl.pl1, 16 19* anstbl.incl.pl1, and dutbl.incl.pl1. 16 20* 82-01-02 E. N. Kittlitz. user_attributes.incl.pl1 changes 16 21* 84-04-04 BIM added privileged_dial_server and dial_server_ring 16 22* 84-07-12 BIM added min_process_authorization 16 23* 84-12-31 Keith Loepere added pdir_dir_quota 16 24* 85-01-16 by E. Swenson to add ute.session_uid 16 25* 2) change(85-11-16,Swenson), approve(87-07-13,MCR7737), 16 26* audit(87-04-14,GDixon), install(87-08-04,MR12.1-1056): 16 27* Added fields for DSA login server support. 16 28* 3) change(86-03-27,Gilcrease), approve(86-03-27,MCR7370), 16 29* audit(86-06-23,Lippard), install(86-06-30,MR12.0-1082): 16 30* Add truncate_absout and restarted bit for -truncate absout, SCP6297. 16 31* 4) change(86-04-09,Herbst), approve(87-07-13,MCR7697), 16 32* audit(87-04-14,GDixon), install(87-08-04,MR12.1-1056): 16 33* Added disconnection_rel_minutes. 16 34* 5) change(86-12-08,GDixon), approve(87-07-13,MCR7741), 16 35* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 16 36* Changed structure under ute.abs_attributes to use like structure in 16 37* abs_attributes.incl.pl1. This allows the same attributes to be used 16 38* in abs_message_format.incl.pl1 and pit.incl.pl1 as well as this include 16 39* file. 16 40* 6) change(87-04-14,GDixon), approve(87-07-13,MCR7741), 16 41* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 16 42* Move constants for ute.pw_flags.mask_ctl from answer_table.incl.pl1. 16 43* 7) change(87-04-16,GDixon), approve(87-07-13,MCR7741), 16 44* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 16 45* A) Global reorganization to locate things by type of data. 16 46* B) Eliminate ute.uflags.logged_in. 16 47* 8) change(87-05-10,GDixon), approve(87-07-13,MCR7741), 16 48* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 16 49* A) Reduced overlength person and project fields to proper length. 16 50* B) Adjusted dialed-console section to begin on even word boundary. 16 51* 9) change(87-05-13,GDixon), approve(87-07-13,MCR7741), 16 52* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 16 53* Add ute.line_type. 16 54* 10) change(87-11-19,Parisek), approve(88-02-11,MCR7849), 16 55* audit(88-02-23,Lippard), install(88-07-13,MR12.2-1047): 16 56* Added the lowest_ring element. Used the upper half of ute.highest_ring 16 57* for the storage. SCP6367 16 58* END HISTORY COMMENTS */ 16 59 16 60 /* format: style4 */ 16 61 16 62 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 16 63 /* */ 16 64 /* Each of the named sections below defines a type of data. Typing comes */ 16 65 /* from data associated with the ute entry itself, with the person, with */ 16 66 /* login argument data, from the main user of the data (eg, dialup_, */ 16 67 /* load_ctl_, login server). Each section begins on a double-word boundary */ 16 68 /* and is an even number of words long. The total structure is 300 decimal */ 16 69 /* words long. */ 16 70 /* */ 16 71 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 16 72 16 73 16 74 dcl UTE_version_4 fixed bin internal static options (constant) init (4); 16 75 16 76 dcl utep pointer automatic init (null); 16 77 16 78 dcl 1 ute based (utep) aligned, /* individual entry in one of the user control tables */ 16 79 16 80 /* Variables which give state of this entry */ 16 81 2 active fixed bin, /* state of entry. 0=>free. see dialup_values.incl.pl1 */ 16 82 2 process_type fixed bin, /* 1=interactive, 2=absentee, 3=daemon */ 16 83 2 ute_index fixed bin, /* index of ute in (anstbl autbl dutbl).entry array */ 16 84 2 next_free fixed bin, /* points to previous free entry */ 16 85 16 86 /* Information user gave about person_id associated with this entry. */ 16 87 2 person char (24) unal, /* user's name */ 16 88 2 project char (12) unal, /* project of absentee user */ 16 89 2 tag char (1) unal, /* instance tag - someday will be generated */ 16 90 2 tag_pad bit (27) unal, 16 91 2 anonymous fixed bin, /* 1 if anonymous, otherwise 0 */ 16 92 2 login_flags, /* flags for login data */ 16 93 3 cpw bit (1) unal, /* flag for wish to change password */ 16 94 3 generate_pw bit (1) unal, /* flag meaning -generate_pw (-gpw) was used. */ 16 95 3 special_pw unal, /* dial or slave */ 16 96 4 dial_pw bit (1) unal, /* true if dial -user */ 16 97 4 slave_pw bit (1) unal, /* true if slave -user */ 16 98 3 cdp bit (1) unal, /* flag for wish to change default project */ 16 99 3 cda bit (1) unal, /* flag to change default authorization */ 16 100 3 auth_given bit (1) unal, /* flag to mean -authorization was used. */ 16 101 3 noprint bit (1) unal, /* used at logout. inhibits printing. */ 16 102 3 operator bit (1) unaligned, /* user specified -operator on login command line */ 16 103 3 pw_pad bit (25) unal, /* spare parts */ 16 104 3 mask_ctl bit (2) unal, /* bits controlling pw mask. See constants, below */ 16 105 /* Must remain last in pw_flags so it does not */ 16 106 /* appear in PW_FLAG_VALUES array below. */ 16 107 2 generated_pw char (8) unal, /* user must type this as new password */ 16 108 2 old_password char (8) unal, /* must match user's previous password (value scrambled) */ 16 109 2 process_authorization bit (72), /* access_authorization of this process */ 16 110 16 111 /* Information user gave about process associated with this entry. */ 16 112 2 outer_module char (32) unal, /* Name of console dim */ 16 113 2 home_dir char (64) unal, /* initial home directory */ 16 114 2 init_proc char (64) unal, /* name of login responder */ 16 115 2 ip_len fixed bin (17) unal, /* length of initproc string */ 16 116 2 ss_len fixed bin (17) unal, /* length of subsystem string */ 16 117 2 ur_at like user_attributes aligned, /* bits on means attributes given by user */ 16 118 2 at like user_attributes aligned, /* bits on means attribute is on */ 16 119 2 initial_ring fixed bin, /* ring process will be started in */ 16 120 2 arg_count fixed bin, /* number of arguments to absentee control segment */ 16 121 2 ln_args fixed bin, /* length of string containing arguments */ 16 122 2 arg_lengths_ptr ptr, /* pointer to array of argument lengths */ 16 123 2 args_ptr ptr, /* pointer to arguments to absentee control segment */ 16 124 16 125 /* Most of the following information is relevant only to absentee processes */ 16 126 2 input_seg char (168) unal, /* pathname of absentee control segment */ 16 127 2 output_seg char (168) unal, /* pathname of absentee output file */ 16 128 2 request_id fixed bin (71), /* time request was entered - used as uid of request */ 16 129 2 reservation_id fixed bin (71), /* nonzero if job has a resource reservation */ 16 130 2 message_id bit (72), /* message segment id assoc with absentee request */ 16 131 2 deferred_time fixed bin (71), /* time at which absentee process should be created */ 16 132 2 max_cpu_time fixed bin (35), /* maximum number of seconds this process can run */ 16 133 2 queue fixed bin, /* -1=daemon;0=interactive or foreground;>0=queue no. 16 134* (but see uflags.adjust_abs_q_no). */ 16 135 2 real_queue fixed bin, /* real queue number; ute.queue gets fudged sometimes */ 16 136 2 abs_attributes aligned like user_abs_attributes, /* include abs_attributes.incl.pl1 */ 16 137 2 abs_flags, 16 138 3 abs_run bit (1) unal, /* on if job was started by abs run command */ 16 139 3 notify bit (1) unal, /* on if user wants notification at login and logout */ 16 140 3 abs_flags_pad bit (34) unal, 16 141 2 abs_group char (8) unal, /* original group before load_ctl_ moves it to absentee group */ 16 142 2 sender char (32) unal, /* name of RJE station that job is from */ 16 143 2 proxy_person char (28) unal, /* name of user who actually entered the request, if proxy */ 16 144 2 proxy_project char (9) unal, 16 145 2 proxy_project_pad char (3) unal, 16 146 2 abs_pad fixed bin, 16 147 16 148 /* Information about process actually created */ 16 149 2 proc_id bit (36), /* process id of absentee process */ 16 150 2 session_uid fixed bin (35), /* Unique authentication session id */ 16 151 2 process_authorization_range (2) bit (72) aligned, 16 152 2 audit bit (36), /* audit flags for user */ 16 153 2 lot_size fixed bin, /* Size of linkage offset table */ 16 154 2 kst_size fixed bin, /* Size of process known segment table */ 16 155 2 cls_size fixed bin, /* Size of process combined linkage */ 16 156 2 sus_channel fixed bin (71), /* event channel on which suspended process is blocked */ 16 157 2 lowest_ring fixed bin (17) unal, /* lowest ring permitted */ 16 158 2 highest_ring fixed bin (17) unal, /* highest ring permitted */ 16 159 2 pdir_lvix fixed bin (17) unal, /* index in disk table of lv where pdir is */ 16 160 2 pdir_quota fixed bin (17) unal, /* process directory quota */ 16 161 2 pdir_dir_quota fixed bin (17) unal, /* process directory quota for dirs */ 16 162 2 pdir_pad fixed bin(17) unal, 16 163 2 process_pad fixed bin, 16 164 16 165 /* Information about primary terminal associated with this entry */ 16 166 2 tty_name char (32) unal, /* absentee=>"abs1", etc. daemon=>"bk", etc. */ 16 167 2 terminal_type char (32) unaligned, /* terminal type */ 16 168 2 line_type fixed bin, /* line type */ 16 169 2 tty_id_code char (4) unal, /* "none" for absentee */ 16 170 2 network_connection_type fixed bin, /* see net_event_message.incl.pl1 */ 16 171 2 channel ptr unal, /* points to CDT entry for user, if any */ 16 172 16 173 /* Variables useful for dialed terminals */ 16 174 2 ndialed_consoles fixed bin, /* if master, number of slaves */ 16 175 2 dial_qualifier char (22) unal, /* first argument to dial command */ 16 176 2 dial_server_ring fixed bin (3) unsigned unaligned, /* dial server intends to attach dialing in channels at this ring. */ 16 177 2 dial_server_flags, 16 178 3 registered_dial_server bit (1) unal, /* process is a registered dial server */ 16 179 3 privileged_dial_server bit (1) unal, /* "1"b -> serves range of AIM classes */ 16 180 3 dial_server_flags_pad bit (13) unal, /* fill out the word */ 16 181 2 dial_ev_chn fixed bin (71), /* if master, control event channel */ 16 182 16 183 /* Information about usage/accounting. Device usage meters are in a 16 184* separate segment, "devtab" */ 16 185 2 pdtep ptr, /* ptr to user's pdt entry, where usage meters live */ 16 186 2 cpu_this_process fixed bin (71), /* cpu used so far this process */ 16 187 2 cpu_usage fixed bin (71), /* total cpu time used in this session */ 16 188 2 mem_usage fixed bin (71), /* memory usage for previous processes in session */ 16 189 2 mem_this_process fixed bin (71), /* memory usage at last update */ 16 190 2 last_update_time fixed bin (71), /* time of last account update */ 16 191 2 session_cost float bin, /* dollar cost of session, for printing in logout messages */ 16 192 2 ndevices fixed bin, /* Count of attached devices */ 16 193 2 device_head fixed bin, /* Table index of head of device chain */ 16 194 2 device_tail fixed bin, /* Table index of tail of device chain */ 16 195 2 rs_number fixed bin (6) unsigned unal, /* rate structure number */ 16 196 2 rs_number_pad bit(30) unal, 16 197 2 usage_pad fixed bin, 16 198 16 199 /* Information for dialup_ (control variables). */ 16 200 2 event fixed bin (71), /* event associated with channel or user manager */ 16 201 2 uprojp ptr, /* ptr to user project sat entry */ 16 202 2 login_time fixed bin (71), /* time when absentee user approved by lg_ctl_ */ 16 203 2 cant_bump_until fixed bin (71), /* bump-protection clock */ 16 204 2 recent_fatal_error_time fixed bin (71), /* time of first error in the suspected loop */ 16 205 2 recent_fatal_error_count fixed bin, /* counter to detect fatal process error loops */ 16 206 2 failure_reason fixed bin, /* why login refused 1=lg_ctl, 2=act_ctl, 3=load_ctl */ 16 207 2 count fixed bin, /* counter for logins and dialups */ 16 208 2 n_processes fixed bin, /* number of processes created in this session */ 16 209 2 lock_value fixed bin, /* number of locks set for this entry */ 16 210 2 login_result fixed bin, /* 0=logged in;1=hopeless,hang him up;2=allow another attempt */ 16 211 2 login_code char (8) unal, /* login command from LOGIN line */ 16 212 2 preempted fixed bin, /* if ^= 0 user preempted (never for abs) */ 16 213 2 destroy_flag fixed bin, /* >8 when awaiting destroy */ 16 214 2 logout_type char (4) unal, /* type of logout */ 16 215 2 logout_index fixed bin, /* to save logout handler index while waiting for termsgnl */ 16 216 2 disconnection_rel_minutes fixed bin (17) unal, /* disconnected this many minutes after login_time */ 16 217 2 next_disconnected_ate_index fixed bin (17) unal, /* thread of list of user's disconnected processes */ 16 218 2 work_class fixed bin, /* work class used by priority scheduler */ 16 219 2 group char (8) unal, /* party group identifier */ 16 220 2 whotabx fixed bin, /* index of user's entry in whotab */ 16 221 16 222 2 uflags, /* Miscellaneous flags */ 16 223 3 dont_call_init_admin bit (1) unal, /* Call overseer directly */ 16 224 3 ip_given bit (1) unal, /* user gave an initproc arg on login line */ 16 225 3 ss_given bit (1) unal, /* initial_procedure contains a subsystem name */ 16 226 3 lvs_attached bit (1) unal, /* set and used by the lv_request_ procedure */ 16 227 3 send_initial_string bit (1) unal, /* initial string should be sent after login line read */ 16 228 3 adjust_abs_q_no bit (1) unal, /* this is an absentee job; user_profile.queue is NOT true Q # */ 16 229 3 foreground_secondary_ok bit (1) unal, /* ok to login foreground absentee job as secondary */ 16 230 3 foreground_job bit (1) unal, /* job was originally from foreground queue */ 16 231 3 sus_sent bit (1) unal, /* sus_ ips signal has been sent to process */ 16 232 3 suspended bit (1) unal, /* process has responded to sus_ signal */ 16 233 3 ignore_cpulimit bit (1) unal, /* process is released, but timer can't be turned off */ 16 234 3 deferral_logged bit (1) unal, /* abs job deferral has already been logged once */ 16 235 3 save_if_disconnected bit (1) unal, /* user wants process preserved across hangups */ 16 236 3 disconnected bit (1) unal, /* process is disconnected from terminal */ 16 237 3 disconnected_list bit (1) unal, /* this ate is on a list of disconnected processes */ 16 238 3 proc_create_ok bit (1) unal, /* lg_ctl_ has set the process creation variables */ 16 239 3 activity_can_unbump bit (1) unal, /* only bump pending is for inactivity */ 16 240 3 fpe_causes_logout bit (1) unal, /* "1"b means don't try to new_proc after fatal process error */ 16 241 3 user_specified_immediate bit (1) unal, /* "1"b -> don't wait around for process destruction. */ 16 242 3 uflags_pad bit (17) unal, 16 243 16 244 /* Information used by load_ctl_ for the process */ 16 245 2 user_weight fixed bin, /* usually 10 - used in load control */ 16 246 2 standby_line fixed bin, /* 0=user has primary line, 1=standby user */ 16 247 2 bump_grace fixed bin (71), /* bump grace in microseconds */ 16 248 16 249 16 250 /* Information for login server */ 16 251 2 login_server_info, 16 252 3 our_handle bit (72) aligned, /* how LS refers to us. */ 16 253 3 his_handle bit (72) aligned, /* how we talk to LS */ 16 254 3 termination_event_channel fixed bin (71), /* for process termination notifications to the LS */ 16 255 3 response_event_channel fixed bin (71), /* for other communications with the LS */ 16 256 3 process_id bit (36) aligned, /* process_id of login server */ 16 257 2 ls_pad (5) fixed bin; /* pad to 300 decimal words */ 16 258 16 259 /* values for ute.process_type */ 16 260 16 261 dcl (PT_INTERACTIVE initial (1), 16 262 PT_ABSENTEE initial (2), 16 263 PT_DAEMON initial (3)) fixed bin internal static options (constant); 16 264 16 265 dcl PROCESS_TYPE_NAMES (0:3) char(12) varying int static options(constant) init( 16 266 "INVALID-TYPE", 16 267 "interactive", 16 268 "absentee", 16 269 "daemon"); 16 270 16 271 dcl TABLE_NAMES (0:3) char(20) int static options(constant) init( 16 272 "UNKNOWN-TABLE", 16 273 "answer_table", 16 274 "absentee_user_table", 16 275 "daemon_user_table"); 16 276 16 277 16 278 /* values for ute.pw_flags.mask_ctl */ 16 279 16 280 dcl (DO_MASK init ("00"b), 16 281 DONT_MASK init ("01"b), 16 282 DERIVE_MASK init ("10"b)) bit (2) internal static options (constant); 16 283 16 284 dcl MASK_CTL_NAMES (0:3) char(12) varying int static options(constant) init( 16 285 "do_mask", "dont_mask", "derive_mask", ""); 16 286 16 287 16 288 /* names for ute.pw_flags */ 16 289 16 290 dcl PW_FLAG_NAMES (9) char (12) varying int static options(constant) init( 16 291 "cpw", 16 292 "generate_pw", 16 293 "dial_pw", 16 294 "slave_pw", 16 295 "cdp", 16 296 "cda", 16 297 "auth_given", 16 298 "noprint", 16 299 "operator"); 16 300 16 301 /* names for ute.uflags */ 16 302 16 303 dcl UFLAG_NAMES (19) char (24) varying int static options (constant) init ( 16 304 "dont_call_init_admin", 16 305 "ip_given", 16 306 "ss_given", 16 307 "lvs_attached", 16 308 "send_initial_string", 16 309 "adjust_abs_q_no", 16 310 "foreground_secondary_ok", 16 311 "foreground_job", 16 312 "sus_sent", 16 313 "suspended", 16 314 "ignore_cpulimit", 16 315 "deferral_logged", 16 316 "save_if_disconnected", 16 317 "disconnected", 16 318 "disconnected_list", 16 319 "proc_create_ok", 16 320 "activity_can_unbump", 16 321 "fpe_causes_logout", 16 322 "user_specified_immediate"); 16 323 16 324 /* names for ute.abs_flags */ 16 325 16 326 dcl ABS_FLAG_NAMES (2) char (8) varying int static options (constant) init ( 16 327 "abs_run", 16 328 "notify"); 16 329 16 330 /* names of ute.dial_server_flags */ 16 331 16 332 dcl DIAL_SERVER_FLAG_NAMES (2) char (12) varying int static options (constant) init ( 16 333 "registered", 16 334 "privileged"); 16 335 16 336 /* values of ute.login_result */ 16 337 16 338 dcl LOGIN_RESULT_VALUES (0:2) char(24) varying int static options(constant) init( 16 339 "logged in", 16 340 "login failed, hangup", 16 341 "login failed, try again"); 16 342 16 343 /* END INCLUDE FILE ... user_table_entry.incl.pl1 */ 773 774 /* BEGIN INCLUDE FILE ... user_table_header.incl.pl1 */ 17 2 17 3 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 17 4 /* */ 17 5 /* This include file declares the header shared by the answer_table, */ 17 6 /* absentee_user_table and daemon_user_table include files. */ 17 7 /* */ 17 8 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 17 9 17 10 /****^ HISTORY COMMENTS: 17 11* 1) change(87-04-26,GDixon), approve(87-07-13,MCR7741), 17 12* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 17 13* Initial coding. 17 14* END HISTORY COMMENTS */ 17 15 17 16 dcl 1 ut_header aligned based, /* header shared by all user control tables. */ 17 17 2 header_version fixed bin, /* version of the header (3) */ 17 18 2 entry_version fixed bin, /* version of user table entries */ 17 19 2 user_table_type fixed bin, /* 1 interactive, 2 absentee, 3 daemon */ 17 20 2 header_length fixed bin, /* length of the header */ 17 21 2 max_size fixed bin, /* max number of entries in this table */ 17 22 2 current_size fixed bin, /* actual size of table (in entries) */ 17 23 2 number_free fixed bin, /* number of free entries in the table. */ 17 24 2 first_free fixed bin, /* index of first entry in the free list. */ 17 25 2 as_procid bit (36), /* process ID of user table manager process */ 17 26 2 ut_header_pad fixed bin; 17 27 17 28 /* END INCLUDE FILE ... user_table_header.incl.pl1 */ 774 775 776 /* format: on */ 777 778 /* BEGIN MESSAGE DOCUMENTATION 779* 780* Message: 781* daemon_user_manager_: Command sent to daemon_user_manager_ before it was initialized 782* 783* S: as (severity1) 784* 785* T: In response to an operator command. 786* 787* M: This message indicates an error in the Answering Service 788* or an incorrect installation. No daemon users can 789* log in. 790* 791* A: $inform 792* 793* 794* Message: 795* daemon_user_manager_: ERROR_MESSAGE. No MC ACS segment for message coordinator source SOURCE 796* 797* S: as (severity1) 798* 799* T: In response to an operator command. 800* 801* M: The message coordinator access control segment 802* >system_control_1>mc_acs>SOURCE.mcacs was not found. It must be 803* created and given an ACL which permits the operator to logout the daemon. 804* Therefore, the operator cannot logout the daemon. 805* 806* A: $notify_sa 807* 808* 809* Message: 810* daemon_user_manager_: ERROR_MESSAGE. Logout not permitted for message coordinator source SOURCE. 811* 812* S: as (severity1) 813* 814* T: In response to an operator command. 815* 816* M: The message coordinator access control segment 817* >system_control_1>mc_acs>SOURCE.mcacs does not permit the operator to 818* logout the daemon. Therefore, the operator cannot logout the daemon. 819* 820* A: $notify_sa 821* 822* 823* Message: 824* daemon_user_manager_: Daemon init error. NAME PROJ SOURCE REASON 825* 826* S: as (severity2) 827* 828* T: In response to an operator command. 829* 830* M: The daemon user NAME PROJ on SOURCE was logged in 831* correctly but his process could not be started. The daemon will be 832* logged out. 833* 834* A: $inform 835* 836* 837* Message: 838* logout: Entry not found. NAME PROJ SOURCE 839* 840* S: as (severity1) 841* 842* T: In response to an operator logout command. 843* 844* M: This is a response to an incorrect logout command. 845* There is no entry in the daemon user table for NAME.PROJ. 846* 847* A: Check the spelling for accuracy and try again. 848* 849* 850* Message: 851* daemon_user_manager_: Error: CONDITION during OP for NAME.PROJ SOURCE 852* 853* S: as (severity2) 854* 855* T: $run 856* 857* M: An unexpected fault has occurred while the daemon user 858* manager was performing an operation of type OP for the 859* named daemon process. An Answering Service dump was 860* performed and the system attempts to continue, but 861* the daemon process may be in an unusable state. 862* 863* A: $contact 864* 865* 866* Message: 867* login: ERROR_MESSAGE. creating event channel for NAME PROJ SOURCE 868* 869* S: as (severity2) 870* 871* T: In response to an operator command. 872* 873* M: This message indicates a system error in setting up a daemon 874* user. The daemon cannot be logged in. 875* 876* A: $inform 877* Try again. 878* 879* 880* Message: 881* login: ERROR_MESSAGE. creating proc for NAME PROJ SOURCE 882* 883* S: as (severity2) 884* 885* T: In response to an operator command. 886* 887* M: A daemon process cannot be created. This is probably due 888* to a serious system bug. The daemon is not logged in. 889* 890* A: $contact 891* 892* 893* Message: 894* login: ERROR_MESSAGE. declaring ev_call_chn for NAME PROJ SOURCE 895* 896* S: as (severity2) 897* 898* T: In response to an operator command. 899* 900* M: This message indicates a system error in setting up a daemon 901* user. The daemon cannot be logged in. 902* 903* A: $inform 904* 905* 906* Message: 907* daemon_user_manager_: ERROR_MESSAGE. NAME.PROJ SOURCE terminated. 908* 909* S: as (severity1) 910* 911* T: $run 912* 913* M: An error in a daemon process has caused it to terminate. 914* A following message will indicate whether a new process has been 915* automatically created. 916* 917* A: If the daemon is logged out, reinitialize the daemon and continue. 918* Otherwise, a new daemon process is created automatically and you 919* can continue from there. 920* 921* 922* Message: 923* daemon_user_manager_: Fatal process error loop for NAME.PROJ SOURCE. 924* .br 925* Daemon will be logged out. 926* 927* S: as (severity1) 928* 929* T: $run 930* 931* M: An error in a daemon process has caused it to terminate repeatedly 932* within the last few minutes. Detection of the loop causes the daemon 933* to be logged out. 934* 935* A: Try to login the daemon again. If it still fails, notify your 936* System Administrator of the problem. 937* 938* 939* Message: 940* daemon_user_manager_: Daemon will be logged out. 941* 942* S: as (severity1) 943* 944* T: $run 945* 946* M: An error in a daemon process has caused it to terminate. 947* The daemon suffered a fatal process error during initialization 948* or it has set the option which causes it to be logged out when 949* a fatal process error occurs. 950* 951* A: Attempt to log in the daemon again and proceed. 952* 953* 954* Message: 955* daemon_user_manager_: New process created. 956* 957* S: as (severity1) 958* 959* T: $run 960* 961* M: An error in a daemon process has caused it to terminate. 962* A new process has been created. 963* 964* A: A new daemon process is created automatically and you 965* can continue from there. 966* 967* 968* Message: 969* daemon_user_manager_: Event entry called with null ev_msg_ptr 970* 971* S: as (severity2) 972* 973* T: $run 974* 975* M: This indicates an error in the Answering Service. 976* 977* A: $inform 978* 979* 980* Message: 981* daemon_user_manager_: Invalid signal from NAME PROJ SOURCE 982* .br 983* daemon_user_manager_: signal was "XXXXXXXX" YYY|ZZZZ 984* 985* S: as (severity2) 986* 987* T: $run 988* 989* M: This message may result from an error in the Answering Service, an 990* error in one of the daemon processes, or an attempt by an 991* unauthorized user to signal the daemon user manager. If the NAME, 992* PROJ, and SOURCE cannot be determined, the process ID of the sender 993* is shown instead. The DUT (daemon user table) entry affected is 994* located at YYY|ZZZZ in the Answering Service. 995* 996* The signal is ignored and the Answering Service attempts 997* to continue. If a daemon user is named on the first line of the 998* message, this user will probably be unable to continue. 999* 1000* A: $inform 1001* If the user named 1002* in the message is a daemon user, try typing "logout NAME PROJ 1003* SOURCE", and if this succeeds, log the user in again if 1004* necessary. 1005* 1006* 1007* Message: 1008* login: NAME.PROJ already logged in on SOURCE 1009* 1010* S: as (severity1) 1011* 1012* T: In response to an operator command. 1013* 1014* M: This is the response to the login command if the source 1015* specified by SOURCE is already in use. Each daemon process must have 1016* a different source name. The daemon user is not logged in. Usually, 1017* this message is the result of attempting to perform an operation that 1018* has already been done. 1019* 1020* A: Reissue the command with another source or continue. 1021* 1022* 1023* Message: 1024* daemon_user_manager_: NAME PROJ SOURCE terminated. Daemon will be logged out. 1025* 1026* S: as (severity2) 1027* 1028* T: $run 1029* 1030* M: NAME is the Person_id of the daemon, PROJ is the Project_id of the daemon, and SOURCE is the Message Coordinator 1031* source id of the daemon. The daemon encountered a fatal process error and was logged out to prevent the system from getting 1032* into a loop. 1033* 1034* A: $contact 1035* You can try logging the daemon in again, but if the process error is recurrent 1036* the problem must be corrected before the daemon will operate successfully. 1037* 1038* 1039* Message: 1040* login: no login NAME.PROJ SOURCE REASON 1041* 1042* S: as (severity1) 1043* 1044* T: In response to an operator command. 1045* 1046* M: The operator issued a login NAME PROJ SOURCE command 1047* but the daemon user named cannot be logged in for the reason given. 1048* If REASON is badpers or bad_proj, the NAME or PROJ was 1049* probably misspelled. If REASON is non_daem, the user NAME.PROJ 1050* is not authorized to be a daemon user. 1051* 1052* A: Correct the command if misspelled and try to log in again. 1053* 1054* 1055* Message: 1056* daemon_user_manager_: You cannot new_proc to the requested authorization. 1057* .br 1058* Cannot new_proc to an authorization outside the daemon's allowed range. 1059* 1060* S: as (severity1) 1061* 1062* T: $run 1063* 1064* M: A daemon executed an improper new_proc command, trying to change to 1065* an authorization greater than its maximum allowed authorization, or 1066* less than its minimum allowed authorization, as specified in the 1067* Person Name Table (PNT), System Administrator's Table (SAT) and 1068* Project Master File (PMF). The new_proc is performed at the 1069* original authorization of the process. 1070* 1071* A: $notify_sa 1072* 1073* 1074* Message: 1075* daemon_user_manager_: process PERSON.PROJECT SOURCE ignored trm_ signal. 1076* 1077* S: $as1 1078* 1079* T: $run 1080* 1081* M: The daemon process PERSON.PROJECT using message coordinator SOURCE 1082* had been sent a trm_ signal to cause process termination, but the process 1083* did not respond to the signal. The answering service proceeds with the 1084* bump, new_proc, log out, etc operation. 1085* 1086* A: $ignore 1087* 1088* 1089* Message: 1090* daemon_user_manager_: process PERSON.PROJECT SOURCE ignored wakeup EVENT_MSG from SENDER_PROCESS_ID 1091* 1092* S: $as1 1093* 1094* T: $run 1095* 1096* M: The daemon process PERSON.PROJECT using message coordinator SOURCE 1097* had been sent a wakeup with EVENT_MSG by the process with process_id 1098* SENDER_PROCESS_ID. This event message is unknown and will be ignored. 1099* 1100* A: $ignore 1101* 1102* 1103* Message: 1104* login: Cannot login NAME.PROJ SOURCE 1105* .br 1106* ERROR_MESSAGE 1107* 1108* S: as (severity1) 1109* 1110* T: $run 1111* 1112* M: Illegal login arguments have been given when attempting to log in a daemon user. 1113* No action was taken. 1114* 1115* A: Enter a corrected command. 1116* 1117* 1118* Message: 1119* daemon_user_manager_: premature STOPSTOP for NAME.PROJ SOURCE 1120* 1121* S: as (severity0) 1122* 1123* T: $run 1124* 1125* M: $err 1126* 1127* A: $ignore 1128* 1129* END MESSAGE DOCUMENTATION */ 1130 1131 end daemon_user_manager_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 07/13/88 0938.7 daemon_user_manager_.pl1 >special_ldd>install>MR12.2-1047>daemon_user_manager_.pl1 760 1 08/06/87 0913.4 as_meter_numbers.incl.pl1 >ldd>include>as_meter_numbers.incl.pl1 761 2 08/06/87 0913.4 as_data_.incl.pl1 >ldd>include>as_data_.incl.pl1 762 3 08/06/87 0913.4 as_data_definitions_.incl.pl1 >ldd>include>as_data_definitions_.incl.pl1 763 4 01/21/85 0912.2 as_wakeup_priorities.incl.pl1 >ldd>include>as_wakeup_priorities.incl.pl1 764 5 08/06/87 0912.9 daemon_user_table.incl.pl1 >ldd>include>daemon_user_table.incl.pl1 765 6 08/06/87 0913.4 dialup_values.incl.pl1 >ldd>include>dialup_values.incl.pl1 766 7 06/29/79 1728.0 event_call_info.incl.pl1 >ldd>include>event_call_info.incl.pl1 767 8 08/06/87 0913.4 installation_parms.incl.pl1 >ldd>include>installation_parms.incl.pl1 8-148 9 11/21/79 1458.3 rcp_init_flags.incl.pl1 >ldd>include>rcp_init_flags.incl.pl1 768 10 08/06/87 0913.4 line_types.incl.pl1 >ldd>include>line_types.incl.pl1 769 11 08/06/87 0913.5 sc_stat_.incl.pl1 >ldd>include>sc_stat_.incl.pl1 770 12 08/06/87 0913.5 sc_subsystem_info_.incl.pl1 >ldd>include>sc_subsystem_info_.incl.pl1 771 13 08/06/87 0913.5 sys_log_constants.incl.pl1 >ldd>include>sys_log_constants.incl.pl1 772 14 08/06/87 0913.6 user_attributes.incl.pl1 >ldd>include>user_attributes.incl.pl1 14-112 15 07/13/88 0900.1 user_abs_attributes.incl.pl1 >special_ldd>install>MR12.2-1047>user_abs_attributes.incl.pl1 773 16 07/13/88 0903.2 user_table_entry.incl.pl1 >special_ldd>install>MR12.2-1047>user_table_entry.incl.pl1 774 17 08/06/87 0913.6 user_table_header.incl.pl1 >ldd>include>user_table_header.incl.pl1 NAMES DECLARED IN THIS COMPILATION. IDENTIFIER OFFSET LOC STORAGE CLASS DATA TYPE ATTRIBUTES AND REFERENCES (* indicates a set context) NAMES DECLARED BY DECLARE STATEMENT. DAEMON_LOGIN_PRIO 000135 constant fixed bin(17,0) initial dcl 4-29 set ref 269* DUM_METER 000134 constant fixed bin(17,0) initial dcl 1-21 set ref 232* 343* 380* 443* 652* 723* DUTBL_version_4 constant fixed bin(17,0) initial dcl 5-25 ref 672 LINE_MC constant fixed bin(17,0) initial dcl 10-22 ref 283 696 ME 000042 constant char(32) initial packed unaligned dcl 182 set ref 440* 458* 461* 463* 494* 534* 546* 554* 564* 577* 598* 611* 637* 656* 751* NOW_FREE constant fixed bin(17,0) initial dcl 6-76 ref 264 353 395 NOW_HAS_PROCESS constant fixed bin(17,0) initial dcl 6-76 ref 323 454 683 NOW_LOGGED_IN constant fixed bin(17,0) initial dcl 6-76 ref 304 618 PREEMPT_TERMSGNL_RECEIVED constant fixed bin(17,0) initial dcl 6-132 ref 524 597 PREEMPT_TERM_SENT constant fixed bin(17,0) initial dcl 6-132 ref 523 596 PREEMPT_UNBUMP 005540 constant fixed bin(17,0) initial dcl 6-132 ref 519 PREEMPT_UNBUMP_IGNORE_ALARM constant fixed bin(17,0) initial dcl 6-132 ref 594 PT_DAEMON 000134 constant fixed bin(17,0) initial dcl 16-261 set ref 254* 674 681* SL_LOG 000146 constant fixed bin(17,0) initial dcl 13-14 set ref 246* 262* 263* 294* 299* 310* 314* 403* 407* 421* 546* 554* 564* 577* 598* SL_LOG_BEEP 000144 constant fixed bin(17,0) initial dcl 13-14 set ref 272* 440* 458* 461* 463* 494* 534* 656* 754* SL_LOG_SILENT 000133 constant fixed bin(17,0) initial dcl 13-14 set ref 611* 637* STOPstop 000040 constant char(8) initial dcl 184 set ref 614 STOPstop_msg based fixed bin(71,0) dcl 185 set ref 614* TAG_DAEMON constant char(1) initial packed unaligned dcl 6-93 ref 280 686 UTE_version_4 constant fixed bin(17,0) initial dcl 16-74 ref 673 WAIT_LOGOUT constant fixed bin(17,0) initial dcl 6-25 ref 358 413 502 539 547 563 WAIT_LOGOUT_SIG constant fixed bin(17,0) initial dcl 6-25 ref 324 541 608 WAIT_NEW_PROC constant fixed bin(17,0) initial dcl 6-25 ref 509 552 560 572 585 620 a_code parameter fixed bin(35,0) dcl 88 set ref 209 248* 265* 274* 296* 297 297* 312* 327* 334 348* 367* 628* 658* a_person parameter char packed unaligned dcl 84 ref 209 217 237 372 385 a_project parameter char packed unaligned dcl 85 ref 209 217 238 372 387 a_source parameter char packed unaligned dcl 86 ref 209 217 239 334 347 372 389 a_string parameter char packed unaligned dcl 87 ref 209 217 240 act_ctl_$close_account 000014 constant entry external dcl 123 ref 621 713 act_ctl_$cp 000016 constant entry external dcl 124 ref 321 act_ctl_$dp 000020 constant entry external dcl 125 ref 619 act_ctl_$open_account 000022 constant entry external dcl 126 ref 305 active based fixed bin(17,0) level 2 dcl 16-78 set ref 264* 304* 323* 353 395 454 618* 683* addr builtin function dcl 178 ref 244 258 258 352 394 471 479 533 537 576 582 613 614 675 aim_check_$in_range 000024 constant entry external dcl 127 ref 576 as_check_condition_ 000176 constant entry external dcl 746 ref 748 as_data_$dutp 000156 external static pointer dcl 2-37 set ref 230 231 341 342 378 379 437 438 668* 671 as_data_$mrd_dim 000160 external static char(32) packed unaligned dcl 2-43 ref 287 as_data_$rs_ptrs 000162 external static pointer array dcl 2-49 ref 543 543 560 560 as_data_$signal_types 000166 external static structure level 1 dcl 2-67 as_data_$sysdir 000164 external static char(168) packed unaligned dcl 2-54 ref 689 as_data_$system_signal_types 000170 external static structure level 1 dcl 2-72 as_dump_ 000026 constant entry external dcl 128 ref 755 as_error_table_$bump_cancelled 000140 external static fixed bin(35,0) dcl 168 ref 520 as_error_table_$illegal_new_proc 000136 external static fixed bin(35,0) dcl 167 set ref 577* as_error_table_$illegal_signal 000142 external static fixed bin(35,0) dcl 169 ref 527 as_meter_$enter 000030 constant entry external dcl 129 ref 232 343 380 443 as_meter_$exit 000032 constant entry external dcl 130 ref 652 723 as_procid 10 based bit(36) level 3 dcl 5-29 set ref 451 613* 614* 679* 691 asu_$find_process 000034 constant entry external dcl 131 ref 457 asu_$send_term_signal 000036 constant entry external dcl 132 ref 359 414 512 asu_$start_process 000040 constant entry external dcl 133 ref 326 authorization 0(18) based bit(54) level 2 packed packed unaligned dcl 191 ref 576 582 bad_login_arg_fmt 000100 automatic char(100) packed unaligned dcl 93 set ref 260* 261* baseno builtin function dcl 178 ref 445 445 buff 000131 automatic char(256) packed unaligned dcl 94 set ref 261* 263* buff_len 000231 automatic fixed bin(17,0) dcl 95 set ref 261* channel 341 based pointer level 2 packed packed unaligned dcl 16-78 set ref 286* channel_id based fixed bin(71,0) level 2 dcl 7-7 ref 448 clock builtin function dcl 178 ref 543 550 700 cmd based char(4) level 2 dcl 195 ref 537 code 000232 automatic fixed bin(35,0) dcl 96 set ref 258* 259 260* 265 269* 271 272* 274 290* 296 307* 308 310* 312 314* 401* 402 403 403* 407* 434* 520* 527* 530* 533* 534* 534 613* 614* 668* 669 669* 692* condition_ 000042 constant entry external dcl 134 ref 227 229 340 377 435 condname parameter char packed unaligned dcl 740 set ref 738 748* 751* continue parameter bit(1) packed unaligned dcl 740 set ref 738 748* 749 convert_access_class_$from_string_range 000044 constant entry external dcl 135 ref 692 convert_status_code_ 000046 constant entry external dcl 136 ref 260 coptr parameter pointer dcl 740 ref 738 cpg_$cpg_daemon 000050 constant entry external dcl 137 ref 307 cpu_this_process 356 based fixed bin(71,0) level 2 dcl 16-78 set ref 698* current_size 5 based fixed bin(17,0) level 3 dcl 5-29 set ref 243 350 391 677* daemon_user_manager_$dum_event 000052 constant entry external dcl 138 ref 269 269 data_ptr 6 based pointer level 2 dcl 7-7 ref 444 destroy_flag 421 based fixed bin(17,0) level 2 dcl 16-78 set ref 324* 358* 413* 502* 509* 539* 541 547* 552* 560* 563* 572* 585* 608 620 divide builtin function dcl 178 ref 676 dpg_ 000054 constant entry external dcl 139 ref 734 dpg_$finish 000056 constant entry external dcl 140 ref 617 dum_status 000234 automatic char(8) initial packed unaligned dcl 97 set ref 97* 223* 337* 374* 432* 667* 751* 753* dutbl based structure level 1 dcl 5-29 dutp 000424 automatic pointer initial dcl 5-27 set ref 231* 243 244 342* 350 352 379* 391 394 438* 445 451 613 614 671* 672 673 674 675 675 676 676 677 678 678 679 691 5-27* entry 200 based structure array level 2 dcl 5-29 set ref 244 352 394 675 entry_version 1 based fixed bin(17,0) level 3 dcl 5-29 set ref 673* err_msg 000101 automatic char(120) dcl 745 set ref 751* 754* 755* err_n 000137 automatic fixed bin(17,0) dcl 745 set ref 751* error_table_$action_not_performed 000152 external static fixed bin(35,0) dcl 173 ref 297 628 658 error_table_$namedup 000150 external static fixed bin(35,0) dcl 172 ref 248 error_table_$noentry 000146 external static fixed bin(35,0) dcl 171 ref 367 403 error_table_$out_of_sequence 000144 external static fixed bin(35,0) dcl 170 set ref 664* ev_chn_msgp parameter pointer dcl 89 ref 429 431 ev_msg_string based structure level 1 dcl 195 event 376 based fixed bin(71,0) level 2 dcl 16-78 set ref 269* 516* 590* 613* 614* 730 event_call_info based structure level 1 dcl 7-7 event_call_info_ptr 000426 automatic pointer dcl 7-5 set ref 431* 439 444 448 449 450 463 471 637 fatal_error_loop_count 537 based fixed bin(17,0) level 3 packed packed unaligned dcl 8-33 ref 560 fatal_error_loop_seconds 537(18) based fixed bin(17,0) level 3 packed packed unaligned dcl 8-33 ref 543 first_free 7 based fixed bin(17,0) level 3 dcl 5-29 set ref 678* fixed builtin function dcl 178 ref 450 675 found_one_sw 000236 automatic bit(1) initial dcl 98 set ref 98* 346* 350 356* 367 384* 391 400* 421 fpe_causes_logout 431(17) based bit(1) level 3 packed packed unaligned dcl 16-78 set ref 257* 545 fs_code 1 based fixed bin(17,0) level 2 dcl 195 ref 533 get_authorization_ 000060 constant entry external dcl 141 ref 687 get_process_id_ 000062 constant entry external dcl 142 ref 679 get_ring_ 000064 constant entry external dcl 143 ref 694 group 426 based char(8) level 2 packed packed unaligned dcl 16-78 set ref 704* hbound builtin function dcl 178 ref 490 hcs_$truncate_seg 000066 constant entry external dcl 144 ref 668 hcs_$wakeup 000070 constant entry external dcl 145 ref 613 614 header based structure level 2 dcl 5-29 header_length 3 based fixed bin(17,0) level 3 dcl 5-29 set ref 675* 676 header_version based fixed bin(17,0) level 3 dcl 5-29 set ref 672* hello 000237 automatic char(64) dcl 99 set ref 258* 261* highest_ring 312(18) based fixed bin(17,0) level 2 packed packed unaligned dcl 16-78 set ref 694* home_dir 36 based char(64) level 2 packed packed unaligned dcl 16-78 set ref 689* hphcs_$set_cpu_monitor 000072 constant entry external dcl 146 ref 518 593 i 000257 automatic fixed bin(17,0) dcl 100 set ref 243* 244* 350* 352* 391* 394* 457* 478* 478* 479 479* 482* 485* 485* 486 486* 486 487* 490 490 492 indx 000260 automatic fixed bin(17,0) dcl 101 set ref 241* infoptr parameter pointer dcl 740 ref 738 installation_parms based structure level 1 dcl 8-33 installation_parms_part_1 based structure level 1 dcl 8-40 installation_parms_resource_array_part based structure array level 1 unaligned dcl 8-144 ioa_$rsnnl 000074 constant entry external dcl 147 ref 261 751 ip defined pointer dcl 3-21 ref 543 560 ipc_$decl_ev_call_chn 000076 constant entry external dcl 148 ref 269 last_update_time 366 based fixed bin(71,0) level 2 dcl 16-78 set ref 700* 701 lbound builtin function dcl 178 ref 490 length builtin function dcl 178 ref 282 507 575 587 603 lg_ctl_$daemon_in 000100 constant entry external dcl 149 ref 290 lg_ctl_$daemon_out 000102 constant entry external dcl 150 ref 623 714 lg_ctl_reason 000262 automatic char(8) packed unaligned dcl 102 set ref 290* 292 line_type 336 based fixed bin(17,0) level 2 dcl 16-78 set ref 283* 696* login_result 415 based fixed bin(17,0) level 2 dcl 16-78 ref 291 login_time 402 based fixed bin(71,0) level 2 dcl 16-78 set ref 701* loginline 000264 automatic char(168) dcl 103 set ref 240* 258 258 logout_type 422 based char(4) level 2 packed packed unaligned dcl 16-78 set ref 360* 363* 415* 418* 507* 507 511* 538* 542* 575* 575 587* 587 603* 603 lv_request_$cleanup_process 000106 constant entry external dcl 152 ref 732 lvs_attached 431(03) based bit(1) level 3 packed packed unaligned dcl 16-78 ref 732 max_size 4 based fixed bin(17,0) level 3 dcl 5-29 set ref 676* mc_check_access_$log_daemon_out 000104 constant entry external dcl 151 ref 401 mcptr parameter pointer dcl 740 ref 738 mem_this_process 364 based fixed bin(71,0) level 2 dcl 16-78 set ref 699* message 2 based fixed bin(71,0) level 2 dcl 7-7 set ref 463* 471 637* modes 000336 automatic char(12) dcl 104 set ref 258* n_processes 413 based fixed bin(17,0) level 2 dcl 16-78 set ref 285* 306* 306 702* n_signals 000166 external static fixed bin(17,0) level 2 dcl 2-67 ref 478 479 n_system_signals 000170 external static fixed bin(17,0) level 2 dcl 2-72 ref 485 486 new_proc_auth based structure level 1 dcl 191 non_local 000100 automatic bit(1) packed unaligned dcl 744 set ref 748* 749 np_signal based char(2) level 2 packed packed unaligned dcl 191 ref 479 null builtin function dcl 178 ref 228 230 255 286 341 378 437 439 458 5-27 16-76 711 719 number_free 6 based fixed bin(17,0) level 3 dcl 5-29 set ref 678* origin 5 based structure level 2 dcl 7-7 outer_module 26 based char(32) level 2 packed packed unaligned dcl 16-78 set ref 287* 688* parse_login_line_ 000110 constant entry external dcl 153 ref 258 part_1 based structure level 2 dcl 8-33 person 4 based char(24) level 2 packed packed unaligned dcl 16-78 set ref 246* 278* 294* 299* 397 461* 468 494* 534* 564* 598* 611* 637* 684* preempted 420 based fixed bin(17,0) level 2 dcl 16-78 set ref 519 523 524* 594 596 597* proc_id 276 based bit(36) level 2 dcl 16-78 set ref 452 518* 593* 691* 731* 732* process_authorization 24 based bit(72) level 2 dcl 16-78 set ref 582* 687* process_authorization_range 300 based bit(72) array level 2 dcl 16-78 set ref 576* 692* project 12 based char(12) level 2 packed packed unaligned dcl 16-78 set ref 246* 279* 294* 299* 398 461* 469 494* 534* 564* 598* 611* 637* 685* queue 245 based fixed bin(17,0) level 2 dcl 16-78 set ref 284* 690* rcode 000341 automatic fixed bin(35,0) dcl 105 set ref 731* rcp_init_flags based structure level 1 packed packed unaligned dcl 9-8 rcp_sys_$unassign_process 000112 constant entry external dcl 154 ref 731 reason 000342 automatic char(8) initial packed unaligned dcl 106 set ref 106* 236* 292* 294* 299* 345* 382* 472* 494* 507 534* 538* 542* 575 587 602* 603 734* recent_fatal_error_count 410 based fixed bin(17,0) level 2 dcl 16-78 set ref 551* 559* 559 560 recent_fatal_error_time 406 based fixed bin(71,0) level 2 dcl 16-78 set ref 543 550* rel builtin function dcl 178 ref 675 ring 5(18) based fixed bin(17,0) level 3 packed packed unaligned dcl 7-7 ref 450 sc_stat_$Multics_typed 000174 external static bit(1) dcl 11-62 ref 664 sc_stat_$admin_sci_ptr 000172 external static pointer dcl 11-45 set ref 375* sc_subsystem_info_ptr 000430 automatic pointer dcl 12-22 set ref 375* 401* sender 4 based bit(36) level 2 dcl 7-7 ref 449 signal_type based char(8) dcl 199 ref 471 signals 2 000166 external static char(8) array level 2 packed packed unaligned dcl 2-67 ref 478 size builtin function dcl 178 ref 676 ssu_$get_info_ptr 000114 constant entry external dcl 155 ref 375 star_person_sw 000344 automatic bit(1) dcl 107 set ref 386* 391 397 star_project_sw 000345 automatic bit(1) dcl 108 set ref 388* 391 398 star_source_sw 000346 automatic bit(1) dcl 109 set ref 390* 391 399 static_label 000010 internal static label variable dcl 183 set ref 226* 253* 289* 339* 376* 433* 651* 712 715* 717 720* 722 724* 756 sub_err_ 000116 constant entry external dcl 156 ref 664 669 subroutine_entry 000422 automatic bit(1) initial dcl 202 set ref 202* 214* 221* 248 265 274 293 309 327 338* 628 658 substr builtin function dcl 178 ref 282 507 575 587 603 sys_info$max_seg_size 000154 external static fixed bin(35,0) dcl 174 ref 676 sys_log 000412 automatic entry variable dcl 200 set ref 212* 219* 246 262 263 294 299 sys_log_ 000120 constant entry external dcl 157 ref 212 440 458 461 463 494 546 554 564 598 611 637 754 sys_log_$command 000124 constant entry external dcl 159 ref 219 421 656 sys_log_$command_error 000126 constant entry external dcl 160 ref 220 403 407 sys_log_$error_log 000122 constant entry external dcl 158 ref 213 534 577 sys_log_error 000416 automatic entry variable dcl 201 set ref 213* 220* 272 310 314 system_signals 2 000170 external static char(8) array level 2 packed packed unaligned dcl 2-72 ref 485 t_person 000347 automatic char(28) packed unaligned dcl 110 set ref 237* 240 262* 272* 278 310* 314* 385* 386 397 421* 468* 751* t_project 000356 automatic char(28) packed unaligned dcl 111 set ref 238* 240 262* 272* 279 310* 314* 387* 388 398 421* 469* 751* t_source 000365 automatic char(32) packed unaligned dcl 112 set ref 239* 245 262* 272* 281 282 310* 314* 347* 355 389* 390 399 421* 470* 751* tag 15 based char(1) level 2 packed packed unaligned dcl 16-78 set ref 280* 686* tempp 000376 automatic pointer dcl 113 set ref 457* 458 461 461 461 termstop 000036 constant char(8) initial dcl 186 set ref 613 termstop_msg based fixed bin(71,0) dcl 187 set ref 613* timer_manager_$reset_alarm_wakeup 000130 constant entry external dcl 161 ref 516 590 tty_id_code 337 based char(4) level 2 packed packed unaligned dcl 16-78 set ref 282* 282 697* tty_name 316 based char(32) level 2 packed packed unaligned dcl 16-78 set ref 245 246* 281* 294* 299* 355 399 401 403* 407* 461* 470 494* 534* 564* 598* 611* 637* 695* uflags 431 based structure level 2 dcl 16-78 user_abs_attributes based structure level 1 dcl 15-25 user_attributes based structure level 1 dcl 14-21 user_table_mgr_$allocate 000132 constant entry external dcl 162 ref 254 681 user_table_mgr_$free 000134 constant entry external dcl 163 ref 624 718 user_table_type 2 based fixed bin(17,0) level 3 dcl 5-29 set ref 674* ut_header based structure level 1 dcl 17-16 ute based structure level 1 dcl 16-78 set ref 676 utep 000432 automatic pointer initial dcl 16-76 set ref 228* 244* 245 246 246 246 254* 255 257 258* 264 269 269* 278 279 280 281 282 282 283 284 285 286 287 290* 291 294 294 294 299 299 299 304 305* 306 306 307* 321* 323 324 326* 352* 353 355 358 359* 360 363 394* 395 397 398 399 401 403 407 413 414* 415 418 444* 445 452 454 463* 468 469 470 494 494 494 502 507 507 509 511 512* 516 518 519 523 524 534 534 534 538 539 541 542 543 545 547 550 551 552 559 559 560 560 563 564 564 564 572 575 575 576 582 585 587 587 590 593 594 596 597 598 598 598 603 603 608 611 611 611 613 614 617* 618 619* 620 621* 623* 624* 637 637 637 676 681* 683 684 685 686 687 688 689 690 691 692 694 695 696 697 698 699 700 701 701 702 703 704 16-76* 711 713* 714* 718* 719* 730 731 732 732 734* wakeup_from_as 000400 automatic bit(1) initial dcl 114 set ref 114* 451* wakeup_from_ring_0 000401 automatic bit(1) initial dcl 115 set ref 115* 450* wakeup_from_user 000402 automatic bit(1) initial dcl 116 set ref 116* 452* 477 work_class 425 based fixed bin(17,0) level 2 dcl 16-78 set ref 703* ws_ev_chn 000404 automatic fixed bin(71,0) dcl 117 set ref 448* 730* ws_ev_msg 000406 automatic char(8) packed unaligned dcl 118 set ref 455 456 471* 472 473 478 479 485 530 533 537 576 582 ws_from_procid 000410 automatic bit(36) dcl 119 set ref 449* 451 452 457* 458* 637* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. ABSQ_METER internal static fixed bin(17,0) initial dcl 1-28 ABS_ATTRIBUTE_NAMES internal static varying char(28) initial array dcl 15-38 ABS_DEFER_PRIO internal static fixed bin(17,0) initial dcl 4-35 ABS_FLAG_NAMES internal static varying char(8) initial array dcl 16-326 ABS_LOGIN_PRIO internal static fixed bin(17,0) initial dcl 4-36 ABS_TRYLOG_METER internal static fixed bin(17,0) initial dcl 1-35 ACCTUP_METER internal static fixed bin(17,0) initial dcl 1-26 ACCT_UPDATE_PRIO internal static fixed bin(17,0) initial dcl 4-28 ACTIVE_VALUES internal static char(18) initial array dcl 6-86 ADMIN_METER internal static fixed bin(17,0) initial dcl 1-32 ALT_USER_ATTRIBUTE_NAMES internal static char(20) initial array packed unaligned dcl 14-77 ASINIT_METER internal static fixed bin(17,0) initial dcl 1-19 AS_METER_NAMES internal static char(8) initial array packed unaligned dcl 1-43 AS_REQUEST_PRIO internal static fixed bin(17,0) initial dcl 4-30 AUM_METER internal static fixed bin(17,0) initial dcl 1-22 AU_METER internal static fixed bin(17,0) initial dcl 1-23 Automatic_authentication internal static fixed bin(17,0) initial dcl 9-16 COMMAND_METER internal static fixed bin(17,0) initial dcl 1-30 CORE_FLUSH_PRIO internal static fixed bin(17,0) initial dcl 4-37 CPG_METER internal static fixed bin(17,0) initial dcl 1-24 DERIVE_MASK internal static bit(2) initial packed unaligned dcl 16-280 DIALUP_METER internal static fixed bin(17,0) initial dcl 1-20 DIAL_SERVER_FLAG_NAMES internal static varying char(12) initial array dcl 16-332 DONT_MASK internal static bit(2) initial packed unaligned dcl 16-280 DO_MASK internal static bit(2) initial packed unaligned dcl 16-280 DPG_METER internal static fixed bin(17,0) initial dcl 1-25 FIXPDT_METER internal static fixed bin(17,0) initial dcl 1-34 INSTALL_METER internal static fixed bin(17,0) initial dcl 1-27 INSTALL_PRIO internal static fixed bin(17,0) initial dcl 4-31 INT_LOGIN_PRIO internal static fixed bin(17,0) initial dcl 4-32 LINE_1050 internal static fixed bin(17,0) initial dcl 10-22 LINE_2741 internal static fixed bin(17,0) initial dcl 10-22 LINE_ARDS internal static fixed bin(17,0) initial dcl 10-22 LINE_ASCII internal static fixed bin(17,0) initial dcl 10-22 LINE_ASYNC1 internal static fixed bin(17,0) initial dcl 10-22 LINE_ASYNC2 internal static fixed bin(17,0) initial dcl 10-22 LINE_ASYNC3 internal static fixed bin(17,0) initial dcl 10-22 LINE_BSC internal static fixed bin(17,0) initial dcl 10-22 LINE_COLTS internal static fixed bin(17,0) initial dcl 10-22 LINE_DSA internal static fixed bin(17,0) initial dcl 10-22 LINE_ETX internal static fixed bin(17,0) initial dcl 10-22 LINE_G115 internal static fixed bin(17,0) initial dcl 10-22 LINE_HASP_OPR internal static fixed bin(17,0) initial dcl 10-22 LINE_HDLC internal static fixed bin(17,0) initial dcl 10-22 LINE_POLLED_VIP internal static fixed bin(17,0) initial dcl 10-22 LINE_SYNC1 internal static fixed bin(17,0) initial dcl 10-22 LINE_SYNC2 internal static fixed bin(17,0) initial dcl 10-22 LINE_SYNC3 internal static fixed bin(17,0) initial dcl 10-22 LINE_SYNCH internal static fixed bin(17,0) initial dcl 10-22 LINE_TELNET internal static fixed bin(17,0) initial dcl 10-22 LINE_UNKNOWN internal static fixed bin(17,0) initial dcl 10-22 LINE_VIP internal static fixed bin(17,0) initial dcl 10-22 LINE_X25LAP internal static fixed bin(17,0) initial dcl 10-22 LOGIN_RESULT_VALUES internal static varying char(24) initial array dcl 16-338 MASK_CTL_NAMES internal static varying char(12) initial array dcl 16-284 MC_PRIO internal static fixed bin(17,0) initial dcl 4-25 MPX_LOAD_PRIO internal static fixed bin(17,0) initial dcl 4-33 MSGCORD_METER internal static fixed bin(17,0) initial dcl 1-29 Manual_authentication internal static fixed bin(17,0) initial dcl 9-16 NETUP_METER internal static fixed bin(17,0) initial dcl 1-37 NOW_DIALED internal static fixed bin(17,0) initial dcl 6-76 NOW_DIALED_OUT internal static fixed bin(17,0) initial dcl 6-76 NOW_DIALING internal static fixed bin(17,0) initial dcl 6-76 NOW_HUNG_UP internal static fixed bin(17,0) initial dcl 6-76 NOW_LISTENING internal static fixed bin(17,0) initial dcl 6-76 No_authentication internal static fixed bin(17,0) initial dcl 9-16 Nominal_authentication internal static fixed bin(17,0) initial dcl 9-16 PREEMPT_BUMPED internal static fixed bin(17,0) initial dcl 6-132 PREEMPT_BUMPED_NO_TERM internal static fixed bin(17,0) initial dcl 6-132 PREEMPT_LOAD_CTL internal static fixed bin(17,0) initial dcl 6-132 PREEMPT_VALUES internal static varying char(28) initial array dcl 6-142 PROCESS_TYPE_NAMES internal static varying char(12) initial array dcl 16-265 PT_ABSENTEE internal static fixed bin(17,0) initial dcl 16-261 PT_ALARM internal static fixed bin(17,0) initial dcl 6-106 PT_BUMP internal static fixed bin(17,0) initial dcl 6-106 PT_DESTROY_REQUEST internal static fixed bin(17,0) initial dcl 6-106 PT_DETACH internal static fixed bin(17,0) initial dcl 6-106 PT_FPE internal static fixed bin(17,0) initial dcl 6-106 PT_HANGUP internal static fixed bin(17,0) initial dcl 6-106 PT_INTERACTIVE internal static fixed bin(17,0) initial dcl 16-261 PT_LOGOUT internal static fixed bin(17,0) initial dcl 6-106 PT_NEW_PROC_AUTH internal static fixed bin(17,0) initial dcl 6-106 PT_NEW_PROC_REQUEST internal static fixed bin(17,0) initial dcl 6-106 PT_OPERATOR_TERMINATE internal static fixed bin(17,0) initial dcl 6-106 PT_SHUTDOWN internal static fixed bin(17,0) initial dcl 6-106 PT_UNBUMP internal static fixed bin(17,0) initial dcl 6-106 PW_FLAG_NAMES internal static varying char(12) initial array dcl 16-290 SAC_METER internal static fixed bin(17,0) initial dcl 1-31 SHUTDOWN_PRIO internal static fixed bin(17,0) initial dcl 4-27 SL_INFO_arg_given_in_structure internal static fixed bin(17,0) initial dcl 13-69 SL_INFO_arg_not_given internal static fixed bin(17,0) initial dcl 13-69 SL_INFO_as_mode internal static fixed bin(17,0) initial dcl 13-65 SL_INFO_command_mode internal static fixed bin(17,0) initial dcl 13-65 SL_INFO_version_1 internal static char(8) initial packed unaligned dcl 13-62 SL_LOG_CRASH internal static fixed bin(17,0) initial dcl 13-14 SL_TYPE internal static fixed bin(17,0) initial dcl 13-14 SL_TYPE_BEEP internal static fixed bin(17,0) initial dcl 13-14 SL_TYPE_CRASH internal static fixed bin(17,0) initial dcl 13-14 SSU_METER internal static fixed bin(17,0) initial dcl 1-33 STATE_VALUES internal static char(15) initial array dcl 6-70 SYSERR_COPY_PRIO internal static fixed bin(17,0) initial dcl 4-26 TABLE_NAMES internal static char(20) initial array packed unaligned dcl 16-271 TAG_ABSENTEE internal static char(1) initial packed unaligned dcl 6-93 TAG_INTERACTIVE internal static char(1) initial packed unaligned dcl 6-93 TAG_PROXY internal static char(1) initial packed unaligned dcl 6-93 TAG_UFT internal static char(1) initial packed unaligned dcl 6-93 TRA_VEC_VALUES internal static char(32) initial array dcl 6-54 TTY_DIALED internal static fixed bin(17,0) initial dcl 6-64 TTY_HUNG internal static fixed bin(17,0) initial dcl 6-64 TTY_KNOWN internal static fixed bin(17,0) initial dcl 6-64 TTY_MASKED internal static fixed bin(17,0) initial dcl 6-64 UFLAG_NAMES internal static varying char(24) initial array dcl 16-303 USER_ATTRIBUTES_always_allowed internal static bit(36) initial dcl 14-100 USER_ATTRIBUTES_default_in_pdt internal static bit(36) initial dcl 14-104 USER_ATTRIBUTES_settable_by_user internal static bit(36) initial dcl 14-108 USER_ATTRIBUTE_NAMES internal static char(20) initial array packed unaligned dcl 14-50 WAIT_ANSWERBACK internal static fixed bin(17,0) initial dcl 6-25 WAIT_BEFORE_HANGUP internal static fixed bin(17,0) initial dcl 6-25 WAIT_CONNECT_REQUEST internal static fixed bin(17,0) initial dcl 6-25 WAIT_DELETE_CHANNEL internal static fixed bin(17,0) initial dcl 6-25 WAIT_DESTROY_REQUEST internal static fixed bin(17,0) initial dcl 6-25 WAIT_DETACH internal static fixed bin(17,0) initial dcl 6-25 WAIT_DIALUP internal static fixed bin(17,0) initial dcl 6-25 WAIT_DIAL_OUT internal static fixed bin(17,0) initial dcl 6-25 WAIT_DIAL_RELEASE internal static fixed bin(17,0) initial dcl 6-25 WAIT_DISCARD_WAKEUPS internal static fixed bin(17,0) initial dcl 6-25 WAIT_FIN_PRIV_ATTACH internal static fixed bin(17,0) initial dcl 6-25 WAIT_FIN_TANDD_ATTACH internal static fixed bin(17,0) initial dcl 6-25 WAIT_GREETING_MSG internal static fixed bin(17,0) initial dcl 6-25 WAIT_HANGUP internal static fixed bin(17,0) initial dcl 6-25 WAIT_LOGIN_ARGS internal static fixed bin(17,0) initial dcl 6-25 WAIT_LOGIN_LINE internal static fixed bin(17,0) initial dcl 6-25 WAIT_LOGOUT_HOLD internal static fixed bin(17,0) initial dcl 6-25 WAIT_NEW_PASSWORD internal static fixed bin(17,0) initial dcl 6-25 WAIT_NEW_PROC_REQUEST internal static fixed bin(17,0) initial dcl 6-25 WAIT_OLD_PASSWORD internal static fixed bin(17,0) initial dcl 6-25 WAIT_PASSWORD internal static fixed bin(17,0) initial dcl 6-25 WAIT_REMOVE internal static fixed bin(17,0) initial dcl 6-25 WAIT_SLAVE_REQUEST internal static fixed bin(17,0) initial dcl 6-25 WAIT_TANDD_HANGUP internal static fixed bin(17,0) initial dcl 6-25 as_data_$BS external static char(1) dcl 2-21 as_data_$CR external static char(1) dcl 2-22 as_data_$abs_dim external static char(32) packed unaligned dcl 2-23 as_data_$acct_update_priority external static fixed bin(17,0) dcl 2-24 as_data_$acsdir external static char(168) packed unaligned dcl 2-25 as_data_$ansp external static pointer dcl 2-26 as_data_$as_procid external static bit(36) dcl 2-27 as_data_$as_ring external static fixed bin(3,0) dcl 2-28 as_data_$as_tty automatic char(6) packed unaligned dcl 2-29 as_data_$asmtp external static pointer dcl 2-30 as_data_$autp external static pointer dcl 2-31 as_data_$buzzardp external static pointer dcl 2-32 as_data_$cdtp external static pointer dcl 2-33 as_data_$debug_flag external static bit(1) dcl 2-84 as_data_$default_weight external static fixed bin(35,0) dcl 2-34 as_data_$devtabp external static pointer dcl 2-35 as_data_$dft_user_ring external static fixed bin(3,0) dcl 2-36 as_data_$g115_dim external static char(32) packed unaligned dcl 2-38 as_data_$lct_initialized external static bit(1) dcl 2-39 as_data_$lct_size external static fixed bin(17,0) dcl 2-40 as_data_$login_args external static structure level 1 dcl 2-62 as_data_$login_words external static fixed bin(17,0) dcl 2-77 as_data_$ls_message_buffer_cur_lth external static fixed bin(18,0) dcl 2-86 as_data_$ls_message_buffer_max_lth external static fixed bin(18,0) dcl 2-87 as_data_$ls_message_buffer_ptr external static pointer dcl 2-88 as_data_$ls_request_server_info_ptr external static pointer dcl 2-85 as_data_$max_user_ring external static fixed bin(3,0) dcl 2-41 as_data_$mgtp external static pointer dcl 2-42 as_data_$ntty_dim external static char(32) packed unaligned dcl 2-44 as_data_$pdtdir external static char(168) packed unaligned dcl 2-45 as_data_$pit_ptr external static pointer dcl 2-46 as_data_$rcpdir external static char(168) packed unaligned dcl 2-47 as_data_$request_priority external static fixed bin(17,0) dcl 2-48 as_data_$rtdtp external static pointer dcl 2-50 as_data_$sat_htp external static pointer dcl 2-51 as_data_$satp external static pointer dcl 2-52 as_data_$suffix external static char(2) array packed unaligned dcl 2-53 as_data_$teens_suffix external static char(2) array packed unaligned dcl 2-55 as_data_$terminet_tabs_string external static varying char(144) dcl 2-56 as_data_$tty_dim external static char(32) packed unaligned dcl 2-57 as_data_$update_priority external static fixed bin(17,0) dcl 2-58 as_data_$version external static char(8) packed unaligned dcl 2-59 as_data_$whoptr external static pointer dcl 2-60 as_data_login_words based structure level 1 dcl 2-77 as_procid defined bit(36) dcl 3-17 as_tty based char(6) packed unaligned dcl 3-18 asmtp defined pointer dcl 3-19 authentication_level_names internal static char(12) initial array packed unaligned dcl 9-21 devtabp defined pointer dcl 3-20 installation_parms_version_1 internal static fixed bin(17,0) initial dcl 8-37 installation_parms_version_2 internal static fixed bin(17,0) initial dcl 8-38 line_types internal static char(16) initial array packed unaligned dcl 10-54 max_line_type internal static fixed bin(17,0) initial dcl 10-48 mgtp defined pointer dcl 3-22 n_sync_line_types internal static fixed bin(17,0) initial dcl 10-50 pdtdir based char(168) packed unaligned dcl 3-23 recursion_possible internal static bit(18) initial packed unaligned dcl 1-39 rifp automatic pointer dcl 9-6 rs_ptrs based pointer array dcl 3-24 sat_htp defined pointer dcl 3-25 satp defined pointer dcl 3-26 sc_request_flags based structure level 1 packed packed unaligned dcl 12-55 sc_rf_ptr automatic pointer dcl 12-54 sc_ss_area based area(1024) dcl 12-50 sc_stat_$Go external static bit(1) dcl 11-62 sc_stat_$Go_typed external static bit(1) dcl 11-62 sc_stat_$Multics external static bit(1) dcl 11-62 sc_stat_$Star_typed external static bit(1) dcl 11-62 sc_stat_$admin_listener_exit_label external static label variable dcl 11-34 sc_stat_$admin_listener_switch external static bit(1) dcl 11-62 sc_stat_$admin_log_iocb external static pointer dcl 11-45 sc_stat_$admin_log_write_ptr external static pointer dcl 11-45 sc_stat_$as_log_write_ptr external static pointer dcl 11-45 sc_stat_$did_part1 external static bit(1) dcl 11-62 sc_stat_$did_part2 external static bit(1) dcl 11-62 sc_stat_$did_part3 external static bit(1) dcl 11-62 sc_stat_$exec_access_name external static char(32) packed unaligned dcl 11-15 sc_stat_$info_dir external static char(168) packed unaligned dcl 11-21 sc_stat_$initzer_ttyp external static pointer dcl 11-45 sc_stat_$log_dir external static char(168) packed unaligned dcl 11-21 sc_stat_$master_abort_label external static label variable dcl 11-34 sc_stat_$master_channel external static char(6) dcl 11-29 sc_stat_$master_iocb external static pointer dcl 11-45 sc_stat_$master_sci_ptr external static pointer dcl 11-45 sc_stat_$mc_acs_dir external static char(168) packed unaligned dcl 11-21 sc_stat_$mc_ansp external static pointer dcl 11-45 sc_stat_$mc_iocb external static pointer dcl 11-45 sc_stat_$mc_is_on external static bit(1) dcl 11-62 sc_stat_$no_operator_login external static bit(1) dcl 11-62 sc_stat_$shutdown_typed external static bit(1) dcl 11-62 sc_stat_$sv1_iocb external static pointer dcl 11-45 sc_stat_$sv2_iocb external static pointer dcl 11-45 sc_stat_$sv3_iocb external static pointer dcl 11-45 sc_stat_$sysdir external static char(168) packed unaligned dcl 11-21 sc_stat_$system_shutdown_label external static label variable dcl 11-34 sc_stat_$test_mode external static bit(1) dcl 11-62 sc_stat_$unidentified_access_name external static char(32) packed unaligned dcl 11-15 sc_stat_$vchn_requires_accept external static bit(1) dcl 11-62 sc_subsystem_info based structure level 1 dcl 12-23 scdtp defined pointer dcl 3-27 sl_info automatic structure level 1 dcl 13-24 sl_info_code_msg internal static structure level 1 dcl 13-187 sl_info_msg internal static structure level 1 dcl 13-214 sl_info_sev_code_label_msg internal static structure level 1 dcl 13-161 sl_info_sev_code_msg internal static structure level 1 dcl 13-82 sl_info_sev_coded_msg internal static structure level 1 dcl 13-134 sl_info_sev_msg internal static structure level 1 dcl 13-108 sync_line_type internal static fixed bin(17,0) initial array dcl 10-52 sysdir defined char(168) packed unaligned dcl 3-28 whoptr defined pointer dcl 3-29 NAMES DECLARED BY EXPLICIT CONTEXT. backout_1 004505 constant label dcl 624 ref 253 266 275 301 715 717 backout_2 004467 constant label dcl 621 ref 289 318 712 cleaner_up 005145 constant entry internal dcl 708 ref 229 229 create_another_new_proc 004025 constant label dcl 552 daemon_user_manager_ 000637 constant entry external dcl 46 destroy_process 005304 constant entry internal dcl 729 ref 361 416 512 633 dum_event 003011 constant entry external dcl 429 event_logout 004523 constant label dcl 633 ref 508 525 570 579 583 588 604 evil 003175 constant label dcl 457 ref 446 452 exit 004576 constant label dcl 651 set ref 249 255 329 369 423 465 514 594 615 626 631 635 init 004643 constant entry external dcl 662 l_cpg_ 001754 constant label dcl 306 ref 620 log_ignored_msg 004525 constant label dcl 637 ref 455 456 490 596 login 000730 constant entry external dcl 217 login_ 000653 constant entry external dcl 209 login_common 000774 constant label dcl 223 ref 215 logout 002340 constant entry external dcl 372 logout_28a 003650 constant label dcl 534 ref 528 logout_get_next 002746 constant label dcl 419 ref 395 397 398 399 410 logout_handler 000000 constant label array(29) dcl 494 set ref 490 490 492 521 logout_nacc_get_next 002324 constant label dcl 364 ref 353 355 logout_part_two 004323 constant label dcl 608 ref 473 logout_source_no_access_check 002142 constant entry external dcl 334 no_init 004611 constant label dcl 656 ref 230 341 378 437 retr 004610 constant label dcl 653 set ref 651 722 724 ucs 005353 constant entry internal dcl 738 ref 227 227 340 340 377 377 435 435 ucs_return 004515 constant label dcl 628 ref 226 339 376 433 720 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 6540 6740 5544 6550 Length 7710 5544 200 733 774 4 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME daemon_user_manager_ 464 external procedure is an external procedure. cleaner_up 68 internal procedure is assigned to an entry variable. destroy_process internal procedure shares stack frame of external procedure daemon_user_manager_. ucs 150 internal procedure is assigned to an entry variable. STORAGE FOR INTERNAL STATIC VARIABLES. LOC IDENTIFIER BLOCK NAME 000010 static_label daemon_user_manager_ STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME daemon_user_manager_ 000100 bad_login_arg_fmt daemon_user_manager_ 000131 buff daemon_user_manager_ 000231 buff_len daemon_user_manager_ 000232 code daemon_user_manager_ 000234 dum_status daemon_user_manager_ 000236 found_one_sw daemon_user_manager_ 000237 hello daemon_user_manager_ 000257 i daemon_user_manager_ 000260 indx daemon_user_manager_ 000262 lg_ctl_reason daemon_user_manager_ 000264 loginline daemon_user_manager_ 000336 modes daemon_user_manager_ 000341 rcode daemon_user_manager_ 000342 reason daemon_user_manager_ 000344 star_person_sw daemon_user_manager_ 000345 star_project_sw daemon_user_manager_ 000346 star_source_sw daemon_user_manager_ 000347 t_person daemon_user_manager_ 000356 t_project daemon_user_manager_ 000365 t_source daemon_user_manager_ 000376 tempp daemon_user_manager_ 000400 wakeup_from_as daemon_user_manager_ 000401 wakeup_from_ring_0 daemon_user_manager_ 000402 wakeup_from_user daemon_user_manager_ 000404 ws_ev_chn daemon_user_manager_ 000406 ws_ev_msg daemon_user_manager_ 000410 ws_from_procid daemon_user_manager_ 000412 sys_log daemon_user_manager_ 000416 sys_log_error daemon_user_manager_ 000422 subroutine_entry daemon_user_manager_ 000424 dutp daemon_user_manager_ 000426 event_call_info_ptr daemon_user_manager_ 000430 sc_subsystem_info_ptr daemon_user_manager_ 000432 utep daemon_user_manager_ ucs 000100 non_local ucs 000101 err_msg ucs 000137 err_n ucs THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. r_e_as alloc_char_temp cat_realloc_chars call_ent_var_desc call_ext_out_desc call_ext_out return_mac move_label_var make_label_var tra_ext_2 shorten_stack ext_entry ext_entry_desc int_entry int_entry_desc divide_fx3 clock_mac THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. act_ctl_$close_account act_ctl_$cp act_ctl_$dp act_ctl_$open_account aim_check_$in_range as_check_condition_ as_dump_ as_meter_$enter as_meter_$exit asu_$find_process asu_$send_term_signal asu_$start_process condition_ convert_access_class_$from_string_range convert_status_code_ cpg_$cpg_daemon daemon_user_manager_$dum_event dpg_ dpg_$finish get_authorization_ get_process_id_ get_ring_ hcs_$truncate_seg hcs_$wakeup hphcs_$set_cpu_monitor ioa_$rsnnl ipc_$decl_ev_call_chn lg_ctl_$daemon_in lg_ctl_$daemon_out lv_request_$cleanup_process mc_check_access_$log_daemon_out parse_login_line_ rcp_sys_$unassign_process ssu_$get_info_ptr sub_err_ sys_log_ sys_log_$command sys_log_$command_error sys_log_$error_log timer_manager_$reset_alarm_wakeup user_table_mgr_$allocate user_table_mgr_$free THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. as_data_$dutp as_data_$mrd_dim as_data_$rs_ptrs as_data_$signal_types as_data_$sysdir as_data_$system_signal_types as_error_table_$bump_cancelled as_error_table_$illegal_new_proc as_error_table_$illegal_signal error_table_$action_not_performed error_table_$namedup error_table_$noentry error_table_$out_of_sequence sc_stat_$Multics_typed sc_stat_$admin_sci_ptr sys_info$max_seg_size LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 97 000621 98 000623 106 000624 114 000625 115 000626 116 000627 202 000630 5 27 000631 16 76 000633 46 000636 209 000645 212 000710 213 000715 214 000720 215 000722 217 000723 219 000763 220 000770 221 000773 223 000774 226 000776 227 001001 228 001024 229 001026 230 001050 231 001055 232 001060 236 001066 237 001070 238 001076 239 001103 240 001113 241 001152 243 001154 244 001165 245 001171 246 001175 248 001230 249 001235 251 001236 253 001240 254 001244 255 001254 257 001260 258 001263 259 001323 260 001325 261 001346 262 001373 263 001425 264 001441 265 001443 266 001447 269 001450 271 001474 272 001476 274 001542 275 001546 278 001547 279 001553 280 001560 281 001562 282 001565 283 001567 284 001571 285 001573 286 001574 287 001576 289 001603 290 001606 291 001626 292 001631 293 001633 294 001635 296 001674 297 001676 298 001702 299 001703 301 001742 304 001743 305 001745 306 001754 307 001756 308 001767 309 001771 310 001773 312 002037 313 002041 314 002042 318 002106 321 002107 323 002116 324 002120 326 002123 327 002132 329 002135 334 002136 337 002160 338 002162 339 002164 340 002170 341 002213 342 002220 343 002223 345 002231 346 002233 347 002234 348 002244 350 002245 352 002257 353 002263 355 002265 356 002271 358 002273 359 002275 360 002314 361 002317 362 002320 363 002321 364 002324 367 002326 369 002333 372 002334 374 002366 375 002370 376 002401 377 002405 378 002430 379 002435 380 002440 382 002446 384 002450 385 002451 386 002457 387 002464 388 002471 389 002476 390 002506 391 002513 394 002533 395 002537 397 002541 398 002547 399 002555 400 002563 401 002565 402 002611 403 002613 407 002655 410 002713 413 002714 414 002717 415 002736 416 002741 417 002742 418 002743 419 002746 421 002750 423 003005 429 003006 431 003017 432 003023 433 003025 434 003031 435 003032 437 003055 438 003062 439 003065 440 003071 441 003114 443 003115 444 003123 445 003126 446 003135 448 003136 449 003140 450 003143 451 003152 452 003161 454 003165 455 003170 456 003173 457 003175 458 003210 461 003245 463 003305 465 003342 468 003343 469 003346 470 003351 471 003354 472 003357 473 003360 477 003362 478 003364 478 003406 479 003410 482 003423 483 003425 485 003426 485 003450 486 003452 487 003461 490 003463 492 003470 494 003471 502 003535 507 003540 508 003542 509 003543 511 003546 512 003550 514 003570 516 003571 518 003601 519 003620 520 003624 521 003627 523 003630 524 003632 525 003634 527 003635 528 003640 530 003641 533 003646 534 003650 537 003727 538 003732 539 003737 540 003741 541 003742 542 003746 543 003752 545 003767 546 003772 547 004015 548 004020 550 004021 551 004023 552 004025 554 004027 556 004053 559 004054 560 004055 563 004064 564 004066 570 004124 572 004125 575 004130 576 004132 577 004153 579 004203 582 004204 583 004211 585 004212 587 004215 588 004217 590 004220 593 004230 594 004247 596 004252 597 004254 598 004256 602 004315 603 004317 604 004322 608 004323 611 004327 613 004366 614 004414 615 004442 617 004443 618 004452 619 004454 620 004463 621 004467 623 004476 624 004505 626 004514 628 004515 631 004522 633 004523 635 004524 637 004525 651 004576 652 004602 653 004610 656 004611 658 004634 660 004641 662 004642 664 004651 667 004701 668 004703 669 004717 671 004747 672 004753 673 004755 674 004760 675 004762 676 004766 677 004777 678 005000 679 005002 681 005011 683 005022 684 005024 685 005030 686 005033 687 005035 688 005044 689 005050 690 005055 691 005057 692 005062 694 005105 695 005117 696 005122 697 005124 698 005126 699 005130 700 005131 701 005134 702 005135 703 005137 704 005140 706 005143 708 005144 711 005152 712 005157 713 005173 714 005201 715 005211 717 005217 718 005233 719 005242 720 005245 722 005253 723 005267 724 005275 726 005303 729 005304 730 005305 731 005310 732 005321 734 005334 735 005351 738 005352 748 005366 749 005406 751 005417 753 005473 754 005476 755 005521 756 005532 ----------------------------------------------------------- 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