COMPILATION LISTING OF SEGMENT user_table_mgr_ Compiled by: Multics PL/I Compiler, Release 30, of February 16, 1988 Compiled at: Honeywell Bull, Phoenix AZ, SysM Compiled on: 07/13/88 1045.1 mst Wed Options: optimize map 1 /****^ ******************************************** 2* * * 3* * Copyright, (C) Honeywell Bull Inc., 1987 * 4* * * 5* ******************************************** */ 6 7 /**** TBS: sys_log_ message documentation */ 8 9 /****^ HISTORY COMMENTS: 10* 1) change(86-04-01,Swenson), approve(87-07-13,MCR7737), 11* audit(87-04-19,GDixon), install(87-08-04,MR12.1-1055): 12* Initial coding. 13* 2) change(87-04-19,GDixon), approve(87-07-13,MCR7741), 14* audit(87-07-23,Brunelle), install(87-08-04,MR12.1-1055): 15* A) Replace calls to freen_ with free statements, following coding 16* standards. 17* B) Improve error logging. 18* C) Support absentee and daemon user tables. 19* 3) change(87-05-11,GDixon), approve(87-07-13,MCR7741), 20* audit(87-07-23,Brunelle), install(87-08-04,MR12.1-1055): 21* A) Decrement user_table.in_use, whether UTE is put on free list or 22* table size is reduced. 23* 4) change(87-05-14,GDixon), approve(87-07-13,MCR7741), 24* audit(87-07-23,Brunelle), install(87-08-04,MR12.1-1055): 25* Take asdump when user_table_mgr_$free is given UTE which has invalid 26* process_type. Continue execution if utep identifies a valid user table 27* entry; stop execution if it does not. 28* 5) change(87-05-24,GDixon), approve(87-07-13,MCR7741), 29* audit(87-07-23,Brunelle), install(87-08-04,MR12.1-1055): 30* A) Make user_table_mgr_$reset reuse the same UTE, rather than freeing 31* the UTE and allocating a (perhaps different) UTE. 32* B) This is done by splitting the Allocate and Free internal procedures 33* into 4 pieces: Allocate_UTE, Fill_UTE, Empty_UTE and Free_UTE. 34* 6) change(87-05-27,GDixon), approve(87-07-13,MCR7741), 35* audit(87-07-23,Brunelle), install(87-08-04,MR12.1-1055): 36* A) Increment user_table.in_use in Allocate_UTE rather than in Fill_UTE. 37* Otherwise, user_table_mgr_$reset causes a steady incrementing of 38* user_table.in_use with no equivalent decrementing. 39* 7) change(87-07-21,GDixon), approve(87-07-21,MCR7741), 40* audit(87-07-23,Brunelle), install(87-08-04,MR12.1-1055): 41* A) Change Free_UTE to use its P_ute_index parameter, instead of 42* incorrectly referencing the ute_index variable declared in the main 43* procedure. 44* 8) change(88-03-18,Parisek), approve(88-03-18,MCR7849), 45* audit(88-03-22,Lippard), install(88-07-13,MR12.2-1047): 46* Set ute.lowest_ring. 47* END HISTORY COMMENTS */ 48 49 /* format: style4 */ 50 51 user_table_mgr_: 52 procedure; 53 54 /* Parameters */ 55 56 dcl P_process_type fixed bin parameter; 57 dcl P_uc_ls_handle bit (72) aligned parameter; 58 dcl P_utep ptr parameter; 59 60 /* Automatic */ 61 62 dcl ME char(36) varying automatic; 63 dcl abort_label label variable; 64 dcl 1 auto_uc_ls_handle structure aligned like uc_ls_handle automatic; 65 dcl code fixed bin (35) automatic; 66 dcl process_type fixed bin automatic; 67 dcl user_table_ptr ptr automatic; 68 dcl ute_index fixed bin (17) automatic; 69 70 /* Based */ 71 72 dcl argstring char (ute.ln_args) based (ute.args_ptr); 73 dcl lengths (ute.arg_count) based (ute.arg_lengths_ptr) fixed bin; 74 dcl system_area area based (system_area_ptr); 75 dcl 1 user_table aligned based (user_table_ptr), 76 2 header like ut_header, 77 2 in_use fixed bin, 78 2 entry_pad (128-size(ut_header)-1) fixed bin, 79 2 entry (0 refer (user_table.header.current_size)) like ute; 80 81 /* Entries */ 82 83 dcl as_dump_ entry (char(*)); 84 dcl get_system_free_area_ entry () returns (ptr); 85 dcl ipc_$create_ev_chn entry (fixed bin (71), fixed bin (35)); 86 dcl ipc_$delete_ev_chn entry (fixed bin (71), fixed bin (35)); 87 88 /* Internal */ 89 90 dcl system_area_ptr ptr int static init (null); 91 92 /* External */ 93 94 dcl as_data_$ansp ptr external; 95 dcl as_data_$autp ptr external; 96 dcl as_data_$dutp ptr external; 97 98 /* Builtins */ 99 100 dcl (addr, baseno, hbound, lbound, null, size, unspec) builtin; 101 102 /* * * * * * * * * * * * * * * * * * * * * * * * * */ 103 104 105 /* Program */ 106 107 allocate: 108 entry (P_process_type) returns (ptr); 109 110 ME = "user_table_mgr_$allocate"; 111 112 utep = null (); 113 abort_label = ALLOCATE_ABORT; 114 115 if P_process_type = PT_INTERACTIVE then 116 user_table_ptr = as_data_$ansp; 117 else if P_process_type = PT_ABSENTEE then 118 user_table_ptr = as_data_$autp; 119 else if P_process_type = PT_DAEMON then 120 user_table_ptr = as_data_$dutp; 121 else call Abort (SL_LOG, -1, 122 "Process type (^d) not allowed.", P_process_type); 123 124 call Allocate_UTE (ute_index); 125 if ute_index ^= 0 then do; 126 call Reset_UTE(); 127 call Fill_UTE (ute_index, P_process_type); 128 end; 129 130 ALLOCATE_ABORT: 131 return (utep); 132 133 /* * * * * * * * * * * * * * * * * * * * * * * * * */ 134 135 /* * * * * * * * * * * * * * * * * * * * * * * * * */ 136 137 free: entry (P_utep); 138 139 ME = "user_table_mgr_$free"; 140 go to FREE_JOIN; 141 142 /* * * * * * * * * * * * * * * * * * * * * * * * * */ 143 144 reset: entry (P_utep); 145 146 ME = "user_table_mgr_$reset"; 147 148 FREE_JOIN: 149 abort_label = FREE_ABORT; 150 utep = P_utep; 151 process_type = ute.process_type; 152 153 if process_type = PT_INTERACTIVE then 154 user_table_ptr = as_data_$ansp; 155 else if process_type = PT_ABSENTEE then 156 user_table_ptr = as_data_$autp; 157 else if process_type = PT_DAEMON then 158 user_table_ptr = as_data_$dutp; 159 160 else do; /* invalid type */ 161 /* find table */ 162 if baseno (as_data_$ansp) = baseno (utep) then do; 163 user_table_ptr = as_data_$ansp; 164 process_type = PT_INTERACTIVE; 165 end; 166 else if baseno (as_data_$autp) = baseno (utep) then do; 167 user_table_ptr = as_data_$autp; 168 process_type = PT_ABSENTEE; 169 end; 170 else if baseno (as_data_$dutp) = baseno (utep) then do; 171 user_table_ptr = as_data_$dutp; 172 process_type = PT_DAEMON; 173 end; 174 else 175 user_table_ptr = null; 176 177 if user_table_ptr = null then 178 call Abort (SL_LOG_BEEP, -1, 179 "UTE pointer (^p) does not point in one of the 3 user tables.", 180 utep); 181 else do; 182 do ute_index = hbound(user_table.entry,1) to 183 lbound(user_table.entry,1) by -1 184 while (utep ^= addr(user_table.entry(ute_index))); 185 end; 186 if ute_index = 0 then 187 call Abort (SL_LOG_BEEP, -1, 188 "UTE pointer (^p) does not point at an entry in ^a.", 189 utep, TABLE_NAMES(user_table.user_table_type)); 190 else do; 191 call Warning (SL_LOG_BEEP, 192 "UTE (^d, ^p in ^a) has invalid process type (^d).", 193 ute_index, utep, 194 TABLE_NAMES(user_table.user_table_type), 195 ute.process_type); 196 call as_dump_ ((sl_info.ioa_msg)); 197 ute.process_type = process_type; 198 end; 199 end; 200 end; 201 202 if lbound(ACTIVE_VALUES,1) < ute.active & 203 ute.active <= hbound(ACTIVE_VALUES,1) then; 204 else if ute.active = NOW_FREE then 205 call Abort (SL_LOG_BEEP, -1, 206 "UTE (^d, ^p in ^a) already free; ute.active: ^d (^a)", 207 ute.ute_index, utep, TABLE_NAMES(user_table.user_table_type), 208 ute.active, ACTIVE_VALUES(ute.active)); 209 else call Abort (SL_LOG_BEEP, -1, 210 "UTE (^d, ^p in ^a) invalid; ute.active: ^d", 211 ute.ute_index, utep, TABLE_NAMES(user_table.user_table_type), 212 ute.active); 213 214 if addr(user_table.entry(ute.ute_index)) ^= utep then do; 215 do ute_index = hbound(user_table.entry,1) to 216 lbound(user_table.entry,1) by -1 217 while (addr(user_table.entry(ute_index)) ^= utep); 218 end; 219 call Warning (SL_LOG_BEEP, 220 "UTE (^d, ^p in ^a) invalid: ute.ute_index: ^d", 221 ute_index, utep, TABLE_NAMES(user_table.user_table_type), 222 ute.ute_index); 223 ute.ute_index = ute_index; 224 end; 225 226 if ME = "user_table_mgr_$free" then do; 227 ute_index = ute.ute_index; 228 call Empty_UTE(); 229 call Reset_UTE(); 230 call Free_UTE (ute_index); 231 P_utep = null; 232 return; 233 end; 234 else if ME = "user_table_mgr_$reset" then do; 235 ute_index = ute.ute_index; 236 call Empty_UTE(); 237 call Reset_UTE(); 238 call Fill_UTE (ute_index, process_type); 239 return; 240 end; 241 242 FREE_ABORT: 243 P_utep = null (); /* so no one will use it */ 244 return; 245 246 /* * * * * * * * * * * * * * * * * * * * * * * * * */ 247 248 /* * * * * * * * * * * * * * * * * * * * * * * * * */ 249 250 251 utep_from_handle: 252 entry (P_uc_ls_handle) returns (ptr); 253 254 /**** This entry takes a handle supplied by a login server and determines 255* the associated utep. */ 256 257 ME = "user_table_mgr_$utep_from_handle"; 258 259 utep = null (); 260 abort_label = UTEP_FROM_HANDLE_ABORT; 261 262 uc_ls_handle_ptr = addr (P_uc_ls_handle); 263 auto_uc_ls_handle = uc_ls_handle; 264 uc_ls_handle_ptr = addr (auto_uc_ls_handle); 265 266 if uc_ls_handle.process_type = PT_INTERACTIVE then 267 user_table_ptr = as_data_$ansp; 268 else if uc_ls_handle.process_type = PT_ABSENTEE then 269 user_table_ptr = as_data_$autp; 270 else if uc_ls_handle.process_type = PT_DAEMON then 271 user_table_ptr = as_data_$dutp; 272 else call Abort (SL_LOG, -1, 273 "Handle (^24.3b) has unsupported process type (^d).", 274 P_uc_ls_handle, uc_ls_handle.process_type); 275 276 utep = addr (user_table.entry (uc_ls_handle.ute_index)); 277 if ute.active = NOW_FREE then 278 call Abort (SL_LOG, -1, 279 "Handle (^24.3b) identifies free UTE (^d, ^p in ^a).", 280 P_uc_ls_handle, ute.ute_index, utep, 281 TABLE_NAMES(user_table.user_table_type)); 282 if ute.login_server_info.our_handle ^= unspec (uc_ls_handle) then 283 call Abort (SL_LOG, -1, 284 "Handle (^24.3b) identifies UTE (^d, ^p in ^a) with different handle (^24.3b).", 285 P_uc_ls_handle, ute.ute_index, utep, 286 TABLE_NAMES(user_table.user_table_type), 287 ute.login_server_info.our_handle); 288 289 UTEP_FROM_HANDLE_ABORT: 290 return (utep); 291 292 /* * * * * * * * * * * * * * * * * * * * * * * * * */ 293 294 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 295 /* */ 296 /* Abort: Report fatal error in AS log and abort execution. */ 297 /* */ 298 /* Syntax: call Abort (severity, code, ioa_ctl, args); */ 299 /* */ 300 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 301 302 Abort: 303 procedure options (variable); 304 305 dcl cu_$arg_list_ptr entry () returns (ptr); 306 dcl sys_log_$general entry (ptr); 307 308 sl_info = sl_info_sev_code_msg; 309 sl_info.arg_list_ptr = cu_$arg_list_ptr (); 310 sl_info.caller = ME; 311 call sys_log_$general (addr (sl_info)); 312 if sl_info.code ^= 0 then do; 313 utep = null; 314 go to abort_label; 315 end; 316 317 end Abort; 318 319 /* * * * * * * * * * * * * * * * * * * * * * * * * */ 320 321 /* * * * * * * * * * * * * * * * * * * * * * * * * */ 322 323 324 Allocate_UTE: 325 procedure (P_ute_index); 326 327 dcl P_ute_index fixed bin; 328 dcl ute_index fixed bin; 329 330 REALLOCATE: 331 utep = null; 332 333 if user_table.number_free > 0 then do; 334 ute_index = user_table.first_free; 335 utep = addr (user_table.entry (ute_index)); 336 if ute.active = NOW_FREE then do; 337 user_table.first_free = ute.next_free; 338 user_table.number_free = user_table.number_free - 1; 339 end; 340 else do; 341 call Warning (SL_LOG_BEEP, 342 "UTE (^d, ^p in ^a) at head of free list is not free; ute.active: ^d (^a)", 343 ute_index, utep, TABLE_NAMES(user_table.user_table_type), 344 ute.active, ACTIVE_VALUES(ute.active)); 345 call Reconstruct_free_list (); 346 go to REALLOCATE; 347 end; 348 end; 349 else if user_table.current_size < user_table.max_size then do; 350 ute_index, 351 user_table.current_size = user_table.current_size + 1; 352 utep = addr (user_table.entry (ute_index)); 353 end; 354 else do; 355 ute_index = 0; 356 utep = null (); 357 end; 358 359 if ute_index ^= 0 then 360 user_table.in_use = user_table.in_use + 1; 361 362 P_ute_index = ute_index; 363 364 end Allocate_UTE; 365 366 /* * * * * * * * * * * * * * * * * * * * * * * * * */ 367 368 /* * * * * * * * * * * * * * * * * * * * * * * * * */ 369 370 371 Empty_UTE: 372 procedure (); 373 374 /**** Get rid of event channel we may or may not have set up. */ 375 if ute.event ^= 0 then do; 376 call ipc_$delete_ev_chn (ute.event, (0)); 377 ute.event = 0; 378 end; 379 380 /**** Free the argument structures */ 381 if system_area_ptr = null then 382 system_area_ptr = get_system_free_area_ (); 383 if ute.arg_lengths_ptr ^= null () then do; 384 free lengths in (system_area); 385 ute.arg_lengths_ptr = null (); 386 ute.arg_count = 0; 387 end; 388 if ute.args_ptr ^= null () then do; 389 free argstring in (system_area); 390 ute.args_ptr = null (); 391 ute.ln_args = 0; 392 end; 393 394 end Empty_UTE; 395 396 /* * * * * * * * * * * * * * * * * * * * * * * * * */ 397 398 399 Fill_UTE: procedure (P_ute_index, P_process_type); 400 401 dcl P_ute_index fixed bin; 402 dcl P_process_type fixed bin; 403 404 if utep ^= null () then do; 405 call ipc_$create_ev_chn (ute.event, code); 406 if code ^= 0 then 407 call Abort (SL_LOG_BEEP, code, 408 "Creating event channel for UTE (^d, ^p in ^a).", 409 ute_index, utep, TABLE_NAMES(P_process_type)); 410 ute.active = NOW_DIALED; 411 ute.ute_index = P_ute_index; 412 ute.process_type = P_process_type; 413 end; 414 415 end Fill_UTE; 416 417 /* * * * * * * * * * * * * * * * * * * * * * * * * */ 418 419 /* * * * * * * * * * * * * * * * * * * * * * * * * */ 420 421 422 Free_UTE: procedure (P_ute_index); 423 424 dcl P_ute_index fixed bin; 425 426 ute.active = NOW_FREE; 427 ute.ute_index = P_ute_index; 428 429 if P_ute_index = user_table.current_size then 430 user_table.current_size = user_table.current_size - 1; 431 else do; 432 ute.next_free = user_table.first_free; 433 user_table.first_free = P_ute_index; 434 user_table.number_free = user_table.number_free + 1; 435 end; 436 user_table.in_use = user_table.in_use - 1; 437 utep = null; 438 439 end Free_UTE; 440 441 /* * * * * * * * * * * * * * * * * * * * * * * * * */ 442 443 444 Reconstruct_free_list: 445 procedure; 446 447 dcl ute_index fixed bin; 448 449 user_table.number_free, user_table.first_free = 0; 450 do ute_index = hbound(user_table.entry,1) to 451 lbound(user_table.entry,1) by -1; 452 utep = addr(user_table.entry(ute_index)); 453 if ute.active = NOW_FREE then do; 454 ute.next_free = user_table.first_free; 455 user_table.first_free = ute_index; 456 user_table.number_free = user_table.number_free + 1; 457 end; 458 end; 459 end Reconstruct_free_list; 460 461 /* * * * * * * * * * * * * * * * * * * * * * * * * */ 462 463 /* * * * * * * * * * * * * * * * * * * * * * * * * */ 464 465 466 Reset_UTE: 467 procedure (); 468 469 unspec (ute) = ""b; 470 ute.tty_name, 471 ute.tty_id_code, 472 ute.dial_qualifier, 473 ute.generated_pw, 474 ute.outer_module, 475 ute.old_password, 476 ute.logout_type, 477 ute.login_code, 478 ute.person, 479 ute.project, 480 ute.home_dir, 481 ute.init_proc, 482 ute.group, 483 ute.tag, 484 ute.input_seg, 485 ute.output_seg, 486 ute.sender, 487 ute.proxy_person, 488 ute.proxy_project, 489 ute.abs_group, 490 ute.terminal_type = ""; 491 492 /**** The follow variables allow a legal 0 value, so we use -1. */ 493 494 ute.work_class, 495 ute.initial_ring, 496 ute.lowest_ring, 497 ute.highest_ring = -1; 498 499 ute.uprojp = null; 500 ute.pdtep = null; 501 ute.channel = null; 502 ute.arg_lengths_ptr = null; 503 ute.args_ptr = null; 504 505 ute.real_queue = -9; 506 return; 507 508 end Reset_UTE; 509 510 /* * * * * * * * * * * * * * * * * * * * * * * * * */ 511 512 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 513 /* */ 514 /* Warning: report warning in AS log, and continue execution. */ 515 /* */ 516 /* Syntax: call Warning (severity, ioa_ctl, args); */ 517 /* */ 518 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 519 520 Warning: 521 procedure options (variable); 522 523 dcl cu_$arg_list_ptr entry () returns (ptr); 524 dcl sys_log_$general entry (ptr); 525 526 sl_info = sl_info_sev_msg; 527 sl_info.arg_list_ptr = cu_$arg_list_ptr (); 528 sl_info.caller = ME; 529 call sys_log_$general (addr (sl_info)); 530 531 end Warning; 532 533 /* * * * * * * * * * * * * * * * * * * * * * * * * */ 534 535 /* format: off */ 536 537 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 538 /* */ 539 /* The following three include files are not used, but are overlaid by the */ 540 /* user_table structure declared at the start of this program. They are */ 541 /* included here for ease of reference. */ 542 /* */ 543 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 544 545 /* 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 */ 545 546 /* 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 */ 546 547 /* BEGIN INCLUDE FILE ... daemon_user_table.incl.pl1 */ 3 2 3 3 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 3 4 /* */ 3 5 /* The daemon_user_table has one entry per daemon. Daemons are logged in by */ 3 6 /* operator command or automatically. If they do any I/O, it is done via */ 3 7 /* the message coordinator. */ 3 8 /* */ 3 9 /* Programs using this include file must also use user_table_header.incl.pl1 */ 3 10 /* and user_table_entry.incl.pl1. */ 3 11 /* */ 3 12 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 3 13 3 14 3 15 /****^ HISTORY COMMENTS: 3 16* 1) change(81-09-10,Kittlitz), approve(), audit(), install(): 3 17* Initially coded from dutbl.incl.pl1. 3 18* 2) change(87-04-26,GDixon), approve(87-07-13,MCR7741), 3 19* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 3 20* A) Add use of ut_header common to all user control tables. 3 21* B) Corrected padding prior to first ute entry. 3 22* END HISTORY COMMENTS */ 3 23 3 24 3 25 dcl DUTBL_version_4 fixed bin int static init (4); /* version of this declaration */ 3 26 3 27 dcl dutp ptr automatic init (null); 3 28 3 29 dcl 1 dutbl based (dutp) aligned, /* Daemon user table */ 3 30 2 header like ut_header, /* Header common to all user tables. */ 3 31 3 32 2 active_count fixed bin, /* the count of active daemons managed by DUM_ */ 3 33 3 34 2 entry_pad (117) fixed bin, /* pad to 128 words */ 3 35 2 entry (0 refer (dutbl.current_size)) like ute; /* daemon user entries */ 3 36 3 37 /* END INCLUDE FILE ... daemon_user_table.incl.pl1 */ 547 548 /* BEGIN INCLUDE FILE ... dialup_values.incl.pl1 */ 4 2 4 3 /* format: style4 */ 4 4 4 5 /* Values for "cdte.tra_vec" used by dialup_ and others. */ 4 6 4 7 /* Modified by T. Casey April 1976 to add WAIT_NEW_PASSWORD 4 8* - in 1977 and 1978 to add WAIT_(GREETING_MSG DELETE_CHANNEL) 4 9* - and in October 1979 to add WAIT_CONNECT_REQUEST 4 10* Modified by Robert Coren in May 1981 to add TANDD_ATTACH values and 4 11* WAIT_DISCARD_WAKEUP 4 12* Modified by T. Casey, July 1981, for MR9.0, to add WAIT_BEFORE_HANGUP. 4 13* Modified by E. N. Kittlitz, July 1982, to add TTY_MASKED. 4 14**/ 4 15 4 16 /****^ HISTORY COMMENTS: 4 17* 1) change(87-04-20,GDixon), approve(87-07-13,MCR7741), 4 18* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 4 19* Add constant arrays naming cdte.state, cdte.tra_vec and ute.active values. 4 20* 2) change(87-05-11,GDixon), approve(87-07-13,MCR7741), 4 21* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 4 22* Add named constants for instance tags. 4 23* END HISTORY COMMENTS */ 4 24 4 25 dcl (WAIT_DIALUP init (1), /* Channel waiting for dialup. */ 4 26 WAIT_ANSWERBACK initial (2), /* WRU sent, waiting for reply */ 4 27 WAIT_LOGIN_LINE init (3), /* Greeting typed, wait for login command. */ 4 28 WAIT_LOGIN_ARGS init (4), /* Want rest of login line */ 4 29 WAIT_OLD_PASSWORD init (5), /* "-cpw" was specified. Wait for old password. */ 4 30 WAIT_PASSWORD init (6), /* Waiting for password. (If "-cpw", repeat of new one.) */ 4 31 WAIT_NEW_PASSWORD init (7), /* "-cpw" was specified. Wait for new password */ 4 32 WAIT_LOGOUT_SIG init (8), /* Channel is hooked up. Wait for logout. */ 4 33 WAIT_LOGOUT init (9), /* A logout has been requested. Wait for process to die */ 4 34 WAIT_LOGOUT_HOLD init (10), /* As above but don't hang up when it dies. */ 4 35 WAIT_DETACH init (11), /* As above but ignore channel afterwards. */ 4 36 WAIT_NEW_PROC init (12), /* As above but make new process and continue. */ 4 37 WAIT_REMOVE init (13), /* As above but completely expunge channel. */ 4 38 WAIT_FIN_PRIV_ATTACH init (14), /* When channel dials up, connect it to user */ 4 39 WAIT_DIAL_RELEASE init (15), /* Waiting for master process to release. */ 4 40 WAIT_DIAL_OUT init (16), /* Waiting for auto call to complete */ 4 41 WAIT_HANGUP init (17), /* Wait for the hangup event to occur for a channel */ 4 42 WAIT_SLAVE_REQUEST init (18), /* Ignore line until someone asks */ 4 43 WAIT_GREETING_MSG init (19), /* Print greeting message and wait for login line */ 4 44 WAIT_DELETE_CHANNEL init (20), /* Channel deleted - mark cdte after process is destroyed */ 4 45 WAIT_CONNECT_REQUEST init (21), /* logged in; awaiting request re disconnected processes */ 4 46 WAIT_TANDD_HANGUP init (22), /* when channel hangs up, proceed with t & d attachment */ 4 47 WAIT_FIN_TANDD_ATTACH init (23), /* when channel dials up, finish t & d attachment */ 4 48 WAIT_DISCARD_WAKEUPS init (24), /* disregard all wakeups on channel */ 4 49 WAIT_BEFORE_HANGUP init (25), /* allow output to print before hanging up */ 4 50 WAIT_DESTROY_REQUEST init (26), /* waiting to continue with destroy request after process has destroyed itself */ 4 51 WAIT_NEW_PROC_REQUEST init (27) /* waiting to continue with new_proc request after process has destroyed itself */ 4 52 ) fixed bin internal static options (constant); 4 53 4 54 dcl TRA_VEC_VALUES (0:13) char (32) aligned int static options (constant) init 4 55 /* names of ute.destroy_flag values */ 4 56 ("", "wait dialup", "wait answerback", "wait login line", /* 0-3 */ 4 57 "wait login args", "wait old password", "wait password", /* 4-6 */ 4 58 "wait new password", "wait logout signal", "wait logout", /* 7-9 */ 4 59 "wait logout hold", "wait detach", "wait new proc", /* 10-12 */ 4 60 "wait remove"); /* -13 */ 4 61 4 62 /* Values for "cdte.state", typewriter state. */ 4 63 4 64 dcl (TTY_MASKED init (-1), /* Terminal channel is there, but masked by MCS */ 4 65 TTY_HUNG init (1), /* Terminal channel is there, but dead. */ 4 66 TTY_KNOWN init (2), /* Channel being "listened" to, awaiting dialup. */ 4 67 TTY_DIALED init (5) /* Channel is dialed up. This is normal state. */ 4 68 ) fixed bin internal static options (constant); 4 69 4 70 dcl STATE_VALUES (-1:5) char (15) aligned int static options (constant) init 4 71 /* names of cdte.state values */ 4 72 ("masked", "dead", "hung up", "listening", "", "", "dialed up"); 4 73 4 74 /* Values for "cdte.in_use" and "ate.active" */ 4 75 4 76 dcl (NOW_FREE init (0), /* Entry is empty. */ 4 77 NOW_HUNG_UP init (1), /* Entry is usable but tty is hung up. */ 4 78 NOW_LISTENING init (2), /* Entry is waiting for phone call. */ 4 79 NOW_DIALED init (3), /* Entry is connected but login not complete. */ 4 80 NOW_LOGGED_IN init (4), /* Entry is logged in but no process. */ 4 81 NOW_HAS_PROCESS init (5), /* Entry has a valid process. */ 4 82 NOW_DIALING init (6), /* Entry (auto_call line) is dialing */ 4 83 NOW_DIALED_OUT init (7) /* Entry (auto_call line) is in use */ 4 84 ) fixed bin internal static options (constant); 4 85 4 86 dcl ACTIVE_VALUES (0:5) char (18) aligned int static options (constant) init 4 87 /* names of ute.active values */ 4 88 ("free", "hung-up", "listening", "dialed", "logged in, no proc", "logged in & proc"); 4 89 4 90 4 91 /**** Values for ute.tag */ 4 92 4 93 dcl (TAG_INTERACTIVE init("a"), 4 94 TAG_UFT init("f"), 4 95 TAG_ABSENTEE init("m"), 4 96 TAG_PROXY init("p"), 4 97 TAG_DAEMON init("z") 4 98 ) char(1) int static options(constant); 4 99 4 100 4 101 /**** Following are constants used to indicate to the process termination 4 102* handler the reason for the process termination. They are used by 4 103* uc_proc_term_handler_, as well as uc_ls_new_proc_request_ and 4 104* uc_ls_destroy_request_. */ 4 105 4 106 dcl ( 4 107 PT_FPE initial (1), 4 108 PT_LOGOUT initial (4), 4 109 PT_NEW_PROC_AUTH initial (13), 4 110 PT_HANGUP initial (20), 4 111 PT_SHUTDOWN initial (21), 4 112 PT_BUMP initial (22), 4 113 PT_ALARM initial (23), 4 114 PT_DETACH initial (24), 4 115 PT_UNBUMP initial (25), 4 116 PT_OPERATOR_TERMINATE initial (27), 4 117 PT_DESTROY_REQUEST initial (30), 4 118 PT_NEW_PROC_REQUEST initial (31) 4 119 ) fixed bin (17) internal static options (constant); 4 120 4 121 /**** Values for ute.preempted: 4 122* -1 user unbumped after term signal sent 4 123* 0 user unbumped; ignore alarm___ 4 124* 1 value internally used in load_ctl_ 4 125* 2 user bumped; when alarm___ comes in, send term signal 4 126* 3 term signal sent; destroy process if termsgnl, alarm___, or cpulimit 4 127* signals come in 4 128* 4 user bumped; process sick, so destroy without sending term signal 4 129* 5 trm_ signal sent, termsgnl received; (if still 3, we never got the 4 130* termsgnl). */ 4 131 4 132 dcl ( 4 133 PREEMPT_UNBUMP initial (-1), 4 134 PREEMPT_UNBUMP_IGNORE_ALARM initial (0), 4 135 PREEMPT_LOAD_CTL initial (1), 4 136 PREEMPT_BUMPED initial (2), 4 137 PREEMPT_TERM_SENT initial (3), 4 138 PREEMPT_BUMPED_NO_TERM initial (4), 4 139 PREEMPT_TERMSGNL_RECEIVED initial (5) 4 140 ) fixed bin (17) internal static options(constant); 4 141 4 142 dcl PREEMPT_VALUES (-1:5) char(28) varying int static options(constant) init( 4 143 "unbumped", 4 144 "not bumped, ignore alarm___", 4 145 "load_ctl_", 4 146 "bumped", 4 147 "bumped, trm_ sent", 4 148 "bumped without trm_", 4 149 "bumped, termsgnl received"); 4 150 4 151 /* END INCLUDE FILE ... dialup_values.incl.pl1 */ 548 549 /* BEGIN INCLUDE FILE sys_log_constants.incl.pl1 ... 82-09-24 E. N. Kittlitz */ 5 2 5 3 5 4 /****^ HISTORY COMMENTS: 5 5* 1) change(87-04-22,GDixon), approve(87-06-10,MCR7708), 5 6* audit(87-06-02,Parisek), install(87-08-04,MR12.1-1056): 5 7* Added sl_info structure and associated named constants for use in calling 5 8* sys_log_$general. 5 9* END HISTORY COMMENTS */ 5 10 5 11 5 12 /* format: style4 */ 5 13 5 14 dcl ( 5 15 SL_TYPE_CRASH init (-3), /* type message with banner & kill system */ 5 16 SL_TYPE_BEEP init (-2), /* type message with banner */ 5 17 SL_TYPE init (-1), /* type message */ 5 18 SL_LOG_SILENT init (0), /* log message */ 5 19 SL_LOG init (1), /* log & type message */ 5 20 SL_LOG_BEEP init (2), /* log & type message with banner */ 5 21 SL_LOG_CRASH init (3) /* log & type message with banner & kill system */ 5 22 ) fixed bin internal static options (constant); 5 23 5 24 dcl 1 sl_info aligned automatic, 5 25 2 version char(8), /* structure version */ 5 26 2 arg_list_ptr ptr, /* arg_list with values */ 5 27 2 loc, 5 28 3 (mode, severity, code, caller, data, class, ioa_msg) fixed bin, 5 29 /* These flags control where the corresponding data item is found.*/ 5 30 /* -1: data appears in the corresponding structure element below */ 5 31 /* 0: data is not present anywhere */ 5 32 /* +N: data is Nth item in argument list pointed to by */ 5 33 /* sl_info.arg_list_ptr. Upon return, data copied into */ 5 34 /* corresponding structure element. */ 5 35 /* if data = +N: */ 5 36 /* argN is data_ptr, argN+1 is data_len */ 5 37 /* if ioa_msg = +N: */ 5 38 /* argN+1, ... argLAST are arguments substituted into the */ 5 39 /* ioa_msg control string. The formatted msg is returned. */ 5 40 2 flags, 5 41 3 ioa_msg_is_error_code bit(1) unal, /* ioa_ctl is error code. */ 5 42 3 flags_pad bit(35) unal, 5 43 2 mode fixed bin, /* as-mode, command-mode */ 5 44 2 severity fixed bin, /* error severity */ 5 45 2 code fixed bin(35), /* error table code */ 5 46 2 caller char(65) varying, /* caller refname$entryname*/ 5 47 2 data, /* binary data ptr/length */ 5 48 3 data_ptr ptr, 5 49 3 data_lth fixed bin(21), 5 50 2 class char(10) varying, /* binary data class */ 5 51 2 ioa_msg char(500) varying; /* formatted message text */ 5 52 5 53 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 5 54 /* */ 5 55 /* If data values (eg, sl_info.caller) are passed in the argument list, */ 5 56 /* their data types should be as shown in the structure above, except that */ 5 57 /* character strings should be char(*) nonvarying. */ 5 58 /* */ 5 59 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 5 60 5 61 /* value for sl_info.version */ 5 62 dcl SL_INFO_version_1 char (8) int static options(constant) init("sl_info1"); 5 63 5 64 /* values for sl_info.mode */ 5 65 dcl (SL_INFO_as_mode init(1), 5 66 SL_INFO_command_mode init(2)) fixed bin int static options(constant); 5 67 5 68 /* values for sl_info.loc.(severity code caller data class ioa_ctl arg) */ 5 69 dcl (SL_INFO_arg_given_in_structure init(-1), 5 70 SL_INFO_arg_not_given init(0)) fixed bin int static options(constant); 5 71 5 72 5 73 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 5 74 /* */ 5 75 /* The following static structures are commonly used in the Login Server */ 5 76 /* user control software. */ 5 77 /* */ 5 78 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 5 79 5 80 /* Syntax: call Abort (severity, code, ioa_ctl, args); */ 5 81 5 82 dcl 1 sl_info_sev_code_msg aligned int static options(constant), 5 83 2 version char(8) init ("sl_info1"), 5 84 2 arg_list_ptr ptr init (null), 5 85 2 loc, 5 86 3 (mode init (-1), 5 87 severity init ( 1), 5 88 code init ( 2), 5 89 caller init (-1), 5 90 data init ( 0), 5 91 class init ( 0), 5 92 ioa_msg init ( 3)) fixed bin, 5 93 2 flags, 5 94 3 ioa_msg_is_error_code bit(1) unal init ("0"b), 5 95 3 flags_pad bit(35) unal init ("0"b), 5 96 2 mode fixed bin init ( 1), 5 97 2 severity fixed bin init ( 0), 5 98 2 code fixed bin(35) init ( 0), 5 99 2 caller char(65) varying init (""), 5 100 2 data, 5 101 3 data_ptr ptr init (null), 5 102 3 data_lth fixed bin(21) init ( 0), 5 103 2 class char(10) varying init (""), 5 104 2 ioa_msg char(500) varying init (""); 5 105 5 106 /* Syntax: call Abort (severity, ioa_ctl, args); */ 5 107 5 108 dcl 1 sl_info_sev_msg aligned int static options(constant), 5 109 2 version char(8) init ("sl_info1"), 5 110 2 arg_list_ptr ptr init (null), 5 111 2 loc, 5 112 3 (mode init (-1), 5 113 severity init ( 1), 5 114 code init ( 0), 5 115 caller init (-1), 5 116 data init ( 0), 5 117 class init ( 0), 5 118 ioa_msg init ( 2)) fixed bin, 5 119 2 flags, 5 120 3 ioa_msg_is_error_code bit(1) unal init ("0"b), 5 121 3 flags_pad bit(35) unal init ("0"b), 5 122 2 mode fixed bin init ( 1), 5 123 2 severity fixed bin init ( 0), 5 124 2 code fixed bin(35) init ( 0), 5 125 2 caller char(65) varying init (""), 5 126 2 data, 5 127 3 data_ptr ptr init (null), 5 128 3 data_lth fixed bin(21) init ( 0), 5 129 2 class char(10) varying init (""), 5 130 2 ioa_msg char(500) varying init (""); 5 131 5 132 /* Syntax: call Abort (severity, ioa_ctl_as_error_code, args); */ 5 133 5 134 dcl 1 sl_info_sev_coded_msg aligned int static options(constant), 5 135 2 version char(8) init ("sl_info1"), 5 136 2 arg_list_ptr ptr init (null), 5 137 2 loc, 5 138 3 (mode init (-1), 5 139 severity init ( 1), 5 140 code init ( 0), 5 141 caller init (-1), 5 142 data init ( 0), 5 143 class init ( 0), 5 144 ioa_msg init ( 2)) fixed bin, 5 145 2 flags, 5 146 3 ioa_msg_is_error_code bit(1) unal init ("1"b), 5 147 3 flags_pad bit(35) unal init ("0"b), 5 148 2 mode fixed bin init ( 1), 5 149 2 severity fixed bin init ( 0), 5 150 2 code fixed bin(35) init ( 0), 5 151 2 caller char(65) varying init (""), 5 152 2 data, 5 153 3 data_ptr ptr init (null), 5 154 3 data_lth fixed bin(21) init ( 0), 5 155 2 class char(10) varying init (""), 5 156 2 ioa_msg char(500) varying init (""); 5 157 5 158 5 159 /* Syntax: call Abort (severity, code, error_return_label, ioa_ctl, args); */ 5 160 5 161 dcl 1 sl_info_sev_code_label_msg aligned int static options(constant), 5 162 2 version char(8) init ("sl_info1"), 5 163 2 arg_list_ptr ptr init (null), 5 164 2 loc, 5 165 3 (mode init (-1), 5 166 severity init ( 1), 5 167 code init ( 2), 5 168 caller init (-1), 5 169 data init ( 0), 5 170 class init ( 0), 5 171 ioa_msg init ( 4)) fixed bin, 5 172 2 flags, 5 173 3 ioa_msg_is_error_code bit(1) unal init ("0"b), 5 174 3 flags_pad bit(35) unal init ("0"b), 5 175 2 mode fixed bin init ( 1), 5 176 2 severity fixed bin init ( 0), 5 177 2 code fixed bin(35) init ( 0), 5 178 2 caller char(65) varying init (""), 5 179 2 data, 5 180 3 data_ptr ptr init (null), 5 181 3 data_lth fixed bin(21) init ( 0), 5 182 2 class char(10) varying init (""), 5 183 2 ioa_msg char(500) varying init (""); 5 184 5 185 /* Syntax: call Log_error (code, ioa_ctl, args); */ 5 186 5 187 dcl 1 sl_info_code_msg aligned int static options(constant), 5 188 2 version char(8) init ("sl_info1"), 5 189 2 arg_list_ptr ptr init (null), 5 190 2 loc, 5 191 3 (mode init (-1), 5 192 severity init (-1), 5 193 code init ( 1), 5 194 caller init (-1), 5 195 data init ( 0), 5 196 class init ( 0), 5 197 ioa_msg init ( 2)) fixed bin, 5 198 2 flags, 5 199 3 ioa_msg_is_error_code bit(1) unal init ("0"b), 5 200 3 flags_pad bit(35) unal init ("0"b), 5 201 2 mode fixed bin init ( 1), 5 202 2 severity fixed bin init ( 0), 5 203 2 code fixed bin(35) init ( 0), 5 204 2 caller char(65) varying init (""), 5 205 2 data, 5 206 3 data_ptr ptr init (null), 5 207 3 data_lth fixed bin(21) init ( 0), 5 208 2 class char(10) varying init (""), 5 209 2 ioa_msg char(500) varying init (""); 5 210 5 211 5 212 /* Syntax: call Trace (ioa_ctl, args); */ 5 213 5 214 dcl 1 sl_info_msg aligned int static options(constant), 5 215 2 version char(8) init ("sl_info1"), 5 216 2 arg_list_ptr ptr init (null), 5 217 2 loc, 5 218 3 (mode init (-1), 5 219 severity init (-1), 5 220 code init ( 0), 5 221 caller init (-1), 5 222 data init ( 0), 5 223 class init ( 0), 5 224 ioa_msg init ( 1)) fixed bin, 5 225 2 flags, 5 226 3 ioa_msg_is_error_code bit(1) unal init ("0"b), 5 227 3 flags_pad bit(35) unal init ("0"b), 5 228 2 mode fixed bin init ( 1), 5 229 2 severity fixed bin init ( 0), 5 230 2 code fixed bin(35) init ( 0), 5 231 2 caller char(65) varying init (""), 5 232 2 data, 5 233 3 data_ptr ptr init (null), 5 234 3 data_lth fixed bin(21) init ( 0), 5 235 2 class char(10) varying init (""), 5 236 2 ioa_msg char(500) varying init (""); 5 237 5 238 /* END INCLUDE FILE sys_log_constants.incl.pl1 */ 549 550 /* BEGIN INCLUDE FILE ... uc_ls_handler.incl.pl1 */ 6 2 6 3 /****^ HISTORY COMMENTS: 6 4* 1) change(86-04-04,Swenson), approve(87-07-13,MCR7737), 6 5* audit(87-05-16,GDixon), install(87-08-04,MR12.1-1056): 6 6* Initial coding. 6 7* END HISTORY COMMENTS */ 6 8 6 9 dcl uc_ls_handle_ptr ptr automatic; 6 10 6 11 dcl 1 uc_ls_handle structure aligned based (uc_ls_handle_ptr), 6 12 2 process_type fixed bin (17) unaligned, 6 13 2 ute_index fixed bin (17) unaligned, 6 14 2 unique_id bit (36); 6 15 6 16 /* END INCLUDE FILE ... uc_ls_handler.incl.pl1 */ 550 551 /* BEGIN INCLUDE FILE ... user_attributes.incl.pl1 TAC 10/79 */ 7 2 7 3 7 4 /****^ HISTORY COMMENTS: 7 5* 1) change(86-12-11,Brunelle), approve(87-07-13,MCR7741), 7 6* audit(87-04-19,GDixon), install(87-08-04,MR12.1-1056): 7 7* Add incl for abs_attributes.incl.pl1 to automatically include absentee 7 8* attribute switches. 7 9* 2) change(87-04-19,GDixon), approve(87-07-13,MCR7741), 7 10* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 7 11* A) Add USER_ATTRIBUTE_NAMES arrays. attribute_names.incl.pl1 can thereby 7 12* be deleted. 7 13* B) Add constants identifying attributes that can be changed by user at 7 14* login, etc. 7 15* END HISTORY COMMENTS */ 7 16 7 17 7 18 /* Modified 82-01-03 E. N. Kittlitz. to declare a complete level-1 structure */ 7 19 7 20 /* format: style4 */ 7 21 dcl 1 user_attributes aligned based, /* the user user_attributes */ 7 22 (2 administrator bit (1), /* 1 system administrator privileges */ 7 23 2 primary_line bit (1), /* 2 user has primary-line privileges */ 7 24 2 nobump bit (1), /* 2 user cannot be bumped */ 7 25 2 guaranteed_login bit (1), /* 4 user has guaranteed login privileges */ 7 26 2 anonymous bit (1), /* 5 used only in SAT. project may have anon.users */ 7 27 2 nopreempt bit (1), /* 6 used only in PDT. user not preemptable by others 7 28* . of same project (distinct from "nobump") */ 7 29 2 nolist bit (1), /* 7 don't list user on "who" */ 7 30 2 dialok bit (1), /* 8 user may have multiple consoles */ 7 31 2 multip bit (1), /* 9 user may have several processes */ 7 32 2 bumping bit (1), /* 10 in SAT. Can users in project bump each other? */ 7 33 2 brief bit (1), /* 11 no login or logout message */ 7 34 2 vinitproc bit (1), /* 12 user may change initial procedure */ 7 35 2 vhomedir bit (1), /* 13 user may change homedir */ 7 36 2 nostartup bit (1), /* 14 user does not want start_up.ec */ 7 37 2 sb_ok bit (1), /* 15 user may be standby */ 7 38 2 pm_ok bit (1), /* 16 user may be primary */ 7 39 2 eo_ok bit (1), /* 17 user may be edit_only */ 7 40 2 daemon bit (1), /* 18 user may login as daemon */ 7 41 2 vdim bit (1), /* 19 * OBSOLETE * user may change outer mdle */ 7 42 2 no_warning bit (1), /* 20 no warning message */ 7 43 2 igroup bit (1), /* 21 in SAT: this project may give its users individual groups 7 44* . in PDT: this user has an individual load control group */ 7 45 2 save_pdir bit (1), /* 22 save pdir after fatal process error */ 7 46 2 disconnect_ok bit (1), /* 23 ok to save user's disconnected processes */ 7 47 2 save_on_disconnect bit (1), /* 24 save them unless -nosave login arg is given */ 7 48 2 pad bit (12)) unaligned; 7 49 7 50 dcl USER_ATTRIBUTE_NAMES (0:24) char (20) int static options (constant) init 7 51 ("none", /* 0 */ 7 52 "administrator", /* 1 */ 7 53 "primary_line", /* 2 */ 7 54 "nobump", /* 3 */ 7 55 "guaranteed_login", /* 4 */ 7 56 "anonymous", /* 5 */ 7 57 "nopreempt", /* 6 */ 7 58 "nolist", /* 7 */ 7 59 "dialok", /* 8 */ 7 60 "multip", /* 9 */ 7 61 "bumping", /* 10 */ 7 62 "brief", /* 11 */ 7 63 "vinitproc", /* 12 */ 7 64 "vhomedir", /* 13 */ 7 65 "nostartup", /* 14 */ 7 66 "no_secondary", /* 15 */ 7 67 "no_prime", /* 16 */ 7 68 "no_eo", /* 17 */ 7 69 "daemon", /* 18 */ 7 70 "", /* 19 vdim OBSOLETE */ 7 71 "no_warning", /* 20 */ 7 72 "igroup", /* 21 */ 7 73 "save_pdir", /* 22 */ 7 74 "disconnect_ok", /* 23 */ 7 75 "save_on_disconnect"); /* 24 */ 7 76 7 77 dcl ALT_USER_ATTRIBUTE_NAMES (0:24) char (20) int static options (constant) init 7 78 ("null", /* 0 */ 7 79 "admin", /* 1 */ 7 80 "", "", /* 2 - 3 */ 7 81 "guar", /* 4 */ 7 82 "anon", /* 5 */ 7 83 "", "", /* 6 - 7 */ 7 84 "dial", /* 8 */ 7 85 "multi_login", /* 9 */ 7 86 "preempting", /* 10 */ 7 87 "", /* 11 */ 7 88 "v_process_overseer", /* 12 */ 7 89 "v_home_dir", /* 13 */ 7 90 "no_start_up", /* 14 */ 7 91 "no_sec", /* 15 */ 7 92 "no_primary", /* 16 */ 7 93 "no_edit_only", /* 17 */ 7 94 "op_login", /* 18 */ 7 95 "", /* 19 */ 7 96 "nowarn", /* 20 */ 7 97 "", "", "", /* 21 - 23 */ 7 98 "save"); /* 24 */ 7 99 7 100 dcl USER_ATTRIBUTES_always_allowed bit (36) aligned int static 7 101 options(constant) init("000000000010000000010000000000000000"b); 7 102 /* SAT/PDT attributes not needed for user to give (brief, no_warning) */ 7 103 7 104 dcl USER_ATTRIBUTES_default_in_pdt bit (36) aligned int static 7 105 options(constant) init("000000000010000000010000000000000000"b); 7 106 /* PDT value for (brief, no_warning) is default */ 7 107 7 108 dcl USER_ATTRIBUTES_settable_by_user bit (36) aligned int static 7 109 options(constant) init("000100000110010000010000000000000000"b); 7 110 /* user MIGHT set (bump, ns, brief, guar, no_warning) */ 7 111 8 1 /* BEGIN INCLUDE FILE ... user_abs_attributes.incl.pl1 */ 8 2 8 3 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 8 4 /* */ 8 5 /* This include file describes the attributes of an absentee job. It is */ 8 6 /* used by user_table_entry.incl.pl1, abs_message_format.incl.pl1 */ 8 7 /* and PIT.incl.pl1. */ 8 8 /* */ 8 9 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 8 10 8 11 /****^ HISTORY COMMENTS: 8 12* 1) change(86-12-08,GDixon), approve(87-07-13,MCR7741), 8 13* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 8 14* Separated abs_attributes from the request structure 8 15* (abs_message_format.incl.pl1) so that the identical structure could be 8 16* used in the ute structure (user_table_entry.incl.pl1). 8 17* 2) change(87-04-19,GDixon), approve(87-07-13,MCR7741), 8 18* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 8 19* Added ABS_ATTRIBUTE_NAMES array. 8 20* 3) change(87-11-11,Parisek), approve(88-02-11,MCR7849), 8 21* audit(88-03-22,Lippard), install(88-07-13,MR12.2-1047): 8 22* Added the no_start_up flag. SCP6367 8 23* END HISTORY COMMENTS */ 8 24 8 25 dcl 1 user_abs_attributes aligned based, 8 26 2 restartable bit (1) unaligned, /* 1 if request may be started over from the beginning */ 8 27 2 user_deferred_until_time bit (1) unaligned, /* 1 if request was specified as deferred */ 8 28 2 proxy bit (1) unaligned, /* 1 if request submitted for someone else */ 8 29 2 set_bit_cnt bit (1) unaligned, /* 1 if should set bit count after every write call */ 8 30 2 time_in_gmt bit (1) unaligned, /* 1 if deferred_time is in GMT */ 8 31 2 user_deferred_indefinitely bit (1) unaligned, /* 1 if operator is to say when to run it */ 8 32 2 secondary_ok bit (1) unaligned, /* 1 if ok to log in as secondary foreground user */ 8 33 2 truncate_absout bit (1) unaligned, /* 1 if .absout is to be truncated */ 8 34 2 restarted bit (1) unaligned, /* 1 if job is restarted */ 8 35 2 no_start_up bit (1) unaligned, /* 1 if requested -ns */ 8 36 2 attributes_pad bit (26) unaligned; 8 37 8 38 dcl ABS_ATTRIBUTE_NAMES (10) char (28) varying int static options(constant) init( 8 39 "restartable", 8 40 "user_deferred_until_time", 8 41 "proxy", 8 42 "set_bit_cnt", 8 43 "time_in_gmt", 8 44 "user_deferred_indefinitely", 8 45 "secondary_ok", 8 46 "truncate_absout", 8 47 "restarted", 8 48 "no_start_up"); 8 49 8 50 /* END INCLUDE FILE ... user_abs_attributes.incl.pl1 */ 8 51 7 112 7 113 7 114 /* END INCLUDE FILE ... user_attributes.incl.pl1 */ 551 552 /* BEGIN INCLUDE FILE ... user_table_entry.incl.pl1 */ 9 2 9 3 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 9 4 /* */ 9 5 /* This include file requires that the user include */ 9 6 /* user_attributes.incl.pl1 as well. It also includes */ 9 7 /* abs_attributes.incl.pl1 itself. */ 9 8 /* */ 9 9 /* This include file must be included to use absentee_user_table.incl.pl1, */ 9 10 /* answer_table.incl.pl1, and daemon_user_table.incl.pl1. */ 9 11 /* */ 9 12 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 9 13 9 14 /****^ HISTORY COMMENTS: 9 15* 1) change(81-12-21,Gilcrease), approve(86-03-27,MCR7370), 9 16* audit(86-06-23,Lippard), install(86-06-30,MR12.0-1082): 9 17* This comment for hcom. 9 18* 81-12-21 E. N. Kittlitz. derived from abs_user_tab.incl.pl1, 9 19* anstbl.incl.pl1, and dutbl.incl.pl1. 9 20* 82-01-02 E. N. Kittlitz. user_attributes.incl.pl1 changes 9 21* 84-04-04 BIM added privileged_dial_server and dial_server_ring 9 22* 84-07-12 BIM added min_process_authorization 9 23* 84-12-31 Keith Loepere added pdir_dir_quota 9 24* 85-01-16 by E. Swenson to add ute.session_uid 9 25* 2) change(85-11-16,Swenson), approve(87-07-13,MCR7737), 9 26* audit(87-04-14,GDixon), install(87-08-04,MR12.1-1056): 9 27* Added fields for DSA login server support. 9 28* 3) change(86-03-27,Gilcrease), approve(86-03-27,MCR7370), 9 29* audit(86-06-23,Lippard), install(86-06-30,MR12.0-1082): 9 30* Add truncate_absout and restarted bit for -truncate absout, SCP6297. 9 31* 4) change(86-04-09,Herbst), approve(87-07-13,MCR7697), 9 32* audit(87-04-14,GDixon), install(87-08-04,MR12.1-1056): 9 33* Added disconnection_rel_minutes. 9 34* 5) change(86-12-08,GDixon), approve(87-07-13,MCR7741), 9 35* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 9 36* Changed structure under ute.abs_attributes to use like structure in 9 37* abs_attributes.incl.pl1. This allows the same attributes to be used 9 38* in abs_message_format.incl.pl1 and pit.incl.pl1 as well as this include 9 39* file. 9 40* 6) change(87-04-14,GDixon), approve(87-07-13,MCR7741), 9 41* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 9 42* Move constants for ute.pw_flags.mask_ctl from answer_table.incl.pl1. 9 43* 7) change(87-04-16,GDixon), approve(87-07-13,MCR7741), 9 44* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 9 45* A) Global reorganization to locate things by type of data. 9 46* B) Eliminate ute.uflags.logged_in. 9 47* 8) change(87-05-10,GDixon), approve(87-07-13,MCR7741), 9 48* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 9 49* A) Reduced overlength person and project fields to proper length. 9 50* B) Adjusted dialed-console section to begin on even word boundary. 9 51* 9) change(87-05-13,GDixon), approve(87-07-13,MCR7741), 9 52* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 9 53* Add ute.line_type. 9 54* 10) change(87-11-19,Parisek), approve(88-02-11,MCR7849), 9 55* audit(88-02-23,Lippard), install(88-07-13,MR12.2-1047): 9 56* Added the lowest_ring element. Used the upper half of ute.highest_ring 9 57* for the storage. SCP6367 9 58* END HISTORY COMMENTS */ 9 59 9 60 /* format: style4 */ 9 61 9 62 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 9 63 /* */ 9 64 /* Each of the named sections below defines a type of data. Typing comes */ 9 65 /* from data associated with the ute entry itself, with the person, with */ 9 66 /* login argument data, from the main user of the data (eg, dialup_, */ 9 67 /* load_ctl_, login server). Each section begins on a double-word boundary */ 9 68 /* and is an even number of words long. The total structure is 300 decimal */ 9 69 /* words long. */ 9 70 /* */ 9 71 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 9 72 9 73 9 74 dcl UTE_version_4 fixed bin internal static options (constant) init (4); 9 75 9 76 dcl utep pointer automatic init (null); 9 77 9 78 dcl 1 ute based (utep) aligned, /* individual entry in one of the user control tables */ 9 79 9 80 /* Variables which give state of this entry */ 9 81 2 active fixed bin, /* state of entry. 0=>free. see dialup_values.incl.pl1 */ 9 82 2 process_type fixed bin, /* 1=interactive, 2=absentee, 3=daemon */ 9 83 2 ute_index fixed bin, /* index of ute in (anstbl autbl dutbl).entry array */ 9 84 2 next_free fixed bin, /* points to previous free entry */ 9 85 9 86 /* Information user gave about person_id associated with this entry. */ 9 87 2 person char (24) unal, /* user's name */ 9 88 2 project char (12) unal, /* project of absentee user */ 9 89 2 tag char (1) unal, /* instance tag - someday will be generated */ 9 90 2 tag_pad bit (27) unal, 9 91 2 anonymous fixed bin, /* 1 if anonymous, otherwise 0 */ 9 92 2 login_flags, /* flags for login data */ 9 93 3 cpw bit (1) unal, /* flag for wish to change password */ 9 94 3 generate_pw bit (1) unal, /* flag meaning -generate_pw (-gpw) was used. */ 9 95 3 special_pw unal, /* dial or slave */ 9 96 4 dial_pw bit (1) unal, /* true if dial -user */ 9 97 4 slave_pw bit (1) unal, /* true if slave -user */ 9 98 3 cdp bit (1) unal, /* flag for wish to change default project */ 9 99 3 cda bit (1) unal, /* flag to change default authorization */ 9 100 3 auth_given bit (1) unal, /* flag to mean -authorization was used. */ 9 101 3 noprint bit (1) unal, /* used at logout. inhibits printing. */ 9 102 3 operator bit (1) unaligned, /* user specified -operator on login command line */ 9 103 3 pw_pad bit (25) unal, /* spare parts */ 9 104 3 mask_ctl bit (2) unal, /* bits controlling pw mask. See constants, below */ 9 105 /* Must remain last in pw_flags so it does not */ 9 106 /* appear in PW_FLAG_VALUES array below. */ 9 107 2 generated_pw char (8) unal, /* user must type this as new password */ 9 108 2 old_password char (8) unal, /* must match user's previous password (value scrambled) */ 9 109 2 process_authorization bit (72), /* access_authorization of this process */ 9 110 9 111 /* Information user gave about process associated with this entry. */ 9 112 2 outer_module char (32) unal, /* Name of console dim */ 9 113 2 home_dir char (64) unal, /* initial home directory */ 9 114 2 init_proc char (64) unal, /* name of login responder */ 9 115 2 ip_len fixed bin (17) unal, /* length of initproc string */ 9 116 2 ss_len fixed bin (17) unal, /* length of subsystem string */ 9 117 2 ur_at like user_attributes aligned, /* bits on means attributes given by user */ 9 118 2 at like user_attributes aligned, /* bits on means attribute is on */ 9 119 2 initial_ring fixed bin, /* ring process will be started in */ 9 120 2 arg_count fixed bin, /* number of arguments to absentee control segment */ 9 121 2 ln_args fixed bin, /* length of string containing arguments */ 9 122 2 arg_lengths_ptr ptr, /* pointer to array of argument lengths */ 9 123 2 args_ptr ptr, /* pointer to arguments to absentee control segment */ 9 124 9 125 /* Most of the following information is relevant only to absentee processes */ 9 126 2 input_seg char (168) unal, /* pathname of absentee control segment */ 9 127 2 output_seg char (168) unal, /* pathname of absentee output file */ 9 128 2 request_id fixed bin (71), /* time request was entered - used as uid of request */ 9 129 2 reservation_id fixed bin (71), /* nonzero if job has a resource reservation */ 9 130 2 message_id bit (72), /* message segment id assoc with absentee request */ 9 131 2 deferred_time fixed bin (71), /* time at which absentee process should be created */ 9 132 2 max_cpu_time fixed bin (35), /* maximum number of seconds this process can run */ 9 133 2 queue fixed bin, /* -1=daemon;0=interactive or foreground;>0=queue no. 9 134* (but see uflags.adjust_abs_q_no). */ 9 135 2 real_queue fixed bin, /* real queue number; ute.queue gets fudged sometimes */ 9 136 2 abs_attributes aligned like user_abs_attributes, /* include abs_attributes.incl.pl1 */ 9 137 2 abs_flags, 9 138 3 abs_run bit (1) unal, /* on if job was started by abs run command */ 9 139 3 notify bit (1) unal, /* on if user wants notification at login and logout */ 9 140 3 abs_flags_pad bit (34) unal, 9 141 2 abs_group char (8) unal, /* original group before load_ctl_ moves it to absentee group */ 9 142 2 sender char (32) unal, /* name of RJE station that job is from */ 9 143 2 proxy_person char (28) unal, /* name of user who actually entered the request, if proxy */ 9 144 2 proxy_project char (9) unal, 9 145 2 proxy_project_pad char (3) unal, 9 146 2 abs_pad fixed bin, 9 147 9 148 /* Information about process actually created */ 9 149 2 proc_id bit (36), /* process id of absentee process */ 9 150 2 session_uid fixed bin (35), /* Unique authentication session id */ 9 151 2 process_authorization_range (2) bit (72) aligned, 9 152 2 audit bit (36), /* audit flags for user */ 9 153 2 lot_size fixed bin, /* Size of linkage offset table */ 9 154 2 kst_size fixed bin, /* Size of process known segment table */ 9 155 2 cls_size fixed bin, /* Size of process combined linkage */ 9 156 2 sus_channel fixed bin (71), /* event channel on which suspended process is blocked */ 9 157 2 lowest_ring fixed bin (17) unal, /* lowest ring permitted */ 9 158 2 highest_ring fixed bin (17) unal, /* highest ring permitted */ 9 159 2 pdir_lvix fixed bin (17) unal, /* index in disk table of lv where pdir is */ 9 160 2 pdir_quota fixed bin (17) unal, /* process directory quota */ 9 161 2 pdir_dir_quota fixed bin (17) unal, /* process directory quota for dirs */ 9 162 2 pdir_pad fixed bin(17) unal, 9 163 2 process_pad fixed bin, 9 164 9 165 /* Information about primary terminal associated with this entry */ 9 166 2 tty_name char (32) unal, /* absentee=>"abs1", etc. daemon=>"bk", etc. */ 9 167 2 terminal_type char (32) unaligned, /* terminal type */ 9 168 2 line_type fixed bin, /* line type */ 9 169 2 tty_id_code char (4) unal, /* "none" for absentee */ 9 170 2 network_connection_type fixed bin, /* see net_event_message.incl.pl1 */ 9 171 2 channel ptr unal, /* points to CDT entry for user, if any */ 9 172 9 173 /* Variables useful for dialed terminals */ 9 174 2 ndialed_consoles fixed bin, /* if master, number of slaves */ 9 175 2 dial_qualifier char (22) unal, /* first argument to dial command */ 9 176 2 dial_server_ring fixed bin (3) unsigned unaligned, /* dial server intends to attach dialing in channels at this ring. */ 9 177 2 dial_server_flags, 9 178 3 registered_dial_server bit (1) unal, /* process is a registered dial server */ 9 179 3 privileged_dial_server bit (1) unal, /* "1"b -> serves range of AIM classes */ 9 180 3 dial_server_flags_pad bit (13) unal, /* fill out the word */ 9 181 2 dial_ev_chn fixed bin (71), /* if master, control event channel */ 9 182 9 183 /* Information about usage/accounting. Device usage meters are in a 9 184* separate segment, "devtab" */ 9 185 2 pdtep ptr, /* ptr to user's pdt entry, where usage meters live */ 9 186 2 cpu_this_process fixed bin (71), /* cpu used so far this process */ 9 187 2 cpu_usage fixed bin (71), /* total cpu time used in this session */ 9 188 2 mem_usage fixed bin (71), /* memory usage for previous processes in session */ 9 189 2 mem_this_process fixed bin (71), /* memory usage at last update */ 9 190 2 last_update_time fixed bin (71), /* time of last account update */ 9 191 2 session_cost float bin, /* dollar cost of session, for printing in logout messages */ 9 192 2 ndevices fixed bin, /* Count of attached devices */ 9 193 2 device_head fixed bin, /* Table index of head of device chain */ 9 194 2 device_tail fixed bin, /* Table index of tail of device chain */ 9 195 2 rs_number fixed bin (6) unsigned unal, /* rate structure number */ 9 196 2 rs_number_pad bit(30) unal, 9 197 2 usage_pad fixed bin, 9 198 9 199 /* Information for dialup_ (control variables). */ 9 200 2 event fixed bin (71), /* event associated with channel or user manager */ 9 201 2 uprojp ptr, /* ptr to user project sat entry */ 9 202 2 login_time fixed bin (71), /* time when absentee user approved by lg_ctl_ */ 9 203 2 cant_bump_until fixed bin (71), /* bump-protection clock */ 9 204 2 recent_fatal_error_time fixed bin (71), /* time of first error in the suspected loop */ 9 205 2 recent_fatal_error_count fixed bin, /* counter to detect fatal process error loops */ 9 206 2 failure_reason fixed bin, /* why login refused 1=lg_ctl, 2=act_ctl, 3=load_ctl */ 9 207 2 count fixed bin, /* counter for logins and dialups */ 9 208 2 n_processes fixed bin, /* number of processes created in this session */ 9 209 2 lock_value fixed bin, /* number of locks set for this entry */ 9 210 2 login_result fixed bin, /* 0=logged in;1=hopeless,hang him up;2=allow another attempt */ 9 211 2 login_code char (8) unal, /* login command from LOGIN line */ 9 212 2 preempted fixed bin, /* if ^= 0 user preempted (never for abs) */ 9 213 2 destroy_flag fixed bin, /* >8 when awaiting destroy */ 9 214 2 logout_type char (4) unal, /* type of logout */ 9 215 2 logout_index fixed bin, /* to save logout handler index while waiting for termsgnl */ 9 216 2 disconnection_rel_minutes fixed bin (17) unal, /* disconnected this many minutes after login_time */ 9 217 2 next_disconnected_ate_index fixed bin (17) unal, /* thread of list of user's disconnected processes */ 9 218 2 work_class fixed bin, /* work class used by priority scheduler */ 9 219 2 group char (8) unal, /* party group identifier */ 9 220 2 whotabx fixed bin, /* index of user's entry in whotab */ 9 221 9 222 2 uflags, /* Miscellaneous flags */ 9 223 3 dont_call_init_admin bit (1) unal, /* Call overseer directly */ 9 224 3 ip_given bit (1) unal, /* user gave an initproc arg on login line */ 9 225 3 ss_given bit (1) unal, /* initial_procedure contains a subsystem name */ 9 226 3 lvs_attached bit (1) unal, /* set and used by the lv_request_ procedure */ 9 227 3 send_initial_string bit (1) unal, /* initial string should be sent after login line read */ 9 228 3 adjust_abs_q_no bit (1) unal, /* this is an absentee job; user_profile.queue is NOT true Q # */ 9 229 3 foreground_secondary_ok bit (1) unal, /* ok to login foreground absentee job as secondary */ 9 230 3 foreground_job bit (1) unal, /* job was originally from foreground queue */ 9 231 3 sus_sent bit (1) unal, /* sus_ ips signal has been sent to process */ 9 232 3 suspended bit (1) unal, /* process has responded to sus_ signal */ 9 233 3 ignore_cpulimit bit (1) unal, /* process is released, but timer can't be turned off */ 9 234 3 deferral_logged bit (1) unal, /* abs job deferral has already been logged once */ 9 235 3 save_if_disconnected bit (1) unal, /* user wants process preserved across hangups */ 9 236 3 disconnected bit (1) unal, /* process is disconnected from terminal */ 9 237 3 disconnected_list bit (1) unal, /* this ate is on a list of disconnected processes */ 9 238 3 proc_create_ok bit (1) unal, /* lg_ctl_ has set the process creation variables */ 9 239 3 activity_can_unbump bit (1) unal, /* only bump pending is for inactivity */ 9 240 3 fpe_causes_logout bit (1) unal, /* "1"b means don't try to new_proc after fatal process error */ 9 241 3 user_specified_immediate bit (1) unal, /* "1"b -> don't wait around for process destruction. */ 9 242 3 uflags_pad bit (17) unal, 9 243 9 244 /* Information used by load_ctl_ for the process */ 9 245 2 user_weight fixed bin, /* usually 10 - used in load control */ 9 246 2 standby_line fixed bin, /* 0=user has primary line, 1=standby user */ 9 247 2 bump_grace fixed bin (71), /* bump grace in microseconds */ 9 248 9 249 9 250 /* Information for login server */ 9 251 2 login_server_info, 9 252 3 our_handle bit (72) aligned, /* how LS refers to us. */ 9 253 3 his_handle bit (72) aligned, /* how we talk to LS */ 9 254 3 termination_event_channel fixed bin (71), /* for process termination notifications to the LS */ 9 255 3 response_event_channel fixed bin (71), /* for other communications with the LS */ 9 256 3 process_id bit (36) aligned, /* process_id of login server */ 9 257 2 ls_pad (5) fixed bin; /* pad to 300 decimal words */ 9 258 9 259 /* values for ute.process_type */ 9 260 9 261 dcl (PT_INTERACTIVE initial (1), 9 262 PT_ABSENTEE initial (2), 9 263 PT_DAEMON initial (3)) fixed bin internal static options (constant); 9 264 9 265 dcl PROCESS_TYPE_NAMES (0:3) char(12) varying int static options(constant) init( 9 266 "INVALID-TYPE", 9 267 "interactive", 9 268 "absentee", 9 269 "daemon"); 9 270 9 271 dcl TABLE_NAMES (0:3) char(20) int static options(constant) init( 9 272 "UNKNOWN-TABLE", 9 273 "answer_table", 9 274 "absentee_user_table", 9 275 "daemon_user_table"); 9 276 9 277 9 278 /* values for ute.pw_flags.mask_ctl */ 9 279 9 280 dcl (DO_MASK init ("00"b), 9 281 DONT_MASK init ("01"b), 9 282 DERIVE_MASK init ("10"b)) bit (2) internal static options (constant); 9 283 9 284 dcl MASK_CTL_NAMES (0:3) char(12) varying int static options(constant) init( 9 285 "do_mask", "dont_mask", "derive_mask", ""); 9 286 9 287 9 288 /* names for ute.pw_flags */ 9 289 9 290 dcl PW_FLAG_NAMES (9) char (12) varying int static options(constant) init( 9 291 "cpw", 9 292 "generate_pw", 9 293 "dial_pw", 9 294 "slave_pw", 9 295 "cdp", 9 296 "cda", 9 297 "auth_given", 9 298 "noprint", 9 299 "operator"); 9 300 9 301 /* names for ute.uflags */ 9 302 9 303 dcl UFLAG_NAMES (19) char (24) varying int static options (constant) init ( 9 304 "dont_call_init_admin", 9 305 "ip_given", 9 306 "ss_given", 9 307 "lvs_attached", 9 308 "send_initial_string", 9 309 "adjust_abs_q_no", 9 310 "foreground_secondary_ok", 9 311 "foreground_job", 9 312 "sus_sent", 9 313 "suspended", 9 314 "ignore_cpulimit", 9 315 "deferral_logged", 9 316 "save_if_disconnected", 9 317 "disconnected", 9 318 "disconnected_list", 9 319 "proc_create_ok", 9 320 "activity_can_unbump", 9 321 "fpe_causes_logout", 9 322 "user_specified_immediate"); 9 323 9 324 /* names for ute.abs_flags */ 9 325 9 326 dcl ABS_FLAG_NAMES (2) char (8) varying int static options (constant) init ( 9 327 "abs_run", 9 328 "notify"); 9 329 9 330 /* names of ute.dial_server_flags */ 9 331 9 332 dcl DIAL_SERVER_FLAG_NAMES (2) char (12) varying int static options (constant) init ( 9 333 "registered", 9 334 "privileged"); 9 335 9 336 /* values of ute.login_result */ 9 337 9 338 dcl LOGIN_RESULT_VALUES (0:2) char(24) varying int static options(constant) init( 9 339 "logged in", 9 340 "login failed, hangup", 9 341 "login failed, try again"); 9 342 9 343 /* END INCLUDE FILE ... user_table_entry.incl.pl1 */ 552 553 /* BEGIN INCLUDE FILE ... user_table_header.incl.pl1 */ 10 2 10 3 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 10 4 /* */ 10 5 /* This include file declares the header shared by the answer_table, */ 10 6 /* absentee_user_table and daemon_user_table include files. */ 10 7 /* */ 10 8 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 10 9 10 10 /****^ HISTORY COMMENTS: 10 11* 1) change(87-04-26,GDixon), approve(87-07-13,MCR7741), 10 12* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 10 13* Initial coding. 10 14* END HISTORY COMMENTS */ 10 15 10 16 dcl 1 ut_header aligned based, /* header shared by all user control tables. */ 10 17 2 header_version fixed bin, /* version of the header (3) */ 10 18 2 entry_version fixed bin, /* version of user table entries */ 10 19 2 user_table_type fixed bin, /* 1 interactive, 2 absentee, 3 daemon */ 10 20 2 header_length fixed bin, /* length of the header */ 10 21 2 max_size fixed bin, /* max number of entries in this table */ 10 22 2 current_size fixed bin, /* actual size of table (in entries) */ 10 23 2 number_free fixed bin, /* number of free entries in the table. */ 10 24 2 first_free fixed bin, /* index of first entry in the free list. */ 10 25 2 as_procid bit (36), /* process ID of user table manager process */ 10 26 2 ut_header_pad fixed bin; 10 27 10 28 /* END INCLUDE FILE ... user_table_header.incl.pl1 */ 553 554 555 end user_table_mgr_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 07/13/88 0905.0 user_table_mgr_.pl1 >special_ldd>install>MR12.2-1047>user_table_mgr_.pl1 545 1 08/06/87 0913.4 absentee_user_table.incl.pl1 >ldd>include>absentee_user_table.incl.pl1 546 2 08/06/87 0913.0 answer_table.incl.pl1 >ldd>include>answer_table.incl.pl1 547 3 08/06/87 0912.9 daemon_user_table.incl.pl1 >ldd>include>daemon_user_table.incl.pl1 548 4 08/06/87 0913.4 dialup_values.incl.pl1 >ldd>include>dialup_values.incl.pl1 549 5 08/06/87 0913.5 sys_log_constants.incl.pl1 >ldd>include>sys_log_constants.incl.pl1 550 6 08/06/87 0913.5 uc_ls_handle.incl.pl1 >ldd>include>uc_ls_handle.incl.pl1 551 7 08/06/87 0913.6 user_attributes.incl.pl1 >ldd>include>user_attributes.incl.pl1 7-112 8 07/13/88 0900.1 user_abs_attributes.incl.pl1 >special_ldd>install>MR12.2-1047>user_abs_attributes.incl.pl1 552 9 07/13/88 0903.2 user_table_entry.incl.pl1 >special_ldd>install>MR12.2-1047>user_table_entry.incl.pl1 553 10 08/06/87 0913.6 user_table_header.incl.pl1 >ldd>include>user_table_header.incl.pl1 NAMES DECLARED IN THIS COMPILATION. IDENTIFIER OFFSET LOC STORAGE CLASS DATA TYPE ATTRIBUTES AND REFERENCES (* indicates a set context) NAMES DECLARED BY DECLARE STATEMENT. ACTIVE_VALUES 000543 constant char(18) initial array dcl 4-86 set ref 202 202 204* 341* ME 000100 automatic varying char(36) dcl 62 set ref 110* 139* 146* 226 234 257* 310 528 NOW_DIALED constant fixed bin(17,0) initial dcl 4-76 ref 410 NOW_FREE constant fixed bin(17,0) initial dcl 4-76 ref 204 277 336 426 453 PT_ABSENTEE constant fixed bin(17,0) initial dcl 9-261 ref 117 155 168 268 PT_DAEMON constant fixed bin(17,0) initial dcl 9-261 ref 119 157 172 270 PT_INTERACTIVE constant fixed bin(17,0) initial dcl 9-261 ref 115 153 164 266 P_process_type parameter fixed bin(17,0) dcl 402 in procedure "Fill_UTE" ref 399 406 412 P_process_type parameter fixed bin(17,0) dcl 56 in procedure "user_table_mgr_" set ref 107 115 117 119 121* 127* P_uc_ls_handle parameter bit(72) dcl 57 set ref 251 262 272* 277* 282* P_ute_index parameter fixed bin(17,0) dcl 424 in procedure "Free_UTE" ref 422 427 429 433 P_ute_index parameter fixed bin(17,0) dcl 401 in procedure "Fill_UTE" ref 399 411 P_ute_index parameter fixed bin(17,0) dcl 327 in procedure "Allocate_UTE" set ref 324 362* P_utep parameter pointer dcl 58 set ref 137 144 150 231* 242* SL_LOG 000625 constant fixed bin(17,0) initial dcl 5-14 set ref 121* 272* 277* 282* SL_LOG_BEEP 000623 constant fixed bin(17,0) initial dcl 5-14 set ref 177* 186* 191* 204* 209* 219* 341* 406* TABLE_NAMES 000517 constant char(20) initial array packed unaligned dcl 9-271 set ref 186* 191* 204* 209* 219* 277* 282* 341* 406* abort_label 000112 automatic label variable dcl 63 set ref 113* 148* 260* 314 abs_group 251 based char(8) level 2 packed packed unaligned dcl 9-78 set ref 470* active based fixed bin(17,0) level 2 dcl 9-78 set ref 202 202 204 204* 204 209* 277 336 341* 341 410* 426* 453 addr builtin function dcl 100 ref 182 214 215 262 264 276 311 311 335 352 452 529 529 ansp 000130 automatic pointer initial dcl 2-53 set ref 2-53* arg_count 102 based fixed bin(17,0) level 2 dcl 9-78 set ref 384 386* arg_lengths_ptr 104 based pointer level 2 dcl 9-78 set ref 383 384 385* 502* arg_list_ptr 2 000134 automatic pointer level 2 dcl 5-24 set ref 309* 527* args_ptr 106 based pointer level 2 dcl 9-78 set ref 388 389 390* 503* argstring based char packed unaligned dcl 72 ref 389 as_data_$ansp 000022 external static pointer dcl 94 ref 115 153 162 163 266 as_data_$autp 000024 external static pointer dcl 95 ref 117 155 166 167 268 as_data_$dutp 000026 external static pointer dcl 96 ref 119 157 170 171 270 as_dump_ 000012 constant entry external dcl 83 ref 196 auto_uc_ls_handle 000116 automatic structure level 1 dcl 64 set ref 263* 264 autp 000126 automatic pointer initial dcl 1-26 set ref 1-26* baseno builtin function dcl 100 ref 162 162 166 166 170 170 caller 17 000134 automatic varying char(65) level 2 dcl 5-24 set ref 310* 528* channel 341 based pointer level 2 packed packed unaligned dcl 9-78 set ref 501* code 000120 automatic fixed bin(35,0) dcl 65 in procedure "user_table_mgr_" set ref 405* 406 406* code 16 000134 automatic fixed bin(35,0) level 2 in structure "sl_info" dcl 5-24 in procedure "user_table_mgr_" set ref 312 cu_$arg_list_ptr 000034 constant entry external dcl 523 in procedure "Warning" ref 527 cu_$arg_list_ptr 000030 constant entry external dcl 305 in procedure "Abort" ref 309 current_size 5 based fixed bin(17,0) level 3 dcl 75 set ref 182 215 349 350 350* 429 429* 429 450 dial_qualifier 343 based char(22) level 2 packed packed unaligned dcl 9-78 set ref 470* dutp 000132 automatic pointer initial dcl 3-27 set ref 3-27* entry based structure array level 2 dcl 75 set ref 182 182 182 214 215 215 215 276 335 352 450 450 452 event 376 based fixed bin(71,0) level 2 dcl 9-78 set ref 375 376* 377* 405* first_free 7 based fixed bin(17,0) level 3 dcl 75 set ref 334 337* 432 433* 449* 454 455* generated_pw 20 based char(8) level 2 packed packed unaligned dcl 9-78 set ref 470* get_system_free_area_ 000014 constant entry external dcl 84 ref 381 group 426 based char(8) level 2 packed packed unaligned dcl 9-78 set ref 470* hbound builtin function dcl 100 ref 182 202 215 450 header based structure level 2 dcl 75 highest_ring 312(18) based fixed bin(17,0) level 2 packed packed unaligned dcl 9-78 set ref 494* home_dir 36 based char(64) level 2 packed packed unaligned dcl 9-78 set ref 470* in_use 12 based fixed bin(17,0) level 2 dcl 75 set ref 359* 359 436* 436 init_proc 56 based char(64) level 2 packed packed unaligned dcl 9-78 set ref 470* initial_ring 101 based fixed bin(17,0) level 2 dcl 9-78 set ref 494* input_seg 110 based char(168) level 2 packed packed unaligned dcl 9-78 set ref 470* ioa_msg 51 000134 automatic varying char(500) level 2 dcl 5-24 set ref 196 ipc_$create_ev_chn 000016 constant entry external dcl 85 ref 405 ipc_$delete_ev_chn 000020 constant entry external dcl 86 ref 376 lbound builtin function dcl 100 ref 182 202 215 450 lengths based fixed bin(17,0) array dcl 73 ref 384 ln_args 103 based fixed bin(17,0) level 2 dcl 9-78 set ref 389 389 391* login_code 416 based char(8) level 2 packed packed unaligned dcl 9-78 set ref 470* login_server_info 436 based structure level 2 dcl 9-78 logout_type 422 based char(4) level 2 packed packed unaligned dcl 9-78 set ref 470* lowest_ring 312 based fixed bin(17,0) level 2 packed packed unaligned dcl 9-78 set ref 494* max_size 4 based fixed bin(17,0) level 3 dcl 75 ref 349 next_free 3 based fixed bin(17,0) level 2 dcl 9-78 set ref 337 432* 454* null builtin function dcl 100 ref 112 174 177 231 242 259 1-26 2-53 3-27 9-76 313 330 356 381 383 385 388 390 404 437 499 500 501 502 503 number_free 6 based fixed bin(17,0) level 3 dcl 75 set ref 333 338* 338 434* 434 449* 456* 456 old_password 22 based char(8) level 2 packed packed unaligned dcl 9-78 set ref 470* our_handle 436 based bit(72) level 3 dcl 9-78 set ref 282 282* outer_module 26 based char(32) level 2 packed packed unaligned dcl 9-78 set ref 470* output_seg 162 based char(168) level 2 packed packed unaligned dcl 9-78 set ref 470* pdtep 354 based pointer level 2 dcl 9-78 set ref 500* person 4 based char(24) level 2 packed packed unaligned dcl 9-78 set ref 470* process_type based fixed bin(17,0) level 2 in structure "uc_ls_handle" packed packed unaligned dcl 6-11 in procedure "user_table_mgr_" set ref 266 268 270 272* process_type 000121 automatic fixed bin(17,0) dcl 66 in procedure "user_table_mgr_" set ref 151* 153 155 157 164* 168* 172* 197 238* process_type 1 based fixed bin(17,0) level 2 in structure "ute" dcl 9-78 in procedure "user_table_mgr_" set ref 151 191* 197* 412* project 12 based char(12) level 2 packed packed unaligned dcl 9-78 set ref 470* proxy_person 263 based char(28) level 2 packed packed unaligned dcl 9-78 set ref 470* proxy_project 272 based char(9) level 2 packed packed unaligned dcl 9-78 set ref 470* real_queue 246 based fixed bin(17,0) level 2 dcl 9-78 set ref 505* sender 253 based char(32) level 2 packed packed unaligned dcl 9-78 set ref 470* size builtin function dcl 100 ref 182 182 182 214 215 215 215 276 335 352 450 450 452 sl_info 000134 automatic structure level 1 dcl 5-24 set ref 308* 311 311 526* 529 529 sl_info_sev_code_msg 000000 constant structure level 1 dcl 5-82 ref 308 sl_info_sev_msg 000250 constant structure level 1 dcl 5-108 ref 526 sys_log_$general 000036 constant entry external dcl 524 in procedure "Warning" ref 529 sys_log_$general 000032 constant entry external dcl 306 in procedure "Abort" ref 311 system_area based area(1024) dcl 74 ref 384 389 system_area_ptr 000010 internal static pointer initial dcl 90 set ref 381 381* 384 389 tag 15 based char(1) level 2 packed packed unaligned dcl 9-78 set ref 470* terminal_type 326 based char(32) level 2 packed packed unaligned dcl 9-78 set ref 470* tty_id_code 337 based char(4) level 2 packed packed unaligned dcl 9-78 set ref 470* tty_name 316 based char(32) level 2 packed packed unaligned dcl 9-78 set ref 470* uc_ls_handle based structure level 1 dcl 6-11 set ref 263 282 uc_ls_handle_ptr 000404 automatic pointer dcl 6-9 set ref 262* 263 264* 266 268 270 272 276 282 unspec builtin function dcl 100 set ref 282 469* uprojp 400 based pointer level 2 dcl 9-78 set ref 499* user_abs_attributes based structure level 1 dcl 8-25 user_attributes based structure level 1 dcl 7-21 user_table based structure level 1 dcl 75 user_table_ptr 000122 automatic pointer dcl 67 set ref 115* 117* 119* 153* 155* 157* 163* 167* 171* 174* 177 182 182 182 186 191 204 209 214 215 215 215 219 266* 268* 270* 276 277 282 333 334 335 337 338 338 341 349 349 350 350 352 359 359 429 429 429 432 433 434 434 436 436 449 449 450 450 452 454 455 456 456 user_table_type 2 based fixed bin(17,0) level 3 dcl 75 ref 186 191 204 209 219 277 282 341 ut_header based structure level 1 dcl 10-16 ref 182 182 182 214 215 215 215 276 335 352 450 450 452 ute based structure level 1 dcl 9-78 set ref 469* ute_index 000124 automatic fixed bin(17,0) dcl 68 in procedure "user_table_mgr_" set ref 124* 125 127* 182* 182* 186 191* 215* 215* 219* 223 227* 230* 235* 238* 406* ute_index 000420 automatic fixed bin(17,0) dcl 328 in procedure "Allocate_UTE" set ref 334* 335 341* 350* 352 355* 359 362 ute_index 2 based fixed bin(17,0) level 2 in structure "ute" dcl 9-78 in procedure "user_table_mgr_" set ref 204* 209* 214 219* 223* 227 235 277* 282* 411* 427* ute_index 0(18) based fixed bin(17,0) level 2 in structure "uc_ls_handle" packed packed unaligned dcl 6-11 in procedure "user_table_mgr_" ref 276 ute_index 000452 automatic fixed bin(17,0) dcl 447 in procedure "Reconstruct_free_list" set ref 450* 452 455* utep 000406 automatic pointer initial dcl 9-76 set ref 112* 130 150* 151 162 166 170 177* 182 186* 191* 191 197 202 202 204 204 204* 204 204 209 209* 209 214 214 215 219* 219 223 227 235 259* 276* 277 277 277* 282 282 282* 282 289 9-76* 313* 330* 335* 336 337 341* 341 341 352* 356* 375 376 377 383 384 384 385 386 388 389 389 389 390 391 404 405 406* 410 411 412 426 427 432 437* 452* 453 454 469 470 470 470 470 470 470 470 470 470 470 470 470 470 470 470 470 470 470 470 470 470 494 494 494 494 499 500 501 502 503 505 work_class 425 based fixed bin(17,0) level 2 dcl 9-78 set ref 494* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. ABS_ATTRIBUTE_NAMES internal static varying char(28) initial array dcl 8-38 ABS_FLAG_NAMES internal static varying char(8) initial array dcl 9-326 ALT_USER_ATTRIBUTE_NAMES internal static char(20) initial array packed unaligned dcl 7-77 ANSTBL_version_4 internal static fixed bin(17,0) initial dcl 2-51 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 DERIVE_MASK internal static bit(2) initial packed unaligned dcl 9-280 DIAL_SERVER_FLAG_NAMES internal static varying char(12) initial array dcl 9-332 DONT_MASK internal static bit(2) initial packed unaligned dcl 9-280 DO_MASK internal static bit(2) initial packed unaligned dcl 9-280 DUTBL_version_4 internal static fixed bin(17,0) initial dcl 3-25 LOGIN_RESULT_VALUES internal static varying char(24) initial array dcl 9-338 MASK_CTL_NAMES internal static varying char(12) initial array dcl 9-284 NOW_DIALED_OUT internal static fixed bin(17,0) initial dcl 4-76 NOW_DIALING internal static fixed bin(17,0) initial dcl 4-76 NOW_HAS_PROCESS internal static fixed bin(17,0) initial dcl 4-76 NOW_HUNG_UP internal static fixed bin(17,0) initial dcl 4-76 NOW_LISTENING internal static fixed bin(17,0) initial dcl 4-76 NOW_LOGGED_IN internal static fixed bin(17,0) initial dcl 4-76 PREEMPT_BUMPED internal static fixed bin(17,0) initial dcl 4-132 PREEMPT_BUMPED_NO_TERM internal static fixed bin(17,0) initial dcl 4-132 PREEMPT_LOAD_CTL internal static fixed bin(17,0) initial dcl 4-132 PREEMPT_TERMSGNL_RECEIVED internal static fixed bin(17,0) initial dcl 4-132 PREEMPT_TERM_SENT internal static fixed bin(17,0) initial dcl 4-132 PREEMPT_UNBUMP internal static fixed bin(17,0) initial dcl 4-132 PREEMPT_UNBUMP_IGNORE_ALARM internal static fixed bin(17,0) initial dcl 4-132 PREEMPT_VALUES internal static varying char(28) initial array dcl 4-142 PROCESS_TYPE_NAMES internal static varying char(12) initial array dcl 9-265 PT_ALARM internal static fixed bin(17,0) initial dcl 4-106 PT_BUMP internal static fixed bin(17,0) initial dcl 4-106 PT_DESTROY_REQUEST internal static fixed bin(17,0) initial dcl 4-106 PT_DETACH internal static fixed bin(17,0) initial dcl 4-106 PT_FPE internal static fixed bin(17,0) initial dcl 4-106 PT_HANGUP internal static fixed bin(17,0) initial dcl 4-106 PT_LOGOUT internal static fixed bin(17,0) initial dcl 4-106 PT_NEW_PROC_AUTH internal static fixed bin(17,0) initial dcl 4-106 PT_NEW_PROC_REQUEST internal static fixed bin(17,0) initial dcl 4-106 PT_OPERATOR_TERMINATE internal static fixed bin(17,0) initial dcl 4-106 PT_SHUTDOWN internal static fixed bin(17,0) initial dcl 4-106 PT_UNBUMP internal static fixed bin(17,0) initial dcl 4-106 PW_FLAG_NAMES internal static varying char(12) initial array dcl 9-290 SL_INFO_arg_given_in_structure internal static fixed bin(17,0) initial dcl 5-69 SL_INFO_arg_not_given internal static fixed bin(17,0) initial dcl 5-69 SL_INFO_as_mode internal static fixed bin(17,0) initial dcl 5-65 SL_INFO_command_mode internal static fixed bin(17,0) initial dcl 5-65 SL_INFO_version_1 internal static char(8) initial packed unaligned dcl 5-62 SL_LOG_CRASH internal static fixed bin(17,0) initial dcl 5-14 SL_LOG_SILENT internal static fixed bin(17,0) initial dcl 5-14 SL_TYPE internal static fixed bin(17,0) initial dcl 5-14 SL_TYPE_BEEP internal static fixed bin(17,0) initial dcl 5-14 SL_TYPE_CRASH internal static fixed bin(17,0) initial dcl 5-14 STATE_VALUES internal static char(15) initial array dcl 4-70 TAG_ABSENTEE internal static char(1) initial packed unaligned dcl 4-93 TAG_DAEMON internal static char(1) initial packed unaligned dcl 4-93 TAG_INTERACTIVE internal static char(1) initial packed unaligned dcl 4-93 TAG_PROXY internal static char(1) initial packed unaligned dcl 4-93 TAG_UFT internal static char(1) initial packed unaligned dcl 4-93 TRA_VEC_VALUES internal static char(32) initial array dcl 4-54 TTY_DIALED internal static fixed bin(17,0) initial dcl 4-64 TTY_HUNG internal static fixed bin(17,0) initial dcl 4-64 TTY_KNOWN internal static fixed bin(17,0) initial dcl 4-64 TTY_MASKED internal static fixed bin(17,0) initial dcl 4-64 UFLAG_NAMES internal static varying char(24) initial array dcl 9-303 USER_ATTRIBUTES_always_allowed internal static bit(36) initial dcl 7-100 USER_ATTRIBUTES_default_in_pdt internal static bit(36) initial dcl 7-104 USER_ATTRIBUTES_settable_by_user internal static bit(36) initial dcl 7-108 USER_ATTRIBUTE_NAMES internal static char(20) initial array packed unaligned dcl 7-50 UTE_SIZE internal static fixed bin(17,0) initial dcl 2-120 UTE_version_4 internal static fixed bin(17,0) initial dcl 9-74 WAIT_ANSWERBACK internal static fixed bin(17,0) initial dcl 4-25 WAIT_BEFORE_HANGUP internal static fixed bin(17,0) initial dcl 4-25 WAIT_CONNECT_REQUEST internal static fixed bin(17,0) initial dcl 4-25 WAIT_DELETE_CHANNEL internal static fixed bin(17,0) initial dcl 4-25 WAIT_DESTROY_REQUEST internal static fixed bin(17,0) initial dcl 4-25 WAIT_DETACH internal static fixed bin(17,0) initial dcl 4-25 WAIT_DIALUP internal static fixed bin(17,0) initial dcl 4-25 WAIT_DIAL_OUT internal static fixed bin(17,0) initial dcl 4-25 WAIT_DIAL_RELEASE internal static fixed bin(17,0) initial dcl 4-25 WAIT_DISCARD_WAKEUPS internal static fixed bin(17,0) initial dcl 4-25 WAIT_FIN_PRIV_ATTACH internal static fixed bin(17,0) initial dcl 4-25 WAIT_FIN_TANDD_ATTACH internal static fixed bin(17,0) initial dcl 4-25 WAIT_GREETING_MSG internal static fixed bin(17,0) initial dcl 4-25 WAIT_HANGUP internal static fixed bin(17,0) initial dcl 4-25 WAIT_LOGIN_ARGS internal static fixed bin(17,0) initial dcl 4-25 WAIT_LOGIN_LINE internal static fixed bin(17,0) initial dcl 4-25 WAIT_LOGOUT internal static fixed bin(17,0) initial dcl 4-25 WAIT_LOGOUT_HOLD internal static fixed bin(17,0) initial dcl 4-25 WAIT_LOGOUT_SIG internal static fixed bin(17,0) initial dcl 4-25 WAIT_NEW_PASSWORD internal static fixed bin(17,0) initial dcl 4-25 WAIT_NEW_PROC internal static fixed bin(17,0) initial dcl 4-25 WAIT_NEW_PROC_REQUEST internal static fixed bin(17,0) initial dcl 4-25 WAIT_OLD_PASSWORD internal static fixed bin(17,0) initial dcl 4-25 WAIT_PASSWORD internal static fixed bin(17,0) initial dcl 4-25 WAIT_REMOVE internal static fixed bin(17,0) initial dcl 4-25 WAIT_SLAVE_REQUEST internal static fixed bin(17,0) initial dcl 4-25 WAIT_TANDD_HANGUP internal static fixed bin(17,0) initial dcl 4-25 anstbl based structure level 1 dcl 2-55 autbl based structure level 1 dcl 1-28 dutbl based structure level 1 dcl 3-29 sl_info_code_msg internal static structure level 1 dcl 5-187 sl_info_msg internal static structure level 1 dcl 5-214 sl_info_sev_code_label_msg internal static structure level 1 dcl 5-161 sl_info_sev_coded_msg internal static structure level 1 dcl 5-134 NAMES DECLARED BY EXPLICIT CONTEXT. ALLOCATE_ABORT 001302 constant label dcl 130 ref 113 Abort 002532 constant entry internal dcl 302 ref 121 177 186 204 209 272 277 282 406 Allocate_UTE 002600 constant entry internal dcl 324 ref 124 Empty_UTE 002730 constant entry internal dcl 371 ref 228 236 FREE_ABORT 002212 constant label dcl 242 ref 148 FREE_JOIN 001354 constant label dcl 148 ref 140 Fill_UTE 003017 constant entry internal dcl 399 ref 127 238 Free_UTE 003113 constant entry internal dcl 422 ref 230 REALLOCATE 002602 constant label dcl 330 ref 346 Reconstruct_free_list 003143 constant entry internal dcl 444 ref 345 Reset_UTE 003202 constant entry internal dcl 466 ref 126 229 237 UTEP_FROM_HANDLE_ABORT 002517 constant label dcl 289 ref 260 Warning 003331 constant entry internal dcl 520 ref 191 219 341 allocate 001164 constant entry external dcl 107 free 001317 constant entry external dcl 137 reset 001337 constant entry external dcl 144 user_table_mgr_ 001147 constant entry external dcl 51 utep_from_handle 002230 constant entry external dcl 251 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 3602 3642 3404 3612 Length 4302 3404 40 424 176 2 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME user_table_mgr_ 559 external procedure is an external procedure. Abort 70 internal procedure is declared options(variable). Allocate_UTE internal procedure shares stack frame of external procedure user_table_mgr_. Empty_UTE internal procedure shares stack frame of external procedure user_table_mgr_. Fill_UTE internal procedure shares stack frame of external procedure user_table_mgr_. Free_UTE internal procedure shares stack frame of external procedure user_table_mgr_. Reconstruct_free_list internal procedure shares stack frame of external procedure user_table_mgr_. Reset_UTE internal procedure shares stack frame of external procedure user_table_mgr_. Warning 70 internal procedure is declared options(variable). STORAGE FOR INTERNAL STATIC VARIABLES. LOC IDENTIFIER BLOCK NAME 000010 system_area_ptr user_table_mgr_ STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME user_table_mgr_ 000100 ME user_table_mgr_ 000112 abort_label user_table_mgr_ 000116 auto_uc_ls_handle user_table_mgr_ 000120 code user_table_mgr_ 000121 process_type user_table_mgr_ 000122 user_table_ptr user_table_mgr_ 000124 ute_index user_table_mgr_ 000126 autp user_table_mgr_ 000130 ansp user_table_mgr_ 000132 dutp user_table_mgr_ 000134 sl_info user_table_mgr_ 000404 uc_ls_handle_ptr user_table_mgr_ 000406 utep user_table_mgr_ 000420 ute_index Allocate_UTE 000452 ute_index Reconstruct_free_list THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. alloc_char_temp call_ext_out_desc call_ext_out call_int_this_desc return_mac tra_ext_2 signal_op shorten_stack ext_entry int_entry op_freen_ THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. as_dump_ cu_$arg_list_ptr cu_$arg_list_ptr get_system_free_area_ ipc_$create_ev_chn ipc_$delete_ev_chn sys_log_$general sys_log_$general THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. as_data_$ansp as_data_$autp as_data_$dutp LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 1 26 001137 2 53 001141 3 27 001142 9 76 001143 51 001146 107 001157 110 001173 112 001200 113 001202 115 001205 117 001216 119 001225 121 001234 124 001264 125 001266 126 001270 127 001271 130 001302 137 001314 139 001327 140 001334 144 001335 146 001347 148 001354 150 001357 151 001363 153 001365 155 001374 157 001403 162 001412 163 001424 164 001425 165 001427 166 001430 167 001436 168 001437 169 001441 170 001442 171 001450 172 001451 173 001453 174 001454 177 001456 182 001514 185 001540 186 001543 191 001606 196 001647 197 001670 202 001674 204 001701 209 001762 214 002031 215 002050 218 002074 219 002077 223 002140 226 002143 227 002150 228 002152 229 002153 230 002154 231 002156 232 002161 234 002170 235 002175 236 002177 237 002200 238 002201 239 002203 242 002212 244 002215 251 002224 257 002237 259 002244 260 002246 262 002251 263 002254 264 002257 266 002261 268 002273 270 002302 272 002311 276 002346 277 002362 282 002434 289 002517 302 002531 308 002537 309 002543 310 002551 311 002557 312 002570 313 002573 314 002575 317 002577 324 002600 330 002602 333 002604 334 002607 335 002611 336 002621 337 002623 338 002625 339 002627 341 002630 345 002676 346 002677 348 002700 349 002701 350 002704 352 002707 353 002717 355 002720 359 002721 362 002725 364 002727 371 002730 375 002731 376 002734 377 002746 381 002751 383 002764 384 002771 385 002773 386 002776 388 003000 389 003004 390 003011 391 003014 394 003016 399 003017 404 003021 405 003025 406 003037 410 003102 411 003104 412 003110 415 003112 422 003113 426 003115 427 003117 429 003122 432 003131 433 003133 434 003135 436 003136 437 003140 439 003142 444 003143 449 003144 450 003147 452 003155 453 003166 454 003170 455 003173 456 003175 458 003176 459 003201 466 003202 469 003203 470 003207 494 003302 499 003311 500 003313 501 003315 502 003320 503 003322 505 003324 506 003327 520 003330 526 003336 527 003342 528 003350 529 003356 531 003367 ----------------------------------------------------------- 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