COMPILATION LISTING OF SEGMENT up_sat_ Compiled by: Multics PL/I Compiler, Release 30, of February 16, 1988 Compiled at: Honeywell Bull, Phoenix AZ, SysM Compiled on: 07/13/88 1006.7 mst Wed Options: optimize map 1 /****^ *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Bull Inc., 1987 * 4* * * 5* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 6* * * 7* * Copyright (c) 1972 by Massachusetts Institute of * 8* * Technology and Honeywell Information Systems, Inc. * 9* * * 10* *********************************************************** */ 11 12 /* format: style4 */ 13 up_sat_: 14 procedure (segp, wordcount, instaldir, instalname, instalp, P_ansp, 15 ip, answer, code); 16 17 /* UP_SAT_ - update the System Administrator's Table (SAT) 18* 19* This program checks a candidate SAT for acceptability before installing. 20* If a new project has been created, and the project dir does not exist, 21* this program creates it and sets up the access. 22* 23* Initially coded by Michael J. Spier, February 13, 1970 24* Modified 741030 by PG for authorizations, etc. 25* Modified 750523 by PG to check for duplicate alias's. 26* Modified May 1976 by T. Casey to update project cutoff data. 27* Modified May 1978 by T. Casey to update pdir_quota. 28* Modified June 1978 by T. Casey to add make_sat_hash entry point, implementing hash table for SAT. 29* Modified November 1978 by T. Casey for MR7.0 absentee control parameters. 30* Modified July, 1979 by J. N. R. Barnecut to implement multiple rate structures. (UNCA) 31* Modified June, 1981 by E. N. Kittlitz for UNCA rate structures 32* Modified November 1981, E. N. Kittlitz. user_table_entry conversion. 33* Modified January 1982, BIM for author changes (lock and install time) 34* Modified February 1982, E. N. Kittlitz. xxx.install.acs change. 35* Modified May 1982, E. N. Kittlitz. to only check supplied sat live projects for duplicate names. 36* Modified 1984-09-11 BIM for auth ranges. 37* Modified: 38* 10/05/84 by R. Michael Tague: up_sysctl_$check_acs now returns a bit (36) 39* mode string instead of a fixed bin (5) and no longer takes a directory arg 40**/ 41 42 /****^ HISTORY COMMENTS: 43* 1) change(86-06-05,GJohnson), approve(86-06-05,MCR7387), 44* audit(86-06-10,Martinson), install(86-07-11,MR12.0-1092): 45* Correct error message documentation. 46* 2) change(86-09-05,Parisek): 47* Check for existence of renamed project in new SAT and if found flag 48* corresponding old SAT entry as renamed. This renamed state will become 49* useful during billing procedures so duplicate bills are not produced. 50* 3) change(87-04-26,GDixon), approve(87-07-13,MCR7741), 51* audit(87-07-16,Hartogs): 52* Upgraded for change to answer_table.incl.pl1 and user_table_entry.incl.pl1 53* END HISTORY COMMENTS */ 54 55 56 /* parameters */ 57 58 dcl segp ptr; 59 dcl wordcount fixed bin; 60 dcl instaldir char (*); 61 dcl instalname char (*); 62 dcl instalp ptr; 63 dcl P_ansp ptr; 64 dcl ip ptr; 65 dcl answer char (*); 66 dcl code fixed bin (35); 67 68 /* entries */ 69 70 dcl aim_check_$greater_or_equal entry (bit (72) aligned, bit (72) aligned) returns (bit (1) aligned); 71 dcl aim_check_$in_range entry (bit (72) aligned, (2) bit (72) aligned) returns (bit (1) aligned); 72 dcl asu_$bump_code entry (ptr, fixed bin (35), char (8), fixed bin (35), fixed bin); 73 dcl display_access_class_$range entry ((2) bit (72) aligned) returns (character (32) aligned); 74 dcl convert_status_code_ entry (fixed bin (35), char (8) aligned, char (100) aligned); 75 dcl display_access_class_ entry (bit (72) aligned) returns (character (32) aligned); 76 dcl get_group_id_ entry () returns (char (32)); 77 dcl get_process_id_ entry () returns (bit (36)); 78 dcl hash_$in entry (ptr, char (*), fixed bin, fixed bin (35)); 79 dcl hash_$make entry (ptr, fixed bin, fixed bin (35)); 80 dcl hash_$opt_size entry (fixed bin) returns (fixed bin); 81 dcl hcs_$chname_file entry (char (*), char (*), char (*), char (*), fixed bin (35)); 82 dcl hcs_$delentry_seg entry (ptr, fixed bin (35)); 83 dcl hcs_$initiate entry (char (*), char (*), char (*), fixed bin (1), fixed bin (2), ptr, fixed bin (35)); 84 dcl hcs_$make_seg entry (char (*), char (*), char (*), fixed bin (5), ptr, fixed bin (35)); 85 dcl hcs_$set_bc entry (char (*), char (*), fixed bin (24), fixed bin (35)); 86 dcl hcs_$set_safety_sw entry (char (*), char (*), bit (1) aligned, fixed bin (35)); /* SWS */ 87 dcl hcs_$truncate_seg entry (ptr, fixed bin, fixed bin (35)); 88 dcl ioa_$rsnnl entry () options (variable); 89 dcl sys_log_ entry options (variable); 90 dcl sys_log_$error_log entry options (variable); 91 dcl system_info_$max_rs_number entry (fixed bin); 92 dcl up_sat_$make_sat_hash entry (ptr, fixed bin, ptr, char (*), fixed bin (35)); 93 dcl up_sysctl_$check_acs entry (char (*), char (*), fixed bin, bit (36) aligned, fixed bin (35)); 94 95 /* external static */ 96 97 dcl as_error_table_$proj_auth_excludes fixed bin (35) static external; 98 dcl as_error_table_$proj_deleted fixed bin (35) static external; 99 dcl as_error_table_$proj_max fixed bin (35) static external; 100 dcl error_table_$noentry ext fixed bin (35); 101 102 /* automatic */ 103 104 dcl access_ceiling bit (72) aligned; 105 dcl auth_string char (32) aligned; 106 dcl csc_long char (100) aligned; 107 dcl csc_short char (8) aligned; 108 dcl debg char (8); 109 dcl do_attributes bit (1) aligned; 110 dcl do_authorization bit (1) aligned; 111 dcl htp ptr init (null); 112 dcl i fixed bin; 113 dcl j fixed bin; 114 dcl jj fixed bin; 115 dcl k fixed bin; 116 dcl max_rs_number fixed bin; 117 dcl maxprim fixed bin; 118 dcl mode bit (36) aligned; 119 dcl movelen fixed bin (24); 120 dcl new_project bit (1) aligned; 121 dcl newhtp ptr init (null); 122 dcl offset bit (18) aligned; 123 dcl old_auth_string char (32) aligned; 124 dcl oldhtp ptr init (null); 125 dcl p ptr; 126 dcl procid bit (36) aligned; 127 dcl q ptr; 128 dcl satep ptr; 129 dcl satp ptr; 130 dcl sp ptr; 131 dcl syj fixed bin; 132 dcl tp ptr; 133 dcl xp ptr; 134 135 dcl 1 dir_acl (7) aligned, 136 2 userid char (32), 137 2 mode bit (36), 138 2 rcode fixed bin (35); 139 140 dcl 1 sys_dir_acl (7) aligned, 141 2 userid char (32), 142 2 mode bit (36), 143 2 rcode fixed bin (35); 144 145 /* internal static */ 146 147 dcl acs_name char (32) int static options (constant) init ("sat.install.acs"); 148 dcl system_low bit (72) aligned internal static initial (""b); 149 dcl LEGAL char (95) int static init /* Printables except PAD, semicolon, but with BS */ 150 (" !""#$%&'()*+,-./0123456789:<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~") options (constant); 151 152 /* based */ 153 154 dcl 1 movetable based aligned, 155 2 moveary (movelen) fixed bin (35); 156 157 /* builtin */ 158 159 dcl (addr, clock, fixed, index, null, rel, string, substr, unspec, verify) 160 builtin; 161 162 ansp = P_ansp; 163 164 call system_info_$max_rs_number (max_rs_number); 165 procid = get_process_id_ (); 166 if procid ^= anstbl.as_procid then return; /* privileged entrypoint */ 167 168 do_authorization = segp -> sat.author.update_authorization; 169 do_attributes = segp -> sat.author.update_attributes; 170 171 access_ceiling = installation_parms.access_authorization_ceiling; 172 173 new_project = "0"b; 174 instalp = null; /* pre-set returned pointer */ 175 instaldir = anstbl.sysdir; 176 instalname = "sat"; 177 if wordcount < 64 then do; /* make sure segment contains something */ 178 answer = "wordcount < 64"; 179 code = 10; 180 return; 181 end; 182 if segp -> sat.version ^= SAT_version then do; /* Check right overlay dcl */ 183 answer = "incorrect table version"; 184 code = 9; 185 return; 186 end; 187 if segp -> sat.current_size > segp -> sat.max_size then do; 188 answer = "current_size > max_size"; 189 code = 11; 190 return; 191 end; 192 if segp -> sat.n_projects > segp -> sat.current_size then do; 193 answer = "n_projects > current_size"; 194 code = 12; 195 return; 196 end; 197 offset = rel (addr (segp -> sat.project (segp -> sat.current_size + 1))); 198 if fixed (offset, 18) - 1 > wordcount then do; 199 answer = "size inconsistent with wordcount"; 200 code = 13; 201 return; 202 end; 203 call up_sysctl_$check_acs (acs_name, (segp -> sat.author.proc_group_id), -1, mode, code); 204 if (code ^= 0) | ((mode & RW_ACCESS) ^= RW_ACCESS) then do; 205 answer = "access violation"; 206 code = 14; 207 return; 208 end; 209 210 call hcs_$initiate (instaldir, instalname, "", 0, 0, sp, code); 211 if sp = null then do; 212 answer = "cannot initiate old SAT"; 213 code = 15; 214 return; 215 end; 216 217 if segp -> sat.uwt_size > 24 then do; 218 answer = "uwt_size > 24"; 219 code = 41; 220 return; 221 end; 222 do i = 1 to segp -> sat.uwt_size; 223 if verify (segp -> sat.uwt (i).initproc, LEGAL) ^= 0 then do; 224 answer = "uwt.initproc not ASCII"; 225 code = 16; 226 return; 227 end; 228 j = segp -> sat.uwt (i).units; 229 if ((j < 0) | (j > 100)) then do; 230 answer = "uwt.units illegal value"; 231 code = 41; 232 return; 233 end; 234 end; 235 if verify (segp -> sat.system_admin (1), LEGAL) ^= 0 then go to badsa; 236 if verify (segp -> sat.system_admin (2), LEGAL) ^= 0 then do; 237 badsa: answer = "system administrator not ASCII"; 238 code = 16; 239 return; 240 end; 241 maxprim = 0; 242 243 do i = 1 to segp -> sat.current_size; 244 245 p = addr (segp -> sat.project (i)); 246 if p -> project.state < 0 then go to bast; /* Check entry state - filters junk */ 247 if p -> project.state > 3 then do; /* Installing state 0 or 2 is ignored */ 248 bast: answer = "illegal entry state value"; 249 code = 17; 250 return; 251 end; 252 if verify (p -> project.project_id, LEGAL) ^= 0 then do; 253 answer = "project_id not ASCII"; 254 code = 16; 255 return; 256 end; 257 if p -> project.state = 1 then /* only check if it's live */ 258 do j = 1 to i - 1; 259 q = addr (segp -> sat.project (j)); 260 if q -> project.state = 1 then do; /* only check if it's live */ 261 if q -> project.project_id = p -> project.project_id then do; 262 answer = "duplicate project " || p -> project.project_id; 263 code = 42; 264 return; 265 end; 266 if q -> project.alias ^= "" /* ignore blank aliases */ 267 then if q -> project.alias = p -> project.alias then do; 268 answer = "duplicate alias " || p -> project.alias; 269 code = 42; 270 return; 271 end; 272 end; 273 end; 274 if p -> project.state > 0 then do; 275 if verify (p -> project.project_dir, LEGAL) ^= 0 then do; 276 answer = "project_dir not ASCII " || p -> project.project_id; 277 code = 16; 278 return; 279 end; 280 if ^aim_check_$greater_or_equal (access_ceiling, p -> project.project_authorization (2)) 281 then do; 282 answer = "authorization > access_ceiling"; 283 code = 18; 284 end; 285 if p -> project.rs_number ^= 0 then do; 286 if p -> project.rs_number > max_rs_number then do; 287 answer = "bad rate_structure number " || p -> project.project_id; 288 code = 44; 289 return; 290 end; 291 end; 292 end; 293 p -> project.at.nopreempt = "1"b; 294 maxprim = maxprim + p -> project.max_users; 295 end; 296 297 /* Individual items in proposed SAT look ok. Now build new SAT by merging old and new. 298* Since user pointers to SAT entries are kept, must not change order. */ 299 300 call hcs_$make_seg (instaldir, "", "", 1011b, tp, code); 301 if tp = null then do; 302 call sys_log_$error_log (2, code, "up_sat_", "cannot make temp"); 303 return; 304 end; 305 movelen = SAT_header_lth + sp -> sat.current_size * SAT_entry_lth; 306 tp -> movetable = sp -> movetable; /* Shlup */ 307 308 /* copy header of new sat over old sat header. */ 309 310 tp -> sat.author.lock = ""b; 311 tp -> sat.author.last_install_time = clock (); 312 tp -> sat.author.proc_group_id = segp -> sat.author.proc_group_id; 313 tp -> sat.author.table = segp -> sat.author.table; 314 tp -> sat.author.w_dir = segp -> sat.author.w_dir; 315 316 if do_attributes then do; 317 tp -> sat.max_size = segp -> sat.max_size; 318 tp -> sat.max_units = segp -> sat.max_units; 319 tp -> sat.uwt_size = segp -> sat.uwt_size; 320 321 do j = 1 to tp -> sat.uwt_size; 322 tp -> sat.uwt.initproc (j) = segp -> sat.uwt.initproc (j); 323 tp -> sat.uwt.units (j) = segp -> sat.uwt.units (j); 324 end; 325 tp -> sat.system_admin (1) = segp -> sat.system_admin (1); 326 tp -> sat.system_admin (2) = segp -> sat.system_admin (2); 327 end; 328 tp -> sat.n_projects = 0; /* will recompute (note use old val of freep) */ 329 tp -> sat.version = SAT_version; 330 331 do i = 1 to tp -> sat.current_size; /* search old SAT for projects not in new */ 332 p = addr (tp -> sat.project (i)); 333 if p -> project.state = 0 then go to x1; /* ignore free entries in old sat */ 334 p -> project.state = 2; 335 do j = i to segp -> sat.current_size, 1 to i - 1; 336 q = addr (segp -> sat.project (j)); 337 if q -> project.state = 1 | q -> project.state = 3 then 338 /* Ignore any non-state-1&3 entries in new copy */ 339 if p -> project.project_id = q -> project.project_id then do; 340 if q -> project.state = 3 then do; 341 p -> project.state = 3; /* Flag renamed project in old SAT */ 342 go to rnp; 343 end; 344 p -> project.state = 1; /* Old project, still in new version */ 345 tp -> sat.n_projects = tp -> sat.n_projects + 1; 346 q -> project.state = -1; /* so not check again */ 347 if do_authorization then 348 if unspec (p -> project.project_authorization) ^= 349 unspec (q -> project.project_authorization) then do; 350 auth_string = display_access_class_$range (q -> project.project_authorization); 351 old_auth_string = display_access_class_$range (p -> project.project_authorization); 352 call sys_log_ (0, "up_sat_: changing authorization of ^a project from ^a to ^a", 353 p -> project.project_id, old_auth_string, auth_string); 354 end; 355 356 call copy; 357 358 /* have now merged new values into entry. if project.max_users changed, proj may be over max users */ 359 360 k = p -> project.n_users - p -> project.max_users; 361 do jj = 1 to anstbl.current_size; 362 utep = addr (anstbl.entry (jj)); 363 if ute.active >= NOW_LOGGED_IN then 364 if ute.project = p -> project.project_id then do; 365 if ute.at.nobump = "0"b then do; 366 if k <= 0 then go to sak; 367 k = k - 1; 368 if ute.preempted ^= 0 then go to sak; 369 call sys_log_ (1, "up_sat_: bumping ^a.^a, over max users on project", 370 ute.person, ute.project); 371 call asu_$bump_code (utep, as_error_table_$proj_max, debg, code, 372 (installation_parms.warning_time)); 373 sak: end; 374 if ^aim_check_$in_range (ute.process_authorization_range (1), p -> project.project_authorization) | 375 376 ^aim_check_$in_range (ute.process_authorization_range (2), p -> project.project_authorization) then do; 377 call sys_log_ (1, 378 "up_sat_: bumping ^a.^a, project authorization ^a now excludes user authorization ^a.", 379 ute.person, ute.project, display_access_class_$range (p -> project.project_authorization), display_access_class_ (ute.process_authorization)); 380 call asu_$bump_code (utep, as_error_table_$proj_auth_excludes, 381 debg, code, (0)); 382 end; 383 end; 384 end; 385 go to x1; 386 end; 387 end; 388 389 /* Project in old sat does not exist in new sat. May bump all users */ 390 391 rnp: if ^do_attributes then go to cant_add_or_delete_proj; 392 393 if p -> project.project_id = "SysAdmin" then go to eek; 394 if p -> project.project_id = "SysDaemon" then do; 395 eek: answer = "Attempt to delete project " || p -> project.project_id; 396 code = 14; 397 return; 398 end; 399 do jj = 1 to anstbl.current_size; /* scan answer table for users on deleted proj */ 400 utep = addr (anstbl.entry (jj)); 401 if ute.active >= NOW_LOGGED_IN then 402 if ute.project = p -> project.project_id then do; 403 call sys_log_ (1, "up_sat_: bumping ^a.^a, project deleted.", 404 ute.person, ute.project); 405 call asu_$bump_code (utep, as_error_table_$proj_deleted, debg, code, 406 (installation_parms.warning_time)); 407 end; 408 end; 409 x1: end; 410 411 do i = 1 to 7; 412 sys_dir_acl (i).mode, dir_acl (i).mode = "111"b; /* SMA */ 413 end; 414 do syj = 1 to 2; /* set up ACL for system admin. */ 415 if tp -> sat.system_admin (syj) = " " then go to set_acl1; 416 k = index (tp -> sat.system_admin (syj), " "); 417 sys_dir_acl (syj).userid = (substr (tp -> sat.system_admin (syj), 1, k - 1) || ".*"); 418 end; 419 syj = 3; 420 set_acl1: sys_dir_acl (syj).userid = get_group_id_ (); 421 422 /* Now scan new sat for any entries which were not matched in old sat. These are new projects */ 423 424 do i = 1 to segp -> sat.current_size; 425 q = addr (segp -> sat.project (i)); 426 if q -> project.state = 1 then do; /* this is a new project */ 427 if ^do_attributes then go to cant_add_or_delete_proj; 428 429 tp -> sat.n_projects = tp -> sat.n_projects + 1; 430 badx: j = tp -> sat.freep; /* allocate new SAT entry */ 431 if j = 0 then j, tp -> sat.current_size = tp -> sat.current_size + 1; 432 else do; 433 xp = addr (tp -> sat.project (j)); 434 if xp -> project.state ^= 0 then do; 435 call sys_log_ (2, "up_sat_: project ^a on free list state nonzero", 436 xp -> project.project_id); 437 tp -> sat.freep = 0; 438 go to badx; 439 end; 440 tp -> sat.freep = xp -> project.chain; 441 end; 442 p = addr (tp -> sat.project (j)); 443 p -> project.state = 1; /* new proj */ 444 p -> project.project_id = q -> project.project_id; 445 call copy; 446 if ^do_authorization then do; 447 p -> project.project_authorization = system_low; 448 p -> project.audit = ""b; 449 end; 450 if (p -> project.project_authorization (1) | p -> project_authorization (2)) ^= system_low then do; 451 auth_string = display_access_class_$range (p -> project.project_authorization); 452 call sys_log_ (0, "up_sat_: adding ^a project with authorization ^a", 453 p -> project.project_id, auth_string); 454 end; 455 p -> project.pdt_ptr = null; 456 p -> project.n_users = 0; 457 end; 458 end; 459 instalp = sp; 460 call hcs_$delentry_seg (segp, code); 461 segp = tp; 462 463 464 /* Make a new hash table for the SAT. The old one is mostly still valid, since 465* no project entries have been moved. The new hash table will only 466* reflect added and deleted projects, and changed aliases. */ 467 468 call hcs_$make_seg (instaldir, "sat.ht.temp", "", 1011b, newhtp, code); 469 if newhtp = null then do; 470 answer = "unable to get segment for new SAT hash table"; 471 call sys_log_$error_log (2, code, "up_sat_", "sat.ht.temp"); 472 code = 33; /* any old nonzero code will do */ 473 return; /* We have not replaced the SAT yet. We won't */ 474 end; 475 call up_sat_$make_sat_hash (segp, segp -> sat.n_projects, newhtp, answer, code); 476 if code ^= 0 then do; 477 call hcs_$delentry_seg (newhtp, (0)); 478 return; 479 end; 480 481 /* Now replace the SAT */ 482 483 wordcount = SAT_header_lth + tp -> sat.current_size * SAT_entry_lth; 484 movelen = wordcount; 485 sp -> movetable = segp -> movetable; /* Copy new SAT over old one fast. */ 486 call hcs_$set_bc (instaldir, instalname, 36 * wordcount, code); 487 call hcs_$set_safety_sw (instaldir, instalname, "1"b, code); 488 489 /* Now replace the hash table. Recall that the old one is mostly good, so if anything goes wrong, it is not a disaster */ 490 491 call hcs_$initiate (instaldir, "sat.ht", "", 0, 1, oldhtp, code); 492 if oldhtp = null then do; /* can't initiate it - either not there or something wrong */ 493 if code ^= error_table_$noentry then goto unab; 494 call hcs_$chname_file (instaldir, "sat.ht.temp", "sat.ht.temp", "sat.ht", code); 495 if code ^= 0 then goto unab; 496 end; 497 else do; /* can initiate sat.ht */ 498 call hcs_$truncate_seg (oldhtp, (0), code); 499 if code ^= 0 then do; 500 unab: call sys_log_$error_log (2, code, "up_sat_", "sat.ht"); 501 answer = "unable to replace old SAT hash table"; 502 code = 33; /* any nonzero code is ok */ 503 return; 504 end; 505 506 movelen = newhtp -> htable.loht; 507 oldhtp -> movetable = newhtp -> movetable; /* copy new hash table over old */ 508 call hcs_$delentry_seg (newhtp, (0)); /* delete temp new hash table */ 509 end; 510 511 call hcs_$set_bc (instaldir, "sat.ht", 36 * movelen, (0)); 512 call hcs_$set_safety_sw (instaldir, "sat.ht", "1"b, (0)); 513 /* do not change the acl of sat.ht */ 514 code = 0; 515 516 return; 517 518 no_dir: answer = "cannot create project directory"; 519 code = 43; 520 return; 521 522 cant_add_or_delete_proj: 523 answer = "not allowed to add/delete project"; 524 code = 44; 525 return; 526 527 528 /* internal procedure to copy sat entry pointed to by q into that pointed to by p */ 529 530 copy: proc; 531 532 if do_authorization then do; 533 p -> project.project_authorization = q -> project.project_authorization; 534 p -> project.audit = q -> project.audit; 535 end; 536 537 if ^do_attributes then return; 538 539 p -> project.project_dir = q -> project.project_dir; 540 p -> project.max_users = q -> project.max_users; 541 string (p -> project.at) = string (q -> project.at); 542 p -> project.admin (1).userid = q -> project.admin (1).userid; 543 p -> project.admin (2).userid = q -> project.admin (2).userid; 544 p -> project.admin (3).userid = q -> project.admin (3).userid; 545 p -> project.admin (4).userid = q -> project.admin (4).userid; 546 p -> project.cutoff = q -> project.cutoff; 547 p -> project.min_ring = q -> project.min_ring; 548 p -> project.max_ring = q -> project.max_ring; 549 p -> project.pdir_quota = q -> project.pdir_quota; 550 p -> project.alias = q -> project.alias; 551 p -> project.group = q -> project.group; 552 p -> project.groups (1) = q -> project.groups (1); 553 p -> project.groups (2) = q -> project.groups (2); 554 p -> project.days_to_cutoff = q -> project.days_to_cutoff; 555 p -> project.pct_balance = q -> project.pct_balance; 556 p -> project.dollars_to_cutoff = q -> project.dollars_to_cutoff; 557 p -> project.grace_max = q -> project.grace_max; 558 p -> project.max_foreground = q -> project.max_foreground; 559 p -> project.max_background = q -> project.max_background; 560 p -> project.abs_foreground_cpu_limit = q -> project.abs_foreground_cpu_limit; 561 562 563 p -> project.rs_number = q -> project.rs_number; 564 565 end copy; 566 567 568 make_sat_hash: entry (segp, n_entries, dhtp, an, co); 569 570 /* This entry point builds a hash table for the SAT. 571* It is called from above, and also by lg_ctl_ if the hash table is missing at startup 572* time or appears to be garbaged when someone is trying to log in. 573* Since it is an entry point, and not an internal procedure, it gets a new 574* stack frame when called from above, and the only variables that have good values in them 575* are the ones in the argument list. 576**/ 577 578 /* segp is the first argument in the main entry point's arg list, and is declared above. 579* It is a pointer to the SAT for which we are building the hash table. */ 580 581 dcl dhtp ptr; /* ptr to seg in which ht to be built */ 582 dcl n_entries fixed bin; /* initial number of entries */ 583 dcl an char (*); /* if error, this is msg explaining what happened */ 584 dcl co fixed bin (35); /* error code */ 585 586 call hash_$make (dhtp, hash_$opt_size (n_entries), co); 587 if co ^= 0 then do; 588 an = "too many buckets in hash table"; 589 return; 590 end; 591 592 satp = segp; /* avoid the need for lots of segp ->'s */ 593 do i = 1 to sat.current_size; /* look at all entries */ 594 satep = addr (sat.project (i)); /* avoid more ->'s */ 595 if project.state = 1 then do; /* only put real projects in the hash table */ 596 call hash_$in (dhtp, project.project_id, i, co); 597 if co ^= 0 then do; 598 call convert_status_code_ (co, csc_short, csc_long); 599 call ioa_$rsnnl ("Hash table error for project ^a. ^a", an, (0), project.project_id, csc_long); 600 return; 601 end; 602 if project.alias ^= "" then do; /* put aliases in hash table, too */ 603 call hash_$in (dhtp, project.alias, i, co); 604 if co ^= 0 then do; 605 call convert_status_code_ (co, csc_short, csc_long); 606 call ioa_$rsnnl ("Hash table error for alias ^a. ^a", an, (0), project.project_id, csc_long); 607 return; 608 end; 609 end; 610 end; 611 end; 612 613 co = 0; 614 return; 615 616 /* BEGIN INCLUDE FILE ... access_mode_values.incl.pl1 1 2* 1 3* Values for the "access mode" argument so often used in hardcore 1 4* James R. Davis 26 Jan 81 MCR 4844 1 5* Added constants for SM access 4/28/82 Jay Pattin 1 6* Added text strings 03/19/85 Chris Jones 1 7**/ 1 8 1 9 1 10 /* format: style4,delnl,insnl,indattr,ifthen,dclind10 */ 1 11 dcl ( 1 12 N_ACCESS init ("000"b), 1 13 R_ACCESS init ("100"b), 1 14 E_ACCESS init ("010"b), 1 15 W_ACCESS init ("001"b), 1 16 RE_ACCESS init ("110"b), 1 17 REW_ACCESS init ("111"b), 1 18 RW_ACCESS init ("101"b), 1 19 S_ACCESS init ("100"b), 1 20 M_ACCESS init ("010"b), 1 21 A_ACCESS init ("001"b), 1 22 SA_ACCESS init ("101"b), 1 23 SM_ACCESS init ("110"b), 1 24 SMA_ACCESS init ("111"b) 1 25 ) bit (3) internal static options (constant); 1 26 1 27 /* The following arrays are meant to be accessed by doing either 1) bin (bit_value) or 1 28* 2) divide (bin_value, 2) to come up with an index into the array. */ 1 29 1 30 dcl SEG_ACCESS_MODE_NAMES (0:7) init ("null", "W", "E", "EW", "R", "RW", "RE", "REW") char (4) internal 1 31 static options (constant); 1 32 1 33 dcl DIR_ACCESS_MODE_NAMES (0:7) init ("null", "A", "M", "MA", "S", "SA", "SM", "SMA") char (4) internal 1 34 static options (constant); 1 35 1 36 dcl ( 1 37 N_ACCESS_BIN init (00000b), 1 38 R_ACCESS_BIN init (01000b), 1 39 E_ACCESS_BIN init (00100b), 1 40 W_ACCESS_BIN init (00010b), 1 41 RW_ACCESS_BIN init (01010b), 1 42 RE_ACCESS_BIN init (01100b), 1 43 REW_ACCESS_BIN init (01110b), 1 44 S_ACCESS_BIN init (01000b), 1 45 M_ACCESS_BIN init (00010b), 1 46 A_ACCESS_BIN init (00001b), 1 47 SA_ACCESS_BIN init (01001b), 1 48 SM_ACCESS_BIN init (01010b), 1 49 SMA_ACCESS_BIN init (01011b) 1 50 ) fixed bin (5) internal static options (constant); 1 51 1 52 /* END INCLUDE FILE ... access_mode_values.incl.pl1 */ 616 617 /* 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 */ 617 618 /* BEGIN INCLUDE FILE ... dialup_values.incl.pl1 */ 3 2 3 3 /* format: style4 */ 3 4 3 5 /* Values for "cdte.tra_vec" used by dialup_ and others. */ 3 6 3 7 /* Modified by T. Casey April 1976 to add WAIT_NEW_PASSWORD 3 8* - in 1977 and 1978 to add WAIT_(GREETING_MSG DELETE_CHANNEL) 3 9* - and in October 1979 to add WAIT_CONNECT_REQUEST 3 10* Modified by Robert Coren in May 1981 to add TANDD_ATTACH values and 3 11* WAIT_DISCARD_WAKEUP 3 12* Modified by T. Casey, July 1981, for MR9.0, to add WAIT_BEFORE_HANGUP. 3 13* Modified by E. N. Kittlitz, July 1982, to add TTY_MASKED. 3 14**/ 3 15 3 16 /****^ HISTORY COMMENTS: 3 17* 1) change(87-04-20,GDixon), approve(87-07-13,MCR7741), 3 18* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 3 19* Add constant arrays naming cdte.state, cdte.tra_vec and ute.active values. 3 20* 2) change(87-05-11,GDixon), approve(87-07-13,MCR7741), 3 21* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 3 22* Add named constants for instance tags. 3 23* END HISTORY COMMENTS */ 3 24 3 25 dcl (WAIT_DIALUP init (1), /* Channel waiting for dialup. */ 3 26 WAIT_ANSWERBACK initial (2), /* WRU sent, waiting for reply */ 3 27 WAIT_LOGIN_LINE init (3), /* Greeting typed, wait for login command. */ 3 28 WAIT_LOGIN_ARGS init (4), /* Want rest of login line */ 3 29 WAIT_OLD_PASSWORD init (5), /* "-cpw" was specified. Wait for old password. */ 3 30 WAIT_PASSWORD init (6), /* Waiting for password. (If "-cpw", repeat of new one.) */ 3 31 WAIT_NEW_PASSWORD init (7), /* "-cpw" was specified. Wait for new password */ 3 32 WAIT_LOGOUT_SIG init (8), /* Channel is hooked up. Wait for logout. */ 3 33 WAIT_LOGOUT init (9), /* A logout has been requested. Wait for process to die */ 3 34 WAIT_LOGOUT_HOLD init (10), /* As above but don't hang up when it dies. */ 3 35 WAIT_DETACH init (11), /* As above but ignore channel afterwards. */ 3 36 WAIT_NEW_PROC init (12), /* As above but make new process and continue. */ 3 37 WAIT_REMOVE init (13), /* As above but completely expunge channel. */ 3 38 WAIT_FIN_PRIV_ATTACH init (14), /* When channel dials up, connect it to user */ 3 39 WAIT_DIAL_RELEASE init (15), /* Waiting for master process to release. */ 3 40 WAIT_DIAL_OUT init (16), /* Waiting for auto call to complete */ 3 41 WAIT_HANGUP init (17), /* Wait for the hangup event to occur for a channel */ 3 42 WAIT_SLAVE_REQUEST init (18), /* Ignore line until someone asks */ 3 43 WAIT_GREETING_MSG init (19), /* Print greeting message and wait for login line */ 3 44 WAIT_DELETE_CHANNEL init (20), /* Channel deleted - mark cdte after process is destroyed */ 3 45 WAIT_CONNECT_REQUEST init (21), /* logged in; awaiting request re disconnected processes */ 3 46 WAIT_TANDD_HANGUP init (22), /* when channel hangs up, proceed with t & d attachment */ 3 47 WAIT_FIN_TANDD_ATTACH init (23), /* when channel dials up, finish t & d attachment */ 3 48 WAIT_DISCARD_WAKEUPS init (24), /* disregard all wakeups on channel */ 3 49 WAIT_BEFORE_HANGUP init (25), /* allow output to print before hanging up */ 3 50 WAIT_DESTROY_REQUEST init (26), /* waiting to continue with destroy request after process has destroyed itself */ 3 51 WAIT_NEW_PROC_REQUEST init (27) /* waiting to continue with new_proc request after process has destroyed itself */ 3 52 ) fixed bin internal static options (constant); 3 53 3 54 dcl TRA_VEC_VALUES (0:13) char (32) aligned int static options (constant) init 3 55 /* names of ute.destroy_flag values */ 3 56 ("", "wait dialup", "wait answerback", "wait login line", /* 0-3 */ 3 57 "wait login args", "wait old password", "wait password", /* 4-6 */ 3 58 "wait new password", "wait logout signal", "wait logout", /* 7-9 */ 3 59 "wait logout hold", "wait detach", "wait new proc", /* 10-12 */ 3 60 "wait remove"); /* -13 */ 3 61 3 62 /* Values for "cdte.state", typewriter state. */ 3 63 3 64 dcl (TTY_MASKED init (-1), /* Terminal channel is there, but masked by MCS */ 3 65 TTY_HUNG init (1), /* Terminal channel is there, but dead. */ 3 66 TTY_KNOWN init (2), /* Channel being "listened" to, awaiting dialup. */ 3 67 TTY_DIALED init (5) /* Channel is dialed up. This is normal state. */ 3 68 ) fixed bin internal static options (constant); 3 69 3 70 dcl STATE_VALUES (-1:5) char (15) aligned int static options (constant) init 3 71 /* names of cdte.state values */ 3 72 ("masked", "dead", "hung up", "listening", "", "", "dialed up"); 3 73 3 74 /* Values for "cdte.in_use" and "ate.active" */ 3 75 3 76 dcl (NOW_FREE init (0), /* Entry is empty. */ 3 77 NOW_HUNG_UP init (1), /* Entry is usable but tty is hung up. */ 3 78 NOW_LISTENING init (2), /* Entry is waiting for phone call. */ 3 79 NOW_DIALED init (3), /* Entry is connected but login not complete. */ 3 80 NOW_LOGGED_IN init (4), /* Entry is logged in but no process. */ 3 81 NOW_HAS_PROCESS init (5), /* Entry has a valid process. */ 3 82 NOW_DIALING init (6), /* Entry (auto_call line) is dialing */ 3 83 NOW_DIALED_OUT init (7) /* Entry (auto_call line) is in use */ 3 84 ) fixed bin internal static options (constant); 3 85 3 86 dcl ACTIVE_VALUES (0:5) char (18) aligned int static options (constant) init 3 87 /* names of ute.active values */ 3 88 ("free", "hung-up", "listening", "dialed", "logged in, no proc", "logged in & proc"); 3 89 3 90 3 91 /**** Values for ute.tag */ 3 92 3 93 dcl (TAG_INTERACTIVE init("a"), 3 94 TAG_UFT init("f"), 3 95 TAG_ABSENTEE init("m"), 3 96 TAG_PROXY init("p"), 3 97 TAG_DAEMON init("z") 3 98 ) char(1) int static options(constant); 3 99 3 100 3 101 /**** Following are constants used to indicate to the process termination 3 102* handler the reason for the process termination. They are used by 3 103* uc_proc_term_handler_, as well as uc_ls_new_proc_request_ and 3 104* uc_ls_destroy_request_. */ 3 105 3 106 dcl ( 3 107 PT_FPE initial (1), 3 108 PT_LOGOUT initial (4), 3 109 PT_NEW_PROC_AUTH initial (13), 3 110 PT_HANGUP initial (20), 3 111 PT_SHUTDOWN initial (21), 3 112 PT_BUMP initial (22), 3 113 PT_ALARM initial (23), 3 114 PT_DETACH initial (24), 3 115 PT_UNBUMP initial (25), 3 116 PT_OPERATOR_TERMINATE initial (27), 3 117 PT_DESTROY_REQUEST initial (30), 3 118 PT_NEW_PROC_REQUEST initial (31) 3 119 ) fixed bin (17) internal static options (constant); 3 120 3 121 /**** Values for ute.preempted: 3 122* -1 user unbumped after term signal sent 3 123* 0 user unbumped; ignore alarm___ 3 124* 1 value internally used in load_ctl_ 3 125* 2 user bumped; when alarm___ comes in, send term signal 3 126* 3 term signal sent; destroy process if termsgnl, alarm___, or cpulimit 3 127* signals come in 3 128* 4 user bumped; process sick, so destroy without sending term signal 3 129* 5 trm_ signal sent, termsgnl received; (if still 3, we never got the 3 130* termsgnl). */ 3 131 3 132 dcl ( 3 133 PREEMPT_UNBUMP initial (-1), 3 134 PREEMPT_UNBUMP_IGNORE_ALARM initial (0), 3 135 PREEMPT_LOAD_CTL initial (1), 3 136 PREEMPT_BUMPED initial (2), 3 137 PREEMPT_TERM_SENT initial (3), 3 138 PREEMPT_BUMPED_NO_TERM initial (4), 3 139 PREEMPT_TERMSGNL_RECEIVED initial (5) 3 140 ) fixed bin (17) internal static options(constant); 3 141 3 142 dcl PREEMPT_VALUES (-1:5) char(28) varying int static options(constant) init( 3 143 "unbumped", 3 144 "not bumped, ignore alarm___", 3 145 "load_ctl_", 3 146 "bumped", 3 147 "bumped, trm_ sent", 3 148 "bumped without trm_", 3 149 "bumped, termsgnl received"); 3 150 3 151 /* END INCLUDE FILE ... dialup_values.incl.pl1 */ 618 619 /* BEGIN INCLUDE FILE ... hashst.incl.pl1 */ 4 2 /* format: style4 */ 4 3 4 4 /* General Utility hash table */ 4 5 4 6 dcl 1 htable based (htp) aligned, /* hash table entries of level 2 are statistical info */ 4 7 2 nb fixed bin, /* number of buckets in hash table */ 4 8 2 ni fixed bin, /* number of entries used */ 4 9 2 np fixed bin, /* number of times hash_ called referincing this table */ 4 10 2 tnt fixed bin, /* total # of tries to find, enter, or delete an entry */ 4 11 2 id char (4), /* ht01 version 1 of hash_ */ 4 12 2 gnt fixed bin, /* greatest number of tries for search etc. */ 4 13 2 loht fixed bin (18) unsigned, /* length of hash table in words */ 4 14 2 pad bit (36) aligned, /* padding */ 4 15 2 buckets (1:hash_table_size_ refer (htable.nb)), /* 26111=((1024*255)/10 words per entry)-1 (8-word header) */ 4 16 3 name char (32) unaligned, /* identifier of entry */ 4 17 3 value bit (36) aligned, /* value corresponding to name */ 4 18 3 flags aligned, 4 19 4 ds bit (1) unal, /* deleted switch="1"b if deleted */ 4 20 4 empty bit (1) unal, 4 21 4 pad bit (34) unal, /* empty switch="1"b if empty */ 4 22 2 end_of_table bit (0) aligned; /* to get address */ 4 23 4 24 declare MAX_HT_BUCKETS_IN_SEG fixed bin init (26111) int static options (constant); 4 25 declare hash_table_size_ fixed bin; 4 26 4 27 /* END INCLUDE FILE ... hashst.incl.pl1 */ 619 620 /* BEGIN INCLUDE FILE ... installation_parms.incl.pl1 */ 5 2 5 3 /* Modified 740723 by PG to add short AIM access names */ 5 4 /* Modified Fall 1977 by T. Casey to add fatal loop and trm_ signal parameters */ 5 5 /* Modified 04/03/78 by CDT to add rcp_init_flags structure */ 5 6 /* Modified May 1978 by T. Casey to add resource timer and resource price list parameters */ 5 7 /* Modified November 1978 by T. Casey for MR7.0, to add absentee control parameters */ 5 8 /* Modified 17 September 1980 by G. Palter to add default absentee queue */ 5 9 /* Modified April 1981 by E. N. Kittlitz for chn_wakeup_error_loop, chn_wakeup_error_count */ 5 10 /* Modified June 1981 by E. N. Kittlitz for nrates/rate_structures UNCA rate_structure support. 5 11* Version, expand foregound_cpu_default_limit and abs_cpu_max_limit to fixed bin (35) fields. 5 12* nrscp & resource array moved from offset 2064 (octal) to 2400 (octal). */ 5 13 /* Modified 1984-06-19 BIM to remove obsolete fields, and add 5 14* strict_trusted_path. */ 5 15 /* Modified 1984-10-24 BIM for default_pdir_quota. */ 5 16 /* Modified 1984-12-05 BIM for require_operator_login. */ 5 17 /* Modified 1985-03-01 by E. Swenson for password flags. */ 5 18 5 19 5 20 /****^ HISTORY COMMENTS: 5 21* 1) change(86-01-27,MSharpe), approve(87-05-25,MCR7690), 5 22* audit(87-03-29,GDixon), install(87-08-04,MR12.1-1056): 5 23* added vchn_requires_accept parameter. 5 24* 2) change(87-02-17,GDixon), approve(87-05-25,MCR7680), 5 25* audit(87-06-02,Parisek), install(87-08-04,MR12.1-1056): 5 26* Correct formatting problems. 5 27* END HISTORY COMMENTS */ 5 28 5 29 5 30 /* NOTE: rate_structure.incl.pl1 uses these declarations */ 5 31 5 32 5 33 dcl 1 installation_parms based (ip) aligned, /* describes installation parameters */ 5 34 2 part_1 like installation_parms_part_1 aligned, 5 35 2 resource (0 refer (installation_parms.nrscp)) like installation_parms_resource_array_part aligned; 5 36 5 37 dcl installation_parms_version_1 fixed bin init (1) static internal options (constant); 5 38 dcl installation_parms_version_2 fixed bin init (2) static internal options (constant); 5 39 5 40 dcl 1 installation_parms_part_1 based aligned, /* Used only by installation_parms and rate_structure */ 5 41 2 installation_id char (32), /* Name printed at dialup and in who */ 5 42 2 company char (64), /* company name */ 5 43 2 department char (64), /* department */ 5 44 2 companyds char (120), /* company, double spaced */ 5 45 2 departmentds char (120), /* dpeartment double spaced */ 5 46 2 shifttab (336) bit (3) unal, /* half-hrs from 0000 Mon, value is shift no */ 5 47 2 cpu_price (0: 7) float bin, /* price for cpu hour, by shift */ 5 48 2 log_base_price (0: 7) float bin, /* price for log hour, by shift */ 5 49 2 io_ops_price (0: 7) float bin, /* price per 1000 terminal io ops */ 5 50 2 core_price (0: 7) float bin, /* price for core page-hour, by shift */ 5 51 2 ndevices fixed bin, /* number of devices to charge */ 5 52 2 devtab (16), /* Maximum 16 */ 5 53 3 device_id char (8), /* Name of device */ 5 54 3 device_price (0: 7) float bin, /* Price by shift */ 5 55 2 inactive_time fixed bin, /* seconds of inactivity permitted */ 5 56 2 warning_time fixed bin, /* seconds from warning to logout */ 5 57 2 login_time fixed bin, /* seconds in which to complete login */ 5 58 2 acct_update fixed bin, /* seconds between acct update */ 5 59 2 login_tries fixed bin, /* number of login tries allowed */ 5 60 2 disk_price float bin, /* disk rate, in $/page-sec */ 5 61 2 registration_price float bin, /* fee per month per user */ 5 62 2 dolsign char (1), /* "dollar sign" */ 5 63 2 abs_cpu_price (4) float bin, /* price for absentee cpu by queue */ 5 64 2 abs_mem_price (4) float bin, /* Absentee memory charge */ 5 65 2 iod_rec_price (4) float bin, /* price for io daemon lines, per K, by queue */ 5 66 2 abs_timax (4) fixed bin (35), /* Absentee TIMAX parameter */ 5 67 2 abs_cpu_default_limit (4) fixed bin (35), /* default absentee cpu limit in seconds (changed from usec.) */ 5 68 2 syserr_log_copy_threshold fixed bin (9), /* Threshold (in PAGES) at which the 5 69* Initializer will copy the syserr_log */ 5 70 2 default_pdir_seg_quota fixed bin (17) unaligned, /* if system and project say 0 */ 5 71 2 default_pdir_dir_quota fixed bin (17) unaligned, /* Always used */ 5 72 2 fatal_error_loop_count fixed bin (17) unaligned, 5 73 2 fatal_error_loop_seconds fixed bin (17) unaligned, 5 74 2 term_real_time_seconds fixed bin (17) unaligned, 5 75 2 term_cpu_time_seconds fixed bin (17) unaligned, 5 76 2 rcp_init_flags like rcp_init_flags aligned, /* one word long */ 5 77 2 rsc_timer_seconds fixed bin (17) unaligned, /* time interval at which to check for resource availability */ 5 78 2 pad_old_fg_cpu_default_limit bit (18) unaligned, 5 79 2 foreground_queue_position fixed bin (17) unal, /* queue that foreground queue comes after */ 5 80 2 idle_time_constant_seconds fixed bin (17) unal, /* how far back to maintain moving average of load */ 5 81 2 sus_cpu_time_seconds fixed bin (17) unal, /* allow suspended process this much cpu time */ 5 82 2 sus_real_time_seconds fixed bin (17) unal, /* and this much real time, before bumping it */ 5 83 2 foreground_cpu_default_limit fixed bin (35), /* default cpu time limit (sec) for foreground absentee jobs */ 5 84 2 access_authorization_ceiling bit (72), /* "System high" access authorization. */ 5 85 2 level_names (0:7) char (32), /* Names for security levels. */ 5 86 2 category_names (18) char (32), /* Names for security categories. */ 5 87 2 short_level_names (0:7) char (8), /* Abbreviated level names. */ 5 88 2 short_category_names (18) char (8), /* Abbreviated category names. */ 5 89 2 ncon fixed bin, /* Number of config elements. */ 5 90 2 cona (51), /* each entry is 5 words long */ 5 91 3 cpu fixed bin (5) unal, /* Number of CPU's */ 5 92 3 shift fixed bin (5) unal, /* Shift number */ 5 93 3 x1 fixed bin (23) unal, 5 94 3 kmem fixed bin (17) unal, /* Memory size */ 5 95 3 kbulk fixed bin (17) unal, /* Bulk store size */ 5 96 3 x2 fixed bin (17) unal, 5 97 3 maxa fixed bin (11) unal, /* Max abs users */ 5 98 3 maxq fixed bin (5) unal, /* Max abs q */ 5 99 3 maxu_base fixed bin (17) unal, 5 100 3 response_high fixed bin (17) unal, 5 101 3 response_low fixed bin (17) unal, 5 102 3 x3 fixed bin (17) unal, 5 103 5 104 /* Absentee control parameters. New for MR7.0 */ 5 105 5 106 2 max_abs (0:7) fixed bin (17) unal, /* per-shift upper limit on abs_maxu */ 5 107 2 min_abs (0:7) fixed bin (17) unal, /* per-shift lower limit on abs_maxu */ 5 108 2 pct_abs (0:7) fixed bin (17) unal, /* abs_maxu is this pct (per-shift) of idle units */ 5 109 5 110 2 max_qres (0:7, 4) fixed bin (17) unal, /* per-shift-and-queue upper limit on reserved slots */ 5 111 2 min_qres (0:7, 4) fixed bin (17) unal, /* per-shift-and-queue lower limit on reserved slots */ 5 112 2 pct_qres (0:7, 4) fixed bin (17) unal, /* reserved slots are these pcts of abs_maxu */ 5 113 5 114 2 abs_cpu_max_limit (0:7, 4) fixed bin (35), /* per-shift-and-queue upper limit (sec) on jobs' cpu times */ 5 115 5 116 2 default_absentee_queue fixed binary (17) unaligned, /* default absentee queue for ear, etc. */ 5 117 5 118 2 chn_wakeup_error_loop_count fixed bin (17) unaligned, /* maximum number of channel wakeups in following interval */ 5 119 2 chn_wakeup_error_loop_seconds fixed bin (17) unaligned, /* works like fatal_error_loop_count/seconds */ 5 120 2 rate_structure_number fixed bin (17) unaligned, /* rate_structure number of this RS */ 5 121 2 version fixed bin (35), /* must be 2 */ 5 122 2 nrates fixed bin, /* number of rate structures */ 5 123 2 rate_structures (0:9) char (32), /* names of rate_structures */ 5 124 2 trusted_path_login bit (1) aligned, /* forbid logout -hold and new_proc -auth */ 5 125 2 require_operator_login bit (1) aligned, /* just what it says */ 5 126 2 operator_inactive_time fixed bin, /* seconds between commands --> not logged in. */ 5 127 2 validate_daemon_commands bit (1) aligned, /* force existence and adequate access to 5 128* mcacs segments for operators */ 5 129 2 password_min_length fixed bin, /* minimum length of passwords */ 5 130 2 password_gpw_length fixed bin, /* length of generated passwords */ 5 131 2 password_change_interval fixed bin, /* number of days until must change */ 5 132 2 password_expiration_interval fixed bin, /* number of days that a password may remain unused */ 5 133 2 vchn_requires_accept bit (1) aligned, /* "login personid -op -vchn foo" must be 5 134* "accepted" by operator if personid is not 5 135* signed on system console */ 5 136 2 end_pad (219) bit (36) aligned, /* leave plenty of pad before the variable length price list */ 5 137 2 nrscp fixed bin; /* length of resource price array; must have offset 2400 (octal), 5 138* or someone miscounted when using part of pad2 */ 5 139 5 140 5 141 /* Entries in the following array may be accessed via system_info_$resource_price. 5 142* This array should not be accessed directly, since its format will change in subsequent releases of Multics. */ 5 143 5 144 dcl 1 installation_parms_resource_array_part (0 refer (installation_parms.nrscp)) based, 5 145 2 name char (32), 5 146 2 price float bin; 5 147 6 1 /* BEGIN INCLUDE FILE ... rcp_init_flags.incl.pl1 */ 6 2 6 3 /* Created on 04/24/78 by Michael R. Jordan */ 6 4 /* Modified 04/10/79 by C. D. Tavares */ 6 5 6 6 dcl rifp ptr; 6 7 6 8 dcl 1 rcp_init_flags based (rifp), 6 9 2 unload_on_detach bit (1) unaligned, /* ON => tape volumes are unloaded after detaching */ 6 10 2 pad1 bit (2) unaligned, /* obsolete */ 6 11 2 resource_mgmt_enabled bit (1) unaligned, /* ON => resource management has been enabled */ 6 12 2 auto_registration bit (1) unaligned, /* ON => auto registration allowed */ 6 13 2 pad2 bit (2) unaligned, /* future expansion, possibly of authentication_level */ 6 14 2 authentication_level fixed bin (2) unaligned unsigned; /* see below for values */ 6 15 6 16 dcl (No_authentication initial (0), 6 17 Nominal_authentication initial (1), 6 18 Automatic_authentication initial (2), 6 19 Manual_authentication initial (3)) fixed bin internal static options (constant); 6 20 6 21 dcl authentication_level_names (0:3) char (12) internal static options (constant) initial 6 22 ("none", "nominal", "automatic", "manual"); 6 23 6 24 /* END INCLUDE FILE ... rcp_init_flags.incl.pl1 */ 5 148 5 149 5 150 /* END INCLUDE FILE ... installation_parms.incl.pl1 */ 620 621 /* BEGIN INCLUDE FILE ... sat.incl.pl1 */ 7 2 7 3 7 4 7 5 7 6 /****^ HISTORY COMMENTS: 7 7* 1) change(86-09-05,Parisek), approve(87-06-17,MCR7570), 7 8* audit(87-06-15,Hirneisen), install(87-08-06,MR12.1-1066): 7 9* Expand comment line of project.state to include the renamed state (state = 7 10* 3). 7 11* END HISTORY COMMENTS */ 7 12 7 13 7 14 7 15 /* Modified 740723 by PG to add AIM info */ 7 16 /* Modified 750604 by T. Casey to add priority scheduler parameters */ 7 17 /* Modified May 1976 by T. Casey to add project cutoff limits */ 7 18 /* Modified May 1978 by T. Casey to add pdir_quota */ 7 19 /* Modified November 1978 by T. Casey to add max_(fore back)ground and abs_foreground_cpu_limit */ 7 20 /* Modified July 1979 by J. N. R. Barnecut to support multiple rate structures. (UNCA) */ 7 21 /* Modified January 1982 by E. N. Kittlitz for user_attributes.incl.pl1 changes */ 7 22 /* Modified 1984-07-05 BIM range of authorizations, version 3 */ 7 23 7 24 dcl (SAT_version init (3), /* version 2 of this declaration */ 7 25 7 26 SAT_header_lth init (466), /* length in words of SAT header */ 7 27 SAT_entry_lth init (80), /* length in words of SAT entry */ 7 28 7 29 SAT_project_name_length init (9) /* proper length of project.project_id */ 7 30 ) fixed bin internal static options (constant); 7 31 7 32 dcl 1 sat based (satp) aligned, 7 33 8 1 /* BEGIN INCLUDE FILE author.incl.pl1 */ 8 2 8 3 /* the "author" items must always be the first ones in the table. The 8 4* module which moves the converted table to the System Control process 8 5* fills in these data items and assumes them to be at the head of the segment 8 6* regardless of the specific table's actual declaration. The variables 8 7* "lock" and "last_install_time" used to be "process_id" and "ev_channel" 8 8* respectively. For tables installed in multiple processes, these 8 9* are to be used to lock out multiple installations. */ 8 10 8 11 /* Lock should be used as a modification lock. Since, in general, 8 12* entries may not be moved in system tables, even by installations, 8 13* it is sufficient for only installers and programs that change threads 8 14* to set or respect the lock. Simply updating data in an entry 8 15* requires no such protection. 8 16* 8 17* Last_install_time is used by readers of system tables to detect 8 18* installations or other serious modifications. By checking it before 8 19* and after copying a block of data, they can be protected against 8 20* modifications. 8 21* 8 22* Modules that set the lock should save proc_group_id, and then 8 23* put their group id there for the time they hold the lock. 8 24* if they do not actually install the, they should restore the group id. 8 25**/ 8 26 8 27 2 author aligned, /* validation data about table's author */ 8 28 3 proc_group_id char (32), /* process-group-id (personid.projectid.tag) */ 8 29 3 lock bit (36), /* installation lock */ 8 30 3 update_attributes bit (1) unal, /* update/add/delete attributes */ 8 31 3 update_authorization bit (1) unal, /* update only authorizations */ 8 32 3 deferral_notified bit (1) unal, /* installer notified of deferral of installation */ 8 33 3 pad bit (33) unaligned, 8 34 3 last_install_time fixed bin (71), 8 35 3 table char (4), /* name of table, e.g., SAT MGT TTT RTDT PDT etc. */ 8 36 3 w_dir char (64), /* author's working directory */ 8 37 8 38 /* END INCLUDE FILE author.incl.pl1 */ 7 34 7 35 2 max_size fixed bin, /* max number of entries table can grow */ 7 36 2 current_size fixed bin, /* current size of table (in entries) */ 7 37 2 version fixed bin, /* version number of table (word 32) */ 7 38 2 freep fixed bin, /* free chain ptr. 0 if no free entries */ 7 39 2 n_projects fixed bin, /* number of entries actually used */ 7 40 2 pad_was_max_users bit (36) aligned, 7 41 2 max_units fixed bin, /* maximum number of login-units per session */ 7 42 2 pad_was_max_prim bit (36) aligned, 7 43 2 uwt_size fixed bin, /* size of User Weight Table */ 7 44 2 uwt (24) aligned, /* User Weight Table */ 7 45 3 initproc char (64) unaligned, /* user's initial procedure */ 7 46 3 units fixed bin, /* weight of initial procedure */ 7 47 2 system_admin (2) char (32) unal, /* system administrator ID */ 7 48 2 pad1 (4) fixed bin, /* padding to 466 wds */ 7 49 2 project (3258), /* The SAT entries. 255K segment. */ 7 50 3 pad (80) fixed bin; /* each entry is 80 words long */ 7 51 7 52 7 53 dcl 1 project based (satep) aligned, /* declaration of a single SAT entry */ 7 54 2 state fixed bin, /* state 1 = normal, 0 = free, 2 = deleted, 3 = renamed */ 7 55 2 project_id char (12) unaligned, /* project's name */ 7 56 2 project_dir char (64) unaligned, /* project's directory */ 7 57 2 pdt_ptr pointer, /* pointer to current PDT */ 7 58 2 max_users fixed bin, /* maximum number of users from project */ 7 59 2 n_users fixed bin, /* current number */ 7 60 2 at like user_attributes aligned, /* include user_attributes.incl.pl1 */ 7 61 2 admin (4) aligned, /* list of project's administrators */ 7 62 3 userid char (30) unal, /* administrator's user-id (personid.projectid) */ 7 63 3 pad char (2) unal, 7 64 2 cutoff char (1), /* if project is cut off, why. */ 7 65 2 min_ring fixed bin, /* lowest ring for project */ 7 66 2 max_ring fixed bin, /* highest ring for project */ 7 67 2 alias char (8) unal, /* project alias */ 7 68 2 group char (8) unal, /* default group for this project */ 7 69 2 grace_max fixed bin, /* maximum bump grace */ 7 70 2 audit bit (36), /* audit flags for project */ 7 71 2 project_authorization (2) bit (72), /* authorization of this project */ 7 72 2 groups (2) char (8) unal, /* authorized groups for this project */ 7 73 2 days_to_cutoff fixed bin (17) unaligned, /* these figures are as of last running of daily_summary */ 7 74 2 pct_balance fixed bin (17) unaligned, /* they are used for warning message printing only */ 7 75 2 dollars_to_cutoff float bin, /* and are not to be taken as up-to-date figures */ 7 76 2 pdir_quota fixed bin (17) unaligned, /* max pdir quota allowed for project */ 7 77 2 max_foreground fixed bin (9) unsigned unaligned, /* max simultaneous foreground and background */ 7 78 2 max_background fixed bin (9) unsigned unaligned, /* processes that a user on this project can have */ 7 79 2 abs_foreground_cpu_limit fixed bin (17) unaligned, /* time limit on foreground absentee jobs */ 7 80 2 rs_number fixed bin (9) unsigned unaligned, /* rate structure number (0=default rates ) */ 7 81 2 satpad1 fixed bin (9) unsigned unaligned, 7 82 2 satpad (1) bit (36) aligned, /* pad to 80 words */ 7 83 2 chain fixed bin; /* if free entry, chain */ 7 84 7 85 /* END INCLUDE FILE ... sat.incl.pl1 */ 621 622 /* BEGIN INCLUDE FILE ... user_attributes.incl.pl1 TAC 10/79 */ 9 2 9 3 9 4 /****^ HISTORY COMMENTS: 9 5* 1) change(86-12-11,Brunelle), approve(87-07-13,MCR7741), 9 6* audit(87-04-19,GDixon), install(87-08-04,MR12.1-1056): 9 7* Add incl for abs_attributes.incl.pl1 to automatically include absentee 9 8* attribute switches. 9 9* 2) change(87-04-19,GDixon), approve(87-07-13,MCR7741), 9 10* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 9 11* A) Add USER_ATTRIBUTE_NAMES arrays. attribute_names.incl.pl1 can thereby 9 12* be deleted. 9 13* B) Add constants identifying attributes that can be changed by user at 9 14* login, etc. 9 15* END HISTORY COMMENTS */ 9 16 9 17 9 18 /* Modified 82-01-03 E. N. Kittlitz. to declare a complete level-1 structure */ 9 19 9 20 /* format: style4 */ 9 21 dcl 1 user_attributes aligned based, /* the user user_attributes */ 9 22 (2 administrator bit (1), /* 1 system administrator privileges */ 9 23 2 primary_line bit (1), /* 2 user has primary-line privileges */ 9 24 2 nobump bit (1), /* 2 user cannot be bumped */ 9 25 2 guaranteed_login bit (1), /* 4 user has guaranteed login privileges */ 9 26 2 anonymous bit (1), /* 5 used only in SAT. project may have anon.users */ 9 27 2 nopreempt bit (1), /* 6 used only in PDT. user not preemptable by others 9 28* . of same project (distinct from "nobump") */ 9 29 2 nolist bit (1), /* 7 don't list user on "who" */ 9 30 2 dialok bit (1), /* 8 user may have multiple consoles */ 9 31 2 multip bit (1), /* 9 user may have several processes */ 9 32 2 bumping bit (1), /* 10 in SAT. Can users in project bump each other? */ 9 33 2 brief bit (1), /* 11 no login or logout message */ 9 34 2 vinitproc bit (1), /* 12 user may change initial procedure */ 9 35 2 vhomedir bit (1), /* 13 user may change homedir */ 9 36 2 nostartup bit (1), /* 14 user does not want start_up.ec */ 9 37 2 sb_ok bit (1), /* 15 user may be standby */ 9 38 2 pm_ok bit (1), /* 16 user may be primary */ 9 39 2 eo_ok bit (1), /* 17 user may be edit_only */ 9 40 2 daemon bit (1), /* 18 user may login as daemon */ 9 41 2 vdim bit (1), /* 19 * OBSOLETE * user may change outer mdle */ 9 42 2 no_warning bit (1), /* 20 no warning message */ 9 43 2 igroup bit (1), /* 21 in SAT: this project may give its users individual groups 9 44* . in PDT: this user has an individual load control group */ 9 45 2 save_pdir bit (1), /* 22 save pdir after fatal process error */ 9 46 2 disconnect_ok bit (1), /* 23 ok to save user's disconnected processes */ 9 47 2 save_on_disconnect bit (1), /* 24 save them unless -nosave login arg is given */ 9 48 2 pad bit (12)) unaligned; 9 49 9 50 dcl USER_ATTRIBUTE_NAMES (0:24) char (20) int static options (constant) init 9 51 ("none", /* 0 */ 9 52 "administrator", /* 1 */ 9 53 "primary_line", /* 2 */ 9 54 "nobump", /* 3 */ 9 55 "guaranteed_login", /* 4 */ 9 56 "anonymous", /* 5 */ 9 57 "nopreempt", /* 6 */ 9 58 "nolist", /* 7 */ 9 59 "dialok", /* 8 */ 9 60 "multip", /* 9 */ 9 61 "bumping", /* 10 */ 9 62 "brief", /* 11 */ 9 63 "vinitproc", /* 12 */ 9 64 "vhomedir", /* 13 */ 9 65 "nostartup", /* 14 */ 9 66 "no_secondary", /* 15 */ 9 67 "no_prime", /* 16 */ 9 68 "no_eo", /* 17 */ 9 69 "daemon", /* 18 */ 9 70 "", /* 19 vdim OBSOLETE */ 9 71 "no_warning", /* 20 */ 9 72 "igroup", /* 21 */ 9 73 "save_pdir", /* 22 */ 9 74 "disconnect_ok", /* 23 */ 9 75 "save_on_disconnect"); /* 24 */ 9 76 9 77 dcl ALT_USER_ATTRIBUTE_NAMES (0:24) char (20) int static options (constant) init 9 78 ("null", /* 0 */ 9 79 "admin", /* 1 */ 9 80 "", "", /* 2 - 3 */ 9 81 "guar", /* 4 */ 9 82 "anon", /* 5 */ 9 83 "", "", /* 6 - 7 */ 9 84 "dial", /* 8 */ 9 85 "multi_login", /* 9 */ 9 86 "preempting", /* 10 */ 9 87 "", /* 11 */ 9 88 "v_process_overseer", /* 12 */ 9 89 "v_home_dir", /* 13 */ 9 90 "no_start_up", /* 14 */ 9 91 "no_sec", /* 15 */ 9 92 "no_primary", /* 16 */ 9 93 "no_edit_only", /* 17 */ 9 94 "op_login", /* 18 */ 9 95 "", /* 19 */ 9 96 "nowarn", /* 20 */ 9 97 "", "", "", /* 21 - 23 */ 9 98 "save"); /* 24 */ 9 99 9 100 dcl USER_ATTRIBUTES_always_allowed bit (36) aligned int static 9 101 options(constant) init("000000000010000000010000000000000000"b); 9 102 /* SAT/PDT attributes not needed for user to give (brief, no_warning) */ 9 103 9 104 dcl USER_ATTRIBUTES_default_in_pdt bit (36) aligned int static 9 105 options(constant) init("000000000010000000010000000000000000"b); 9 106 /* PDT value for (brief, no_warning) is default */ 9 107 9 108 dcl USER_ATTRIBUTES_settable_by_user bit (36) aligned int static 9 109 options(constant) init("000100000110010000010000000000000000"b); 9 110 /* user MIGHT set (bump, ns, brief, guar, no_warning) */ 9 111 10 1 /* BEGIN INCLUDE FILE ... user_abs_attributes.incl.pl1 */ 10 2 10 3 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 10 4 /* */ 10 5 /* This include file describes the attributes of an absentee job. It is */ 10 6 /* used by user_table_entry.incl.pl1, abs_message_format.incl.pl1 */ 10 7 /* and PIT.incl.pl1. */ 10 8 /* */ 10 9 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 10 10 10 11 /****^ HISTORY COMMENTS: 10 12* 1) change(86-12-08,GDixon), approve(87-07-13,MCR7741), 10 13* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 10 14* Separated abs_attributes from the request structure 10 15* (abs_message_format.incl.pl1) so that the identical structure could be 10 16* used in the ute structure (user_table_entry.incl.pl1). 10 17* 2) change(87-04-19,GDixon), approve(87-07-13,MCR7741), 10 18* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 10 19* Added ABS_ATTRIBUTE_NAMES array. 10 20* 3) change(87-11-11,Parisek), approve(88-02-11,MCR7849), 10 21* audit(88-03-22,Lippard), install(88-07-13,MR12.2-1047): 10 22* Added the no_start_up flag. SCP6367 10 23* END HISTORY COMMENTS */ 10 24 10 25 dcl 1 user_abs_attributes aligned based, 10 26 2 restartable bit (1) unaligned, /* 1 if request may be started over from the beginning */ 10 27 2 user_deferred_until_time bit (1) unaligned, /* 1 if request was specified as deferred */ 10 28 2 proxy bit (1) unaligned, /* 1 if request submitted for someone else */ 10 29 2 set_bit_cnt bit (1) unaligned, /* 1 if should set bit count after every write call */ 10 30 2 time_in_gmt bit (1) unaligned, /* 1 if deferred_time is in GMT */ 10 31 2 user_deferred_indefinitely bit (1) unaligned, /* 1 if operator is to say when to run it */ 10 32 2 secondary_ok bit (1) unaligned, /* 1 if ok to log in as secondary foreground user */ 10 33 2 truncate_absout bit (1) unaligned, /* 1 if .absout is to be truncated */ 10 34 2 restarted bit (1) unaligned, /* 1 if job is restarted */ 10 35 2 no_start_up bit (1) unaligned, /* 1 if requested -ns */ 10 36 2 attributes_pad bit (26) unaligned; 10 37 10 38 dcl ABS_ATTRIBUTE_NAMES (10) char (28) varying int static options(constant) init( 10 39 "restartable", 10 40 "user_deferred_until_time", 10 41 "proxy", 10 42 "set_bit_cnt", 10 43 "time_in_gmt", 10 44 "user_deferred_indefinitely", 10 45 "secondary_ok", 10 46 "truncate_absout", 10 47 "restarted", 10 48 "no_start_up"); 10 49 10 50 /* END INCLUDE FILE ... user_abs_attributes.incl.pl1 */ 10 51 9 112 9 113 9 114 /* END INCLUDE FILE ... user_attributes.incl.pl1 */ 622 623 /* BEGIN INCLUDE FILE ... user_table_entry.incl.pl1 */ 11 2 11 3 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 11 4 /* */ 11 5 /* This include file requires that the user include */ 11 6 /* user_attributes.incl.pl1 as well. It also includes */ 11 7 /* abs_attributes.incl.pl1 itself. */ 11 8 /* */ 11 9 /* This include file must be included to use absentee_user_table.incl.pl1, */ 11 10 /* answer_table.incl.pl1, and daemon_user_table.incl.pl1. */ 11 11 /* */ 11 12 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 11 13 11 14 /****^ HISTORY COMMENTS: 11 15* 1) change(81-12-21,Gilcrease), approve(86-03-27,MCR7370), 11 16* audit(86-06-23,Lippard), install(86-06-30,MR12.0-1082): 11 17* This comment for hcom. 11 18* 81-12-21 E. N. Kittlitz. derived from abs_user_tab.incl.pl1, 11 19* anstbl.incl.pl1, and dutbl.incl.pl1. 11 20* 82-01-02 E. N. Kittlitz. user_attributes.incl.pl1 changes 11 21* 84-04-04 BIM added privileged_dial_server and dial_server_ring 11 22* 84-07-12 BIM added min_process_authorization 11 23* 84-12-31 Keith Loepere added pdir_dir_quota 11 24* 85-01-16 by E. Swenson to add ute.session_uid 11 25* 2) change(85-11-16,Swenson), approve(87-07-13,MCR7737), 11 26* audit(87-04-14,GDixon), install(87-08-04,MR12.1-1056): 11 27* Added fields for DSA login server support. 11 28* 3) change(86-03-27,Gilcrease), approve(86-03-27,MCR7370), 11 29* audit(86-06-23,Lippard), install(86-06-30,MR12.0-1082): 11 30* Add truncate_absout and restarted bit for -truncate absout, SCP6297. 11 31* 4) change(86-04-09,Herbst), approve(87-07-13,MCR7697), 11 32* audit(87-04-14,GDixon), install(87-08-04,MR12.1-1056): 11 33* Added disconnection_rel_minutes. 11 34* 5) change(86-12-08,GDixon), approve(87-07-13,MCR7741), 11 35* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 11 36* Changed structure under ute.abs_attributes to use like structure in 11 37* abs_attributes.incl.pl1. This allows the same attributes to be used 11 38* in abs_message_format.incl.pl1 and pit.incl.pl1 as well as this include 11 39* file. 11 40* 6) change(87-04-14,GDixon), approve(87-07-13,MCR7741), 11 41* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 11 42* Move constants for ute.pw_flags.mask_ctl from answer_table.incl.pl1. 11 43* 7) change(87-04-16,GDixon), approve(87-07-13,MCR7741), 11 44* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 11 45* A) Global reorganization to locate things by type of data. 11 46* B) Eliminate ute.uflags.logged_in. 11 47* 8) change(87-05-10,GDixon), approve(87-07-13,MCR7741), 11 48* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 11 49* A) Reduced overlength person and project fields to proper length. 11 50* B) Adjusted dialed-console section to begin on even word boundary. 11 51* 9) change(87-05-13,GDixon), approve(87-07-13,MCR7741), 11 52* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 11 53* Add ute.line_type. 11 54* 10) change(87-11-19,Parisek), approve(88-02-11,MCR7849), 11 55* audit(88-02-23,Lippard), install(88-07-13,MR12.2-1047): 11 56* Added the lowest_ring element. Used the upper half of ute.highest_ring 11 57* for the storage. SCP6367 11 58* END HISTORY COMMENTS */ 11 59 11 60 /* format: style4 */ 11 61 11 62 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 11 63 /* */ 11 64 /* Each of the named sections below defines a type of data. Typing comes */ 11 65 /* from data associated with the ute entry itself, with the person, with */ 11 66 /* login argument data, from the main user of the data (eg, dialup_, */ 11 67 /* load_ctl_, login server). Each section begins on a double-word boundary */ 11 68 /* and is an even number of words long. The total structure is 300 decimal */ 11 69 /* words long. */ 11 70 /* */ 11 71 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 11 72 11 73 11 74 dcl UTE_version_4 fixed bin internal static options (constant) init (4); 11 75 11 76 dcl utep pointer automatic init (null); 11 77 11 78 dcl 1 ute based (utep) aligned, /* individual entry in one of the user control tables */ 11 79 11 80 /* Variables which give state of this entry */ 11 81 2 active fixed bin, /* state of entry. 0=>free. see dialup_values.incl.pl1 */ 11 82 2 process_type fixed bin, /* 1=interactive, 2=absentee, 3=daemon */ 11 83 2 ute_index fixed bin, /* index of ute in (anstbl autbl dutbl).entry array */ 11 84 2 next_free fixed bin, /* points to previous free entry */ 11 85 11 86 /* Information user gave about person_id associated with this entry. */ 11 87 2 person char (24) unal, /* user's name */ 11 88 2 project char (12) unal, /* project of absentee user */ 11 89 2 tag char (1) unal, /* instance tag - someday will be generated */ 11 90 2 tag_pad bit (27) unal, 11 91 2 anonymous fixed bin, /* 1 if anonymous, otherwise 0 */ 11 92 2 login_flags, /* flags for login data */ 11 93 3 cpw bit (1) unal, /* flag for wish to change password */ 11 94 3 generate_pw bit (1) unal, /* flag meaning -generate_pw (-gpw) was used. */ 11 95 3 special_pw unal, /* dial or slave */ 11 96 4 dial_pw bit (1) unal, /* true if dial -user */ 11 97 4 slave_pw bit (1) unal, /* true if slave -user */ 11 98 3 cdp bit (1) unal, /* flag for wish to change default project */ 11 99 3 cda bit (1) unal, /* flag to change default authorization */ 11 100 3 auth_given bit (1) unal, /* flag to mean -authorization was used. */ 11 101 3 noprint bit (1) unal, /* used at logout. inhibits printing. */ 11 102 3 operator bit (1) unaligned, /* user specified -operator on login command line */ 11 103 3 pw_pad bit (25) unal, /* spare parts */ 11 104 3 mask_ctl bit (2) unal, /* bits controlling pw mask. See constants, below */ 11 105 /* Must remain last in pw_flags so it does not */ 11 106 /* appear in PW_FLAG_VALUES array below. */ 11 107 2 generated_pw char (8) unal, /* user must type this as new password */ 11 108 2 old_password char (8) unal, /* must match user's previous password (value scrambled) */ 11 109 2 process_authorization bit (72), /* access_authorization of this process */ 11 110 11 111 /* Information user gave about process associated with this entry. */ 11 112 2 outer_module char (32) unal, /* Name of console dim */ 11 113 2 home_dir char (64) unal, /* initial home directory */ 11 114 2 init_proc char (64) unal, /* name of login responder */ 11 115 2 ip_len fixed bin (17) unal, /* length of initproc string */ 11 116 2 ss_len fixed bin (17) unal, /* length of subsystem string */ 11 117 2 ur_at like user_attributes aligned, /* bits on means attributes given by user */ 11 118 2 at like user_attributes aligned, /* bits on means attribute is on */ 11 119 2 initial_ring fixed bin, /* ring process will be started in */ 11 120 2 arg_count fixed bin, /* number of arguments to absentee control segment */ 11 121 2 ln_args fixed bin, /* length of string containing arguments */ 11 122 2 arg_lengths_ptr ptr, /* pointer to array of argument lengths */ 11 123 2 args_ptr ptr, /* pointer to arguments to absentee control segment */ 11 124 11 125 /* Most of the following information is relevant only to absentee processes */ 11 126 2 input_seg char (168) unal, /* pathname of absentee control segment */ 11 127 2 output_seg char (168) unal, /* pathname of absentee output file */ 11 128 2 request_id fixed bin (71), /* time request was entered - used as uid of request */ 11 129 2 reservation_id fixed bin (71), /* nonzero if job has a resource reservation */ 11 130 2 message_id bit (72), /* message segment id assoc with absentee request */ 11 131 2 deferred_time fixed bin (71), /* time at which absentee process should be created */ 11 132 2 max_cpu_time fixed bin (35), /* maximum number of seconds this process can run */ 11 133 2 queue fixed bin, /* -1=daemon;0=interactive or foreground;>0=queue no. 11 134* (but see uflags.adjust_abs_q_no). */ 11 135 2 real_queue fixed bin, /* real queue number; ute.queue gets fudged sometimes */ 11 136 2 abs_attributes aligned like user_abs_attributes, /* include abs_attributes.incl.pl1 */ 11 137 2 abs_flags, 11 138 3 abs_run bit (1) unal, /* on if job was started by abs run command */ 11 139 3 notify bit (1) unal, /* on if user wants notification at login and logout */ 11 140 3 abs_flags_pad bit (34) unal, 11 141 2 abs_group char (8) unal, /* original group before load_ctl_ moves it to absentee group */ 11 142 2 sender char (32) unal, /* name of RJE station that job is from */ 11 143 2 proxy_person char (28) unal, /* name of user who actually entered the request, if proxy */ 11 144 2 proxy_project char (9) unal, 11 145 2 proxy_project_pad char (3) unal, 11 146 2 abs_pad fixed bin, 11 147 11 148 /* Information about process actually created */ 11 149 2 proc_id bit (36), /* process id of absentee process */ 11 150 2 session_uid fixed bin (35), /* Unique authentication session id */ 11 151 2 process_authorization_range (2) bit (72) aligned, 11 152 2 audit bit (36), /* audit flags for user */ 11 153 2 lot_size fixed bin, /* Size of linkage offset table */ 11 154 2 kst_size fixed bin, /* Size of process known segment table */ 11 155 2 cls_size fixed bin, /* Size of process combined linkage */ 11 156 2 sus_channel fixed bin (71), /* event channel on which suspended process is blocked */ 11 157 2 lowest_ring fixed bin (17) unal, /* lowest ring permitted */ 11 158 2 highest_ring fixed bin (17) unal, /* highest ring permitted */ 11 159 2 pdir_lvix fixed bin (17) unal, /* index in disk table of lv where pdir is */ 11 160 2 pdir_quota fixed bin (17) unal, /* process directory quota */ 11 161 2 pdir_dir_quota fixed bin (17) unal, /* process directory quota for dirs */ 11 162 2 pdir_pad fixed bin(17) unal, 11 163 2 process_pad fixed bin, 11 164 11 165 /* Information about primary terminal associated with this entry */ 11 166 2 tty_name char (32) unal, /* absentee=>"abs1", etc. daemon=>"bk", etc. */ 11 167 2 terminal_type char (32) unaligned, /* terminal type */ 11 168 2 line_type fixed bin, /* line type */ 11 169 2 tty_id_code char (4) unal, /* "none" for absentee */ 11 170 2 network_connection_type fixed bin, /* see net_event_message.incl.pl1 */ 11 171 2 channel ptr unal, /* points to CDT entry for user, if any */ 11 172 11 173 /* Variables useful for dialed terminals */ 11 174 2 ndialed_consoles fixed bin, /* if master, number of slaves */ 11 175 2 dial_qualifier char (22) unal, /* first argument to dial command */ 11 176 2 dial_server_ring fixed bin (3) unsigned unaligned, /* dial server intends to attach dialing in channels at this ring. */ 11 177 2 dial_server_flags, 11 178 3 registered_dial_server bit (1) unal, /* process is a registered dial server */ 11 179 3 privileged_dial_server bit (1) unal, /* "1"b -> serves range of AIM classes */ 11 180 3 dial_server_flags_pad bit (13) unal, /* fill out the word */ 11 181 2 dial_ev_chn fixed bin (71), /* if master, control event channel */ 11 182 11 183 /* Information about usage/accounting. Device usage meters are in a 11 184* separate segment, "devtab" */ 11 185 2 pdtep ptr, /* ptr to user's pdt entry, where usage meters live */ 11 186 2 cpu_this_process fixed bin (71), /* cpu used so far this process */ 11 187 2 cpu_usage fixed bin (71), /* total cpu time used in this session */ 11 188 2 mem_usage fixed bin (71), /* memory usage for previous processes in session */ 11 189 2 mem_this_process fixed bin (71), /* memory usage at last update */ 11 190 2 last_update_time fixed bin (71), /* time of last account update */ 11 191 2 session_cost float bin, /* dollar cost of session, for printing in logout messages */ 11 192 2 ndevices fixed bin, /* Count of attached devices */ 11 193 2 device_head fixed bin, /* Table index of head of device chain */ 11 194 2 device_tail fixed bin, /* Table index of tail of device chain */ 11 195 2 rs_number fixed bin (6) unsigned unal, /* rate structure number */ 11 196 2 rs_number_pad bit(30) unal, 11 197 2 usage_pad fixed bin, 11 198 11 199 /* Information for dialup_ (control variables). */ 11 200 2 event fixed bin (71), /* event associated with channel or user manager */ 11 201 2 uprojp ptr, /* ptr to user project sat entry */ 11 202 2 login_time fixed bin (71), /* time when absentee user approved by lg_ctl_ */ 11 203 2 cant_bump_until fixed bin (71), /* bump-protection clock */ 11 204 2 recent_fatal_error_time fixed bin (71), /* time of first error in the suspected loop */ 11 205 2 recent_fatal_error_count fixed bin, /* counter to detect fatal process error loops */ 11 206 2 failure_reason fixed bin, /* why login refused 1=lg_ctl, 2=act_ctl, 3=load_ctl */ 11 207 2 count fixed bin, /* counter for logins and dialups */ 11 208 2 n_processes fixed bin, /* number of processes created in this session */ 11 209 2 lock_value fixed bin, /* number of locks set for this entry */ 11 210 2 login_result fixed bin, /* 0=logged in;1=hopeless,hang him up;2=allow another attempt */ 11 211 2 login_code char (8) unal, /* login command from LOGIN line */ 11 212 2 preempted fixed bin, /* if ^= 0 user preempted (never for abs) */ 11 213 2 destroy_flag fixed bin, /* >8 when awaiting destroy */ 11 214 2 logout_type char (4) unal, /* type of logout */ 11 215 2 logout_index fixed bin, /* to save logout handler index while waiting for termsgnl */ 11 216 2 disconnection_rel_minutes fixed bin (17) unal, /* disconnected this many minutes after login_time */ 11 217 2 next_disconnected_ate_index fixed bin (17) unal, /* thread of list of user's disconnected processes */ 11 218 2 work_class fixed bin, /* work class used by priority scheduler */ 11 219 2 group char (8) unal, /* party group identifier */ 11 220 2 whotabx fixed bin, /* index of user's entry in whotab */ 11 221 11 222 2 uflags, /* Miscellaneous flags */ 11 223 3 dont_call_init_admin bit (1) unal, /* Call overseer directly */ 11 224 3 ip_given bit (1) unal, /* user gave an initproc arg on login line */ 11 225 3 ss_given bit (1) unal, /* initial_procedure contains a subsystem name */ 11 226 3 lvs_attached bit (1) unal, /* set and used by the lv_request_ procedure */ 11 227 3 send_initial_string bit (1) unal, /* initial string should be sent after login line read */ 11 228 3 adjust_abs_q_no bit (1) unal, /* this is an absentee job; user_profile.queue is NOT true Q # */ 11 229 3 foreground_secondary_ok bit (1) unal, /* ok to login foreground absentee job as secondary */ 11 230 3 foreground_job bit (1) unal, /* job was originally from foreground queue */ 11 231 3 sus_sent bit (1) unal, /* sus_ ips signal has been sent to process */ 11 232 3 suspended bit (1) unal, /* process has responded to sus_ signal */ 11 233 3 ignore_cpulimit bit (1) unal, /* process is released, but timer can't be turned off */ 11 234 3 deferral_logged bit (1) unal, /* abs job deferral has already been logged once */ 11 235 3 save_if_disconnected bit (1) unal, /* user wants process preserved across hangups */ 11 236 3 disconnected bit (1) unal, /* process is disconnected from terminal */ 11 237 3 disconnected_list bit (1) unal, /* this ate is on a list of disconnected processes */ 11 238 3 proc_create_ok bit (1) unal, /* lg_ctl_ has set the process creation variables */ 11 239 3 activity_can_unbump bit (1) unal, /* only bump pending is for inactivity */ 11 240 3 fpe_causes_logout bit (1) unal, /* "1"b means don't try to new_proc after fatal process error */ 11 241 3 user_specified_immediate bit (1) unal, /* "1"b -> don't wait around for process destruction. */ 11 242 3 uflags_pad bit (17) unal, 11 243 11 244 /* Information used by load_ctl_ for the process */ 11 245 2 user_weight fixed bin, /* usually 10 - used in load control */ 11 246 2 standby_line fixed bin, /* 0=user has primary line, 1=standby user */ 11 247 2 bump_grace fixed bin (71), /* bump grace in microseconds */ 11 248 11 249 11 250 /* Information for login server */ 11 251 2 login_server_info, 11 252 3 our_handle bit (72) aligned, /* how LS refers to us. */ 11 253 3 his_handle bit (72) aligned, /* how we talk to LS */ 11 254 3 termination_event_channel fixed bin (71), /* for process termination notifications to the LS */ 11 255 3 response_event_channel fixed bin (71), /* for other communications with the LS */ 11 256 3 process_id bit (36) aligned, /* process_id of login server */ 11 257 2 ls_pad (5) fixed bin; /* pad to 300 decimal words */ 11 258 11 259 /* values for ute.process_type */ 11 260 11 261 dcl (PT_INTERACTIVE initial (1), 11 262 PT_ABSENTEE initial (2), 11 263 PT_DAEMON initial (3)) fixed bin internal static options (constant); 11 264 11 265 dcl PROCESS_TYPE_NAMES (0:3) char(12) varying int static options(constant) init( 11 266 "INVALID-TYPE", 11 267 "interactive", 11 268 "absentee", 11 269 "daemon"); 11 270 11 271 dcl TABLE_NAMES (0:3) char(20) int static options(constant) init( 11 272 "UNKNOWN-TABLE", 11 273 "answer_table", 11 274 "absentee_user_table", 11 275 "daemon_user_table"); 11 276 11 277 11 278 /* values for ute.pw_flags.mask_ctl */ 11 279 11 280 dcl (DO_MASK init ("00"b), 11 281 DONT_MASK init ("01"b), 11 282 DERIVE_MASK init ("10"b)) bit (2) internal static options (constant); 11 283 11 284 dcl MASK_CTL_NAMES (0:3) char(12) varying int static options(constant) init( 11 285 "do_mask", "dont_mask", "derive_mask", ""); 11 286 11 287 11 288 /* names for ute.pw_flags */ 11 289 11 290 dcl PW_FLAG_NAMES (9) char (12) varying int static options(constant) init( 11 291 "cpw", 11 292 "generate_pw", 11 293 "dial_pw", 11 294 "slave_pw", 11 295 "cdp", 11 296 "cda", 11 297 "auth_given", 11 298 "noprint", 11 299 "operator"); 11 300 11 301 /* names for ute.uflags */ 11 302 11 303 dcl UFLAG_NAMES (19) char (24) varying int static options (constant) init ( 11 304 "dont_call_init_admin", 11 305 "ip_given", 11 306 "ss_given", 11 307 "lvs_attached", 11 308 "send_initial_string", 11 309 "adjust_abs_q_no", 11 310 "foreground_secondary_ok", 11 311 "foreground_job", 11 312 "sus_sent", 11 313 "suspended", 11 314 "ignore_cpulimit", 11 315 "deferral_logged", 11 316 "save_if_disconnected", 11 317 "disconnected", 11 318 "disconnected_list", 11 319 "proc_create_ok", 11 320 "activity_can_unbump", 11 321 "fpe_causes_logout", 11 322 "user_specified_immediate"); 11 323 11 324 /* names for ute.abs_flags */ 11 325 11 326 dcl ABS_FLAG_NAMES (2) char (8) varying int static options (constant) init ( 11 327 "abs_run", 11 328 "notify"); 11 329 11 330 /* names of ute.dial_server_flags */ 11 331 11 332 dcl DIAL_SERVER_FLAG_NAMES (2) char (12) varying int static options (constant) init ( 11 333 "registered", 11 334 "privileged"); 11 335 11 336 /* values of ute.login_result */ 11 337 11 338 dcl LOGIN_RESULT_VALUES (0:2) char(24) varying int static options(constant) init( 11 339 "logged in", 11 340 "login failed, hangup", 11 341 "login failed, try again"); 11 342 11 343 /* END INCLUDE FILE ... user_table_entry.incl.pl1 */ 623 624 /* BEGIN INCLUDE FILE ... user_table_header.incl.pl1 */ 12 2 12 3 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 12 4 /* */ 12 5 /* This include file declares the header shared by the answer_table, */ 12 6 /* absentee_user_table and daemon_user_table include files. */ 12 7 /* */ 12 8 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 12 9 12 10 /****^ HISTORY COMMENTS: 12 11* 1) change(87-04-26,GDixon), approve(87-07-13,MCR7741), 12 12* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 12 13* Initial coding. 12 14* END HISTORY COMMENTS */ 12 15 12 16 dcl 1 ut_header aligned based, /* header shared by all user control tables. */ 12 17 2 header_version fixed bin, /* version of the header (3) */ 12 18 2 entry_version fixed bin, /* version of user table entries */ 12 19 2 user_table_type fixed bin, /* 1 interactive, 2 absentee, 3 daemon */ 12 20 2 header_length fixed bin, /* length of the header */ 12 21 2 max_size fixed bin, /* max number of entries in this table */ 12 22 2 current_size fixed bin, /* actual size of table (in entries) */ 12 23 2 number_free fixed bin, /* number of free entries in the table. */ 12 24 2 first_free fixed bin, /* index of first entry in the free list. */ 12 25 2 as_procid bit (36), /* process ID of user table manager process */ 12 26 2 ut_header_pad fixed bin; 12 27 12 28 /* END INCLUDE FILE ... user_table_header.incl.pl1 */ 624 625 626 /* BEGIN MESSAGE DOCUMENTATION 627* 628* Message: 629* up_sat_: adding PROJ project with authorization AUTH 630* 631* S: as (severity0) 632* 633* T: $run 634* 635* M: A system security administrator has added the project PROJ with an authorization greater than system low. 636* 637* A: $ignore 638* 639* 640* Message: 641* up_sat_: bumping NAME.PROJ, project authorization reduced 642* 643* S: as (severity1) 644* 645* T: $run 646* 647* M: A system security administrator has installed a new SAT that reduces the authorization for the user identified 648* by NAME on the project PROJ below the current value assigned to this project. Therefore, the user is being bumped from the 649* system. 650* 651* A: $ignore 652* 653* 654* Message: 655* up_sat_: bumping NAME.PROJ, project deleted 656* 657* S: as (severity1) 658* 659* T: $run 660* 661* M: The system administrator has deleted the project PROJ. 662* All of its users are bumped. 663* 664* A: $ignore 665* 666* 667* Message: 668* up_sat_: bumping NAME.PROJ, over max users on project 669* 670* S: as (severity1) 671* 672* T: $run 673* 674* M: The user named has been bumped because the system administrator 675* has reduced the maximum number of users that can be logged in on 676* the project PROJ. 677* 678* A: $ignore 679* 680* 681* Message: 682* up_sat_: changing authorization of PROJ project from OLD to NEW 683* 684* S: as (severity0) 685* 686* T: $run 687* 688* M: A system security administrator has installed a new SAT that changes the authorization of the project PROJ. 689* OLD is the previous authorization for the project; NEW is the authorization now assigned to the project. 690* 691* A: $ignore 692* 693* 694* Message: 695* up_sat_: ERROR_MESSAGE. cannot make temp 696* 697* S: as (severity1) 698* 699* T: $run 700* 701* M: A temporary segment could not be created while attempting 702* to install a new system administrator's table. The system attempts 703* to proceed. 704* 705* A: $inform 706* 707* 708* Message: 709* up_sat_: ERROR_MESSAGE. sat.ht.temp 710* 711* S: as (severity2) 712* 713* T: $run 714* 715* M: A temporary segment could not be created while attempting to build a 716* hash table for a new system administrator's table (SAT). The new SAT has been installed, but 717* the old hash table is still in use, so any new projects are unusable. 718* 719* A: $inform 720* 721* 722* Message: 723* up_sat_: ERROR_MESSAGE. sat.ht 724* 725* S: as (severity2) 726* 727* T: $run 728* 729* M: The system was unable to replace the SAT hash table, during installation 730* of a new SAT. The new SAT has been installed, but the old hash table 731* is still in use, so any new projects are unusable. 732* 733* A: $inform 734* 735* 736* 737* Message: 738* up_sat_: project PROJ on free list state nonzero 739* 740* S: as (severity2) 741* 742* T: $run 743* 744* M: The free chain for the SAT seems to include a project that 745* does not have state zero. The system abandons the free chain 746* and attempts to proceed. 747* 748* A: $inform_sa 749* 750* END MESSAGE DOCUMENTATION */ 751 752 end up_sat_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 07/13/88 0938.7 up_sat_.pl1 >special_ldd>install>MR12.2-1047>up_sat_.pl1 616 1 04/11/85 1452.6 access_mode_values.incl.pl1 >ldd>include>access_mode_values.incl.pl1 617 2 08/06/87 0913.0 answer_table.incl.pl1 >ldd>include>answer_table.incl.pl1 618 3 08/06/87 0913.4 dialup_values.incl.pl1 >ldd>include>dialup_values.incl.pl1 619 4 04/21/82 1211.8 hashst.incl.pl1 >ldd>include>hashst.incl.pl1 620 5 08/06/87 0913.4 installation_parms.incl.pl1 >ldd>include>installation_parms.incl.pl1 5-148 6 11/21/79 1458.3 rcp_init_flags.incl.pl1 >ldd>include>rcp_init_flags.incl.pl1 621 7 08/06/87 1416.6 sat.incl.pl1 >ldd>include>sat.incl.pl1 7-34 8 04/21/82 1211.8 author.incl.pl1 >ldd>include>author.incl.pl1 622 9 08/06/87 0913.6 user_attributes.incl.pl1 >ldd>include>user_attributes.incl.pl1 9-112 10 07/13/88 0900.1 user_abs_attributes.incl.pl1 >special_ldd>install>MR12.2-1047>user_abs_attributes.incl.pl1 623 11 07/13/88 0903.2 user_table_entry.incl.pl1 >special_ldd>install>MR12.2-1047>user_table_entry.incl.pl1 624 12 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. LEGAL 000000 constant char(95) initial packed unaligned dcl 149 ref 223 235 236 252 275 NOW_LOGGED_IN constant fixed bin(17,0) initial dcl 3-76 ref 363 401 P_ansp parameter pointer dcl 63 ref 13 162 RW_ACCESS constant bit(3) initial packed unaligned dcl 1-11 ref 204 204 SAT_entry_lth constant fixed bin(17,0) initial dcl 7-24 ref 305 483 SAT_header_lth constant fixed bin(17,0) initial dcl 7-24 ref 305 483 SAT_version constant fixed bin(17,0) initial dcl 7-24 ref 182 329 UTE_SIZE constant fixed bin(17,0) initial dcl 2-120 ref 362 362 400 400 abs_foreground_cpu_limit 115 based fixed bin(17,0) level 2 packed packed unaligned dcl 7-53 set ref 560* 560 access_authorization_ceiling 546 based bit(72) level 3 dcl 5-33 ref 171 access_ceiling 000100 automatic bit(72) dcl 104 set ref 171* 280* acs_name 000032 constant char(32) initial packed unaligned dcl 147 set ref 203* active based fixed bin(17,0) level 2 dcl 11-78 ref 363 401 addr builtin function dcl 159 ref 197 245 259 332 336 362 400 425 433 442 594 admin 31 based structure array level 2 dcl 7-53 aim_check_$greater_or_equal 000010 constant entry external dcl 70 ref 280 aim_check_$in_range 000012 constant entry external dcl 71 ref 374 374 alias 74 based char(8) level 2 packed packed unaligned dcl 7-53 set ref 266 266 266 268 550* 550 602 603* an parameter char packed unaligned dcl 583 set ref 568 588* 599* 606* ansp 000442 automatic pointer initial dcl 2-53 set ref 162* 166 175 361 362 399 400 2-53* anstbl based structure level 1 dcl 2-55 answer parameter char packed unaligned dcl 65 set ref 13 178* 183* 188* 193* 199* 205* 212* 218* 224* 230* 237* 248* 253* 262* 268* 276* 282* 287* 395* 470* 475* 501* 518* 522* as_error_table_$proj_auth_excludes 000070 external static fixed bin(35,0) dcl 97 set ref 380* as_error_table_$proj_deleted 000072 external static fixed bin(35,0) dcl 98 set ref 405* as_error_table_$proj_max 000074 external static fixed bin(35,0) dcl 99 set ref 371* as_procid 10 based bit(36) level 3 dcl 2-55 ref 166 asu_$bump_code 000014 constant entry external dcl 72 ref 371 380 405 at 30 based structure level 2 in structure "project" dcl 7-53 in procedure "up_sat_" set ref 541* 541 at 100 based structure level 2 in structure "ute" dcl 11-78 in procedure "up_sat_" audit 101 based bit(36) level 2 dcl 7-53 set ref 448* 534* 534 auth_string 000102 automatic char(32) dcl 105 set ref 350* 352* 451* 452* author based structure level 2 dcl 7-32 chain 117 based fixed bin(17,0) level 2 dcl 7-53 ref 440 clock builtin function dcl 159 ref 311 co parameter fixed bin(35,0) dcl 584 set ref 568 586* 587 596* 597 598* 603* 604 605* 613* code parameter fixed bin(35,0) dcl 66 set ref 13 179* 184* 189* 194* 200* 203* 204 206* 210* 213* 219* 225* 231* 238* 249* 254* 263* 269* 277* 283* 288* 300* 302* 371* 380* 396* 405* 460* 468* 471* 472* 475* 476 486* 487* 491* 493 494* 495 498* 499 500* 502* 514* 519* 524* convert_status_code_ 000020 constant entry external dcl 74 ref 598 605 csc_long 000112 automatic char(100) dcl 106 set ref 598* 599* 605* 606* csc_short 000144 automatic char(8) dcl 107 set ref 598* 605* current_size 36 based fixed bin(17,0) level 2 in structure "sat" dcl 7-32 in procedure "up_sat_" set ref 187 192 197 243 305 331 335 424 431 431* 483 593 current_size 5 based fixed bin(17,0) level 3 in structure "anstbl" dcl 2-55 in procedure "up_sat_" ref 361 399 cutoff 71 based char(1) level 2 dcl 7-53 set ref 546* 546 days_to_cutoff 112 based fixed bin(17,0) level 2 packed packed unaligned dcl 7-53 set ref 554* 554 debg 000146 automatic char(8) packed unaligned dcl 108 set ref 371* 380* 405* dhtp parameter pointer dcl 581 set ref 568 586* 596* 603* dir_acl 000226 automatic structure array level 1 dcl 135 display_access_class_ 000022 constant entry external dcl 75 ref 377 377 display_access_class_$range 000016 constant entry external dcl 73 ref 350 351 377 377 451 do_attributes 000150 automatic bit(1) dcl 109 set ref 169* 316 391 427 537 do_authorization 000151 automatic bit(1) dcl 110 set ref 168* 347 446 532 dollars_to_cutoff 113 based float bin(27) level 2 dcl 7-53 set ref 556* 556 entry 200 based structure array level 2 dcl 2-55 set ref 362 400 error_table_$noentry 000076 external static fixed bin(35,0) dcl 100 ref 493 fixed builtin function dcl 159 ref 198 freep 40 based fixed bin(17,0) level 2 dcl 7-32 set ref 430 437* 440* get_group_id_ 000024 constant entry external dcl 76 ref 420 get_process_id_ 000026 constant entry external dcl 77 ref 165 grace_max 100 based fixed bin(17,0) level 2 dcl 7-53 set ref 557* 557 group 76 based char(8) level 2 packed packed unaligned dcl 7-53 set ref 551* 551 groups 106 based char(8) array level 2 packed packed unaligned dcl 7-53 set ref 552* 552 553* 553 hash_$in 000030 constant entry external dcl 78 ref 596 603 hash_$make 000032 constant entry external dcl 79 ref 586 hash_$opt_size 000034 constant entry external dcl 80 ref 586 586 hcs_$chname_file 000036 constant entry external dcl 81 ref 494 hcs_$delentry_seg 000040 constant entry external dcl 82 ref 460 477 508 hcs_$initiate 000042 constant entry external dcl 83 ref 210 491 hcs_$make_seg 000044 constant entry external dcl 84 ref 300 468 hcs_$set_bc 000046 constant entry external dcl 85 ref 486 511 hcs_$set_safety_sw 000050 constant entry external dcl 86 ref 487 512 hcs_$truncate_seg 000052 constant entry external dcl 87 ref 498 header based structure level 2 dcl 2-55 htable based structure level 1 dcl 4-6 htp 000152 automatic pointer initial dcl 111 set ref 111* i 000154 automatic fixed bin(17,0) dcl 112 set ref 222* 223 228* 243* 245 257* 331* 332 335 335* 411* 412 412* 424* 425* 593* 594 596* 603* index builtin function dcl 159 ref 416 initproc 46 based char(64) array level 3 packed packed unaligned dcl 7-32 set ref 223 322* 322 instaldir parameter char packed unaligned dcl 60 set ref 13 175* 210* 300* 468* 486* 487* 491* 494* 511* 512* installation_parms based structure level 1 dcl 5-33 installation_parms_part_1 based structure level 1 dcl 5-40 installation_parms_resource_array_part based structure array level 1 unaligned dcl 5-144 instalname parameter char packed unaligned dcl 61 set ref 13 176* 210* 486* 487* instalp parameter pointer dcl 62 set ref 13 174* 459* ioa_$rsnnl 000054 constant entry external dcl 88 ref 599 606 ip parameter pointer dcl 64 ref 13 171 371 405 j 000155 automatic fixed bin(17,0) dcl 113 set ref 228* 229 229 257* 259* 321* 322 322 323 323* 335* 336* 430* 431 431* 433 442 jj 000156 automatic fixed bin(17,0) dcl 114 set ref 361* 362* 399* 400* k 000157 automatic fixed bin(17,0) dcl 115 set ref 360* 366 367* 367 416* 417 last_install_time 12 based fixed bin(71,0) level 3 dcl 7-32 set ref 311* lock 10 based bit(36) level 3 dcl 7-32 set ref 310* loht 6 based fixed bin(18,0) level 2 unsigned dcl 4-6 ref 506 max_background 114(27) based fixed bin(9,0) level 2 packed packed unsigned unaligned dcl 7-53 set ref 559* 559 max_foreground 114(18) based fixed bin(9,0) level 2 packed packed unsigned unaligned dcl 7-53 set ref 558* 558 max_ring 73 based fixed bin(17,0) level 2 dcl 7-53 set ref 548* 548 max_rs_number 000160 automatic fixed bin(17,0) dcl 116 set ref 164* 286 max_size 35 based fixed bin(17,0) level 2 dcl 7-32 set ref 187 317* 317 max_units 43 based fixed bin(17,0) level 2 dcl 7-32 set ref 318* 318 max_users 26 based fixed bin(17,0) level 2 dcl 7-53 set ref 294 360 540* 540 maxprim 000161 automatic fixed bin(17,0) dcl 117 set ref 241* 294* 294 min_ring 72 based fixed bin(17,0) level 2 dcl 7-53 set ref 547* 547 mode 000162 automatic bit(36) dcl 118 in procedure "up_sat_" set ref 203* 204 mode 10 000226 automatic bit(36) array level 2 in structure "dir_acl" dcl 135 in procedure "up_sat_" set ref 412* mode 10 000334 automatic bit(36) array level 2 in structure "sys_dir_acl" dcl 140 in procedure "up_sat_" set ref 412* movelen 000163 automatic fixed bin(24,0) dcl 119 set ref 305* 306 484* 485 506* 507 511 movetable based structure level 1 dcl 154 set ref 306* 306 485* 485 507* 507 n_entries parameter fixed bin(17,0) dcl 582 set ref 568 586* 586* n_projects 41 based fixed bin(17,0) level 2 dcl 7-32 set ref 192 328* 345* 345 429* 429 475* n_users 27 based fixed bin(17,0) level 2 dcl 7-53 set ref 360 456* new_project 000164 automatic bit(1) dcl 120 set ref 173* newhtp 000166 automatic pointer initial dcl 121 set ref 121* 468* 469 475* 477* 506 507 508* nobump 100(02) based bit(1) level 3 packed packed unaligned dcl 11-78 ref 365 nopreempt 30(05) based bit(1) level 3 packed packed unaligned dcl 7-53 set ref 293* null builtin function dcl 159 ref 111 121 124 174 211 301 455 469 492 2-53 11-76 offset 000170 automatic bit(18) dcl 122 set ref 197* 198 old_auth_string 000171 automatic char(32) dcl 123 set ref 351* 352* oldhtp 000202 automatic pointer initial dcl 124 set ref 124* 491* 492 498* 507 p 000204 automatic pointer dcl 125 set ref 245* 246 247 252 257 261 262 266 268 274 275 276 280 285 286 287 293 294 332* 333 334 337 341 344 347 351 352 360 360 363 374 374 377 377 393 394 395 401 442* 443 444 447 448 450 450 451 452 455 456 533 534 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 563 part_1 based structure level 2 dcl 5-33 pct_balance 112(18) based fixed bin(17,0) level 2 packed packed unaligned dcl 7-53 set ref 555* 555 pdir_quota 114 based fixed bin(17,0) level 2 packed packed unaligned dcl 7-53 set ref 549* 549 pdt_ptr 24 based pointer level 2 dcl 7-53 set ref 455* person 4 based char(24) level 2 packed packed unaligned dcl 11-78 set ref 369* 377* 403* preempted 420 based fixed bin(17,0) level 2 dcl 11-78 ref 368 proc_group_id based char(32) level 3 dcl 7-32 set ref 203 312* 312 process_authorization 24 based bit(72) level 2 dcl 11-78 set ref 377* 377* process_authorization_range 300 based bit(72) array level 2 dcl 11-78 set ref 374* 374* procid 000206 automatic bit(36) dcl 126 set ref 165* 166 project 722 based structure array level 2 in structure "sat" dcl 7-32 in procedure "up_sat_" set ref 197 245 259 332 336 425 433 442 594 project 12 based char(12) level 2 in structure "ute" packed packed unaligned dcl 11-78 in procedure "up_sat_" set ref 363 369* 377* 401 403* project based structure level 1 dcl 7-53 in procedure "up_sat_" project_authorization 102 based bit(72) array level 2 dcl 7-53 set ref 280* 347 347 350* 351* 374* 374* 377* 377* 447* 450 450 451* 533* 533 project_dir 4 based char(64) level 2 packed packed unaligned dcl 7-53 set ref 275 539* 539 project_id 1 based char(12) level 2 packed packed unaligned dcl 7-53 set ref 252 261 261 262 276 287 337 337 352* 363 393 394 395 401 435* 444* 444 452* 596* 599* 606* q 000210 automatic pointer dcl 127 set ref 259* 260 261 266 266 336* 337 337 337 340 346 347 350 425* 426 444 533 534 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 563 rcp_init_flags based structure level 1 packed packed unaligned dcl 6-8 rel builtin function dcl 159 ref 197 rs_number 115(18) based fixed bin(9,0) level 2 packed packed unsigned unaligned dcl 7-53 set ref 285 286 563* 563 sat based structure level 1 dcl 7-32 satep 000212 automatic pointer dcl 128 set ref 594* 595 596 599 602 603 606 satp 000214 automatic pointer dcl 129 set ref 592* 593 594 segp parameter pointer dcl 58 set ref 13 168 169 182 187 187 192 192 197 197 203 217 222 223 228 235 236 243 245 259 312 313 314 317 318 319 322 323 325 326 335 336 424 425 460* 461* 475* 475 485 568 592 sp 000216 automatic pointer dcl 130 set ref 210* 211 305 306 459 485 state based fixed bin(17,0) level 2 dcl 7-53 set ref 246 247 257 260 274 333 334* 337 337 340 341* 344* 346* 426 434 443* 595 string builtin function dcl 159 set ref 541* 541 substr builtin function dcl 159 ref 417 syj 000220 automatic fixed bin(17,0) dcl 131 set ref 414* 415 416 417 417* 419* 420 sys_dir_acl 000334 automatic structure array level 1 dcl 140 sys_log_ 000056 constant entry external dcl 89 ref 352 369 377 403 435 452 sys_log_$error_log 000060 constant entry external dcl 90 ref 302 471 500 sysdir 22 based char(64) level 2 packed packed unaligned dcl 2-55 ref 175 system_admin 676 based char(32) array level 2 packed packed unaligned dcl 7-32 set ref 235 236 325* 325 326* 326 415 416 417 system_info_$max_rs_number 000062 constant entry external dcl 91 ref 164 system_low 000030 constant bit(72) initial dcl 148 ref 447 450 table 14 based char(4) level 3 dcl 7-32 set ref 313* 313 tp 000222 automatic pointer dcl 132 set ref 300* 301 306 310 311 312 313 314 317 318 319 321 322 323 325 326 328 329 331 332 345 345 415 416 417 429 429 430 431 431 433 437 440 442 461 483 units 66 based fixed bin(17,0) array level 3 dcl 7-32 set ref 228 323* 323 unspec builtin function dcl 159 ref 347 347 up_sat_$make_sat_hash 000064 constant entry external dcl 92 ref 475 up_sysctl_$check_acs 000066 constant entry external dcl 93 ref 203 update_attributes 11 based bit(1) level 3 packed packed unaligned dcl 7-32 ref 169 update_authorization 11(01) based bit(1) level 3 packed packed unaligned dcl 7-32 ref 168 user_abs_attributes based structure level 1 dcl 10-25 user_attributes based structure level 1 dcl 9-21 userid 000334 automatic char(32) array level 2 in structure "sys_dir_acl" dcl 140 in procedure "up_sat_" set ref 417* 420* userid 31 based char(30) array level 3 in structure "project" packed packed unaligned dcl 7-53 in procedure "up_sat_" set ref 542* 542 543* 543 544* 544 545* 545 ut_header based structure level 1 dcl 12-16 ute based structure level 1 dcl 11-78 utep 000444 automatic pointer initial dcl 11-76 set ref 362* 363 363 365 368 369 369 371* 374 374 377 377 377 377 380* 400* 401 401 403 403 405* 11-76* uwt 46 based structure array level 2 dcl 7-32 uwt_size 45 based fixed bin(17,0) level 2 dcl 7-32 set ref 217 222 319* 319 321 verify builtin function dcl 159 ref 223 235 236 252 275 version 37 based fixed bin(17,0) level 2 dcl 7-32 set ref 182 329* w_dir 15 based char(64) level 3 dcl 7-32 set ref 314* 314 warning_time 502 based fixed bin(17,0) level 3 dcl 5-33 ref 371 405 wordcount parameter fixed bin(17,0) dcl 59 set ref 13 177 198 483* 484 486 xp 000224 automatic pointer dcl 133 set ref 433* 434 435 440 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. ABS_ATTRIBUTE_NAMES internal static varying char(28) initial array dcl 10-38 ABS_FLAG_NAMES internal static varying char(8) initial array dcl 11-326 ACTIVE_VALUES internal static char(18) initial array dcl 3-86 ALT_USER_ATTRIBUTE_NAMES internal static char(20) initial array packed unaligned dcl 9-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 A_ACCESS internal static bit(3) initial packed unaligned dcl 1-11 A_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 Automatic_authentication internal static fixed bin(17,0) initial dcl 6-16 DERIVE_MASK internal static bit(2) initial packed unaligned dcl 11-280 DIAL_SERVER_FLAG_NAMES internal static varying char(12) initial array dcl 11-332 DIR_ACCESS_MODE_NAMES internal static char(4) initial array packed unaligned dcl 1-33 DONT_MASK internal static bit(2) initial packed unaligned dcl 11-280 DO_MASK internal static bit(2) initial packed unaligned dcl 11-280 E_ACCESS internal static bit(3) initial packed unaligned dcl 1-11 E_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 LOGIN_RESULT_VALUES internal static varying char(24) initial array dcl 11-338 MASK_CTL_NAMES internal static varying char(12) initial array dcl 11-284 MAX_HT_BUCKETS_IN_SEG internal static fixed bin(17,0) initial dcl 4-24 M_ACCESS internal static bit(3) initial packed unaligned dcl 1-11 M_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 Manual_authentication internal static fixed bin(17,0) initial dcl 6-16 NOW_DIALED internal static fixed bin(17,0) initial dcl 3-76 NOW_DIALED_OUT internal static fixed bin(17,0) initial dcl 3-76 NOW_DIALING internal static fixed bin(17,0) initial dcl 3-76 NOW_FREE internal static fixed bin(17,0) initial dcl 3-76 NOW_HAS_PROCESS internal static fixed bin(17,0) initial dcl 3-76 NOW_HUNG_UP internal static fixed bin(17,0) initial dcl 3-76 NOW_LISTENING internal static fixed bin(17,0) initial dcl 3-76 N_ACCESS internal static bit(3) initial packed unaligned dcl 1-11 N_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 No_authentication internal static fixed bin(17,0) initial dcl 6-16 Nominal_authentication internal static fixed bin(17,0) initial dcl 6-16 PREEMPT_BUMPED internal static fixed bin(17,0) initial dcl 3-132 PREEMPT_BUMPED_NO_TERM internal static fixed bin(17,0) initial dcl 3-132 PREEMPT_LOAD_CTL internal static fixed bin(17,0) initial dcl 3-132 PREEMPT_TERMSGNL_RECEIVED internal static fixed bin(17,0) initial dcl 3-132 PREEMPT_TERM_SENT internal static fixed bin(17,0) initial dcl 3-132 PREEMPT_UNBUMP internal static fixed bin(17,0) initial dcl 3-132 PREEMPT_UNBUMP_IGNORE_ALARM internal static fixed bin(17,0) initial dcl 3-132 PREEMPT_VALUES internal static varying char(28) initial array dcl 3-142 PROCESS_TYPE_NAMES internal static varying char(12) initial array dcl 11-265 PT_ABSENTEE internal static fixed bin(17,0) initial dcl 11-261 PT_ALARM internal static fixed bin(17,0) initial dcl 3-106 PT_BUMP internal static fixed bin(17,0) initial dcl 3-106 PT_DAEMON internal static fixed bin(17,0) initial dcl 11-261 PT_DESTROY_REQUEST internal static fixed bin(17,0) initial dcl 3-106 PT_DETACH internal static fixed bin(17,0) initial dcl 3-106 PT_FPE internal static fixed bin(17,0) initial dcl 3-106 PT_HANGUP internal static fixed bin(17,0) initial dcl 3-106 PT_INTERACTIVE internal static fixed bin(17,0) initial dcl 11-261 PT_LOGOUT internal static fixed bin(17,0) initial dcl 3-106 PT_NEW_PROC_AUTH internal static fixed bin(17,0) initial dcl 3-106 PT_NEW_PROC_REQUEST internal static fixed bin(17,0) initial dcl 3-106 PT_OPERATOR_TERMINATE internal static fixed bin(17,0) initial dcl 3-106 PT_SHUTDOWN internal static fixed bin(17,0) initial dcl 3-106 PT_UNBUMP internal static fixed bin(17,0) initial dcl 3-106 PW_FLAG_NAMES internal static varying char(12) initial array dcl 11-290 REW_ACCESS internal static bit(3) initial packed unaligned dcl 1-11 REW_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 RE_ACCESS internal static bit(3) initial packed unaligned dcl 1-11 RE_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 RW_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 R_ACCESS internal static bit(3) initial packed unaligned dcl 1-11 R_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 SAT_project_name_length internal static fixed bin(17,0) initial dcl 7-24 SA_ACCESS internal static bit(3) initial packed unaligned dcl 1-11 SA_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 SEG_ACCESS_MODE_NAMES internal static char(4) initial array packed unaligned dcl 1-30 SMA_ACCESS internal static bit(3) initial packed unaligned dcl 1-11 SMA_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 SM_ACCESS internal static bit(3) initial packed unaligned dcl 1-11 SM_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 STATE_VALUES internal static char(15) initial array dcl 3-70 S_ACCESS internal static bit(3) initial packed unaligned dcl 1-11 S_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 TABLE_NAMES internal static char(20) initial array packed unaligned dcl 11-271 TAG_ABSENTEE internal static char(1) initial packed unaligned dcl 3-93 TAG_DAEMON internal static char(1) initial packed unaligned dcl 3-93 TAG_INTERACTIVE internal static char(1) initial packed unaligned dcl 3-93 TAG_PROXY internal static char(1) initial packed unaligned dcl 3-93 TAG_UFT internal static char(1) initial packed unaligned dcl 3-93 TRA_VEC_VALUES internal static char(32) initial array dcl 3-54 TTY_DIALED internal static fixed bin(17,0) initial dcl 3-64 TTY_HUNG internal static fixed bin(17,0) initial dcl 3-64 TTY_KNOWN internal static fixed bin(17,0) initial dcl 3-64 TTY_MASKED internal static fixed bin(17,0) initial dcl 3-64 UFLAG_NAMES internal static varying char(24) initial array dcl 11-303 USER_ATTRIBUTES_always_allowed internal static bit(36) initial dcl 9-100 USER_ATTRIBUTES_default_in_pdt internal static bit(36) initial dcl 9-104 USER_ATTRIBUTES_settable_by_user internal static bit(36) initial dcl 9-108 USER_ATTRIBUTE_NAMES internal static char(20) initial array packed unaligned dcl 9-50 UTE_version_4 internal static fixed bin(17,0) initial dcl 11-74 WAIT_ANSWERBACK internal static fixed bin(17,0) initial dcl 3-25 WAIT_BEFORE_HANGUP internal static fixed bin(17,0) initial dcl 3-25 WAIT_CONNECT_REQUEST internal static fixed bin(17,0) initial dcl 3-25 WAIT_DELETE_CHANNEL internal static fixed bin(17,0) initial dcl 3-25 WAIT_DESTROY_REQUEST internal static fixed bin(17,0) initial dcl 3-25 WAIT_DETACH internal static fixed bin(17,0) initial dcl 3-25 WAIT_DIALUP internal static fixed bin(17,0) initial dcl 3-25 WAIT_DIAL_OUT internal static fixed bin(17,0) initial dcl 3-25 WAIT_DIAL_RELEASE internal static fixed bin(17,0) initial dcl 3-25 WAIT_DISCARD_WAKEUPS internal static fixed bin(17,0) initial dcl 3-25 WAIT_FIN_PRIV_ATTACH internal static fixed bin(17,0) initial dcl 3-25 WAIT_FIN_TANDD_ATTACH internal static fixed bin(17,0) initial dcl 3-25 WAIT_GREETING_MSG internal static fixed bin(17,0) initial dcl 3-25 WAIT_HANGUP internal static fixed bin(17,0) initial dcl 3-25 WAIT_LOGIN_ARGS internal static fixed bin(17,0) initial dcl 3-25 WAIT_LOGIN_LINE internal static fixed bin(17,0) initial dcl 3-25 WAIT_LOGOUT internal static fixed bin(17,0) initial dcl 3-25 WAIT_LOGOUT_HOLD internal static fixed bin(17,0) initial dcl 3-25 WAIT_LOGOUT_SIG internal static fixed bin(17,0) initial dcl 3-25 WAIT_NEW_PASSWORD internal static fixed bin(17,0) initial dcl 3-25 WAIT_NEW_PROC internal static fixed bin(17,0) initial dcl 3-25 WAIT_NEW_PROC_REQUEST internal static fixed bin(17,0) initial dcl 3-25 WAIT_OLD_PASSWORD internal static fixed bin(17,0) initial dcl 3-25 WAIT_PASSWORD internal static fixed bin(17,0) initial dcl 3-25 WAIT_REMOVE internal static fixed bin(17,0) initial dcl 3-25 WAIT_SLAVE_REQUEST internal static fixed bin(17,0) initial dcl 3-25 WAIT_TANDD_HANGUP internal static fixed bin(17,0) initial dcl 3-25 W_ACCESS internal static bit(3) initial packed unaligned dcl 1-11 W_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 authentication_level_names internal static char(12) initial array packed unaligned dcl 6-21 hash_table_size_ automatic fixed bin(17,0) dcl 4-25 installation_parms_version_1 internal static fixed bin(17,0) initial dcl 5-37 installation_parms_version_2 internal static fixed bin(17,0) initial dcl 5-38 rifp automatic pointer dcl 6-6 NAMES DECLARED BY EXPLICIT CONTEXT. badsa 001240 constant label dcl 237 ref 235 badx 003006 constant label dcl 430 ref 438 bast 001273 constant label dcl 248 ref 246 cant_add_or_delete_proj 004053 constant label dcl 522 ref 391 427 copy 004413 constant entry internal dcl 530 ref 356 445 eek 002507 constant label dcl 395 ref 393 make_sat_hash 004071 constant entry external dcl 568 no_dir 004042 constant label dcl 518 rnp 002474 constant label dcl 391 ref 342 sak 002277 constant label dcl 373 ref 366 368 set_acl1 002737 constant label dcl 420 ref 415 unab 003660 constant label dcl 500 ref 493 495 up_sat_ 000550 constant entry external dcl 13 x1 002636 constant label dcl 409 ref 333 385 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 5274 5374 4730 5304 Length 6100 4730 100 467 343 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME up_sat_ 426 external procedure is an external procedure. copy internal procedure shares stack frame of external procedure up_sat_. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME up_sat_ 000100 access_ceiling up_sat_ 000102 auth_string up_sat_ 000112 csc_long up_sat_ 000144 csc_short up_sat_ 000146 debg up_sat_ 000150 do_attributes up_sat_ 000151 do_authorization up_sat_ 000152 htp up_sat_ 000154 i up_sat_ 000155 j up_sat_ 000156 jj up_sat_ 000157 k up_sat_ 000160 max_rs_number up_sat_ 000161 maxprim up_sat_ 000162 mode up_sat_ 000163 movelen up_sat_ 000164 new_project up_sat_ 000166 newhtp up_sat_ 000170 offset up_sat_ 000171 old_auth_string up_sat_ 000202 oldhtp up_sat_ 000204 p up_sat_ 000206 procid up_sat_ 000210 q up_sat_ 000212 satep up_sat_ 000214 satp up_sat_ 000216 sp up_sat_ 000220 syj up_sat_ 000222 tp up_sat_ 000224 xp up_sat_ 000226 dir_acl up_sat_ 000334 sys_dir_acl up_sat_ 000442 ansp up_sat_ 000444 utep up_sat_ THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. alloc_char_temp call_ext_out_desc call_ext_out return_mac shorten_stack ext_entry_desc clock_mac THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. aim_check_$greater_or_equal aim_check_$in_range asu_$bump_code convert_status_code_ display_access_class_ display_access_class_$range get_group_id_ get_process_id_ hash_$in hash_$make hash_$opt_size hcs_$chname_file hcs_$delentry_seg hcs_$initiate hcs_$make_seg hcs_$set_bc hcs_$set_safety_sw hcs_$truncate_seg ioa_$rsnnl sys_log_ sys_log_$error_log system_info_$max_rs_number up_sat_$make_sat_hash up_sysctl_$check_acs THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. as_error_table_$proj_auth_excludes as_error_table_$proj_deleted as_error_table_$proj_max error_table_$noentry LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 111 000531 121 000533 124 000534 2 53 000535 11 76 000536 13 000541 162 000576 164 000602 165 000611 166 000622 168 000625 169 000634 171 000637 173 000644 174 000645 175 000647 176 000654 177 000661 178 000664 179 000671 180 000673 182 000674 183 000701 184 000706 185 000710 187 000711 188 000714 189 000721 190 000723 192 000724 193 000726 194 000733 195 000735 197 000736 198 000742 199 000747 200 000754 201 000756 203 000757 204 001015 205 001024 206 001031 207 001033 210 001034 211 001100 212 001104 213 001112 214 001114 217 001115 218 001123 219 001130 220 001132 222 001133 223 001141 224 001161 225 001166 226 001170 228 001171 229 001174 230 001177 231 001204 232 001206 234 001207 235 001211 236 001226 237 001240 238 001245 239 001247 241 001250 243 001251 245 001261 246 001267 247 001271 248 001273 249 001300 250 001302 252 001303 253 001315 254 001322 255 001324 257 001325 259 001341 260 001347 261 001352 262 001357 263 001374 264 001377 266 001400 268 001414 269 001431 270 001434 273 001435 274 001437 275 001441 276 001454 277 001472 278 001475 280 001476 282 001514 283 001522 285 001524 286 001532 287 001534 288 001552 289 001555 293 001556 294 001561 295 001563 300 001565 301 001625 302 001631 303 001667 305 001670 306 001677 310 001704 311 001705 312 001707 313 001715 314 001717 316 001722 317 001724 318 001726 319 001730 321 001732 322 001741 323 001753 324 001757 325 001761 326 001770 328 001773 329 001775 331 001777 332 002007 333 002013 334 002015 335 002017 336 002033 337 002042 340 002054 341 002056 342 002060 344 002061 345 002063 346 002065 347 002067 350 002075 351 002106 352 002120 356 002155 360 002156 361 002162 362 002173 363 002200 365 002210 366 002213 367 002215 368 002217 369 002221 371 002253 374 002277 377 002342 380 002430 384 002451 385 002453 387 002454 391 002474 393 002476 394 002503 395 002507 396 002525 397 002530 399 002531 400 002541 401 002546 403 002556 405 002610 408 002634 409 002636 411 002640 412 002645 413 002651 414 002653 415 002661 416 002670 417 002702 418 002732 419 002735 420 002737 424 002756 425 002771 426 002777 427 003002 429 003004 430 003006 431 003011 433 003017 434 003022 435 003024 437 003052 438 003054 440 003055 442 003057 443 003063 444 003065 445 003074 446 003075 447 003077 448 003117 450 003120 451 003127 452 003140 455 003172 456 003175 458 003176 459 003200 460 003203 461 003214 468 003217 469 003263 470 003267 471 003275 472 003332 473 003335 475 003336 476 003372 477 003375 478 003407 483 003410 484 003417 485 003420 486 003427 487 003460 491 003511 492 003561 493 003565 494 003572 495 003634 496 003637 498 003640 499 003655 500 003660 501 003713 502 003721 503 003723 506 003724 507 003727 508 003734 511 003746 512 004003 514 004037 516 004041 518 004042 519 004050 520 004052 522 004053 524 004061 525 004063 568 004064 586 004105 587 004133 588 004136 589 004143 592 004144 593 004147 594 004157 595 004163 596 004166 597 004214 598 004217 599 004232 600 004272 602 004273 603 004302 604 004327 605 004332 606 004345 607 004405 611 004406 613 004410 614 004412 530 004413 532 004414 533 004416 534 004423 537 004425 539 004430 540 004435 541 004437 542 004441 543 004444 544 004447 545 004452 546 004455 547 004457 548 004461 549 004463 550 004465 551 004471 552 004475 553 004501 554 004505 555 004507 556 004511 557 004513 558 004515 559 004517 560 004521 563 004523 565 004525 ----------------------------------------------------------- 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