COMPILATION LISTING OF SEGMENT asu_ Compiled by: Multics PL/I Compiler, Release 31b, of April 24, 1989 Compiled at: Bull HN, Phoenix AZ, System-M Compiled on: 05/02/89 1154.2 mst Tue Options: optimize map 1 /****^ *********************************************************** 2* * * 3* * Copyright, (C) BULL HN Information Systems Inc., 1989 * 4* * * 5* * Copyright, (C) Honeywell Bull Inc., 1987 * 6* * * 7* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 8* * * 9* * Copyright (c) 1972 by Massachusetts Institute of * 10* * Technology and Honeywell Information Systems, Inc. * 11* * * 12* *********************************************************** */ 13 14 /****^ HISTORY COMMENTS: 15* 1) change(86-01-29,Herbst), approve(87-07-13,MCR7697), 16* audit(87-07-23,Brunelle), install(87-08-04,MR12.1-1055): 17* Changed internal procedure BLAST_CHANNEL to BLAST_USER. 18* Changed $blast_user to pass initial ring number to send_system_message_. 19* 2) change(86-03-11,MSharpe), approve(87-07-13,MCR7690), 20* audit(87-07-23,Brunelle), install(87-08-04,MR12.1-1055): 21* initiated P_code to 0 in "bump_user", so that it doesn't return a non-zero 22* code that it has received from the caller. 23* 3) change(86-05-13,GJohnson), approve(86-05-13,MCR7387), 24* audit(86-05-13,Martinson), install(86-05-14,MR12.0-1055): 25* Correct error message documentation. 26* 4) change(86-06-30,Swenson), approve(87-07-13,MCR7737), 27* audit(87-07-23,Brunelle), install(87-08-04,MR12.1-1055): 28* Added $setup_login_server_handle entry to initialize the handle in the 29* UTE. 30* 5) change(87-02-24,Brunelle), approve(87-07-13,MCR7697), 31* audit(87-07-23,GDixon), install(87-08-04,MR12.1-1055): 32* Added parameter to internal procedure $BLAST_USER to signal whether this 33* is a INACTIVITY or WARN message. 34* 6) change(87-04-09,Brunelle), approve(87-07-13,MCR7697), 35* audit(87-07-23,GDixon), install(87-08-04,MR12.1-1055): 36* Added entrypoint $reschedule_bump_timer to cancel the current bump timer 37* and reschedule to new time. 38* 7) change(87-04-27,GDixon), approve(87-07-13,MCR7741), 39* audit(87-07-23,Brunelle), install(87-08-04,MR12.1-1055): 40* Upgraded for change to answer_table.incl.pl1 and user_table_entry.incl.pl1 41* 8) change(87-05-06,Brunelle), approve(87-07-13,MCR7697), 42* audit(87-07-23,GDixon), install(87-08-04,MR12.1-1055): 43* Fixed call to BLAST_USER in blast_user entrypoint to pass P_utep instead 44* of utep. 45* 9) change(87-07-16,GDixon), approve(87-07-16,MCR7741), 46* audit(87-07-23,Brunelle), install(87-08-04,MR12.1-1055): 47* A) Use named constants when testing ute.preempted. 48* 10) change(87-07-22,GDixon), approve(87-07-22,MCR7741), 49* audit(87-07-23,Brunelle), install(87-08-04,MR12.1-1055): 50* A) Correct several minor errors found during auditing. 51* B) Document undoc's sys_log_ calls. 52* 11) change(88-07-15,Brunelle), approve(88-09-13,MCR7980), 53* audit(88-09-13,Beattie), install(88-09-16,MR12.2-1112): 54* Pass entire UTE to send_system_message_ so it can get whatever info it 55* needs about the user. 56* 12) change(88-12-09,Parisek), approve(89-04-05,MCR8086), 57* audit(88-04-25,Beattie), install(89-05-02,MR12.3-1038): 58* Release the UTE associated with a terminal in a login connect loop 59* when the channel associated with that terminal is removed via the 60* "remove" request. 61* END HISTORY COMMENTS */ 62 63 /* format: style4 */ 64 65 asu_: 66 procedure (); 67 68 /* Answering service utility package 69* 70* Coded by Michael D. Schroeder, June 1969 71* Revised for new System/User Control, and converted to PL/1 72* by Michael J. Spier, January 1970 73* Modified 750225 by PG to change calls to astty_$tty_order to pass argument pointer, 74* . and to create astty_$tty_changemode. 75* Modified 750228 by PG to log all errors in asu_attach and asu_listen, and then remove line. 76* Modified 750502 by PG to add asu_$reset 77* Modified 750616 by PG to completely rewrite asu_attach, fixing several bugs 78* Modified 750821 by PG & THVV for CDT 79* Modified 760625 by Roy P. Planalp to introduce calls to network module ftp_dialup_ 80* . which performs the function of AS module dialup_ for Network FTP channels 81* Modified 760819 by Roy Planalp to send ftp-format msgs when bumping or writing to ftp users, 82* and to add utility routine to format ftp msgs. 83* Modified August 1976 by T. Casey to make attach and attach_channel handle case of FNP not being up yet. 84* Modified October 1976 by T. Casey to fix bug in error handling in attach. 85* Modified September 1977 by T. Casey to fix bugs and make channel deletions reversible during the same bootload. 86* Modified October 1977 by T. Casey to add send_term_signal entry. 87* Modified January 1978 by T. Casey to fix bugs in previous modification. 88* Modified May 1978 by T. Casey to add check_for_stopped_process entry, and to 89* . preserve privileged attachments of slave channels across FNP crashes, 90* . by having the listen entry point check for that case. 91* Modified Fall 1978 by L.E.Johnson for ring zero demultiplexing. 92* Modified March 1979 by T. Casey for MR7.0a to add suspend_process and release_suspended_process entries. 93* Modified July 1979 by T. Casey for MR8.0 to support process preservation across hangups. 94* Modified December 1980 by E. N. Kittlitz for bugfixes 95* Modified March 1981 by Robert Coren to check for TANDD service type 96* Modified June 1981 by T. Casey for MR9.0 for new wakeup priorities. 97* Modified November 1981, E. N. Kittlitz. user_table_entry conversion. 98* Modified December 1981, E. N. Kittlitz. whotab suspended/disconnected bits. 99* Modified May 1982, E. N. Kittlitz. New AS initialization. 100* Modified June 1982, B. I. Margulies, protect multiplexers from removes. 101* Modified 84-04-02, BIM, remove references to cdte.dim 102* and add reset_access_class. 103* Modified 1984-08-07 BIM to reset_access_class at attach_channel 104* and to give up as soon as we get a hangup error. 105* Modified 84-10-03 by E. Swenson to incorporate Jim Falksen's changes 106* for date_time_$format. 107* Modified 84-11-27 by E. Swenson for new IPC validation. Adds entry 108* start_process which kicks a process out of the intitial blocked 109* state. 110* Modified 85-02-13 by E. Swenson for asu_$blast_user, asu_$blast_channel. 111* Modified 85-11-18 by Steve Herbst to make $blast_user call send_system_message_. 112**/ 113 114 /* Parameters */ 115 116 dcl P_code fixed bin (35) parameter; 117 dcl P_error_message char (*) parameter; /* error message for caller */ 118 dcl P_message char (*) parameter; /* message to blast on terminal */ 119 dcl P_utep ptr parameter; 120 121 dcl (bv_ptr_1 ptr, /* pointer which appears in parameter position 1 */ 122 p2 ptr, 123 bv_code_2 fixed bin (35), /* error code which appears in parameter position 2 */ 124 bv_tty_name char (*) /* argument to asu_attach */ 125 ) parameter; 126 127 /* Conditions */ 128 129 dcl cleanup condition; 130 131 /* Builtins */ 132 133 dcl (addr, baseno, bit, clock, divide, index, length, mod, null, rtrim, substr, unspec) builtin; 134 135 /* Entries */ 136 137 dcl aim_check_$equal entry (bit (72) aligned, bit (72) aligned) returns (bit (1) aligned); 138 dcl astty_$tty_detach entry (ptr, fixed bin, fixed bin (35)); 139 dcl astty_$tty_event entry (ptr, fixed bin (35)); 140 dcl astty_$tty_force entry (ptr, ptr, fixed bin, fixed bin (35)); 141 dcl astty_$tty_index entry (ptr, fixed bin (35)); 142 dcl astty_$tty_order entry (ptr, char (*), ptr, fixed bin (35)); 143 dcl astty_$tty_state entry (ptr, fixed bin (35)); 144 dcl asu_$asu_listen entry (ptr, fixed bin (35)); 145 dcl asu_$attach_channel entry (ptr, fixed bin (35)); 146 dcl asu_$release_ate entry (ptr, fixed bin (35)); 147 dcl asu_$channel_in_use entry (ptr) returns (bit (1) aligned); 148 dcl convert_status_code_ entry (fixed bin (35), char (*) aligned, char (*) aligned); 149 dcl date_time_$format entry (char (*), fixed bin (71), char (*), char (*)) returns (char (250) var); 150 dcl dial_ctl_$dial_term entry (ptr); 151 dcl dialup_ entry; 152 dcl dpg_ entry (ptr, char (*)); 153 dcl ftp_dialup_ entry; 154 dcl ftp_dialup_$init entry; 155 dcl get_system_free_area_ entry () returns (ptr); 156 dcl hcs_$set_ips_mask entry (bit (36) aligned, bit (36) aligned); 157 dcl hcs_$wakeup entry (bit (36) aligned, fixed bin (71), fixed bin (71), fixed bin (35)); 158 dcl hphcs_$get_ipc_operands entry (bit (36) aligned, fixed bin (18), fixed bin (35), fixed bin (35)); 159 dcl hphcs_$ips_wakeup entry (bit (36) aligned, char (*)); 160 dcl hphcs_$process_status entry (ptr); 161 dcl hphcs_$set_cpu_monitor entry (bit (36) aligned, fixed bin (71), fixed bin (35)); 162 dcl (ioa_$rsnnl, ioa_$rs) entry options (variable); 163 dcl ipc_$create_ev_chn entry (fixed bin (71), fixed bin (35)); 164 dcl ipc_$decl_ev_call_chn entry (fixed bin (71), entry, ptr, fixed bin, fixed bin (35)); 165 dcl ipc_$drain_chn entry (fixed bin (71), fixed bin (35)); 166 dcl ipc_$unmask_ev_calls entry (fixed bin (35)); 167 dcl ipc_validate_$encode_event_channel_name entry (fixed bin (18), fixed bin (35), bit (3) aligned, fixed bin (15), 168 fixed bin (3), bit (1) aligned, fixed bin (18), fixed bin (71)); 169 dcl send_system_message_ entry (ptr, ptr, fixed bin (35)); 170 dcl sub_err_ entry () options (variable); 171 dcl sys_log_ entry options (variable); 172 dcl sys_log_$error_log entry options (variable); 173 dcl timer_manager_$alarm_wakeup entry (fixed bin (71), bit (2), fixed bin (71)); 174 dcl timer_manager_$reset_alarm_wakeup entry (fixed bin (71)); 175 dcl user_table_mgr_$allocate entry (fixed bin) returns (ptr); 176 dcl user_table_mgr_$free entry (ptr); 177 178 /* External */ 179 180 dcl (as_error_table_$bump_mins_msg, 181 as_error_table_$bump_secs_msg, 182 as_error_table_$from_multics_msg, 183 as_error_table_$inactive, 184 as_error_table_$tty_already, 185 as_error_table_$tty_dim_err, 186 as_error_table_$tty_is_master, 187 as_error_table_$tty_no_room, 188 as_error_table_$warn_msg) fixed bin (35) external; 189 190 dcl (error_table_$action_not_performed, 191 error_table_$null_info_ptr, 192 error_table_$out_of_sequence, 193 error_table_$undefined_order_request) fixed bin (35) ext static; 194 195 /* Based */ 196 197 dcl based_area area based (get_system_free_area_ ()); 198 199 /* Constants */ 200 201 dcl ME char (32) initial ("asu_") internal static options (constant); 202 dcl NL char (1) aligned int static options (constant) init (" 203 "); 204 205 /* Internal Static */ 206 207 dcl ftp_dialup_init bit (1) int static init ("0"b); 208 dcl (from_mx_fmt, bump_min_fmt, bump_sec_fmt) char (100) aligned int static; 209 210 /* Automatic */ 211 212 dcl activity_can_unbump bit (1) aligned init ("0"b); /* controls ate field */ 213 dcl bump_added_info char (32); /* for bump_mins and bump_secs */ 214 dcl cdtex fixed bin; 215 dcl code fixed bin (35); 216 dcl entry_name char (32) varying; /* for printing entry point name in error messages */ 217 dcl error_message char (256) automatic; 218 dcl (i, savi) fixed bin; /* temps */ 219 dcl just_listen bit (1) aligned; 220 dcl lng fixed bin; /* temp */ 221 dcl long char (100) aligned; /* Used by write_message to get message */ 222 dcl msg char (150) aligned, mstring char (200) aligned; /* temps */ 223 dcl multics_msg_date char (64) varying; /* for from_multics_msg */ 224 dcl old_ips_mask bit (36) aligned; /* former IPS mask */ 225 dcl old_state fixed bin; 226 dcl prefix char (100) aligned; /* temp */ 227 dcl r_factor fixed bin (35); /* ditto */ 228 dcl r_offset fixed bin (18); /* IPC operands for initial wakeup */ 229 dcl shxx char (8) aligned; 230 dcl start_proc_chn fixed bin (71); /* event channel for start wakeup for process */ 231 232 /* Program */ 233 234 /* ASU_ATTACH - Called by admin to listen to an existing line which had previously been removed or detached. 235**/ 236 237 asu_attach: 238 entry (bv_tty_name, bv_code_2); 239 240 ansp = as_data_$ansp; 241 just_listen = ""b; 242 bv_code_2 = 0; /* be sure to return zero unless something goes wrong */ 243 if bv_tty_name = as_tty then go to master_error; 244 if bv_tty_name = anstbl.as_tty then do; /* check for restricted tty name */ 245 246 master_error: 247 bv_code_2 = as_error_table_$tty_is_master; 248 return; 249 end; 250 251 cdtp = scdtp; /* unsave ptr to CDT */ 252 253 /* CHANGE THIS TO USE cdt_mgr_ */ 254 255 do cdtex = 1 to cdt.current_size; 256 cdtep = addr (cdt.cdt_entry (cdtex)); 257 if cdte.in_use ^= NOW_FREE & cdte.name = bv_tty_name 258 then goto found_cdte; 259 end; /* if we fall thru, the channel is not in the CDT */ 260 call sys_log_ (SL_LOG, 261 "asu_: ^a is not in CDT and so cannot be attached", 262 bv_tty_name); 263 bv_code_2 = error_table_$action_not_performed; /* tell admin that something went wrong, 264* but we already told the operator about it */ 265 return; 266 found_cdte: 267 if cdte.in_use = CHANNEL_DELETED then do; 268 call sys_log_ (SL_LOG, 269 "asu_: ^a has been deleted by a CDT installation, and so cannot be attached", bv_tty_name); 270 bv_code_2 = error_table_$action_not_performed; /* it didn't work and we already said why */ 271 return; 272 end; 273 274 if cdte.in_use = NOT_CONFIGURED then do; 275 call sys_log_ (SL_LOG, 276 "asu_: ^a was not configured at bootload time, and so cannot be attached.", 277 bv_tty_name); 278 bv_code_2 = error_table_$action_not_performed; /* it didn't work and we already said why */ 279 return; 280 end; 281 282 if cdte.current_service_type = MPX_SERVICE then do; 283 call sys_log_ (SL_LOG, 284 "asu_: ^a in use as a multiplexer and cannot be attached.", 285 bv_tty_name); 286 bv_code_2 = error_table_$action_not_performed; 287 return; 288 end; 289 290 if cdte.current_service_type = TANDD_SERVICE then do; 291 call sys_log_ (SL_LOG, 292 "asu_: ^a in use for T & D and cannot be attached.", 293 bv_tty_name); 294 bv_code_2 = error_table_$action_not_performed; 295 return; 296 end; 297 298 if cdte.in_use ^= NOW_HUNG_UP then do; /* Gack! User exists! */ 299 old_state = cdte.state; /* well, maybe not. let's see */ 300 call astty_$tty_state (cdtep, code); 301 if (old_state ^= cdte.state) | (cdte.state < TTY_DIALED) then 302 call sys_log_ (SL_LOG, 303 "asu_: ^a has in_use = ^d, current state = ^d^[, CDTE.state was ^d^;^s^].", 304 cdte.name, cdte.in_use, cdte.state, (old_state ^= cdte.state), old_state); 305 if cdte.state < TTY_DIALED then just_listen = "1"b; 306 307 else do; /* it seems ther really is a user on the channel */ 308 bv_code_2 = as_error_table_$tty_already;/* so complain and refuse to attach it again */ 309 return; 310 end; 311 end; 312 313 if cdte.state = TTY_MASKED then do; 314 call sys_log_ (SL_LOG, "asu_: unmasking channel ^a.", 315 cdte.name); 316 call astty_$tty_order (cdtep, "unmask", null (), code); 317 if code ^= 0 & 318 code ^= error_table_$undefined_order_request then do; /* if we don't have the right hardcore, too bad */ 319 bv_code_2 = code; 320 call sys_log_$error_log (SL_LOG, code, "asu_", 321 "unable to unmask channel ^a.", cdte.name); 322 bv_code_2 = code; 323 return; 324 end; 325 end; 326 327 if cdte.current_service_type = MC_SERVICE then do; 328 call sys_log_ (SL_LOG, 329 "asu_: ^a is in use by the message coordinator and cannot be attached.", cdte.name); 330 bv_code_2 = error_table_$action_not_performed; /* it didn't work and we already said why */ 331 return; 332 end; 333 334 if cdte.service_type = ANS_SERVICE | /* If permanently registered to Ans Svc */ 335 cdte.service_type = SLAVE_SERVICE | /* or a slave channel */ 336 cdte.service_type = FTP_SERVICE | 337 cdte.service_type = DIAL_OUT_SERVICE then do;/* or a dial out channel */ 338 cdte.current_service_type = cdte.service_type; /* give it back */ 339 if just_listen then do; 340 call sys_log_ (SL_LOG, 341 "asu_: ^a is already attached; will try to listen to it again", cdte.name); 342 bv_code_2 = 0; 343 end; 344 else call asu_$attach_channel (cdtep, bv_code_2); 345 if bv_code_2 = 0 then /* if attached ok, try listen. This happens for the operator */ 346 call asu_$asu_listen (cdtep, bv_code_2);/* command attach only, not for as_init_'s attach calls */ 347 end; 348 else if cdte.current_service_type = ANS_SERVICE /* Or if temporarily registered to AS */ 349 | cdte.current_service_type = FTP_SERVICE 350 | cdte.current_service_type = INACTIVE /* or if it is not doing anything at the moment */ 351 then do; /* let dialup_ have it */ 352 if cdte.current_service_type = INACTIVE then 353 cdte.current_service_type = ANS_SERVICE; 354 if just_listen then do; 355 call sys_log_ (SL_LOG, 356 "asu_: ^a is already attached; will try to listen to it again", cdte.name); 357 bv_code_2 = 0; 358 end; 359 else call asu_$attach_channel (cdtep, bv_code_2); 360 if bv_code_2 = 0 then /* see comments above */ 361 call asu_$asu_listen (cdtep, bv_code_2); 362 end; 363 364 else do; 365 call sys_log_ (SL_LOG, 366 "asu_: ^a cannot be attached because its service type is ^[MC^;unknown^] (^d).", 367 cdte.name, (cdte.service_type = MC_SERVICE), cdte.service_type); 368 code = error_table_$action_not_performed; 369 end; 370 return; 371 372 373 /* ATTACH_ATE - Called to obtain an ATE for the channel. */ 374 375 attach_ate: entry (bv_ptr_1, bv_code_2); 376 377 cdtep = bv_ptr_1; 378 utep = user_table_mgr_$allocate (PT_INTERACTIVE); 379 if utep = null () then do; 380 bv_code_2 = as_error_table_$tty_no_room; 381 return; 382 end; 383 384 call ipc_$decl_ev_call_chn (ute.event, dialup_, utep, INT_LOGIN_PRIO, code); 385 if code ^= 0 then do; /* if either call failed, complain and get out immediately */ 386 call sys_log_$error_log (SL_LOG_BEEP, code, "asu_$attach_ate", 387 "Unable to create event channel for new UTE ^p", utep); 388 bv_code_2 = as_error_table_$tty_no_room; 389 return; 390 end; 391 392 ute.tty_name = cdte.name; /* Fill in new ATE. */ 393 ute.active = cdte.in_use; 394 395 cdte.process = utep; /* cross-link entries */ 396 ute.channel = cdtep; 397 398 ute.count = 0; 399 bv_code_2 = 0; 400 return; 401 402 /* RELEASE_ATE - Drop the Answer Table entry associated with a channel */ 403 404 release_ate: entry (bv_ptr_1, bv_code_2); 405 406 cdtep = bv_ptr_1; 407 utep = cdte.process; 408 bv_code_2 = 0; 409 if utep = null then return; 410 ansp = as_data_$ansp; 411 if baseno (utep) ^= baseno (ansp) then do; /* trap bug */ 412 call sys_log_ (SL_LOG_SILENT, 413 "asu_$release_ate: bad cdte.process (^p) for ^a", cdte.process, cdte.name); 414 return; 415 end; 416 call user_table_mgr_$free (utep); 417 cdte.process = null; 418 return; 419 420 /* ATTACH_CHANNEL - called to attach a specific Channel Definition Table entry. */ 421 422 attach_channel: entry (bv_ptr_1, bv_code_2); 423 424 cdtep = bv_ptr_1; 425 bv_code_2 = 0; 426 entry_name = "attach_channel"; 427 428 if cdte.current_service_type = INACTIVE then do; /* if channel was detached or removed */ 429 call sys_log_ (SL_LOG_SILENT, 430 "asu_: attach channel not done on ^a: current service type = INACTIVE", cdte.name); 431 bv_code_2 = error_table_$action_not_performed; 432 return; /* then don't attach it now */ 433 end; 434 435 if cdte.current_service_type = MPX_SERVICE then do; 436 call sys_log_ (SL_LOG, 437 "asu_: attach channel not done on ^a: current service type = MPX_SERVICE", cdte.name); 438 bv_code_2 = error_table_$action_not_performed; 439 return; 440 end; 441 442 call reset_access_class (cdtep); /* recurse -- this gets dial_out channels into a known state W.R.T. access class. */ 443 call astty_$tty_index (cdtep, code); /* get devx from hardcore */ 444 if code ^= 0 then call error ("tty_index"); /* probably mispelled, or not configured */ 445 446 if cdte.event = 0 then do; 447 call ipc_$create_ev_chn (cdte.event, code); /* Make event-call channel to run tty. */ 448 if code ^= 0 then call error ("create_ev_chn"); /* this is bad news! */ 449 end; 450 451 if cdte.service_type = FTP_SERVICE 452 then do; 453 if ^ftp_dialup_init 454 then do; /* only attempt to reference Network software */ 455 call ftp_dialup_$init; /* if the user attaches Network channels */ 456 ftp_dialup_init = "1"b; 457 end; 458 call ipc_$decl_ev_call_chn (cdte.event, ftp_dialup_, cdtep, INT_LOGIN_PRIO, code); 459 end; 460 else call ipc_$decl_ev_call_chn (cdte.event, dialup_, cdtep, INT_LOGIN_PRIO, code); 461 if code ^= 0 then call error ("decl_ev_call_chn");/* this line has just died. */ 462 463 call astty_$tty_event (cdtep, code); /* Tell hardcore name of event channel. */ 464 if code ^= 0 then call error ("tty_event"); /* quit if get error */ 465 466 /* Setting of line type here allows CDT installation to change a line's type. 467* Except for that, setting of line type is done at initialization time */ 468 if cdte.line_type ^= 0 then do; /* if line type given, set it */ 469 i = cdte.line_type; /* get it into a full word */ 470 call astty_$tty_order (cdtep, "set_line_type", addr (i), code); 471 if code ^= 0 then 472 call error ("set_line_type"); 473 end; 474 475 /* Don't listen yet; FNPs might not be up. We have grabbed the channel, though */ 476 477 return; 478 479 480 /* ============================================================= */ 481 482 /* The following entry point is called to enable for listening a known, hungup, channel */ 483 484 asu_listen: 485 entry (bv_ptr_1, bv_code_2); 486 487 entry_name = "asu_listen"; 488 489 cdtp = scdtp; /* copy saved ptr to CDT */ 490 cdtep = bv_ptr_1; /* Get ptr to chn */ 491 bv_code_2 = 0; /* initialize error code */ 492 493 if asu_$channel_in_use (cdtep) then do; 494 call sys_log_ (SL_LOG_SILENT, 495 "asu_: listen not done on ^a: IN_USE with state = ^d, in_use = ^d, tra_vec = ^d", 496 cdte.name, cdte.state, cdte.in_use, cdte.tra_vec); 497 bv_code_2 = error_table_$action_not_performed; 498 return; /* if channel in use, leave it alone */ 499 end; 500 501 if cdte.current_service_type = INACTIVE then do; /* if channel was detached or removed */ 502 call sys_log_ (SL_LOG_SILENT, 503 "asu_: listen not done on ^a: current service type = INACTIVE", cdte.name); 504 bv_code_2 = error_table_$action_not_performed; 505 return; /* don't listen to it */ 506 end; 507 508 if cdte.current_service_type = MPX_SERVICE then do; /* if channel was detached or removed */ 509 call sys_log_ (SL_LOG_SILENT, 510 "asu_: listen not done on ^a: current service type = MPX_SERVICE", cdte.name); 511 bv_code_2 = error_table_$action_not_performed; 512 return; /* don't listen to it */ 513 end; 514 if cdte.current_service_type = TANDD_SERVICE then do; /* if channel was detached or removed */ 515 call sys_log_ (SL_LOG_SILENT, 516 "asu_: listen not done on ^a: current service type = TANDD_SERVICE", cdte.name); 517 bv_code_2 = error_table_$action_not_performed; 518 return; /* don't listen to it */ 519 end; 520 521 if cdte.service_type = DIAL_OUT_SERVICE then do; /* initialize cdte for dial out */ 522 cdte.tra_vec = WAIT_SLAVE_REQUEST; 523 cdte.process = null (); 524 cdte.dialed_to_procid = "0"b; 525 cdte.in_use = NOW_HUNG_UP; 526 cdte.current_service_type = cdte.service_type; 527 return; 528 end; 529 530 if cdte.current_service_type = MC_SERVICE then do; 531 call sys_log_ (SL_LOG_SILENT, 532 "asu_: listen not done on ^a: current service type = MC", cdte.name); 533 bv_code_2 = error_table_$action_not_performed; 534 return; /* This here entry ignores MC */ 535 end; 536 537 call astty_$tty_event (cdtep, code); /* be sure we are the channel's user process - we should be, 538* but there are ways to get here where we might not be */ 539 if code ^= 0 then call error ("tty_event"); 540 541 call astty_$tty_order (cdtep, "listen", null, code); /* Tell dim to accept calls on this line */ 542 if code ^= 0 then call error ("listen"); /* quit if any error. */ 543 544 if cdte.state < TTY_KNOWN then do; 545 call sys_log_ (SL_LOG_SILENT, 546 "asu_: listen failed on ^a. state=^d", cdte.name, cdte.state); 547 bv_code_2 = error_table_$action_not_performed; 548 return; /* Make sure that channel is indeed being listened to. */ 549 end; 550 551 /* Check for a slave channel that has been priv-attached and is waiting for a dialup */ 552 553 if cdte.current_service_type = SLAVE_SERVICE 554 & cdte.tra_vec = WAIT_FIN_PRIV_ATTACH 555 & cdte.process ^= null 556 & cdte.dialed_to_procid ^= ""b then ; /* leave it alone */ 557 558 else do; /* otherwise wait for what is appropriate to its service type */ 559 if cdte.service_type = SLAVE_SERVICE then /* slave device set transfer vector */ 560 cdte.tra_vec = WAIT_SLAVE_REQUEST; /* to ignore channel until requested */ 561 else cdte.tra_vec = WAIT_DIALUP; /* Set transfer vector to print greeting. */ 562 cdte.process = null; /* .. no ATE yet */ 563 cdte.user_name = ""; 564 end; 565 566 cdte.in_use = NOW_LISTENING; 567 return; /* listen */ 568 569 570 reset_access_class: 571 entry (bv_ptr_1); 572 573 cdtep = bv_ptr_1; 574 575 cdte.current_access_class_valid = "0"b; 576 cdte.current_access_class = ""b; 577 if aim_check_$equal (cdte.access_class (1), cdte.access_class (2)) 578 then do; 579 cdte.current_access_class_valid = "1"b; 580 cdte.current_access_class = cdte.access_class; 581 end; 582 return; 583 584 585 error: procedure (comment); /* errors from asu_$attach and asu_$listen come here */ 586 587 declare comment char (*); 588 589 if code = -1 then /* astty_ uses -1 to mean channel hung up */ 590 /* if an operation failed and astty_ censored the code to -1 */ 591 /* then we give up here and now. */ 592 go to nonlocal_return_label; /* let caller continue - don't drop the channel */ 593 594 error_join: 595 call sys_log_$error_log (SL_LOG_BEEP, code, "asu_", 596 "^a ^a error; will remove channel ^a ^a", 597 entry_name, comment, cdte.name, cdte.comment); 598 call asu_remove (cdtep); /* make it go away */ 599 /* recurse ! */ 600 bv_code_2 = as_error_table_$tty_dim_err; /* return standard code */ 601 goto nonlocal_return_label; /* get out of internal proc and return from external one */ 602 603 end error; 604 605 nonlocal_return_label: return; /* return from the external procedure */ 606 607 /* ============================================================= */ 608 609 /* the remove entry point is called to completely remove a tty channel from the system */ 610 /* the phone is hung up; if it is a dialed console it is cleaned out; 611* if it is a process it is destroyed. The event channel remains, however, 612* because there is no sure-fire way to get ring-0 to never send wakeups. */ 613 614 asu_remove: entry (p2); 615 616 cdtep = p2; /* copy into automatic */ 617 if cdte.current_service_type = MPX_SERVICE 618 then do; 619 call sys_log_ (SL_LOG, 620 "asu_: ^a is a multiplexer and cannot be removed.", cdte.name); 621 return; /* no error code, so we cannot return it */ 622 end; 623 call astty_$tty_index (cdtep, code); /* This resets channel switches, and gets devx again. */ 624 if code = 0 then do; /* Only mess with it if channel does exist. */ 625 call astty_$tty_order (cdtep, "hangup", null, code); /* Hang phone. */ 626 cdte.tra_vec = WAIT_HANGUP; /* There will be a hangup wakeup */ 627 /* this will be reset if there is a process to be destroyed */ 628 call astty_$tty_detach (cdtep, 0, code); /* Detach console from process. */ 629 call ipc_$drain_chn (cdte.event, code); /* Flush any pending wakeups. */ 630 end; 631 if as_data_$ansp ^= null then /* If answering service started, we're cool */ 632 if cdte.service_type = ANS_SERVICE | cdte.service_type = FTP_SERVICE 633 then do; 634 if cdte.dialed_to_procid ^= "0"b then /* call dial_ctl_ if slave */ 635 call dial_ctl_$dial_term (cdtep); 636 else if cdte.in_use = NOW_HAS_PROCESS /* Has a process? */ 637 then do; 638 /* (this code should be in dialup_) */ 639 utep = cdte.process; /* Answering service channel. */ 640 call dpg_ (utep, "error"); /* destroy it */ 641 ute.login_flags.noprint = "1"b; 642 ute.logout_type = "remo"; 643 cdte.tra_vec = WAIT_REMOVE; /* Set dialup control point. */ 644 ute.destroy_flag = WAIT_LOGOUT; /* tell act_ctl_ */ 645 return; /* dialup_ will do the rest */ 646 end; 647 end; 648 649 else if cdte.service_type = DIAL_OUT_SERVICE then /* auto call line ? */ 650 if cdte.dialed_to_procid ^= "0"b then call dial_ctl_$dial_term (cdtep); 651 652 if cdte.in_use ^= NOW_HAS_PROCESS then do; /* if process is being destroyed, must keep cdte "live" a while */ 653 /* leave tra_vec at WAIT_HANGUP */ 654 cdte.in_use = NOW_HUNG_UP; /* otherwise, remember it is hung up */ 655 cdte.current_service_type = INACTIVE; /* ignore channel until CDT installation or next bootload */ 656 if cdte.n_disconnected_procs > 0 then /* release the UTE of the current connection 657* we must be in a login connect loop since our 658* in_use state is less than HAS_PROCESS. */ 659 call asu_$release_ate (cdtep, code); 660 end; 661 662 if cdte.tra_vec = WAIT_FIN_TANDD_ATTACH then /* we don't want it to stay this way when reattached */ 663 cdte.tra_vec = WAIT_DIALUP; 664 return; 665 666 /* ============================================================= */ 667 668 669 /* The remove_cdte entry point is called when a cdte is so messed up that we 670* don't know what to do. We used to crash the system, but that is too drastic. 671* Now, we just complain a lot, and then try to get rid of the channel and its 672* cdte, so the problem does not happen repeatedly */ 673 674 remove_cdte: entry (bv_ptr_1); 675 676 cdtep = bv_ptr_1; 677 cdtp = scdtp; 678 679 if baseno (cdtp) ^= baseno (cdtep) then do; /* just as unlikely as anything else */ 680 call sys_log_ (SL_LOG_SILENT, 681 "asu_: cdtep (^p) not cdt (^p)", cdtep, cdtp); 682 return; 683 end; 684 685 call astty_$tty_state (cdtep, code); 686 if code ^= 0 then do; 687 if code = -1 then /* channel hung up */ 688 call sys_log_ (SL_LOG_SILENT, "asu_: cdte ^p (^a) hung up", 689 cdtep, cdte.name); 690 else do; 691 call sys_log_$error_log (SL_LOG_SILENT, code, 692 "asu_$remove_cdte", "cdte ^p error from tty_state", cdtep); 693 return; /* if tty_state fails, tty_hangup and detach probably will too */ 694 end; 695 end; 696 697 call sys_log_ (SL_LOG_SILENT, 698 "asu_: cdte ^p (^a) state ^d in use ^d tra vec ^d", 699 cdtep, cdte.name, cdte.state, cdte.in_use, cdte.tra_vec); 700 701 702 call asu_remove (cdtep); 703 return; 704 705 /* ============================================================= */ 706 707 708 /* This entry point is a function that tells the caller whether or not a channel is in use. 709* A channel is considered to be in use if it is dialed up and a user has typed something, 710* such as the login or dial commands, or if a process has it attached, as a slave, 711* dial out, etc. channel. If it is merely dialed up, it is considered not in use, 712* which is partly by design and partly by necessity: a hardwired channel always 713* looks dialed up, even if there is no user doing anything to or with it. 714* 715* This function is used in place of less accurate, in-line decisions regarding 716* channel activity, in various answering service procedures, such as: 717* - The count_fnp_users procedure in admin, which counts used channels on an FNP; 718* - the check in fnp_manager_$fnp_listen, to avoid re-listening to a used channel. 719* 720**/ 721 722 channel_in_use: entry (bv_ptr_1) returns (bit (1) aligned); 723 724 cdtp = scdtp; /* copy saved ptr to CDT */ 725 cdtep = bv_ptr_1; /* and ptr to CDT entry */ 726 727 if cdte.twx = 0 then go to return_false; /* if no devx, can't be in use */ 728 729 if cdte.state <= TTY_KNOWN then /* if hung up or listening */ 730 goto return_false; /* clearly not in use */ 731 732 733 if cdte.in_use <= NOW_LISTENING then /* clearly not in use, but cdte inconsistent */ 734 goto return_false; /* say it's not in use - let caller feel free to fix it up */ 735 736 if cdte.in_use >= NOW_LOGGED_IN then /* clearly in use */ 737 goto return_true; /* I think? */ 738 739 /* cdte.in_use = NOW_DIALED, so the decision gets more complicated */ 740 741 if cdte.tra_vec >= WAIT_LOGIN_ARGS then /* if user is logging in, or past that stage */ 742 if cdte.tra_vec < WAIT_HANGUP then /* and not on the way out */ 743 goto return_true; /* this one is definitely not clear */ 744 745 /* any other criteria to look at? */ 746 747 /* if not, fall thru and say not in use */ 748 749 return_false: return (""b); 750 751 return_true: return ("1"b); 752 753 /* ============================================================= */ 754 755 /* The find_process entry is called to locate a user process in the various possible user tables. 756* It looks for absentees, daemons, and interactive users, and returns 757* a pointer to the answer table - style entry for the user. 758* A flag is also set telling what kind of user was found. */ 759 760 find_process: entry (a_pid, a_type, outp); 761 762 dcl a_pid bit (36) aligned, /* process id to look up user entry for */ 763 a_type fixed bin, /* 1 = ia, 2 = abs, 3 = dmn */ 764 outp ptr; /* ptr to entry in anstbl or aut or dut */ 765 766 a_type = PT_INTERACTIVE; 767 ansp = as_data_$ansp; 768 do i = 1 to anstbl.current_size; /* interactive users first */ 769 utep = addr (anstbl.entry (i)); /* Locate anwwer table entry */ 770 if ute.active = NOW_HAS_PROCESS then /* Gotta have process */ 771 if ute.proc_id = a_pid then go to afnd; /* processid must match */ 772 end; 773 a_type = PT_ABSENTEE; 774 autp = as_data_$autp; 775 do i = 1 to autp -> autbl.current_size; /* no, well try absentees */ 776 utep = addr (autp -> autbl.entry (i)); 777 if ute.active ^= NOW_FREE then /* Is slot in use? */ 778 if ute.proc_id = a_pid then go to afnd; 779 end; 780 a_type = PT_DAEMON; 781 dutp = as_data_$dutp; 782 do i = 1 to dutbl.current_size; /* Scan daemon table. */ 783 utep = addr (dutbl.entry (i)); /* Get ptr to daemon entry. */ 784 if ute.active = NOW_HAS_PROCESS then /* Should have a process. */ 785 if ute.proc_id = a_pid then do; /* Is this process the one we look for? */ 786 afnd: outp = utep; /* whee */ 787 return; 788 end; 789 end; 790 outp = null; /* Couldn't find it. */ 791 a_type = 0; /* ... */ 792 return; /* sorry */ 793 794 795 /* ================================================== */ 796 797 /* The check_for_stopped_process entry is called when a wakeup like "logout" 798* or "bump" is received for a process whose tra_vec indicates that it has 799* already been bumped or logged out, and is waiting for a "stopstop" wakeup. 800* We check the actual state of the process (5 = stopped) and print a message 801* indicating what we found. If state = 5 we return "1"b so the caller knows 802* it is safe to finish destroying the process, even though the stopstop 803* never arrived (apparently it was lost). */ 804 805 check_for_stopped_process: entry (P_utep, caller_name) returns (bit (1) aligned); 806 807 dcl caller_name char (*); 808 809 810 utep = P_utep; 811 if utep = null then return (""b); /* avoid fault when channel has no process */ 812 process_status_return.target_proc = ute.proc_id; 813 call hphcs_$process_status (addr (process_status_return)); 814 if process_status_return.up_exec = 5 then do; 815 call sys_log_ (SL_LOG, 816 "asu_: (called by ^a) ^a.^a ^a was already stopped and will be destroyed (stopstop wakeup was lost)", 817 caller_name, ute.person, ute.project, ute.tty_name); 818 return ("1"b); 819 end; 820 else do; 821 call sys_log_ (SL_LOG, 822 "asu_: (called by ^a) ^a.^a ^a is not stopped (state = ^d) even though destroy flag = ^d; 823 it might not be possible to destroy this process", 824 caller_name, ute.person, ute.project, ute.tty_name, process_status_return.up_exec, ute.destroy_flag); 825 return (""b); 826 end; 827 828 /* ======================================================= */ 829 830 /* Utility entry to write a message which is in the form of a system error code. 831* Usually these codes are in as_error_table_. 832* The message is splashed on the user's console. */ 833 834 write_chn_message: entry (chnp, mescode, short, P_code); 835 836 dcl chnp ptr; 837 dcl channel_call bit (1) init ("0"b); 838 839 cdtep = chnp; /* Get channel ptr */ 840 channel_call = "1"b; 841 842 write_message: entry (P_utep, mescode, short, P_code); 843 844 dcl mescode fixed bin (35), /* system error code */ 845 short char (8) aligned; /* shortinfo */ 846 847 P_code = 0; 848 call convert_status_code_ (mescode, short, long); /* decode message */ 849 if ^channel_call then do; 850 utep = P_utep; /* copy arg */ 851 if ute.queue = 0 & ^ute.adjust_abs_q_no then do; /* if interactive, see if channel exists */ 852 cdtep = ute.channel; /* Get channel ptr */ 853 end; 854 else if ute.queue > 0 | ute.adjust_abs_q_no then return; /* if absentee, quit */ 855 end; 856 857 if long = "" then return; /* May have null value. */ 858 if ^channel_call then 859 if ute.queue = -1 then do; /* DAEMON */ 860 call sys_log_ (SL_LOG, rtrim (long)); /* There is intentionally no operator */ 861 return; /* documentation for this arbitrary message. */ 862 end; 863 864 call ioa_$rs ("^a", mstring, i, long); 865 if cdtep ^= null then do; 866 if cdte.service_type = FTP_SERVICE then 867 mstring = format_ftp_msg ((long), i, i, 030); 868 end; 869 if channel_call then 870 call astty_$tty_force (cdtep, addr (mstring), i, P_code); 871 else 872 call BLAST_USER (utep, substr (mstring, 1, i), 873 "0"b /* already formatted */, "0"b /* not a warn */, 874 error_message, P_code); 875 return; 876 877 /* ======================================================= */ 878 879 /* Utility entry to bump a user. Makes nice message and splats it on his console. */ 880 881 bump_code: entry (P_utep, mcode, mshort, P_code, grctim); 882 883 dcl mcode fixed bin (35), /* message code */ 884 mshort char (8) aligned; 885 886 utep = P_utep; 887 call convert_status_code_ (mcode, mshort, prefix); 888 if mcode = as_error_table_$inactive then do; 889 activity_can_unbump = "1"b; 890 bump_added_info = " unless you become active"; 891 end; 892 else bump_added_info = ""; 893 go to bjoin; 894 895 bump_user: entry (P_utep, wrd, P_code, grctim); 896 897 dcl wrd char (*), /* message */ 898 grctim fixed bin; /* seconds allowed for user cleanup */ 899 900 P_code = 0; 901 utep = P_utep; /* copy ptr into auto */ 902 prefix = wrd; /* Set up message */ 903 bump_added_info = ""; 904 905 bjoin: 906 ansp = as_data_$ansp; 907 anstbl.current_time = clock (); 908 if ute.preempted >= PREEMPT_BUMPED then do; /* if user has already been bumped, don't do it again */ 909 ute.uflags.activity_can_unbump = "0"b; /* nothing can save him */ 910 return; 911 end; 912 ute.uflags.activity_can_unbump = activity_can_unbump; /* inactive? start working and save your process */ 913 914 if ute.at.no_warning then goto omit_warning; /* if user said -no_warning then don't warn him */ 915 if ute.queue ^= 0 | ute.adjust_abs_q_no then goto omit_warning; /* if absentee or daemon, there's nobody to warn */ 916 917 if grctim = 0 then msg = ""; /* if immediate kill */ 918 else do; /* given some grace */ 919 if mod (grctim, 60) = 0 then call ioa_$rsnnl (bump_min_fmt, 920 msg, lng, divide (grctim, 60, 17, 0), bump_added_info); 921 else call ioa_$rsnnl (bump_sec_fmt, msg, lng, grctim, bump_added_info); 922 end; 923 multics_msg_date = date_time_$format ("date_time", anstbl.current_time, "", ""); 924 call ioa_$rs (from_mx_fmt, mstring, lng, multics_msg_date, prefix, msg); 925 cdtep = ute.channel; /* Locate channel */ 926 if cdtep ^= null () then do; /* check for FTP service */ 927 if cdte.service_type = FTP_SERVICE then do; 928 if grctim = 0 929 then mstring = format_ftp_msg (mstring, lng, lng, 434); 930 else mstring = format_ftp_msg (mstring, lng, lng, 030); 931 end; 932 end; 933 934 error_message = ""; 935 936 call BLAST_USER (P_utep, substr (mstring, 1, lng), 937 "0"b /* already formatted */, "1"b /* bump message */, 938 error_message, P_code); 939 if P_code ^= 0 & P_code ^= error_table_$action_not_performed then 940 call sys_log_$error_log (SL_LOG_SILENT, P_code, 941 "asu_$bump_user", 942 "^a Sending blast message to ^a.^a on ^a", error_message, 943 ute.person, ute.project, ute.tty_name); 944 945 omit_warning: 946 ute.preempted = PREEMPT_BUMPED; /* Mark "waiting bump" */ 947 call timer_manager_$alarm_wakeup ((grctim), "11"b, ute.event); 948 return; /* Done. */ 949 950 reschedule_bump_timer: 951 entry (P_utep, grctim); 952 953 /* this entry reschedules the inactivity check timer to new time. 954* It was put here since the bump entries set the orignal timer and is in a common place */ 955 956 utep = P_utep; 957 958 /* kill current bump timeout */ 959 call timer_manager_$reset_alarm_wakeup (ute.event); 960 961 /* reschedule for new time */ 962 call timer_manager_$alarm_wakeup ((grctim), "11"b, ute.event); 963 964 return; 965 966 unbump_user: 967 entry (P_utep, P_code); 968 969 /**** This entry provides an interface to unbump a user. */ 970 971 call process_proc_term_request ("unbump"); 972 return; 973 974 terminate_user: 975 entry (P_utep, P_code); 976 977 /**** This entry provides an interface to terminate a user. */ 978 979 call process_proc_term_request ("terminate"); 980 return; 981 982 disconnect_user: 983 entry (P_utep, P_code); 984 985 /**** This entry provides an interface to disconnect a user. */ 986 987 call process_proc_term_request ("hangup"); 988 return; 989 990 detach_user: 991 entry (P_utep, P_code); 992 993 /**** This entry provides an interface to detach a user. */ 994 995 call process_proc_term_request ("detach"); 996 return; 997 998 send_term_signal: entry (P_utep, a_logout_index) returns (bit (1) aligned); 999 1000 dcl a_logout_index fixed bin; 1001 dcl term_cpu_limit fixed bin (71); 1002 dcl term_realtime_limit fixed bin (71); 1003 1004 utep = P_utep; 1005 if utep = null then return (""b); /* don't blow up because of a careless caller */ 1006 if ute.preempted >= PREEMPT_TERM_SENT then /* if term already sent or not to be sent */ 1007 return (""b); /* tell caller to kill process immediately */ 1008 1009 ute.logout_index = a_logout_index; /* remember what we were doing to this user */ 1010 ute.preempted = PREEMPT_TERM_SENT; /* remember that we sent term */ 1011 call hphcs_$ips_wakeup (ute.proc_id, "trm_"); /* send it */ 1012 term_cpu_limit = installation_parms.term_cpu_time_seconds * 1000000; 1013 if term_cpu_limit <= 0 then term_cpu_limit = 5000000; 1014 term_realtime_limit = installation_parms.term_real_time_seconds; 1015 if term_realtime_limit <= 0 then term_realtime_limit = installation_parms.warning_time; 1016 ute.ignore_cpulimit = ""b; /* enable cpulimit timer for this process */ 1017 call hphcs_$set_cpu_monitor (ute.proc_id, term_cpu_limit, code); /* set cpu time limit */ 1018 call timer_manager_$alarm_wakeup (term_realtime_limit, "11"b, ute.event); /* and real time limit */ 1019 1020 return ("1"b); /* tell caller to wait for termsgnl from process */ 1021 1022 suspend_process: entry (P_utep); 1023 1024 utep = P_utep; /* copy ptr to user table entry */ 1025 if utep = null then do; /* trap bug */ 1026 call sys_log_ (SL_LOG_SILENT, 1027 "asu_: suspend_process called with null UTE ptr."); 1028 return; 1029 end; 1030 1031 if ute.sus_sent & ^ute.ignore_cpulimit then do; /* trap different bug */ 1032 call sys_log_ (SL_LOG, 1033 "asu_$suspend_process: ^a.^a ^a is already suspended", 1034 ute.person, ute.project, ute.tty_name); 1035 return; 1036 end; 1037 1038 /* Compute real and cpu time limits (borrow variables from send_term_signal). Ensure reasonable values. */ 1039 1040 term_cpu_limit = installation_parms.sus_cpu_time_seconds * 1000000; 1041 if term_cpu_limit <= 0 then term_cpu_limit = 5000000; 1042 term_realtime_limit = installation_parms.sus_real_time_seconds; 1043 if term_realtime_limit <= 0 then term_realtime_limit = 180; 1044 1045 /* Set flags in user table entry */ 1046 1047 ute.suspended = ""b; /* clear flag that says when process has responded */ 1048 ute.sus_sent = "1"b; /* we will, in a few lines */ 1049 ute.ignore_cpulimit = ""b; /* enable cpulimit timer for this process */ 1050 ute.sus_channel = 0; /* clear any possible garbage */ 1051 1052 /* Send sus_ and set real and cpu timers */ 1053 1054 call hphcs_$ips_wakeup (ute.proc_id, "sus_"); 1055 call hphcs_$set_cpu_monitor (ute.proc_id, term_cpu_limit, code); 1056 call timer_manager_$alarm_wakeup (term_realtime_limit, "11"b, ute.event); 1057 1058 return; 1059 1060 release_suspended_process: entry (P_utep); 1061 1062 utep = P_utep; /* copy ptr to user table entry */ 1063 if utep = null then do; /* trap bug */ 1064 call sys_log_ (SL_LOG_SILENT, 1065 "asu_: release_suspended_process called with null UTE ptr"); 1066 return; 1067 end; 1068 1069 if ^ute.sus_sent then do; /* trap other bug */ 1070 call sys_log_ (SL_LOG_SILENT, 1071 "asu_$release_suspended_process: ^a.^a ^a is not suspended", 1072 ute.person, ute.project, ute.tty_name); 1073 return; 1074 end; 1075 1076 ute.ignore_cpulimit = "1"b; /* "turn off" the cpulimit timer */ 1077 if ute.suspended then do; /* if process already responded to sus_ */ 1078 whotab.e (ute.whotabx).suspended = ""b; /* publish it */ 1079 ute.suspended, ute.sus_sent = ""b; /* clear the switches */ 1080 end; 1081 else call timer_manager_$reset_alarm_wakeup (ute.event); /* if not, turn off the alarm timer */ 1082 /* and wait until it responds, before sending the wakeup */ 1083 1084 return; 1085 1086 /* ============================================================= */ 1087 1088 /* Entry to unclog backed-up table installations by forcing the 1089* answer_table lock, setting the update pending flag, and unmasking ips signals and 1090* event calls. Just for good measure, a wakeup is also sent (otherwise 1091* we might have to wait until dialup_ gets invoked). */ 1092 1093 reset: 1094 entry; 1095 1096 ansp = as_data_$ansp; 1097 savi = anstbl.lock_count; 1098 anstbl.lock_count = 0; /* clear the lock */ 1099 code = 0; 1100 i = -1; 1101 do while (code = 0); 1102 call ipc_$unmask_ev_calls (code); 1103 i = i + 1; /* count up depth of masking */ 1104 end; 1105 call hcs_$set_ips_mask ((36)"1"b, old_ips_mask); /* unmask all IPS channels */ 1106 1107 call sys_log_ (SL_LOG, 1108 "asu_: lock was ^d, ev call mask was ^d, ips mask was ^12.3b", savi, i, old_ips_mask); 1109 1110 /* It is possible that we have "lost" an alarm timer. We will set up a new one to go off in a few seconds, 1111* which should shake loose any that are waiting for the lost one to go off. The new timer will actually 1112* serve a useful purpose; it will wakeup the table updating program to see if any installations are 1113* pending. If timer_manager_ is busted so completely that this new timer never goes off, things 1114* are so messed up it isn't funny. */ 1115 1116 call timer_manager_$alarm_wakeup (5, "11"b /* rel secs */, anstbl.update_channel); 1117 return; 1118 1119 1120 format_ftp_msg: 1121 entry (P_bufr, P_in_lng, P_lng, P_ftp_code) returns (char (200) aligned); 1122 1123 /* formats messages for channels of FTP service_type, as specified in */ 1124 /* Arpanet protocol for server-FTP */ 1125 1126 dcl P_bufr char (200) aligned, 1127 P_lng fixed bin, 1128 P_ftp_code fixed bin, 1129 P_in_lng fixed bin; 1130 1131 dcl result picture "999b"; 1132 dcl min builtin; 1133 1134 i = min (999, P_ftp_code); 1135 result = i; 1136 return (format_ftp_output (P_bufr, P_in_lng, P_lng, (result))); 1137 1138 1139 init: entry; 1140 1141 if ^sc_stat_$Multics_typed | sc_stat_$Go_typed then 1142 call sub_err_ (error_table_$out_of_sequence, "asu_$init", "s"); 1143 ftp_dialup_init = "0"b; 1144 call convert_status_code_ (as_error_table_$from_multics_msg, shxx, from_mx_fmt); 1145 call convert_status_code_ (as_error_table_$bump_mins_msg, shxx, bump_min_fmt); 1146 call convert_status_code_ (as_error_table_$bump_secs_msg, shxx, bump_sec_fmt); 1147 1148 return; 1149 1150 start_process: 1151 entry (P_utep); 1152 1153 /**** This entry is used to start a process. Initially, a process is in 1154* the blocked state awaiting a wakeup to get it running. This entry 1155* provides that wakeup. It is called by dialup_, absentee_user_manager_, 1156* and daemon_user_manager_. */ 1157 1158 utep = P_utep; 1159 1160 /**** Before we send a wakeup to the process, we must construct an event 1161* channel which will pass the IPC event channel validation tests. To 1162* do this, we must learn the values of R-Offset and R-Factor for a 1163* process. */ 1164 1165 call hphcs_$get_ipc_operands (ute.proc_id, r_offset, r_factor, code); 1166 if code = 0 then do; 1167 call ipc_validate_$encode_event_channel_name (r_offset, r_factor, "000"b /* flags */, 1 /* index */, 4 /* ring */, "1"b /* regular */, 1 /* unique id */, start_proc_chn); 1168 1169 /**** Kick the process loose from initial block state */ 1170 call hcs_$wakeup (ute.proc_id, start_proc_chn, -1, code); 1171 if code ^= 0 then /* log any error for debugging */ 1172 call sys_log_$error_log (SL_LOG_SILENT, code, ME, 1173 "Sending initial wakeup to ^w (^a.^a)", 1174 ute.proc_id, ute.person, ute.project); 1175 end; 1176 else call sys_log_$error_log (SL_LOG_SILENT, code, ME, 1177 "Retrieving the values of R-Offset and R-Factor for ^w (^a.^a)", 1178 ute.proc_id, ute.person, ute.project); 1179 1180 return; 1181 1182 /* format: style5,ind5 */ 1183 1184 blast_user: 1185 entry (P_utep, P_message, P_error_message, P_code); 1186 1187 if P_utep = null () then 1188 do; 1189 call sys_log_$error_log (SL_LOG_SILENT, 0, 1190 "asu_: blast_user called with null UTE ptr"); 1191 P_error_message = "utep = null ()"; 1192 P_code = error_table_$action_not_performed; 1193 end; 1194 else 1195 call BLAST_USER (P_utep, P_message, "1"b /* needs formatting */, 1196 "0"b /* warn message */, P_error_message, P_code); 1197 1198 return; 1199 1200 /**** format: style4 */ 1201 1202 setup_login_server_handle: 1203 entry (P_utep); 1204 1205 /**** This entry, give a UTE pointer, initializes the value of 1206* ute.login_server_handle.our_handle, used for login server to 1207* answering service communications. */ 1208 1209 if P_utep = null () then 1210 call sys_log_$error_log (SL_LOG_SILENT, 0, "asu_: setup_login_server_handle called with null UTE ptr."); 1211 else do; 1212 utep = P_utep; 1213 uc_ls_handle_ptr = addr (ute.login_server_info.our_handle); 1214 uc_ls_handle.process_type = ute.process_type; 1215 uc_ls_handle.ute_index = ute.ute_index; 1216 uc_ls_handle.unique_id = substr (bit (clock (), 54), 18, 36); 1217 end; 1218 return; 1219 1220 format_ftp_output: 1221 proc (P_message, P_msg_lng, P_new_lng, P_ftp_code) returns (char (200) aligned); 1222 1223 dcl P_message char (200) aligned, 1224 P_msg_lng fixed bin, 1225 P_new_lng fixed bin, 1226 P_ftp_code char (4) aligned; 1227 1228 dcl build_string char (200) varying, 1229 i fixed bin, 1230 temp fixed bin; 1231 1232 build_string = P_ftp_code; 1233 1234 if P_msg_lng = 0 1235 then do; /* caller had nothing to say */ 1236 build_string = build_string || NL; 1237 P_new_lng = 5; 1238 return (build_string); 1239 end; 1240 1241 i = 1; 1242 1243 temp = index (substr (P_message, i, P_msg_lng - i + 1), NL); 1244 1245 do while ((temp ^= P_msg_lng - i + 1) & (temp ^= 0)); 1246 /* while we are not at the last line in the message */ 1247 substr (build_string, 4, 1) = "-"; /* indicate this is a multiple line msg */ 1248 build_string = build_string || substr (P_message, i, temp); 1249 i = i + temp; 1250 temp = index (substr (P_message, i, P_msg_lng - i + 1), NL); 1251 end; 1252 1253 if substr (build_string, 4, 1) = "-" 1254 then do; 1255 build_string = build_string || P_ftp_code; /* multiple concatenations are inefficient */ 1256 build_string = build_string || substr (P_message, i, P_msg_lng - i + 1); /* so build it up piece by piece */ 1257 end; 1258 else build_string = build_string || substr (P_message, i, P_msg_lng - i + 1); 1259 P_new_lng = length (build_string); 1260 1261 return (build_string); 1262 1263 end format_ftp_output; 1264 1265 BLAST_USER: 1266 procedure (P_utep, P_message, P_need_formatting, P_bump_msg, P_error_message, P_code); 1267 1268 dcl P_utep ptr parameter; 1269 dcl P_message char (*) parameter; 1270 dcl P_need_formatting bit (1) aligned parameter; 1271 dcl P_bump_msg bit (1) aligned parameter; 1272 dcl P_error_message char (*) parameter; 1273 dcl P_code fixed bin (35) parameter; 1274 1275 utep = P_utep; 1276 if ute.at.no_warning then do; 1277 call ioa_$rsnnl ("^a.^a has ""no_warning""", P_error_message, 1278 (0), ute.person, ute.project); 1279 P_code = error_table_$action_not_performed; 1280 return; 1281 end; 1282 1283 /**** If there is a process, use the new system message facility to send 1284* the message. Otherwise, try to blast the channel, if there is one. */ 1285 1286 if ute.active < NOW_HAS_PROCESS then do; 1287 if ute.channel ^= null () then do; 1288 call astty_$tty_force ((ute.channel), addr (P_message), 1289 length (rtrim (P_message)), P_code); 1290 P_error_message = ""; 1291 return; 1292 end; 1293 else do; 1294 P_code = error_table_$action_not_performed; 1295 P_error_message = ""; 1296 return; 1297 end; 1298 end; 1299 1300 system_message_text_len = length (P_message); 1301 1302 begin; 1303 dcl formatted_message char (system_message_text_len + 100); 1304 dcl warn_template char (100) aligned; 1305 1306 if P_need_formatting then do; 1307 call convert_status_code_ (as_error_table_$warn_msg, (""), warn_template); 1308 call ioa_$rsnnl (warn_template, formatted_message, (0), 1309 date_time_$format ("date_time", clock (), "", ""), P_message); 1310 end; 1311 else 1312 formatted_message = P_message; 1313 1314 system_message_text_len = length (rtrim (formatted_message)); 1315 system_message_ptr = null; 1316 on cleanup begin; 1317 if system_message_ptr ^= null then free warn_system_message in (based_area); 1318 end; 1319 allocate warn_system_message in (based_area) set (system_message_ptr); 1320 1321 unspec (warn_system_message) = "0"b; 1322 warn_system_message.header.version = SYSTEM_MESSAGE_VERSION_1; 1323 if P_bump_msg then do; 1324 warn_system_message.header.type = SYSTEM_MESSAGE_TYPE_AS_INACTIVITY; 1325 warn_system_message.header.type_version = SYSTEM_MESSAGE_AS_INACTIVITY_V1; 1326 end; 1327 else do; 1328 warn_system_message.header.type = SYSTEM_MESSAGE_TYPE_AS_WARN; 1329 warn_system_message.header.type_version = SYSTEM_MESSAGE_AS_WARN_V1; 1330 end; 1331 warn_system_message.caller = ""; 1332 warn_system_message.text_len = length (rtrim (formatted_message)); 1333 warn_system_message.text = formatted_message; 1334 end; /* end begin block */ 1335 1336 call send_system_message_ (utep, system_message_ptr, P_code); 1337 if P_code ^= 0 then 1338 do; 1339 call ioa_$rsnnl ("Calling send_system_message_ on process_id ^w", 1340 P_error_message, (0), ute.proc_id); 1341 return; 1342 end; 1343 1344 free warn_system_message in (based_area); 1345 P_error_message = ""; 1346 return; 1347 end BLAST_USER; 1348 1349 process_proc_term_request: 1350 procedure (P_action_string); 1351 1352 /**** This internal procedure is called by the unbump_user, disconnect_user, 1353* terminate_user, and detach_user entrypoints. */ 1354 1355 dcl P_action_string char (*) parameter; 1356 1357 dcl event_message fixed bin (71) automatic; 1358 dcl event_message_str char (8) automatic; 1359 1360 utep = P_utep; 1361 event_message_str = P_action_string; 1362 code = 0; 1363 if utep = null () then 1364 code = error_table_$null_info_ptr; 1365 else do; 1366 unspec (event_message) = unspec (event_message_str); 1367 call hcs_$wakeup (as_data_$as_procid, ute.event, event_message, 1368 code); 1369 end; 1370 P_code = code; 1371 return; 1372 end process_proc_term_request; 1373 1374 /* format: off */ 1375 /* BEGIN INCLUDE FILE ... absentee_user_table.incl.pl1 */ 1 2 1 3 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 1 4 /* */ 1 5 /* The absentee user table is the control data base for the absentee */ 1 6 /* facility. It has a header, with scheduling parameters, then one user */ 1 7 /* table entry for each logged-in absentee job. */ 1 8 /* */ 1 9 /* Programs which use this table must also include */ 1 10 /* user_table_header.incl.pl1 and user_table_entry.incl.pl1. */ 1 11 /* */ 1 12 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 1 13 1 14 1 15 /****^ HISTORY COMMENTS: 1 16* 1) change(81-09-10,Kittlitz), approve(), audit(), install(): 1 17* Replace abs_user_tab.incl.pl1. 1 18* 2) change(87-04-26,GDixon), approve(87-07-13,MCR7741), 1 19* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 1 20* Use ut_header common to all user control tables. 1 21* END HISTORY COMMENTS */ 1 22 1 23 1 24 dcl AUTBL_version_4 fixed bin int static options (constant) init (4); 1 25 1 26 dcl autp ptr automatic init (null); 1 27 1 28 dcl 1 autbl based (autp) aligned, /* a per system table to store info on absentee processes */ 1 29 2 header like ut_header, /* Header common to all user tables. */ 1 30 1 31 /* Counter elements */ 1 32 2 n_abs_run fixed bin, /* actual number of absentee processes current */ 1 33 2 max_abs_users fixed bin, /* max number of background absentee processes permitted */ 1 34 2 n_background_abs fixed bin, /* number of absentee processes not from foreground queue */ 1 35 2 n_sec_fg fixed bin, /* number of secondary foreground absentee jobs */ 1 36 2 idle_units fixed bin, /* used in adjusting abs_maxu dynamically */ 1 37 2 abs_units fixed bin, /* part of anstbl.n_units used by background absentees */ 1 38 2 n_abs (4) fixed bin, /* number of processes from each background queue */ 1 39 2 qres (4) fixed bin, /* number of slots reserved for each background queue */ 1 40 2 rsc_waiting (-1:4) fixed bin, /* number of requests waiting for resources, from each queue */ 1 41 2 qerr (-1:4) fixed bin, /* number of consecutive errors for q (dropped if > QERR_MAX) */ 1 42 2 cpu_limit (4) fixed bin (35), /* current per-queue cpu time limits */ 1 43 1 44 /* absentee user manager values. */ 1 45 2 defer_channel fixed bin (71), /* IPC for time-defered queue entries */ 1 46 2 absentee_rq_chn fixed bin (71), /* IPC channel for absentee requests */ 1 47 2 last_queue_searched fixed bin, /* highest queue looked at by scheduler */ 1 48 2 debugging fixed bin, /* take asdumps at strategic places */ 1 49 2 control, /* see also whotab.incl.pl1 */ 1 50 3 mnbz bit (1) unal, /* must not be zero */ 1 51 3 abs_maxu_auto bit (1) unal, /* 1 if abs maxu has not been set by operator command */ 1 52 3 abs_maxq_auto bit (1) unal, /* 1 if abs maxq has not been set by operator command */ 1 53 3 abs_qres_auto bit (1) unal, /* 1 if abs qres has not been set by operator command */ 1 54 3 abs_cpu_limit_auto bit (1) unal, /* 1 if abs cpu_limit has not been set by operator command */ 1 55 3 queue_dropped (-1:4) bit (1) unal, /* 1 if queue has been dropped because of errors */ 1 56 3 abs_up bit (1) unal, /* 1 if absentee facility is running */ 1 57 3 abs_stopped bit (1) unal, /* 1 if abs stop command was issued */ 1 58 /* both 1 if we're waiting for the last jobs to log out */ 1 59 3 aum_ctl bit (1) unal, /* for AUM to tell AU to start a new sequence */ 1 60 3 lc_list bit (1) unal, /* for AU to tell AUM that the lc list is non-empty */ 1 61 /* comments in AU and AUM explain aum_ctl and lc_list */ 1 62 3 control_pad (21) bit (1) unal, /* fill out rest of word */ 1 63 2 aum_pad fixed bin, 1 64 1 65 2 entry_pad (80) fixed bin, /* pad table header to 128 words */ 1 66 2 entry (0 refer (autbl.current_size)) like ute; 1 67 1 68 dcl AUTBL_CONTROL_NAMES (15) char(20) varying int static options(constant) init( 1 69 "mnbz", 1 70 "abs_maxu_auto", 1 71 "abs_maxq_auto", 1 72 "abs_qres_auto", 1 73 "abs_cpu_limit_auto", 1 74 "queue_dropped(-1)", 1 75 "queue_dropped( 0)", 1 76 "queue_dropped( 1)", 1 77 "queue_dropped( 2)", 1 78 "queue_dropped( 3)", 1 79 "queue_dropped( 4)", 1 80 "abs_up", 1 81 "abs_stopped", 1 82 "aum_ctl", 1 83 "lc_list"); 1 84 1 85 /* END INCLUDE FILE ... absentee_user_table.incl.pl1 */ 1375 1376 /* BEGIN INCLUDE FILE ... answer_table.incl.pl1 */ 2 2 2 3 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 2 4 /* */ 2 5 /* The answer table has one entry per "login instance" whether completed or */ 2 6 /* not. It is connected to the Channel Definition Table by the pointer */ 2 7 /* "channel". The header is used mostly by dialup_. */ 2 8 /* */ 2 9 /* Programs which use this file must also include user_table_header.incl.pl1 */ 2 10 /* */ 2 11 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 2 12 2 13 /****^ HISTORY COMMENTS: 2 14* 1) change(81-09-10,Kittlitz), approve(), audit(), install(): 2 15* Replace anstbl.incl.pl1. 2 16* 2) change(85-01-15,Swenson), approve(), audit(), install(): 2 17* Add anstbl.session_uid_counter. 2 18* 3) change(85-08-21,Coren), approve(), audit(), install(): 2 19* Add anstbl.message_update_time and named constants for values of 2 20* anstbl.session, and to make all padding explicit. 2 21* 4) change(85-08-23,Coren), approve(), audit(), install(): 2 22* Change "entry" to a placeholder so as not to require 2 23* user_table_entry.incl.pl1. 2 24* 5) change(86-06-29,Swenson), approve(87-07-13,MCR7741), 2 25* audit(87-04-14,GDixon), install(87-08-04,MR12.1-1056): 2 26* Added the flag login_server_present which indicates whether a login 2 27* server request has been received. This is used to determine whether 2 28* dial_ctl_ should call uc_cleanup_network_dials_ (and thus 2 29* hpriv_connection_list_, which only exists with the MNA RPQ software). 2 30* 6) change(87-04-14,GDixon), approve(87-07-13,MCR7741), 2 31* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 2 32* A) Moved constants for ute.pw_flags.mask_ctl into 2 33* user_table_entry.incl.pl1. 2 34* B) Added common table header to all user tables. 2 35* END HISTORY COMMENTS */ 2 36 2 37 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 2 38 /* */ 2 39 /* The anstbl structure below is divided into sections. Each section begins */ 2 40 /* with a comment describing the elements in the section. Elements are */ 2 41 /* placed within a section, based upon their function or the programs that */ 2 42 /* use them. Each section begins on a double word and is an even number of */ 2 43 /* words long. */ 2 44 /* */ 2 45 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 2 46 2 47 2 48 2 49 /* format: style4 */ 2 50 2 51 dcl ANSTBL_version_4 static options (constant) init (4); /* version of this declaration */ 2 52 2 53 dcl ansp ptr automatic init (null); 2 54 2 55 dcl 1 anstbl based (ansp) aligned, /* Structure of answer table */ 2 56 2 header like ut_header, /* Header common to all user tables. */ 2 57 2 58 /* Counter elements. */ 2 59 2 nlin fixed bin, /* number of active lines */ 2 60 2 mxlin fixed bin, /* maximum number of active lines */ 2 61 2 n_users fixed bin, /* number of logged-in users */ 2 62 2 max_users fixed bin, /* maximum number of users allowed */ 2 63 2 n_units fixed bin, /* number of logged in units */ 2 64 2 max_units fixed bin, /* maximum number of units */ 2 65 2 n_sessions fixed bin, /* number of Multics sessions */ 2 66 2 n_pad fixed bin, 2 67 2 68 /* Name elements. */ 2 69 2 sysdir char (64) unal, /* name of main system control directory */ 2 70 2 as_tty char (8) unal, /* name of main answering service device. */ 2 71 2 72 /* Login elements. */ 2 73 2 login_word char (8) unal, /* login word if special_session=1 */ 2 74 2 session char (8) unal, /* session indicator */ 2 75 2 special_message char (128) unal, /* message to be printed for special session */ 2 76 2 message_update_time fixed bin (71), /* time at which special_message was last updated */ 2 77 2 message_lng fixed bin, /* length of special message */ 2 78 2 login_pad fixed bin, 2 79 2 80 /* Table update elements. */ 2 81 2 lock_count fixed bin, /* global lock for all system control tables */ 2 82 2 update_pending bit (1) aligned, /* flag indicating that update is required */ 2 83 2 update_channel fixed binary (71), /* event channel of update procedure */ 2 84 2 acct_update_chn fixed bin (71) aligned, /* Timer IPC channel */ 2 85 2 acct_last_update_time fixed bin (71) aligned, /* Time of last accounting update */ 2 86 2 acct_alarm_fail fixed bin, /* non-zero if alarm has failed */ 2 87 2 update_pad fixed bin, 2 88 2 89 /* dialup_ data values. */ 2 90 2 current_time fixed bin (71), /* Time of last transaction */ 2 91 2 processid_index fixed bin (18), /* unique index for process id generation */ 2 92 2 session_uid_counter fixed bin (35), /* current session_uid */ 2 93 2 94 /* load_ctl_ elements. */ 2 95 2 shift fixed bin, /* Shift, set by act_ctl_ */ 2 96 2 auto_maxu fixed bin, /* 0 = manual, 1 = config, 2 = load-level */ 2 97 2 extra_units fixed bin, /* Total daemon and abs units. */ 2 98 /* load_ctl_ load leveling desired response range: */ 2 99 2 response_high fixed bin, /* bad if user response time slower than this */ 2 100 2 response_low fixed bin, /* bad if user response time faster than this */ 2 101 2 load_ctl_pad fixed bin, 2 102 2 103 /* Login server request server data. */ 2 104 2 ls_request_server_event_channel fixed bin (71), /* channel for login server requests */ 2 105 2 ls_request_server_process_id bit (36) aligned, /* process serving login server requests */ 2 106 2 login_server_present bit (1) aligned, /* On IFF a login server request has been processed */ 2 107 2 108 2 entry_pad (28) fixed bin, /* pad to 128 words */ 2 109 2 entry (0 refer (anstbl.current_size)), /* user entries */ 2 110 3 contents (UTE_SIZE) fixed bin; 2 111 2 112 /* constants */ 2 113 2 114 /* values for anstbl.session */ 2 115 2 116 dcl (AT_NORMAL init ("normal "), 2 117 AT_SPECIAL init ("special "), 2 118 AT_SHUTDOWN init ("shutdown")) char (8) internal static options (constant); 2 119 2 120 dcl UTE_SIZE fixed bin internal static initial (300); 2 121 2 122 /* END INCLUDE FILE ... answer_table.incl.pl1 */ 1376 1377 /* BEGIN INCLUDE FILE ... as_data_.incl.pl1 ... */ 3 2 3 3 /* format: style4 */ 3 4 3 5 /* This file must be kept in sync with as_data_.alm */ 3 6 3 7 /****^ HISTORY COMMENTS: 3 8* 1) change(86-09-21,Beattie), approve(86-09-22,MCR7542), 3 9* audit(86-10-31,Brunelle), install(86-11-12,MR12.0-1211): 3 10* Remove references to the 963 and 029 preaccess commands and remove support 3 11* for ARDS, 202_ETX, 2741 and 1050 in system interfaces. 3 12* 2) change(86-09-25,Swenson), approve(87-07-20,MCR7737), 3 13* audit(87-07-20,GDixon), install(87-08-04,MR12.1-1056): 3 14* Add references to as_data_ entrypoints added for Login Server. 3 15* 3) change(87-03-03,Brunelle), approve(87-07-20,MCR7697), 3 16* audit(87-07-20,GDixon), install(87-08-04,MR12.1-1056): 3 17* Added new user signal field of inacrcvd (14) to handle inactivity response 3 18* from user. 3 19* END HISTORY COMMENTS */ 3 20 3 21 dcl as_data_$BS char (1) aligned ext static; /* BACKSPACE character */ 3 22 dcl as_data_$CR char (1) aligned ext static; /* CARRIAGE RETURN character */ 3 23 dcl as_data_$abs_dim char (32) ext static; /* absentee DIM */ 3 24 dcl as_data_$acct_update_priority fixed bin ext static; /* accounting update IPC priority */ 3 25 dcl as_data_$acsdir char (168) ext static; /* Access Control Segment directory */ 3 26 dcl as_data_$ansp ptr ext static; /* answer_table */ 3 27 dcl as_data_$as_procid bit (36) aligned ext static; /* Answering Service process id */ 3 28 dcl as_data_$as_ring fixed bin (3) ext static; /* AS operating ring */ 3 29 dcl as_data_$as_tty char (6); /* AS master tty channel */ 3 30 dcl as_data_$asmtp ptr ext static; /* AS meter table */ 3 31 dcl as_data_$autp ptr ext static; /* absentee_user_table */ 3 32 dcl as_data_$buzzardp ptr ext static; /* dpg_ list of buteo processes */ 3 33 dcl as_data_$cdtp ptr ext static; /* CDT */ 3 34 dcl as_data_$default_weight fixed bin (35) ext; /* default user process load control weight */ 3 35 dcl as_data_$devtabp ptr ext static; /* device_table */ 3 36 dcl as_data_$dft_user_ring fixed bin (3) ext static; /* default user ring */ 3 37 dcl as_data_$dutp ptr ext static; /* daemon_user_table */ 3 38 dcl as_data_$g115_dim char (32) ext static; 3 39 dcl as_data_$lct_initialized bit (1) aligned ext static; /* LCT allocated in ring 0 */ 3 40 dcl as_data_$lct_size fixed bin ext static; /* CDT tty channels + spares */ 3 41 dcl as_data_$max_user_ring fixed bin (3) ext static; /* maximum user ring */ 3 42 dcl as_data_$mgtp ptr ext static; /* master group table */ 3 43 dcl as_data_$mrd_dim char (32) ext static; /* daemon's message routing DIM */ 3 44 dcl as_data_$ntty_dim char (32) ext static; /* network connection DIM */ 3 45 dcl as_data_$pdtdir char (168) ext static; /* PDT directory */ 3 46 dcl as_data_$pit_ptr ptr ext static; /* pit_temp_ */ 3 47 dcl as_data_$rcpdir char (168) ext static; /* RCP directory */ 3 48 dcl as_data_$request_priority fixed bin ext static; 3 49 dcl as_data_$rs_ptrs (0:9) ptr ext static; /* rate_structures */ 3 50 dcl as_data_$rtdtp ptr ext static; /* RTDT */ 3 51 dcl as_data_$sat_htp ptr ext static; /* SAT hash table */ 3 52 dcl as_data_$satp ptr ext static; /* SAT */ 3 53 dcl as_data_$suffix (0:9) char (2) unaligned ext static; 3 54 dcl as_data_$sysdir char (168) ext static; /* system control directory */ 3 55 dcl as_data_$teens_suffix (10:19) char (2) unaligned ext static; 3 56 dcl as_data_$terminet_tabs_string char (144) varying ext static; 3 57 dcl as_data_$tty_dim char (32) ext static; /* standard interactive DIM */ 3 58 dcl as_data_$update_priority fixed bin ext static; /* ??? */ 3 59 dcl as_data_$version char (8) ext static; /* AS version */ 3 60 dcl as_data_$whoptr ptr ext static; /* whotab */ 3 61 3 62 dcl 1 as_data_$login_args aligned ext static, /* control arguments for login */ 3 63 2 n_login_args fixed bin, 3 64 2 pad fixed bin, 3 65 2 login_args (55 /* as_data_$login_args.n_login_args */) char (24) unaligned; 3 66 3 67 dcl 1 as_data_$signal_types ext static aligned, /* IPC process control signals */ 3 68 2 n_signals fixed bin, 3 69 2 pad fixed bin, 3 70 2 signals (14 /* as_data_$signal_types.n_signals */) char (8) unaligned; 3 71 3 72 dcl 1 as_data_$system_signal_types ext static aligned, /* IPC process control signals */ 3 73 2 n_system_signals fixed bin, 3 74 2 pad fixed bin, 3 75 2 system_signals (10 /* as_data_$system_signal_types.n_system_signals */) char (8) unaligned; 3 76 3 77 dcl as_data_$login_words fixed bin ext static aligned, 3 78 /* interactive login words */ 3 79 1 as_data_login_words aligned based (addr (as_data_$login_words)), 3 80 2 n_words fixed bin, 3 81 2 pad fixed bin, 3 82 2 words (0 refer (as_data_login_words.n_words)) char (16) unaligned; 3 83 3 84 dcl as_data_$debug_flag bit (1) aligned external static; 3 85 dcl as_data_$ls_request_server_info_ptr ptr external static; 3 86 dcl as_data_$ls_message_buffer_cur_lth fixed bin (18) external static; 3 87 dcl as_data_$ls_message_buffer_max_lth fixed bin (18) external static; 3 88 dcl as_data_$ls_message_buffer_ptr ptr external static; 3 89 3 90 /* END INCLUDE FILE ... as_data_.incl.pl1 ... */ 1377 1378 /* BEGIN INCLUDE FILE ... as_data_definitions_.incl.pl1 ... */ 4 2 4 3 4 4 /****^ HISTORY COMMENTS: 4 5* 1) change(87-04-26,GDixon), approve(87-07-13,MCR7741), 4 6* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 4 7* Removed ansp, autp and dutp from this include file, adding them to 4 8* answer_table.incl.pl1, absentee_user_table.incl.pl1 and 4 9* daemon_user_table.incl.pl1. 4 10* END HISTORY COMMENTS */ 4 11 4 12 4 13 /* This include file requires as_data_.incl.pl1 */ 4 14 4 15 /* format: style4 */ 4 16 4 17 dcl as_procid bit (36) aligned defined (as_data_$as_procid); 4 18 dcl as_tty char (6) based (addr (as_data_$as_tty)); 4 19 dcl asmtp ptr defined (as_data_$asmtp); 4 20 dcl devtabp ptr defined (as_data_$devtabp); 4 21 dcl ip ptr defined (as_data_$rs_ptrs (0)); 4 22 dcl mgtp ptr defined (as_data_$mgtp); 4 23 dcl pdtdir char (168) based (addr (as_data_$pdtdir)); 4 24 dcl rs_ptrs (0:9) ptr based (addr (as_data_$rs_ptrs (0))); 4 25 dcl sat_htp ptr defined (as_data_$sat_htp); 4 26 dcl satp ptr defined (as_data_$satp); 4 27 dcl scdtp ptr defined (as_data_$cdtp); 4 28 dcl sysdir char (168) defined (as_data_$sysdir); 4 29 dcl whoptr ptr defined (as_data_$whoptr); 4 30 4 31 /* END INCLUDE FILE ... as_data_definitions_.incl.pl1 ... */ 1378 1379 /* BEGIN INCLUDE FILE as_wakeup_priorities.incl.pl1 */ 5 2 5 3 /* This include file defines the priorities of all of the event channels used by the answering service. 5 4* 5 5* They are declared as named constants. They are used in calls to ipc_$decl_ev_call_chn. 5 6* The names correspond to the functions of the event call handlers. 5 7* For brevity in names, MC means message coordinator, and LOGIN includes logout as well. 5 8* 5 9* The comment on each constant lists the procedure(s) that use it to set event channel priorities. 5 10* See the code in those procedures for information on the handlers themselves 5 11* (which are entry variables in some cases, and thus could not be documented in this file). 5 12* 5 13* The priorities range from zero (highest) to 22 (lowest used by the answering service). 5 14* 5 15* The event wait channel on which the A.S. goes blocked awaiting input on the initializer console has highest 5 16* of all priorities, set by as_init_ calling ipc_$set_wait_prior. 5 17* 5 18* Written June 1981 by T. Casey for MR9.0 5 19* Modified 1984-10-15 BIM for sac -> as_request. 5 20* as_request is above login, since sac is important and 5 21* dial requests for already logged in users can take 5 22* first dibs over new logins. 5 23**/ 5 24 5 25 dcl MC_PRIO fixed bin int static options (constant) init (1); /* mc_commands_, mc_con_rec_, mc_util_, mrd_tester */ 5 26 dcl SYSERR_COPY_PRIO fixed bin int static options (constant) init (2); /* syserr_log_man_ */ 5 27 dcl SHUTDOWN_PRIO fixed bin int static options (constant) init (3); /* admin */ 5 28 dcl ACCT_UPDATE_PRIO fixed bin int static options (constant) init (4); /* act_ctl_ */ 5 29 dcl DAEMON_LOGIN_PRIO fixed bin int static options (constant) init (8); /* daemon_user_manager_ */ 5 30 dcl AS_REQUEST_PRIO fixed bin int static options (constant) init (7); /* as_request_ */ 5 31 dcl INSTALL_PRIO fixed bin int static options (constant) init (8); /* up_sysctl_ */ 5 32 dcl INT_LOGIN_PRIO fixed bin int static options (constant) init (8); /* asu_, dialup_, ftp_dialup_ */ 5 33 dcl MPX_LOAD_PRIO fixed bin int static options (constant) init (11); 5 34 /* as_vip7760_mpx_, as_mcs_mpx_, as_ibm3270_mpx_, as_hasp_mpx_ */ 5 35 dcl ABS_DEFER_PRIO fixed bin int static options (constant) init (19); /* absentee_utility_ */ 5 36 dcl ABS_LOGIN_PRIO fixed bin int static options (constant) init (20); /* abentee_user_manager_ */ 5 37 dcl CORE_FLUSH_PRIO fixed bin int static options (constant) init (22); /* as_meter_ */ 5 38 5 39 /* END INCLUDE FILE as_wakeup_priorities.incl.pl1 */ 1379 1380 /* BEGIN INCLUDE FILE ... author_dcl.incl.pl1 */ 6 2 6 3 /* This include file declares the "author" substructure 6 4* in a form suitable for using the PL/I "like" attribute. 6 5* 6 6* Written 750304 by PG 6 7**/ 6 8 6 9 dcl 1 author_dcl aligned based, 7 1 /* BEGIN INCLUDE FILE author.incl.pl1 */ 7 2 7 3 /* the "author" items must always be the first ones in the table. The 7 4* module which moves the converted table to the System Control process 7 5* fills in these data items and assumes them to be at the head of the segment 7 6* regardless of the specific table's actual declaration. The variables 7 7* "lock" and "last_install_time" used to be "process_id" and "ev_channel" 7 8* respectively. For tables installed in multiple processes, these 7 9* are to be used to lock out multiple installations. */ 7 10 7 11 /* Lock should be used as a modification lock. Since, in general, 7 12* entries may not be moved in system tables, even by installations, 7 13* it is sufficient for only installers and programs that change threads 7 14* to set or respect the lock. Simply updating data in an entry 7 15* requires no such protection. 7 16* 7 17* Last_install_time is used by readers of system tables to detect 7 18* installations or other serious modifications. By checking it before 7 19* and after copying a block of data, they can be protected against 7 20* modifications. 7 21* 7 22* Modules that set the lock should save proc_group_id, and then 7 23* put their group id there for the time they hold the lock. 7 24* if they do not actually install the, they should restore the group id. 7 25**/ 7 26 7 27 2 author aligned, /* validation data about table's author */ 7 28 3 proc_group_id char (32), /* process-group-id (personid.projectid.tag) */ 7 29 3 lock bit (36), /* installation lock */ 7 30 3 update_attributes bit (1) unal, /* update/add/delete attributes */ 7 31 3 update_authorization bit (1) unal, /* update only authorizations */ 7 32 3 deferral_notified bit (1) unal, /* installer notified of deferral of installation */ 7 33 3 pad bit (33) unaligned, 7 34 3 last_install_time fixed bin (71), 7 35 3 table char (4), /* name of table, e.g., SAT MGT TTT RTDT PDT etc. */ 7 36 3 w_dir char (64), /* author's working directory */ 7 37 7 38 /* END INCLUDE FILE author.incl.pl1 */ 6 10 6 11 2 pad; 6 12 6 13 /* END INCLUDE FILE ... author_dcl.incl.pl1 */ 1380 1381 /* BEGIN INCLUDE FILE ... cdt.incl.pl1 */ 8 2 8 3 /* format: style3,idind25,indcomtxt */ 8 4 8 5 /* Channel Definition Table. 8 6* This table lists all of the hardware channels (ports) connected 8 7* to the system, and maintains the attributes of each one. 8 8* 8 9* PG 741230 8 10* Modified by Mike Grady 5/6/76 to add FNP info. 8 11* Modified by Tom Casey 7/29/76 to add more FNP info and a few other things. 8 12* Modified by Robert Coren 6/13/77 to make terminal types be character strings. 8 13* Modified July 1979 by T. Casey to add several variables for MR8.0 process preservation facility. 8 14* Modified December 1980 by E. N. Kittlitz to eliminate cdte.phone_no. 8 15* Modified March 1981 by Robert Coren to add "listening" flag for multiplexers and to add TANDD_SERVICE service_type. 8 16* Modified April 1981 by E. N. Kittlitz to add cdte.dial_ev_chn, cdte.recent_wakeup_time, cdte.recent_wakeup_count. 8 17* Modified July 1981 by T. Casey for MR9.0 to add dialup_flags.detach_after_hangup 8 18* Modified December 1981 by E. N. Kittlitz for cdte.leave_edited, cdte.hold_arg, 8 19* Modified September 1981 by Benson I. Margulies for cdt_mgr_'s tree of multiplexer's. 8 20* Modified August 1982 by E. N. Kittlitz for check_acs. 8 21* Modified January 1983 by Keith Loepere for generic_destination. 8 22* Modified August 1983 by Robert Coren to add mpxe.check and mpxe.retry_load. 8 23* Modified 831216 by E. N. Kittlitz for required_access_class. 8 24* Modified 84-04-01 by BIM to finish communications AIM: 8 25* access class ranges, 8 26* access_control flags. 8 27**/ 8 28 8 29 8 30 /****^ HISTORY COMMENTS: 8 31* 1) change(87-03-17,Beattie), approve(87-04-06,MCR7656), 8 32* audit(87-07-13,Parisek), install(87-08-04,MR12.1-1056): 8 33* Add support for answering service to use IOCBs when tty_ cannot be 8 34* used to service login channels. 8 35* END HISTORY COMMENTS */ 8 36 8 37 8 38 dcl CDT_version_5 fixed bin internal static initial (5) options (constant); 8 39 dcl CDT_version fixed bin internal static initial (6) options (constant); 8 40 8 41 dcl (cdtp, cdtep, fnpep, mpxep) 8 42 ptr; 8 43 8 44 dcl 1 cdt based (cdtp) aligned, /* all of the system channels */ 8 45 2 author like author_dcl.author, /* standard header */ 8 46 2 max_size fixed bin, /* maximum number of cdte's in 255K */ 8 47 2 current_size fixed bin, /* number of last cdte. */ 8 48 2 version fixed bin, 8 49 2 freep fixed bin, /* chain of free cdte's */ 8 50 2 n_cdtes fixed bin, /* number of used cdte's */ 8 51 2 meters_last_reset fixed bin (71), /* clock time dialup meters were reset */ 8 52 2 realtime_in_dialup fixed bin (71), /* Dialup meter */ 8 53 2 cpu_in_dialup fixed bin (71), /* .. */ 8 54 2 pf_in_dialup fixed bin, /* .. */ 8 55 2 pp_in_dialup fixed bin, /* .. */ 8 56 2 entries_to_dialup fixed bin, /* .. */ 8 57 2 flags, 8 58 3 go bit (1) unal, /* ans. serv. said "go ahead and answer the phones" */ 8 59 3 cdt_is_live bit (1) unal, /* cdt is active */ 8 60 3 mux_mgr_system_init 8 61 bit (1) unal, /* mux mgr has loaded top-levels */ 8 62 3 pad1 bit (33) unal, 8 63 2 acceptable_fnp_tbf fixed bin, /* acceptable minutes between FNP crashes */ 8 64 2 spare_channel_count fixed bin, /* number of extra channels to leave room for in ring0 */ 8 65 2 threads aligned like channel_threads, 8 66 /* root of non-fnp-top-level-multiplexers */ 8 67 2 pad2 (31) bit (36) aligned, /* pad header to 80 words */ 8 68 2 fnp_entry dim (8) like fnpe, /* max of 8 FNPs for now */ 8 69 2 cdt_entry dim (2500) like cdte; /* # of cdte's in 255K */ 8 70 8 71 8 72 dcl 1 cdte based (cdtep) aligned, /* a channel */ 8 73 2 in_use fixed bin, /* see dialup_values. 0=NOW_FREE */ 8 74 /**** * These variables are filled in when the CDTE is created by cv_cmf. They are not dynamic. */ 8 75 2 pad1 bit (36) aligned, 8 76 2 name char (32), /* ASCII name of channel */ 8 77 2 access_class (2) bit (72) aligned, /* access class range */ 8 78 2 comment char (48), /* printable message about channel */ 8 79 2 charge_type fixed bin (17) unal, /* billing group */ 8 80 2 service_type fixed bin (17) unal, /* service group (AS, ftp, mc) */ 8 81 2 line_type fixed bin (17) unal, /* tty line type (protocol) */ 8 82 2 baud_rate fixed bin (17) unal, /* 110, 133, 150, etc. */ 8 83 2 modem_type fixed bin (17) unal, /* type of modem on this channel */ 8 84 2 pad2 bit (18) unaligned, 8 85 2 answerback char (8), /* answerback string expected */ 8 86 2 initial_terminal_type 8 87 char (32) unal, /* as specified in the CMF */ 8 88 2 mpx_data unal, /* data used only for multiplexed channels */ 8 89 3 mpx_type fixed bin (17), /* type of multiplexing used */ 8 90 3 mpx_service fixed bin (17), /* service type, active or inactive */ 8 91 2 flags, 8 92 ( 3 attributes, 8 93 4 ck_answerback bit (1), /* ON means that ansbk must equal our records */ 8 94 4 audit_access_error 8 95 bit (1), /* ON means ck that person auth is inside access class range */ 8 96 /* this implies that the access_class describes a range of 8 97* legitimate user auths. */ 8 98 4 hardwired bit (1), /* ON means it is */ 8 99 4 set_modes bit (1), /* ON means to set initial modes at dialup */ 8 100 4 dont_read_answerback 8 101 bit (1), /* ON means don't try to read answerback */ 8 102 4 pada bit (4), 8 103 3 access_control unaligned, /* As below */ 8 104 4 dial_out bit (1), /* dialing user must be on ACS */ 8 105 4 priv_attach bit (1), /* PA_ user must be on ACS */ 8 106 4 dial_server bit (1), /* accept_dials process must be on acs */ 8 107 4 login bit (1), /* logging in user must be on acs */ 8 108 4 slave_dial bit (1), /* dialing user must give -user and be on acs */ 8 109 4 pado bit (3), 8 110 3 options, 8 111 4 execute_initial_command 8 112 bit (1), /* ON means to do it */ 8 113 4 attached_by_operator 8 114 bit (1), /* ON means temporary attachment. */ 8 115 4 private_line bit (1), /* ON means private_line sync modem in use */ 8 116 4 bsc_ebcdic bit (1), /* ON means bsc would like to use ebcdic code set */ 8 117 4 bsc_transparent bit (1), /* ON means bsc is in transparent mode */ 8 118 4 vip_pollselect bit (1), /* ON means VIP line is multidrop */ 8 119 4 autobaud bit (1), /* ON means auto baud detection this channel */ 8 120 4 generic_destination_present 8 121 bit (1), /* ON means that the initial_command field contains 8 122* a generic destination to match on dial_out or priv attach */ 8 123 4 use_iocb bit (1), /* ON means to use IOCB operations to support channel */ 8 124 4 pado bit (9) 8 125 ) unaligned, 8 126 2 initial_command char (64), /* pseudo first input line */ 8 127 /**** The following variables represent dynamic control info, and 8 128* are used mostly by dialup_ and asu_ */ 8 129 2 event fixed bin (71), /* event call channel for channel events */ 8 130 2 current_service_type fixed bin (17) unal, /* Current usage of line. */ 8 131 2 tra_vec fixed bin (17) unal, /* which section of dialup_ to do next */ 8 132 2 count fixed bin (17) unal, /* How many login tries he's had. */ 8 133 2 dialup_flags unal, /* flag bits for dialup to maintain */ 8 134 3 ppm bit (1) unal, /* print preaccess message for IBM terminals */ 8 135 3 cpo bit (1) unal, /* conditional printer-off (depends on answerback */ 8 136 3 wakeup_handler bit (1) unal, /* says who is wakeup handler for this channel */ 8 137 /* 0 = dialup_, 1 = mc_tty_ */ 8 138 3 save_arg bit (1) unal, /* -save login arg given */ 8 139 3 nosave_arg bit (1) unal, /* -nosave login arg given */ 8 140 3 detach_after_hangup 8 141 bit (1) unal, /* remember WAIT_DETACH when setting WAIT_BEFORE_HANGUP */ 8 142 3 leave_edited bit (1) unal, /* user control of edited mode */ 8 143 3 hold_arg bit (1) unal, /* -hold arg given */ 8 144 3 no_hold_arg bit (1) unal, /* -no_hold arg given */ 8 145 3 immediate_arg bit (1) unal, /* -immediate arg given */ 8 146 3 current_access_class_valid 8 147 bit (1) unal, /* dialup_ or lg_ctl_ has determined the current_access_class */ 8 148 3 pad bit (7) unal, 8 149 2 twx fixed bin, /* channel device index */ 8 150 2 state fixed bin, /* channel state */ 8 151 2 tty_id_code char (4), /* channel id (answerback) */ 8 152 2 current_terminal_type 8 153 char (32) unal, /* most recently-set terminal type */ 8 154 2 process ptr unal, /* ptr to ATE owning this channel */ 8 155 2 dialed_to_procid bit (36), /* Dialed channels remember owner's proc id */ 8 156 2 next_channel fixed bin (17) unal, /* cdte index of next channel for this process */ 8 157 2 cur_line_type fixed bin (17) unal, /* line type of currently dialed terminal */ 8 158 2 current_access_class (2) bit (72) aligned, /* This is a range, but at this time it must be a null range. 8 159* We do not yet define multi-class connections, but we will someday. */ 8 160 2 disconnected_ate_index 8 161 fixed bin (17) unal, /* index of ate of disconnected process */ 8 162 2 dial_ctl_ring fixed bin (3) unsigned unaligned, 8 163 /* used by dial_ctl_ to record ring of priv_attach or dial_out attachments */ 8 164 2 dial_rq_privileged bit (1) unaligned, /* used by dial ctl to record comm priv from priv_attach or dial_out request */ 8 165 2 pad3 bit (14) unaligned, 8 166 /**** The following variables are kept for metering purposes. */ 8 167 2 n_dialups fixed bin, /* number of times channel has been dialed up */ 8 168 2 n_logins fixed bin, /* number of login sessions on this channel */ 8 169 2 dialed_up_time fixed bin (35), /* total time channel was dialed up (seconds) */ 8 170 2 dialup_time fixed bin (71), /* time of present dialup */ 8 171 2 disconnected_proc_command 8 172 fixed bin (12) unsigned unal, 8 173 /* 1 to 5 for -list,-create,-connect,-new_proc,-destroy */ 8 174 2 disconnected_proc_number 8 175 fixed bin (12) unsigned unal, 8 176 /* {N} in -connect {N}, -new_proc {N}, -destroy {N} */ 8 177 2 n_disconnected_procs fixed bin (12) unsigned unal, 8 178 /* number of disconnected processes that user has */ 8 179 2 recent_wakeup_count fixed bin, /* counter to detect channel wakeup loop */ 8 180 2 recent_wakeup_time fixed bin (71), /* time of first wakeup in suspected channel wakeup loop */ 8 181 2 dial_ev_chn fixed bin (71), /* Dialed channels remember master's IPC channel */ 8 182 /**** cdt_mgr_ uses these to maintain the tree of channels. They ****/ 8 183 /**** really belong in the mpxe, but it is full up, and the cdte ****/ 8 184 /**** had the space. */ 8 185 2 threads aligned like channel_threads, 8 186 /**** The use name is that of the user who gave the dial or slave ****/ 8 187 /**** preaccess request. ****/ 8 188 2 user_name unaligned, 8 189 3 person char (20) unaligned, 8 190 3 project char (9) unaligned, 8 191 3 pad char (3) unaligned, /* no tag */ 8 192 2 iocbp ptr unaligned; /* 104 words */ 8 193 8 194 8 195 dcl generic_destination based char (32); /* used to match destinations on dial_out and priv_attach, 8 196* overlays initial_command field for slave and autocall lines */ 8 197 8 198 8 199 8 200 dcl 1 fnpe based (fnpep) aligned, /* an FNP */ 8 201 /* These variables are filled in from the CMF */ 8 202 2 type fixed bin, /* type of this FNP, DN355, DN6670, etc. */ 8 203 2 memory fixed bin, /* amount of memory on this FNP */ 8 204 2 nlslas fixed bin, /* number of lslas on this FNP */ 8 205 2 nhslas fixed bin, /* number of hslas on this FNP */ 8 206 2 service_type fixed bin, /* service type */ 8 207 2 mpx_type fixed bin, /* type of multiplexer on this fnp */ 8 208 2 coreimage char (168), /* pathname of image, maybe in >sl1 */ 8 209 /**** The following are used during system operation to remember the state of the FNP */ 8 210 2 boot_segp ptr, /* ptr to seg used for bootload */ 8 211 2 boot_ev_chan fixed bin (71), /* for ring0 to report crashes and bootload complete */ 8 212 2 mpxe like mpxe, /* standard multiplexer data */ 8 213 2 threads aligned like channel_threads, 8 214 /* same mpx threads as channel */ 8 215 2 pad3 (25) fixed bin; /* pad to 96 words per entry */ 8 216 8 217 /* This structure describes the data necessary to control a multiplexer. 8 218* For FNP's., a copy appears in the fnpe. For communications lines, it 8 219* overlays the initial_command field in the cdte. */ 8 220 8 221 dcl 1 mpxe based (mpxep) aligned, 8 222 2 state fixed bin, /* current state, up, down, loading */ 8 223 2 current_service_type fixed bin, /* usually = service type, unless cdt installation changes it */ 8 224 2 current_mpx_type fixed bin, /* type of multiplexer currently running */ 8 225 2 n_bootloads fixed bin, /* count of load attempts */ 8 226 2 time_initial_load fixed bin (71), /* time this MPX first completed a load */ 8 227 2 time_last_load fixed bin (71), /* time MPX last completed a bootload */ 8 228 2 time_last_crash fixed bin (71), /* time MPX last crashed */ 8 229 2 time_load_start fixed bin (71), /* time current load started */ 8 230 2 last_tbf fixed bin, /* number of minutes this MPX was up last bootload */ 8 231 2 flags unal, 8 232 3 go bit (1), /* start MPX after it loads */ 8 233 3 listening bit (1), /* listen has been done on subchannels */ 8 234 3 check bit (1), /* loaded with check option */ 8 235 3 retry_load bit (1), /* reload if load fails */ 8 236 3 pad1 bit (32), 8 237 2 pad2 (2) fixed bin; /* pad to 16 words */ 8 238 8 239 /* These threads define the tree of multiplexers in the cdt. */ 8 240 /* next_sister and prev_sister link nodes at the same level, ordered */ 8 241 /* by alpha sort order of the channel name. Daughter points to the */ 8 242 /* first child of this node, if any. Daughter count is the number */ 8 243 /* of children, as a consistency check. Mother is a back pointer to */ 8 244 /* the parent, present in all the children, not just the first. */ 8 245 /* threads are cdt indexes. If positive, they index the cdt_entry array */ 8 246 /* in cdt, if negative, they are the negative of an index into the fnp_entry */ 8 247 /* array. If zero, they refer to the top of the non-fnp mpx tree. */ 8 248 8 249 dcl 1 channel_threads aligned based, 8 250 2 next_sister fixed bin unaligned, 8 251 2 prev_sister fixed bin unaligned, 8 252 2 daughter fixed bin unaligned, 8 253 2 mother fixed bin unaligned, /* negative is a fnpx, positive a cdtx */ 8 254 2 pad bit (18) unaligned, 8 255 2 daughter_count fixed bin unaligned; 8 256 8 257 /* Values for cdte.service_type field */ 8 258 8 259 dcl ( 8 260 ANS_SERVICE init (1), /* login or dial */ 8 261 FTP_SERVICE init (2), /* file transfer service */ 8 262 MC_SERVICE init (3), /* message coordinator */ 8 263 SLAVE_SERVICE init (4), /* special channel */ 8 264 DIAL_SERVICE init (5), /* transient state */ 8 265 DIAL_OUT_SERVICE init (6), /* auto call line */ 8 266 MPX_SERVICE init (8), /* ring0 demultiplexed line */ 8 267 TANDD_SERVICE init (9) /* transient state, attached for T & D */ 8 268 ) fixed bin internal static options (constant); 8 269 8 270 /* Values for service type in both cdte and fnpe */ 8 271 8 272 dcl ( 8 273 INACTIVE init (7), /* not to be used, even though configured */ 8 274 ACTIVE init (1) 8 275 ) /* for FNP only, configured and to be used */ 8 276 fixed bin internal static options (constant); 8 277 8 278 /* Value for both cdte.in_use and fnpe.state */ 8 279 8 280 dcl NOT_CONFIGURED fixed bin int static init (-1) options (constant); 8 281 /* was not configured at Multics bootload time */ 8 282 8 283 /* NOTE: an INACTIVE channel can be made active by operator command or CDT installation, 8 284* but a NOT_CONFIGURED channel can not be used until its multiplexer is reloaded */ 8 285 8 286 /* Value for cdte.in_use */ 8 287 8 288 dcl CHANNEL_DELETED fixed bin int static init (-2); 8 289 /* channel deleted by CDT installation */ 8 290 8 291 /* NOTE: a configured channel being deleted by a CDT installation is set to CHANNEL_DELETED. 8 292* multiplexer_mgr_ sets cdte.in_use to NOW_FREE at the next reload of its multiplexer. 8 293* A NOT_CONFIGURED channel is set to NOW_FREE immediately when deleted by a CDT installation. */ 8 294 8 295 8 296 /* Values for mpxe.state field */ 8 297 8 298 dcl ( 8 299 FNP_FREE init (0), /* this fnpe is not used */ 8 300 FNP_UNKNOWN init (1), /* FNP is in some unknown state */ 8 301 FNP_DOWN init (2), /* FNP crashed, not yet reloaded */ 8 302 FNP_BOOT init (3), /* FNP has been booted, but no response yet */ 8 303 FNP_UP init (4) /* FNP is up and running fine */ 8 304 ) fixed bin internal static options (constant); 8 305 8 306 dcl ( 8 307 MPX_FREE init (0), /* this mpxe is not used */ 8 308 MPX_UNKNOWN init (1), /* MPX is in some unknown state */ 8 309 MPX_DOWN init (2), /* MPX crashed, not yet reloaded */ 8 310 MPX_BOOT init (3), /* MPX has been booted, but no response yet */ 8 311 MPX_UP init (4) /* MPX is up and running fine */ 8 312 ) fixed bin internal static options (constant); 8 313 9 1 /* BEGIN INCLUDE FILE ... fnp_types.incl.pl1 */ 9 2 9 3 9 4 9 5 /****^ HISTORY COMMENTS: 9 6* 1) change(88-06-15,Berno), approve(88-07-13,MCR7928), 9 7* audit(88-06-15,Parisek), install(88-07-19,MR12.2-1061): 9 8* Add data needed for the uncp multiplexer (DSA gateway) interface 9 9* implementation. 9 10* END HISTORY COMMENTS */ 9 11 9 12 9 13 /* Values for fnpe.type field */ 9 14 /* 9 15* Created 79 May 14 by Art Beattie by splitting information out from cdt.incl.pl1 9 16* Added in March 1982 - DN7100.fd. 9 17**/ 9 18 9 19 dcl (DN355 init (1), /* a DataNet 355 FNP */ 9 20 DN6600 init (2), /* a DataNet 6600 FNP */ 9 21 DN6670 init (3), /* a Honeywell Bull Network Processor (18x) */ 9 22 DN7100 init (4) /* The DSA Datanet architecture (DN7) */ 9 23 ) fixed bin internal static options (constant); 9 24 9 25 dcl fnp_types (4) char (8) int static options (constant) 9 26 init ("DN355", "DN6600", "DN6670", "DN7100"); 9 27 9 28 dcl fnp_models (4) fixed bin (17) int static options (constant) 9 29 init (355, 6600, 6670, 7100); 9 30 9 31 dcl supported_fnp (4) bit (1) int static options (constant) 9 32 init ("0"b, "0"b, "1"b, "1"b); 9 33 9 34 9 35 /* END INCLUDE FILE ... fnp_types.incl.pl1 */ 8 314 8 315 8 316 /* END INCLUDE FILE ... cdt.incl.pl1 */ 1381 1382 /* BEGIN INCLUDE FILE ... dialup_values.incl.pl1 */ 10 2 10 3 /* format: style4 */ 10 4 10 5 /* Values for "cdte.tra_vec" used by dialup_ and others. */ 10 6 10 7 /* Modified by T. Casey April 1976 to add WAIT_NEW_PASSWORD 10 8* - in 1977 and 1978 to add WAIT_(GREETING_MSG DELETE_CHANNEL) 10 9* - and in October 1979 to add WAIT_CONNECT_REQUEST 10 10* Modified by Robert Coren in May 1981 to add TANDD_ATTACH values and 10 11* WAIT_DISCARD_WAKEUP 10 12* Modified by T. Casey, July 1981, for MR9.0, to add WAIT_BEFORE_HANGUP. 10 13* Modified by E. N. Kittlitz, July 1982, to add TTY_MASKED. 10 14**/ 10 15 10 16 /****^ HISTORY COMMENTS: 10 17* 1) change(87-04-20,GDixon), approve(87-07-13,MCR7741), 10 18* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 10 19* Add constant arrays naming cdte.state, cdte.tra_vec and ute.active values. 10 20* 2) change(87-05-11,GDixon), approve(87-07-13,MCR7741), 10 21* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 10 22* Add named constants for instance tags. 10 23* END HISTORY COMMENTS */ 10 24 10 25 dcl (WAIT_DIALUP init (1), /* Channel waiting for dialup. */ 10 26 WAIT_ANSWERBACK initial (2), /* WRU sent, waiting for reply */ 10 27 WAIT_LOGIN_LINE init (3), /* Greeting typed, wait for login command. */ 10 28 WAIT_LOGIN_ARGS init (4), /* Want rest of login line */ 10 29 WAIT_OLD_PASSWORD init (5), /* "-cpw" was specified. Wait for old password. */ 10 30 WAIT_PASSWORD init (6), /* Waiting for password. (If "-cpw", repeat of new one.) */ 10 31 WAIT_NEW_PASSWORD init (7), /* "-cpw" was specified. Wait for new password */ 10 32 WAIT_LOGOUT_SIG init (8), /* Channel is hooked up. Wait for logout. */ 10 33 WAIT_LOGOUT init (9), /* A logout has been requested. Wait for process to die */ 10 34 WAIT_LOGOUT_HOLD init (10), /* As above but don't hang up when it dies. */ 10 35 WAIT_DETACH init (11), /* As above but ignore channel afterwards. */ 10 36 WAIT_NEW_PROC init (12), /* As above but make new process and continue. */ 10 37 WAIT_REMOVE init (13), /* As above but completely expunge channel. */ 10 38 WAIT_FIN_PRIV_ATTACH init (14), /* When channel dials up, connect it to user */ 10 39 WAIT_DIAL_RELEASE init (15), /* Waiting for master process to release. */ 10 40 WAIT_DIAL_OUT init (16), /* Waiting for auto call to complete */ 10 41 WAIT_HANGUP init (17), /* Wait for the hangup event to occur for a channel */ 10 42 WAIT_SLAVE_REQUEST init (18), /* Ignore line until someone asks */ 10 43 WAIT_GREETING_MSG init (19), /* Print greeting message and wait for login line */ 10 44 WAIT_DELETE_CHANNEL init (20), /* Channel deleted - mark cdte after process is destroyed */ 10 45 WAIT_CONNECT_REQUEST init (21), /* logged in; awaiting request re disconnected processes */ 10 46 WAIT_TANDD_HANGUP init (22), /* when channel hangs up, proceed with t & d attachment */ 10 47 WAIT_FIN_TANDD_ATTACH init (23), /* when channel dials up, finish t & d attachment */ 10 48 WAIT_DISCARD_WAKEUPS init (24), /* disregard all wakeups on channel */ 10 49 WAIT_BEFORE_HANGUP init (25), /* allow output to print before hanging up */ 10 50 WAIT_DESTROY_REQUEST init (26), /* waiting to continue with destroy request after process has destroyed itself */ 10 51 WAIT_NEW_PROC_REQUEST init (27) /* waiting to continue with new_proc request after process has destroyed itself */ 10 52 ) fixed bin internal static options (constant); 10 53 10 54 dcl TRA_VEC_VALUES (0:13) char (32) aligned int static options (constant) init 10 55 /* names of ute.destroy_flag values */ 10 56 ("", "wait dialup", "wait answerback", "wait login line", /* 0-3 */ 10 57 "wait login args", "wait old password", "wait password", /* 4-6 */ 10 58 "wait new password", "wait logout signal", "wait logout", /* 7-9 */ 10 59 "wait logout hold", "wait detach", "wait new proc", /* 10-12 */ 10 60 "wait remove"); /* -13 */ 10 61 10 62 /* Values for "cdte.state", typewriter state. */ 10 63 10 64 dcl (TTY_MASKED init (-1), /* Terminal channel is there, but masked by MCS */ 10 65 TTY_HUNG init (1), /* Terminal channel is there, but dead. */ 10 66 TTY_KNOWN init (2), /* Channel being "listened" to, awaiting dialup. */ 10 67 TTY_DIALED init (5) /* Channel is dialed up. This is normal state. */ 10 68 ) fixed bin internal static options (constant); 10 69 10 70 dcl STATE_VALUES (-1:5) char (15) aligned int static options (constant) init 10 71 /* names of cdte.state values */ 10 72 ("masked", "dead", "hung up", "listening", "", "", "dialed up"); 10 73 10 74 /* Values for "cdte.in_use" and "ate.active" */ 10 75 10 76 dcl (NOW_FREE init (0), /* Entry is empty. */ 10 77 NOW_HUNG_UP init (1), /* Entry is usable but tty is hung up. */ 10 78 NOW_LISTENING init (2), /* Entry is waiting for phone call. */ 10 79 NOW_DIALED init (3), /* Entry is connected but login not complete. */ 10 80 NOW_LOGGED_IN init (4), /* Entry is logged in but no process. */ 10 81 NOW_HAS_PROCESS init (5), /* Entry has a valid process. */ 10 82 NOW_DIALING init (6), /* Entry (auto_call line) is dialing */ 10 83 NOW_DIALED_OUT init (7) /* Entry (auto_call line) is in use */ 10 84 ) fixed bin internal static options (constant); 10 85 10 86 dcl ACTIVE_VALUES (0:5) char (18) aligned int static options (constant) init 10 87 /* names of ute.active values */ 10 88 ("free", "hung-up", "listening", "dialed", "logged in, no proc", "logged in & proc"); 10 89 10 90 10 91 /**** Values for ute.tag */ 10 92 10 93 dcl (TAG_INTERACTIVE init("a"), 10 94 TAG_UFT init("f"), 10 95 TAG_ABSENTEE init("m"), 10 96 TAG_PROXY init("p"), 10 97 TAG_DAEMON init("z") 10 98 ) char(1) int static options(constant); 10 99 10 100 10 101 /**** Following are constants used to indicate to the process termination 10 102* handler the reason for the process termination. They are used by 10 103* uc_proc_term_handler_, as well as uc_ls_new_proc_request_ and 10 104* uc_ls_destroy_request_. */ 10 105 10 106 dcl ( 10 107 PT_FPE initial (1), 10 108 PT_LOGOUT initial (4), 10 109 PT_NEW_PROC_AUTH initial (13), 10 110 PT_HANGUP initial (20), 10 111 PT_SHUTDOWN initial (21), 10 112 PT_BUMP initial (22), 10 113 PT_ALARM initial (23), 10 114 PT_DETACH initial (24), 10 115 PT_UNBUMP initial (25), 10 116 PT_OPERATOR_TERMINATE initial (27), 10 117 PT_DESTROY_REQUEST initial (30), 10 118 PT_NEW_PROC_REQUEST initial (31) 10 119 ) fixed bin (17) internal static options (constant); 10 120 10 121 /**** Values for ute.preempted: 10 122* -1 user unbumped after term signal sent 10 123* 0 user unbumped; ignore alarm___ 10 124* 1 value internally used in load_ctl_ 10 125* 2 user bumped; when alarm___ comes in, send term signal 10 126* 3 term signal sent; destroy process if termsgnl, alarm___, or cpulimit 10 127* signals come in 10 128* 4 user bumped; process sick, so destroy without sending term signal 10 129* 5 trm_ signal sent, termsgnl received; (if still 3, we never got the 10 130* termsgnl). */ 10 131 10 132 dcl ( 10 133 PREEMPT_UNBUMP initial (-1), 10 134 PREEMPT_UNBUMP_IGNORE_ALARM initial (0), 10 135 PREEMPT_LOAD_CTL initial (1), 10 136 PREEMPT_BUMPED initial (2), 10 137 PREEMPT_TERM_SENT initial (3), 10 138 PREEMPT_BUMPED_NO_TERM initial (4), 10 139 PREEMPT_TERMSGNL_RECEIVED initial (5) 10 140 ) fixed bin (17) internal static options(constant); 10 141 10 142 dcl PREEMPT_VALUES (-1:5) char(28) varying int static options(constant) init( 10 143 "unbumped", 10 144 "not bumped, ignore alarm___", 10 145 "load_ctl_", 10 146 "bumped", 10 147 "bumped, trm_ sent", 10 148 "bumped without trm_", 10 149 "bumped, termsgnl received"); 10 150 10 151 /* END INCLUDE FILE ... dialup_values.incl.pl1 */ 1382 1383 /* BEGIN INCLUDE FILE ... daemon_user_table.incl.pl1 */ 11 2 11 3 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 11 4 /* */ 11 5 /* The daemon_user_table has one entry per daemon. Daemons are logged in by */ 11 6 /* operator command or automatically. If they do any I/O, it is done via */ 11 7 /* the message coordinator. */ 11 8 /* */ 11 9 /* Programs using this include file must also use user_table_header.incl.pl1 */ 11 10 /* and user_table_entry.incl.pl1. */ 11 11 /* */ 11 12 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 11 13 11 14 11 15 /****^ HISTORY COMMENTS: 11 16* 1) change(81-09-10,Kittlitz), approve(), audit(), install(): 11 17* Initially coded from dutbl.incl.pl1. 11 18* 2) change(87-04-26,GDixon), approve(87-07-13,MCR7741), 11 19* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 11 20* A) Add use of ut_header common to all user control tables. 11 21* B) Corrected padding prior to first ute entry. 11 22* END HISTORY COMMENTS */ 11 23 11 24 11 25 dcl DUTBL_version_4 fixed bin int static init (4); /* version of this declaration */ 11 26 11 27 dcl dutp ptr automatic init (null); 11 28 11 29 dcl 1 dutbl based (dutp) aligned, /* Daemon user table */ 11 30 2 header like ut_header, /* Header common to all user tables. */ 11 31 11 32 2 active_count fixed bin, /* the count of active daemons managed by DUM_ */ 11 33 11 34 2 entry_pad (117) fixed bin, /* pad to 128 words */ 11 35 2 entry (0 refer (dutbl.current_size)) like ute; /* daemon user entries */ 11 36 11 37 /* END INCLUDE FILE ... daemon_user_table.incl.pl1 */ 1383 1384 /* BEGIN INCLUDE FILE ... installation_parms.incl.pl1 */ 12 2 12 3 /* Modified 740723 by PG to add short AIM access names */ 12 4 /* Modified Fall 1977 by T. Casey to add fatal loop and trm_ signal parameters */ 12 5 /* Modified 04/03/78 by CDT to add rcp_init_flags structure */ 12 6 /* Modified May 1978 by T. Casey to add resource timer and resource price list parameters */ 12 7 /* Modified November 1978 by T. Casey for MR7.0, to add absentee control parameters */ 12 8 /* Modified 17 September 1980 by G. Palter to add default absentee queue */ 12 9 /* Modified April 1981 by E. N. Kittlitz for chn_wakeup_error_loop, chn_wakeup_error_count */ 12 10 /* Modified June 1981 by E. N. Kittlitz for nrates/rate_structures UNCA rate_structure support. 12 11* Version, expand foregound_cpu_default_limit and abs_cpu_max_limit to fixed bin (35) fields. 12 12* nrscp & resource array moved from offset 2064 (octal) to 2400 (octal). */ 12 13 /* Modified 1984-06-19 BIM to remove obsolete fields, and add 12 14* strict_trusted_path. */ 12 15 /* Modified 1984-10-24 BIM for default_pdir_quota. */ 12 16 /* Modified 1984-12-05 BIM for require_operator_login. */ 12 17 /* Modified 1985-03-01 by E. Swenson for password flags. */ 12 18 12 19 12 20 /****^ HISTORY COMMENTS: 12 21* 1) change(86-01-27,MSharpe), approve(87-05-25,MCR7690), 12 22* audit(87-03-29,GDixon), install(87-08-04,MR12.1-1056): 12 23* added vchn_requires_accept parameter. 12 24* 2) change(87-02-17,GDixon), approve(87-05-25,MCR7680), 12 25* audit(87-06-02,Parisek), install(87-08-04,MR12.1-1056): 12 26* Correct formatting problems. 12 27* END HISTORY COMMENTS */ 12 28 12 29 12 30 /* NOTE: rate_structure.incl.pl1 uses these declarations */ 12 31 12 32 12 33 dcl 1 installation_parms based (ip) aligned, /* describes installation parameters */ 12 34 2 part_1 like installation_parms_part_1 aligned, 12 35 2 resource (0 refer (installation_parms.nrscp)) like installation_parms_resource_array_part aligned; 12 36 12 37 dcl installation_parms_version_1 fixed bin init (1) static internal options (constant); 12 38 dcl installation_parms_version_2 fixed bin init (2) static internal options (constant); 12 39 12 40 dcl 1 installation_parms_part_1 based aligned, /* Used only by installation_parms and rate_structure */ 12 41 2 installation_id char (32), /* Name printed at dialup and in who */ 12 42 2 company char (64), /* company name */ 12 43 2 department char (64), /* department */ 12 44 2 companyds char (120), /* company, double spaced */ 12 45 2 departmentds char (120), /* dpeartment double spaced */ 12 46 2 shifttab (336) bit (3) unal, /* half-hrs from 0000 Mon, value is shift no */ 12 47 2 cpu_price (0: 7) float bin, /* price for cpu hour, by shift */ 12 48 2 log_base_price (0: 7) float bin, /* price for log hour, by shift */ 12 49 2 io_ops_price (0: 7) float bin, /* price per 1000 terminal io ops */ 12 50 2 core_price (0: 7) float bin, /* price for core page-hour, by shift */ 12 51 2 ndevices fixed bin, /* number of devices to charge */ 12 52 2 devtab (16), /* Maximum 16 */ 12 53 3 device_id char (8), /* Name of device */ 12 54 3 device_price (0: 7) float bin, /* Price by shift */ 12 55 2 inactive_time fixed bin, /* seconds of inactivity permitted */ 12 56 2 warning_time fixed bin, /* seconds from warning to logout */ 12 57 2 login_time fixed bin, /* seconds in which to complete login */ 12 58 2 acct_update fixed bin, /* seconds between acct update */ 12 59 2 login_tries fixed bin, /* number of login tries allowed */ 12 60 2 disk_price float bin, /* disk rate, in $/page-sec */ 12 61 2 registration_price float bin, /* fee per month per user */ 12 62 2 dolsign char (1), /* "dollar sign" */ 12 63 2 abs_cpu_price (4) float bin, /* price for absentee cpu by queue */ 12 64 2 abs_mem_price (4) float bin, /* Absentee memory charge */ 12 65 2 iod_rec_price (4) float bin, /* price for io daemon lines, per K, by queue */ 12 66 2 abs_timax (4) fixed bin (35), /* Absentee TIMAX parameter */ 12 67 2 abs_cpu_default_limit (4) fixed bin (35), /* default absentee cpu limit in seconds (changed from usec.) */ 12 68 2 syserr_log_copy_threshold fixed bin (9), /* Threshold (in PAGES) at which the 12 69* Initializer will copy the syserr_log */ 12 70 2 default_pdir_seg_quota fixed bin (17) unaligned, /* if system and project say 0 */ 12 71 2 default_pdir_dir_quota fixed bin (17) unaligned, /* Always used */ 12 72 2 fatal_error_loop_count fixed bin (17) unaligned, 12 73 2 fatal_error_loop_seconds fixed bin (17) unaligned, 12 74 2 term_real_time_seconds fixed bin (17) unaligned, 12 75 2 term_cpu_time_seconds fixed bin (17) unaligned, 12 76 2 rcp_init_flags like rcp_init_flags aligned, /* one word long */ 12 77 2 rsc_timer_seconds fixed bin (17) unaligned, /* time interval at which to check for resource availability */ 12 78 2 pad_old_fg_cpu_default_limit bit (18) unaligned, 12 79 2 foreground_queue_position fixed bin (17) unal, /* queue that foreground queue comes after */ 12 80 2 idle_time_constant_seconds fixed bin (17) unal, /* how far back to maintain moving average of load */ 12 81 2 sus_cpu_time_seconds fixed bin (17) unal, /* allow suspended process this much cpu time */ 12 82 2 sus_real_time_seconds fixed bin (17) unal, /* and this much real time, before bumping it */ 12 83 2 foreground_cpu_default_limit fixed bin (35), /* default cpu time limit (sec) for foreground absentee jobs */ 12 84 2 access_authorization_ceiling bit (72), /* "System high" access authorization. */ 12 85 2 level_names (0:7) char (32), /* Names for security levels. */ 12 86 2 category_names (18) char (32), /* Names for security categories. */ 12 87 2 short_level_names (0:7) char (8), /* Abbreviated level names. */ 12 88 2 short_category_names (18) char (8), /* Abbreviated category names. */ 12 89 2 ncon fixed bin, /* Number of config elements. */ 12 90 2 cona (51), /* each entry is 5 words long */ 12 91 3 cpu fixed bin (5) unal, /* Number of CPU's */ 12 92 3 shift fixed bin (5) unal, /* Shift number */ 12 93 3 x1 fixed bin (23) unal, 12 94 3 kmem fixed bin (17) unal, /* Memory size */ 12 95 3 kbulk fixed bin (17) unal, /* Bulk store size */ 12 96 3 x2 fixed bin (17) unal, 12 97 3 maxa fixed bin (11) unal, /* Max abs users */ 12 98 3 maxq fixed bin (5) unal, /* Max abs q */ 12 99 3 maxu_base fixed bin (17) unal, 12 100 3 response_high fixed bin (17) unal, 12 101 3 response_low fixed bin (17) unal, 12 102 3 x3 fixed bin (17) unal, 12 103 12 104 /* Absentee control parameters. New for MR7.0 */ 12 105 12 106 2 max_abs (0:7) fixed bin (17) unal, /* per-shift upper limit on abs_maxu */ 12 107 2 min_abs (0:7) fixed bin (17) unal, /* per-shift lower limit on abs_maxu */ 12 108 2 pct_abs (0:7) fixed bin (17) unal, /* abs_maxu is this pct (per-shift) of idle units */ 12 109 12 110 2 max_qres (0:7, 4) fixed bin (17) unal, /* per-shift-and-queue upper limit on reserved slots */ 12 111 2 min_qres (0:7, 4) fixed bin (17) unal, /* per-shift-and-queue lower limit on reserved slots */ 12 112 2 pct_qres (0:7, 4) fixed bin (17) unal, /* reserved slots are these pcts of abs_maxu */ 12 113 12 114 2 abs_cpu_max_limit (0:7, 4) fixed bin (35), /* per-shift-and-queue upper limit (sec) on jobs' cpu times */ 12 115 12 116 2 default_absentee_queue fixed binary (17) unaligned, /* default absentee queue for ear, etc. */ 12 117 12 118 2 chn_wakeup_error_loop_count fixed bin (17) unaligned, /* maximum number of channel wakeups in following interval */ 12 119 2 chn_wakeup_error_loop_seconds fixed bin (17) unaligned, /* works like fatal_error_loop_count/seconds */ 12 120 2 rate_structure_number fixed bin (17) unaligned, /* rate_structure number of this RS */ 12 121 2 version fixed bin (35), /* must be 2 */ 12 122 2 nrates fixed bin, /* number of rate structures */ 12 123 2 rate_structures (0:9) char (32), /* names of rate_structures */ 12 124 2 trusted_path_login bit (1) aligned, /* forbid logout -hold and new_proc -auth */ 12 125 2 require_operator_login bit (1) aligned, /* just what it says */ 12 126 2 operator_inactive_time fixed bin, /* seconds between commands --> not logged in. */ 12 127 2 validate_daemon_commands bit (1) aligned, /* force existence and adequate access to 12 128* mcacs segments for operators */ 12 129 2 password_min_length fixed bin, /* minimum length of passwords */ 12 130 2 password_gpw_length fixed bin, /* length of generated passwords */ 12 131 2 password_change_interval fixed bin, /* number of days until must change */ 12 132 2 password_expiration_interval fixed bin, /* number of days that a password may remain unused */ 12 133 2 vchn_requires_accept bit (1) aligned, /* "login personid -op -vchn foo" must be 12 134* "accepted" by operator if personid is not 12 135* signed on system console */ 12 136 2 end_pad (219) bit (36) aligned, /* leave plenty of pad before the variable length price list */ 12 137 2 nrscp fixed bin; /* length of resource price array; must have offset 2400 (octal), 12 138* or someone miscounted when using part of pad2 */ 12 139 12 140 12 141 /* Entries in the following array may be accessed via system_info_$resource_price. 12 142* This array should not be accessed directly, since its format will change in subsequent releases of Multics. */ 12 143 12 144 dcl 1 installation_parms_resource_array_part (0 refer (installation_parms.nrscp)) based, 12 145 2 name char (32), 12 146 2 price float bin; 12 147 13 1 /* BEGIN INCLUDE FILE ... rcp_init_flags.incl.pl1 */ 13 2 13 3 /* Created on 04/24/78 by Michael R. Jordan */ 13 4 /* Modified 04/10/79 by C. D. Tavares */ 13 5 13 6 dcl rifp ptr; 13 7 13 8 dcl 1 rcp_init_flags based (rifp), 13 9 2 unload_on_detach bit (1) unaligned, /* ON => tape volumes are unloaded after detaching */ 13 10 2 pad1 bit (2) unaligned, /* obsolete */ 13 11 2 resource_mgmt_enabled bit (1) unaligned, /* ON => resource management has been enabled */ 13 12 2 auto_registration bit (1) unaligned, /* ON => auto registration allowed */ 13 13 2 pad2 bit (2) unaligned, /* future expansion, possibly of authentication_level */ 13 14 2 authentication_level fixed bin (2) unaligned unsigned; /* see below for values */ 13 15 13 16 dcl (No_authentication initial (0), 13 17 Nominal_authentication initial (1), 13 18 Automatic_authentication initial (2), 13 19 Manual_authentication initial (3)) fixed bin internal static options (constant); 13 20 13 21 dcl authentication_level_names (0:3) char (12) internal static options (constant) initial 13 22 ("none", "nominal", "automatic", "manual"); 13 23 13 24 /* END INCLUDE FILE ... rcp_init_flags.incl.pl1 */ 12 148 12 149 12 150 /* END INCLUDE FILE ... installation_parms.incl.pl1 */ 1384 1385 /* BEGIN INCLUDE FILE ... line_types.incl.pl1 */ 14 2 14 3 /* Written November 10 1975 by Paul Green */ 14 4 /* Modified October 1978 by Larry Johnson to include line_type_names */ 14 5 /* Modified 12/19/78 by J. Stern to add POLLED_VIP line type */ 14 6 /* Modified 9/27/79 by J. Stern to add X25LAP line type */ 14 7 /* Modified Spring 1981 by Charles Hornig to add HDLC line type */ 14 8 /* Modified May 1981 by Robert Coren to add COLTS line type */ 14 9 /* Modified September 1984 by Robert Coren to correctly count VIP as a synchronous line type */ 14 10 14 11 14 12 /****^ HISTORY COMMENTS: 14 13* 1) change(86-02-25,Negaret), approve(87-07-13,MCR7679), 14 14* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 14 15* Add a DSA line type. 14 16* 2) change(87-03-17,Beattie), approve(87-07-13,MCR7656), 14 17* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 14 18* Add HASP_OPR to identify HASP workstation consoles with login service. 14 19* END HISTORY COMMENTS */ 14 20 14 21 14 22 declare (LINE_MC initial (-2), 14 23 LINE_TELNET initial (-1), 14 24 LINE_UNKNOWN initial (0), 14 25 LINE_ASCII initial (1), 14 26 LINE_1050 initial (2), 14 27 LINE_2741 initial (3), 14 28 LINE_ARDS initial (4), 14 29 LINE_SYNCH initial (5), 14 30 LINE_G115 initial (6), 14 31 LINE_BSC initial (7), 14 32 LINE_ETX initial (8), 14 33 LINE_VIP initial (9), 14 34 LINE_ASYNC1 initial (10), 14 35 LINE_ASYNC2 initial (11), 14 36 LINE_ASYNC3 initial (12), 14 37 LINE_SYNC1 initial (13), 14 38 LINE_SYNC2 initial (14), 14 39 LINE_SYNC3 initial (15), 14 40 LINE_POLLED_VIP initial (16), 14 41 LINE_X25LAP initial (17), 14 42 LINE_HDLC initial (18), 14 43 LINE_COLTS initial (19), 14 44 LINE_DSA initial (20), 14 45 LINE_HASP_OPR initial (21) 14 46 ) fixed bin internal static options (constant); 14 47 14 48 dcl max_line_type fixed bin int static options (constant) init (21); 14 49 14 50 declare n_sync_line_types fixed bin int static options (constant) init (10); 14 51 14 52 declare sync_line_type (10) fixed bin int static options (constant) init (5, 6, 7, 9, 13, 14, 15, 16, 17, 18); 14 53 14 54 dcl line_types (-2:21) char (16) int static options (constant) init ( 14 55 "MC", /* -2 */ 14 56 "TELNET", /* -1 */ 14 57 "none", /* 0 */ 14 58 "ASCII", /* 1 */ 14 59 "1050", /* 2 */ 14 60 "2741", /* 3 */ 14 61 "ARDS", /* 4 */ 14 62 "Sync", /* 5 */ 14 63 "G115", /* 6 */ 14 64 "BSC", /* 7 */ 14 65 "202ETX", /* 8 */ 14 66 "VIP", /* 9 */ 14 67 "ASYNC1", /* 10 */ 14 68 "ASYNC2", /* 11 */ 14 69 "ASYNC3", /* 12 */ 14 70 "SYNC1", /* 13 */ 14 71 "SYNC2", /* 14 */ 14 72 "SYNC3", /* 15 */ 14 73 "POLLED_VIP", /* 16 */ 14 74 "X25LAP", /* 17 */ 14 75 "HDLC", /* 18 */ 14 76 "COLTS", /* 19 */ 14 77 "DSA", /* 20 */ 14 78 "HASP_OPR"); /* 21 */ 14 79 14 80 /* END INCLUDE FILE ... line_types.incl.pl1 */ 1385 1386 /* BEGIN INCLUDE FILE process_status_return.incl.pl1 */ 15 2 15 3 /* T. Casey, May 1978 */ 15 4 15 5 dcl 1 process_status_return aligned, /* structure returned by hphcs_$process_status */ 15 6 2 target_proc bit (36), /* Input process id. */ 15 7 2 total_page_faults fixed bin (35), /* Total page faults in process. */ 15 8 2 aptptr ptr, /* ptr to user APTE */ 15 9 2 up_exec fixed bin, /* execution state. 1=run, 4=block */ 15 10 2 up_mp fixed bin, /* multiprogramming state. */ 15 11 2 up_block fixed bin (71), /* time of last block */ 15 12 2 up_cpu fixed bin (71), /* CPU usage in microseconds */ 15 13 2 up_page fixed bin (71), /* memory usage in Frankstons */ 15 14 2 virtual_cpu fixed bin (71), /* Process virtual CPU time */ 15 15 2 extra2 fixed bin (71); 15 16 15 17 /* END INCLUDE FILE process_status_return.incl.pl1 */ 1386 1387 /* BEGIN: sc_stat_.incl.pl1 * * * * * */ 16 2 16 3 16 4 /****^ HISTORY COMMENTS: 16 5* 1) change(87-02-04,GDixon), approve(87-05-25,MCR7690), 16 6* audit(87-06-02,Parisek), install(87-08-04,MR12.1-1056): 16 7* Add sc_stat_$vchn_requires_accept in support of DSA virtual channels. 16 8* 2) change(87-02-04,GDixon), approve(87-05-25,MCR7680), 16 9* audit(87-06-02,Parisek), install(87-08-04,MR12.1-1056): 16 10* Reorganized by type of data to improve readability. 16 11* END HISTORY COMMENTS */ 16 12 16 13 16 14 /* ACCESS NAMES */ 16 15 dcl ( 16 16 sc_stat_$exec_access_name, /* check MC access in an exec request */ 16 17 sc_stat_$unidentified_access_name /* check access if no one is logged in. */ 16 18 ) char(32) ext static; 16 19 16 20 /* PATHNAMES */ 16 21 dcl ( 16 22 sc_stat_$info_dir, /* admin info segs directory */ 16 23 sc_stat_$log_dir, /* as log segs directory */ 16 24 sc_stat_$mc_acs_dir, /* message coordinator ACS segments (.mcacs) dir */ 16 25 sc_stat_$sysdir /* system control directory */ 16 26 ) char(168) ext static; 16 27 16 28 /* OTHER CHAR STRINGS */ 16 29 dcl ( 16 30 sc_stat_$master_channel /* Master TTY channel. */ 16 31 ) char(6) aligned ext static; 16 32 16 33 /* LABELS */ 16 34 dcl ( 16 35 sc_stat_$admin_listener_exit_label, /* GO here to exit admin mode. Set to */ 16 36 /* ssu_$null_label unless */ 16 37 /* admin_listener is active. */ 16 38 sc_stat_$master_abort_label, /* GO here after fault that is not */ 16 39 /* attributable to a particular */ 16 40 /* command. */ 16 41 sc_stat_$system_shutdown_label /* GO here to shut down system */ 16 42 ) label variable ext static; 16 43 16 44 /* POINTERS TO */ 16 45 dcl ( 16 46 sc_stat_$admin_log_iocb, /* IOCB for admin log */ 16 47 sc_stat_$admin_log_write_ptr, /* DATA for log_write_ calls on the admin log */ 16 48 sc_stat_$admin_sci_ptr, /* DATA ssu_ for terminal currently executing */ 16 49 sc_stat_$as_log_write_ptr, /* DATA for log_write_ calls on as log, used */ 16 50 /* by sys_log_. */ 16 51 sc_stat_$initzer_ttyp, /* ENT mc_ate for initializer terminal */ 16 52 sc_stat_$master_iocb, /* IOCB for "master_i/o" */ 16 53 sc_stat_$master_sci_ptr, /* DATA ssu_ (permanent) for system control */ 16 54 sc_stat_$mc_ansp, /* HEAD of mc_anstbl */ 16 55 sc_stat_$mc_iocb, /* IOCB ptr for "mc_i/o" */ 16 56 sc_stat_$sv1_iocb, /* IOCB ptr for "severity1" */ 16 57 sc_stat_$sv2_iocb, /* IOCB ptr for "severity2" */ 16 58 sc_stat_$sv3_iocb /* IOCB ptr for "severity3" */ 16 59 ) ptr ext static; 16 60 16 61 /* SWITCHES */ 16 62 dcl ( 16 63 sc_stat_$Go, /* TRUE after answering service is listening*/ 16 64 sc_stat_$Go_typed, /* TRUE immediately after 'go' is typed */ 16 65 sc_stat_$Multics, /* TRUE after answering service started */ 16 66 sc_stat_$Multics_typed, /* TRUE immediately after 'mult' is typed */ 16 67 sc_stat_$Star_typed, /* TRUE if 'mult' and 'go' came from 'star' */ 16 68 sc_stat_$admin_listener_switch, /* TRUE if in the admin listener */ 16 69 sc_stat_$did_part1, /* TRUE if part 1 of system startup ec done */ 16 70 sc_stat_$did_part2, /* TRUE if part 2 of system startup ec done */ 16 71 sc_stat_$did_part3, /* TRUE if part 3 of system startup ec done */ 16 72 sc_stat_$mc_is_on, /* TRUE if message coordinator running */ 16 73 sc_stat_$no_operator_login, /* TRUE if operator login not required, or */ 16 74 /* if PNT not yet available. */ 16 75 sc_stat_$shutdown_typed, /* TRUE if 'shutdown' command in progress. */ 16 76 sc_stat_$test_mode, /* TRUE if in test environment */ 16 77 sc_stat_$vchn_requires_accept /* TRUE if vchn may only be used if accepted*/ 16 78 /* by operator signed on system console*/ 16 79 ) bit(1) aligned ext static; 16 80 16 81 16 82 /* END OF: sc_stat_.incl.pl1 * * * * * */ 1387 1388 /* BEGIN INCLUDE FILE sys_log_constants.incl.pl1 ... 82-09-24 E. N. Kittlitz */ 17 2 17 3 17 4 /****^ HISTORY COMMENTS: 17 5* 1) change(87-04-22,GDixon), approve(87-06-10,MCR7708), 17 6* audit(87-06-02,Parisek), install(87-08-04,MR12.1-1056): 17 7* Added sl_info structure and associated named constants for use in calling 17 8* sys_log_$general. 17 9* END HISTORY COMMENTS */ 17 10 17 11 17 12 /* format: style4 */ 17 13 17 14 dcl ( 17 15 SL_TYPE_CRASH init (-3), /* type message with banner & kill system */ 17 16 SL_TYPE_BEEP init (-2), /* type message with banner */ 17 17 SL_TYPE init (-1), /* type message */ 17 18 SL_LOG_SILENT init (0), /* log message */ 17 19 SL_LOG init (1), /* log & type message */ 17 20 SL_LOG_BEEP init (2), /* log & type message with banner */ 17 21 SL_LOG_CRASH init (3) /* log & type message with banner & kill system */ 17 22 ) fixed bin internal static options (constant); 17 23 17 24 dcl 1 sl_info aligned automatic, 17 25 2 version char(8), /* structure version */ 17 26 2 arg_list_ptr ptr, /* arg_list with values */ 17 27 2 loc, 17 28 3 (mode, severity, code, caller, data, class, ioa_msg) fixed bin, 17 29 /* These flags control where the corresponding data item is found.*/ 17 30 /* -1: data appears in the corresponding structure element below */ 17 31 /* 0: data is not present anywhere */ 17 32 /* +N: data is Nth item in argument list pointed to by */ 17 33 /* sl_info.arg_list_ptr. Upon return, data copied into */ 17 34 /* corresponding structure element. */ 17 35 /* if data = +N: */ 17 36 /* argN is data_ptr, argN+1 is data_len */ 17 37 /* if ioa_msg = +N: */ 17 38 /* argN+1, ... argLAST are arguments substituted into the */ 17 39 /* ioa_msg control string. The formatted msg is returned. */ 17 40 2 flags, 17 41 3 ioa_msg_is_error_code bit(1) unal, /* ioa_ctl is error code. */ 17 42 3 flags_pad bit(35) unal, 17 43 2 mode fixed bin, /* as-mode, command-mode */ 17 44 2 severity fixed bin, /* error severity */ 17 45 2 code fixed bin(35), /* error table code */ 17 46 2 caller char(65) varying, /* caller refname$entryname*/ 17 47 2 data, /* binary data ptr/length */ 17 48 3 data_ptr ptr, 17 49 3 data_lth fixed bin(21), 17 50 2 class char(10) varying, /* binary data class */ 17 51 2 ioa_msg char(500) varying; /* formatted message text */ 17 52 17 53 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 17 54 /* */ 17 55 /* If data values (eg, sl_info.caller) are passed in the argument list, */ 17 56 /* their data types should be as shown in the structure above, except that */ 17 57 /* character strings should be char(*) nonvarying. */ 17 58 /* */ 17 59 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 17 60 17 61 /* value for sl_info.version */ 17 62 dcl SL_INFO_version_1 char (8) int static options(constant) init("sl_info1"); 17 63 17 64 /* values for sl_info.mode */ 17 65 dcl (SL_INFO_as_mode init(1), 17 66 SL_INFO_command_mode init(2)) fixed bin int static options(constant); 17 67 17 68 /* values for sl_info.loc.(severity code caller data class ioa_ctl arg) */ 17 69 dcl (SL_INFO_arg_given_in_structure init(-1), 17 70 SL_INFO_arg_not_given init(0)) fixed bin int static options(constant); 17 71 17 72 17 73 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 17 74 /* */ 17 75 /* The following static structures are commonly used in the Login Server */ 17 76 /* user control software. */ 17 77 /* */ 17 78 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 17 79 17 80 /* Syntax: call Abort (severity, code, ioa_ctl, args); */ 17 81 17 82 dcl 1 sl_info_sev_code_msg aligned int static options(constant), 17 83 2 version char(8) init ("sl_info1"), 17 84 2 arg_list_ptr ptr init (null), 17 85 2 loc, 17 86 3 (mode init (-1), 17 87 severity init ( 1), 17 88 code init ( 2), 17 89 caller init (-1), 17 90 data init ( 0), 17 91 class init ( 0), 17 92 ioa_msg init ( 3)) fixed bin, 17 93 2 flags, 17 94 3 ioa_msg_is_error_code bit(1) unal init ("0"b), 17 95 3 flags_pad bit(35) unal init ("0"b), 17 96 2 mode fixed bin init ( 1), 17 97 2 severity fixed bin init ( 0), 17 98 2 code fixed bin(35) init ( 0), 17 99 2 caller char(65) varying init (""), 17 100 2 data, 17 101 3 data_ptr ptr init (null), 17 102 3 data_lth fixed bin(21) init ( 0), 17 103 2 class char(10) varying init (""), 17 104 2 ioa_msg char(500) varying init (""); 17 105 17 106 /* Syntax: call Abort (severity, ioa_ctl, args); */ 17 107 17 108 dcl 1 sl_info_sev_msg aligned int static options(constant), 17 109 2 version char(8) init ("sl_info1"), 17 110 2 arg_list_ptr ptr init (null), 17 111 2 loc, 17 112 3 (mode init (-1), 17 113 severity init ( 1), 17 114 code init ( 0), 17 115 caller init (-1), 17 116 data init ( 0), 17 117 class init ( 0), 17 118 ioa_msg init ( 2)) fixed bin, 17 119 2 flags, 17 120 3 ioa_msg_is_error_code bit(1) unal init ("0"b), 17 121 3 flags_pad bit(35) unal init ("0"b), 17 122 2 mode fixed bin init ( 1), 17 123 2 severity fixed bin init ( 0), 17 124 2 code fixed bin(35) init ( 0), 17 125 2 caller char(65) varying init (""), 17 126 2 data, 17 127 3 data_ptr ptr init (null), 17 128 3 data_lth fixed bin(21) init ( 0), 17 129 2 class char(10) varying init (""), 17 130 2 ioa_msg char(500) varying init (""); 17 131 17 132 /* Syntax: call Abort (severity, ioa_ctl_as_error_code, args); */ 17 133 17 134 dcl 1 sl_info_sev_coded_msg aligned int static options(constant), 17 135 2 version char(8) init ("sl_info1"), 17 136 2 arg_list_ptr ptr init (null), 17 137 2 loc, 17 138 3 (mode init (-1), 17 139 severity init ( 1), 17 140 code init ( 0), 17 141 caller init (-1), 17 142 data init ( 0), 17 143 class init ( 0), 17 144 ioa_msg init ( 2)) fixed bin, 17 145 2 flags, 17 146 3 ioa_msg_is_error_code bit(1) unal init ("1"b), 17 147 3 flags_pad bit(35) unal init ("0"b), 17 148 2 mode fixed bin init ( 1), 17 149 2 severity fixed bin init ( 0), 17 150 2 code fixed bin(35) init ( 0), 17 151 2 caller char(65) varying init (""), 17 152 2 data, 17 153 3 data_ptr ptr init (null), 17 154 3 data_lth fixed bin(21) init ( 0), 17 155 2 class char(10) varying init (""), 17 156 2 ioa_msg char(500) varying init (""); 17 157 17 158 17 159 /* Syntax: call Abort (severity, code, error_return_label, ioa_ctl, args); */ 17 160 17 161 dcl 1 sl_info_sev_code_label_msg aligned int static options(constant), 17 162 2 version char(8) init ("sl_info1"), 17 163 2 arg_list_ptr ptr init (null), 17 164 2 loc, 17 165 3 (mode init (-1), 17 166 severity init ( 1), 17 167 code init ( 2), 17 168 caller init (-1), 17 169 data init ( 0), 17 170 class init ( 0), 17 171 ioa_msg init ( 4)) fixed bin, 17 172 2 flags, 17 173 3 ioa_msg_is_error_code bit(1) unal init ("0"b), 17 174 3 flags_pad bit(35) unal init ("0"b), 17 175 2 mode fixed bin init ( 1), 17 176 2 severity fixed bin init ( 0), 17 177 2 code fixed bin(35) init ( 0), 17 178 2 caller char(65) varying init (""), 17 179 2 data, 17 180 3 data_ptr ptr init (null), 17 181 3 data_lth fixed bin(21) init ( 0), 17 182 2 class char(10) varying init (""), 17 183 2 ioa_msg char(500) varying init (""); 17 184 17 185 /* Syntax: call Log_error (code, ioa_ctl, args); */ 17 186 17 187 dcl 1 sl_info_code_msg aligned int static options(constant), 17 188 2 version char(8) init ("sl_info1"), 17 189 2 arg_list_ptr ptr init (null), 17 190 2 loc, 17 191 3 (mode init (-1), 17 192 severity init (-1), 17 193 code init ( 1), 17 194 caller init (-1), 17 195 data init ( 0), 17 196 class init ( 0), 17 197 ioa_msg init ( 2)) fixed bin, 17 198 2 flags, 17 199 3 ioa_msg_is_error_code bit(1) unal init ("0"b), 17 200 3 flags_pad bit(35) unal init ("0"b), 17 201 2 mode fixed bin init ( 1), 17 202 2 severity fixed bin init ( 0), 17 203 2 code fixed bin(35) init ( 0), 17 204 2 caller char(65) varying init (""), 17 205 2 data, 17 206 3 data_ptr ptr init (null), 17 207 3 data_lth fixed bin(21) init ( 0), 17 208 2 class char(10) varying init (""), 17 209 2 ioa_msg char(500) varying init (""); 17 210 17 211 17 212 /* Syntax: call Trace (ioa_ctl, args); */ 17 213 17 214 dcl 1 sl_info_msg aligned int static options(constant), 17 215 2 version char(8) init ("sl_info1"), 17 216 2 arg_list_ptr ptr init (null), 17 217 2 loc, 17 218 3 (mode init (-1), 17 219 severity init (-1), 17 220 code init ( 0), 17 221 caller init (-1), 17 222 data init ( 0), 17 223 class init ( 0), 17 224 ioa_msg init ( 1)) fixed bin, 17 225 2 flags, 17 226 3 ioa_msg_is_error_code bit(1) unal init ("0"b), 17 227 3 flags_pad bit(35) unal init ("0"b), 17 228 2 mode fixed bin init ( 1), 17 229 2 severity fixed bin init ( 0), 17 230 2 code fixed bin(35) init ( 0), 17 231 2 caller char(65) varying init (""), 17 232 2 data, 17 233 3 data_ptr ptr init (null), 17 234 3 data_lth fixed bin(21) init ( 0), 17 235 2 class char(10) varying init (""), 17 236 2 ioa_msg char(500) varying init (""); 17 237 17 238 /* END INCLUDE FILE sys_log_constants.incl.pl1 */ 1388 1389 /* BEGIN INCLUDE FILE system_message.incl.pl1 */ 18 2 18 3 /****^ HISTORY COMMENTS: 18 4* 1) change(85-12-19,Herbst), approve(87-07-20,MCR7697), 18 5* audit(87-07-20,GDixon), install(87-08-04,MR12.1-1056): 18 6* Moved SYSTEM MESSAGE_HANDLE to user_message_handles.incl.pl1 18 7* 2) change(87-02-24,Brunelle), approve(87-07-20,MCR7697), 18 8* audit(87-07-20,GDixon), install(87-08-04,MR12.1-1056): 18 9* added INACTIVITY message same as WARN message to be able to tell messages 18 10* apart. 18 11* 3) change(87-05-30,Brunelle), approve(87-07-20,MCR7697), 18 12* audit(87-07-20,GDixon), install(87-08-04,MR12.1-1056): 18 13* Added SYSTEM_MESSAGE_TYPES array. 18 14* END HISTORY COMMENTS */ 18 15 18 16 dcl system_message_ptr ptr aligned; 18 17 18 18 dcl 1 system_message_header aligned based, 18 19 2 version char (8), /* version of this structure */ 18 20 2 type fixed bin, /* type of message: AS_WARN_.., etc. */ 18 21 2 type_version char (8); /* version of info for this type */ 18 22 18 23 dcl 1 system_message aligned based (system_message_ptr), /* generic */ 18 24 2 header aligned like system_message_header, 18 25 2 contents bit (0); /* types are of different length */ 18 26 18 27 dcl SYSTEM_MESSAGE_VERSION_1 char (8) int static options (constant) init ("SYSMSG01"); 18 28 18 29 dcl system_message_text_len fixed bin; 18 30 18 31 dcl 1 warn_system_message aligned based (system_message_ptr), 18 32 2 header aligned like system_message_header, 18 33 2 caller char (64), 18 34 2 text_len fixed bin (21), 18 35 2 text char (system_message_text_len refer (warn_system_message.text_len)); 18 36 18 37 dcl 1 inactivity_system_message aligned based (system_message_ptr), 18 38 2 header aligned like system_message_header, 18 39 2 caller char (64), 18 40 2 text_len fixed bin (21), 18 41 2 text char (system_message_text_len refer (inactivity_system_message.text_len)); 18 42 18 43 dcl 1 dm_shut_system_message aligned based (system_message_ptr), 18 44 2 header aligned like system_message_header, 18 45 2 caller char (64), 18 46 2 text_len fixed bin (21), 18 47 2 text char (system_message_text_len refer (dm_shut_system_message.text_len)); 18 48 18 49 dcl (ANY_TYPE init (0), 18 50 SYSTEM_MESSAGE_TYPE_AS_WARN init (1), 18 51 SYSTEM_MESSAGE_TYPE_DM_SHUT init (2), 18 52 SYSTEM_MESSAGE_TYPE_AS_INACTIVITY init (3)) 18 53 fixed bin int static options (constant); 18 54 18 55 dcl (SYSTEM_MESSAGE_AS_WARN_V1 init ("SYSASW01"), 18 56 SYSTEM_MESSAGE_DM_SHUT_V1 init ("SYSDMS01"), 18 57 SYSTEM_MESSAGE_AS_INACTIVITY_V1 init ("SYSASI01")) 18 58 char (8) int static options (constant); 18 59 18 60 dcl SYSTEM_MESSAGE_TYPES (0:3) char(12) varying int static options(constant) 18 61 init("unknown type", "AS warning", "DM shutdown", "inactivity"); 18 62 18 63 18 64 /* END INCLUDE FILE system_message.incl.pl1 */ 1389 1390 /* BEGIN INCLUDE FILE ... uc_ls_handler.incl.pl1 */ 19 2 19 3 /****^ HISTORY COMMENTS: 19 4* 1) change(86-04-04,Swenson), approve(87-07-13,MCR7737), 19 5* audit(87-05-16,GDixon), install(87-08-04,MR12.1-1056): 19 6* Initial coding. 19 7* END HISTORY COMMENTS */ 19 8 19 9 dcl uc_ls_handle_ptr ptr automatic; 19 10 19 11 dcl 1 uc_ls_handle structure aligned based (uc_ls_handle_ptr), 19 12 2 process_type fixed bin (17) unaligned, 19 13 2 ute_index fixed bin (17) unaligned, 19 14 2 unique_id bit (36); 19 15 19 16 /* END INCLUDE FILE ... uc_ls_handler.incl.pl1 */ 1390 1391 /* BEGIN INCLUDE FILE ... user_attributes.incl.pl1 TAC 10/79 */ 20 2 20 3 20 4 /****^ HISTORY COMMENTS: 20 5* 1) change(86-12-11,Brunelle), approve(87-07-13,MCR7741), 20 6* audit(87-04-19,GDixon), install(87-08-04,MR12.1-1056): 20 7* Add incl for abs_attributes.incl.pl1 to automatically include absentee 20 8* attribute switches. 20 9* 2) change(87-04-19,GDixon), approve(87-07-13,MCR7741), 20 10* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 20 11* A) Add USER_ATTRIBUTE_NAMES arrays. attribute_names.incl.pl1 can thereby 20 12* be deleted. 20 13* B) Add constants identifying attributes that can be changed by user at 20 14* login, etc. 20 15* END HISTORY COMMENTS */ 20 16 20 17 20 18 /* Modified 82-01-03 E. N. Kittlitz. to declare a complete level-1 structure */ 20 19 20 20 /* format: style4 */ 20 21 dcl 1 user_attributes aligned based, /* the user user_attributes */ 20 22 (2 administrator bit (1), /* 1 system administrator privileges */ 20 23 2 primary_line bit (1), /* 2 user has primary-line privileges */ 20 24 2 nobump bit (1), /* 2 user cannot be bumped */ 20 25 2 guaranteed_login bit (1), /* 4 user has guaranteed login privileges */ 20 26 2 anonymous bit (1), /* 5 used only in SAT. project may have anon.users */ 20 27 2 nopreempt bit (1), /* 6 used only in PDT. user not preemptable by others 20 28* . of same project (distinct from "nobump") */ 20 29 2 nolist bit (1), /* 7 don't list user on "who" */ 20 30 2 dialok bit (1), /* 8 user may have multiple consoles */ 20 31 2 multip bit (1), /* 9 user may have several processes */ 20 32 2 bumping bit (1), /* 10 in SAT. Can users in project bump each other? */ 20 33 2 brief bit (1), /* 11 no login or logout message */ 20 34 2 vinitproc bit (1), /* 12 user may change initial procedure */ 20 35 2 vhomedir bit (1), /* 13 user may change homedir */ 20 36 2 nostartup bit (1), /* 14 user does not want start_up.ec */ 20 37 2 sb_ok bit (1), /* 15 user may be standby */ 20 38 2 pm_ok bit (1), /* 16 user may be primary */ 20 39 2 eo_ok bit (1), /* 17 user may be edit_only */ 20 40 2 daemon bit (1), /* 18 user may login as daemon */ 20 41 2 vdim bit (1), /* 19 * OBSOLETE * user may change outer mdle */ 20 42 2 no_warning bit (1), /* 20 no warning message */ 20 43 2 igroup bit (1), /* 21 in SAT: this project may give its users individual groups 20 44* . in PDT: this user has an individual load control group */ 20 45 2 save_pdir bit (1), /* 22 save pdir after fatal process error */ 20 46 2 disconnect_ok bit (1), /* 23 ok to save user's disconnected processes */ 20 47 2 save_on_disconnect bit (1), /* 24 save them unless -nosave login arg is given */ 20 48 2 pad bit (12)) unaligned; 20 49 20 50 dcl USER_ATTRIBUTE_NAMES (0:24) char (20) int static options (constant) init 20 51 ("none", /* 0 */ 20 52 "administrator", /* 1 */ 20 53 "primary_line", /* 2 */ 20 54 "nobump", /* 3 */ 20 55 "guaranteed_login", /* 4 */ 20 56 "anonymous", /* 5 */ 20 57 "nopreempt", /* 6 */ 20 58 "nolist", /* 7 */ 20 59 "dialok", /* 8 */ 20 60 "multip", /* 9 */ 20 61 "bumping", /* 10 */ 20 62 "brief", /* 11 */ 20 63 "vinitproc", /* 12 */ 20 64 "vhomedir", /* 13 */ 20 65 "nostartup", /* 14 */ 20 66 "no_secondary", /* 15 */ 20 67 "no_prime", /* 16 */ 20 68 "no_eo", /* 17 */ 20 69 "daemon", /* 18 */ 20 70 "", /* 19 vdim OBSOLETE */ 20 71 "no_warning", /* 20 */ 20 72 "igroup", /* 21 */ 20 73 "save_pdir", /* 22 */ 20 74 "disconnect_ok", /* 23 */ 20 75 "save_on_disconnect"); /* 24 */ 20 76 20 77 dcl ALT_USER_ATTRIBUTE_NAMES (0:24) char (20) int static options (constant) init 20 78 ("null", /* 0 */ 20 79 "admin", /* 1 */ 20 80 "", "", /* 2 - 3 */ 20 81 "guar", /* 4 */ 20 82 "anon", /* 5 */ 20 83 "", "", /* 6 - 7 */ 20 84 "dial", /* 8 */ 20 85 "multi_login", /* 9 */ 20 86 "preempting", /* 10 */ 20 87 "", /* 11 */ 20 88 "v_process_overseer", /* 12 */ 20 89 "v_home_dir", /* 13 */ 20 90 "no_start_up", /* 14 */ 20 91 "no_sec", /* 15 */ 20 92 "no_primary", /* 16 */ 20 93 "no_edit_only", /* 17 */ 20 94 "op_login", /* 18 */ 20 95 "", /* 19 */ 20 96 "nowarn", /* 20 */ 20 97 "", "", "", /* 21 - 23 */ 20 98 "save"); /* 24 */ 20 99 20 100 dcl USER_ATTRIBUTES_always_allowed bit (36) aligned int static 20 101 options(constant) init("000000000010000000010000000000000000"b); 20 102 /* SAT/PDT attributes not needed for user to give (brief, no_warning) */ 20 103 20 104 dcl USER_ATTRIBUTES_default_in_pdt bit (36) aligned int static 20 105 options(constant) init("000000000010000000010000000000000000"b); 20 106 /* PDT value for (brief, no_warning) is default */ 20 107 20 108 dcl USER_ATTRIBUTES_settable_by_user bit (36) aligned int static 20 109 options(constant) init("000100000110010000010000000000000000"b); 20 110 /* user MIGHT set (bump, ns, brief, guar, no_warning) */ 20 111 21 1 /* BEGIN INCLUDE FILE ... user_abs_attributes.incl.pl1 */ 21 2 21 3 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 21 4 /* */ 21 5 /* This include file describes the attributes of an absentee job. It is */ 21 6 /* used by user_table_entry.incl.pl1, abs_message_format.incl.pl1 */ 21 7 /* and PIT.incl.pl1. */ 21 8 /* */ 21 9 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 21 10 21 11 /****^ HISTORY COMMENTS: 21 12* 1) change(86-12-08,GDixon), approve(87-07-13,MCR7741), 21 13* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 21 14* Separated abs_attributes from the request structure 21 15* (abs_message_format.incl.pl1) so that the identical structure could be 21 16* used in the ute structure (user_table_entry.incl.pl1). 21 17* 2) change(87-04-19,GDixon), approve(87-07-13,MCR7741), 21 18* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 21 19* Added ABS_ATTRIBUTE_NAMES array. 21 20* 3) change(87-11-11,Parisek), approve(88-02-11,MCR7849), 21 21* audit(88-03-22,Lippard), install(88-07-13,MR12.2-1047): 21 22* Added the no_start_up flag. SCP6367 21 23* END HISTORY COMMENTS */ 21 24 21 25 dcl 1 user_abs_attributes aligned based, 21 26 2 restartable bit (1) unaligned, /* 1 if request may be started over from the beginning */ 21 27 2 user_deferred_until_time bit (1) unaligned, /* 1 if request was specified as deferred */ 21 28 2 proxy bit (1) unaligned, /* 1 if request submitted for someone else */ 21 29 2 set_bit_cnt bit (1) unaligned, /* 1 if should set bit count after every write call */ 21 30 2 time_in_gmt bit (1) unaligned, /* 1 if deferred_time is in GMT */ 21 31 2 user_deferred_indefinitely bit (1) unaligned, /* 1 if operator is to say when to run it */ 21 32 2 secondary_ok bit (1) unaligned, /* 1 if ok to log in as secondary foreground user */ 21 33 2 truncate_absout bit (1) unaligned, /* 1 if .absout is to be truncated */ 21 34 2 restarted bit (1) unaligned, /* 1 if job is restarted */ 21 35 2 no_start_up bit (1) unaligned, /* 1 if requested -ns */ 21 36 2 attributes_pad bit (26) unaligned; 21 37 21 38 dcl ABS_ATTRIBUTE_NAMES (10) char (28) varying int static options(constant) init( 21 39 "restartable", 21 40 "user_deferred_until_time", 21 41 "proxy", 21 42 "set_bit_cnt", 21 43 "time_in_gmt", 21 44 "user_deferred_indefinitely", 21 45 "secondary_ok", 21 46 "truncate_absout", 21 47 "restarted", 21 48 "no_start_up"); 21 49 21 50 /* END INCLUDE FILE ... user_abs_attributes.incl.pl1 */ 21 51 20 112 20 113 20 114 /* END INCLUDE FILE ... user_attributes.incl.pl1 */ 1391 1392 /* BEGIN INCLUDE FILE ... user_table_entry.incl.pl1 */ 22 2 22 3 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 22 4 /* */ 22 5 /* This include file requires that the user include */ 22 6 /* user_attributes.incl.pl1 as well. It also includes */ 22 7 /* abs_attributes.incl.pl1 itself. */ 22 8 /* */ 22 9 /* This include file must be included to use absentee_user_table.incl.pl1, */ 22 10 /* answer_table.incl.pl1, and daemon_user_table.incl.pl1. */ 22 11 /* */ 22 12 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 22 13 22 14 /****^ HISTORY COMMENTS: 22 15* 1) change(81-12-21,Gilcrease), approve(86-03-27,MCR7370), 22 16* audit(86-06-23,Lippard), install(86-06-30,MR12.0-1082): 22 17* This comment for hcom. 22 18* 81-12-21 E. N. Kittlitz. derived from abs_user_tab.incl.pl1, 22 19* anstbl.incl.pl1, and dutbl.incl.pl1. 22 20* 82-01-02 E. N. Kittlitz. user_attributes.incl.pl1 changes 22 21* 84-04-04 BIM added privileged_dial_server and dial_server_ring 22 22* 84-07-12 BIM added min_process_authorization 22 23* 84-12-31 Keith Loepere added pdir_dir_quota 22 24* 85-01-16 by E. Swenson to add ute.session_uid 22 25* 2) change(85-11-16,Swenson), approve(87-07-13,MCR7737), 22 26* audit(87-04-14,GDixon), install(87-08-04,MR12.1-1056): 22 27* Added fields for DSA login server support. 22 28* 3) change(86-03-27,Gilcrease), approve(86-03-27,MCR7370), 22 29* audit(86-06-23,Lippard), install(86-06-30,MR12.0-1082): 22 30* Add truncate_absout and restarted bit for -truncate absout, SCP6297. 22 31* 4) change(86-04-09,Herbst), approve(87-07-13,MCR7697), 22 32* audit(87-04-14,GDixon), install(87-08-04,MR12.1-1056): 22 33* Added disconnection_rel_minutes. 22 34* 5) change(86-12-08,GDixon), approve(87-07-13,MCR7741), 22 35* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 22 36* Changed structure under ute.abs_attributes to use like structure in 22 37* abs_attributes.incl.pl1. This allows the same attributes to be used 22 38* in abs_message_format.incl.pl1 and pit.incl.pl1 as well as this include 22 39* file. 22 40* 6) change(87-04-14,GDixon), approve(87-07-13,MCR7741), 22 41* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 22 42* Move constants for ute.pw_flags.mask_ctl from answer_table.incl.pl1. 22 43* 7) change(87-04-16,GDixon), approve(87-07-13,MCR7741), 22 44* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 22 45* A) Global reorganization to locate things by type of data. 22 46* B) Eliminate ute.uflags.logged_in. 22 47* 8) change(87-05-10,GDixon), approve(87-07-13,MCR7741), 22 48* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 22 49* A) Reduced overlength person and project fields to proper length. 22 50* B) Adjusted dialed-console section to begin on even word boundary. 22 51* 9) change(87-05-13,GDixon), approve(87-07-13,MCR7741), 22 52* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 22 53* Add ute.line_type. 22 54* 10) change(87-11-19,Parisek), approve(88-02-11,MCR7849), 22 55* audit(88-02-23,Lippard), install(88-07-13,MR12.2-1047): 22 56* Added the lowest_ring element. Used the upper half of ute.highest_ring 22 57* for the storage. SCP6367 22 58* END HISTORY COMMENTS */ 22 59 22 60 /* format: style4 */ 22 61 22 62 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 22 63 /* */ 22 64 /* Each of the named sections below defines a type of data. Typing comes */ 22 65 /* from data associated with the ute entry itself, with the person, with */ 22 66 /* login argument data, from the main user of the data (eg, dialup_, */ 22 67 /* load_ctl_, login server). Each section begins on a double-word boundary */ 22 68 /* and is an even number of words long. The total structure is 300 decimal */ 22 69 /* words long. */ 22 70 /* */ 22 71 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 22 72 22 73 22 74 dcl UTE_version_4 fixed bin internal static options (constant) init (4); 22 75 22 76 dcl utep pointer automatic init (null); 22 77 22 78 dcl 1 ute based (utep) aligned, /* individual entry in one of the user control tables */ 22 79 22 80 /* Variables which give state of this entry */ 22 81 2 active fixed bin, /* state of entry. 0=>free. see dialup_values.incl.pl1 */ 22 82 2 process_type fixed bin, /* 1=interactive, 2=absentee, 3=daemon */ 22 83 2 ute_index fixed bin, /* index of ute in (anstbl autbl dutbl).entry array */ 22 84 2 next_free fixed bin, /* points to previous free entry */ 22 85 22 86 /* Information user gave about person_id associated with this entry. */ 22 87 2 person char (24) unal, /* user's name */ 22 88 2 project char (12) unal, /* project of absentee user */ 22 89 2 tag char (1) unal, /* instance tag - someday will be generated */ 22 90 2 tag_pad bit (27) unal, 22 91 2 anonymous fixed bin, /* 1 if anonymous, otherwise 0 */ 22 92 2 login_flags, /* flags for login data */ 22 93 3 cpw bit (1) unal, /* flag for wish to change password */ 22 94 3 generate_pw bit (1) unal, /* flag meaning -generate_pw (-gpw) was used. */ 22 95 3 special_pw unal, /* dial or slave */ 22 96 4 dial_pw bit (1) unal, /* true if dial -user */ 22 97 4 slave_pw bit (1) unal, /* true if slave -user */ 22 98 3 cdp bit (1) unal, /* flag for wish to change default project */ 22 99 3 cda bit (1) unal, /* flag to change default authorization */ 22 100 3 auth_given bit (1) unal, /* flag to mean -authorization was used. */ 22 101 3 noprint bit (1) unal, /* used at logout. inhibits printing. */ 22 102 3 operator bit (1) unaligned, /* user specified -operator on login command line */ 22 103 3 pw_pad bit (25) unal, /* spare parts */ 22 104 3 mask_ctl bit (2) unal, /* bits controlling pw mask. See constants, below */ 22 105 /* Must remain last in pw_flags so it does not */ 22 106 /* appear in PW_FLAG_VALUES array below. */ 22 107 2 generated_pw char (8) unal, /* user must type this as new password */ 22 108 2 old_password char (8) unal, /* must match user's previous password (value scrambled) */ 22 109 2 process_authorization bit (72), /* access_authorization of this process */ 22 110 22 111 /* Information user gave about process associated with this entry. */ 22 112 2 outer_module char (32) unal, /* Name of console dim */ 22 113 2 home_dir char (64) unal, /* initial home directory */ 22 114 2 init_proc char (64) unal, /* name of login responder */ 22 115 2 ip_len fixed bin (17) unal, /* length of initproc string */ 22 116 2 ss_len fixed bin (17) unal, /* length of subsystem string */ 22 117 2 ur_at like user_attributes aligned, /* bits on means attributes given by user */ 22 118 2 at like user_attributes aligned, /* bits on means attribute is on */ 22 119 2 initial_ring fixed bin, /* ring process will be started in */ 22 120 2 arg_count fixed bin, /* number of arguments to absentee control segment */ 22 121 2 ln_args fixed bin, /* length of string containing arguments */ 22 122 2 arg_lengths_ptr ptr, /* pointer to array of argument lengths */ 22 123 2 args_ptr ptr, /* pointer to arguments to absentee control segment */ 22 124 22 125 /* Most of the following information is relevant only to absentee processes */ 22 126 2 input_seg char (168) unal, /* pathname of absentee control segment */ 22 127 2 output_seg char (168) unal, /* pathname of absentee output file */ 22 128 2 request_id fixed bin (71), /* time request was entered - used as uid of request */ 22 129 2 reservation_id fixed bin (71), /* nonzero if job has a resource reservation */ 22 130 2 message_id bit (72), /* message segment id assoc with absentee request */ 22 131 2 deferred_time fixed bin (71), /* time at which absentee process should be created */ 22 132 2 max_cpu_time fixed bin (35), /* maximum number of seconds this process can run */ 22 133 2 queue fixed bin, /* -1=daemon;0=interactive or foreground;>0=queue no. 22 134* (but see uflags.adjust_abs_q_no). */ 22 135 2 real_queue fixed bin, /* real queue number; ute.queue gets fudged sometimes */ 22 136 2 abs_attributes aligned like user_abs_attributes, /* include abs_attributes.incl.pl1 */ 22 137 2 abs_flags, 22 138 3 abs_run bit (1) unal, /* on if job was started by abs run command */ 22 139 3 notify bit (1) unal, /* on if user wants notification at login and logout */ 22 140 3 abs_flags_pad bit (34) unal, 22 141 2 abs_group char (8) unal, /* original group before load_ctl_ moves it to absentee group */ 22 142 2 sender char (32) unal, /* name of RJE station that job is from */ 22 143 2 proxy_person char (28) unal, /* name of user who actually entered the request, if proxy */ 22 144 2 proxy_project char (9) unal, 22 145 2 proxy_project_pad char (3) unal, 22 146 2 abs_pad fixed bin, 22 147 22 148 /* Information about process actually created */ 22 149 2 proc_id bit (36), /* process id of absentee process */ 22 150 2 session_uid fixed bin (35), /* Unique authentication session id */ 22 151 2 process_authorization_range (2) bit (72) aligned, 22 152 2 audit bit (36), /* audit flags for user */ 22 153 2 lot_size fixed bin, /* Size of linkage offset table */ 22 154 2 kst_size fixed bin, /* Size of process known segment table */ 22 155 2 cls_size fixed bin, /* Size of process combined linkage */ 22 156 2 sus_channel fixed bin (71), /* event channel on which suspended process is blocked */ 22 157 2 lowest_ring fixed bin (17) unal, /* lowest ring permitted */ 22 158 2 highest_ring fixed bin (17) unal, /* highest ring permitted */ 22 159 2 pdir_lvix fixed bin (17) unal, /* index in disk table of lv where pdir is */ 22 160 2 pdir_quota fixed bin (17) unal, /* process directory quota */ 22 161 2 pdir_dir_quota fixed bin (17) unal, /* process directory quota for dirs */ 22 162 2 pdir_pad fixed bin(17) unal, 22 163 2 process_pad fixed bin, 22 164 22 165 /* Information about primary terminal associated with this entry */ 22 166 2 tty_name char (32) unal, /* absentee=>"abs1", etc. daemon=>"bk", etc. */ 22 167 2 terminal_type char (32) unaligned, /* terminal type */ 22 168 2 line_type fixed bin, /* line type */ 22 169 2 tty_id_code char (4) unal, /* "none" for absentee */ 22 170 2 network_connection_type fixed bin, /* see net_event_message.incl.pl1 */ 22 171 2 channel ptr unal, /* points to CDT entry for user, if any */ 22 172 22 173 /* Variables useful for dialed terminals */ 22 174 2 ndialed_consoles fixed bin, /* if master, number of slaves */ 22 175 2 dial_qualifier char (22) unal, /* first argument to dial command */ 22 176 2 dial_server_ring fixed bin (3) unsigned unaligned, /* dial server intends to attach dialing in channels at this ring. */ 22 177 2 dial_server_flags, 22 178 3 registered_dial_server bit (1) unal, /* process is a registered dial server */ 22 179 3 privileged_dial_server bit (1) unal, /* "1"b -> serves range of AIM classes */ 22 180 3 dial_server_flags_pad bit (13) unal, /* fill out the word */ 22 181 2 dial_ev_chn fixed bin (71), /* if master, control event channel */ 22 182 22 183 /* Information about usage/accounting. Device usage meters are in a 22 184* separate segment, "devtab" */ 22 185 2 pdtep ptr, /* ptr to user's pdt entry, where usage meters live */ 22 186 2 cpu_this_process fixed bin (71), /* cpu used so far this process */ 22 187 2 cpu_usage fixed bin (71), /* total cpu time used in this session */ 22 188 2 mem_usage fixed bin (71), /* memory usage for previous processes in session */ 22 189 2 mem_this_process fixed bin (71), /* memory usage at last update */ 22 190 2 last_update_time fixed bin (71), /* time of last account update */ 22 191 2 session_cost float bin, /* dollar cost of session, for printing in logout messages */ 22 192 2 ndevices fixed bin, /* Count of attached devices */ 22 193 2 device_head fixed bin, /* Table index of head of device chain */ 22 194 2 device_tail fixed bin, /* Table index of tail of device chain */ 22 195 2 rs_number fixed bin (6) unsigned unal, /* rate structure number */ 22 196 2 rs_number_pad bit(30) unal, 22 197 2 usage_pad fixed bin, 22 198 22 199 /* Information for dialup_ (control variables). */ 22 200 2 event fixed bin (71), /* event associated with channel or user manager */ 22 201 2 uprojp ptr, /* ptr to user project sat entry */ 22 202 2 login_time fixed bin (71), /* time when absentee user approved by lg_ctl_ */ 22 203 2 cant_bump_until fixed bin (71), /* bump-protection clock */ 22 204 2 recent_fatal_error_time fixed bin (71), /* time of first error in the suspected loop */ 22 205 2 recent_fatal_error_count fixed bin, /* counter to detect fatal process error loops */ 22 206 2 failure_reason fixed bin, /* why login refused 1=lg_ctl, 2=act_ctl, 3=load_ctl */ 22 207 2 count fixed bin, /* counter for logins and dialups */ 22 208 2 n_processes fixed bin, /* number of processes created in this session */ 22 209 2 lock_value fixed bin, /* number of locks set for this entry */ 22 210 2 login_result fixed bin, /* 0=logged in;1=hopeless,hang him up;2=allow another attempt */ 22 211 2 login_code char (8) unal, /* login command from LOGIN line */ 22 212 2 preempted fixed bin, /* if ^= 0 user preempted (never for abs) */ 22 213 2 destroy_flag fixed bin, /* >8 when awaiting destroy */ 22 214 2 logout_type char (4) unal, /* type of logout */ 22 215 2 logout_index fixed bin, /* to save logout handler index while waiting for termsgnl */ 22 216 2 disconnection_rel_minutes fixed bin (17) unal, /* disconnected this many minutes after login_time */ 22 217 2 next_disconnected_ate_index fixed bin (17) unal, /* thread of list of user's disconnected processes */ 22 218 2 work_class fixed bin, /* work class used by priority scheduler */ 22 219 2 group char (8) unal, /* party group identifier */ 22 220 2 whotabx fixed bin, /* index of user's entry in whotab */ 22 221 22 222 2 uflags, /* Miscellaneous flags */ 22 223 3 dont_call_init_admin bit (1) unal, /* Call overseer directly */ 22 224 3 ip_given bit (1) unal, /* user gave an initproc arg on login line */ 22 225 3 ss_given bit (1) unal, /* initial_procedure contains a subsystem name */ 22 226 3 lvs_attached bit (1) unal, /* set and used by the lv_request_ procedure */ 22 227 3 send_initial_string bit (1) unal, /* initial string should be sent after login line read */ 22 228 3 adjust_abs_q_no bit (1) unal, /* this is an absentee job; user_profile.queue is NOT true Q # */ 22 229 3 foreground_secondary_ok bit (1) unal, /* ok to login foreground absentee job as secondary */ 22 230 3 foreground_job bit (1) unal, /* job was originally from foreground queue */ 22 231 3 sus_sent bit (1) unal, /* sus_ ips signal has been sent to process */ 22 232 3 suspended bit (1) unal, /* process has responded to sus_ signal */ 22 233 3 ignore_cpulimit bit (1) unal, /* process is released, but timer can't be turned off */ 22 234 3 deferral_logged bit (1) unal, /* abs job deferral has already been logged once */ 22 235 3 save_if_disconnected bit (1) unal, /* user wants process preserved across hangups */ 22 236 3 disconnected bit (1) unal, /* process is disconnected from terminal */ 22 237 3 disconnected_list bit (1) unal, /* this ate is on a list of disconnected processes */ 22 238 3 proc_create_ok bit (1) unal, /* lg_ctl_ has set the process creation variables */ 22 239 3 activity_can_unbump bit (1) unal, /* only bump pending is for inactivity */ 22 240 3 fpe_causes_logout bit (1) unal, /* "1"b means don't try to new_proc after fatal process error */ 22 241 3 user_specified_immediate bit (1) unal, /* "1"b -> don't wait around for process destruction. */ 22 242 3 uflags_pad bit (17) unal, 22 243 22 244 /* Information used by load_ctl_ for the process */ 22 245 2 user_weight fixed bin, /* usually 10 - used in load control */ 22 246 2 standby_line fixed bin, /* 0=user has primary line, 1=standby user */ 22 247 2 bump_grace fixed bin (71), /* bump grace in microseconds */ 22 248 22 249 22 250 /* Information for login server */ 22 251 2 login_server_info, 22 252 3 our_handle bit (72) aligned, /* how LS refers to us. */ 22 253 3 his_handle bit (72) aligned, /* how we talk to LS */ 22 254 3 termination_event_channel fixed bin (71), /* for process termination notifications to the LS */ 22 255 3 response_event_channel fixed bin (71), /* for other communications with the LS */ 22 256 3 process_id bit (36) aligned, /* process_id of login server */ 22 257 2 ls_pad (5) fixed bin; /* pad to 300 decimal words */ 22 258 22 259 /* values for ute.process_type */ 22 260 22 261 dcl (PT_INTERACTIVE initial (1), 22 262 PT_ABSENTEE initial (2), 22 263 PT_DAEMON initial (3)) fixed bin internal static options (constant); 22 264 22 265 dcl PROCESS_TYPE_NAMES (0:3) char(12) varying int static options(constant) init( 22 266 "INVALID-TYPE", 22 267 "interactive", 22 268 "absentee", 22 269 "daemon"); 22 270 22 271 dcl TABLE_NAMES (0:3) char(20) int static options(constant) init( 22 272 "UNKNOWN-TABLE", 22 273 "answer_table", 22 274 "absentee_user_table", 22 275 "daemon_user_table"); 22 276 22 277 22 278 /* values for ute.pw_flags.mask_ctl */ 22 279 22 280 dcl (DO_MASK init ("00"b), 22 281 DONT_MASK init ("01"b), 22 282 DERIVE_MASK init ("10"b)) bit (2) internal static options (constant); 22 283 22 284 dcl MASK_CTL_NAMES (0:3) char(12) varying int static options(constant) init( 22 285 "do_mask", "dont_mask", "derive_mask", ""); 22 286 22 287 22 288 /* names for ute.pw_flags */ 22 289 22 290 dcl PW_FLAG_NAMES (9) char (12) varying int static options(constant) init( 22 291 "cpw", 22 292 "generate_pw", 22 293 "dial_pw", 22 294 "slave_pw", 22 295 "cdp", 22 296 "cda", 22 297 "auth_given", 22 298 "noprint", 22 299 "operator"); 22 300 22 301 /* names for ute.uflags */ 22 302 22 303 dcl UFLAG_NAMES (19) char (24) varying int static options (constant) init ( 22 304 "dont_call_init_admin", 22 305 "ip_given", 22 306 "ss_given", 22 307 "lvs_attached", 22 308 "send_initial_string", 22 309 "adjust_abs_q_no", 22 310 "foreground_secondary_ok", 22 311 "foreground_job", 22 312 "sus_sent", 22 313 "suspended", 22 314 "ignore_cpulimit", 22 315 "deferral_logged", 22 316 "save_if_disconnected", 22 317 "disconnected", 22 318 "disconnected_list", 22 319 "proc_create_ok", 22 320 "activity_can_unbump", 22 321 "fpe_causes_logout", 22 322 "user_specified_immediate"); 22 323 22 324 /* names for ute.abs_flags */ 22 325 22 326 dcl ABS_FLAG_NAMES (2) char (8) varying int static options (constant) init ( 22 327 "abs_run", 22 328 "notify"); 22 329 22 330 /* names of ute.dial_server_flags */ 22 331 22 332 dcl DIAL_SERVER_FLAG_NAMES (2) char (12) varying int static options (constant) init ( 22 333 "registered", 22 334 "privileged"); 22 335 22 336 /* values of ute.login_result */ 22 337 22 338 dcl LOGIN_RESULT_VALUES (0:2) char(24) varying int static options(constant) init( 22 339 "logged in", 22 340 "login failed, hangup", 22 341 "login failed, try again"); 22 342 22 343 /* END INCLUDE FILE ... user_table_entry.incl.pl1 */ 1392 1393 /* BEGIN INCLUDE FILE ... user_table_header.incl.pl1 */ 23 2 23 3 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 23 4 /* */ 23 5 /* This include file declares the header shared by the answer_table, */ 23 6 /* absentee_user_table and daemon_user_table include files. */ 23 7 /* */ 23 8 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 23 9 23 10 /****^ HISTORY COMMENTS: 23 11* 1) change(87-04-26,GDixon), approve(87-07-13,MCR7741), 23 12* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 23 13* Initial coding. 23 14* END HISTORY COMMENTS */ 23 15 23 16 dcl 1 ut_header aligned based, /* header shared by all user control tables. */ 23 17 2 header_version fixed bin, /* version of the header (3) */ 23 18 2 entry_version fixed bin, /* version of user table entries */ 23 19 2 user_table_type fixed bin, /* 1 interactive, 2 absentee, 3 daemon */ 23 20 2 header_length fixed bin, /* length of the header */ 23 21 2 max_size fixed bin, /* max number of entries in this table */ 23 22 2 current_size fixed bin, /* actual size of table (in entries) */ 23 23 2 number_free fixed bin, /* number of free entries in the table. */ 23 24 2 first_free fixed bin, /* index of first entry in the free list. */ 23 25 2 as_procid bit (36), /* process ID of user table manager process */ 23 26 2 ut_header_pad fixed bin; 23 27 23 28 /* END INCLUDE FILE ... user_table_header.incl.pl1 */ 1393 1394 /* BEGIN INCLUDE FILE ... whotab.incl.pl1 */ 24 2 24 3 /* Modified 740723 by PG to add security info */ 24 4 /* Modified April 1976 by T. Casey to add shift and shift start and end times */ 24 5 /* Modified May 1979 by T. Casey for MR7.0a to add foreground absentee variables */ 24 6 /* Modified June 1981 by E. N. Kittlitz to add n_rate_structures. */ 24 7 /* Modified December 1981 by E. N. Kittlitz to expand header. */ 24 8 /* Modified 84-11-14 by E. A. Ranzenbach to add "session" fiedld in place of obsolete system ID... */ 24 9 24 10 dcl 1 whotab based (whoptr) aligned, 24 11 2 mxusers fixed bin, /* max. number of users on system */ 24 12 2 n_users fixed bin, /* current number of users */ 24 13 2 mxunits fixed bin, /* maximun "load units" allowed */ 24 14 2 n_units fixed bin, /* current load */ 24 15 2 timeup fixed bin (71), /* time system was started */ 24 16 2 session char (8), /* AS state, same as anstbl.session */ 24 17 2 nextsd fixed bin (71), /* time we will shutdown */ 24 18 2 until fixed bin (71), /* projected time we start up again */ 24 19 2 lastsd fixed bin (71), /* time of last crash or shutdown */ 24 20 2 erfno char (8), /* if a crash, the error number */ 24 21 2 obsolete_why char (32), /* reason for last shutdown */ 24 22 2 installation_id char (32), /* name of installation */ 24 23 2 obsolete_message char (32), /* message for all users */ 24 24 2 abs_event fixed bin (71), /* event channel associated with absentee */ 24 25 2 abs_procid bit (36) aligned, /* process to whom messages about absentee are signalled */ 24 26 2 max_abs_users fixed bin, /* max number of absentee users */ 24 27 2 abs_users fixed bin, /* number of absentee users logged-in */ 24 28 2 n_daemons fixed bin, /* Number of daemon users logged in */ 24 29 2 request_channel fixed bin (71), /* System master channel for requests to AS. */ 24 30 2 request_process_id bit (36), /* Process ID of request dispatcher */ 24 31 2 shift fixed bin, /* current shift (copied from anstbl, for users to see) */ 24 32 2 next_shift_change_time fixed bin (71), /* time current shift ends */ 24 33 2 last_shift_change_time fixed bin (71), /* time current shift started */ 24 34 2 fg_abs_users fixed bin (17) unal, /* number of foreground absentee users */ 24 35 2 n_rate_structures fixed bin (9) unsigned unal, /* number of rate_structures defined at bootload */ 24 36 2 pad1 bit (9) unal, 24 37 2 pad (3) fixed bin, 24 38 2 version fixed bin, /* structure version */ 24 39 2 header_size fixed bin, /* length of header in words */ 24 40 2 entry_size fixed bin, /* length of entry in words */ 24 41 /* laste_adjust is used only by Answering Service programs */ 24 42 2 laste_adjust fixed bin, /* count of 32 wd blocks in hdr from header_extension_mbz1 */ 24 43 2 laste fixed bin, /* index of last entry in use (includes laste_adjust) */ 24 44 2 freep fixed bin (18) unsigned, /* index of first free entry. chained thru "chain" */ 24 45 24 46 /* whotab header extension: The header is extended from 64 words by 24 47* annexing whole user entries from the 'e' array. Each 'e' entry is 32 words 24 48* long. Each annexed block has its first word set to zero, indicating that no user entry is 24 49* present. This allows existing programs to function with old definitions of 24 50* whotab. Obviously no new header field can be more than 31 contiguous words in 24 51* length. In the Answering Service, all programs using whotab must be compiled 24 52* with the latest version. Only lg_ctl_ uses laste_adjust. */ 24 53 24 54 2 header_extension_mbz1 fixed bin, /* location 100o */ 24 55 2 n_abs (4) fixed bin, /* number of processes from each background queue */ 24 56 2 abs_qres (4) fixed bin, /* number of absentee positions reserved for each queue */ 24 57 2 abs_cpu_limit (4) fixed bin (35), /* current absentee cpu limits */ 24 58 2 abs_control, /* see absentee_user_table */ 24 59 3 mnbz bit (1) unal, /* must not be zero */ 24 60 3 abs_maxu_auto bit (1) unal, /* 1 if automatic */ 24 61 3 abs_maxq_auto bit (1) unal, /* 1 if automatic */ 24 62 3 abs_qres_auto bit (1) unal, /* 1 if automatic */ 24 63 3 abs_cpu_limit_auto bit (1) unal, /* 1 if automatic */ 24 64 3 queue_dropped (-1:4) bit (1) unal, /* 1 if queue dropped */ 24 65 3 abs_up bit (1) unal, /* 1 if absentee facility is running */ 24 66 3 abs_stopped bit (1) unal, /* 1 if absentee facility is stopped */ 24 67 3 control_pad bit (23) unal, 24 68 2 installation_request_channel fixed bin (71), /* IPC channel for install command */ 24 69 2 installation_request_pid bit (36), /* installation process identifier */ 24 70 2 sysid char (32), /* current system name */ 24 71 2 header_extension_pad1 (7) fixed bin, /* pad to size of e element, offset 137o */ 24 72 2 header_extension_mbz2 fixed bin, /* offset 140o */ 24 73 2 message char (124), /* message for all users */ 24 74 2 header_extension_mbz3 fixed bin, /* offset 200o */ 24 75 2 why char (124), /* reason for last shutdown */ 24 76 2 e (1000), /* offset 240o */ 24 77 3 active fixed bin, /* nonzero means logged in */ 24 78 3 person char (28) aligned, /* person name */ 24 79 3 project char (28), /* project id */ 24 80 3 anon fixed bin, /* 1 if anonymous user */ 24 81 3 padding fixed bin (71), 24 82 3 timeon fixed bin (71), /* time of login */ 24 83 3 units fixed bin, /* load units */ 24 84 3 stby fixed bin, /* 1 if stby */ 24 85 3 idcode char (4), /* tty id code */ 24 86 3 chain fixed bin (18) unsigned, /* chain for free list */ 24 87 3 proc_type fixed bin, /* 1 = interactive, 2 = absentee, 3 = daemon */ 24 88 3 group char (8), /* party-line group */ 24 89 3 fg_abs bit (1) unal, /* "1"b if foreground absentee user */ 24 90 3 disconnected bit (1) unaligned, /* "1"b if process is disconnected */ 24 91 3 suspended bit (1) unaligned, /* "1"b if process is suspended */ 24 92 3 pad2 bit (33) unal, 24 93 3 cant_bump_until fixed bin (71), /* protected from primary bump till here */ 24 94 3 process_authorization bit (72); /* access authorization of process */ 24 95 24 96 dcl WHOTAB_VERSION_1 fixed bin init (1) static options (constant); 24 97 24 98 /* END INCLUDE FILE ... whotab.incl.pl1 */ 1394 1395 1396 /* BEGIN MESSAGE DOCUMENTATION 1397* 1398* Message: 1399* asu_: lock was N, ev call mask was M, ips mask was ZZZZZZ 1400* 1401* S: as (severity1) 1402* 1403* T: In response to an operator reset command. 1404* 1405* M: N is the value of anstbl.lock_value, M is the value of event call masking. 1406* ZZZZZZ was the ips mask. 1407* This message verifies that the reset 1408* command was given, and what effect it had. 1409* 1410* A: $ignore 1411* 1412* Message: 1413* asu_: CHANNEL is not in CDT and so cannot be attached 1414* 1415* S: as (severity1) 1416* 1417* T: $run 1418* 1419* M: An attach command specified an unknown CHANNEL. 1420* No action was taken. 1421* 1422* A: Enter a correct command. 1423* 1424* 1425* Message: 1426* asu_: CHANNEL has been deleted by a CDT installation and so cannot be 1427* attached. 1428* 1429* S: as (severity1) 1430* 1431* T: $run 1432* 1433* M: An attach command specified a CHANNEL that has been deleted. 1434* No action was taken. 1435* 1436* A: Enter a correct command. 1437* 1438* 1439* Message: 1440* asu_: CHANNEL cannot be attached because its service type is TYPE (N). 1441* 1442* S: as (severity1) 1443* 1444* T: $run 1445* 1446* M: An attach command specified a CHANNEL whose service type 1447* does not permit it to be attached. 1448* No action was taken. 1449* 1450* A: Enter a correct command. 1451* 1452* 1453* Message: 1454* asu_: CHANNEL was not configured at bootload time, and so cannot be 1455* attached. 1456* 1457* S: as (severity1) 1458* 1459* T: $run 1460* 1461* M: An attach command specified a CHANNEL that cannot be used 1462* until the next bootload. No action was taken. 1463* 1464* A: Enter a correct command. 1465* 1466* 1467* Message: 1468* asu_: CHANNEL is in use by the message coordinator and cannot be attached. 1469* 1470* S: as (severity1) 1471* 1472* T: $run 1473* 1474* M: An operator attach command specified a message coordinator CHANNEL. 1475* The channel was not attached. 1476* 1477* A: Enter a correct command. 1478* 1479* 1480* Message: 1481* asu_: ERROR_MESSAGE. ENTRY OPERATION error; will remove channel CHANNEL 1482* DESC 1483* 1484* S: as (severity1) 1485* 1486* T: $run 1487* 1488* M: A channel error has occurred on CHANNEL. DESC is the comment field 1489* for the channel given in its Channel Definition Table (CDT) entry. 1490* ERROR_MESSAGE gives the text describing the error code returned by 1491* the operation in progress. 1492* OPERATION may be create_ev_chn, decl_event_call_chn, listen, set_term_type, 1493* tty_event or tty_index, dependent upon the operation in progress when 1494* the error occurred. 1495* ENTRY specifies the asu_ entrypoint that was running when the operation 1496* was performed on the channel. It may be asu_listen or attach_channel. 1497* The channel will be removed from use. 1498* 1499* A: It may be necessary to busy out the modem for the channel. 1500* 1501* 1502* Message: 1503* asu_: cdtep (CCC|ZZZ) not cdt (YYY|0) 1504* 1505* S: as (severity0) 1506* 1507* T: $run 1508* 1509* M: $err 1510* Remove_cdte is trying to get rid of a channel which is no good. 1511* 1512* A: $ignore 1513* 1514* 1515* Message: 1516* asu_: cdte CCC|XXX (CHANNEL) hung up 1517* 1518* S: as (severity0) 1519* 1520* T: $run 1521* 1522* M: Remove_cdte is trying to get rid of a channel. 1523* The indicated CHANNEL is in the hung up state. 1524* 1525* A: $ignore 1526* 1527* 1528* Message: 1529* asu_$remote_cdte: ERROR_MESSAGE. cdte CCC|XXX error from tty_state 1530* 1531* S: as (severity0) 1532* 1533* T: $run 1534* 1535* M: Remove_cdte is trying to get rid of a channel. 1536* It cannot obtain the line state. 1537* 1538* A: $ignore 1539* 1540* 1541* Message: 1542* asu_: cdte CCC|XXX (CHANNEL) state A in use B tra vec C 1543* 1544* S: as (severity0) 1545* 1546* T: $run 1547* 1548* M: Remove_cdte is trying to get rid of a channel. 1549* It first logs the state of the line. 1550* 1551* A: $ignore 1552* 1553* 1554* Message: 1555* asu_: (called by PROCEDURE) USER.PROJ CHN was already stopped and will be destroyed (stopstop wakeup was lost) 1556* 1557* S: as (severity1) 1558* 1559* T: In response to an operator command to bump or log out an interactive, 1560* absentee, or daemon user. 1561* 1562* M: The process being bumped or logged out was found to be in the stopped state 1563* (partially logged out). A wakeup from ring zero indicating that the process 1564* was stopped and could be destroyed was apparently lost. Destruction of the 1565* process will be completed. 1566* 1567* A: $inform 1568* 1569* Message: 1570* asu_: (called by PROCEDURE) USER PROJ CHN is not stopped (state = S) even 1571* though destroy flag = D; 1572* it might not be possible to destroy this process 1573* 1574* S: as (severity1) 1575* 1576* T: In response to an operator command to bump or log out an interactive, 1577* absentee, or daemon user. 1578* 1579* M: The process being bumped or logged out was found to be partially 1580* logged out already, but not in the stopped state. An attempt will be made to 1581* destroy this process, but it might fail. 1582* 1583* A: $inform 1584* 1585* Message: 1586* asu_: unmasking channel CHANNEL. 1587* 1588* S: as (severity1) 1589* 1590* T: In response to an operator command to attach a channel which has 1591* been masked by MCS. 1592* 1593* M: A special order is issued to MCS to unmask CHANNEL, and the 1594* channel should then be available for regular use. 1595* 1596* A: $ignore 1597* 1598* 1599* Message: 1600* asu_: MESSAGE. unable to unmask channel CHANNEL. 1601* 1602* S: as (severity1) 1603* 1604* T: In response to an operator command to attach a channel which had 1605* been masked by MCS. 1606* 1607* M: The CHANNEL could not be unmasked. 1608* 1609* A: $inform 1610* 1611* 1612* Message: 1613* asu_: ENTRYPOINT called with null UTE ptr. 1614* 1615* S: as (severity0) 1616* 1617* T: ENTRYPOINT may be suspend_process or setup_login_server_handle. 1618* suspend_process was called by one of the process termination handlers 1619* to suspend an interactive process whose terminal disconnected, or to suspend 1620* an absentee process via the operator "abs suspend" command. 1621* setup_login_server_handler was called in response to a validate, connect, 1622* new_proc, or destroy request from a login server. 1623* 1624* M: Programming error in the process termination handlers, or the 1625* login server support of the Answering Service. 1626* 1627* A: $inform 1628* 1629* 1630* Message: 1631* asu_: CHANNEL in use as a multiplexer and cannot be attached. 1632* 1633* S: $as0 1634* 1635* T: When issuing an operator attach command for a channel. 1636* 1637* M: CHANNEL is operating as a multiplexer, supporting one or more 1638* channels. It cannot be attached directly. The attach operation fails. 1639* 1640* A: $tryagain 1641* 1642* Message: 1643* asu_: CHANNEL in use for T & D and cannot be attached. 1644* 1645* S: as (severity1) 1646* 1647* T: $run 1648* 1649* M: An operator attach command specified a CHANNEL being tested via 1650* Test and Diagnostic routines. The channel was not attached. 1651* 1652* A: $tryagain 1653* 1654* 1655* Message: 1656* asu_: CHANNEL has in_use = N, current state = S, {CDTE.state was OS} 1657* 1658* S: $as1 1659* 1660* T: When the operator attempts to attach the channel. 1661* 1662* M: The Channel Definition Table (CDT) entry for CHANNEL is in an 1663* inconsistent state. See dialup_values.incl.pl1 for a description of 1664* the in_use and state values. The old state value OS is displayed only if 1665* it differs from the current state. 1666* 1667* A: $tryagain 1668* 1669* 1670* Message: 1671* asu_: CHANNEL is already attached; will try to listen to it again 1672* 1673* S: $as1 1674* 1675* T: When the operator attempts to attach a channel. 1676* 1677* M: The CHANNEL was already attached by the Answering Service, but was 1678* not dialed up. The Answering Service will attempt to listen for dialups 1679* on the channel. 1680* 1681* A: $tryagain 1682* 1683* 1684* Message: 1685* asu_: Unable to create event channel for new UTE LOCATION 1686* 1687* S: $as2 1688* 1689* T: $run 1690* 1691* M: $err 1692* 1693* A: $notify 1694* 1695* 1696* Message: 1697* asu_$release_ate: bad cdte.process (LOCATION) for CHANNEL 1698* 1699* S: $as0 1700* 1701* T: $run 1702* 1703* M: $err When asked to release a User Table Entry (UTE) for an 1704* interactive process, the cdte.process pointer (LOCATION) did not point into 1705* the answer table. The UTE was not released. 1706* 1707* A: $ignore 1708* 1709* 1710* Message: 1711* asu_: attach channel not done on CHANNEL; service type = TYPE 1712* 1713* S: $as0 1714* 1715* T: When attaching channels to the Answering Service. 1716* 1717* M: The CHANNEL was found in an inactive state (TYPE = INACTIVE), or 1718* was found to be a multiplexer channel (TYPE = MULTIPLEXER). It was not 1719* attached. $err 1720* 1721* A: $ignore 1722* 1723* 1724* Message: 1725* asu_: listen not done on CHANNEL: IN_USE with state = STATE, 1726* in_use = IN_USE, tra_vec = CURRENT_OPERATION 1727* 1728* S: $as0 1729* 1730* T: When the Answering Service tries to listen to the channel. 1731* 1732* M: The Channel Definition Table (CDT) entry for CHANNEL is in an 1733* inconsistent state. See dialup_values.incl.pl1 for a description of 1734* the state, in_use and tra_vec values. 1735* 1736* A: $ignore 1737* 1738* 1739* Message: 1740* asu_: listen not done on CHANNEL; current service type = TYPE 1741* 1742* S: $as0 1743* 1744* T: When the Answering Service tried to listen to the channel. 1745* 1746* M: The CHANNEL was found in an inactive state (TYPE = INACTIVE), 1747* was found to be a multiplexer channel (TYPE = MULTIPLEXER), was found to 1748* be in use by the message coordinator (TYPE = MC), or was found to 1749* be attached for Testing and Diagnostics (TYPE = TANDD_SERVICE). The attempt 1750* to listen on the channel failed. $err 1751* 1752* A: $ignore 1753* 1754* 1755* Message: 1756* asu_: listen failed on CHANNEL: state = N 1757* 1758* S: $as0 1759* 1760* T: When attempting to listen for dialups on the channel. 1761* 1762* M: The Channel Definition Table (CDT) entry for CHANNEL has an 1763* invalid state value N. Channel listening will not occur. 1764* 1765* A: $ignore 1766* 1767* 1768* Message: 1769* asu_: CHANNEL is a multiplexer and cannot be removed. 1770* 1771* S: $as1 1772* 1773* T: When the operator attempts to remove a channel. 1774* 1775* M: CHANNEL is a multiplexer channel which handles data for one or 1776* more subchannels. Such multiplexers are not attached by the Answering 1777* Service, and therefore cannot be removed. 1778* 1779* A: $tryagain 1780* 1781* 1782* Message: 1783* asu_$bump_user: ERROR_MESSAGE. BLAST_MESSAGE. Sending blast message to 1784* PERSON.PROJECT on CHANNEL 1785* 1786* S: $as0 1787* 1788* T: $run 1789* 1790* M: An error occurred while attempting to send an operator warning 1791* message to PERSON.PROJECT on CHANNEL. ERROR_MESSAGE is the text associated 1792* with the error which occurred. BLAST_MESSAGE is the undelivered operator 1793* warning. 1794* 1795* A: $ignore 1796* 1797* Message: 1798* asu_$suspend_process: PERSON.PROJECT CHANNEL is already suspended 1799* 1800* S: $as1 1801* 1802* T: asu_$suspend_process was called by one of the process termination 1803* handlers to suspend an interactive process whose terminal disconnected, or 1804* to suspend an absentee process via the operator "abs suspend" command. 1805* 1806* M: The process is already suspended. The current request will be 1807* ignored. 1808* 1809* A: $ignore 1810* 1811* 1812* Message: 1813* asu_$release_suspended_process: PERSON.PROJECT CHANNEL is not suspended 1814* 1815* S: $as0 1816* 1817* T: Called in response to an operator "abs release" command, or in 1818* response to a user reconnecting to an interactive process. 1819* 1820* M: One of the process termination handlers is incorrectly calling 1821* to release a process which is not currently suspended. 1822* 1823* A: $ignore 1824* 1825* 1826* Message: 1827* asu_: ERROR_MESSAGE. Sending initial wakeup to PROCESS_ID (PERSON.PROJECT) 1828* 1829* S: $as0 1830* 1831* T: Called at process creation to start the process running. 1832* 1833* M: ERROR_MESSAGE is the text of an error which occurred attempting 1834* to send a wakeup to PERSON.PROJECT. As a result of this error, process 1835* creation will fail. 1836* 1837* A: $ignore 1838* 1839* 1840* Message: 1841* asu_: ERROR_MESSAGE. Retrieving the values of R-0ffset and R-Factor for 1842* PROCESS_ID (PERSON.PROJECT). 1843* 1844* S: $as0 1845* 1846* T: Called at process creation. 1847* 1848* M: asu_$start_process called hphcs_$get_ipc_operands. This call failed 1849* with an error whose text is shown as ERROR_MESSAGE. As a result, the 1850* process will not be started. 1851* 1852* A: $ignore 1853* 1854* 1855* END MESSAGE DOCUMENTATION */ 1856 1857 end asu_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 05/02/89 1154.2 asu_.pl1 >spec>install>1038>asu_.pl1 1375 1 08/06/87 0913.4 absentee_user_table.incl.pl1 >ldd>include>absentee_user_table.incl.pl1 1376 2 08/06/87 0913.0 answer_table.incl.pl1 >ldd>include>answer_table.incl.pl1 1377 3 08/06/87 0913.4 as_data_.incl.pl1 >ldd>include>as_data_.incl.pl1 1378 4 08/06/87 0913.4 as_data_definitions_.incl.pl1 >ldd>include>as_data_definitions_.incl.pl1 1379 5 01/21/85 0912.2 as_wakeup_priorities.incl.pl1 >ldd>include>as_wakeup_priorities.incl.pl1 1380 6 09/09/75 2007.3 author_dcl.incl.pl1 >ldd>include>author_dcl.incl.pl1 6-10 7 04/21/82 1211.8 author.incl.pl1 >ldd>include>author.incl.pl1 1381 8 08/06/87 0913.0 cdt.incl.pl1 >ldd>include>cdt.incl.pl1 8-314 9 07/21/88 2036.0 fnp_types.incl.pl1 >ldd>include>fnp_types.incl.pl1 1382 10 08/06/87 0913.4 dialup_values.incl.pl1 >ldd>include>dialup_values.incl.pl1 1383 11 08/06/87 0912.9 daemon_user_table.incl.pl1 >ldd>include>daemon_user_table.incl.pl1 1384 12 08/06/87 0913.4 installation_parms.incl.pl1 >ldd>include>installation_parms.incl.pl1 12-148 13 11/21/79 1458.3 rcp_init_flags.incl.pl1 >ldd>include>rcp_init_flags.incl.pl1 1385 14 08/06/87 0913.4 line_types.incl.pl1 >ldd>include>line_types.incl.pl1 1386 15 08/03/78 2021.0 process_status_return.incl.pl1 >ldd>include>process_status_return.incl.pl1 1387 16 08/06/87 0913.5 sc_stat_.incl.pl1 >ldd>include>sc_stat_.incl.pl1 1388 17 08/06/87 0913.5 sys_log_constants.incl.pl1 >ldd>include>sys_log_constants.incl.pl1 1389 18 08/06/87 0913.5 system_message.incl.pl1 >ldd>include>system_message.incl.pl1 1390 19 08/06/87 0913.5 uc_ls_handle.incl.pl1 >ldd>include>uc_ls_handle.incl.pl1 1391 20 08/06/87 0913.6 user_attributes.incl.pl1 >ldd>include>user_attributes.incl.pl1 20-112 21 07/14/88 2015.0 user_abs_attributes.incl.pl1 >ldd>include>user_abs_attributes.incl.pl1 1392 22 07/14/88 2015.0 user_table_entry.incl.pl1 >ldd>include>user_table_entry.incl.pl1 1393 23 08/06/87 0913.6 user_table_header.incl.pl1 >ldd>include>user_table_header.incl.pl1 1394 24 01/18/85 0953.2 whotab.incl.pl1 >ldd>include>whotab.incl.pl1 NAMES DECLARED IN THIS COMPILATION. IDENTIFIER OFFSET LOC STORAGE CLASS DATA TYPE ATTRIBUTES AND REFERENCES (* indicates a set context) NAMES DECLARED BY DECLARE STATEMENT. ANS_SERVICE constant fixed bin(17,0) initial dcl 8-259 ref 334 348 352 631 CHANNEL_DELETED 013121 constant fixed bin(17,0) initial dcl 8-288 ref 266 DIAL_OUT_SERVICE constant fixed bin(17,0) initial dcl 8-259 ref 334 521 649 FTP_SERVICE constant fixed bin(17,0) initial dcl 8-259 ref 334 348 451 631 866 927 INACTIVE constant fixed bin(17,0) initial dcl 8-272 ref 348 352 428 501 655 INT_LOGIN_PRIO 000115 constant fixed bin(17,0) initial dcl 5-32 set ref 384* 458* 460* MC_SERVICE constant fixed bin(17,0) initial dcl 8-259 ref 327 365 530 ME 000006 constant char(32) initial packed unaligned dcl 201 set ref 1171* 1176* MPX_SERVICE constant fixed bin(17,0) initial dcl 8-259 ref 282 435 508 617 NL 013122 constant char(1) initial dcl 202 ref 1236 1243 1250 NOT_CONFIGURED 013120 constant fixed bin(17,0) initial dcl 8-280 ref 274 NOW_FREE constant fixed bin(17,0) initial dcl 10-76 ref 257 777 NOW_HAS_PROCESS constant fixed bin(17,0) initial dcl 10-76 ref 636 652 770 784 1286 NOW_HUNG_UP constant fixed bin(17,0) initial dcl 10-76 ref 298 525 654 NOW_LISTENING constant fixed bin(17,0) initial dcl 10-76 ref 566 733 NOW_LOGGED_IN constant fixed bin(17,0) initial dcl 10-76 ref 736 PREEMPT_BUMPED constant fixed bin(17,0) initial dcl 10-132 ref 908 945 PREEMPT_TERM_SENT constant fixed bin(17,0) initial dcl 10-132 ref 1006 1010 PT_ABSENTEE constant fixed bin(17,0) initial dcl 22-261 ref 773 PT_DAEMON constant fixed bin(17,0) initial dcl 22-261 ref 780 PT_INTERACTIVE 000123 constant fixed bin(17,0) initial dcl 22-261 set ref 378* 766 P_action_string parameter char packed unaligned dcl 1355 ref 1349 1361 P_bufr parameter char(200) dcl 1126 set ref 1120 1136* P_bump_msg parameter bit(1) dcl 1271 ref 1265 1323 P_code parameter fixed bin(35,0) dcl 116 in procedure "asu_" set ref 834 842 847* 869* 871* 881 895 900* 936* 939 939 939* 966 974 982 990 1184 1192* 1194* 1370* P_code parameter fixed bin(35,0) dcl 1273 in procedure "BLAST_USER" set ref 1265 1279* 1288* 1294* 1336* 1337 P_error_message parameter char packed unaligned dcl 117 in procedure "asu_" set ref 1184 1191* 1194* P_error_message parameter char packed unaligned dcl 1272 in procedure "BLAST_USER" set ref 1265 1277* 1290* 1295* 1339* 1345* P_ftp_code parameter char(4) dcl 1223 in procedure "format_ftp_output" ref 1220 1232 1255 P_ftp_code parameter fixed bin(17,0) dcl 1126 in procedure "asu_" ref 1120 1134 P_in_lng parameter fixed bin(17,0) dcl 1126 set ref 1120 1136* P_lng parameter fixed bin(17,0) dcl 1126 set ref 1120 1136* P_message parameter char(200) dcl 1223 in procedure "format_ftp_output" ref 1220 1243 1248 1250 1256 1258 P_message parameter char packed unaligned dcl 118 in procedure "asu_" set ref 1184 1194* P_message parameter char packed unaligned dcl 1269 in procedure "BLAST_USER" set ref 1265 1288 1288 1288 1288 1300 1308* 1311 P_msg_lng parameter fixed bin(17,0) dcl 1223 ref 1220 1234 1243 1245 1250 1256 1258 P_need_formatting parameter bit(1) dcl 1270 ref 1265 1306 P_new_lng parameter fixed bin(17,0) dcl 1223 set ref 1220 1237* 1259* P_utep parameter pointer dcl 1268 in procedure "BLAST_USER" ref 1265 1275 P_utep parameter pointer dcl 119 in procedure "asu_" set ref 805 810 842 850 881 886 895 901 936* 950 956 966 974 982 990 998 1004 1022 1024 1060 1062 1150 1158 1184 1187 1194* 1202 1209 1212 1360 SLAVE_SERVICE constant fixed bin(17,0) initial dcl 8-259 ref 334 553 559 SL_LOG 000123 constant fixed bin(17,0) initial dcl 17-14 set ref 260* 268* 275* 283* 291* 301* 314* 320* 328* 340* 355* 365* 436* 619* 815* 821* 860* 1032* 1107* SL_LOG_BEEP 000125 constant fixed bin(17,0) initial dcl 17-14 set ref 386* 594* SL_LOG_SILENT 000117 constant fixed bin(17,0) initial dcl 17-14 set ref 412* 429* 494* 502* 509* 515* 531* 545* 680* 687* 691* 697* 939* 1026* 1064* 1070* 1171* 1176* 1189* 1209* SYSTEM_MESSAGE_AS_INACTIVITY_V1 000000 constant char(8) initial packed unaligned dcl 18-55 ref 1325 SYSTEM_MESSAGE_AS_WARN_V1 000002 constant char(8) initial packed unaligned dcl 18-55 ref 1329 SYSTEM_MESSAGE_TYPE_AS_INACTIVITY constant fixed bin(17,0) initial dcl 18-49 ref 1324 SYSTEM_MESSAGE_TYPE_AS_WARN constant fixed bin(17,0) initial dcl 18-49 ref 1328 SYSTEM_MESSAGE_VERSION_1 000004 constant char(8) initial packed unaligned dcl 18-27 ref 1322 TANDD_SERVICE constant fixed bin(17,0) initial dcl 8-259 ref 290 514 TTY_DIALED constant fixed bin(17,0) initial dcl 10-64 ref 301 305 TTY_KNOWN constant fixed bin(17,0) initial dcl 10-64 ref 544 729 TTY_MASKED 013120 constant fixed bin(17,0) initial dcl 10-64 ref 313 UTE_SIZE constant fixed bin(17,0) initial dcl 2-120 ref 769 769 WAIT_DIALUP constant fixed bin(17,0) initial dcl 10-25 ref 561 662 WAIT_FIN_PRIV_ATTACH constant fixed bin(17,0) initial dcl 10-25 ref 553 WAIT_FIN_TANDD_ATTACH constant fixed bin(17,0) initial dcl 10-25 ref 662 WAIT_HANGUP constant fixed bin(17,0) initial dcl 10-25 ref 626 741 WAIT_LOGIN_ARGS constant fixed bin(17,0) initial dcl 10-25 ref 741 WAIT_LOGOUT constant fixed bin(17,0) initial dcl 10-25 ref 644 WAIT_REMOVE constant fixed bin(17,0) initial dcl 10-25 ref 643 WAIT_SLAVE_REQUEST constant fixed bin(17,0) initial dcl 10-25 ref 522 559 a_logout_index parameter fixed bin(17,0) dcl 1000 ref 998 1009 a_pid parameter bit(36) dcl 762 ref 760 770 777 784 a_type parameter fixed bin(17,0) dcl 762 set ref 760 766* 773* 780* 791* access_class 12 based bit(72) array level 2 dcl 8-72 set ref 577* 577* 580 active based fixed bin(17,0) level 2 dcl 22-78 set ref 393* 770 777 784 1286 activity_can_unbump 000100 automatic bit(1) initial dcl 212 in procedure "asu_" set ref 212* 889* 912 activity_can_unbump 431(16) based bit(1) level 3 in structure "ute" packed packed unaligned dcl 22-78 in procedure "asu_" set ref 909* 912* addr builtin function dcl 133 ref 243 256 470 470 769 776 783 813 813 869 869 1213 1288 1288 adjust_abs_q_no 431(05) based bit(1) level 3 packed packed unaligned dcl 22-78 ref 851 854 915 aim_check_$equal 000124 constant entry external dcl 137 ref 577 ansp 000506 automatic pointer initial dcl 2-53 set ref 240* 244 410* 411 767* 768 769 905* 907 923 1096* 1097 1098 1116 2-53* anstbl based structure level 1 dcl 2-55 as_data_$ansp 000276 external static pointer dcl 3-26 ref 240 410 631 767 905 1096 as_data_$as_procid 000300 external static bit(36) dcl 3-27 set ref 1367* as_data_$as_tty 000510 automatic char(6) packed unaligned dcl 3-29 set ref 243 as_data_$autp 000302 external static pointer dcl 3-31 ref 774 as_data_$cdtp 000304 external static pointer dcl 3-33 ref 251 251 489 489 677 677 724 724 as_data_$dutp 000306 external static pointer dcl 3-37 ref 781 as_data_$rs_ptrs 000310 external static pointer array dcl 3-49 ref 1012 1012 1014 1014 1015 1015 1040 1040 1042 1042 as_data_$whoptr 000312 external static pointer dcl 3-60 ref 1078 1078 as_error_table_$bump_mins_msg 000244 external static fixed bin(35,0) dcl 180 set ref 1145* as_error_table_$bump_secs_msg 000246 external static fixed bin(35,0) dcl 180 set ref 1146* as_error_table_$from_multics_msg 000250 external static fixed bin(35,0) dcl 180 set ref 1144* as_error_table_$inactive 000252 external static fixed bin(35,0) dcl 180 ref 888 as_error_table_$tty_already 000254 external static fixed bin(35,0) dcl 180 ref 308 as_error_table_$tty_dim_err 000256 external static fixed bin(35,0) dcl 180 ref 600 as_error_table_$tty_is_master 000260 external static fixed bin(35,0) dcl 180 ref 246 as_error_table_$tty_no_room 000262 external static fixed bin(35,0) dcl 180 ref 380 388 as_error_table_$warn_msg 000264 external static fixed bin(35,0) dcl 180 set ref 1307* as_tty 42 based char(8) level 2 in structure "anstbl" packed packed unaligned dcl 2-55 in procedure "asu_" ref 244 as_tty based char(6) packed unaligned dcl 4-18 in procedure "asu_" ref 243 astty_$tty_detach 000126 constant entry external dcl 138 ref 628 astty_$tty_event 000130 constant entry external dcl 139 ref 463 537 astty_$tty_force 000132 constant entry external dcl 140 ref 869 1288 astty_$tty_index 000134 constant entry external dcl 141 ref 443 623 astty_$tty_order 000136 constant entry external dcl 142 ref 316 470 541 625 astty_$tty_state 000140 constant entry external dcl 143 ref 300 685 asu_$asu_listen 000142 constant entry external dcl 144 ref 345 360 asu_$attach_channel 000144 constant entry external dcl 145 ref 344 359 asu_$channel_in_use 000150 constant entry external dcl 147 ref 493 asu_$release_ate 000146 constant entry external dcl 146 ref 656 at 100 based structure level 2 dcl 22-78 autbl based structure level 1 dcl 1-28 author based structure level 2 dcl 6-9 author_dcl based structure level 1 dcl 6-9 autp 000504 automatic pointer initial dcl 1-26 set ref 774* 775 776 1-26* based_area based area(1024) dcl 197 ref 1317 1319 1344 baseno builtin function dcl 133 ref 411 411 679 679 bit builtin function dcl 133 ref 1216 build_string 000602 automatic varying char(200) dcl 1228 set ref 1232* 1236* 1236 1238 1247* 1248* 1248 1253 1255* 1255 1256* 1256 1258* 1258 1259 1261 bump_added_info 000101 automatic char(32) packed unaligned dcl 213 set ref 890* 892* 903* 919* 921* bump_min_fmt 000042 internal static char(100) dcl 208 set ref 919* 1145* bump_sec_fmt 000073 internal static char(100) dcl 208 set ref 921* 1146* bv_code_2 parameter fixed bin(35,0) dcl 121 set ref 237 242* 246* 263* 270* 278* 286* 294* 308* 319* 322* 330* 342* 344* 345 345* 357* 359* 360 360* 375 380* 388* 399* 404 408* 422 425* 431* 438* 484 491* 497* 504* 511* 517* 533* 547* 600* bv_ptr_1 parameter pointer dcl 121 ref 375 377 404 406 422 424 484 490 570 573 674 676 722 725 bv_tty_name parameter char packed unaligned dcl 121 set ref 237 243 244 257 260* 268* 275* 283* 291* caller 5 based char(64) level 2 dcl 18-31 set ref 1331* caller_name parameter char packed unaligned dcl 807 set ref 805 815* 821* cdt based structure level 1 dcl 8-44 cdt_entry 1520 based structure array level 2 dcl 8-44 set ref 256 cdte based structure level 1 dcl 8-72 cdtep 000514 automatic pointer dcl 8-41 set ref 256* 257 257 266 274 282 290 298 299 300* 301 301 301 301 301 301 305 313 314 316* 320 327 328 334 334 334 334 338 338 340 344* 345* 348 348 348 352 352 355 359* 360* 365 365 365 377* 392 393 395 396 406* 407 412 412 417 424* 428 429 435 436 442* 443* 446 447 451 458 458* 460 460* 463* 468 469 470* 490* 493* 494 494 494 494 501 502 508 509 514 515 521 522 523 524 525 526 526 530 531 537* 541* 544 545 545 553 553 553 553 559 559 561 562 563 566 573* 575 576 577 577 579 580 580 594 594 598* 616* 617 619 623* 625* 626 628* 629 631 631 634 634* 636 639 643 649 649 649* 652 654 655 656 656* 662 662 676* 679 680* 685* 687* 687 691* 697* 697 697 697 697 702* 725* 727 729 733 736 741 741 839* 852* 865 866 869* 925* 926 927 cdtex 000111 automatic fixed bin(17,0) dcl 214 set ref 255* 256* cdtp 000512 automatic pointer dcl 8-41 set ref 251* 255 256 489* 677* 679 680* 724* channel 341 based pointer level 2 packed packed unaligned dcl 22-78 set ref 396* 852 925 1287 1288 channel_call 000474 automatic bit(1) initial packed unaligned dcl 837 set ref 837* 840* 849 858 869 channel_threads based structure level 1 dcl 8-249 chnp parameter pointer dcl 836 ref 834 839 cleanup 000000 stack reference condition dcl 129 ref 1316 clock builtin function dcl 133 ref 907 1216 1308 1308 code 000112 automatic fixed bin(35,0) dcl 215 set ref 300* 316* 317 317 319 320* 322 368* 384* 385 386* 443* 444 447* 448 458* 460* 461 463* 464 470* 471 537* 539 541* 542 589 594* 623* 624 625* 628* 629* 656* 685* 686 687 691* 1017* 1055* 1099* 1101 1102* 1165* 1166 1170* 1171 1171* 1176* 1362* 1363* 1367* 1370 comment 16 based char(48) level 2 in structure "cdte" dcl 8-72 in procedure "asu_" set ref 594* comment parameter char packed unaligned dcl 587 in procedure "error" set ref 585 594* convert_status_code_ 000152 constant entry external dcl 148 ref 848 887 1144 1145 1146 1307 count 412 based fixed bin(17,0) level 2 dcl 22-78 set ref 398* current_access_class 114 based bit(72) array level 2 dcl 8-72 set ref 576* 580* current_access_class_valid 75(28) based bit(1) level 3 packed packed unaligned dcl 8-72 set ref 575* 579* current_service_type 74 based fixed bin(17,0) level 2 packed packed unaligned dcl 8-72 set ref 282 290 327 338* 348 348 348 352 352* 428 435 501 508 514 526* 530 553 617 655* current_size 5 based fixed bin(17,0) level 3 in structure "anstbl" dcl 2-55 in procedure "asu_" ref 768 current_size 5 based fixed bin(17,0) level 3 in structure "autbl" dcl 1-28 in procedure "asu_" ref 775 current_size 5 based fixed bin(17,0) level 3 in structure "dutbl" dcl 11-29 in procedure "asu_" ref 782 current_size 36 based fixed bin(17,0) level 2 in structure "cdt" dcl 8-44 in procedure "asu_" ref 255 current_time 126 based fixed bin(71,0) level 2 dcl 2-55 set ref 907* 923* date_time_$format 000154 constant entry external dcl 149 ref 923 1308 destroy_flag 421 based fixed bin(17,0) level 2 dcl 22-78 set ref 644* 821* dial_ctl_$dial_term 000156 constant entry external dcl 150 ref 634 649 dialed_to_procid 112 based bit(36) level 2 dcl 8-72 set ref 524* 553 634 649 dialup_ 000160 constant entry external dcl 151 ref 384 384 460 460 dialup_flags 75(18) based structure level 2 packed packed unaligned dcl 8-72 divide builtin function dcl 133 ref 919 919 dpg_ 000162 constant entry external dcl 152 ref 640 dutbl based structure level 1 dcl 11-29 dutp 000516 automatic pointer initial dcl 11-27 set ref 781* 782 783 11-27* e 240 based structure array level 2 dcl 24-10 entry 200 based structure array level 2 in structure "anstbl" dcl 2-55 in procedure "asu_" set ref 769 entry 200 based structure array level 2 in structure "dutbl" dcl 11-29 in procedure "asu_" set ref 783 entry 200 based structure array level 2 in structure "autbl" dcl 1-28 in procedure "asu_" set ref 776 entry_name 000113 automatic varying char(32) dcl 216 set ref 426* 487* 594* error_message 000124 automatic char(256) packed unaligned dcl 217 set ref 871* 934* 936* 939* error_table_$action_not_performed 000266 external static fixed bin(35,0) dcl 190 ref 263 270 278 286 294 330 368 431 438 497 504 511 517 533 547 939 1192 1279 1294 error_table_$null_info_ptr 000270 external static fixed bin(35,0) dcl 190 ref 1363 error_table_$out_of_sequence 000272 external static fixed bin(35,0) dcl 190 set ref 1141* error_table_$undefined_order_request 000274 external static fixed bin(35,0) dcl 190 ref 317 event 376 based fixed bin(71,0) level 2 in structure "ute" dcl 22-78 in procedure "asu_" set ref 384* 947* 959* 962* 1018* 1056* 1081* 1367* event 72 based fixed bin(71,0) level 2 in structure "cdte" dcl 8-72 in procedure "asu_" set ref 446 447* 458* 460* 629* event_message 000676 automatic fixed bin(71,0) dcl 1357 set ref 1366* 1367* event_message_str 000700 automatic char(8) packed unaligned dcl 1358 set ref 1361* 1366 fnpe based structure level 1 dcl 8-200 formatted_message 000100 automatic char packed unaligned dcl 1303 set ref 1308* 1311* 1314 1332 1333 from_mx_fmt 000011 internal static char(100) dcl 208 set ref 924* 1144* ftp_dialup_ 000164 constant entry external dcl 153 ref 458 458 ftp_dialup_$init 000166 constant entry external dcl 154 ref 455 ftp_dialup_init 000010 internal static bit(1) initial packed unaligned dcl 207 set ref 453 456* 1143* get_system_free_area_ 000170 constant entry external dcl 155 ref 1317 1319 1344 grctim parameter fixed bin(17,0) dcl 897 set ref 881 895 917 919 919 919 921* 928 947 950 962 hcs_$set_ips_mask 000172 constant entry external dcl 156 ref 1105 hcs_$wakeup 000174 constant entry external dcl 157 ref 1170 1367 header based structure level 2 in structure "warn_system_message" dcl 18-31 in procedure "asu_" header based structure level 2 in structure "dutbl" dcl 11-29 in procedure "asu_" header based structure level 2 in structure "autbl" dcl 1-28 in procedure "asu_" header based structure level 2 in structure "anstbl" dcl 2-55 in procedure "asu_" hphcs_$get_ipc_operands 000176 constant entry external dcl 158 ref 1165 hphcs_$ips_wakeup 000200 constant entry external dcl 159 ref 1011 1054 hphcs_$process_status 000202 constant entry external dcl 160 ref 813 hphcs_$set_cpu_monitor 000204 constant entry external dcl 161 ref 1017 1055 i 000665 automatic fixed bin(17,0) dcl 1228 in procedure "format_ftp_output" set ref 1241* 1243 1243 1245 1248 1249* 1249 1250 1250 1256 1256 1258 1258 i 000224 automatic fixed bin(17,0) dcl 218 in procedure "asu_" set ref 469* 470 470 768* 769* 775* 776* 782* 783* 864* 866* 866* 869* 871 871 1100* 1103* 1103 1107* 1134* 1135 ignore_cpulimit 431(10) based bit(1) level 3 packed packed unaligned dcl 22-78 set ref 1016* 1031 1049* 1076* in_use based fixed bin(17,0) level 2 dcl 8-72 set ref 257 266 274 298 301* 393 494* 525* 566* 636 652 654* 697* 733 736 index builtin function dcl 133 ref 1243 1250 installation_parms based structure level 1 dcl 12-33 installation_parms_part_1 based structure level 1 dcl 12-40 installation_parms_resource_array_part based structure array level 1 unaligned dcl 12-144 ioa_$rs 000210 constant entry external dcl 162 ref 864 924 ioa_$rsnnl 000206 constant entry external dcl 162 ref 919 921 1277 1308 1339 ip defined pointer dcl 4-21 ref 1012 1014 1015 1040 1042 ipc_$create_ev_chn 000212 constant entry external dcl 163 ref 447 ipc_$decl_ev_call_chn 000214 constant entry external dcl 164 ref 384 458 460 ipc_$drain_chn 000216 constant entry external dcl 165 ref 629 ipc_$unmask_ev_calls 000220 constant entry external dcl 166 ref 1102 ipc_validate_$encode_event_channel_name 000222 constant entry external dcl 167 ref 1167 just_listen 000226 automatic bit(1) dcl 219 set ref 241* 305* 339 354 length builtin function dcl 133 ref 1259 1288 1288 1300 1314 1332 line_type 33 based fixed bin(17,0) level 2 packed packed unaligned dcl 8-72 ref 468 469 lng 000227 automatic fixed bin(17,0) dcl 220 set ref 919* 921* 924* 928* 928* 930* 930* 936 936 lock_count 114 based fixed bin(17,0) level 2 dcl 2-55 set ref 1097 1098* login_flags 17 based structure level 2 dcl 22-78 login_server_info 436 based structure level 2 dcl 22-78 logout_index 423 based fixed bin(17,0) level 2 dcl 22-78 set ref 1009* logout_type 422 based char(4) level 2 packed packed unaligned dcl 22-78 set ref 642* long 000230 automatic char(100) dcl 221 set ref 848* 857 860 860 864* 866 mcode parameter fixed bin(35,0) dcl 883 set ref 881 887* 888 mescode parameter fixed bin(35,0) dcl 844 set ref 834 842 848* min builtin function dcl 1132 ref 1134 mod builtin function dcl 133 ref 919 mpxe based structure level 1 dcl 8-221 msg 000261 automatic char(150) dcl 222 set ref 917* 919* 921* 924* mshort parameter char(8) dcl 883 set ref 881 887* mstring 000327 automatic char(200) dcl 222 set ref 864* 866* 869 869 871 871 924* 928* 928* 930* 930* 936 936 multics_msg_date 000411 automatic varying char(64) dcl 223 set ref 923* 924* n_disconnected_procs 126(24) based fixed bin(12,0) level 2 packed packed unsigned unaligned dcl 8-72 ref 656 name 2 based char(32) level 2 dcl 8-72 set ref 257 301* 314* 320* 328* 340* 355* 365* 392 412* 429* 436* 494* 502* 509* 515* 531* 545* 594* 619* 687* 697* no_warning 100(19) based bit(1) level 3 packed packed unaligned dcl 22-78 ref 914 1276 noprint 17(07) based bit(1) level 3 packed packed unaligned dcl 22-78 set ref 641* null builtin function dcl 133 ref 316 316 379 409 417 523 541 541 553 562 625 625 631 790 811 865 926 1005 1025 1063 1187 1209 1-26 2-53 11-27 22-76 1287 1315 1317 1363 old_ips_mask 000432 automatic bit(36) dcl 224 set ref 1105* 1107* old_state 000433 automatic fixed bin(17,0) dcl 225 set ref 299* 301 301 301* our_handle 436 based bit(72) level 3 dcl 22-78 set ref 1213 outp parameter pointer dcl 762 set ref 760 786* 790* p2 parameter pointer dcl 121 ref 614 616 part_1 based structure level 2 dcl 12-33 person 4 based char(24) level 2 packed packed unaligned dcl 22-78 set ref 815* 821* 939* 1032* 1070* 1171* 1176* 1277* preempted 420 based fixed bin(17,0) level 2 dcl 22-78 set ref 908 945* 1006 1010* prefix 000434 automatic char(100) dcl 226 set ref 887* 902* 924* proc_id 276 based bit(36) level 2 dcl 22-78 set ref 770 777 784 812 1011* 1017* 1054* 1055* 1165* 1170* 1171* 1176* 1339* process 111 based pointer level 2 packed packed unaligned dcl 8-72 set ref 395* 407 412* 417* 523* 553 562* 639 process_status_return 000520 automatic structure level 1 dcl 15-5 set ref 813 813 process_type based fixed bin(17,0) level 2 in structure "uc_ls_handle" packed packed unaligned dcl 19-11 in procedure "asu_" set ref 1214* process_type 1 based fixed bin(17,0) level 2 in structure "ute" dcl 22-78 in procedure "asu_" ref 1214 project 12 based char(12) level 2 packed packed unaligned dcl 22-78 set ref 815* 821* 939* 1032* 1070* 1171* 1176* 1277* queue 245 based fixed bin(17,0) level 2 dcl 22-78 ref 851 854 858 915 r_factor 000465 automatic fixed bin(35,0) dcl 227 set ref 1165* 1167* r_offset 000466 automatic fixed bin(18,0) dcl 228 set ref 1165* 1167* rcp_init_flags based structure level 1 packed packed unaligned dcl 13-8 result 000502 automatic picture(4) packed unaligned dcl 1131 set ref 1135* 1136 rtrim builtin function dcl 133 ref 860 860 1288 1288 1314 1332 savi 000225 automatic fixed bin(17,0) dcl 218 set ref 1097* 1107* sc_stat_$Go_typed 000314 external static bit(1) dcl 16-62 ref 1141 sc_stat_$Multics_typed 000316 external static bit(1) dcl 16-62 ref 1141 scdtp defined pointer dcl 4-27 ref 251 489 677 724 send_system_message_ 000224 constant entry external dcl 169 ref 1336 service_type 32(18) based fixed bin(17,0) level 2 packed packed unaligned dcl 8-72 set ref 334 334 334 334 338 365 365* 451 521 526 559 631 631 649 866 927 short parameter char(8) dcl 844 set ref 834 842 848* shxx 000470 automatic char(8) dcl 229 set ref 1144* 1145* 1146* start_proc_chn 000472 automatic fixed bin(71,0) dcl 230 set ref 1167* 1170* state 77 based fixed bin(17,0) level 2 dcl 8-72 set ref 299 301 301 301* 301 305 313 494* 544 545* 697* 729 sub_err_ 000226 constant entry external dcl 170 ref 1141 substr builtin function dcl 133 set ref 871 871 936 936 1216 1243 1247* 1248 1250 1253 1256 1258 sus_channel 310 based fixed bin(71,0) level 2 dcl 22-78 set ref 1050* sus_cpu_time_seconds 544 based fixed bin(17,0) level 3 packed packed unaligned dcl 12-33 ref 1040 sus_real_time_seconds 544(18) based fixed bin(17,0) level 3 packed packed unaligned dcl 12-33 ref 1042 sus_sent 431(08) based bit(1) level 3 packed packed unaligned dcl 22-78 set ref 1031 1048* 1069 1079* suspended 273(02) based bit(1) array level 3 in structure "whotab" packed packed unaligned dcl 24-10 in procedure "asu_" set ref 1078* suspended 431(09) based bit(1) level 3 in structure "ute" packed packed unaligned dcl 22-78 in procedure "asu_" set ref 1047* 1077 1079* sys_log_ 000230 constant entry external dcl 171 ref 260 268 275 283 291 301 314 328 340 355 365 412 429 436 494 502 509 515 531 545 619 680 687 697 815 821 860 1026 1032 1064 1070 1107 sys_log_$error_log 000232 constant entry external dcl 172 ref 320 386 594 691 939 1171 1176 1189 1209 system_message_header based structure level 1 dcl 18-18 system_message_ptr 000540 automatic pointer dcl 18-16 set ref 1315* 1317 1317 1319* 1321 1322 1324 1325 1328 1329 1331 1332 1333 1336* 1344 system_message_text_len 000542 automatic fixed bin(17,0) dcl 18-29 set ref 1300* 1303 1314* 1319 1319 target_proc 000520 automatic bit(36) level 2 dcl 15-5 set ref 812* temp 000666 automatic fixed bin(17,0) dcl 1228 set ref 1243* 1245 1245 1248 1249 1250* term_cpu_limit 000476 automatic fixed bin(71,0) dcl 1001 set ref 1012* 1013 1013* 1017* 1040* 1041 1041* 1055* term_cpu_time_seconds 540(18) based fixed bin(17,0) level 3 packed packed unaligned dcl 12-33 ref 1012 term_real_time_seconds 540 based fixed bin(17,0) level 3 packed packed unaligned dcl 12-33 ref 1014 term_realtime_limit 000500 automatic fixed bin(71,0) dcl 1002 set ref 1014* 1015 1015* 1018* 1042* 1043 1043* 1056* text 26 based char level 2 dcl 18-31 set ref 1333* text_len 25 based fixed bin(21,0) level 2 dcl 18-31 set ref 1317 1319* 1321 1332* 1333 1344 timer_manager_$alarm_wakeup 000234 constant entry external dcl 173 ref 947 962 1018 1056 1116 timer_manager_$reset_alarm_wakeup 000236 constant entry external dcl 174 ref 959 1081 tra_vec 74(18) based fixed bin(17,0) level 2 packed packed unaligned dcl 8-72 set ref 494* 522* 553 559* 561* 626* 643* 662 662* 697* 741 741 tty_name 316 based char(32) level 2 packed packed unaligned dcl 22-78 set ref 392* 815* 821* 939* 1032* 1070* twx 76 based fixed bin(17,0) level 2 dcl 8-72 ref 727 type 2 based fixed bin(17,0) level 3 dcl 18-31 set ref 1324* 1328* type_version 3 based char(8) level 3 dcl 18-31 set ref 1325* 1329* uc_ls_handle based structure level 1 dcl 19-11 uc_ls_handle_ptr 000544 automatic pointer dcl 19-9 set ref 1213* 1214 1215 1216 uflags 431 based structure level 2 dcl 22-78 unique_id 1 based bit(36) level 2 dcl 19-11 set ref 1216* unspec builtin function dcl 133 set ref 1321* 1366* 1366 up_exec 4 000520 automatic fixed bin(17,0) level 2 dcl 15-5 set ref 814 821* update_channel 116 based fixed bin(71,0) level 2 dcl 2-55 set ref 1116* user_abs_attributes based structure level 1 dcl 21-25 user_attributes based structure level 1 dcl 20-21 user_name 137 based structure level 2 packed packed unaligned dcl 8-72 set ref 563* user_table_mgr_$allocate 000240 constant entry external dcl 175 ref 378 user_table_mgr_$free 000242 constant entry external dcl 176 ref 416 ut_header based structure level 1 dcl 23-16 ute based structure level 1 dcl 22-78 ute_index 2 based fixed bin(17,0) level 2 in structure "ute" dcl 22-78 in procedure "asu_" ref 1215 ute_index 0(18) based fixed bin(17,0) level 2 in structure "uc_ls_handle" packed packed unaligned dcl 19-11 in procedure "asu_" set ref 1215* utep 000546 automatic pointer initial dcl 22-76 set ref 378* 379 384 384* 386* 392 393 395 396 398 407* 409 411 416* 639* 640* 641 642 644 769* 770 770 776* 777 777 783* 784 784 786 810* 811 812 815 815 815 821 821 821 821 850* 851 851 852 854 854 858 871* 886* 901* 908 909 912 914 915 915 925 939 939 939 945 947 956* 959 962 1004* 1005 1006 1009 1010 1011 1016 1017 1018 1024* 1025 1031 1031 1032 1032 1032 1047 1048 1049 1050 1054 1055 1056 1062* 1063 1069 1070 1070 1070 1076 1077 1078 1079 1079 1081 1158* 1165 1170 1171 1171 1171 1176 1176 1176 1212* 1213 1214 1215 22-76* 1275* 1276 1277 1277 1286 1287 1288 1336* 1339 1360* 1363 1367 version based char(8) level 3 dcl 18-31 set ref 1322* warn_system_message based structure level 1 dcl 18-31 set ref 1317 1319 1321* 1344 warn_template 000100 automatic char(100) dcl 1304 set ref 1307* 1308* warning_time 502 based fixed bin(17,0) level 3 dcl 12-33 ref 1015 whoptr defined pointer dcl 4-29 ref 1078 whotab based structure level 1 dcl 24-10 whotabx 430 based fixed bin(17,0) level 2 dcl 22-78 ref 1078 wrd parameter char packed unaligned dcl 897 ref 895 902 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. ABS_ATTRIBUTE_NAMES internal static varying char(28) initial array dcl 21-38 ABS_DEFER_PRIO internal static fixed bin(17,0) initial dcl 5-35 ABS_FLAG_NAMES internal static varying char(8) initial array dcl 22-326 ABS_LOGIN_PRIO internal static fixed bin(17,0) initial dcl 5-36 ACCT_UPDATE_PRIO internal static fixed bin(17,0) initial dcl 5-28 ACTIVE internal static fixed bin(17,0) initial dcl 8-272 ACTIVE_VALUES internal static char(18) initial array dcl 10-86 ALT_USER_ATTRIBUTE_NAMES internal static char(20) initial array packed unaligned dcl 20-77 ANSTBL_version_4 internal static fixed bin(17,0) initial dcl 2-51 ANY_TYPE internal static fixed bin(17,0) initial dcl 18-49 AS_REQUEST_PRIO internal static fixed bin(17,0) initial dcl 5-30 AT_NORMAL internal static char(8) initial packed unaligned dcl 2-116 AT_SHUTDOWN internal static char(8) initial packed unaligned dcl 2-116 AT_SPECIAL internal static char(8) initial packed unaligned dcl 2-116 AUTBL_CONTROL_NAMES internal static varying char(20) initial array dcl 1-68 AUTBL_version_4 internal static fixed bin(17,0) initial dcl 1-24 Automatic_authentication internal static fixed bin(17,0) initial dcl 13-16 CDT_version internal static fixed bin(17,0) initial dcl 8-39 CDT_version_5 internal static fixed bin(17,0) initial dcl 8-38 CORE_FLUSH_PRIO internal static fixed bin(17,0) initial dcl 5-37 DAEMON_LOGIN_PRIO internal static fixed bin(17,0) initial dcl 5-29 DERIVE_MASK internal static bit(2) initial packed unaligned dcl 22-280 DIAL_SERVER_FLAG_NAMES internal static varying char(12) initial array dcl 22-332 DIAL_SERVICE internal static fixed bin(17,0) initial dcl 8-259 DN355 internal static fixed bin(17,0) initial dcl 9-19 DN6600 internal static fixed bin(17,0) initial dcl 9-19 DN6670 internal static fixed bin(17,0) initial dcl 9-19 DN7100 internal static fixed bin(17,0) initial dcl 9-19 DONT_MASK internal static bit(2) initial packed unaligned dcl 22-280 DO_MASK internal static bit(2) initial packed unaligned dcl 22-280 DUTBL_version_4 internal static fixed bin(17,0) initial dcl 11-25 FNP_BOOT internal static fixed bin(17,0) initial dcl 8-298 FNP_DOWN internal static fixed bin(17,0) initial dcl 8-298 FNP_FREE internal static fixed bin(17,0) initial dcl 8-298 FNP_UNKNOWN internal static fixed bin(17,0) initial dcl 8-298 FNP_UP internal static fixed bin(17,0) initial dcl 8-298 INSTALL_PRIO internal static fixed bin(17,0) initial dcl 5-31 LINE_1050 internal static fixed bin(17,0) initial dcl 14-22 LINE_2741 internal static fixed bin(17,0) initial dcl 14-22 LINE_ARDS internal static fixed bin(17,0) initial dcl 14-22 LINE_ASCII internal static fixed bin(17,0) initial dcl 14-22 LINE_ASYNC1 internal static fixed bin(17,0) initial dcl 14-22 LINE_ASYNC2 internal static fixed bin(17,0) initial dcl 14-22 LINE_ASYNC3 internal static fixed bin(17,0) initial dcl 14-22 LINE_BSC internal static fixed bin(17,0) initial dcl 14-22 LINE_COLTS internal static fixed bin(17,0) initial dcl 14-22 LINE_DSA internal static fixed bin(17,0) initial dcl 14-22 LINE_ETX internal static fixed bin(17,0) initial dcl 14-22 LINE_G115 internal static fixed bin(17,0) initial dcl 14-22 LINE_HASP_OPR internal static fixed bin(17,0) initial dcl 14-22 LINE_HDLC internal static fixed bin(17,0) initial dcl 14-22 LINE_MC internal static fixed bin(17,0) initial dcl 14-22 LINE_POLLED_VIP internal static fixed bin(17,0) initial dcl 14-22 LINE_SYNC1 internal static fixed bin(17,0) initial dcl 14-22 LINE_SYNC2 internal static fixed bin(17,0) initial dcl 14-22 LINE_SYNC3 internal static fixed bin(17,0) initial dcl 14-22 LINE_SYNCH internal static fixed bin(17,0) initial dcl 14-22 LINE_TELNET internal static fixed bin(17,0) initial dcl 14-22 LINE_UNKNOWN internal static fixed bin(17,0) initial dcl 14-22 LINE_VIP internal static fixed bin(17,0) initial dcl 14-22 LINE_X25LAP internal static fixed bin(17,0) initial dcl 14-22 LOGIN_RESULT_VALUES internal static varying char(24) initial array dcl 22-338 MASK_CTL_NAMES internal static varying char(12) initial array dcl 22-284 MC_PRIO internal static fixed bin(17,0) initial dcl 5-25 MPX_BOOT internal static fixed bin(17,0) initial dcl 8-306 MPX_DOWN internal static fixed bin(17,0) initial dcl 8-306 MPX_FREE internal static fixed bin(17,0) initial dcl 8-306 MPX_LOAD_PRIO internal static fixed bin(17,0) initial dcl 5-33 MPX_UNKNOWN internal static fixed bin(17,0) initial dcl 8-306 MPX_UP internal static fixed bin(17,0) initial dcl 8-306 Manual_authentication internal static fixed bin(17,0) initial dcl 13-16 NOW_DIALED internal static fixed bin(17,0) initial dcl 10-76 NOW_DIALED_OUT internal static fixed bin(17,0) initial dcl 10-76 NOW_DIALING internal static fixed bin(17,0) initial dcl 10-76 No_authentication internal static fixed bin(17,0) initial dcl 13-16 Nominal_authentication internal static fixed bin(17,0) initial dcl 13-16 PREEMPT_BUMPED_NO_TERM internal static fixed bin(17,0) initial dcl 10-132 PREEMPT_LOAD_CTL internal static fixed bin(17,0) initial dcl 10-132 PREEMPT_TERMSGNL_RECEIVED internal static fixed bin(17,0) initial dcl 10-132 PREEMPT_UNBUMP internal static fixed bin(17,0) initial dcl 10-132 PREEMPT_UNBUMP_IGNORE_ALARM internal static fixed bin(17,0) initial dcl 10-132 PREEMPT_VALUES internal static varying char(28) initial array dcl 10-142 PROCESS_TYPE_NAMES internal static varying char(12) initial array dcl 22-265 PT_ALARM internal static fixed bin(17,0) initial dcl 10-106 PT_BUMP internal static fixed bin(17,0) initial dcl 10-106 PT_DESTROY_REQUEST internal static fixed bin(17,0) initial dcl 10-106 PT_DETACH internal static fixed bin(17,0) initial dcl 10-106 PT_FPE internal static fixed bin(17,0) initial dcl 10-106 PT_HANGUP internal static fixed bin(17,0) initial dcl 10-106 PT_LOGOUT internal static fixed bin(17,0) initial dcl 10-106 PT_NEW_PROC_AUTH internal static fixed bin(17,0) initial dcl 10-106 PT_NEW_PROC_REQUEST internal static fixed bin(17,0) initial dcl 10-106 PT_OPERATOR_TERMINATE internal static fixed bin(17,0) initial dcl 10-106 PT_SHUTDOWN internal static fixed bin(17,0) initial dcl 10-106 PT_UNBUMP internal static fixed bin(17,0) initial dcl 10-106 PW_FLAG_NAMES internal static varying char(12) initial array dcl 22-290 SHUTDOWN_PRIO internal static fixed bin(17,0) initial dcl 5-27 SL_INFO_arg_given_in_structure internal static fixed bin(17,0) initial dcl 17-69 SL_INFO_arg_not_given internal static fixed bin(17,0) initial dcl 17-69 SL_INFO_as_mode internal static fixed bin(17,0) initial dcl 17-65 SL_INFO_command_mode internal static fixed bin(17,0) initial dcl 17-65 SL_INFO_version_1 internal static char(8) initial packed unaligned dcl 17-62 SL_LOG_CRASH internal static fixed bin(17,0) initial dcl 17-14 SL_TYPE internal static fixed bin(17,0) initial dcl 17-14 SL_TYPE_BEEP internal static fixed bin(17,0) initial dcl 17-14 SL_TYPE_CRASH internal static fixed bin(17,0) initial dcl 17-14 STATE_VALUES internal static char(15) initial array dcl 10-70 SYSERR_COPY_PRIO internal static fixed bin(17,0) initial dcl 5-26 SYSTEM_MESSAGE_DM_SHUT_V1 internal static char(8) initial packed unaligned dcl 18-55 SYSTEM_MESSAGE_TYPES internal static varying char(12) initial array dcl 18-60 SYSTEM_MESSAGE_TYPE_DM_SHUT internal static fixed bin(17,0) initial dcl 18-49 TABLE_NAMES internal static char(20) initial array packed unaligned dcl 22-271 TAG_ABSENTEE internal static char(1) initial packed unaligned dcl 10-93 TAG_DAEMON internal static char(1) initial packed unaligned dcl 10-93 TAG_INTERACTIVE internal static char(1) initial packed unaligned dcl 10-93 TAG_PROXY internal static char(1) initial packed unaligned dcl 10-93 TAG_UFT internal static char(1) initial packed unaligned dcl 10-93 TRA_VEC_VALUES internal static char(32) initial array dcl 10-54 TTY_HUNG internal static fixed bin(17,0) initial dcl 10-64 UFLAG_NAMES internal static varying char(24) initial array dcl 22-303 USER_ATTRIBUTES_always_allowed internal static bit(36) initial dcl 20-100 USER_ATTRIBUTES_default_in_pdt internal static bit(36) initial dcl 20-104 USER_ATTRIBUTES_settable_by_user internal static bit(36) initial dcl 20-108 USER_ATTRIBUTE_NAMES internal static char(20) initial array packed unaligned dcl 20-50 UTE_version_4 internal static fixed bin(17,0) initial dcl 22-74 WAIT_ANSWERBACK internal static fixed bin(17,0) initial dcl 10-25 WAIT_BEFORE_HANGUP internal static fixed bin(17,0) initial dcl 10-25 WAIT_CONNECT_REQUEST internal static fixed bin(17,0) initial dcl 10-25 WAIT_DELETE_CHANNEL internal static fixed bin(17,0) initial dcl 10-25 WAIT_DESTROY_REQUEST internal static fixed bin(17,0) initial dcl 10-25 WAIT_DETACH internal static fixed bin(17,0) initial dcl 10-25 WAIT_DIAL_OUT internal static fixed bin(17,0) initial dcl 10-25 WAIT_DIAL_RELEASE internal static fixed bin(17,0) initial dcl 10-25 WAIT_DISCARD_WAKEUPS internal static fixed bin(17,0) initial dcl 10-25 WAIT_GREETING_MSG internal static fixed bin(17,0) initial dcl 10-25 WAIT_LOGIN_LINE internal static fixed bin(17,0) initial dcl 10-25 WAIT_LOGOUT_HOLD internal static fixed bin(17,0) initial dcl 10-25 WAIT_LOGOUT_SIG internal static fixed bin(17,0) initial dcl 10-25 WAIT_NEW_PASSWORD internal static fixed bin(17,0) initial dcl 10-25 WAIT_NEW_PROC internal static fixed bin(17,0) initial dcl 10-25 WAIT_NEW_PROC_REQUEST internal static fixed bin(17,0) initial dcl 10-25 WAIT_OLD_PASSWORD internal static fixed bin(17,0) initial dcl 10-25 WAIT_PASSWORD internal static fixed bin(17,0) initial dcl 10-25 WAIT_TANDD_HANGUP internal static fixed bin(17,0) initial dcl 10-25 WHOTAB_VERSION_1 internal static fixed bin(17,0) initial dcl 24-96 as_data_$BS external static char(1) dcl 3-21 as_data_$CR external static char(1) dcl 3-22 as_data_$abs_dim external static char(32) packed unaligned dcl 3-23 as_data_$acct_update_priority external static fixed bin(17,0) dcl 3-24 as_data_$acsdir external static char(168) packed unaligned dcl 3-25 as_data_$as_ring external static fixed bin(3,0) dcl 3-28 as_data_$asmtp external static pointer dcl 3-30 as_data_$buzzardp external static pointer dcl 3-32 as_data_$debug_flag external static bit(1) dcl 3-84 as_data_$default_weight external static fixed bin(35,0) dcl 3-34 as_data_$devtabp external static pointer dcl 3-35 as_data_$dft_user_ring external static fixed bin(3,0) dcl 3-36 as_data_$g115_dim external static char(32) packed unaligned dcl 3-38 as_data_$lct_initialized external static bit(1) dcl 3-39 as_data_$lct_size external static fixed bin(17,0) dcl 3-40 as_data_$login_args external static structure level 1 dcl 3-62 as_data_$login_words external static fixed bin(17,0) dcl 3-77 as_data_$ls_message_buffer_cur_lth external static fixed bin(18,0) dcl 3-86 as_data_$ls_message_buffer_max_lth external static fixed bin(18,0) dcl 3-87 as_data_$ls_message_buffer_ptr external static pointer dcl 3-88 as_data_$ls_request_server_info_ptr external static pointer dcl 3-85 as_data_$max_user_ring external static fixed bin(3,0) dcl 3-41 as_data_$mgtp external static pointer dcl 3-42 as_data_$mrd_dim external static char(32) packed unaligned dcl 3-43 as_data_$ntty_dim external static char(32) packed unaligned dcl 3-44 as_data_$pdtdir external static char(168) packed unaligned dcl 3-45 as_data_$pit_ptr external static pointer dcl 3-46 as_data_$rcpdir external static char(168) packed unaligned dcl 3-47 as_data_$request_priority external static fixed bin(17,0) dcl 3-48 as_data_$rtdtp external static pointer dcl 3-50 as_data_$sat_htp external static pointer dcl 3-51 as_data_$satp external static pointer dcl 3-52 as_data_$signal_types external static structure level 1 dcl 3-67 as_data_$suffix external static char(2) array packed unaligned dcl 3-53 as_data_$sysdir external static char(168) packed unaligned dcl 3-54 as_data_$system_signal_types external static structure level 1 dcl 3-72 as_data_$teens_suffix external static char(2) array packed unaligned dcl 3-55 as_data_$terminet_tabs_string external static varying char(144) dcl 3-56 as_data_$tty_dim external static char(32) packed unaligned dcl 3-57 as_data_$update_priority external static fixed bin(17,0) dcl 3-58 as_data_$version external static char(8) packed unaligned dcl 3-59 as_data_login_words based structure level 1 dcl 3-77 as_procid defined bit(36) dcl 4-17 asmtp defined pointer dcl 4-19 authentication_level_names internal static char(12) initial array packed unaligned dcl 13-21 devtabp defined pointer dcl 4-20 dm_shut_system_message based structure level 1 dcl 18-43 fnp_models internal static fixed bin(17,0) initial array dcl 9-28 fnp_types internal static char(8) initial array packed unaligned dcl 9-25 fnpep automatic pointer dcl 8-41 generic_destination based char(32) packed unaligned dcl 8-195 inactivity_system_message based structure level 1 dcl 18-37 installation_parms_version_1 internal static fixed bin(17,0) initial dcl 12-37 installation_parms_version_2 internal static fixed bin(17,0) initial dcl 12-38 line_types internal static char(16) initial array packed unaligned dcl 14-54 max_line_type internal static fixed bin(17,0) initial dcl 14-48 mgtp defined pointer dcl 4-22 mpxep automatic pointer dcl 8-41 n_sync_line_types internal static fixed bin(17,0) initial dcl 14-50 pdtdir based char(168) packed unaligned dcl 4-23 rifp automatic pointer dcl 13-6 rs_ptrs based pointer array dcl 4-24 sat_htp defined pointer dcl 4-25 satp defined pointer dcl 4-26 sc_stat_$Go external static bit(1) dcl 16-62 sc_stat_$Multics external static bit(1) dcl 16-62 sc_stat_$Star_typed external static bit(1) dcl 16-62 sc_stat_$admin_listener_exit_label external static label variable dcl 16-34 sc_stat_$admin_listener_switch external static bit(1) dcl 16-62 sc_stat_$admin_log_iocb external static pointer dcl 16-45 sc_stat_$admin_log_write_ptr external static pointer dcl 16-45 sc_stat_$admin_sci_ptr external static pointer dcl 16-45 sc_stat_$as_log_write_ptr external static pointer dcl 16-45 sc_stat_$did_part1 external static bit(1) dcl 16-62 sc_stat_$did_part2 external static bit(1) dcl 16-62 sc_stat_$did_part3 external static bit(1) dcl 16-62 sc_stat_$exec_access_name external static char(32) packed unaligned dcl 16-15 sc_stat_$info_dir external static char(168) packed unaligned dcl 16-21 sc_stat_$initzer_ttyp external static pointer dcl 16-45 sc_stat_$log_dir external static char(168) packed unaligned dcl 16-21 sc_stat_$master_abort_label external static label variable dcl 16-34 sc_stat_$master_channel external static char(6) dcl 16-29 sc_stat_$master_iocb external static pointer dcl 16-45 sc_stat_$master_sci_ptr external static pointer dcl 16-45 sc_stat_$mc_acs_dir external static char(168) packed unaligned dcl 16-21 sc_stat_$mc_ansp external static pointer dcl 16-45 sc_stat_$mc_iocb external static pointer dcl 16-45 sc_stat_$mc_is_on external static bit(1) dcl 16-62 sc_stat_$no_operator_login external static bit(1) dcl 16-62 sc_stat_$shutdown_typed external static bit(1) dcl 16-62 sc_stat_$sv1_iocb external static pointer dcl 16-45 sc_stat_$sv2_iocb external static pointer dcl 16-45 sc_stat_$sv3_iocb external static pointer dcl 16-45 sc_stat_$sysdir external static char(168) packed unaligned dcl 16-21 sc_stat_$system_shutdown_label external static label variable dcl 16-34 sc_stat_$test_mode external static bit(1) dcl 16-62 sc_stat_$unidentified_access_name external static char(32) packed unaligned dcl 16-15 sc_stat_$vchn_requires_accept external static bit(1) dcl 16-62 sl_info automatic structure level 1 dcl 17-24 sl_info_code_msg internal static structure level 1 dcl 17-187 sl_info_msg internal static structure level 1 dcl 17-214 sl_info_sev_code_label_msg internal static structure level 1 dcl 17-161 sl_info_sev_code_msg internal static structure level 1 dcl 17-82 sl_info_sev_coded_msg internal static structure level 1 dcl 17-134 sl_info_sev_msg internal static structure level 1 dcl 17-108 supported_fnp internal static bit(1) initial array packed unaligned dcl 9-31 sync_line_type internal static fixed bin(17,0) initial array dcl 14-52 sysdir defined char(168) packed unaligned dcl 4-28 system_message based structure level 1 dcl 18-23 NAMES DECLARED BY EXPLICIT CONTEXT. BLAST_USER 012145 constant entry internal dcl 1265 ref 871 936 1194 afnd 005620 constant label dcl 786 ref 770 777 asu_ 001375 constant entry external dcl 65 asu_attach 001412 constant entry external dcl 237 asu_listen 003601 constant entry external dcl 484 asu_remove 004521 constant entry external dcl 614 ref 598 702 attach_ate 002617 constant entry external dcl 375 attach_channel 003160 constant entry external dcl 422 bjoin 006666 constant label dcl 905 ref 893 blast_user 011366 constant entry external dcl 1184 bump_code 006540 constant entry external dcl 881 bump_user 006626 constant entry external dcl 895 channel_in_use 005354 constant entry external dcl 722 check_for_stopped_process 005657 constant entry external dcl 805 detach_user 007614 constant entry external dcl 990 disconnect_user 007560 constant entry external dcl 982 error 011633 constant entry internal dcl 585 ref 444 448 461 464 471 539 542 error_join 011647 constant label dcl 594 find_process 005464 constant entry external dcl 760 format_ftp_msg 010661 constant entry external dcl 1120 ref 866 928 930 format_ftp_output 011737 constant entry internal dcl 1220 ref 1136 found_cdte 001564 constant label dcl 266 ref 257 init 010755 constant entry external dcl 1139 master_error 001452 constant label dcl 246 ref 243 nonlocal_return_label 004505 constant label dcl 605 ref 589 601 omit_warning 007341 constant label dcl 945 ref 914 915 process_proc_term_request 012770 constant entry internal dcl 1349 ref 971 979 987 995 release_ate 003022 constant entry external dcl 404 release_suspended_process 010330 constant entry external dcl 1060 remove_cdte 005054 constant entry external dcl 674 reschedule_bump_timer 007402 constant entry external dcl 950 reset 010516 constant entry external dcl 1093 reset_access_class 004413 constant entry external dcl 570 ref 442 return_false 005421 constant label dcl 749 ref 727 729 733 return_true 005440 constant label dcl 751 ref 736 741 send_term_signal 007652 constant entry external dcl 998 setup_login_server_handle 011534 constant entry external dcl 1202 start_process 011120 constant entry external dcl 1150 suspend_process 010063 constant entry external dcl 1022 terminate_user 007521 constant entry external dcl 974 unbump_user 007465 constant entry external dcl 966 write_chn_message 006127 constant entry external dcl 834 write_message 006153 constant entry external dcl 842 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 14350 14670 13125 14360 Length 16042 13125 320 1136 1223 114 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME asu_ 986 external procedure is an external procedure. error internal procedure shares stack frame of external procedure asu_. format_ftp_output internal procedure shares stack frame of external procedure asu_. BLAST_USER 118 internal procedure is called during a stack extension. begin block on line 1302 206 begin block uses auto adjustable storage, and enables or reverts conditions. on unit on line 1316 70 on unit process_proc_term_request internal procedure shares stack frame of external procedure asu_. STORAGE FOR INTERNAL STATIC VARIABLES. LOC IDENTIFIER BLOCK NAME 000010 ftp_dialup_init asu_ 000011 from_mx_fmt asu_ 000042 bump_min_fmt asu_ 000073 bump_sec_fmt asu_ STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME asu_ 000100 activity_can_unbump asu_ 000101 bump_added_info asu_ 000111 cdtex asu_ 000112 code asu_ 000113 entry_name asu_ 000124 error_message asu_ 000224 i asu_ 000225 savi asu_ 000226 just_listen asu_ 000227 lng asu_ 000230 long asu_ 000261 msg asu_ 000327 mstring asu_ 000411 multics_msg_date asu_ 000432 old_ips_mask asu_ 000433 old_state asu_ 000434 prefix asu_ 000465 r_factor asu_ 000466 r_offset asu_ 000470 shxx asu_ 000472 start_proc_chn asu_ 000474 channel_call asu_ 000476 term_cpu_limit asu_ 000500 term_realtime_limit asu_ 000502 result asu_ 000504 autp asu_ 000506 ansp asu_ 000510 as_data_$as_tty asu_ 000512 cdtp asu_ 000514 cdtep asu_ 000516 dutp asu_ 000520 process_status_return asu_ 000540 system_message_ptr asu_ 000542 system_message_text_len asu_ 000544 uc_ls_handle_ptr asu_ 000546 utep asu_ 000602 build_string format_ftp_output 000665 i format_ftp_output 000666 temp format_ftp_output 000676 event_message process_proc_term_request 000700 event_message_str process_proc_term_request begin block on line 1302 000100 formatted_message begin block on line 1302 000100 warn_template begin block on line 1302 THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. r_e_as r_ne_as alloc_char_temp enter_begin_block leave_begin_block call_ext_in call_ext_out_desc call_ext_out call_int_this_desc return_mac alloc_auto_adj mdfx1 signal_op enable_op shorten_stack ext_entry ext_entry_desc int_entry int_entry_desc any_to_any_truncate_op_alloc_ op_freen_ clock_mac THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. aim_check_$equal astty_$tty_detach astty_$tty_event astty_$tty_force astty_$tty_index astty_$tty_order astty_$tty_state asu_$asu_listen asu_$attach_channel asu_$channel_in_use asu_$release_ate convert_status_code_ date_time_$format dial_ctl_$dial_term dialup_ dpg_ ftp_dialup_ ftp_dialup_$init get_system_free_area_ hcs_$set_ips_mask hcs_$wakeup hphcs_$get_ipc_operands hphcs_$ips_wakeup hphcs_$process_status hphcs_$set_cpu_monitor ioa_$rs ioa_$rsnnl ipc_$create_ev_chn ipc_$decl_ev_call_chn ipc_$drain_chn ipc_$unmask_ev_calls ipc_validate_$encode_event_channel_name send_system_message_ sub_err_ sys_log_ sys_log_$error_log timer_manager_$alarm_wakeup timer_manager_$reset_alarm_wakeup user_table_mgr_$allocate user_table_mgr_$free THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. as_data_$ansp as_data_$as_procid as_data_$autp as_data_$cdtp as_data_$dutp as_data_$rs_ptrs as_data_$whoptr as_error_table_$bump_mins_msg as_error_table_$bump_secs_msg as_error_table_$from_multics_msg as_error_table_$inactive as_error_table_$tty_already as_error_table_$tty_dim_err as_error_table_$tty_is_master as_error_table_$tty_no_room as_error_table_$warn_msg error_table_$action_not_performed error_table_$null_info_ptr error_table_$out_of_sequence error_table_$undefined_order_request sc_stat_$Go_typed sc_stat_$Multics_typed LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 212 001363 837 001364 1 26 001365 2 53 001367 11 27 001370 22 76 001371 65 001374 237 001405 240 001430 241 001434 242 001435 243 001437 244 001445 246 001452 248 001454 251 001466 255 001471 256 001501 257 001505 259 001516 260 001520 263 001546 265 001552 266 001564 268 001566 270 001613 271 001617 274 001631 275 001633 278 001660 279 001664 282 001676 283 001703 286 001730 287 001734 290 001746 291 001750 294 001775 295 002001 298 002013 299 002016 300 002020 301 002031 305 002105 308 002114 309 002120 313 002132 314 002135 316 002161 317 002211 319 002216 320 002220 322 002256 323 002261 327 002273 328 002301 330 002325 331 002331 334 002343 338 002357 339 002361 340 002363 342 002407 343 002411 344 002412 345 002424 347 002440 348 002441 352 002450 354 002454 355 002456 357 002502 358 002504 359 002505 360 002517 362 002533 365 002534 368 002576 370 002601 375 002613 377 002627 378 002633 379 002644 380 002650 381 002654 384 002666 385 002712 386 002714 388 002754 389 002760 392 002772 393 002777 395 003001 396 003002 398 003003 399 003004 400 003006 404 003020 406 003032 407 003036 408 003040 409 003041 410 003057 411 003063 412 003072 414 003121 416 003133 417 003141 418 003144 422 003156 424 003170 425 003174 426 003175 428 003202 429 003207 431 003233 432 003237 435 003251 436 003253 438 003277 439 003303 442 003315 443 003323 444 003334 446 003346 447 003351 448 003362 451 003373 453 003401 455 003404 456 003410 458 003413 459 003436 460 003437 461 003462 463 003473 464 003504 468 003515 469 003521 470 003522 471 003554 477 003565 484 003577 487 003611 489 003616 490 003622 491 003626 493 003627 494 003642 497 003703 498 003707 501 003721 502 003727 504 003753 505 003757 508 003771 509 003773 511 004017 512 004023 514 004035 515 004037 517 004063 518 004067 521 004101 522 004106 523 004110 524 004112 525 004113 526 004115 527 004120 530 004132 531 004135 533 004161 534 004165 537 004177 539 004210 541 004221 542 004251 544 004260 545 004264 547 004313 548 004317 553 004331 559 004350 561 004360 562 004362 563 004364 566 004374 567 004376 570 004410 573 004423 575 004427 576 004431 577 004447 579 004465 580 004470 582 004473 605 004505 614 004517 616 004531 617 004535 619 004541 621 004565 623 004577 624 004610 625 004612 626 004642 628 004645 629 004661 631 004673 634 004711 636 004722 639 004725 640 004727 641 004745 642 004750 643 004752 644 004755 645 004757 647 004771 649 004772 652 005004 654 005007 655 005011 656 005014 662 005030 664 005040 674 005052 676 005064 677 005070 679 005074 680 005103 682 005131 685 005143 686 005153 687 005155 691 005211 693 005251 697 005263 702 005330 703 005336 722 005350 724 005367 725 005373 727 005377 729 005401 733 005404 736 005407 741 005411 749 005421 751 005440 760 005460 766 005474 767 005477 768 005503 769 005513 770 005520 772 005527 773 005531 774 005534 775 005540 776 005551 777 005555 779 005563 780 005565 781 005570 782 005574 783 005605 784 005611 786 005620 787 005621 789 005633 790 005635 791 005640 792 005641 805 005653 810 005700 811 005704 812 005727 813 005731 814 005742 815 005745 818 006010 821 006031 825 006102 834 006122 839 006142 840 006146 842 006150 847 006166 848 006167 849 006211 850 006215 851 006221 852 006231 853 006233 854 006234 857 006252 858 006270 860 006276 861 006333 864 006346 865 006375 866 006401 869 006431 871 006453 875 006520 881 006533 886 006555 887 006561 888 006602 889 006607 890 006611 891 006614 892 006615 893 006620 895 006621 900 006651 901 006652 902 006656 903 006663 905 006666 907 006672 908 006675 909 006701 910 006703 912 006715 914 006722 915 006725 917 006732 919 006740 921 006777 923 007027 924 007074 925 007130 926 007133 927 007137 928 007144 930 007166 934 007205 936 007210 939 007257 945 007341 947 007344 948 007364 950 007376 956 007415 959 007421 962 007430 964 007451 966 007463 971 007500 972 007505 974 007517 979 007534 980 007544 982 007556 987 007573 988 007600 990 007612 995 007627 996 007634 998 007646 1004 007665 1005 007671 1006 007714 1009 007736 1010 007740 1011 007742 1012 007761 1013 007771 1014 007774 1015 010001 1016 010005 1017 010010 1018 010022 1020 010040 1022 010061 1024 010073 1025 010077 1026 010103 1028 010123 1031 010135 1032 010143 1035 010177 1040 010211 1041 010220 1042 010223 1043 010231 1047 010234 1048 010236 1049 010240 1050 010242 1054 010244 1055 010262 1056 010276 1058 010314 1060 010326 1062 010340 1063 010344 1064 010350 1066 010370 1069 010402 1070 010405 1073 010441 1076 010453 1077 010455 1078 010460 1079 010467 1080 010473 1081 010474 1084 010503 1093 010515 1096 010526 1097 010532 1098 010535 1099 010536 1100 010537 1101 010541 1102 010544 1103 010553 1104 010554 1105 010555 1107 010570 1116 010622 1117 010642 1120 010654 1134 010670 1135 010676 1136 010705 1139 010754 1141 010765 1143 011020 1144 011022 1145 011042 1146 011063 1148 011104 1150 011116 1158 011130 1165 011134 1166 011151 1167 011153 1170 011212 1171 011232 1175 011301 1176 011302 1180 011347 1184 011361 1187 011414 1189 011421 1191 011446 1192 011454 1193 011457 1194 011460 1198 011520 1202 011532 1209 011544 1212 011577 1213 011602 1214 011604 1215 011607 1216 011611 1218 011621 585 011633 589 011644 594 011647 598 011724 600 011732 601 011736 1220 011737 1232 011741 1234 011745 1236 011747 1237 011756 1238 011760 1241 011766 1243 011770 1245 012006 1247 012016 1248 012020 1249 012034 1250 012036 1251 012053 1253 012054 1255 012060 1256 012073 1257 012113 1258 012114 1259 012134 1261 012136 1265 012144 1275 012165 1276 012172 1277 012175 1279 012234 1280 012240 1286 012241 1287 012244 1288 012247 1290 012303 1291 012311 1294 012312 1295 012314 1296 012321 1300 012322 1302 012324 1303 012327 1308 012341 1306 012344 1307 012351 1308 012372 1310 012465 1311 012466 1314 012474 1315 012512 1316 012514 1317 012530 1318 012557 1319 012560 1321 012605 1322 012616 1323 012621 1324 012626 1325 012630 1326 012633 1328 012634 1329 012636 1331 012641 1332 012644 1333 012660 1334 012663 1336 012664 1337 012701 1339 012704 1341 012740 1344 012741 1345 012761 1346 012767 1349 012770 1360 013001 1361 013005 1362 013012 1363 013013 1366 013023 1367 013025 1370 013042 1371 013044 ----------------------------------------------------------- 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