COMPILATION LISTING OF SEGMENT as_init_ Compiled by: Multics PL/I Compiler, Release 33a, of May 30, 1990 Compiled at: ACTC Technologies Inc. Compiled on: 10/14/90 0950.0 mdt Sun Options: optimize map 1 /****^ *********************************************************** 2* * * 3* * Copyright, (C) BULL HN Information Systems Inc., 1990 * 4* * * 5* * Copyright, (C) Honeywell Bull Inc., 1987 * 6* * * 7* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 8* * * 9* * Copyright (c) 1972 by Massachusetts Institute of * 10* * Technology and Honeywell Information Systems, Inc. * 11* * * 12* *********************************************************** */ 13 14 /****^ HISTORY COMMENTS: 15* 1) change(86-05-13,GJohnson), approve(86-05-13,MCR7387), 16* audit(86-05-13,Martinson), install(86-05-14,MR12.0-1055): 17* Correct error message documentation. 18* 2) change(86-05-15,Gilcrease), approve(86-05-16,MCR7370), 19* audit(86-06-25,Lippard), install(86-06-30,MR12.0-1082): 20* Update UTE version to 3, for -truncate .absout SCP 6297. 21* 3) change(86-06-29,Swenson), approve(87-07-13,MCR7741), 22* audit(87-07-30,Brunelle), install(87-08-04,MR12.1-1055): 23* A) Modified to zero anstbl.login_server_present upon AS initialization. 24* B) Also added code to allow testing of answering service. 25* 4) change(87-03-10,GDixon), approve(87-07-13,MCR7741), 26* audit(87-07-30,Brunelle), install(87-08-04,MR12.1-1055): 27* A) Also zeroed anstbl.(login_server_process_id 28* login_server_event_channel) upon AS initialization. 29* B) Removed initialization of ls_request_server_ from as_init_, since 30* this facility is not B2 certified and is only needed at sites 31* running DSA. 32* C) Corrected coding errors and standard violations. 33* D) Move initialization of ls_message_buffer back into as_init_. It is 34* needed for act_ctl_ and load_ctl_. 35* E) Upgraded for change to answer_table.incl.pl1 and 36* user_table_entry.incl.pl1 37* 5) change(87-05-06,GDixon), approve(87-07-13,MCR7741), 38* audit(87-07-30,Brunelle), install(87-08-04,MR12.1-1055): 39* Don't call mc_quiesce_ when running test Answering Service. 40* 6) change(87-06-22,GDixon), approve(87-07-13,MCR7741), 41* audit(87-07-30,Brunelle), install(87-08-04,MR12.1-1055): 42* A) Correctly set as_data_$rs_ptrs. The do group index wasn't properly 43* used, causing reference through unset variable. 44* 7) change(87-06-28,GDixon), approve(87-07-13,MCR7741), 45* audit(87-07-30,Brunelle), install(87-08-04,MR12.1-1055): 46* A) Correct error message printed for sub_error_ condition by ucs 47* procedure. 48* 8) change(87-07-11,GDixon), approve(87-07-11,MCR7741), 49* audit(87-07-30,Brunelle), install(87-08-04,MR12.1-1055): 50* A) Set as_data_$rtdtp to null after the RTDT is terminated by as_init_. 51* 9) change(87-07-27,GDixon), approve(87-07-27,MCR7741), 52* audit(87-07-30,Brunelle), install(87-08-04,MR12.1-1055): 53* A) Removed call to network_accounting_gate_$test. This is now done in 54* ls_request_server_$init. 55* B) Added descriptions for undoc'd operator messages. 56* C) Convert to sys_log_$general for many calls. 57* 10) change(87-08-28,GDixon), approve(87-08-28,PBF7741), 58* audit(87-08-28,Martinson), install(87-09-01,MR12.1-1095): 59* A) Correct calls to Abort internal proc to ensure that they always pass 60* a ioa_ control string. Otherwise, sys_log_$general reports an 61* error. 62* B) Change $check_shut_ok to check for as_data_$ansp being null. If so, 63* then set return arg to indicate no users are logged in. 64* 11) change(87-09-24,GDixon), approve(88-01-06,MCR7786), 65* audit(88-01-08,Parisek), install(88-01-12,MR12.2-1012): 66* A) Change calls to Abort internal proc to pass a code of -1 rather than 67* 0. Abort calls sys_log_$general which ignores the message in the 68* call when the code is 0. It special-cases code values of -1 by 69* printing the ioa_ control string but excluding expansion of the 70* error table code value. (as 562) 71* B) Call condition_interpreter_ to further describe unexpected conditions 72* occurring during as initialization. (as 394, phx18406) 73* 12) change(90-10-03,WAAnderson), approve(90-10-03,MCR8213), 74* audit(90-10-10,Vu), install(90-10-14,MR12.4-1040): 75* Removed extraneous '^a:' from log message. 76* END HISTORY COMMENTS */ 77 78 79 /* format: style4 */ 80 as_init_: 81 proc (a_code); 82 83 /* Answering Service initization procedure 84* 85* Originally coded by J. F. Ossanna Jan 1969 86* Recoded by Michael J. Spier and Robert C. Daley February 1969 87* Revised by Michael D. Schroeder, June 1969 88* Recoded in PL/1 for new System/User Control by Michael J. Spier, January 1970 89* revised nov 70 THVV 90* modified for new SAT format by Janice B. Phillipps, March 1972 91* revised March 73 THVV 92* Modified 750309 by PG to add request dispatcher 93* Modified 750415 by PG to initialize initial_modes_table 94* Modified July 1975 by: WSS, TAC, and LJS, for RCP, Priority Scheduler, and syserr logging, respectively. 95* Modified Aug 75 by THVV for Channel Definition Table 96* Modified April 1976 by T. Casey to be sure to print error messages if initialization fails 97* Modified May 1976 by T. Casey to save and restore shift information in whotab header, 98* . and by P. Green to change initial modes for network lines. 99* Modified 760618 by Roy P. Planalp to attach FTP channels 100* Modified August 1976 by T. Casey to initialize for loading FNPs. 101* Modified November 1976 by T. Casey to fix initialization of stopped FNP. 102* Modified December, 1976, by D. M. Wells to validate ARPANET host number in 103* installation_parms. 104* Modified June, 1977, by Robert S. Coren to remove references to initial_modes_table. 105* Modified August 1977 by T. Casey to call pdir_volume_manager_$init. 106* . and to complete channel deletions requested by CDT installations during last bootload. 107* Modified 03/20/78 by C. D. Tavares for new rcp handling (RTDT). 108* Modified May 1978 by T. Casey to add an argument to the load_ctl_$set_maxunits call. 109* Modified Fall 1978 by Larry Johnson for ring-0 demultiplexing. 110* Modified November 1978 by T. Casey for MR7.0 absentee control parameters and other new installation_parms. 111* Modified April 1979 by T. Casey for Mr7.0a to put back feature to not do automatic abs start in a special session. 112* Modified August 1979 by C. Hornig to only listen to non-MCS channels during initialization and for new PNT. 113* Modified Feb 1980 by M. B. Armstrong to implement multiple rate structures. (UNCA) 114* Modified March 1980 by Tom Casey to implement metering of answering service resource usage. 115* Modified June 1981 by E. N. Kittlitz for UNCA rate-structures 116* Modified June 1981 by T. Casey for MR9.0 to set event wait channel priority highest. 117* Modified August 1981 by E. N. Kittlitz for ucs recursion counter. 118* Modified November 1981, E. N. Kittlitz. user_table_entry conversion. 119* Modified December 1981, E. N. Kittlitz. convert to whotab version 1. 120* Modified December 1981, Benson I. Margulies. CDT tree initialization. 121* Modified February 1982, E. N. Kittlitz to fix ucs recursion counter. 122* Modified April 1982, E. N. Kittlitz. beginnings of new AS initialization strategy. 123* Modified October 1982, E. N. Kittlitz. rename as_request_ to as_request_server_, add mc_quiesce_. 124* Modified January 1982, E. N. Kittlitz. turn_on_mc_ before doing anything else. 125* Modified 83-11-21 BIM. turn quota checking on, having changed pds to start out with quota checking off. 126* Modified 84-04-02 BIM. Remove support for cdte.dim. All channels are MCS. 127* Modified 1984-09-13 BIM. Initialize anstbl.max_users, the answering 128* service's idea of the number of APTE's, from the 129* TCD card. This insures consistency with the hardcore. 130* Modified: 131* 10/02/84 by R. Michael Tague: Changed the as_data_$acsdir from rcp to 132* admin_acs. 133* Modified 84-11-04 by E. A. Ranzenbach for whotab.session... 134* Modified 1984-12, BIM: ssu_ system control and related changed. 135* Modified 1985-01-15 by E. Swenson for anstbl.session_uid_counter. 136* Modified 1985-02-18, BIM: call as_user_message_$system_init. 137* Modified 1985-04-19, E. Swenson to correct any_other handler. 138**/ 139 140 /* Parameters */ 141 142 dcl a_code fixed bin (35) parameter; 143 dcl a_n_users fixed bin (35) parameter; 144 145 /* External Static */ 146 147 dcl active_all_rings_data$system_id char (8) aligned ext; 148 dcl error_table_$action_not_performed fixed bin (35) ext static; 149 dcl error_table_$no_r_permission fixed bin (35) ext static; 150 dcl error_table_$no_w_permission fixed bin (35) ext static; 151 dcl error_table_$noentry fixed bin (35) ext static; 152 dcl error_table_$unexpected_condition fixed bin (35) ext static; 153 dcl error_table_$unimplemented_version fixed bin (35) ext static; 154 dcl sys_info$max_seg_size fixed bin (35) ext static; 155 156 /* Entries */ 157 158 dcl absentee_user_manager_$abs_as_init entry; 159 dcl absentee_user_manager_$term_aum entry; 160 dcl act_ctl_$act_ctl_close entry; 161 dcl act_ctl_$init entry; 162 dcl admin_$down1 entry (fixed bin (71), char (*) aligned, fixed bin (71)); 163 dcl as_dump_$dont_use_mc entry (char (*)); 164 dcl as_meter_$asmt_init entry; 165 dcl as_meter_$enter entry (fixed bin); 166 dcl as_meter_$exit entry (fixed bin); 167 dcl as_request_server_$init entry; 168 dcl asu_$init entry; 169 dcl as_user_message_$priv_system_init entry (fixed bin (35)); 170 dcl cdt_mgr_$thread entry (ptr, fixed bin (35)); 171 dcl condition_ entry (char (*), entry); 172 dcl config_$find entry (character (4) aligned, pointer); 173 dcl cu_$level_set entry (fixed bin (6)); 174 dcl daemon_user_manager_$init entry; 175 dcl device_acct_$init entry; 176 dcl dialup_$init entry; 177 dcl get_group_id_ entry () returns (char (32)); 178 dcl get_group_id_$tag_star entry () returns (char (32)); 179 dcl get_process_id_ entry () returns (bit (36)); 180 dcl get_ring_ entry () returns (fixed bin (3)); 181 dcl get_system_free_area_ entry() returns(ptr); 182 dcl hash_$search entry (ptr, char (*), bit (36) aligned, fixed bin (35)); 183 dcl hc_initlzr_auxl_init_$init entry; 184 dcl hcs_$add_acl_entries entry (char (*), char (*), ptr, fixed bin, fixed bin (35)); 185 dcl hcs_$make_seg entry (char (*), char (*), char (*), fixed bin (5), ptr, fixed bin (35)); 186 dcl hcs_$replace_acl entry (char (*), char (*), ptr, fixed bin, bit (1), fixed bin (35)); 187 dcl hcs_$set_ring_brackets entry (char (*), char (*), (3) fixed bin (3), fixed bin (35)); 188 dcl hcs_$terminate_noname ext entry (pointer, fixed bin (35)); 189 dcl hcs_$truncate_seg entry (ptr, fixed bin, fixed bin (35)); 190 dcl hcs_$wakeup entry (bit (36) aligned, fixed bin (71), fixed bin (71), fixed bin (35)); 191 dcl hphcs_$restore_quota entry; 192 dcl ipc_$set_wait_prior entry (fixed bin (35)); 193 dcl initiate_file_ entry (char (*), char (*), bit (*), ptr, fixed bin (24), fixed bin (35)); 194 dcl ioa_ entry () options (variable); 195 dcl ioa_$rsnnl entry () options (variable); 196 dcl lg_ctl_$init entry (bit (1) aligned); 197 dcl load_ctl_$init entry; 198 dcl load_ctl_$set_maxunits entry (fixed bin); 199 dcl ls_request_server_$shutdown entry (fixed bin (35)); 200 dcl mail_table_priv_$test entry (char (*)); 201 dcl mc_quiesce_ entry; 202 dcl multiplexer_mgr_$init entry (pointer, fixed bin (35)); 203 dcl multiplexer_mgr_$shut entry; 204 dcl multiplexer_mgr_$system_go entry; 205 dcl multiplexer_mgr_$system_init entry (fixed bin (35)); 206 dcl pathname_ entry (char (*), char (*)) returns (char (168)); 207 dcl pdir_volume_manager_$init entry; 208 dcl phcs_$ring_0_message entry (char (*)); 209 dcl pnt_manager_$test entry (char (*)); 210 dcl rcp_sys_$initialize ext entry (1 aligned like rcp_init_flags, fixed bin (35)); 211 dcl reassign_work_classes_ entry (fixed bin (35)); 212 dcl sys_log_ entry options (variable); 213 dcl syserr_log_man_$as_copy_init entry (char (*), fixed bin (9)); 214 dcl syserr_log_man_$as_copy_log entry; 215 dcl timer_manager_$sleep entry (fixed bin (71), bit (2)); 216 dcl turn_on_mc_ entry; 217 dcl up_sat_$make_sat_hash entry (ptr, fixed bin, ptr, char (*), fixed bin (35)); 218 dcl up_sysctl_$init entry; 219 220 /* builtins */ 221 222 dcl (addr, bin, bit, clock, divide, fixed, hbound, length, null, rel, rtrim, size, substr) builtin; 223 224 /* Internal Static */ 225 226 dcl (next_sd, next_sd_until) fixed bin (71) int static; 227 dcl next_sd_msg char (124) aligned int static; 228 229 /* Constant */ 230 231 dcl FALSE bit (1) aligned initial ("0"b) internal static options (constant); 232 dcl ME char (8) int static init ("as_init_") options (constant); 233 dcl MINS_30 fixed bin (71) int static init (1800000000) options (constant); 234 dcl NL char (1) aligned int static init (" 235 ") options (constant); 236 dcl TRUE bit (1) aligned initial ("1"b) internal static options (constant); 237 238 /* Automatic */ 239 240 dcl abort_label label automatic; 241 dcl answer char (100); 242 dcl autp ptr automatic; 243 dcl cdt_scan_try_count fixed bin; 244 dcl check fixed bin; 245 dcl code fixed bin (35); 246 dcl debug_flag bit (1) aligned automatic; 247 dcl dutp ptr automatic; 248 dcl error_message_entry entry variable options (variable); 249 dcl i fixed bin; 250 dcl ip ptr automatic; 251 dcl last_sc fixed bin (71); 252 dcl metering_enabled bit (1) aligned automatic; 253 dcl n_acl fixed bin; 254 dcl next_sc fixed bin (71); 255 dcl normal_flag bit (1) aligned; 256 dcl rbkt (3) fixed bin (3); 257 dcl rs_name char (32) automatic; 258 dcl rs_number fixed bin automatic; 259 dcl sat_htp ptr automatic; 260 dcl satp ptr automatic; 261 dcl shift fixed bin; /* to save shift info while truncating whotab */ 262 dcl system_area_ptr ptr automatic; 263 dcl system_control_dir char (168) automatic; 264 dcl ucs_recursion fixed bin init (0); /* level of signal recursion */ 265 dcl x fixed bin; 266 dcl whoptr ptr automatic; 267 268 dcl 1 acla (5) aligned, /* ACL structure */ 269 2 userid char (32), 270 2 mode bit (36), 271 2 rpad bit (36) init ((5) (36)"0"b), 272 2 retcd fixed bin (35); 273 274 dcl 1 our_acl aligned like general_extended_acl_entry automatic; 275 276 /* Based */ 277 278 dcl system_area area based (system_area_ptr); 279 280 /* INCLUDE FILES are at the end, after all the code, but before the message documentation */ 281 282 as_init: 283 entry (a_code); 284 285 normal_flag = "0"b; /* Special session */ 286 go to initialize; 287 288 startup: 289 entry (a_code); 290 291 normal_flag = "1"b; /* not special session */ 292 293 initialize: 294 295 metering_enabled = FALSE; 296 code = 0; 297 abort_label = INIT_RETURN; 298 299 if sc_stat_$Multics then /* reject re-initialization */ 300 call Abort (error_table_$action_not_performed, 301 "Multics already initialized."); 302 303 if sc_stat_$test_mode then do; /* are we debugging? */ 304 as_data_$debug_flag = TRUE; 305 debug_flag = TRUE; 306 end; 307 else do; /* not debugging */ 308 as_data_$debug_flag = FALSE; 309 debug_flag = FALSE; 310 end; 311 312 system_control_dir = sc_stat_$sysdir; /* copy system directory name into internal static */ 313 as_data_$sysdir = system_control_dir; 314 as_data_$pdtdir = rtrim (system_control_dir) || ">pdt"; 315 as_data_$acsdir = rtrim (system_control_dir) || ">admin_acs"; 316 as_data_$rcpdir = rtrim (system_control_dir) || ">rcp"; 317 318 if ^debug_flag then 319 call condition_ ("any_other", ucs); /* Set up ugh. */ 320 321 if ^debug_flag then 322 call hphcs_$restore_quota; /* allow record_quota_overflow */ 323 call as_meter_$asmt_init; 324 call as_meter_$enter (ASINIT_METER); 325 metering_enabled = TRUE; 326 327 /* get the SAT. We need it now to set up the acl structure */ 328 329 call Initiate_Segment ("sat", satp); 330 as_data_$satp = satp; 331 332 if sat.version ^= SAT_version then /* SAT must be correct flavor. */ 333 call Abort (error_table_$unimplemented_version, 334 "SAT version inconsistent with declarations used in this program."); 335 336 337 rbkt (1) = as_data_$as_ring; /* Set up ring brackets. */ 338 rbkt (2), rbkt (3) = as_data_$max_user_ring; 339 acla.userid (1) = get_group_id_ (); /* Set up useful ACL. */ 340 acla.userid (2) = "*.SysDaemon.*"; /* ... */ 341 n_acl = 3; /* Continue with 3rd acla entry. */ 342 do i = 1 to 2 while (sat.system_admin (i) ^= ""); /* Generate ACL entries for the good guys */ 343 acla.userid (n_acl) = rtrim (sat.system_admin (i)) || ".*"; /* Put administrators on ACL. */ 344 n_acl = n_acl + 1; /* ... */ 345 end; 346 acla.userid (n_acl) = "*.*.*"; /* This ACL provides for everybody. */ 347 do i = 1 to n_acl; /* More setup. */ 348 acla.mode (i) = RW_ACCESS; /* RW for all entries. */ 349 end; 350 acla.mode (2) = R_ACCESS; /* Daemons not to mess up */ 351 acla.mode (n_acl) = N_ACCESS; /* Average user gets no access to system tables. */ 352 353 call ipc_$set_wait_prior (code); /* Input on operator console has highest priority */ 354 /* See as_wakeup_priorities.incl.pl1 for more information */ 355 if code ^= 0 then 356 call Log_Error (code, 357 "Could not set priority for IPC wait channels."); 358 359 /* set up the template pit */ 360 361 call hcs_$make_seg ("", "pit_temp_", "", 01011b, as_data_$pit_ptr, code); /* create pit template segment */ 362 if as_data_$pit_ptr = null then /* what! our own process directory? */ 363 call Abort (code, "Cannot create pit_temp_."); 364 365 /* get the SAT paraphernalia */ 366 367 call Create_Segment ("sat.ht", sat_htp); /* by hook or by crook */ 368 369 if sat_htp -> htable.id ^= "ht01" & sat_htp -> htable.id ^= "ht02" then go to make_sat_hash; /* reasonable? */ 370 call hash_$search (sat_htp, "SysDaemon", (""b), code); /* give it a try */ 371 if code ^= 0 then do; 372 make_sat_hash: call Log_Error (-1, "Rebuilding SAT hash table."); 373 call up_sat_$make_sat_hash (satp, sat.n_projects, sat_htp, answer, code); 374 if code ^= 0 then 375 call Abort (code, "Cannot create ^a>sat.ht. ^a.", 376 system_control_dir, answer); 377 end; 378 as_data_$sat_htp = sat_htp; 379 380 /* Setup the various user tables */ 381 382 call Create_Segment ("answer_table", ansp); 383 as_data_$ansp = ansp; 384 call Create_Segment ("absentee_user_table", autp); 385 as_data_$autp = autp; 386 call Create_Segment ("daemon_user_table", dutp); 387 as_data_$dutp = dutp; 388 389 /* Get installation parameters and rate structures */ 390 391 call Initiate_Segment ("installation_parms", ip); 392 as_data_$rs_ptrs (0) = ip; 393 394 if installation_parms.version ^= installation_parms_version_2 then 395 call Abort (error_table_$unimplemented_version, 396 "installation_parms version ^d", 397 installation_parms.version); 398 399 if installation_parms.nrates < 0 | 400 installation_parms.nrates > hbound (as_data_$rs_ptrs, 1) then 401 call Abort (-1, 402 "installation_parms damaged. ^d rate structures defined; from ^d to ^d are allowed.", 403 installation_parms.nrates, 0, hbound(as_data_$rs_ptrs,1)); 404 405 do rs_number = 1 to installation_parms.nrates; /* other rates */ 406 call ioa_$rsnnl ("rate_structure_^d", rs_name, (0), rs_number); 407 call Initiate_Segment (rs_name, as_data_$rs_ptrs (rs_number)); 408 end; 409 410 if installation_parms.chn_wakeup_error_loop_count <= 0 then installation_parms.chn_wakeup_error_loop_count = 10; 411 if installation_parms.chn_wakeup_error_loop_seconds <= 0 then 412 installation_parms.chn_wakeup_error_loop_seconds = 3; 413 414 /* The resource stuff */ 415 416 call Initiate_Segment ("rtdt", rtdtp); 417 as_data_$rtdtp = rtdtp; 418 419 RTDT_area_len = 0; /* avoid PL/1 warning */ 420 if rtdt.installed_under_resource_mgt then 421 if installation_parms.rcp_init_flags.resource_mgmt_enabled = ""b then 422 call Abort (-1, "Resource management is disabled; ^a>rtdt needs it enabled.", 423 system_control_dir); 424 425 as_data_$rtdtp = null; 426 call hcs_$terminate_noname (rtdtp, 0); 427 428 /* First shot at the multiplexers */ 429 430 call multiplexer_mgr_$init (cdtp, code); /* Get cdt ptr */ 431 if code ^= 0 then 432 call Abort (code, "Calling multiplexer_mgr_$init."); 433 as_data_$cdtp = cdtp; 434 435 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 436 /* */ 437 /* Initialize the who table. This is a public listing of logged-in users */ 438 /* Cannot use Create_Segment for this, since whotab must have nonnull */ 439 /* reference name. */ 440 /* */ 441 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 442 443 call hcs_$make_seg (system_control_dir, "whotab", "whotab_", 1010b, whoptr, code); 444 if whoptr = null then 445 call Abort (code, "Could not create ^a>whotab", 446 system_control_dir); 447 448 our_acl.access_name = get_group_id_$tag_star (); 449 our_acl.mode = RW_ACCESS; 450 our_acl.extended_mode = ""b; 451 our_acl.status_code = 0; 452 453 call hcs_$add_acl_entries (system_control_dir, "whotab", addr (our_acl), 1, code); 454 if code ^= 0 then 455 call Abort (code, "Could not set RW access on ^a>whotab.", 456 system_control_dir); 457 458 as_data_$whoptr = whoptr; 459 next_sd = whotab.nextsd; /* Was previous shutdown? */ 460 next_sd_msg = whotab.why; /* .. if so we save it */ 461 next_sd_until = whotab.until; 462 shift = whotab.shift; /* save shift info */ 463 next_sc = whotab.next_shift_change_time; 464 last_sc = whotab.last_shift_change_time; 465 call hcs_$truncate_seg (whoptr, 0, code); /* Clear out all old junk. */ 466 467 /* truncating whotab is too drastic. change it some time. 468* NOTE: for MR10, a kludge was devised to allow expansion of the whotab 469* header. The header was 64 words long, user entries were 32 words. 470* A number of the early user entries were appropriated, with the understanding 471* the every 32 words from 100o up, there would be a word of 0s, corresponding 472* to the user entry being empty. This allows existing programs to run 473* without recompilation, provided that they honour the entry 'active' flag. 474* If truncation is eliminated, it must be ensured that this contract is kept. 475* Throughout the Answering Service, the value whotab.as_laste is used to 476* indicate the last used whotab index. User programs use whotab.laste, 477* which is the sum of whotab.as_laste and whotab.laste_adjust. 478**/ 479 480 whotab.version = WHOTAB_VERSION_1; 481 whotab.header_size = fixed (rel (addr (whotab.e (1)))); 482 whotab.entry_size = fixed (rel (addr (whotab.e (2)))) - fixed (rel (addr (whotab.e (1)))); 483 whotab.laste_adjust, whotab.laste = 484 divide (whotab.header_size - fixed (rel (addr (whotab.header_extension_mbz1))), whotab.entry_size, 17, 0); 485 whotab.shift = shift; /* put shift info back */ 486 whotab.next_shift_change_time = next_sc; 487 whotab.last_shift_change_time = last_sc; 488 whotab.n_rate_structures = installation_parms.nrates; /* number of R.S. at AS init */ 489 acla.mode (n_acl) = R_ACCESS; /* whotab is public */ 490 /* Create_Segment resets this back to N_ACCESS */ 491 492 call hcs_$replace_acl (system_control_dir, "whotab", addr (acla), n_acl, "1"b, code); 493 call hcs_$set_ring_brackets (system_control_dir, "whotab", rbkt, code); 494 495 /* now initialize various control variables */ 496 497 anstbl.header_version = ANSTBL_version_4; /* setup version number of dcl */ 498 anstbl.entry_version = UTE_version_4; 499 anstbl.user_table_type = PT_INTERACTIVE; 500 anstbl.header_length = fixed (rel (addr (anstbl.entry (1)))); 501 anstbl.max_size = divide (sys_info$max_seg_size - anstbl.header_length, size (ute), 17, 0); 502 anstbl.number_free, 503 anstbl.first_free, 504 anstbl.current_size, /* Clear number of busy entries. */ 505 anstbl.lock_count, /* Clear update interlock. */ 506 anstbl.nlin, /* Reset number of lines attached. */ 507 anstbl.n_units, /* Clear load on system. */ 508 anstbl.n_users = 0; /* Clear number of users. */ 509 510 anstbl.update_pending = "1"b; /* make sure to look in update directory */ 511 /**** The following substring is necessary because anstbl.sysdir is only 512* declared char (64). */ 513 anstbl.sysdir = substr (system_control_dir, 1, 64); 514 anstbl.special_message = NL; /* Nothing special in dialup buffer. */ 515 anstbl.message_lng = 0; /* ... */ 516 anstbl.message_update_time = clock (); 517 518 tcd_cardp = null (); 519 call config_$find (TCD_CARD_WORD, tcd_cardp); 520 if tcd_cardp = null () 521 then do; 522 call Log_Error (-1, 523 "No ""tcd"" card in the config deck. Assuming APT size of 1000."); 524 anstbl.max_users = 1000; 525 end; 526 else anstbl.max_users = tcd_card.no_apt; /* avoid errors from hardcore when we reach APT limit */ 527 528 anstbl.max_units = sat.max_units; /* ... */ 529 anstbl.n_sessions = anstbl.n_sessions + 1; /* Number of boots. */ 530 anstbl.as_tty = sc_stat_$master_channel; /* Copy in channel ID of initializer. */ 531 as_data_$as_procid, anstbl.as_procid = get_process_id_ (); /* Set up system process ID. */ 532 anstbl.processid_index = bin (substr (bit (bin (clock (), 52), 52), 9, 18), 18); 533 anstbl.session_uid_counter = 0; /* login attempts will increment */ 534 535 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 536 /* */ 537 /* The following flag, zeroed at answering service initialization time, is */ 538 /* used by dial_ctl_ to determine whether to call uc_cleanup_network_dials_ */ 539 /* or not. The flag is turned on by ls_rq_server_wakeup_ when a login */ 540 /* server request comes in -- indicating that there is indeed at least one */ 541 /* login server and it is potentially necessary to clean up MNA dialed */ 542 /* connections. The process_id and event_channel are cleared here since */ 543 /* they are used by ls_request_server_$init to determine if the */ 544 /* ls_request_server_ mechanism is already on. */ 545 /* */ 546 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 547 548 anstbl.login_server_present = FALSE; 549 anstbl.ls_request_server_process_id = ""b; 550 anstbl.ls_request_server_event_channel = 0; 551 552 if normal_flag then /* Normal startup? */ 553 anstbl.auto_maxu = 1; /* Yes. Turn on config-dependent load setting. */ 554 else do; 555 anstbl.auto_maxu = 0; /* Otherwise leave it off, since this is a special session */ 556 call absentee_user_manager_$term_aum; /* tell absentee not to start automatically */ 557 end; 558 559 call cu_$level_set ((get_ring_ ())); /* force validation level to current ring */ 560 561 whotab.sysid = active_all_rings_data$system_id; /* Get supervisor version from system tape. */ 562 whotab.timeup = clock (); /* Set bootload time. */ 563 whotab.mxunits = anstbl.max_units; /* Publish maxunits. */ 564 whotab.mxusers = anstbl.max_users; /* Also max users. */ 565 566 /* Now let other Answering Service procedures initialize themselves */ 567 568 call turn_on_mc_; /* turn on the message coordinator */ 569 /* NOTE: we must not use the CDT */ 570 571 call up_sysctl_$init; /* Allow table updates. */ 572 573 if ^debug_flag then do; 574 call multiplexer_mgr_$system_init (code); /* Initialize CDT and get FNPs started loading */ 575 if code ^= 0 then 576 call Abort (code, "Calling multiplexer_mgr_$system_init."); 577 end; 578 579 call dialup_$init; /* Turn on interactive user manager. */ 580 581 call as_request_server_$init; 582 583 call device_acct_$init; /* Set up device accounting table. */ 584 585 if ^debug_flag then do; 586 call as_user_message_$priv_system_init (code); /* Start up message transmission system. */ 587 if code ^= 0 then 588 call Abort (code, "Calling as_user_message_$priv_system_init."); 589 590 call rcp_sys_$initialize (installation_parms.rcp_init_flags, code); 591 if code ^= 0 then 592 call Abort (code, "Calling rcp_sys_$initialize."); 593 594 call hc_initlzr_auxl_init_$init; /* MUST COME AFTER CALL TO rcp_sys_$initialize */ 595 end; 596 597 call lg_ctl_$init (normal_flag); 598 599 call load_ctl_$init; 600 601 call asu_$init; 602 603 call daemon_user_manager_$init; /* must do before act_ctl_$init and after lg_ctl_$init */ 604 605 call absentee_user_manager_$abs_as_init; /* clear autbl before act_ctl_$init and reassign_work_classes_ */ 606 607 call act_ctl_$init; 608 609 /**** This is, logically, a part of load_ctl_init, but it must be done after 610* act_ctl_$init is called, which defines the shift. */ 611 612 call reassign_work_classes_ (code); /* this is, logically, a part of load_ctl_init */ 613 if code ^= 0 then 614 call Abort (code, "Error while defining initial work classes."); 615 616 if ^debug_flag then do; 617 call pdir_volume_manager_$init; 618 619 /**** Initialize copying of syserr log out of ring 0 */ 620 call syserr_log_man_$as_copy_init ("perm_syserr_log", installation_parms.syserr_log_copy_threshold); 621 end; 622 623 /**** If we are debugging the AS, use a special version of the PNT and 624* MAIL_TABLE. */ 625 if debug_flag then do; 626 call pnt_manager_$test (system_control_dir); 627 call mail_table_priv_$test (system_control_dir); 628 end; 629 630 call Initialize_Login_Server_Message_Buffer (); 631 632 call Log_Error (-1, "Multics ^a; Answering Service ^a", 633 whotab.sysid, as_data_$version); /* Not really an */ 634 /* error. */ 635 636 INIT_RETURN: 637 if metering_enabled then 638 call as_meter_$exit (ASINIT_METER); 639 a_code = 0; 640 return; 641 642 /* ============================================================= */ 643 644 go: 645 entry (a_code); 646 647 ansp = as_data_$ansp; 648 code = 0; 649 debug_flag = as_data_$debug_flag; 650 cdtp = as_data_$cdtp; /* get automatic storage back */ 651 metering_enabled = FALSE; 652 abort_label = GO_RETURN; 653 654 if sc_stat_$Go then /* called already */ 655 call Abort (error_table_$action_not_performed, 656 "Cannot type go twice."); 657 658 if ^sc_stat_$Multics then /* multics not called yet */ 659 call Abort (error_table_$action_not_performed, 660 "Type multics first."); 661 662 if ^debug_flag then 663 call condition_ ("any_other", ucs); /* in case die during init */ 664 call as_meter_$enter (ASINIT_METER); 665 666 if ^debug_flag then do; 667 call Check_CDT (); 668 669 call multiplexer_mgr_$system_go; /* in case any FNPs came up before we said "go" */ 670 end; 671 672 call load_ctl_$set_maxunits (anstbl.shift); /* just returns if auto_maxu is zero */ 673 674 /**** Should we set up an auto shudtown? */ 675 if next_sd > clock () + MINS_30 then do; /* Should we set up an auto shudtown? */ 676 call admin_$down1 (next_sd, next_sd_msg, next_sd_until); 677 end; 678 679 if anstbl.update_pending then do; /* kick-off any installs */ 680 whoptr = as_data_$whoptr; 681 call hcs_$wakeup (whotab.installation_request_pid, whotab.installation_request_channel, 0, (0)); 682 end; 683 684 GO_RETURN: 685 if metering_enabled then 686 call as_meter_$exit (ASINIT_METER); 687 a_code = 0; 688 return; 689 690 691 /* ====================================================== */ 692 693 check_shut_ok: 694 entry (a_n_users); 695 696 ansp = as_data_$ansp; 697 if ansp = null then 698 a_n_users = 0; 699 else 700 a_n_users = anstbl.n_users; 701 return; 702 703 /* ====================================================== */ 704 705 shutdown: 706 entry (); /* Small entry for shutting system down. */ 707 708 ansp = as_data_$ansp; 709 whoptr = as_data_$whoptr; 710 ip = as_data_$rs_ptrs (0); 711 712 anstbl.session, whotab.session = "shutdown"; /* No more logins */ 713 whotab.nextsd = 0; /* Prevent restoring */ 714 if installation_parms.syserr_log_copy_threshold ^= -1 then 715 /* If automatic copying enabled... */ 716 call syserr_log_man_$as_copy_log (); /* ...then copy the last few messages out of ring 0 */ 717 718 call act_ctl_$act_ctl_close; /* All engines stop */ 719 if ^as_data_$debug_flag then 720 call mc_quiesce_; /* wait for messages to finish */ 721 call timer_manager_$sleep (2, "11"b); /* and a bit more for good luck */ 722 723 if ^as_data_$debug_flag then 724 call multiplexer_mgr_$shut; /* don't listen to them anymore */ 725 726 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 727 /* */ 728 /* Although we didn't start up the ls_request_server_ during initialization, */ 729 /* we will force it to stop running during AS shutdown. It gets started by */ 730 /* the ls_request_server command. */ 731 /* */ 732 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 733 734 call ls_request_server_$shutdown (code); 735 if code ^= 0 then 736 call Log_Error (code, 737 "Shutting down the login server request mechanism."); 738 739 return; 740 741 Create_Segment: 742 procedure (P_table_name, P_table_ptr); 743 744 dcl P_table_name char (*) parameter; 745 dcl P_table_ptr ptr parameter; 746 747 dcl local_code fixed bin (35) automatic; 748 749 TRY_AGAIN: 750 call initiate_file_ (system_control_dir, P_table_name, RW_ACCESS, 751 P_table_ptr, (0), local_code); 752 if local_code = 0 then 753 return; 754 else if local_code = error_table_$noentry then do; 755 call Log_Error (-1, "^a>^a missing. Creating new one.", 756 system_control_dir, P_table_name); 757 call hcs_$make_seg (system_control_dir, P_table_name, "", 758 01010b, P_table_ptr, local_code); 759 if P_table_ptr = null () then 760 call Abort (local_code, "Could not create ^a>^a.", 761 system_control_dir, P_table_name); 762 return; 763 end; 764 else if local_code ^= error_table_$no_r_permission & 765 local_code ^= error_table_$no_w_permission then 766 call Abort (local_code, "Could not initiate ^a>^a.", 767 system_control_dir, P_table_name); 768 else do; /* no access */ 769 call Log_Error (local_code, "^a>^a. Forcing access.", 770 system_control_dir, P_table_name); 771 acla.mode (n_acl) = N_ACCESS; /* random user get null access */ 772 call hcs_$replace_acl (system_control_dir, P_table_name, 773 addr (acla), n_acl, "1"b, local_code); 774 if local_code ^= 0 then 775 call Abort (local_code, "Could not force access on ^a>^a.", 776 system_control_dir, P_table_name); 777 else 778 goto TRY_AGAIN; 779 end; 780 return; 781 end Create_Segment; 782 783 ucs: 784 proc (mcptr, cname, coptr, infoptr, contin); 785 786 dcl mcptr ptr parameter; 787 dcl cname char (*) parameter; 788 dcl coptr ptr parameter; 789 dcl infoptr ptr parameter; 790 dcl contin bit (1) parameter; 791 792 dcl cond_info char(cond_info_lng) based (cond_info_ptr); 793 dcl cond_info_lng fixed bin; 794 dcl cond_info_ptr ptr; 795 796 dcl non_local_exit bit (1); 797 798 dcl as_check_condition_ entry (char (*), bit (1), bit (1)); 799 dcl condition_interpreter_ entry (ptr, ptr, fixed bin, fixed bin, ptr, char(*), ptr, ptr); 800 801 dcl cleanup condition; 802 803 dcl LONG_MODE fixed bin init(3) int static options(constant); 804 805 call as_check_condition_ (cname, contin, non_local_exit); 806 if contin | non_local_exit then 807 return; 808 809 code = error_table_$action_not_performed; 810 811 ucs_recursion = ucs_recursion + 1; /* recursion ok up to here */ 812 if ucs_recursion <= 1 then do; 813 if cname = "sub_error_" then do; 814 sub_error_info_ptr = infoptr; 815 if sub_error_info.default_restart & sub_error_info.quiet_restart then return; 816 code = sub_error_info.status_code; 817 call Log_Error (code, 818 "^[Initialization of ^a failed.^;^a signalled sub_error_; initialization continues.^]^[ ^a^]", 819 ^sub_error_info.default_restart, sub_error_info.name, 820 (length (sub_error_info.info_string) > 0), sub_error_info.info_string); 821 if sub_error_info.default_restart then return; 822 end; 823 else do; 824 call Log_Error (-1, 825 826 "^a: Condition ^a signalled during startup. Taking AS dump.", ME, cname); 827 system_area_ptr = get_system_free_area_(); 828 cond_info_ptr = null; 829 on cleanup begin; 830 if cond_info_ptr ^= null then 831 free cond_info in (system_area); 832 end; 833 call condition_interpreter_ (addr(system_area), 834 cond_info_ptr, cond_info_lng, LONG_MODE, 835 mcptr, cname, coptr, infoptr); 836 if cond_info_ptr ^= null then do; 837 call Log_Error (-1, "^a", cond_info); 838 free cond_info in (system_area); 839 end; 840 call as_dump_$dont_use_mc ("as_init_: " || cname); 841 end; 842 call Abort (code, ""); 843 end; 844 else do; 845 if ^debug_flag then 846 error_message_entry = phcs_$ring_0_message; 847 else error_message_entry = ioa_; 848 849 call error_message_entry ("as_init_: Condition was signalled while processing another condition. " || cname); 850 call error_message_entry ("as_init_: Answering Service initialization failed."); 851 call Abort (error_table_$unexpected_condition, ""); 852 end; 853 854 end ucs; 855 856 Initialize_Login_Server_Message_Buffer: 857 procedure (); 858 859 dcl ls_message_buffer_max_lth fixed bin automatic; 860 dcl ls_message_buffer_ptr ptr automatic; 861 862 dcl ls_message_buffer char (ls_message_buffer_max_lth) 863 based (ls_message_buffer_ptr); 864 865 /**** Start out with a buffer 512 character-long buffer. */ 866 867 system_area_ptr = get_system_free_area_(); 868 ls_message_buffer_max_lth, 869 as_data_$ls_message_buffer_max_lth = 512; 870 allocate ls_message_buffer in (system_area) set (ls_message_buffer_ptr); 871 ls_message_buffer = ""; /* clear out buffer */ 872 as_data_$ls_message_buffer_cur_lth = 0; 873 as_data_$ls_message_buffer_ptr = ls_message_buffer_ptr; 874 return; 875 end Initialize_Login_Server_Message_Buffer; 876 877 Initiate_Segment: 878 procedure (P_table_name, P_table_ptr); 879 880 dcl P_table_name char (*) parameter; 881 dcl P_table_ptr ptr parameter; 882 883 call initiate_file_ (system_control_dir, P_table_name, RW_ACCESS, 884 P_table_ptr, (0), code); 885 if code ^= 0 then 886 call Abort (code, "Could not initiate ^a.", 887 pathname_ (system_control_dir, P_table_name)); 888 return; 889 end Initiate_Segment; 890 891 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 892 /* */ 893 /* Abort: Report errors via sys_log_$general, report that Answering */ 894 /* Service initialization failed, then return to caller of as_init_ */ 895 /* with nonzero error code. */ 896 /* */ 897 /* Syntax: call Abort (code, ioa_ctl, args); */ 898 /* */ 899 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 900 901 902 Abort: 903 procedure options (variable); 904 905 dcl cu_$arg_list_ptr entry returns (ptr); 906 dcl sys_log_$general entry (ptr); 907 908 sl_info = sl_info_code_msg; 909 sl_info.arg_list_ptr = cu_$arg_list_ptr (); 910 sl_info.severity = SL_LOG; 911 sl_info.caller = ME; 912 call sys_log_$general (addr (sl_info)); 913 code = sl_info.code; 914 if code ^= 0 then do; 915 call sys_log_ (SL_LOG_BEEP, 916 "^a: Answering Service initialization failed.", ME); 917 go to abort_label; 918 end; 919 920 end Abort; 921 922 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 923 /* */ 924 /* Log_Error: Report errors via sys_log_$general, continue initialization. */ 925 /* */ 926 /* Syntax: call Log_Error (code, ioa_ctl, args); */ 927 /* */ 928 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 929 930 931 Log_Error: 932 procedure options (variable); 933 934 dcl cu_$arg_list_ptr entry returns (ptr); 935 dcl sys_log_$general entry (ptr); 936 937 sl_info = sl_info_code_msg; 938 sl_info.arg_list_ptr = cu_$arg_list_ptr (); 939 sl_info.severity = SL_LOG; 940 sl_info.caller = ME; 941 call sys_log_$general (addr (sl_info)); 942 return; 943 944 end Log_Error; 945 946 Check_CDT: 947 procedure (); 948 949 /* Scan the CDT and find all non-MCS channels which should be attached to 950* the Answering Service. All such channels will be top level multiplexers 951* other than FNP's */ 952 953 cdt_scan_try_count = 0; 954 955 RETRY_CDT_SCAN: 956 check = 0; 957 do x = cdt.threads.daughter repeat (cdt.cdt_entry (x).next_sister) 958 while (x ^= 0); 959 cdtep = addr (cdt.cdt_entry (x)); 960 check = check + 1; 961 if check > cdt.threads.daughter_count | check > cdt.n_cdtes 962 | cdte.threads.mother ^= 0 963 then goto CDT_DAMAGE; 964 end; 965 return; 966 967 CDT_DAMAGE: 968 begin; /* Inconsistency found while chasing cdt threads */ 969 970 declare sub_error_ condition; 971 declare find_condition_info_ entry (ptr, ptr, fixed bin (35)); 972 declare 1 auto_condition_info aligned like condition_info; 973 974 if cdt_scan_try_count > 0 975 then do; 976 call multiplexer_mgr_$shut (); 977 call Abort (error_table_$action_not_performed, 978 "Repeated CDT threading inconsistencies."); 979 end; 980 981 call Log_Error (-1, 982 "CDT threading inconsistency found. Rethreading."); 983 984 on sub_error_ begin; 985 call find_condition_info_ (null, addr (auto_condition_info), (0)); 986 sub_error_info_ptr = auto_condition_info.info_ptr; 987 call Log_Error (sub_error_info.status_code, 988 "cdt_mgr_$thread: ^a", sub_error_info.info_string); 989 if ^sub_error_info.default_restart 990 then do; 991 call multiplexer_mgr_$shut; 992 call Abort (sub_error_info.status_code, ""); 993 end; 994 end; 995 996 call cdt_mgr_$thread (cdtp, (0)); 997 call Log_Error (-1, "CDT rethreading complete."); 998 cdt_scan_try_count = 1; 999 goto RETRY_CDT_SCAN; 1000 end; 1001 end Check_CDT; 1002 1003 /* INCLUDE FILES, IN ALPHABETIC ORDER */ 1004 1005 /* format: off */ 1006 /* 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 */ 1006 1007 /* Begin include file -- acl_structures.incl.pl1 BIM 3/82 */ 2 2 /* format: style3,indcomtxt,idind30 */ 2 3 2 4 declare acl_ptr pointer; 2 5 declare acl_count fixed bin; 2 6 2 7 declare 1 general_acl aligned based (acl_ptr), /* for fs_util_ */ 2 8 2 version char (8) aligned, 2 9 2 count fixed bin, 2 10 2 entries (acl_count refer (general_acl.count)) aligned like general_acl_entry; 2 11 2 12 declare 1 general_acl_entry based, 2 13 2 access_name character (32) unaligned, 2 14 2 mode bit (36) aligned, 2 15 2 status_code fixed bin (35); 2 16 2 17 2 18 declare 1 general_extended_acl aligned based (acl_ptr), /* for fs_util_ */ 2 19 2 version char (8) aligned, 2 20 2 count fixed bin, 2 21 2 entries (acl_count refer (general_extended_acl.count)) aligned like general_extended_acl_entry; 2 22 2 23 declare 1 general_extended_acl_entry aligned based, 2 24 2 access_name character (32) unaligned, 2 25 2 mode bit (36) aligned, 2 26 2 extended_mode bit (36) aligned, 2 27 2 status_code fixed bin (35); 2 28 2 29 2 30 declare 1 general_delete_acl aligned based (acl_ptr), /* for file_system_ */ 2 31 2 version char (8) aligned, 2 32 2 count fixed bin, 2 33 2 entries (acl_count refer (general_delete_acl.count)) aligned like delete_acl_entry; 2 34 2 35 declare 1 general_delete_acl_entry aligned based, 2 36 2 access_name character (32) unaligned, 2 37 2 status_code fixed bin (35); 2 38 2 39 2 40 declare 1 segment_acl aligned based (acl_ptr), 2 41 2 version fixed bin, 2 42 2 count fixed bin, 2 43 2 entries (acl_count refer (segment_acl.count)) aligned like segment_acl_entry; 2 44 2 45 declare 1 segment_acl_entry like general_extended_acl_entry aligned based; 2 46 declare 1 segment_acl_array (acl_count) aligned like segment_acl_entry based (acl_ptr); 2 47 2 48 2 49 declare 1 directory_acl aligned based (acl_ptr), 2 50 2 version fixed bin, 2 51 2 count fixed bin, 2 52 2 entries (acl_count refer (directory_acl.count)) aligned like directory_acl_entry; 2 53 2 54 declare 1 directory_acl_entry like general_acl_entry aligned based; 2 55 declare 1 directory_acl_array (acl_count) aligned like directory_acl_entry based (acl_ptr); 2 56 2 57 2 58 declare 1 delete_acl based (acl_ptr) aligned, 2 59 2 version fixed bin, 2 60 2 count fixed bin, 2 61 2 entries (acl_count refer (delete_acl.count)) aligned like delete_acl_entry; 2 62 2 63 declare 1 delete_acl_entry like general_delete_acl_entry aligned based; 2 64 declare 1 delete_acl_array (acl_count) aligned like delete_acl_entry based (acl_ptr); 2 65 2 66 2 67 declare (SEG_ACL_VERSION_1 init ("sga1"), 2 68 DIR_ACL_VERSION_1 init ("dra1"), 2 69 DELETE_ACL_VERSION_1 init ("dla1")) 2 70 char (4) int static options (constant); 2 71 2 72 declare (GENERAL_ACL_VERSION_1 init ("gacl001"), 2 73 GENERAL_EXTENDED_ACL_VERSION_1 init ("gxacl001"), 2 74 GENERAL_DELETE_ACL_VERSION_1 init ("gdacl001")) 2 75 char (8) internal static options (constant); 2 76 2 77 declare ACL_VERSION_1 fixed bin init (1) int static options (constant); 2 78 2 79 /* End include file acl_structures.incl.pl1 */ 1007 1008 /* BEGIN INCLUDE FILE ... answer_table.incl.pl1 */ 3 2 3 3 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 3 4 /* */ 3 5 /* The answer table has one entry per "login instance" whether completed or */ 3 6 /* not. It is connected to the Channel Definition Table by the pointer */ 3 7 /* "channel". The header is used mostly by dialup_. */ 3 8 /* */ 3 9 /* Programs which use this file must also include user_table_header.incl.pl1 */ 3 10 /* */ 3 11 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 3 12 3 13 /****^ HISTORY COMMENTS: 3 14* 1) change(81-09-10,Kittlitz), approve(), audit(), install(): 3 15* Replace anstbl.incl.pl1. 3 16* 2) change(85-01-15,Swenson), approve(), audit(), install(): 3 17* Add anstbl.session_uid_counter. 3 18* 3) change(85-08-21,Coren), approve(), audit(), install(): 3 19* Add anstbl.message_update_time and named constants for values of 3 20* anstbl.session, and to make all padding explicit. 3 21* 4) change(85-08-23,Coren), approve(), audit(), install(): 3 22* Change "entry" to a placeholder so as not to require 3 23* user_table_entry.incl.pl1. 3 24* 5) change(86-06-29,Swenson), approve(87-07-13,MCR7741), 3 25* audit(87-04-14,GDixon), install(87-08-04,MR12.1-1056): 3 26* Added the flag login_server_present which indicates whether a login 3 27* server request has been received. This is used to determine whether 3 28* dial_ctl_ should call uc_cleanup_network_dials_ (and thus 3 29* hpriv_connection_list_, which only exists with the MNA RPQ software). 3 30* 6) change(87-04-14,GDixon), approve(87-07-13,MCR7741), 3 31* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 3 32* A) Moved constants for ute.pw_flags.mask_ctl into 3 33* user_table_entry.incl.pl1. 3 34* B) Added common table header to all user tables. 3 35* END HISTORY COMMENTS */ 3 36 3 37 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 3 38 /* */ 3 39 /* The anstbl structure below is divided into sections. Each section begins */ 3 40 /* with a comment describing the elements in the section. Elements are */ 3 41 /* placed within a section, based upon their function or the programs that */ 3 42 /* use them. Each section begins on a double word and is an even number of */ 3 43 /* words long. */ 3 44 /* */ 3 45 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 3 46 3 47 3 48 3 49 /* format: style4 */ 3 50 3 51 dcl ANSTBL_version_4 static options (constant) init (4); /* version of this declaration */ 3 52 3 53 dcl ansp ptr automatic init (null); 3 54 3 55 dcl 1 anstbl based (ansp) aligned, /* Structure of answer table */ 3 56 2 header like ut_header, /* Header common to all user tables. */ 3 57 3 58 /* Counter elements. */ 3 59 2 nlin fixed bin, /* number of active lines */ 3 60 2 mxlin fixed bin, /* maximum number of active lines */ 3 61 2 n_users fixed bin, /* number of logged-in users */ 3 62 2 max_users fixed bin, /* maximum number of users allowed */ 3 63 2 n_units fixed bin, /* number of logged in units */ 3 64 2 max_units fixed bin, /* maximum number of units */ 3 65 2 n_sessions fixed bin, /* number of Multics sessions */ 3 66 2 n_pad fixed bin, 3 67 3 68 /* Name elements. */ 3 69 2 sysdir char (64) unal, /* name of main system control directory */ 3 70 2 as_tty char (8) unal, /* name of main answering service device. */ 3 71 3 72 /* Login elements. */ 3 73 2 login_word char (8) unal, /* login word if special_session=1 */ 3 74 2 session char (8) unal, /* session indicator */ 3 75 2 special_message char (128) unal, /* message to be printed for special session */ 3 76 2 message_update_time fixed bin (71), /* time at which special_message was last updated */ 3 77 2 message_lng fixed bin, /* length of special message */ 3 78 2 login_pad fixed bin, 3 79 3 80 /* Table update elements. */ 3 81 2 lock_count fixed bin, /* global lock for all system control tables */ 3 82 2 update_pending bit (1) aligned, /* flag indicating that update is required */ 3 83 2 update_channel fixed binary (71), /* event channel of update procedure */ 3 84 2 acct_update_chn fixed bin (71) aligned, /* Timer IPC channel */ 3 85 2 acct_last_update_time fixed bin (71) aligned, /* Time of last accounting update */ 3 86 2 acct_alarm_fail fixed bin, /* non-zero if alarm has failed */ 3 87 2 update_pad fixed bin, 3 88 3 89 /* dialup_ data values. */ 3 90 2 current_time fixed bin (71), /* Time of last transaction */ 3 91 2 processid_index fixed bin (18), /* unique index for process id generation */ 3 92 2 session_uid_counter fixed bin (35), /* current session_uid */ 3 93 3 94 /* load_ctl_ elements. */ 3 95 2 shift fixed bin, /* Shift, set by act_ctl_ */ 3 96 2 auto_maxu fixed bin, /* 0 = manual, 1 = config, 2 = load-level */ 3 97 2 extra_units fixed bin, /* Total daemon and abs units. */ 3 98 /* load_ctl_ load leveling desired response range: */ 3 99 2 response_high fixed bin, /* bad if user response time slower than this */ 3 100 2 response_low fixed bin, /* bad if user response time faster than this */ 3 101 2 load_ctl_pad fixed bin, 3 102 3 103 /* Login server request server data. */ 3 104 2 ls_request_server_event_channel fixed bin (71), /* channel for login server requests */ 3 105 2 ls_request_server_process_id bit (36) aligned, /* process serving login server requests */ 3 106 2 login_server_present bit (1) aligned, /* On IFF a login server request has been processed */ 3 107 3 108 2 entry_pad (28) fixed bin, /* pad to 128 words */ 3 109 2 entry (0 refer (anstbl.current_size)), /* user entries */ 3 110 3 contents (UTE_SIZE) fixed bin; 3 111 3 112 /* constants */ 3 113 3 114 /* values for anstbl.session */ 3 115 3 116 dcl (AT_NORMAL init ("normal "), 3 117 AT_SPECIAL init ("special "), 3 118 AT_SHUTDOWN init ("shutdown")) char (8) internal static options (constant); 3 119 3 120 dcl UTE_SIZE fixed bin internal static initial (300); 3 121 3 122 /* END INCLUDE FILE ... answer_table.incl.pl1 */ 1008 1009 /* BEGIN INCLUDE FILE ... as_data_.incl.pl1 ... */ 4 2 4 3 /* format: style4 */ 4 4 4 5 /* This file must be kept in sync with as_data_.alm */ 4 6 4 7 /****^ HISTORY COMMENTS: 4 8* 1) change(86-09-21,Beattie), approve(86-09-22,MCR7542), 4 9* audit(86-10-31,Brunelle), install(86-11-12,MR12.0-1211): 4 10* Remove references to the 963 and 029 preaccess commands and remove support 4 11* for ARDS, 202_ETX, 2741 and 1050 in system interfaces. 4 12* 2) change(86-09-25,Swenson), approve(87-07-20,MCR7737), 4 13* audit(87-07-20,GDixon), install(87-08-04,MR12.1-1056): 4 14* Add references to as_data_ entrypoints added for Login Server. 4 15* 3) change(87-03-03,Brunelle), approve(87-07-20,MCR7697), 4 16* audit(87-07-20,GDixon), install(87-08-04,MR12.1-1056): 4 17* Added new user signal field of inacrcvd (14) to handle inactivity response 4 18* from user. 4 19* END HISTORY COMMENTS */ 4 20 4 21 dcl as_data_$BS char (1) aligned ext static; /* BACKSPACE character */ 4 22 dcl as_data_$CR char (1) aligned ext static; /* CARRIAGE RETURN character */ 4 23 dcl as_data_$abs_dim char (32) ext static; /* absentee DIM */ 4 24 dcl as_data_$acct_update_priority fixed bin ext static; /* accounting update IPC priority */ 4 25 dcl as_data_$acsdir char (168) ext static; /* Access Control Segment directory */ 4 26 dcl as_data_$ansp ptr ext static; /* answer_table */ 4 27 dcl as_data_$as_procid bit (36) aligned ext static; /* Answering Service process id */ 4 28 dcl as_data_$as_ring fixed bin (3) ext static; /* AS operating ring */ 4 29 dcl as_data_$as_tty char (6); /* AS master tty channel */ 4 30 dcl as_data_$asmtp ptr ext static; /* AS meter table */ 4 31 dcl as_data_$autp ptr ext static; /* absentee_user_table */ 4 32 dcl as_data_$buzzardp ptr ext static; /* dpg_ list of buteo processes */ 4 33 dcl as_data_$cdtp ptr ext static; /* CDT */ 4 34 dcl as_data_$default_weight fixed bin (35) ext; /* default user process load control weight */ 4 35 dcl as_data_$devtabp ptr ext static; /* device_table */ 4 36 dcl as_data_$dft_user_ring fixed bin (3) ext static; /* default user ring */ 4 37 dcl as_data_$dutp ptr ext static; /* daemon_user_table */ 4 38 dcl as_data_$g115_dim char (32) ext static; 4 39 dcl as_data_$lct_initialized bit (1) aligned ext static; /* LCT allocated in ring 0 */ 4 40 dcl as_data_$lct_size fixed bin ext static; /* CDT tty channels + spares */ 4 41 dcl as_data_$max_user_ring fixed bin (3) ext static; /* maximum user ring */ 4 42 dcl as_data_$mgtp ptr ext static; /* master group table */ 4 43 dcl as_data_$mrd_dim char (32) ext static; /* daemon's message routing DIM */ 4 44 dcl as_data_$ntty_dim char (32) ext static; /* network connection DIM */ 4 45 dcl as_data_$pdtdir char (168) ext static; /* PDT directory */ 4 46 dcl as_data_$pit_ptr ptr ext static; /* pit_temp_ */ 4 47 dcl as_data_$rcpdir char (168) ext static; /* RCP directory */ 4 48 dcl as_data_$request_priority fixed bin ext static; 4 49 dcl as_data_$rs_ptrs (0:9) ptr ext static; /* rate_structures */ 4 50 dcl as_data_$rtdtp ptr ext static; /* RTDT */ 4 51 dcl as_data_$sat_htp ptr ext static; /* SAT hash table */ 4 52 dcl as_data_$satp ptr ext static; /* SAT */ 4 53 dcl as_data_$suffix (0:9) char (2) unaligned ext static; 4 54 dcl as_data_$sysdir char (168) ext static; /* system control directory */ 4 55 dcl as_data_$teens_suffix (10:19) char (2) unaligned ext static; 4 56 dcl as_data_$terminet_tabs_string char (144) varying ext static; 4 57 dcl as_data_$tty_dim char (32) ext static; /* standard interactive DIM */ 4 58 dcl as_data_$update_priority fixed bin ext static; /* ??? */ 4 59 dcl as_data_$version char (8) ext static; /* AS version */ 4 60 dcl as_data_$whoptr ptr ext static; /* whotab */ 4 61 4 62 dcl 1 as_data_$login_args aligned ext static, /* control arguments for login */ 4 63 2 n_login_args fixed bin, 4 64 2 pad fixed bin, 4 65 2 login_args (55 /* as_data_$login_args.n_login_args */) char (24) unaligned; 4 66 4 67 dcl 1 as_data_$signal_types ext static aligned, /* IPC process control signals */ 4 68 2 n_signals fixed bin, 4 69 2 pad fixed bin, 4 70 2 signals (14 /* as_data_$signal_types.n_signals */) char (8) unaligned; 4 71 4 72 dcl 1 as_data_$system_signal_types ext static aligned, /* IPC process control signals */ 4 73 2 n_system_signals fixed bin, 4 74 2 pad fixed bin, 4 75 2 system_signals (10 /* as_data_$system_signal_types.n_system_signals */) char (8) unaligned; 4 76 4 77 dcl as_data_$login_words fixed bin ext static aligned, 4 78 /* interactive login words */ 4 79 1 as_data_login_words aligned based (addr (as_data_$login_words)), 4 80 2 n_words fixed bin, 4 81 2 pad fixed bin, 4 82 2 words (0 refer (as_data_login_words.n_words)) char (16) unaligned; 4 83 4 84 dcl as_data_$debug_flag bit (1) aligned external static; 4 85 dcl as_data_$ls_request_server_info_ptr ptr external static; 4 86 dcl as_data_$ls_message_buffer_cur_lth fixed bin (18) external static; 4 87 dcl as_data_$ls_message_buffer_max_lth fixed bin (18) external static; 4 88 dcl as_data_$ls_message_buffer_ptr ptr external static; 4 89 4 90 /* END INCLUDE FILE ... as_data_.incl.pl1 ... */ 1009 1010 /* BEGIN INCLUDE FILE as_meter_numbers.incl.pl1 */ 5 2 5 3 /* These are the names and numbers of the slots in as_meter_table 5 4* (see as_meter_table.incl.pl1). 5 5* 5 6* Written March 1980 by Tom Casey 5 7* Modified June 1981 by T. Casey for MR9.0 to add ABS_TRYLOG_METER. 5 8**/ 5 9 5 10 5 11 /****^ HISTORY COMMENTS: 5 12* 1) change(86-01-31,Herbst), approve(87-07-21,MCR7694), 5 13* audit(87-07-21,GDixon), install(87-08-04,MR12.1-1056): 5 14* A) Add NETUP_METER. 5 15* B) Add AS_METER_NAMES array. 5 16* END HISTORY COMMENTS */ 5 17 5 18 5 19 dcl ASINIT_METER fixed bin int static options (constant) init (1); /* as_init_, parts 1 and 2 */ 5 20 dcl DIALUP_METER fixed bin int static options (constant) init (2); /* dialup_ */ 5 21 dcl DUM_METER fixed bin int static options (constant) init (3); /* daemon_user_manager_ */ 5 22 dcl AUM_METER fixed bin int static options (constant) init (4); /* absentee_user_manager_ */ 5 23 dcl AU_METER fixed bin int static options (constant) init (5); /* absentee_utility_ */ 5 24 dcl CPG_METER fixed bin int static options (constant) init (6); /* cpg_ */ 5 25 dcl DPG_METER fixed bin int static options (constant) init (7); /* dpg_ */ 5 26 dcl ACCTUP_METER fixed bin int static options (constant) init (8); /* accounting updates */ 5 27 dcl INSTALL_METER fixed bin int static options (constant) init (9); /* installs (up_sysctl_) */ 5 28 dcl ABSQ_METER fixed bin int static options (constant) init (10); /* absentee queue reads and writes */ 5 29 dcl MSGCORD_METER fixed bin int static options (constant) init (11); /* message coordinator */ 5 30 dcl COMMAND_METER fixed bin int static options (constant) init (12); /* operator commands, other than admin */ 5 31 dcl SAC_METER fixed bin int static options (constant) init (13); /* sac (send_admin_command handling) */ 5 32 dcl ADMIN_METER fixed bin int static options (constant) init (14); /* admin mode */ 5 33 dcl SSU_METER fixed bin int static options (constant) init (15); /* system_start_up.ec, parts 1, 2, and 3 */ 5 34 dcl FIXPDT_METER fixed bin int static options (constant) init (16); /* cleanup of PDTs after crash (act_ctl_$init) */ 5 35 dcl ABS_TRYLOG_METER fixed bin int static options (constant) init (17); /* attempts to login absentees via call lg_ctl_ 5 36* (the attempts might fail because of load control limits) */ 5 37 dcl NETUP_METER fixed bin int static options (constant) init (18); /* a call to network_accounting_update_ */ 5 38 5 39 dcl recursion_possible bit (18) int static options (constant) init ("000000000011000000"b); /* 11 & 12 (MSGCORD and COMMAND) */ 5 40 5 41 /* Bit length of recursion_possible equals highest slot number given above. */ 5 42 5 43 dcl AS_METER_NAMES (18) char (8) int static options (constant) init ( 5 44 "ASINIT", "DIALUP", "DUM", "AUM", "AU", 5 45 "CPG", "DPG", "ACCTUP", "INSTALL", "ABSQ", 5 46 "MSGCORD", "COMMAND", "SAC", "ADMIN", "SSU", 5 47 "FIXPDT", "TRYABSLG", "NETUP"); 5 48 5 49 /* END INCLUDE FILE as_meter_numbers.incl.pl1 */ 1010 1011 /* BEGIN INCLUDE FILE ... author_dcl.incl.pl1 */ 6 2 6 3 /* This include file declares the "author" substructure 6 4* in a form suitable for using the PL/I "like" attribute. 6 5* 6 6* Written 750304 by PG 6 7**/ 6 8 6 9 dcl 1 author_dcl aligned based, 7 1 /* BEGIN INCLUDE FILE author.incl.pl1 */ 7 2 7 3 /* the "author" items must always be the first ones in the table. The 7 4* module which moves the converted table to the System Control process 7 5* fills in these data items and assumes them to be at the head of the segment 7 6* regardless of the specific table's actual declaration. The variables 7 7* "lock" and "last_install_time" used to be "process_id" and "ev_channel" 7 8* respectively. For tables installed in multiple processes, these 7 9* are to be used to lock out multiple installations. */ 7 10 7 11 /* Lock should be used as a modification lock. Since, in general, 7 12* entries may not be moved in system tables, even by installations, 7 13* it is sufficient for only installers and programs that change threads 7 14* to set or respect the lock. Simply updating data in an entry 7 15* requires no such protection. 7 16* 7 17* Last_install_time is used by readers of system tables to detect 7 18* installations or other serious modifications. By checking it before 7 19* and after copying a block of data, they can be protected against 7 20* modifications. 7 21* 7 22* Modules that set the lock should save proc_group_id, and then 7 23* put their group id there for the time they hold the lock. 7 24* if they do not actually install the, they should restore the group id. 7 25**/ 7 26 7 27 2 author aligned, /* validation data about table's author */ 7 28 3 proc_group_id char (32), /* process-group-id (personid.projectid.tag) */ 7 29 3 lock bit (36), /* installation lock */ 7 30 3 update_attributes bit (1) unal, /* update/add/delete attributes */ 7 31 3 update_authorization bit (1) unal, /* update only authorizations */ 7 32 3 deferral_notified bit (1) unal, /* installer notified of deferral of installation */ 7 33 3 pad bit (33) unaligned, 7 34 3 last_install_time fixed bin (71), 7 35 3 table char (4), /* name of table, e.g., SAT MGT TTT RTDT PDT etc. */ 7 36 3 w_dir char (64), /* author's working directory */ 7 37 7 38 /* END INCLUDE FILE author.incl.pl1 */ 6 10 6 11 2 pad; 6 12 6 13 /* END INCLUDE FILE ... author_dcl.incl.pl1 */ 1011 1012 /* BEGIN INCLUDE FILE ... cdt.incl.pl1 */ 8 2 8 3 /* format: style3,idind25,indcomtxt */ 8 4 8 5 /* Channel Definition Table. 8 6* This table lists all of the hardware channels (ports) connected 8 7* to the system, and maintains the attributes of each one. 8 8* 8 9* PG 741230 8 10* Modified by Mike Grady 5/6/76 to add FNP info. 8 11* Modified by Tom Casey 7/29/76 to add more FNP info and a few other things. 8 12* Modified by Robert Coren 6/13/77 to make terminal types be character strings. 8 13* Modified July 1979 by T. Casey to add several variables for MR8.0 process preservation facility. 8 14* Modified December 1980 by E. N. Kittlitz to eliminate cdte.phone_no. 8 15* Modified March 1981 by Robert Coren to add "listening" flag for multiplexers and to add TANDD_SERVICE service_type. 8 16* Modified April 1981 by E. N. Kittlitz to add cdte.dial_ev_chn, cdte.recent_wakeup_time, cdte.recent_wakeup_count. 8 17* Modified July 1981 by T. Casey for MR9.0 to add dialup_flags.detach_after_hangup 8 18* Modified December 1981 by E. N. Kittlitz for cdte.leave_edited, cdte.hold_arg, 8 19* Modified September 1981 by Benson I. Margulies for cdt_mgr_'s tree of multiplexer's. 8 20* Modified August 1982 by E. N. Kittlitz for check_acs. 8 21* Modified January 1983 by Keith Loepere for generic_destination. 8 22* Modified August 1983 by Robert Coren to add mpxe.check and mpxe.retry_load. 8 23* Modified 831216 by E. N. Kittlitz for required_access_class. 8 24* Modified 84-04-01 by BIM to finish communications AIM: 8 25* access class ranges, 8 26* access_control flags. 8 27**/ 8 28 8 29 8 30 /****^ HISTORY COMMENTS: 8 31* 1) change(87-03-17,Beattie), approve(87-04-06,MCR7656), 8 32* audit(87-07-13,Parisek), install(87-08-04,MR12.1-1056): 8 33* Add support for answering service to use IOCBs when tty_ cannot be 8 34* used to service login channels. 8 35* END HISTORY COMMENTS */ 8 36 8 37 8 38 dcl CDT_version_5 fixed bin internal static initial (5) options (constant); 8 39 dcl CDT_version fixed bin internal static initial (6) options (constant); 8 40 8 41 dcl (cdtp, cdtep, fnpep, mpxep) 8 42 ptr; 8 43 8 44 dcl 1 cdt based (cdtp) aligned, /* all of the system channels */ 8 45 2 author like author_dcl.author, /* standard header */ 8 46 2 max_size fixed bin, /* maximum number of cdte's in 255K */ 8 47 2 current_size fixed bin, /* number of last cdte. */ 8 48 2 version fixed bin, 8 49 2 freep fixed bin, /* chain of free cdte's */ 8 50 2 n_cdtes fixed bin, /* number of used cdte's */ 8 51 2 meters_last_reset fixed bin (71), /* clock time dialup meters were reset */ 8 52 2 realtime_in_dialup fixed bin (71), /* Dialup meter */ 8 53 2 cpu_in_dialup fixed bin (71), /* .. */ 8 54 2 pf_in_dialup fixed bin, /* .. */ 8 55 2 pp_in_dialup fixed bin, /* .. */ 8 56 2 entries_to_dialup fixed bin, /* .. */ 8 57 2 flags, 8 58 3 go bit (1) unal, /* ans. serv. said "go ahead and answer the phones" */ 8 59 3 cdt_is_live bit (1) unal, /* cdt is active */ 8 60 3 mux_mgr_system_init 8 61 bit (1) unal, /* mux mgr has loaded top-levels */ 8 62 3 pad1 bit (33) unal, 8 63 2 acceptable_fnp_tbf fixed bin, /* acceptable minutes between FNP crashes */ 8 64 2 spare_channel_count fixed bin, /* number of extra channels to leave room for in ring0 */ 8 65 2 threads aligned like channel_threads, 8 66 /* root of non-fnp-top-level-multiplexers */ 8 67 2 pad2 (31) bit (36) aligned, /* pad header to 80 words */ 8 68 2 fnp_entry dim (8) like fnpe, /* max of 8 FNPs for now */ 8 69 2 cdt_entry dim (2500) like cdte; /* # of cdte's in 255K */ 8 70 8 71 8 72 dcl 1 cdte based (cdtep) aligned, /* a channel */ 8 73 2 in_use fixed bin, /* see dialup_values. 0=NOW_FREE */ 8 74 /**** * These variables are filled in when the CDTE is created by cv_cmf. They are not dynamic. */ 8 75 2 pad1 bit (36) aligned, 8 76 2 name char (32), /* ASCII name of channel */ 8 77 2 access_class (2) bit (72) aligned, /* access class range */ 8 78 2 comment char (48), /* printable message about channel */ 8 79 2 charge_type fixed bin (17) unal, /* billing group */ 8 80 2 service_type fixed bin (17) unal, /* service group (AS, ftp, mc) */ 8 81 2 line_type fixed bin (17) unal, /* tty line type (protocol) */ 8 82 2 baud_rate fixed bin (17) unal, /* 110, 133, 150, etc. */ 8 83 2 modem_type fixed bin (17) unal, /* type of modem on this channel */ 8 84 2 pad2 bit (18) unaligned, 8 85 2 answerback char (8), /* answerback string expected */ 8 86 2 initial_terminal_type 8 87 char (32) unal, /* as specified in the CMF */ 8 88 2 mpx_data unal, /* data used only for multiplexed channels */ 8 89 3 mpx_type fixed bin (17), /* type of multiplexing used */ 8 90 3 mpx_service fixed bin (17), /* service type, active or inactive */ 8 91 2 flags, 8 92 ( 3 attributes, 8 93 4 ck_answerback bit (1), /* ON means that ansbk must equal our records */ 8 94 4 audit_access_error 8 95 bit (1), /* ON means ck that person auth is inside access class range */ 8 96 /* this implies that the access_class describes a range of 8 97* legitimate user auths. */ 8 98 4 hardwired bit (1), /* ON means it is */ 8 99 4 set_modes bit (1), /* ON means to set initial modes at dialup */ 8 100 4 dont_read_answerback 8 101 bit (1), /* ON means don't try to read answerback */ 8 102 4 pada bit (4), 8 103 3 access_control unaligned, /* As below */ 8 104 4 dial_out bit (1), /* dialing user must be on ACS */ 8 105 4 priv_attach bit (1), /* PA_ user must be on ACS */ 8 106 4 dial_server bit (1), /* accept_dials process must be on acs */ 8 107 4 login bit (1), /* logging in user must be on acs */ 8 108 4 slave_dial bit (1), /* dialing user must give -user and be on acs */ 8 109 4 pado bit (3), 8 110 3 options, 8 111 4 execute_initial_command 8 112 bit (1), /* ON means to do it */ 8 113 4 attached_by_operator 8 114 bit (1), /* ON means temporary attachment. */ 8 115 4 private_line bit (1), /* ON means private_line sync modem in use */ 8 116 4 bsc_ebcdic bit (1), /* ON means bsc would like to use ebcdic code set */ 8 117 4 bsc_transparent bit (1), /* ON means bsc is in transparent mode */ 8 118 4 vip_pollselect bit (1), /* ON means VIP line is multidrop */ 8 119 4 autobaud bit (1), /* ON means auto baud detection this channel */ 8 120 4 generic_destination_present 8 121 bit (1), /* ON means that the initial_command field contains 8 122* a generic destination to match on dial_out or priv attach */ 8 123 4 use_iocb bit (1), /* ON means to use IOCB operations to support channel */ 8 124 4 pado bit (9) 8 125 ) unaligned, 8 126 2 initial_command char (64), /* pseudo first input line */ 8 127 /**** The following variables represent dynamic control info, and 8 128* are used mostly by dialup_ and asu_ */ 8 129 2 event fixed bin (71), /* event call channel for channel events */ 8 130 2 current_service_type fixed bin (17) unal, /* Current usage of line. */ 8 131 2 tra_vec fixed bin (17) unal, /* which section of dialup_ to do next */ 8 132 2 count fixed bin (17) unal, /* How many login tries he's had. */ 8 133 2 dialup_flags unal, /* flag bits for dialup to maintain */ 8 134 3 ppm bit (1) unal, /* print preaccess message for IBM terminals */ 8 135 3 cpo bit (1) unal, /* conditional printer-off (depends on answerback */ 8 136 3 wakeup_handler bit (1) unal, /* says who is wakeup handler for this channel */ 8 137 /* 0 = dialup_, 1 = mc_tty_ */ 8 138 3 save_arg bit (1) unal, /* -save login arg given */ 8 139 3 nosave_arg bit (1) unal, /* -nosave login arg given */ 8 140 3 detach_after_hangup 8 141 bit (1) unal, /* remember WAIT_DETACH when setting WAIT_BEFORE_HANGUP */ 8 142 3 leave_edited bit (1) unal, /* user control of edited mode */ 8 143 3 hold_arg bit (1) unal, /* -hold arg given */ 8 144 3 no_hold_arg bit (1) unal, /* -no_hold arg given */ 8 145 3 immediate_arg bit (1) unal, /* -immediate arg given */ 8 146 3 current_access_class_valid 8 147 bit (1) unal, /* dialup_ or lg_ctl_ has determined the current_access_class */ 8 148 3 pad bit (7) unal, 8 149 2 twx fixed bin, /* channel device index */ 8 150 2 state fixed bin, /* channel state */ 8 151 2 tty_id_code char (4), /* channel id (answerback) */ 8 152 2 current_terminal_type 8 153 char (32) unal, /* most recently-set terminal type */ 8 154 2 process ptr unal, /* ptr to ATE owning this channel */ 8 155 2 dialed_to_procid bit (36), /* Dialed channels remember owner's proc id */ 8 156 2 next_channel fixed bin (17) unal, /* cdte index of next channel for this process */ 8 157 2 cur_line_type fixed bin (17) unal, /* line type of currently dialed terminal */ 8 158 2 current_access_class (2) bit (72) aligned, /* This is a range, but at this time it must be a null range. 8 159* We do not yet define multi-class connections, but we will someday. */ 8 160 2 disconnected_ate_index 8 161 fixed bin (17) unal, /* index of ate of disconnected process */ 8 162 2 dial_ctl_ring fixed bin (3) unsigned unaligned, 8 163 /* used by dial_ctl_ to record ring of priv_attach or dial_out attachments */ 8 164 2 dial_rq_privileged bit (1) unaligned, /* used by dial ctl to record comm priv from priv_attach or dial_out request */ 8 165 2 pad3 bit (14) unaligned, 8 166 /**** The following variables are kept for metering purposes. */ 8 167 2 n_dialups fixed bin, /* number of times channel has been dialed up */ 8 168 2 n_logins fixed bin, /* number of login sessions on this channel */ 8 169 2 dialed_up_time fixed bin (35), /* total time channel was dialed up (seconds) */ 8 170 2 dialup_time fixed bin (71), /* time of present dialup */ 8 171 2 disconnected_proc_command 8 172 fixed bin (12) unsigned unal, 8 173 /* 1 to 5 for -list,-create,-connect,-new_proc,-destroy */ 8 174 2 disconnected_proc_number 8 175 fixed bin (12) unsigned unal, 8 176 /* {N} in -connect {N}, -new_proc {N}, -destroy {N} */ 8 177 2 n_disconnected_procs fixed bin (12) unsigned unal, 8 178 /* number of disconnected processes that user has */ 8 179 2 recent_wakeup_count fixed bin, /* counter to detect channel wakeup loop */ 8 180 2 recent_wakeup_time fixed bin (71), /* time of first wakeup in suspected channel wakeup loop */ 8 181 2 dial_ev_chn fixed bin (71), /* Dialed channels remember master's IPC channel */ 8 182 /**** cdt_mgr_ uses these to maintain the tree of channels. They ****/ 8 183 /**** really belong in the mpxe, but it is full up, and the cdte ****/ 8 184 /**** had the space. */ 8 185 2 threads aligned like channel_threads, 8 186 /**** The use name is that of the user who gave the dial or slave ****/ 8 187 /**** preaccess request. ****/ 8 188 2 user_name unaligned, 8 189 3 person char (20) unaligned, 8 190 3 project char (9) unaligned, 8 191 3 pad char (3) unaligned, /* no tag */ 8 192 2 iocbp ptr unaligned; /* 104 words */ 8 193 8 194 8 195 dcl generic_destination based char (32); /* used to match destinations on dial_out and priv_attach, 8 196* overlays initial_command field for slave and autocall lines */ 8 197 8 198 8 199 8 200 dcl 1 fnpe based (fnpep) aligned, /* an FNP */ 8 201 /* These variables are filled in from the CMF */ 8 202 2 type fixed bin, /* type of this FNP, DN355, DN6670, etc. */ 8 203 2 memory fixed bin, /* amount of memory on this FNP */ 8 204 2 nlslas fixed bin, /* number of lslas on this FNP */ 8 205 2 nhslas fixed bin, /* number of hslas on this FNP */ 8 206 2 service_type fixed bin, /* service type */ 8 207 2 mpx_type fixed bin, /* type of multiplexer on this fnp */ 8 208 2 coreimage char (168), /* pathname of image, maybe in >sl1 */ 8 209 /**** The following are used during system operation to remember the state of the FNP */ 8 210 2 boot_segp ptr, /* ptr to seg used for bootload */ 8 211 2 boot_ev_chan fixed bin (71), /* for ring0 to report crashes and bootload complete */ 8 212 2 mpxe like mpxe, /* standard multiplexer data */ 8 213 2 threads aligned like channel_threads, 8 214 /* same mpx threads as channel */ 8 215 2 pad3 (25) fixed bin; /* pad to 96 words per entry */ 8 216 8 217 /* This structure describes the data necessary to control a multiplexer. 8 218* For FNP's., a copy appears in the fnpe. For communications lines, it 8 219* overlays the initial_command field in the cdte. */ 8 220 8 221 dcl 1 mpxe based (mpxep) aligned, 8 222 2 state fixed bin, /* current state, up, down, loading */ 8 223 2 current_service_type fixed bin, /* usually = service type, unless cdt installation changes it */ 8 224 2 current_mpx_type fixed bin, /* type of multiplexer currently running */ 8 225 2 n_bootloads fixed bin, /* count of load attempts */ 8 226 2 time_initial_load fixed bin (71), /* time this MPX first completed a load */ 8 227 2 time_last_load fixed bin (71), /* time MPX last completed a bootload */ 8 228 2 time_last_crash fixed bin (71), /* time MPX last crashed */ 8 229 2 time_load_start fixed bin (71), /* time current load started */ 8 230 2 last_tbf fixed bin, /* number of minutes this MPX was up last bootload */ 8 231 2 flags unal, 8 232 3 go bit (1), /* start MPX after it loads */ 8 233 3 listening bit (1), /* listen has been done on subchannels */ 8 234 3 check bit (1), /* loaded with check option */ 8 235 3 retry_load bit (1), /* reload if load fails */ 8 236 3 pad1 bit (32), 8 237 2 pad2 (2) fixed bin; /* pad to 16 words */ 8 238 8 239 /* These threads define the tree of multiplexers in the cdt. */ 8 240 /* next_sister and prev_sister link nodes at the same level, ordered */ 8 241 /* by alpha sort order of the channel name. Daughter points to the */ 8 242 /* first child of this node, if any. Daughter count is the number */ 8 243 /* of children, as a consistency check. Mother is a back pointer to */ 8 244 /* the parent, present in all the children, not just the first. */ 8 245 /* threads are cdt indexes. If positive, they index the cdt_entry array */ 8 246 /* in cdt, if negative, they are the negative of an index into the fnp_entry */ 8 247 /* array. If zero, they refer to the top of the non-fnp mpx tree. */ 8 248 8 249 dcl 1 channel_threads aligned based, 8 250 2 next_sister fixed bin unaligned, 8 251 2 prev_sister fixed bin unaligned, 8 252 2 daughter fixed bin unaligned, 8 253 2 mother fixed bin unaligned, /* negative is a fnpx, positive a cdtx */ 8 254 2 pad bit (18) unaligned, 8 255 2 daughter_count fixed bin unaligned; 8 256 8 257 /* Values for cdte.service_type field */ 8 258 8 259 dcl ( 8 260 ANS_SERVICE init (1), /* login or dial */ 8 261 FTP_SERVICE init (2), /* file transfer service */ 8 262 MC_SERVICE init (3), /* message coordinator */ 8 263 SLAVE_SERVICE init (4), /* special channel */ 8 264 DIAL_SERVICE init (5), /* transient state */ 8 265 DIAL_OUT_SERVICE init (6), /* auto call line */ 8 266 MPX_SERVICE init (8), /* ring0 demultiplexed line */ 8 267 TANDD_SERVICE init (9) /* transient state, attached for T & D */ 8 268 ) fixed bin internal static options (constant); 8 269 8 270 /* Values for service type in both cdte and fnpe */ 8 271 8 272 dcl ( 8 273 INACTIVE init (7), /* not to be used, even though configured */ 8 274 ACTIVE init (1) 8 275 ) /* for FNP only, configured and to be used */ 8 276 fixed bin internal static options (constant); 8 277 8 278 /* Value for both cdte.in_use and fnpe.state */ 8 279 8 280 dcl NOT_CONFIGURED fixed bin int static init (-1) options (constant); 8 281 /* was not configured at Multics bootload time */ 8 282 8 283 /* NOTE: an INACTIVE channel can be made active by operator command or CDT installation, 8 284* but a NOT_CONFIGURED channel can not be used until its multiplexer is reloaded */ 8 285 8 286 /* Value for cdte.in_use */ 8 287 8 288 dcl CHANNEL_DELETED fixed bin int static init (-2); 8 289 /* channel deleted by CDT installation */ 8 290 8 291 /* NOTE: a configured channel being deleted by a CDT installation is set to CHANNEL_DELETED. 8 292* multiplexer_mgr_ sets cdte.in_use to NOW_FREE at the next reload of its multiplexer. 8 293* A NOT_CONFIGURED channel is set to NOW_FREE immediately when deleted by a CDT installation. */ 8 294 8 295 8 296 /* Values for mpxe.state field */ 8 297 8 298 dcl ( 8 299 FNP_FREE init (0), /* this fnpe is not used */ 8 300 FNP_UNKNOWN init (1), /* FNP is in some unknown state */ 8 301 FNP_DOWN init (2), /* FNP crashed, not yet reloaded */ 8 302 FNP_BOOT init (3), /* FNP has been booted, but no response yet */ 8 303 FNP_UP init (4) /* FNP is up and running fine */ 8 304 ) fixed bin internal static options (constant); 8 305 8 306 dcl ( 8 307 MPX_FREE init (0), /* this mpxe is not used */ 8 308 MPX_UNKNOWN init (1), /* MPX is in some unknown state */ 8 309 MPX_DOWN init (2), /* MPX crashed, not yet reloaded */ 8 310 MPX_BOOT init (3), /* MPX has been booted, but no response yet */ 8 311 MPX_UP init (4) /* MPX is up and running fine */ 8 312 ) fixed bin internal static options (constant); 8 313 9 1 /* BEGIN INCLUDE FILE ... fnp_types.incl.pl1 */ 9 2 9 3 9 4 9 5 /****^ HISTORY COMMENTS: 9 6* 1) change(88-06-15,Berno), approve(88-07-13,MCR7928), 9 7* audit(88-06-15,Parisek), install(88-07-19,MR12.2-1061): 9 8* Add data needed for the uncp multiplexer (DSA gateway) interface 9 9* implementation. 9 10* END HISTORY COMMENTS */ 9 11 9 12 9 13 /* Values for fnpe.type field */ 9 14 /* 9 15* Created 79 May 14 by Art Beattie by splitting information out from cdt.incl.pl1 9 16* Added in March 1982 - DN7100.fd. 9 17**/ 9 18 9 19 dcl (DN355 init (1), /* a DataNet 355 FNP */ 9 20 DN6600 init (2), /* a DataNet 6600 FNP */ 9 21 DN6670 init (3), /* a Honeywell Bull Network Processor (18x) */ 9 22 DN7100 init (4) /* The DSA Datanet architecture (DN7) */ 9 23 ) fixed bin internal static options (constant); 9 24 9 25 dcl fnp_types (4) char (8) int static options (constant) 9 26 init ("DN355", "DN6600", "DN6670", "DN7100"); 9 27 9 28 dcl fnp_models (4) fixed bin (17) int static options (constant) 9 29 init (355, 6600, 6670, 7100); 9 30 9 31 dcl supported_fnp (4) bit (1) int static options (constant) 9 32 init ("0"b, "0"b, "1"b, "1"b); 9 33 9 34 9 35 /* END INCLUDE FILE ... fnp_types.incl.pl1 */ 8 314 8 315 8 316 /* END INCLUDE FILE ... cdt.incl.pl1 */ 1012 1013 /* BEGIN INCLUDE FILE ... condition_info.incl.pl1 */ 10 2 10 3 /* Structure for find_condition_info_. 10 4* 10 5* Written 1-Mar-79 by M. N. Davidoff. 10 6**/ 10 7 10 8 /* automatic */ 10 9 10 10 declare condition_info_ptr pointer; 10 11 10 12 /* based */ 10 13 10 14 declare 1 condition_info aligned based (condition_info_ptr), 10 15 2 mc_ptr pointer, /* pointer to machine conditions at fault time */ 10 16 2 version fixed binary, /* Must be 1 */ 10 17 2 condition_name char (32) varying, /* name of condition */ 10 18 2 info_ptr pointer, /* pointer to the condition data structure */ 10 19 2 wc_ptr pointer, /* pointer to wall crossing machine conditions */ 10 20 2 loc_ptr pointer, /* pointer to location where condition occured */ 10 21 2 flags unaligned, 10 22 3 crawlout bit (1), /* on if condition occured in lower ring */ 10 23 3 pad1 bit (35), 10 24 2 pad2 bit (36), 10 25 2 user_loc_ptr pointer, /* ptr to most recent nonsupport loc before condition occurred */ 10 26 2 pad3 (4) bit (36); 10 27 10 28 /* internal static */ 10 29 10 30 declare condition_info_version_1 10 31 fixed binary internal static options (constant) initial (1); 10 32 10 33 /* END INCLUDE FILE ... condition_info.incl.pl1 */ 1013 11 1 /* BEGIN INCLUDE FILE condition_info_header.incl.pl1 BIM 1981 */ 11 2 /* format: style2 */ 11 3 11 4 declare condition_info_header_ptr 11 5 pointer; 11 6 declare 1 condition_info_header 11 7 aligned based (condition_info_header_ptr), 11 8 2 length fixed bin, /* length in words of this structure */ 11 9 2 version fixed bin, /* version number of this structure */ 11 10 2 action_flags aligned, /* tell handler how to proceed */ 11 11 3 cant_restart bit (1) unaligned, /* caller doesn't ever want to be returned to */ 11 12 3 default_restart bit (1) unaligned, /* caller can be returned to with no further action */ 11 13 3 quiet_restart bit (1) unaligned, /* return, and print no message */ 11 14 3 support_signal bit (1) unaligned, /* treat this signal as if the signalling procedure had the support bit set */ 11 15 /* if the signalling procedure had the support bit set, do the same for its caller */ 11 16 3 pad bit (32) unaligned, 11 17 2 info_string char (256) varying, /* may contain printable message */ 11 18 2 status_code fixed bin (35); /* if^=0, code interpretable by com_err_ */ 11 19 11 20 /* END INCLUDE FILE condition_info_header.incl.pl1 */ 1014 1015 /* BEGIN INCLUDE FILE ... config_tcd_card.incl.pl1 ... 11/27/80 W. Olin Sibert */ 12 2 12 3 dcl tcd_cardp pointer; /* pointer to TCD card */ 12 4 12 5 dcl 1 tcd_card aligned based (tcd_cardp), /* TCD card declaration */ 12 6 2 word char (4), /* "tcd" */ 12 7 2 no_apt fixed bin, /* Number of APT entries */ 12 8 2 no_itt fixed bin, /* Number of ITT entries */ 12 9 12 10 2 pad (12) bit (36) aligned, /* Pad to 15 fields */ 12 11 12 12 2 type_word aligned, 12 13 3 field_type (14) bit (2) unaligned, /* type of each field; see config_deck.incl.pl1 */ 12 14 3 pad1 bit (4) unaligned, 12 15 3 n_fields fixed bin (4) unsigned unaligned; /* number of fields used on card */ 12 16 12 17 dcl TCD_CARD_WORD char (4) aligned internal static options (constant) init ("tcd"); 12 18 12 19 /* END INCLUDE FILE ... config_tcd_card.incl.pl1 */ 1015 1016 /* BEGIN INCLUDE FILE ... dialup_values.incl.pl1 */ 13 2 13 3 /* format: style4 */ 13 4 13 5 /* Values for "cdte.tra_vec" used by dialup_ and others. */ 13 6 13 7 /* Modified by T. Casey April 1976 to add WAIT_NEW_PASSWORD 13 8* - in 1977 and 1978 to add WAIT_(GREETING_MSG DELETE_CHANNEL) 13 9* - and in October 1979 to add WAIT_CONNECT_REQUEST 13 10* Modified by Robert Coren in May 1981 to add TANDD_ATTACH values and 13 11* WAIT_DISCARD_WAKEUP 13 12* Modified by T. Casey, July 1981, for MR9.0, to add WAIT_BEFORE_HANGUP. 13 13* Modified by E. N. Kittlitz, July 1982, to add TTY_MASKED. 13 14**/ 13 15 13 16 /****^ HISTORY COMMENTS: 13 17* 1) change(87-04-20,GDixon), approve(87-07-13,MCR7741), 13 18* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 13 19* Add constant arrays naming cdte.state, cdte.tra_vec and ute.active values. 13 20* 2) change(87-05-11,GDixon), approve(87-07-13,MCR7741), 13 21* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 13 22* Add named constants for instance tags. 13 23* END HISTORY COMMENTS */ 13 24 13 25 dcl (WAIT_DIALUP init (1), /* Channel waiting for dialup. */ 13 26 WAIT_ANSWERBACK initial (2), /* WRU sent, waiting for reply */ 13 27 WAIT_LOGIN_LINE init (3), /* Greeting typed, wait for login command. */ 13 28 WAIT_LOGIN_ARGS init (4), /* Want rest of login line */ 13 29 WAIT_OLD_PASSWORD init (5), /* "-cpw" was specified. Wait for old password. */ 13 30 WAIT_PASSWORD init (6), /* Waiting for password. (If "-cpw", repeat of new one.) */ 13 31 WAIT_NEW_PASSWORD init (7), /* "-cpw" was specified. Wait for new password */ 13 32 WAIT_LOGOUT_SIG init (8), /* Channel is hooked up. Wait for logout. */ 13 33 WAIT_LOGOUT init (9), /* A logout has been requested. Wait for process to die */ 13 34 WAIT_LOGOUT_HOLD init (10), /* As above but don't hang up when it dies. */ 13 35 WAIT_DETACH init (11), /* As above but ignore channel afterwards. */ 13 36 WAIT_NEW_PROC init (12), /* As above but make new process and continue. */ 13 37 WAIT_REMOVE init (13), /* As above but completely expunge channel. */ 13 38 WAIT_FIN_PRIV_ATTACH init (14), /* When channel dials up, connect it to user */ 13 39 WAIT_DIAL_RELEASE init (15), /* Waiting for master process to release. */ 13 40 WAIT_DIAL_OUT init (16), /* Waiting for auto call to complete */ 13 41 WAIT_HANGUP init (17), /* Wait for the hangup event to occur for a channel */ 13 42 WAIT_SLAVE_REQUEST init (18), /* Ignore line until someone asks */ 13 43 WAIT_GREETING_MSG init (19), /* Print greeting message and wait for login line */ 13 44 WAIT_DELETE_CHANNEL init (20), /* Channel deleted - mark cdte after process is destroyed */ 13 45 WAIT_CONNECT_REQUEST init (21), /* logged in; awaiting request re disconnected processes */ 13 46 WAIT_TANDD_HANGUP init (22), /* when channel hangs up, proceed with t & d attachment */ 13 47 WAIT_FIN_TANDD_ATTACH init (23), /* when channel dials up, finish t & d attachment */ 13 48 WAIT_DISCARD_WAKEUPS init (24), /* disregard all wakeups on channel */ 13 49 WAIT_BEFORE_HANGUP init (25), /* allow output to print before hanging up */ 13 50 WAIT_DESTROY_REQUEST init (26), /* waiting to continue with destroy request after process has destroyed itself */ 13 51 WAIT_NEW_PROC_REQUEST init (27) /* waiting to continue with new_proc request after process has destroyed itself */ 13 52 ) fixed bin internal static options (constant); 13 53 13 54 dcl TRA_VEC_VALUES (0:13) char (32) aligned int static options (constant) init 13 55 /* names of ute.destroy_flag values */ 13 56 ("", "wait dialup", "wait answerback", "wait login line", /* 0-3 */ 13 57 "wait login args", "wait old password", "wait password", /* 4-6 */ 13 58 "wait new password", "wait logout signal", "wait logout", /* 7-9 */ 13 59 "wait logout hold", "wait detach", "wait new proc", /* 10-12 */ 13 60 "wait remove"); /* -13 */ 13 61 13 62 /* Values for "cdte.state", typewriter state. */ 13 63 13 64 dcl (TTY_MASKED init (-1), /* Terminal channel is there, but masked by MCS */ 13 65 TTY_HUNG init (1), /* Terminal channel is there, but dead. */ 13 66 TTY_KNOWN init (2), /* Channel being "listened" to, awaiting dialup. */ 13 67 TTY_DIALED init (5) /* Channel is dialed up. This is normal state. */ 13 68 ) fixed bin internal static options (constant); 13 69 13 70 dcl STATE_VALUES (-1:5) char (15) aligned int static options (constant) init 13 71 /* names of cdte.state values */ 13 72 ("masked", "dead", "hung up", "listening", "", "", "dialed up"); 13 73 13 74 /* Values for "cdte.in_use" and "ate.active" */ 13 75 13 76 dcl (NOW_FREE init (0), /* Entry is empty. */ 13 77 NOW_HUNG_UP init (1), /* Entry is usable but tty is hung up. */ 13 78 NOW_LISTENING init (2), /* Entry is waiting for phone call. */ 13 79 NOW_DIALED init (3), /* Entry is connected but login not complete. */ 13 80 NOW_LOGGED_IN init (4), /* Entry is logged in but no process. */ 13 81 NOW_HAS_PROCESS init (5), /* Entry has a valid process. */ 13 82 NOW_DIALING init (6), /* Entry (auto_call line) is dialing */ 13 83 NOW_DIALED_OUT init (7) /* Entry (auto_call line) is in use */ 13 84 ) fixed bin internal static options (constant); 13 85 13 86 dcl ACTIVE_VALUES (0:5) char (18) aligned int static options (constant) init 13 87 /* names of ute.active values */ 13 88 ("free", "hung-up", "listening", "dialed", "logged in, no proc", "logged in & proc"); 13 89 13 90 13 91 /**** Values for ute.tag */ 13 92 13 93 dcl (TAG_INTERACTIVE init("a"), 13 94 TAG_UFT init("f"), 13 95 TAG_ABSENTEE init("m"), 13 96 TAG_PROXY init("p"), 13 97 TAG_DAEMON init("z") 13 98 ) char(1) int static options(constant); 13 99 13 100 13 101 /**** Following are constants used to indicate to the process termination 13 102* handler the reason for the process termination. They are used by 13 103* uc_proc_term_handler_, as well as uc_ls_new_proc_request_ and 13 104* uc_ls_destroy_request_. */ 13 105 13 106 dcl ( 13 107 PT_FPE initial (1), 13 108 PT_LOGOUT initial (4), 13 109 PT_NEW_PROC_AUTH initial (13), 13 110 PT_HANGUP initial (20), 13 111 PT_SHUTDOWN initial (21), 13 112 PT_BUMP initial (22), 13 113 PT_ALARM initial (23), 13 114 PT_DETACH initial (24), 13 115 PT_UNBUMP initial (25), 13 116 PT_OPERATOR_TERMINATE initial (27), 13 117 PT_DESTROY_REQUEST initial (30), 13 118 PT_NEW_PROC_REQUEST initial (31) 13 119 ) fixed bin (17) internal static options (constant); 13 120 13 121 /**** Values for ute.preempted: 13 122* -1 user unbumped after term signal sent 13 123* 0 user unbumped; ignore alarm___ 13 124* 1 value internally used in load_ctl_ 13 125* 2 user bumped; when alarm___ comes in, send term signal 13 126* 3 term signal sent; destroy process if termsgnl, alarm___, or cpulimit 13 127* signals come in 13 128* 4 user bumped; process sick, so destroy without sending term signal 13 129* 5 trm_ signal sent, termsgnl received; (if still 3, we never got the 13 130* termsgnl). */ 13 131 13 132 dcl ( 13 133 PREEMPT_UNBUMP initial (-1), 13 134 PREEMPT_UNBUMP_IGNORE_ALARM initial (0), 13 135 PREEMPT_LOAD_CTL initial (1), 13 136 PREEMPT_BUMPED initial (2), 13 137 PREEMPT_TERM_SENT initial (3), 13 138 PREEMPT_BUMPED_NO_TERM initial (4), 13 139 PREEMPT_TERMSGNL_RECEIVED initial (5) 13 140 ) fixed bin (17) internal static options(constant); 13 141 13 142 dcl PREEMPT_VALUES (-1:5) char(28) varying int static options(constant) init( 13 143 "unbumped", 13 144 "not bumped, ignore alarm___", 13 145 "load_ctl_", 13 146 "bumped", 13 147 "bumped, trm_ sent", 13 148 "bumped without trm_", 13 149 "bumped, termsgnl received"); 13 150 13 151 /* END INCLUDE FILE ... dialup_values.incl.pl1 */ 1016 1017 /* BEGIN INCLUDE FILE ... hashst.incl.pl1 */ 14 2 /* format: style4 */ 14 3 14 4 /* General Utility hash table */ 14 5 14 6 dcl 1 htable based (htp) aligned, /* hash table entries of level 2 are statistical info */ 14 7 2 nb fixed bin, /* number of buckets in hash table */ 14 8 2 ni fixed bin, /* number of entries used */ 14 9 2 np fixed bin, /* number of times hash_ called referincing this table */ 14 10 2 tnt fixed bin, /* total # of tries to find, enter, or delete an entry */ 14 11 2 id char (4), /* ht01 version 1 of hash_ */ 14 12 2 gnt fixed bin, /* greatest number of tries for search etc. */ 14 13 2 loht fixed bin (18) unsigned, /* length of hash table in words */ 14 14 2 pad bit (36) aligned, /* padding */ 14 15 2 buckets (1:hash_table_size_ refer (htable.nb)), /* 26111=((1024*255)/10 words per entry)-1 (8-word header) */ 14 16 3 name char (32) unaligned, /* identifier of entry */ 14 17 3 value bit (36) aligned, /* value corresponding to name */ 14 18 3 flags aligned, 14 19 4 ds bit (1) unal, /* deleted switch="1"b if deleted */ 14 20 4 empty bit (1) unal, 14 21 4 pad bit (34) unal, /* empty switch="1"b if empty */ 14 22 2 end_of_table bit (0) aligned; /* to get address */ 14 23 14 24 declare MAX_HT_BUCKETS_IN_SEG fixed bin init (26111) int static options (constant); 14 25 declare hash_table_size_ fixed bin; 14 26 14 27 /* END INCLUDE FILE ... hashst.incl.pl1 */ 1017 1018 dcl htp ptr init (null); /* needed by hashst */ 1019 /* BEGIN INCLUDE FILE ... installation_parms.incl.pl1 */ 15 2 15 3 /* Modified 740723 by PG to add short AIM access names */ 15 4 /* Modified Fall 1977 by T. Casey to add fatal loop and trm_ signal parameters */ 15 5 /* Modified 04/03/78 by CDT to add rcp_init_flags structure */ 15 6 /* Modified May 1978 by T. Casey to add resource timer and resource price list parameters */ 15 7 /* Modified November 1978 by T. Casey for MR7.0, to add absentee control parameters */ 15 8 /* Modified 17 September 1980 by G. Palter to add default absentee queue */ 15 9 /* Modified April 1981 by E. N. Kittlitz for chn_wakeup_error_loop, chn_wakeup_error_count */ 15 10 /* Modified June 1981 by E. N. Kittlitz for nrates/rate_structures UNCA rate_structure support. 15 11* Version, expand foregound_cpu_default_limit and abs_cpu_max_limit to fixed bin (35) fields. 15 12* nrscp & resource array moved from offset 2064 (octal) to 2400 (octal). */ 15 13 /* Modified 1984-06-19 BIM to remove obsolete fields, and add 15 14* strict_trusted_path. */ 15 15 /* Modified 1984-10-24 BIM for default_pdir_quota. */ 15 16 /* Modified 1984-12-05 BIM for require_operator_login. */ 15 17 /* Modified 1985-03-01 by E. Swenson for password flags. */ 15 18 15 19 15 20 /****^ HISTORY COMMENTS: 15 21* 1) change(86-01-27,MSharpe), approve(87-05-25,MCR7690), 15 22* audit(87-03-29,GDixon), install(87-08-04,MR12.1-1056): 15 23* added vchn_requires_accept parameter. 15 24* 2) change(87-02-17,GDixon), approve(87-05-25,MCR7680), 15 25* audit(87-06-02,Parisek), install(87-08-04,MR12.1-1056): 15 26* Correct formatting problems. 15 27* END HISTORY COMMENTS */ 15 28 15 29 15 30 /* NOTE: rate_structure.incl.pl1 uses these declarations */ 15 31 15 32 15 33 dcl 1 installation_parms based (ip) aligned, /* describes installation parameters */ 15 34 2 part_1 like installation_parms_part_1 aligned, 15 35 2 resource (0 refer (installation_parms.nrscp)) like installation_parms_resource_array_part aligned; 15 36 15 37 dcl installation_parms_version_1 fixed bin init (1) static internal options (constant); 15 38 dcl installation_parms_version_2 fixed bin init (2) static internal options (constant); 15 39 15 40 dcl 1 installation_parms_part_1 based aligned, /* Used only by installation_parms and rate_structure */ 15 41 2 installation_id char (32), /* Name printed at dialup and in who */ 15 42 2 company char (64), /* company name */ 15 43 2 department char (64), /* department */ 15 44 2 companyds char (120), /* company, double spaced */ 15 45 2 departmentds char (120), /* dpeartment double spaced */ 15 46 2 shifttab (336) bit (3) unal, /* half-hrs from 0000 Mon, value is shift no */ 15 47 2 cpu_price (0: 7) float bin, /* price for cpu hour, by shift */ 15 48 2 log_base_price (0: 7) float bin, /* price for log hour, by shift */ 15 49 2 io_ops_price (0: 7) float bin, /* price per 1000 terminal io ops */ 15 50 2 core_price (0: 7) float bin, /* price for core page-hour, by shift */ 15 51 2 ndevices fixed bin, /* number of devices to charge */ 15 52 2 devtab (16), /* Maximum 16 */ 15 53 3 device_id char (8), /* Name of device */ 15 54 3 device_price (0: 7) float bin, /* Price by shift */ 15 55 2 inactive_time fixed bin, /* seconds of inactivity permitted */ 15 56 2 warning_time fixed bin, /* seconds from warning to logout */ 15 57 2 login_time fixed bin, /* seconds in which to complete login */ 15 58 2 acct_update fixed bin, /* seconds between acct update */ 15 59 2 login_tries fixed bin, /* number of login tries allowed */ 15 60 2 disk_price float bin, /* disk rate, in $/page-sec */ 15 61 2 registration_price float bin, /* fee per month per user */ 15 62 2 dolsign char (1), /* "dollar sign" */ 15 63 2 abs_cpu_price (4) float bin, /* price for absentee cpu by queue */ 15 64 2 abs_mem_price (4) float bin, /* Absentee memory charge */ 15 65 2 iod_rec_price (4) float bin, /* price for io daemon lines, per K, by queue */ 15 66 2 abs_timax (4) fixed bin (35), /* Absentee TIMAX parameter */ 15 67 2 abs_cpu_default_limit (4) fixed bin (35), /* default absentee cpu limit in seconds (changed from usec.) */ 15 68 2 syserr_log_copy_threshold fixed bin (9), /* Threshold (in PAGES) at which the 15 69* Initializer will copy the syserr_log */ 15 70 2 default_pdir_seg_quota fixed bin (17) unaligned, /* if system and project say 0 */ 15 71 2 default_pdir_dir_quota fixed bin (17) unaligned, /* Always used */ 15 72 2 fatal_error_loop_count fixed bin (17) unaligned, 15 73 2 fatal_error_loop_seconds fixed bin (17) unaligned, 15 74 2 term_real_time_seconds fixed bin (17) unaligned, 15 75 2 term_cpu_time_seconds fixed bin (17) unaligned, 15 76 2 rcp_init_flags like rcp_init_flags aligned, /* one word long */ 15 77 2 rsc_timer_seconds fixed bin (17) unaligned, /* time interval at which to check for resource availability */ 15 78 2 pad_old_fg_cpu_default_limit bit (18) unaligned, 15 79 2 foreground_queue_position fixed bin (17) unal, /* queue that foreground queue comes after */ 15 80 2 idle_time_constant_seconds fixed bin (17) unal, /* how far back to maintain moving average of load */ 15 81 2 sus_cpu_time_seconds fixed bin (17) unal, /* allow suspended process this much cpu time */ 15 82 2 sus_real_time_seconds fixed bin (17) unal, /* and this much real time, before bumping it */ 15 83 2 foreground_cpu_default_limit fixed bin (35), /* default cpu time limit (sec) for foreground absentee jobs */ 15 84 2 access_authorization_ceiling bit (72), /* "System high" access authorization. */ 15 85 2 level_names (0:7) char (32), /* Names for security levels. */ 15 86 2 category_names (18) char (32), /* Names for security categories. */ 15 87 2 short_level_names (0:7) char (8), /* Abbreviated level names. */ 15 88 2 short_category_names (18) char (8), /* Abbreviated category names. */ 15 89 2 ncon fixed bin, /* Number of config elements. */ 15 90 2 cona (51), /* each entry is 5 words long */ 15 91 3 cpu fixed bin (5) unal, /* Number of CPU's */ 15 92 3 shift fixed bin (5) unal, /* Shift number */ 15 93 3 x1 fixed bin (23) unal, 15 94 3 kmem fixed bin (17) unal, /* Memory size */ 15 95 3 kbulk fixed bin (17) unal, /* Bulk store size */ 15 96 3 x2 fixed bin (17) unal, 15 97 3 maxa fixed bin (11) unal, /* Max abs users */ 15 98 3 maxq fixed bin (5) unal, /* Max abs q */ 15 99 3 maxu_base fixed bin (17) unal, 15 100 3 response_high fixed bin (17) unal, 15 101 3 response_low fixed bin (17) unal, 15 102 3 x3 fixed bin (17) unal, 15 103 15 104 /* Absentee control parameters. New for MR7.0 */ 15 105 15 106 2 max_abs (0:7) fixed bin (17) unal, /* per-shift upper limit on abs_maxu */ 15 107 2 min_abs (0:7) fixed bin (17) unal, /* per-shift lower limit on abs_maxu */ 15 108 2 pct_abs (0:7) fixed bin (17) unal, /* abs_maxu is this pct (per-shift) of idle units */ 15 109 15 110 2 max_qres (0:7, 4) fixed bin (17) unal, /* per-shift-and-queue upper limit on reserved slots */ 15 111 2 min_qres (0:7, 4) fixed bin (17) unal, /* per-shift-and-queue lower limit on reserved slots */ 15 112 2 pct_qres (0:7, 4) fixed bin (17) unal, /* reserved slots are these pcts of abs_maxu */ 15 113 15 114 2 abs_cpu_max_limit (0:7, 4) fixed bin (35), /* per-shift-and-queue upper limit (sec) on jobs' cpu times */ 15 115 15 116 2 default_absentee_queue fixed binary (17) unaligned, /* default absentee queue for ear, etc. */ 15 117 15 118 2 chn_wakeup_error_loop_count fixed bin (17) unaligned, /* maximum number of channel wakeups in following interval */ 15 119 2 chn_wakeup_error_loop_seconds fixed bin (17) unaligned, /* works like fatal_error_loop_count/seconds */ 15 120 2 rate_structure_number fixed bin (17) unaligned, /* rate_structure number of this RS */ 15 121 2 version fixed bin (35), /* must be 2 */ 15 122 2 nrates fixed bin, /* number of rate structures */ 15 123 2 rate_structures (0:9) char (32), /* names of rate_structures */ 15 124 2 trusted_path_login bit (1) aligned, /* forbid logout -hold and new_proc -auth */ 15 125 2 require_operator_login bit (1) aligned, /* just what it says */ 15 126 2 operator_inactive_time fixed bin, /* seconds between commands --> not logged in. */ 15 127 2 validate_daemon_commands bit (1) aligned, /* force existence and adequate access to 15 128* mcacs segments for operators */ 15 129 2 password_min_length fixed bin, /* minimum length of passwords */ 15 130 2 password_gpw_length fixed bin, /* length of generated passwords */ 15 131 2 password_change_interval fixed bin, /* number of days until must change */ 15 132 2 password_expiration_interval fixed bin, /* number of days that a password may remain unused */ 15 133 2 vchn_requires_accept bit (1) aligned, /* "login personid -op -vchn foo" must be 15 134* "accepted" by operator if personid is not 15 135* signed on system console */ 15 136 2 end_pad (219) bit (36) aligned, /* leave plenty of pad before the variable length price list */ 15 137 2 nrscp fixed bin; /* length of resource price array; must have offset 2400 (octal), 15 138* or someone miscounted when using part of pad2 */ 15 139 15 140 15 141 /* Entries in the following array may be accessed via system_info_$resource_price. 15 142* This array should not be accessed directly, since its format will change in subsequent releases of Multics. */ 15 143 15 144 dcl 1 installation_parms_resource_array_part (0 refer (installation_parms.nrscp)) based, 15 145 2 name char (32), 15 146 2 price float bin; 15 147 16 1 /* BEGIN INCLUDE FILE ... rcp_init_flags.incl.pl1 */ 16 2 16 3 /* Created on 04/24/78 by Michael R. Jordan */ 16 4 /* Modified 04/10/79 by C. D. Tavares */ 16 5 16 6 dcl rifp ptr; 16 7 16 8 dcl 1 rcp_init_flags based (rifp), 16 9 2 unload_on_detach bit (1) unaligned, /* ON => tape volumes are unloaded after detaching */ 16 10 2 pad1 bit (2) unaligned, /* obsolete */ 16 11 2 resource_mgmt_enabled bit (1) unaligned, /* ON => resource management has been enabled */ 16 12 2 auto_registration bit (1) unaligned, /* ON => auto registration allowed */ 16 13 2 pad2 bit (2) unaligned, /* future expansion, possibly of authentication_level */ 16 14 2 authentication_level fixed bin (2) unaligned unsigned; /* see below for values */ 16 15 16 16 dcl (No_authentication initial (0), 16 17 Nominal_authentication initial (1), 16 18 Automatic_authentication initial (2), 16 19 Manual_authentication initial (3)) fixed bin internal static options (constant); 16 20 16 21 dcl authentication_level_names (0:3) char (12) internal static options (constant) initial 16 22 ("none", "nominal", "automatic", "manual"); 16 23 16 24 /* END INCLUDE FILE ... rcp_init_flags.incl.pl1 */ 15 148 15 149 15 150 /* END INCLUDE FILE ... installation_parms.incl.pl1 */ 1019 1020 /* --------------- BEGIN include file rtdt.incl.pl1 --------------- */ 17 2 17 3 dcl 1 rtdt aligned based (rtdtp), /* resource type description table */ 18 1 /* BEGIN INCLUDE FILE author.incl.pl1 */ 18 2 18 3 /* the "author" items must always be the first ones in the table. The 18 4* module which moves the converted table to the System Control process 18 5* fills in these data items and assumes them to be at the head of the segment 18 6* regardless of the specific table's actual declaration. The variables 18 7* "lock" and "last_install_time" used to be "process_id" and "ev_channel" 18 8* respectively. For tables installed in multiple processes, these 18 9* are to be used to lock out multiple installations. */ 18 10 18 11 /* Lock should be used as a modification lock. Since, in general, 18 12* entries may not be moved in system tables, even by installations, 18 13* it is sufficient for only installers and programs that change threads 18 14* to set or respect the lock. Simply updating data in an entry 18 15* requires no such protection. 18 16* 18 17* Last_install_time is used by readers of system tables to detect 18 18* installations or other serious modifications. By checking it before 18 19* and after copying a block of data, they can be protected against 18 20* modifications. 18 21* 18 22* Modules that set the lock should save proc_group_id, and then 18 23* put their group id there for the time they hold the lock. 18 24* if they do not actually install the, they should restore the group id. 18 25**/ 18 26 18 27 2 author aligned, /* validation data about table's author */ 18 28 3 proc_group_id char (32), /* process-group-id (personid.projectid.tag) */ 18 29 3 lock bit (36), /* installation lock */ 18 30 3 update_attributes bit (1) unal, /* update/add/delete attributes */ 18 31 3 update_authorization bit (1) unal, /* update only authorizations */ 18 32 3 deferral_notified bit (1) unal, /* installer notified of deferral of installation */ 18 33 3 pad bit (33) unaligned, 18 34 3 last_install_time fixed bin (71), 18 35 3 table char (4), /* name of table, e.g., SAT MGT TTT RTDT PDT etc. */ 18 36 3 w_dir char (64), /* author's working directory */ 18 37 18 38 /* END INCLUDE FILE author.incl.pl1 */ 17 4 17 5 2 version fixed bin, /* version number */ 17 6 2 installed_under_resource_mgt bit (1) aligned, /* resource mgt. was ON when this was installed */ 17 7 2 charge_type_table_ptr offset, /* points to charge_type_table */ 17 8 2 first_resource offset, /* chain for RTDE's */ 17 9 2 rtdt_area area (RTDT_area_len); /* all following items allocated here */ 17 10 17 11 dcl 1 charge_type_table aligned based (cttp), /* describes charges for resource types */ 17 12 2 n_charge_types fixed bin, /* number of distinct charge types */ 17 13 2 charge_types (N_CHARGE_TYPES refer (charge_type_table.n_charge_types)) aligned char (32), 17 14 2 flagword fixed bin (35) aligned; /* this word simply help us set bitcount properly */ 17 15 17 16 dcl 1 rtde aligned based (rtdep), /* describes one resource type */ 17 17 2 fixed_info aligned, 17 18 3 next_resource offset, /* chains to next type, or nullo */ 17 19 3 name char (32), /* name of resource type, e.g. "tape_drive" */ 17 20 3 syn_to char (32), /* if is_synonym this is master syn */ 17 21 3 precanon_proc char (64), /* name of routine to standardize resource name */ 17 22 3 pad_1 (16) fixed bin (35), 17 23 3 flags unaligned, 17 24 4 (valid, /* resource type hasn't been deleted */ 17 25 is_volume, /* specifies volume or device type */ 17 26 manual_clear, /* volumes of this type to be "degaussed" between owners */ 17 27 addition_pending, /* bookkeeping bit for upd_rtdt_ */ 17 28 deletion_pending, 17 29 is_synonym) bit (1) unaligned, /* ditto */ 17 30 4 pad bit (12) unaligned, 17 31 3 (process_limit, /* how many can you assign at one time */ 17 32 default_time, /* implicit reservations are for how many minutes */ 17 33 max_time, /* how long can you reserve it for */ 17 34 advance_notice_time, /* warn operator to prepare mount ahead of time */ 17 35 pad2, 17 36 n_exclusion_specs, /* number of distinct "name=" fields in attributes */ 17 37 n_mates, /* number of mating devs/vols for this vol/dev */ 17 38 n_subtypes, /* number of registration subtypes */ 17 39 n_defined_attributes) fixed bin (17) unaligned, /* number of defined attributes */ 17 40 3 pad_2 (8) fixed bin (35), 17 41 3 attributes_valid bit (72) aligned, /* "1"b if corresp. attribute undeleted */ 17 42 3 attributes_to_match bit (72) aligned, /* potential mate must possess these attributes */ 17 43 3 attribute_names (72) char (12) aligned, /* all possible attributes for this resource */ 17 44 3 exclusion_specs (36) bit (72) aligned, /* each masks all attrributes of the form "key=val" */ 17 45 3 pad_3 (32) fixed bin (35), 17 46 3 registration_defaults aligned, /* applied at reg. time if none given */ 17 47 4 default_flags aligned, 17 48 5 (potential_attributes_given, /* "1"b = there are default potential_attributes */ 17 49 attributes_given, /* and similarly, etc. */ 17 50 aim_range_given, 17 51 charge_type_given) bit (1) unaligned, 17 52 5 pad bit (31) unaligned, 17 53 4 potential_attributes bit (72) aligned, /* for registration, if given */ 17 54 4 attributes bit (72) aligned, /* for registration and also for runtime "I-don't-care" */ 17 55 4 aim_range (2) bit (72) aligned, /* and similarly, etc. */ 17 56 4 charge_type fixed bin, 17 57 4 pad_4 (8) fixed bin (35) aligned, 17 58 2 mates (N_MATES refer (rtde.n_mates)) char (32) aligned, 17 59 /* the volume type that mounts on this device, or vice versa */ 17 60 2 subtypes (N_SUBTYPES refer (rtde.n_subtypes)) aligned, /* named registration default groups */ 17 61 3 subtype_name char (32), /* name of the group */ 17 62 3 subtype_defaults like rtde.registration_defaults aligned; 17 63 17 64 dcl RTDT_version_3 fixed bin static options (constant) initial (3), 17 65 RTDT_version_2 fixed bin static options (constant) initial (2), 17 66 /* same format, but without precanon_proc */ 17 67 (N_MATES, N_SUBTYPES, N_CHARGE_TYPES) fixed bin, 17 68 RTDT_area_len fixed bin (18); 17 69 17 70 dcl (rtdep, rtdtp, cttp) pointer; 17 71 17 72 /* ---------------- END include file rtdt.incl.pl1 ---------------- */ 1020 1021 /* BEGIN INCLUDE FILE ... sat.incl.pl1 */ 19 2 19 3 19 4 19 5 19 6 /****^ HISTORY COMMENTS: 19 7* 1) change(86-09-05,Parisek), approve(87-06-17,MCR7570), 19 8* audit(87-06-15,Hirneisen), install(87-08-06,MR12.1-1066): 19 9* Expand comment line of project.state to include the renamed state (state = 19 10* 3). 19 11* END HISTORY COMMENTS */ 19 12 19 13 19 14 19 15 /* Modified 740723 by PG to add AIM info */ 19 16 /* Modified 750604 by T. Casey to add priority scheduler parameters */ 19 17 /* Modified May 1976 by T. Casey to add project cutoff limits */ 19 18 /* Modified May 1978 by T. Casey to add pdir_quota */ 19 19 /* Modified November 1978 by T. Casey to add max_(fore back)ground and abs_foreground_cpu_limit */ 19 20 /* Modified July 1979 by J. N. R. Barnecut to support multiple rate structures. (UNCA) */ 19 21 /* Modified January 1982 by E. N. Kittlitz for user_attributes.incl.pl1 changes */ 19 22 /* Modified 1984-07-05 BIM range of authorizations, version 3 */ 19 23 19 24 dcl (SAT_version init (3), /* version 2 of this declaration */ 19 25 19 26 SAT_header_lth init (466), /* length in words of SAT header */ 19 27 SAT_entry_lth init (80), /* length in words of SAT entry */ 19 28 19 29 SAT_project_name_length init (9) /* proper length of project.project_id */ 19 30 ) fixed bin internal static options (constant); 19 31 19 32 dcl 1 sat based (satp) aligned, 19 33 20 1 /* BEGIN INCLUDE FILE author.incl.pl1 */ 20 2 20 3 /* the "author" items must always be the first ones in the table. The 20 4* module which moves the converted table to the System Control process 20 5* fills in these data items and assumes them to be at the head of the segment 20 6* regardless of the specific table's actual declaration. The variables 20 7* "lock" and "last_install_time" used to be "process_id" and "ev_channel" 20 8* respectively. For tables installed in multiple processes, these 20 9* are to be used to lock out multiple installations. */ 20 10 20 11 /* Lock should be used as a modification lock. Since, in general, 20 12* entries may not be moved in system tables, even by installations, 20 13* it is sufficient for only installers and programs that change threads 20 14* to set or respect the lock. Simply updating data in an entry 20 15* requires no such protection. 20 16* 20 17* Last_install_time is used by readers of system tables to detect 20 18* installations or other serious modifications. By checking it before 20 19* and after copying a block of data, they can be protected against 20 20* modifications. 20 21* 20 22* Modules that set the lock should save proc_group_id, and then 20 23* put their group id there for the time they hold the lock. 20 24* if they do not actually install the, they should restore the group id. 20 25**/ 20 26 20 27 2 author aligned, /* validation data about table's author */ 20 28 3 proc_group_id char (32), /* process-group-id (personid.projectid.tag) */ 20 29 3 lock bit (36), /* installation lock */ 20 30 3 update_attributes bit (1) unal, /* update/add/delete attributes */ 20 31 3 update_authorization bit (1) unal, /* update only authorizations */ 20 32 3 deferral_notified bit (1) unal, /* installer notified of deferral of installation */ 20 33 3 pad bit (33) unaligned, 20 34 3 last_install_time fixed bin (71), 20 35 3 table char (4), /* name of table, e.g., SAT MGT TTT RTDT PDT etc. */ 20 36 3 w_dir char (64), /* author's working directory */ 20 37 20 38 /* END INCLUDE FILE author.incl.pl1 */ 19 34 19 35 2 max_size fixed bin, /* max number of entries table can grow */ 19 36 2 current_size fixed bin, /* current size of table (in entries) */ 19 37 2 version fixed bin, /* version number of table (word 32) */ 19 38 2 freep fixed bin, /* free chain ptr. 0 if no free entries */ 19 39 2 n_projects fixed bin, /* number of entries actually used */ 19 40 2 pad_was_max_users bit (36) aligned, 19 41 2 max_units fixed bin, /* maximum number of login-units per session */ 19 42 2 pad_was_max_prim bit (36) aligned, 19 43 2 uwt_size fixed bin, /* size of User Weight Table */ 19 44 2 uwt (24) aligned, /* User Weight Table */ 19 45 3 initproc char (64) unaligned, /* user's initial procedure */ 19 46 3 units fixed bin, /* weight of initial procedure */ 19 47 2 system_admin (2) char (32) unal, /* system administrator ID */ 19 48 2 pad1 (4) fixed bin, /* padding to 466 wds */ 19 49 2 project (3258), /* The SAT entries. 255K segment. */ 19 50 3 pad (80) fixed bin; /* each entry is 80 words long */ 19 51 19 52 19 53 dcl 1 project based (satep) aligned, /* declaration of a single SAT entry */ 19 54 2 state fixed bin, /* state 1 = normal, 0 = free, 2 = deleted, 3 = renamed */ 19 55 2 project_id char (12) unaligned, /* project's name */ 19 56 2 project_dir char (64) unaligned, /* project's directory */ 19 57 2 pdt_ptr pointer, /* pointer to current PDT */ 19 58 2 max_users fixed bin, /* maximum number of users from project */ 19 59 2 n_users fixed bin, /* current number */ 19 60 2 at like user_attributes aligned, /* include user_attributes.incl.pl1 */ 19 61 2 admin (4) aligned, /* list of project's administrators */ 19 62 3 userid char (30) unal, /* administrator's user-id (personid.projectid) */ 19 63 3 pad char (2) unal, 19 64 2 cutoff char (1), /* if project is cut off, why. */ 19 65 2 min_ring fixed bin, /* lowest ring for project */ 19 66 2 max_ring fixed bin, /* highest ring for project */ 19 67 2 alias char (8) unal, /* project alias */ 19 68 2 group char (8) unal, /* default group for this project */ 19 69 2 grace_max fixed bin, /* maximum bump grace */ 19 70 2 audit bit (36), /* audit flags for project */ 19 71 2 project_authorization (2) bit (72), /* authorization of this project */ 19 72 2 groups (2) char (8) unal, /* authorized groups for this project */ 19 73 2 days_to_cutoff fixed bin (17) unaligned, /* these figures are as of last running of daily_summary */ 19 74 2 pct_balance fixed bin (17) unaligned, /* they are used for warning message printing only */ 19 75 2 dollars_to_cutoff float bin, /* and are not to be taken as up-to-date figures */ 19 76 2 pdir_quota fixed bin (17) unaligned, /* max pdir quota allowed for project */ 19 77 2 max_foreground fixed bin (9) unsigned unaligned, /* max simultaneous foreground and background */ 19 78 2 max_background fixed bin (9) unsigned unaligned, /* processes that a user on this project can have */ 19 79 2 abs_foreground_cpu_limit fixed bin (17) unaligned, /* time limit on foreground absentee jobs */ 19 80 2 rs_number fixed bin (9) unsigned unaligned, /* rate structure number (0=default rates ) */ 19 81 2 satpad1 fixed bin (9) unsigned unaligned, 19 82 2 satpad (1) bit (36) aligned, /* pad to 80 words */ 19 83 2 chain fixed bin; /* if free entry, chain */ 19 84 19 85 /* END INCLUDE FILE ... sat.incl.pl1 */ 1021 1022 1023 dcl satep ptr automatic init (null); /* sat incl requires dcl of this pointer. */ 1024 /* BEGIN: sc_stat_.incl.pl1 * * * * * */ 21 2 21 3 21 4 /****^ HISTORY COMMENTS: 21 5* 1) change(87-02-04,GDixon), approve(87-05-25,MCR7690), 21 6* audit(87-06-02,Parisek), install(87-08-04,MR12.1-1056): 21 7* Add sc_stat_$vchn_requires_accept in support of DSA virtual channels. 21 8* 2) change(87-02-04,GDixon), approve(87-05-25,MCR7680), 21 9* audit(87-06-02,Parisek), install(87-08-04,MR12.1-1056): 21 10* Reorganized by type of data to improve readability. 21 11* END HISTORY COMMENTS */ 21 12 21 13 21 14 /* ACCESS NAMES */ 21 15 dcl ( 21 16 sc_stat_$exec_access_name, /* check MC access in an exec request */ 21 17 sc_stat_$unidentified_access_name /* check access if no one is logged in. */ 21 18 ) char(32) ext static; 21 19 21 20 /* PATHNAMES */ 21 21 dcl ( 21 22 sc_stat_$info_dir, /* admin info segs directory */ 21 23 sc_stat_$log_dir, /* as log segs directory */ 21 24 sc_stat_$mc_acs_dir, /* message coordinator ACS segments (.mcacs) dir */ 21 25 sc_stat_$sysdir /* system control directory */ 21 26 ) char(168) ext static; 21 27 21 28 /* OTHER CHAR STRINGS */ 21 29 dcl ( 21 30 sc_stat_$master_channel /* Master TTY channel. */ 21 31 ) char(6) aligned ext static; 21 32 21 33 /* LABELS */ 21 34 dcl ( 21 35 sc_stat_$admin_listener_exit_label, /* GO here to exit admin mode. Set to */ 21 36 /* ssu_$null_label unless */ 21 37 /* admin_listener is active. */ 21 38 sc_stat_$master_abort_label, /* GO here after fault that is not */ 21 39 /* attributable to a particular */ 21 40 /* command. */ 21 41 sc_stat_$system_shutdown_label /* GO here to shut down system */ 21 42 ) label variable ext static; 21 43 21 44 /* POINTERS TO */ 21 45 dcl ( 21 46 sc_stat_$admin_log_iocb, /* IOCB for admin log */ 21 47 sc_stat_$admin_log_write_ptr, /* DATA for log_write_ calls on the admin log */ 21 48 sc_stat_$admin_sci_ptr, /* DATA ssu_ for terminal currently executing */ 21 49 sc_stat_$as_log_write_ptr, /* DATA for log_write_ calls on as log, used */ 21 50 /* by sys_log_. */ 21 51 sc_stat_$initzer_ttyp, /* ENT mc_ate for initializer terminal */ 21 52 sc_stat_$master_iocb, /* IOCB for "master_i/o" */ 21 53 sc_stat_$master_sci_ptr, /* DATA ssu_ (permanent) for system control */ 21 54 sc_stat_$mc_ansp, /* HEAD of mc_anstbl */ 21 55 sc_stat_$mc_iocb, /* IOCB ptr for "mc_i/o" */ 21 56 sc_stat_$sv1_iocb, /* IOCB ptr for "severity1" */ 21 57 sc_stat_$sv2_iocb, /* IOCB ptr for "severity2" */ 21 58 sc_stat_$sv3_iocb /* IOCB ptr for "severity3" */ 21 59 ) ptr ext static; 21 60 21 61 /* SWITCHES */ 21 62 dcl ( 21 63 sc_stat_$Go, /* TRUE after answering service is listening*/ 21 64 sc_stat_$Go_typed, /* TRUE immediately after 'go' is typed */ 21 65 sc_stat_$Multics, /* TRUE after answering service started */ 21 66 sc_stat_$Multics_typed, /* TRUE immediately after 'mult' is typed */ 21 67 sc_stat_$Star_typed, /* TRUE if 'mult' and 'go' came from 'star' */ 21 68 sc_stat_$admin_listener_switch, /* TRUE if in the admin listener */ 21 69 sc_stat_$did_part1, /* TRUE if part 1 of system startup ec done */ 21 70 sc_stat_$did_part2, /* TRUE if part 2 of system startup ec done */ 21 71 sc_stat_$did_part3, /* TRUE if part 3 of system startup ec done */ 21 72 sc_stat_$mc_is_on, /* TRUE if message coordinator running */ 21 73 sc_stat_$no_operator_login, /* TRUE if operator login not required, or */ 21 74 /* if PNT not yet available. */ 21 75 sc_stat_$shutdown_typed, /* TRUE if 'shutdown' command in progress. */ 21 76 sc_stat_$test_mode, /* TRUE if in test environment */ 21 77 sc_stat_$vchn_requires_accept /* TRUE if vchn may only be used if accepted*/ 21 78 /* by operator signed on system console*/ 21 79 ) bit(1) aligned ext static; 21 80 21 81 21 82 /* END OF: sc_stat_.incl.pl1 * * * * * */ 1024 1025 /* BEGIN INCLUDE FILE sub_error_info.incl.pl1 */ 22 2 /* format: style2 */ 22 3 22 4 /* The include file condition_info_header must be used with this file */ 22 5 22 6 declare sub_error_info_ptr pointer; 22 7 declare 1 sub_error_info aligned based (sub_error_info_ptr), 22 8 2 header aligned like condition_info_header, 22 9 2 retval fixed bin (35), /* return value */ 22 10 2 name char (32), /* module name */ 22 11 2 info_ptr ptr; 22 12 22 13 declare sub_error_info_version_1 22 14 internal static options (constant) fixed bin init (1); 22 15 22 16 /* END INCLUDE FILE sub_error_info.incl.pl1 */ 1025 1026 /* BEGIN INCLUDE FILE sys_log_constants.incl.pl1 ... 82-09-24 E. N. Kittlitz */ 23 2 23 3 23 4 /****^ HISTORY COMMENTS: 23 5* 1) change(87-04-22,GDixon), approve(87-06-10,MCR7708), 23 6* audit(87-06-02,Parisek), install(87-08-04,MR12.1-1056): 23 7* Added sl_info structure and associated named constants for use in calling 23 8* sys_log_$general. 23 9* END HISTORY COMMENTS */ 23 10 23 11 23 12 /* format: style4 */ 23 13 23 14 dcl ( 23 15 SL_TYPE_CRASH init (-3), /* type message with banner & kill system */ 23 16 SL_TYPE_BEEP init (-2), /* type message with banner */ 23 17 SL_TYPE init (-1), /* type message */ 23 18 SL_LOG_SILENT init (0), /* log message */ 23 19 SL_LOG init (1), /* log & type message */ 23 20 SL_LOG_BEEP init (2), /* log & type message with banner */ 23 21 SL_LOG_CRASH init (3) /* log & type message with banner & kill system */ 23 22 ) fixed bin internal static options (constant); 23 23 23 24 dcl 1 sl_info aligned automatic, 23 25 2 version char(8), /* structure version */ 23 26 2 arg_list_ptr ptr, /* arg_list with values */ 23 27 2 loc, 23 28 3 (mode, severity, code, caller, data, class, ioa_msg) fixed bin, 23 29 /* These flags control where the corresponding data item is found.*/ 23 30 /* -1: data appears in the corresponding structure element below */ 23 31 /* 0: data is not present anywhere */ 23 32 /* +N: data is Nth item in argument list pointed to by */ 23 33 /* sl_info.arg_list_ptr. Upon return, data copied into */ 23 34 /* corresponding structure element. */ 23 35 /* if data = +N: */ 23 36 /* argN is data_ptr, argN+1 is data_len */ 23 37 /* if ioa_msg = +N: */ 23 38 /* argN+1, ... argLAST are arguments substituted into the */ 23 39 /* ioa_msg control string. The formatted msg is returned. */ 23 40 2 flags, 23 41 3 ioa_msg_is_error_code bit(1) unal, /* ioa_ctl is error code. */ 23 42 3 flags_pad bit(35) unal, 23 43 2 mode fixed bin, /* as-mode, command-mode */ 23 44 2 severity fixed bin, /* error severity */ 23 45 2 code fixed bin(35), /* error table code */ 23 46 2 caller char(65) varying, /* caller refname$entryname*/ 23 47 2 data, /* binary data ptr/length */ 23 48 3 data_ptr ptr, 23 49 3 data_lth fixed bin(21), 23 50 2 class char(10) varying, /* binary data class */ 23 51 2 ioa_msg char(500) varying; /* formatted message text */ 23 52 23 53 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 23 54 /* */ 23 55 /* If data values (eg, sl_info.caller) are passed in the argument list, */ 23 56 /* their data types should be as shown in the structure above, except that */ 23 57 /* character strings should be char(*) nonvarying. */ 23 58 /* */ 23 59 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 23 60 23 61 /* value for sl_info.version */ 23 62 dcl SL_INFO_version_1 char (8) int static options(constant) init("sl_info1"); 23 63 23 64 /* values for sl_info.mode */ 23 65 dcl (SL_INFO_as_mode init(1), 23 66 SL_INFO_command_mode init(2)) fixed bin int static options(constant); 23 67 23 68 /* values for sl_info.loc.(severity code caller data class ioa_ctl arg) */ 23 69 dcl (SL_INFO_arg_given_in_structure init(-1), 23 70 SL_INFO_arg_not_given init(0)) fixed bin int static options(constant); 23 71 23 72 23 73 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 23 74 /* */ 23 75 /* The following static structures are commonly used in the Login Server */ 23 76 /* user control software. */ 23 77 /* */ 23 78 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 23 79 23 80 /* Syntax: call Abort (severity, code, ioa_ctl, args); */ 23 81 23 82 dcl 1 sl_info_sev_code_msg aligned int static options(constant), 23 83 2 version char(8) init ("sl_info1"), 23 84 2 arg_list_ptr ptr init (null), 23 85 2 loc, 23 86 3 (mode init (-1), 23 87 severity init ( 1), 23 88 code init ( 2), 23 89 caller init (-1), 23 90 data init ( 0), 23 91 class init ( 0), 23 92 ioa_msg init ( 3)) fixed bin, 23 93 2 flags, 23 94 3 ioa_msg_is_error_code bit(1) unal init ("0"b), 23 95 3 flags_pad bit(35) unal init ("0"b), 23 96 2 mode fixed bin init ( 1), 23 97 2 severity fixed bin init ( 0), 23 98 2 code fixed bin(35) init ( 0), 23 99 2 caller char(65) varying init (""), 23 100 2 data, 23 101 3 data_ptr ptr init (null), 23 102 3 data_lth fixed bin(21) init ( 0), 23 103 2 class char(10) varying init (""), 23 104 2 ioa_msg char(500) varying init (""); 23 105 23 106 /* Syntax: call Abort (severity, ioa_ctl, args); */ 23 107 23 108 dcl 1 sl_info_sev_msg aligned int static options(constant), 23 109 2 version char(8) init ("sl_info1"), 23 110 2 arg_list_ptr ptr init (null), 23 111 2 loc, 23 112 3 (mode init (-1), 23 113 severity init ( 1), 23 114 code init ( 0), 23 115 caller init (-1), 23 116 data init ( 0), 23 117 class init ( 0), 23 118 ioa_msg init ( 2)) fixed bin, 23 119 2 flags, 23 120 3 ioa_msg_is_error_code bit(1) unal init ("0"b), 23 121 3 flags_pad bit(35) unal init ("0"b), 23 122 2 mode fixed bin init ( 1), 23 123 2 severity fixed bin init ( 0), 23 124 2 code fixed bin(35) init ( 0), 23 125 2 caller char(65) varying init (""), 23 126 2 data, 23 127 3 data_ptr ptr init (null), 23 128 3 data_lth fixed bin(21) init ( 0), 23 129 2 class char(10) varying init (""), 23 130 2 ioa_msg char(500) varying init (""); 23 131 23 132 /* Syntax: call Abort (severity, ioa_ctl_as_error_code, args); */ 23 133 23 134 dcl 1 sl_info_sev_coded_msg aligned int static options(constant), 23 135 2 version char(8) init ("sl_info1"), 23 136 2 arg_list_ptr ptr init (null), 23 137 2 loc, 23 138 3 (mode init (-1), 23 139 severity init ( 1), 23 140 code init ( 0), 23 141 caller init (-1), 23 142 data init ( 0), 23 143 class init ( 0), 23 144 ioa_msg init ( 2)) fixed bin, 23 145 2 flags, 23 146 3 ioa_msg_is_error_code bit(1) unal init ("1"b), 23 147 3 flags_pad bit(35) unal init ("0"b), 23 148 2 mode fixed bin init ( 1), 23 149 2 severity fixed bin init ( 0), 23 150 2 code fixed bin(35) init ( 0), 23 151 2 caller char(65) varying init (""), 23 152 2 data, 23 153 3 data_ptr ptr init (null), 23 154 3 data_lth fixed bin(21) init ( 0), 23 155 2 class char(10) varying init (""), 23 156 2 ioa_msg char(500) varying init (""); 23 157 23 158 23 159 /* Syntax: call Abort (severity, code, error_return_label, ioa_ctl, args); */ 23 160 23 161 dcl 1 sl_info_sev_code_label_msg aligned int static options(constant), 23 162 2 version char(8) init ("sl_info1"), 23 163 2 arg_list_ptr ptr init (null), 23 164 2 loc, 23 165 3 (mode init (-1), 23 166 severity init ( 1), 23 167 code init ( 2), 23 168 caller init (-1), 23 169 data init ( 0), 23 170 class init ( 0), 23 171 ioa_msg init ( 4)) fixed bin, 23 172 2 flags, 23 173 3 ioa_msg_is_error_code bit(1) unal init ("0"b), 23 174 3 flags_pad bit(35) unal init ("0"b), 23 175 2 mode fixed bin init ( 1), 23 176 2 severity fixed bin init ( 0), 23 177 2 code fixed bin(35) init ( 0), 23 178 2 caller char(65) varying init (""), 23 179 2 data, 23 180 3 data_ptr ptr init (null), 23 181 3 data_lth fixed bin(21) init ( 0), 23 182 2 class char(10) varying init (""), 23 183 2 ioa_msg char(500) varying init (""); 23 184 23 185 /* Syntax: call Log_error (code, ioa_ctl, args); */ 23 186 23 187 dcl 1 sl_info_code_msg aligned int static options(constant), 23 188 2 version char(8) init ("sl_info1"), 23 189 2 arg_list_ptr ptr init (null), 23 190 2 loc, 23 191 3 (mode init (-1), 23 192 severity init (-1), 23 193 code init ( 1), 23 194 caller init (-1), 23 195 data init ( 0), 23 196 class init ( 0), 23 197 ioa_msg init ( 2)) fixed bin, 23 198 2 flags, 23 199 3 ioa_msg_is_error_code bit(1) unal init ("0"b), 23 200 3 flags_pad bit(35) unal init ("0"b), 23 201 2 mode fixed bin init ( 1), 23 202 2 severity fixed bin init ( 0), 23 203 2 code fixed bin(35) init ( 0), 23 204 2 caller char(65) varying init (""), 23 205 2 data, 23 206 3 data_ptr ptr init (null), 23 207 3 data_lth fixed bin(21) init ( 0), 23 208 2 class char(10) varying init (""), 23 209 2 ioa_msg char(500) varying init (""); 23 210 23 211 23 212 /* Syntax: call Trace (ioa_ctl, args); */ 23 213 23 214 dcl 1 sl_info_msg aligned int static options(constant), 23 215 2 version char(8) init ("sl_info1"), 23 216 2 arg_list_ptr ptr init (null), 23 217 2 loc, 23 218 3 (mode init (-1), 23 219 severity init (-1), 23 220 code init ( 0), 23 221 caller init (-1), 23 222 data init ( 0), 23 223 class init ( 0), 23 224 ioa_msg init ( 1)) fixed bin, 23 225 2 flags, 23 226 3 ioa_msg_is_error_code bit(1) unal init ("0"b), 23 227 3 flags_pad bit(35) unal init ("0"b), 23 228 2 mode fixed bin init ( 1), 23 229 2 severity fixed bin init ( 0), 23 230 2 code fixed bin(35) init ( 0), 23 231 2 caller char(65) varying init (""), 23 232 2 data, 23 233 3 data_ptr ptr init (null), 23 234 3 data_lth fixed bin(21) init ( 0), 23 235 2 class char(10) varying init (""), 23 236 2 ioa_msg char(500) varying init (""); 23 237 23 238 /* END INCLUDE FILE sys_log_constants.incl.pl1 */ 1026 1027 /* BEGIN INCLUDE FILE ... user_attributes.incl.pl1 TAC 10/79 */ 24 2 24 3 24 4 /****^ HISTORY COMMENTS: 24 5* 1) change(86-12-11,Brunelle), approve(87-07-13,MCR7741), 24 6* audit(87-04-19,GDixon), install(87-08-04,MR12.1-1056): 24 7* Add incl for abs_attributes.incl.pl1 to automatically include absentee 24 8* attribute switches. 24 9* 2) change(87-04-19,GDixon), approve(87-07-13,MCR7741), 24 10* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 24 11* A) Add USER_ATTRIBUTE_NAMES arrays. attribute_names.incl.pl1 can thereby 24 12* be deleted. 24 13* B) Add constants identifying attributes that can be changed by user at 24 14* login, etc. 24 15* END HISTORY COMMENTS */ 24 16 24 17 24 18 /* Modified 82-01-03 E. N. Kittlitz. to declare a complete level-1 structure */ 24 19 24 20 /* format: style4 */ 24 21 dcl 1 user_attributes aligned based, /* the user user_attributes */ 24 22 (2 administrator bit (1), /* 1 system administrator privileges */ 24 23 2 primary_line bit (1), /* 2 user has primary-line privileges */ 24 24 2 nobump bit (1), /* 2 user cannot be bumped */ 24 25 2 guaranteed_login bit (1), /* 4 user has guaranteed login privileges */ 24 26 2 anonymous bit (1), /* 5 used only in SAT. project may have anon.users */ 24 27 2 nopreempt bit (1), /* 6 used only in PDT. user not preemptable by others 24 28* . of same project (distinct from "nobump") */ 24 29 2 nolist bit (1), /* 7 don't list user on "who" */ 24 30 2 dialok bit (1), /* 8 user may have multiple consoles */ 24 31 2 multip bit (1), /* 9 user may have several processes */ 24 32 2 bumping bit (1), /* 10 in SAT. Can users in project bump each other? */ 24 33 2 brief bit (1), /* 11 no login or logout message */ 24 34 2 vinitproc bit (1), /* 12 user may change initial procedure */ 24 35 2 vhomedir bit (1), /* 13 user may change homedir */ 24 36 2 nostartup bit (1), /* 14 user does not want start_up.ec */ 24 37 2 sb_ok bit (1), /* 15 user may be standby */ 24 38 2 pm_ok bit (1), /* 16 user may be primary */ 24 39 2 eo_ok bit (1), /* 17 user may be edit_only */ 24 40 2 daemon bit (1), /* 18 user may login as daemon */ 24 41 2 vdim bit (1), /* 19 * OBSOLETE * user may change outer mdle */ 24 42 2 no_warning bit (1), /* 20 no warning message */ 24 43 2 igroup bit (1), /* 21 in SAT: this project may give its users individual groups 24 44* . in PDT: this user has an individual load control group */ 24 45 2 save_pdir bit (1), /* 22 save pdir after fatal process error */ 24 46 2 disconnect_ok bit (1), /* 23 ok to save user's disconnected processes */ 24 47 2 save_on_disconnect bit (1), /* 24 save them unless -nosave login arg is given */ 24 48 2 pad bit (12)) unaligned; 24 49 24 50 dcl USER_ATTRIBUTE_NAMES (0:24) char (20) int static options (constant) init 24 51 ("none", /* 0 */ 24 52 "administrator", /* 1 */ 24 53 "primary_line", /* 2 */ 24 54 "nobump", /* 3 */ 24 55 "guaranteed_login", /* 4 */ 24 56 "anonymous", /* 5 */ 24 57 "nopreempt", /* 6 */ 24 58 "nolist", /* 7 */ 24 59 "dialok", /* 8 */ 24 60 "multip", /* 9 */ 24 61 "bumping", /* 10 */ 24 62 "brief", /* 11 */ 24 63 "vinitproc", /* 12 */ 24 64 "vhomedir", /* 13 */ 24 65 "nostartup", /* 14 */ 24 66 "no_secondary", /* 15 */ 24 67 "no_prime", /* 16 */ 24 68 "no_eo", /* 17 */ 24 69 "daemon", /* 18 */ 24 70 "", /* 19 vdim OBSOLETE */ 24 71 "no_warning", /* 20 */ 24 72 "igroup", /* 21 */ 24 73 "save_pdir", /* 22 */ 24 74 "disconnect_ok", /* 23 */ 24 75 "save_on_disconnect"); /* 24 */ 24 76 24 77 dcl ALT_USER_ATTRIBUTE_NAMES (0:24) char (20) int static options (constant) init 24 78 ("null", /* 0 */ 24 79 "admin", /* 1 */ 24 80 "", "", /* 2 - 3 */ 24 81 "guar", /* 4 */ 24 82 "anon", /* 5 */ 24 83 "", "", /* 6 - 7 */ 24 84 "dial", /* 8 */ 24 85 "multi_login", /* 9 */ 24 86 "preempting", /* 10 */ 24 87 "", /* 11 */ 24 88 "v_process_overseer", /* 12 */ 24 89 "v_home_dir", /* 13 */ 24 90 "no_start_up", /* 14 */ 24 91 "no_sec", /* 15 */ 24 92 "no_primary", /* 16 */ 24 93 "no_edit_only", /* 17 */ 24 94 "op_login", /* 18 */ 24 95 "", /* 19 */ 24 96 "nowarn", /* 20 */ 24 97 "", "", "", /* 21 - 23 */ 24 98 "save"); /* 24 */ 24 99 24 100 dcl USER_ATTRIBUTES_always_allowed bit (36) aligned int static 24 101 options(constant) init("000000000010000000010000000000000000"b); 24 102 /* SAT/PDT attributes not needed for user to give (brief, no_warning) */ 24 103 24 104 dcl USER_ATTRIBUTES_default_in_pdt bit (36) aligned int static 24 105 options(constant) init("000000000010000000010000000000000000"b); 24 106 /* PDT value for (brief, no_warning) is default */ 24 107 24 108 dcl USER_ATTRIBUTES_settable_by_user bit (36) aligned int static 24 109 options(constant) init("000100000110010000010000000000000000"b); 24 110 /* user MIGHT set (bump, ns, brief, guar, no_warning) */ 24 111 25 1 /* BEGIN INCLUDE FILE ... user_abs_attributes.incl.pl1 */ 25 2 25 3 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 25 4 /* */ 25 5 /* This include file describes the attributes of an absentee job. It is */ 25 6 /* used by user_table_entry.incl.pl1, abs_message_format.incl.pl1 */ 25 7 /* and PIT.incl.pl1. */ 25 8 /* */ 25 9 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 25 10 25 11 /****^ HISTORY COMMENTS: 25 12* 1) change(86-12-08,GDixon), approve(87-07-13,MCR7741), 25 13* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 25 14* Separated abs_attributes from the request structure 25 15* (abs_message_format.incl.pl1) so that the identical structure could be 25 16* used in the ute structure (user_table_entry.incl.pl1). 25 17* 2) change(87-04-19,GDixon), approve(87-07-13,MCR7741), 25 18* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 25 19* Added ABS_ATTRIBUTE_NAMES array. 25 20* 3) change(87-11-11,Parisek), approve(88-02-11,MCR7849), 25 21* audit(88-03-22,Lippard), install(88-07-13,MR12.2-1047): 25 22* Added the no_start_up flag. SCP6367 25 23* END HISTORY COMMENTS */ 25 24 25 25 dcl 1 user_abs_attributes aligned based, 25 26 2 restartable bit (1) unaligned, /* 1 if request may be started over from the beginning */ 25 27 2 user_deferred_until_time bit (1) unaligned, /* 1 if request was specified as deferred */ 25 28 2 proxy bit (1) unaligned, /* 1 if request submitted for someone else */ 25 29 2 set_bit_cnt bit (1) unaligned, /* 1 if should set bit count after every write call */ 25 30 2 time_in_gmt bit (1) unaligned, /* 1 if deferred_time is in GMT */ 25 31 2 user_deferred_indefinitely bit (1) unaligned, /* 1 if operator is to say when to run it */ 25 32 2 secondary_ok bit (1) unaligned, /* 1 if ok to log in as secondary foreground user */ 25 33 2 truncate_absout bit (1) unaligned, /* 1 if .absout is to be truncated */ 25 34 2 restarted bit (1) unaligned, /* 1 if job is restarted */ 25 35 2 no_start_up bit (1) unaligned, /* 1 if requested -ns */ 25 36 2 attributes_pad bit (26) unaligned; 25 37 25 38 dcl ABS_ATTRIBUTE_NAMES (10) char (28) varying int static options(constant) init( 25 39 "restartable", 25 40 "user_deferred_until_time", 25 41 "proxy", 25 42 "set_bit_cnt", 25 43 "time_in_gmt", 25 44 "user_deferred_indefinitely", 25 45 "secondary_ok", 25 46 "truncate_absout", 25 47 "restarted", 25 48 "no_start_up"); 25 49 25 50 /* END INCLUDE FILE ... user_abs_attributes.incl.pl1 */ 25 51 24 112 24 113 24 114 /* END INCLUDE FILE ... user_attributes.incl.pl1 */ 1027 1028 /* BEGIN INCLUDE FILE ... user_table_entry.incl.pl1 */ 26 2 26 3 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 26 4 /* */ 26 5 /* This include file requires that the user include */ 26 6 /* user_attributes.incl.pl1 as well. It also includes */ 26 7 /* abs_attributes.incl.pl1 itself. */ 26 8 /* */ 26 9 /* This include file must be included to use absentee_user_table.incl.pl1, */ 26 10 /* answer_table.incl.pl1, and daemon_user_table.incl.pl1. */ 26 11 /* */ 26 12 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 26 13 26 14 /****^ HISTORY COMMENTS: 26 15* 1) change(81-12-21,Gilcrease), approve(86-03-27,MCR7370), 26 16* audit(86-06-23,Lippard), install(86-06-30,MR12.0-1082): 26 17* This comment for hcom. 26 18* 81-12-21 E. N. Kittlitz. derived from abs_user_tab.incl.pl1, 26 19* anstbl.incl.pl1, and dutbl.incl.pl1. 26 20* 82-01-02 E. N. Kittlitz. user_attributes.incl.pl1 changes 26 21* 84-04-04 BIM added privileged_dial_server and dial_server_ring 26 22* 84-07-12 BIM added min_process_authorization 26 23* 84-12-31 Keith Loepere added pdir_dir_quota 26 24* 85-01-16 by E. Swenson to add ute.session_uid 26 25* 2) change(85-11-16,Swenson), approve(87-07-13,MCR7737), 26 26* audit(87-04-14,GDixon), install(87-08-04,MR12.1-1056): 26 27* Added fields for DSA login server support. 26 28* 3) change(86-03-27,Gilcrease), approve(86-03-27,MCR7370), 26 29* audit(86-06-23,Lippard), install(86-06-30,MR12.0-1082): 26 30* Add truncate_absout and restarted bit for -truncate absout, SCP6297. 26 31* 4) change(86-04-09,Herbst), approve(87-07-13,MCR7697), 26 32* audit(87-04-14,GDixon), install(87-08-04,MR12.1-1056): 26 33* Added disconnection_rel_minutes. 26 34* 5) change(86-12-08,GDixon), approve(87-07-13,MCR7741), 26 35* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 26 36* Changed structure under ute.abs_attributes to use like structure in 26 37* abs_attributes.incl.pl1. This allows the same attributes to be used 26 38* in abs_message_format.incl.pl1 and pit.incl.pl1 as well as this include 26 39* file. 26 40* 6) change(87-04-14,GDixon), approve(87-07-13,MCR7741), 26 41* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 26 42* Move constants for ute.pw_flags.mask_ctl from answer_table.incl.pl1. 26 43* 7) change(87-04-16,GDixon), approve(87-07-13,MCR7741), 26 44* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 26 45* A) Global reorganization to locate things by type of data. 26 46* B) Eliminate ute.uflags.logged_in. 26 47* 8) change(87-05-10,GDixon), approve(87-07-13,MCR7741), 26 48* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 26 49* A) Reduced overlength person and project fields to proper length. 26 50* B) Adjusted dialed-console section to begin on even word boundary. 26 51* 9) change(87-05-13,GDixon), approve(87-07-13,MCR7741), 26 52* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 26 53* Add ute.line_type. 26 54* 10) change(87-11-19,Parisek), approve(88-02-11,MCR7849), 26 55* audit(88-02-23,Lippard), install(88-07-13,MR12.2-1047): 26 56* Added the lowest_ring element. Used the upper half of ute.highest_ring 26 57* for the storage. SCP6367 26 58* END HISTORY COMMENTS */ 26 59 26 60 /* format: style4 */ 26 61 26 62 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 26 63 /* */ 26 64 /* Each of the named sections below defines a type of data. Typing comes */ 26 65 /* from data associated with the ute entry itself, with the person, with */ 26 66 /* login argument data, from the main user of the data (eg, dialup_, */ 26 67 /* load_ctl_, login server). Each section begins on a double-word boundary */ 26 68 /* and is an even number of words long. The total structure is 300 decimal */ 26 69 /* words long. */ 26 70 /* */ 26 71 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 26 72 26 73 26 74 dcl UTE_version_4 fixed bin internal static options (constant) init (4); 26 75 26 76 dcl utep pointer automatic init (null); 26 77 26 78 dcl 1 ute based (utep) aligned, /* individual entry in one of the user control tables */ 26 79 26 80 /* Variables which give state of this entry */ 26 81 2 active fixed bin, /* state of entry. 0=>free. see dialup_values.incl.pl1 */ 26 82 2 process_type fixed bin, /* 1=interactive, 2=absentee, 3=daemon */ 26 83 2 ute_index fixed bin, /* index of ute in (anstbl autbl dutbl).entry array */ 26 84 2 next_free fixed bin, /* points to previous free entry */ 26 85 26 86 /* Information user gave about person_id associated with this entry. */ 26 87 2 person char (24) unal, /* user's name */ 26 88 2 project char (12) unal, /* project of absentee user */ 26 89 2 tag char (1) unal, /* instance tag - someday will be generated */ 26 90 2 tag_pad bit (27) unal, 26 91 2 anonymous fixed bin, /* 1 if anonymous, otherwise 0 */ 26 92 2 login_flags, /* flags for login data */ 26 93 3 cpw bit (1) unal, /* flag for wish to change password */ 26 94 3 generate_pw bit (1) unal, /* flag meaning -generate_pw (-gpw) was used. */ 26 95 3 special_pw unal, /* dial or slave */ 26 96 4 dial_pw bit (1) unal, /* true if dial -user */ 26 97 4 slave_pw bit (1) unal, /* true if slave -user */ 26 98 3 cdp bit (1) unal, /* flag for wish to change default project */ 26 99 3 cda bit (1) unal, /* flag to change default authorization */ 26 100 3 auth_given bit (1) unal, /* flag to mean -authorization was used. */ 26 101 3 noprint bit (1) unal, /* used at logout. inhibits printing. */ 26 102 3 operator bit (1) unaligned, /* user specified -operator on login command line */ 26 103 3 pw_pad bit (25) unal, /* spare parts */ 26 104 3 mask_ctl bit (2) unal, /* bits controlling pw mask. See constants, below */ 26 105 /* Must remain last in pw_flags so it does not */ 26 106 /* appear in PW_FLAG_VALUES array below. */ 26 107 2 generated_pw char (8) unal, /* user must type this as new password */ 26 108 2 old_password char (8) unal, /* must match user's previous password (value scrambled) */ 26 109 2 process_authorization bit (72), /* access_authorization of this process */ 26 110 26 111 /* Information user gave about process associated with this entry. */ 26 112 2 outer_module char (32) unal, /* Name of console dim */ 26 113 2 home_dir char (64) unal, /* initial home directory */ 26 114 2 init_proc char (64) unal, /* name of login responder */ 26 115 2 ip_len fixed bin (17) unal, /* length of initproc string */ 26 116 2 ss_len fixed bin (17) unal, /* length of subsystem string */ 26 117 2 ur_at like user_attributes aligned, /* bits on means attributes given by user */ 26 118 2 at like user_attributes aligned, /* bits on means attribute is on */ 26 119 2 initial_ring fixed bin, /* ring process will be started in */ 26 120 2 arg_count fixed bin, /* number of arguments to absentee control segment */ 26 121 2 ln_args fixed bin, /* length of string containing arguments */ 26 122 2 arg_lengths_ptr ptr, /* pointer to array of argument lengths */ 26 123 2 args_ptr ptr, /* pointer to arguments to absentee control segment */ 26 124 26 125 /* Most of the following information is relevant only to absentee processes */ 26 126 2 input_seg char (168) unal, /* pathname of absentee control segment */ 26 127 2 output_seg char (168) unal, /* pathname of absentee output file */ 26 128 2 request_id fixed bin (71), /* time request was entered - used as uid of request */ 26 129 2 reservation_id fixed bin (71), /* nonzero if job has a resource reservation */ 26 130 2 message_id bit (72), /* message segment id assoc with absentee request */ 26 131 2 deferred_time fixed bin (71), /* time at which absentee process should be created */ 26 132 2 max_cpu_time fixed bin (35), /* maximum number of seconds this process can run */ 26 133 2 queue fixed bin, /* -1=daemon;0=interactive or foreground;>0=queue no. 26 134* (but see uflags.adjust_abs_q_no). */ 26 135 2 real_queue fixed bin, /* real queue number; ute.queue gets fudged sometimes */ 26 136 2 abs_attributes aligned like user_abs_attributes, /* include abs_attributes.incl.pl1 */ 26 137 2 abs_flags, 26 138 3 abs_run bit (1) unal, /* on if job was started by abs run command */ 26 139 3 notify bit (1) unal, /* on if user wants notification at login and logout */ 26 140 3 abs_flags_pad bit (34) unal, 26 141 2 abs_group char (8) unal, /* original group before load_ctl_ moves it to absentee group */ 26 142 2 sender char (32) unal, /* name of RJE station that job is from */ 26 143 2 proxy_person char (28) unal, /* name of user who actually entered the request, if proxy */ 26 144 2 proxy_project char (9) unal, 26 145 2 proxy_project_pad char (3) unal, 26 146 2 abs_pad fixed bin, 26 147 26 148 /* Information about process actually created */ 26 149 2 proc_id bit (36), /* process id of absentee process */ 26 150 2 session_uid fixed bin (35), /* Unique authentication session id */ 26 151 2 process_authorization_range (2) bit (72) aligned, 26 152 2 audit bit (36), /* audit flags for user */ 26 153 2 lot_size fixed bin, /* Size of linkage offset table */ 26 154 2 kst_size fixed bin, /* Size of process known segment table */ 26 155 2 cls_size fixed bin, /* Size of process combined linkage */ 26 156 2 sus_channel fixed bin (71), /* event channel on which suspended process is blocked */ 26 157 2 lowest_ring fixed bin (17) unal, /* lowest ring permitted */ 26 158 2 highest_ring fixed bin (17) unal, /* highest ring permitted */ 26 159 2 pdir_lvix fixed bin (17) unal, /* index in disk table of lv where pdir is */ 26 160 2 pdir_quota fixed bin (17) unal, /* process directory quota */ 26 161 2 pdir_dir_quota fixed bin (17) unal, /* process directory quota for dirs */ 26 162 2 pdir_pad fixed bin(17) unal, 26 163 2 process_pad fixed bin, 26 164 26 165 /* Information about primary terminal associated with this entry */ 26 166 2 tty_name char (32) unal, /* absentee=>"abs1", etc. daemon=>"bk", etc. */ 26 167 2 terminal_type char (32) unaligned, /* terminal type */ 26 168 2 line_type fixed bin, /* line type */ 26 169 2 tty_id_code char (4) unal, /* "none" for absentee */ 26 170 2 network_connection_type fixed bin, /* see net_event_message.incl.pl1 */ 26 171 2 channel ptr unal, /* points to CDT entry for user, if any */ 26 172 26 173 /* Variables useful for dialed terminals */ 26 174 2 ndialed_consoles fixed bin, /* if master, number of slaves */ 26 175 2 dial_qualifier char (22) unal, /* first argument to dial command */ 26 176 2 dial_server_ring fixed bin (3) unsigned unaligned, /* dial server intends to attach dialing in channels at this ring. */ 26 177 2 dial_server_flags, 26 178 3 registered_dial_server bit (1) unal, /* process is a registered dial server */ 26 179 3 privileged_dial_server bit (1) unal, /* "1"b -> serves range of AIM classes */ 26 180 3 dial_server_flags_pad bit (13) unal, /* fill out the word */ 26 181 2 dial_ev_chn fixed bin (71), /* if master, control event channel */ 26 182 26 183 /* Information about usage/accounting. Device usage meters are in a 26 184* separate segment, "devtab" */ 26 185 2 pdtep ptr, /* ptr to user's pdt entry, where usage meters live */ 26 186 2 cpu_this_process fixed bin (71), /* cpu used so far this process */ 26 187 2 cpu_usage fixed bin (71), /* total cpu time used in this session */ 26 188 2 mem_usage fixed bin (71), /* memory usage for previous processes in session */ 26 189 2 mem_this_process fixed bin (71), /* memory usage at last update */ 26 190 2 last_update_time fixed bin (71), /* time of last account update */ 26 191 2 session_cost float bin, /* dollar cost of session, for printing in logout messages */ 26 192 2 ndevices fixed bin, /* Count of attached devices */ 26 193 2 device_head fixed bin, /* Table index of head of device chain */ 26 194 2 device_tail fixed bin, /* Table index of tail of device chain */ 26 195 2 rs_number fixed bin (6) unsigned unal, /* rate structure number */ 26 196 2 rs_number_pad bit(30) unal, 26 197 2 usage_pad fixed bin, 26 198 26 199 /* Information for dialup_ (control variables). */ 26 200 2 event fixed bin (71), /* event associated with channel or user manager */ 26 201 2 uprojp ptr, /* ptr to user project sat entry */ 26 202 2 login_time fixed bin (71), /* time when absentee user approved by lg_ctl_ */ 26 203 2 cant_bump_until fixed bin (71), /* bump-protection clock */ 26 204 2 recent_fatal_error_time fixed bin (71), /* time of first error in the suspected loop */ 26 205 2 recent_fatal_error_count fixed bin, /* counter to detect fatal process error loops */ 26 206 2 failure_reason fixed bin, /* why login refused 1=lg_ctl, 2=act_ctl, 3=load_ctl */ 26 207 2 count fixed bin, /* counter for logins and dialups */ 26 208 2 n_processes fixed bin, /* number of processes created in this session */ 26 209 2 lock_value fixed bin, /* number of locks set for this entry */ 26 210 2 login_result fixed bin, /* 0=logged in;1=hopeless,hang him up;2=allow another attempt */ 26 211 2 login_code char (8) unal, /* login command from LOGIN line */ 26 212 2 preempted fixed bin, /* if ^= 0 user preempted (never for abs) */ 26 213 2 destroy_flag fixed bin, /* >8 when awaiting destroy */ 26 214 2 logout_type char (4) unal, /* type of logout */ 26 215 2 logout_index fixed bin, /* to save logout handler index while waiting for termsgnl */ 26 216 2 disconnection_rel_minutes fixed bin (17) unal, /* disconnected this many minutes after login_time */ 26 217 2 next_disconnected_ate_index fixed bin (17) unal, /* thread of list of user's disconnected processes */ 26 218 2 work_class fixed bin, /* work class used by priority scheduler */ 26 219 2 group char (8) unal, /* party group identifier */ 26 220 2 whotabx fixed bin, /* index of user's entry in whotab */ 26 221 26 222 2 uflags, /* Miscellaneous flags */ 26 223 3 dont_call_init_admin bit (1) unal, /* Call overseer directly */ 26 224 3 ip_given bit (1) unal, /* user gave an initproc arg on login line */ 26 225 3 ss_given bit (1) unal, /* initial_procedure contains a subsystem name */ 26 226 3 lvs_attached bit (1) unal, /* set and used by the lv_request_ procedure */ 26 227 3 send_initial_string bit (1) unal, /* initial string should be sent after login line read */ 26 228 3 adjust_abs_q_no bit (1) unal, /* this is an absentee job; user_profile.queue is NOT true Q # */ 26 229 3 foreground_secondary_ok bit (1) unal, /* ok to login foreground absentee job as secondary */ 26 230 3 foreground_job bit (1) unal, /* job was originally from foreground queue */ 26 231 3 sus_sent bit (1) unal, /* sus_ ips signal has been sent to process */ 26 232 3 suspended bit (1) unal, /* process has responded to sus_ signal */ 26 233 3 ignore_cpulimit bit (1) unal, /* process is released, but timer can't be turned off */ 26 234 3 deferral_logged bit (1) unal, /* abs job deferral has already been logged once */ 26 235 3 save_if_disconnected bit (1) unal, /* user wants process preserved across hangups */ 26 236 3 disconnected bit (1) unal, /* process is disconnected from terminal */ 26 237 3 disconnected_list bit (1) unal, /* this ate is on a list of disconnected processes */ 26 238 3 proc_create_ok bit (1) unal, /* lg_ctl_ has set the process creation variables */ 26 239 3 activity_can_unbump bit (1) unal, /* only bump pending is for inactivity */ 26 240 3 fpe_causes_logout bit (1) unal, /* "1"b means don't try to new_proc after fatal process error */ 26 241 3 user_specified_immediate bit (1) unal, /* "1"b -> don't wait around for process destruction. */ 26 242 3 uflags_pad bit (17) unal, 26 243 26 244 /* Information used by load_ctl_ for the process */ 26 245 2 user_weight fixed bin, /* usually 10 - used in load control */ 26 246 2 standby_line fixed bin, /* 0=user has primary line, 1=standby user */ 26 247 2 bump_grace fixed bin (71), /* bump grace in microseconds */ 26 248 26 249 26 250 /* Information for login server */ 26 251 2 login_server_info, 26 252 3 our_handle bit (72) aligned, /* how LS refers to us. */ 26 253 3 his_handle bit (72) aligned, /* how we talk to LS */ 26 254 3 termination_event_channel fixed bin (71), /* for process termination notifications to the LS */ 26 255 3 response_event_channel fixed bin (71), /* for other communications with the LS */ 26 256 3 process_id bit (36) aligned, /* process_id of login server */ 26 257 2 ls_pad (5) fixed bin; /* pad to 300 decimal words */ 26 258 26 259 /* values for ute.process_type */ 26 260 26 261 dcl (PT_INTERACTIVE initial (1), 26 262 PT_ABSENTEE initial (2), 26 263 PT_DAEMON initial (3)) fixed bin internal static options (constant); 26 264 26 265 dcl PROCESS_TYPE_NAMES (0:3) char(12) varying int static options(constant) init( 26 266 "INVALID-TYPE", 26 267 "interactive", 26 268 "absentee", 26 269 "daemon"); 26 270 26 271 dcl TABLE_NAMES (0:3) char(20) int static options(constant) init( 26 272 "UNKNOWN-TABLE", 26 273 "answer_table", 26 274 "absentee_user_table", 26 275 "daemon_user_table"); 26 276 26 277 26 278 /* values for ute.pw_flags.mask_ctl */ 26 279 26 280 dcl (DO_MASK init ("00"b), 26 281 DONT_MASK init ("01"b), 26 282 DERIVE_MASK init ("10"b)) bit (2) internal static options (constant); 26 283 26 284 dcl MASK_CTL_NAMES (0:3) char(12) varying int static options(constant) init( 26 285 "do_mask", "dont_mask", "derive_mask", ""); 26 286 26 287 26 288 /* names for ute.pw_flags */ 26 289 26 290 dcl PW_FLAG_NAMES (9) char (12) varying int static options(constant) init( 26 291 "cpw", 26 292 "generate_pw", 26 293 "dial_pw", 26 294 "slave_pw", 26 295 "cdp", 26 296 "cda", 26 297 "auth_given", 26 298 "noprint", 26 299 "operator"); 26 300 26 301 /* names for ute.uflags */ 26 302 26 303 dcl UFLAG_NAMES (19) char (24) varying int static options (constant) init ( 26 304 "dont_call_init_admin", 26 305 "ip_given", 26 306 "ss_given", 26 307 "lvs_attached", 26 308 "send_initial_string", 26 309 "adjust_abs_q_no", 26 310 "foreground_secondary_ok", 26 311 "foreground_job", 26 312 "sus_sent", 26 313 "suspended", 26 314 "ignore_cpulimit", 26 315 "deferral_logged", 26 316 "save_if_disconnected", 26 317 "disconnected", 26 318 "disconnected_list", 26 319 "proc_create_ok", 26 320 "activity_can_unbump", 26 321 "fpe_causes_logout", 26 322 "user_specified_immediate"); 26 323 26 324 /* names for ute.abs_flags */ 26 325 26 326 dcl ABS_FLAG_NAMES (2) char (8) varying int static options (constant) init ( 26 327 "abs_run", 26 328 "notify"); 26 329 26 330 /* names of ute.dial_server_flags */ 26 331 26 332 dcl DIAL_SERVER_FLAG_NAMES (2) char (12) varying int static options (constant) init ( 26 333 "registered", 26 334 "privileged"); 26 335 26 336 /* values of ute.login_result */ 26 337 26 338 dcl LOGIN_RESULT_VALUES (0:2) char(24) varying int static options(constant) init( 26 339 "logged in", 26 340 "login failed, hangup", 26 341 "login failed, try again"); 26 342 26 343 /* END INCLUDE FILE ... user_table_entry.incl.pl1 */ 1028 1029 /* BEGIN INCLUDE FILE ... user_table_header.incl.pl1 */ 27 2 27 3 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 27 4 /* */ 27 5 /* This include file declares the header shared by the answer_table, */ 27 6 /* absentee_user_table and daemon_user_table include files. */ 27 7 /* */ 27 8 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 27 9 27 10 /****^ HISTORY COMMENTS: 27 11* 1) change(87-04-26,GDixon), approve(87-07-13,MCR7741), 27 12* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 27 13* Initial coding. 27 14* END HISTORY COMMENTS */ 27 15 27 16 dcl 1 ut_header aligned based, /* header shared by all user control tables. */ 27 17 2 header_version fixed bin, /* version of the header (3) */ 27 18 2 entry_version fixed bin, /* version of user table entries */ 27 19 2 user_table_type fixed bin, /* 1 interactive, 2 absentee, 3 daemon */ 27 20 2 header_length fixed bin, /* length of the header */ 27 21 2 max_size fixed bin, /* max number of entries in this table */ 27 22 2 current_size fixed bin, /* actual size of table (in entries) */ 27 23 2 number_free fixed bin, /* number of free entries in the table. */ 27 24 2 first_free fixed bin, /* index of first entry in the free list. */ 27 25 2 as_procid bit (36), /* process ID of user table manager process */ 27 26 2 ut_header_pad fixed bin; 27 27 27 28 /* END INCLUDE FILE ... user_table_header.incl.pl1 */ 1029 1030 /* BEGIN INCLUDE FILE ... whotab.incl.pl1 */ 28 2 28 3 /* Modified 740723 by PG to add security info */ 28 4 /* Modified April 1976 by T. Casey to add shift and shift start and end times */ 28 5 /* Modified May 1979 by T. Casey for MR7.0a to add foreground absentee variables */ 28 6 /* Modified June 1981 by E. N. Kittlitz to add n_rate_structures. */ 28 7 /* Modified December 1981 by E. N. Kittlitz to expand header. */ 28 8 /* Modified 84-11-14 by E. A. Ranzenbach to add "session" fiedld in place of obsolete system ID... */ 28 9 28 10 dcl 1 whotab based (whoptr) aligned, 28 11 2 mxusers fixed bin, /* max. number of users on system */ 28 12 2 n_users fixed bin, /* current number of users */ 28 13 2 mxunits fixed bin, /* maximun "load units" allowed */ 28 14 2 n_units fixed bin, /* current load */ 28 15 2 timeup fixed bin (71), /* time system was started */ 28 16 2 session char (8), /* AS state, same as anstbl.session */ 28 17 2 nextsd fixed bin (71), /* time we will shutdown */ 28 18 2 until fixed bin (71), /* projected time we start up again */ 28 19 2 lastsd fixed bin (71), /* time of last crash or shutdown */ 28 20 2 erfno char (8), /* if a crash, the error number */ 28 21 2 obsolete_why char (32), /* reason for last shutdown */ 28 22 2 installation_id char (32), /* name of installation */ 28 23 2 obsolete_message char (32), /* message for all users */ 28 24 2 abs_event fixed bin (71), /* event channel associated with absentee */ 28 25 2 abs_procid bit (36) aligned, /* process to whom messages about absentee are signalled */ 28 26 2 max_abs_users fixed bin, /* max number of absentee users */ 28 27 2 abs_users fixed bin, /* number of absentee users logged-in */ 28 28 2 n_daemons fixed bin, /* Number of daemon users logged in */ 28 29 2 request_channel fixed bin (71), /* System master channel for requests to AS. */ 28 30 2 request_process_id bit (36), /* Process ID of request dispatcher */ 28 31 2 shift fixed bin, /* current shift (copied from anstbl, for users to see) */ 28 32 2 next_shift_change_time fixed bin (71), /* time current shift ends */ 28 33 2 last_shift_change_time fixed bin (71), /* time current shift started */ 28 34 2 fg_abs_users fixed bin (17) unal, /* number of foreground absentee users */ 28 35 2 n_rate_structures fixed bin (9) unsigned unal, /* number of rate_structures defined at bootload */ 28 36 2 pad1 bit (9) unal, 28 37 2 pad (3) fixed bin, 28 38 2 version fixed bin, /* structure version */ 28 39 2 header_size fixed bin, /* length of header in words */ 28 40 2 entry_size fixed bin, /* length of entry in words */ 28 41 /* laste_adjust is used only by Answering Service programs */ 28 42 2 laste_adjust fixed bin, /* count of 32 wd blocks in hdr from header_extension_mbz1 */ 28 43 2 laste fixed bin, /* index of last entry in use (includes laste_adjust) */ 28 44 2 freep fixed bin (18) unsigned, /* index of first free entry. chained thru "chain" */ 28 45 28 46 /* whotab header extension: The header is extended from 64 words by 28 47* annexing whole user entries from the 'e' array. Each 'e' entry is 32 words 28 48* long. Each annexed block has its first word set to zero, indicating that no user entry is 28 49* present. This allows existing programs to function with old definitions of 28 50* whotab. Obviously no new header field can be more than 31 contiguous words in 28 51* length. In the Answering Service, all programs using whotab must be compiled 28 52* with the latest version. Only lg_ctl_ uses laste_adjust. */ 28 53 28 54 2 header_extension_mbz1 fixed bin, /* location 100o */ 28 55 2 n_abs (4) fixed bin, /* number of processes from each background queue */ 28 56 2 abs_qres (4) fixed bin, /* number of absentee positions reserved for each queue */ 28 57 2 abs_cpu_limit (4) fixed bin (35), /* current absentee cpu limits */ 28 58 2 abs_control, /* see absentee_user_table */ 28 59 3 mnbz bit (1) unal, /* must not be zero */ 28 60 3 abs_maxu_auto bit (1) unal, /* 1 if automatic */ 28 61 3 abs_maxq_auto bit (1) unal, /* 1 if automatic */ 28 62 3 abs_qres_auto bit (1) unal, /* 1 if automatic */ 28 63 3 abs_cpu_limit_auto bit (1) unal, /* 1 if automatic */ 28 64 3 queue_dropped (-1:4) bit (1) unal, /* 1 if queue dropped */ 28 65 3 abs_up bit (1) unal, /* 1 if absentee facility is running */ 28 66 3 abs_stopped bit (1) unal, /* 1 if absentee facility is stopped */ 28 67 3 control_pad bit (23) unal, 28 68 2 installation_request_channel fixed bin (71), /* IPC channel for install command */ 28 69 2 installation_request_pid bit (36), /* installation process identifier */ 28 70 2 sysid char (32), /* current system name */ 28 71 2 header_extension_pad1 (7) fixed bin, /* pad to size of e element, offset 137o */ 28 72 2 header_extension_mbz2 fixed bin, /* offset 140o */ 28 73 2 message char (124), /* message for all users */ 28 74 2 header_extension_mbz3 fixed bin, /* offset 200o */ 28 75 2 why char (124), /* reason for last shutdown */ 28 76 2 e (1000), /* offset 240o */ 28 77 3 active fixed bin, /* nonzero means logged in */ 28 78 3 person char (28) aligned, /* person name */ 28 79 3 project char (28), /* project id */ 28 80 3 anon fixed bin, /* 1 if anonymous user */ 28 81 3 padding fixed bin (71), 28 82 3 timeon fixed bin (71), /* time of login */ 28 83 3 units fixed bin, /* load units */ 28 84 3 stby fixed bin, /* 1 if stby */ 28 85 3 idcode char (4), /* tty id code */ 28 86 3 chain fixed bin (18) unsigned, /* chain for free list */ 28 87 3 proc_type fixed bin, /* 1 = interactive, 2 = absentee, 3 = daemon */ 28 88 3 group char (8), /* party-line group */ 28 89 3 fg_abs bit (1) unal, /* "1"b if foreground absentee user */ 28 90 3 disconnected bit (1) unaligned, /* "1"b if process is disconnected */ 28 91 3 suspended bit (1) unaligned, /* "1"b if process is suspended */ 28 92 3 pad2 bit (33) unal, 28 93 3 cant_bump_until fixed bin (71), /* protected from primary bump till here */ 28 94 3 process_authorization bit (72); /* access authorization of process */ 28 95 28 96 dcl WHOTAB_VERSION_1 fixed bin init (1) static options (constant); 28 97 28 98 /* END INCLUDE FILE ... whotab.incl.pl1 */ 1030 1031 1032 1033 /* BEGIN MESSAGE DOCUMENTATION 1034* 1035* Message: 1036* as_init_: The requested action was not performed. Multics already initialized. 1037* 1038* S: $as1 1039* 1040* T: $init 1041* 1042* M: The operator typed startup, multics, or go when Multics was already 1043* in operation. No action was taken. 1044* 1045* A: $ignore 1046* 1047* 1048* Message: 1049* as_init_: The requested action was not performed. Cannot type go twice. 1050* 1051* S: $as1 1052* 1053* T: $init 1054* 1055* M: The operator typed go when Multics was already in 1056* operation. No action was taken. 1057* 1058* A: $ignore 1059* 1060* 1061* Message: 1062* as_init_: ERROR_MESSAGE. Cannot create pit_temp_ 1063* 1064* S: $as1 1065* 1066* T: $init 1067* 1068* M: The system could not create a temporary segment in the 1069* Answering Service process's process directory. This is a fatal error 1070* that will cause answering service startup to fail. 1071* 1072* A: $contact_sa 1073* 1074* 1075* Message: 1076* as_init_: Resource management is disabled; >sc1>rtdt needs it enabled. 1077* 1078* S: $as1 1079* 1080* T: $init 1081* 1082* M: The copy of installation_parms encountered by system startup 1083* claims that RCP resource management is disabled. This disagrees with 1084* information in the RTDT. If startup were to continue, all information in 1085* resource registries would be lost. Answering Service initialization fails. 1086* The system administrator must use ed_installation_parms from admin mode to 1087* repair the damage. Then reboot the system. 1088* 1089* A: $contact_sa 1090* 1091* 1092* Message: 1093* as_init_: SYSTEM_CONTROL_DIR>TABLE missing. Creating new one. 1094* 1095* S: $as1 1096* 1097* T: $init 1098* 1099* M: A new version of TABLE was created in SYSTEM_CONTROL_DIR as 1100* part of system initialization. 1101* 1102* A: $ignore 1103* 1104* 1105* Message: 1106* as_init_: ERROR_MESSAGE. SYSTEM_CONTROL_DIR>TABLE. Forcing access. 1107* 1108* S: $as1 1109* 1110* T: $init 1111* 1112* M: During system initialization, TABLE in SYSTEM_CONTROL_DIR was 1113* found to have an incorrect ACL. Access was set for Initializer.SysDaemon. 1114* 1115* A: $ignore 1116* 1117* 1118* Message: 1119* as_init_: ERROR_MESSAGE. Could not create SYSTEM_CONTROL_DIR>TABLE. 1120* 1121* S: $as1 1122* 1123* T: $init 1124* 1125* M: The Initializer could not create a new segment TABLE in 1126* SYSTEM_CONTROL_DIR. Answering service initialization fails. 1127* The system administrator must enter admin mode, and type "create TABLE", 1128* where TABLE is the name given above. Then reboot the system. 1129* 1130* A: $contact_sa 1131* 1132* 1133* Message: 1134* as_init_: ERROR_MESSAGE. Could not initiate SYSTEM_CONTROL_DIR>TABLE. 1135* 1136* S: $as1 1137* 1138* T: $init 1139* 1140* M: The Initializer could not initiate the TABLE segment in 1141* SYSTEM_CONTROL_DIR. Answering service initialization fails. 1142* The system administrator must enter admin mode, and correct the problem. 1143* Then reboot the system. 1144* 1145* A: $contact_sa 1146* 1147* 1148* Message: 1149* as_init_: ERROR_MESSAGE. Could not force access on SYSTEM_CONTROL_DIR>TABLE. 1150* 1151* S: $as1 1152* 1153* T: $init 1154* 1155* M: The Initializer could not change the ACL on the TABLE segment in 1156* SYSTEM_CONTROL_DIR. Answering service initialization fails. 1157* The system administrator must enter admin mode, and correct the problem. 1158* Then reboot the system. 1159* 1160* A: $contact_sa 1161* 1162* 1163* Message: 1164* as_init_: ERROR_MESSAGE. Could not set RW access on SYSTEM_CONTROL_DIR>TABLE. 1165* 1166* S: $as1 1167* 1168* T: $init 1169* 1170* M: An error occurred attempting to add ACL entries to TABLE in 1171* SYSTEM_CONTROL_DIR. Answering Service initialization fails. The 1172* system administrator must enter admin mode and correct the problem. 1173* Then reboot the system. 1174* 1175* A: $contact_sa 1176* 1177* 1178* Message: 1179* as_init_: Multics SYSID; Answering Service VERSION 1180* 1181* S: $as1 1182* 1183* T: $init 1184* 1185* M: Answering Service initialization is complete and users 1186* may now log in. The current system version number, from the 1187* system tape, is SYSID. The current Answering Service version number 1188* is VERSION. 1189* 1190* A: Proceed with startup. 1191* 1192* 1193* Message: 1194* as_init_: ERROR_MESSAGE. Initialization of MODULE failed. {ADDED_INFO.} 1195* 1196* S: $as1 1197* 1198* T: $init 1199* 1200* M: MODULE was being initialized when it detected a problem. It 1201* called sub_err_ to report the error to as_init_. ERROR_MESSAGE gives the 1202* text associated with the error code MODULE returned to as_init_. 1203* If present, ADDED_INFO gives further details about the problem. Some steps 1204* of Answering Service initialization were not performed. This may cause 1205* the system to operate incorrectly. 1206* 1207* A: $contact 1208* 1209* 1210* Message: 1211* as_init_: ERROR_MESSAGE. MODULE signalled sub_error_; 1212* initialization continues. {ADDED_INFO.} 1213* 1214* S: $as1 1215* 1216* T: $init 1217* 1218* M: MODULE was being initialized when it detected a problem. It 1219* called sub_err_ to report the error to as_init_. ERROR_MESSAGE gives the 1220* text associated with the error code MODULE returned to as_init_. 1221* If present, ADDED_INFO gives further details about the problem. 1222* Initialization of the module continues. 1223* 1224* A: $contact. 1225* 1226* 1227* Message: 1228* as_init_: Condition COND signalled during startup. Taking AS dump. 1229* CONDITION_INFO 1230* 1231* S. $as1 1232* 1233* T: $init 1234* 1235* M: An unexpected condition COND occurred during system initialization. 1236* An answering service dump is taken. The stack trace information in this 1237* dump further describes the error. Some steps of Answering Service 1238* initialization were not performed. This may cause the system to operate 1239* incorrectly. CONDITION_INFO if optionally present if further information 1240* about the condition is available. 1241* 1242* A: $contact 1243* 1244* 1245* Message: 1246* as_init_: The requested action was not performed. Type multics first. 1247* 1248* S: $as1 1249* 1250* T: $init 1251* 1252* M: The operator typed go without typing multics. No 1253* action was taken. 1254* 1255* A: Type multics first, or startup. 1256* 1257* 1258* Message: 1259* as_init_: ERROR_MESSAGE. Error while defining initial work classes. 1260* 1261* S: $as1 1262* 1263* T: $init 1264* 1265* M: $err 1266* Answering Service initialization fails. The system administrator 1267* must enter admin mode and correct the problem. Then reboot the system. 1268* 1269* A: $contact_sa 1270* 1271* 1272* Message: 1273* as_init_: ERROR_MESSAGE. 1274* 1275* S: $as1 1276* 1277* T: $init 1278* 1279* M: A fatal error occurred during Answering Service initialization. 1280* Previous messages describe the error in more detail. 1281* 1282* A: $contact_sa 1283* 1284* 1285* Message: 1286* as_init_: Answering Service initialization failed. 1287* 1288* S: $as2 1289* 1290* T: $init 1291* 1292* M: $err 1293* Answering Service initialization failed. Normally, this message is 1294* preceded by a more specific indication of the reason for failure. 1295* 1296* A: $contact 1297* Attempt to correct the problem and try startup again. 1298* 1299* 1300* Message: 1301* as_init_: This procedure does not implement the requested version. 1302* installation_parms version N. 1303* 1304* S: $as1 1305* 1306* T: $init 1307* 1308* M: $err 1309* The installation_parms segment has been damaged or is not up-to-date. 1310* The system administrator must rectify the problem using 1311* ed_installation_parms from admin mode, before the Answering Service 1312* will initialize. It will be necessary to re-boot Multics to retry 1313* Answering Serviceinitialization. 1314* 1315* A: $contact_sa 1316* 1317* 1318* Message: 1319* as_init_: installation_parms damaged. N rate structures defined; 1320* from I to J allowed. 1321* 1322* S: $as1 1323* 1324* T: $init 1325* 1326* M: The installation_parms table claims to declare an unallowed number 1327* of rate structures. This indicates that the table has been damaged. 1328* The system administrator must rectify the problem using 1329* ed_installation_parms from admin mode, before the Answering Service 1330* will initialize. It will be necessary to re-boot Multics to retry 1331* Answering Service initialization. 1332* 1333* A: $contact_sa 1334* 1335* 1336* Message: 1337* as_init_: Condition was signalled while processing another condition. CONDITION 1338* 1339* S: $beep 1340* 1341* T: $init 1342* 1343* M: $err 1344* During Answering Service initialization, a CONDITION was raised while 1345* as_init_ was already processing some condition. It may be that the error 1346* occured while making an as_dump for the first condition. as_init_ will not 1347* attempt to make an as_dump, but will instead abort the initialization. 1348* 1349* A: $contact 1350* 1351* 1352* Message: 1353* as_init_: SAT version inconsistent with declarations used in this program. 1354* 1355* S: $as1 1356* 1357* T: $init 1358* 1359* M: The version number stored in the SAT does not match the 1360* expected version number, which is a constant in the Answering Service 1361* programs. This may be because the SAT has been destroyed, or because 1362* an incorrect version of the Answering Service programs is being used. 1363* $crashes 1364* 1365* A: $contact_sa 1366* The System Administrator must either generate a new SAT, or install the 1367* correct version of the Answering Service. If the System Administrator is 1368* not available, enter admin mode and attempt to retrieve a 1369* recent copy of the SAT. Then exit from admin mode and try startup 1370* again. 1371* 1372* 1373* Message: 1374* as_init_: rebuilding SAT hash table. 1375* 1376* S: $as1 1377* 1378* T: $init 1379* 1380* M: The hash table for the SAT was corrupted. The hash table is 1381* regenerated. 1382* 1383* A: $ignore 1384* 1385* 1386* Message: 1387* as_init_: ERROR_MESSAGE. Cannot create sat.ht. REASON 1388* 1389* S: $as1 1390* 1391* T: $init 1392* 1393* M: This message indicates that the sat is damaged or that a storage 1394* system error prevented the creation of a new hash table for the sat. 1395* Answering Service startup will fail. 1396* 1397* A: $contact_sa 1398* 1399* 1400* Message: 1401* as_init_: No "tcd" card in the config deck. Assuming APT size of 1000. 1402* 1403* S: $as1 1404* 1405* T: $init 1406* 1407* M: This message indicates that there is no TCD card in the config deck. 1408* The system will operate normally, but it is recommended that an explicit 1409* TCD card be added at the first convenience. 1410* 1411* A: $contact_sa 1412* 1413* 1414* Message: 1415* as_init_: CDT threading inconsistency found. Rethreading. 1416* 1417* S: $as1 1418* 1419* T: $init 1420* 1421* M: An error was detected while tracing the threading of Channel 1422* Definition Table (CDT) entries into a hierarchy of multiplexer and 1423* subchannel entries. $err The entire channel hierarchy will be rethreaded. 1424* 1425* A: $notify_sa 1426* 1427* 1428* Message: 1429* as_init_: CDT rethreading complete. 1430* 1431* S: $as1 1432* 1433* T: $init 1434* 1435* M: Rethreading of Channel Definition Table (CDT) entries into a 1436* multiplexer/subchannel hierarchy completed successfully. System 1437* initialization continues. 1438* 1439* A: $notify_sa 1440* 1441* 1442* Message: 1443* as_init_: ERROR_MESSAGE. cdt_mgr_$thread: ADDED_INFO 1444* 1445* S: $as1 1446* 1447* T: $init 1448* 1449* M: as_init_ called cdt_mgr_$thread to rethread the Channel Definition 1450* Table (CDT) entries into a multiplexer/subchannel hierarchy. cdt_mgr_ 1451* encountered an unexpected error. ERROR_MESSAGE is the text associated with 1452* the error code returned by cdt_mgr_. ADDED_INFO further describes the 1453* error and whether or not further rethreading is attempted. 1454* 1455* A: $notify_sa 1456* 1457* 1458* Message: 1459* as_init_: ERROR_MESSAGE. Repeated CDT threading inconsistencies. 1460* 1461* S: $as1 1462* 1463* T: $init 1464* 1465* M: Channel Definition Table (CDT) entry threads were found to be 1466* damaged even after rethreading completed successfully. $err 1467* 1468* A: $contact_sa 1469* 1470* 1471* Message: 1472* as_init_: ERROR_MESSAGE. Could not set priority for IPC wait channels. 1473* 1474* S: $as1 1475* 1476* T: $init 1477* 1478* M: A call to ipc_$set_wait_prior failed. $err 1479* 1480* A: $notify_sa 1481* 1482* 1483* Message: 1484* as_init_: ERROR_MESSAGE. Calling multiplexer_mgr_$ENTRYPOINT. 1485* 1486* S: $as1 1487* 1488* T: $init 1489* 1490* M: The multiplexer_mgr_ failed when accessing the Channel Definition 1491* Table (CDT) in >sc1, initializing the CDT or loading the FNPs. 1492* ERROR_MESSAGE is the text associated with the error code returned by 1493* multiplexer_mgr_. Answering service initialization fails. The system 1494* administrator must enter admin mode and correct the problem. Then reboot 1495* the system. 1496* 1497* A: $contact_sa 1498* 1499* 1500* Message: 1501* as_init_: ERROR_MESSAGE. Calling ROUTINE. 1502* 1503* S: $as1 1504* 1505* T: $init 1506* 1507* M: An error occurred when calling ROUTINE during Answering Service 1508* initialization. ERROR_MESSAGE is the text associated with the error code 1509* returned by ROUTINE. Answering service initialization fails. The system 1510* administrator must enter admin mode and correct the problem. Then reboot 1511* the system. 1512* 1513* A: $contact_sa 1514* 1515* 1516* Message: 1517* as_init_: ERROR_MESSAGE. Shutting down the login server request mechanism. 1518* 1519* S: $as1 1520* 1521* T: $shut 1522* 1523* M: An error occurred while shutting down the login server request 1524* mechanism. The ERROR_MESSAGE gives the text associated with the error 1525* code returned from ls_request_server_$shutdown. 1526* 1527* A: $ignore 1528* 1529* 1530* END MESSAGE DOCUMENTATION */ 1531 1532 end as_init_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 10/14/90 0949.6 as_init_.pl1 >spec>install>1040>as_init_.pl1 1006 1 04/11/85 1552.6 access_mode_values.incl.pl1 >ldd>include>access_mode_values.incl.pl1 1007 2 10/14/83 1706.6 acl_structures.incl.pl1 >ldd>include>acl_structures.incl.pl1 1008 3 08/06/87 1013.0 answer_table.incl.pl1 >ldd>include>answer_table.incl.pl1 1009 4 08/06/87 1013.4 as_data_.incl.pl1 >ldd>include>as_data_.incl.pl1 1010 5 08/06/87 1013.4 as_meter_numbers.incl.pl1 >ldd>include>as_meter_numbers.incl.pl1 1011 6 09/09/75 2107.3 author_dcl.incl.pl1 >ldd>include>author_dcl.incl.pl1 6-10 7 04/21/82 1311.8 author.incl.pl1 >ldd>include>author.incl.pl1 1012 8 08/06/87 1013.0 cdt.incl.pl1 >ldd>include>cdt.incl.pl1 8-314 9 07/21/88 2136.0 fnp_types.incl.pl1 >ldd>include>fnp_types.incl.pl1 1013 10 06/28/79 1304.8 condition_info.incl.pl1 >ldd>include>condition_info.incl.pl1 1014 11 03/24/82 1447.2 condition_info_header.incl.pl1 >ldd>include>condition_info_header.incl.pl1 1015 12 05/08/81 1953.7 config_tcd_card.incl.pl1 >ldd>include>config_tcd_card.incl.pl1 1016 13 08/06/87 1013.4 dialup_values.incl.pl1 >ldd>include>dialup_values.incl.pl1 1017 14 04/21/82 1311.8 hashst.incl.pl1 >ldd>include>hashst.incl.pl1 1019 15 08/06/87 1013.4 installation_parms.incl.pl1 >ldd>include>installation_parms.incl.pl1 15-148 16 11/21/79 1558.3 rcp_init_flags.incl.pl1 >ldd>include>rcp_init_flags.incl.pl1 1020 17 11/20/79 2115.6 rtdt.incl.pl1 >ldd>include>rtdt.incl.pl1 17-4 18 04/21/82 1311.8 author.incl.pl1 >ldd>include>author.incl.pl1 1021 19 08/06/87 1516.6 sat.incl.pl1 >ldd>include>sat.incl.pl1 19-34 20 04/21/82 1311.8 author.incl.pl1 >ldd>include>author.incl.pl1 1024 21 08/06/87 1013.5 sc_stat_.incl.pl1 >ldd>include>sc_stat_.incl.pl1 1025 22 07/18/81 1200.0 sub_error_info.incl.pl1 >ldd>include>sub_error_info.incl.pl1 1026 23 08/06/87 1013.5 sys_log_constants.incl.pl1 >ldd>include>sys_log_constants.incl.pl1 1027 24 08/06/87 1013.6 user_attributes.incl.pl1 >ldd>include>user_attributes.incl.pl1 24-112 25 07/14/88 2115.0 user_abs_attributes.incl.pl1 >ldd>include>user_abs_attributes.incl.pl1 1028 26 07/14/88 2115.0 user_table_entry.incl.pl1 >ldd>include>user_table_entry.incl.pl1 1029 27 08/06/87 1013.6 user_table_header.incl.pl1 >ldd>include>user_table_header.incl.pl1 1030 28 01/18/85 1053.2 whotab.incl.pl1 >ldd>include>whotab.incl.pl1 NAMES DECLARED IN THIS COMPILATION. IDENTIFIER OFFSET LOC STORAGE CLASS DATA TYPE ATTRIBUTES AND REFERENCES (* indicates a set context) NAMES DECLARED BY DECLARE STATEMENT. ANSTBL_version_4 constant fixed bin(17,0) initial dcl 3-51 ref 497 ASINIT_METER 000357 constant fixed bin(17,0) initial dcl 5-19 set ref 324* 636* 664* 684* FALSE constant bit(1) initial dcl 231 ref 293 308 309 548 651 LONG_MODE 000351 constant fixed bin(17,0) initial dcl 803 set ref 833* ME 000252 constant char(8) initial packed unaligned dcl 232 set ref 824* 911 915* 940 MINS_30 000250 constant fixed bin(71,0) initial dcl 233 ref 675 NL 006542 constant char(1) initial dcl 234 ref 514 N_ACCESS constant bit(3) initial packed unaligned dcl 1-11 ref 351 771 PT_INTERACTIVE constant fixed bin(17,0) initial dcl 26-261 ref 499 P_table_name parameter char packed unaligned dcl 744 in procedure "Create_Segment" set ref 741 749* 755* 757* 759* 764* 769* 772* 774* P_table_name parameter char packed unaligned dcl 880 in procedure "Initiate_Segment" set ref 877 883* 885* 885* P_table_ptr parameter pointer dcl 745 in procedure "Create_Segment" set ref 741 749* 757* 759 P_table_ptr parameter pointer dcl 881 in procedure "Initiate_Segment" set ref 877 883* RTDT_area_len 000404 automatic fixed bin(18,0) dcl 17-64 set ref 419* RW_ACCESS 000343 constant bit(3) initial packed unaligned dcl 1-11 set ref 348 449 749* 883* R_ACCESS constant bit(3) initial packed unaligned dcl 1-11 ref 350 489 SAT_version constant fixed bin(17,0) initial dcl 19-24 ref 332 SL_LOG constant fixed bin(17,0) initial dcl 23-14 ref 910 939 SL_LOG_BEEP 000350 constant fixed bin(17,0) initial dcl 23-14 set ref 915* TCD_CARD_WORD 000247 constant char(4) initial dcl 12-17 set ref 519* TRUE constant bit(1) initial dcl 236 ref 304 305 325 UTE_SIZE constant fixed bin(17,0) initial dcl 3-120 ref 500 500 UTE_version_4 constant fixed bin(17,0) initial dcl 26-74 ref 498 WHOTAB_VERSION_1 constant fixed bin(17,0) initial dcl 28-96 ref 480 a_code parameter fixed bin(35,0) dcl 142 set ref 80 282 288 639* 644 687* a_n_users parameter fixed bin(35,0) dcl 143 set ref 693 697* 699* abort_label 000100 automatic label variable dcl 240 set ref 297* 652* 917 absentee_user_manager_$abs_as_init 000074 constant entry external dcl 158 ref 605 absentee_user_manager_$term_aum 000076 constant entry external dcl 159 ref 556 access_name 000357 automatic char(32) level 2 packed packed unaligned dcl 274 set ref 448* acla 000270 automatic structure array level 1 dcl 268 set ref 492 492 772 772 act_ctl_$act_ctl_close 000100 constant entry external dcl 160 ref 718 act_ctl_$init 000102 constant entry external dcl 161 ref 607 action_flags 2 based structure level 3 dcl 22-7 active_all_rings_data$system_id 000054 external static char(8) dcl 147 ref 561 addr builtin function dcl 222 ref 453 453 481 482 482 483 492 492 500 772 772 833 833 912 912 941 941 959 985 985 admin_$down1 000104 constant entry external dcl 162 ref 676 ansp 000372 automatic pointer initial dcl 3-53 set ref 382* 383 497 498 499 500 500 501 501 502 502 502 502 502 502 502 510 513 514 515 516 524 526 528 529 529 530 531 532 533 548 549 550 552 555 563 564 647* 672 679 696* 697 699 708* 712 3-53* anstbl based structure level 1 dcl 3-55 answer 000104 automatic char(100) packed unaligned dcl 241 set ref 373* 374* arg_list_ptr 2 000414 automatic pointer level 2 dcl 23-24 set ref 909* 938* as_check_condition_ 000354 constant entry external dcl 798 ref 805 as_data_$acsdir 000266 external static char(168) packed unaligned dcl 4-25 set ref 315* as_data_$ansp 000270 external static pointer dcl 4-26 set ref 383* 647 696 708 as_data_$as_procid 000272 external static bit(36) dcl 4-27 set ref 531* as_data_$as_ring 000274 external static fixed bin(3,0) dcl 4-28 ref 337 as_data_$autp 000276 external static pointer dcl 4-31 set ref 385* as_data_$cdtp 000300 external static pointer dcl 4-33 set ref 433* 650 as_data_$debug_flag 000332 external static bit(1) dcl 4-84 set ref 304* 308* 649 719 723 as_data_$dutp 000302 external static pointer dcl 4-37 set ref 387* as_data_$ls_message_buffer_cur_lth 000334 external static fixed bin(18,0) dcl 4-86 set ref 872* as_data_$ls_message_buffer_max_lth 000336 external static fixed bin(18,0) dcl 4-87 set ref 868* as_data_$ls_message_buffer_ptr 000340 external static pointer dcl 4-88 set ref 873* as_data_$max_user_ring 000304 external static fixed bin(3,0) dcl 4-41 ref 338 as_data_$pdtdir 000306 external static char(168) packed unaligned dcl 4-45 set ref 314* as_data_$pit_ptr 000310 external static pointer dcl 4-46 set ref 361* 362 as_data_$rcpdir 000312 external static char(168) packed unaligned dcl 4-47 set ref 316* as_data_$rs_ptrs 000314 external static pointer array dcl 4-49 set ref 392* 399 399 399 407* 710 as_data_$rtdtp 000316 external static pointer dcl 4-50 set ref 417* 425* as_data_$sat_htp 000320 external static pointer dcl 4-51 set ref 378* as_data_$satp 000322 external static pointer dcl 4-52 set ref 330* as_data_$sysdir 000324 external static char(168) packed unaligned dcl 4-54 set ref 313* as_data_$version 000326 external static char(8) packed unaligned dcl 4-59 set ref 632* as_data_$whoptr 000330 external static pointer dcl 4-60 set ref 458* 680 709 as_dump_$dont_use_mc 000106 constant entry external dcl 163 ref 840 as_meter_$asmt_init 000110 constant entry external dcl 164 ref 323 as_meter_$enter 000112 constant entry external dcl 165 ref 324 664 as_meter_$exit 000114 constant entry external dcl 166 ref 636 684 as_procid 10 based bit(36) level 3 dcl 3-55 set ref 531* as_request_server_$init 000116 constant entry external dcl 167 ref 581 as_tty 42 based char(8) level 2 packed packed unaligned dcl 3-55 set ref 530* as_user_message_$priv_system_init 000122 constant entry external dcl 169 ref 586 asu_$init 000120 constant entry external dcl 168 ref 601 author based structure level 2 dcl 6-9 author_dcl based structure level 1 dcl 6-9 auto_condition_info 000106 automatic structure level 1 dcl 972 set ref 985 985 auto_maxu 133 based fixed bin(17,0) level 2 dcl 3-55 set ref 552* 555* autp 000136 automatic pointer dcl 242 set ref 384* 385 bin builtin function dcl 222 ref 532 532 bit builtin function dcl 222 ref 532 caller 17 000414 automatic varying char(65) level 2 dcl 23-24 set ref 911* 940* cdt based structure level 1 dcl 8-44 cdt_entry 1520 based structure array level 2 dcl 8-44 set ref 959 cdt_mgr_$thread 000124 constant entry external dcl 170 ref 996 cdt_scan_try_count 000140 automatic fixed bin(17,0) dcl 243 set ref 953* 974 998* cdte based structure level 1 dcl 8-72 cdtep 000376 automatic pointer dcl 8-41 set ref 959* 961 cdtp 000374 automatic pointer dcl 8-41 set ref 430* 433 650* 957 959 961 961 964 996* channel_threads based structure level 1 dcl 8-249 check 000141 automatic fixed bin(17,0) dcl 244 set ref 955* 960* 960 961 961 chn_wakeup_error_loop_count 1710(18) based fixed bin(17,0) level 3 packed packed unaligned dcl 15-33 set ref 410 410* chn_wakeup_error_loop_seconds 1711 based fixed bin(17,0) level 3 packed packed unaligned dcl 15-33 set ref 411 411* cleanup 000106 stack reference condition dcl 801 ref 829 clock builtin function dcl 222 ref 516 532 562 675 cname parameter char packed unaligned dcl 787 set ref 783 805* 813 824* 833* 840 849 code 16 000414 automatic fixed bin(35,0) level 2 in structure "sl_info" dcl 23-24 in procedure "as_init_" set ref 913 code 000142 automatic fixed bin(35,0) dcl 245 in procedure "as_init_" set ref 296* 353* 355 355* 361* 362* 370* 371 373* 374 374* 430* 431 431* 443* 444* 453* 454 454* 465* 492* 493* 574* 575 575* 586* 587 587* 590* 591 591* 612* 613 613* 648* 734* 735 735* 809* 816* 817* 842* 883* 885 885* 913* 914 cond_info based char packed unaligned dcl 792 set ref 830 837* 838 cond_info_lng 000100 automatic fixed bin(17,0) dcl 793 set ref 830 830 833* 837 837 838 838 cond_info_ptr 000102 automatic pointer dcl 794 set ref 828* 830 830 833* 836 837 838 condition_ 000126 constant entry external dcl 171 ref 318 662 condition_info based structure level 1 dcl 10-14 condition_info_header based structure level 1 dcl 11-6 condition_interpreter_ 000356 constant entry external dcl 799 ref 833 config_$find 000130 constant entry external dcl 172 ref 519 contin parameter bit(1) packed unaligned dcl 790 set ref 783 805* 806 coptr parameter pointer dcl 788 set ref 783 833* cu_$arg_list_ptr 000364 constant entry external dcl 934 in procedure "Log_Error" ref 938 cu_$arg_list_ptr 000360 constant entry external dcl 905 in procedure "Abort" ref 909 cu_$level_set 000132 constant entry external dcl 173 ref 559 current_size 5 based fixed bin(17,0) level 3 dcl 3-55 set ref 502* daemon_user_manager_$init 000134 constant entry external dcl 174 ref 603 daughter 57 based fixed bin(17,0) level 3 packed packed unaligned dcl 8-44 ref 957 daughter_count 60(18) based fixed bin(17,0) level 3 packed packed unaligned dcl 8-44 ref 961 debug_flag 000143 automatic bit(1) dcl 246 set ref 305* 309* 318 321 573 585 616 625 649* 662 666 845 default_restart 2(01) based bit(1) level 4 packed packed unaligned dcl 22-7 ref 815 817 821 989 delete_acl_entry based structure level 1 dcl 2-63 device_acct_$init 000136 constant entry external dcl 175 ref 583 dialup_$init 000140 constant entry external dcl 176 ref 579 directory_acl_entry based structure level 1 dcl 2-54 divide builtin function dcl 222 ref 483 501 dutp 000144 automatic pointer dcl 247 set ref 386* 387 e 240 based structure array level 2 dcl 28-10 set ref 481 482 482 entry 200 based structure array level 2 dcl 3-55 set ref 500 entry_size 74 based fixed bin(17,0) level 2 dcl 28-10 set ref 482* 483 entry_version 1 based fixed bin(17,0) level 3 dcl 3-55 set ref 498* error_message_entry 000146 automatic entry variable dcl 248 set ref 845* 847* 849 850 error_table_$action_not_performed 000056 external static fixed bin(35,0) dcl 148 set ref 299* 654* 658* 809 977* error_table_$no_r_permission 000060 external static fixed bin(35,0) dcl 149 ref 764 error_table_$no_w_permission 000062 external static fixed bin(35,0) dcl 150 ref 764 error_table_$noentry 000064 external static fixed bin(35,0) dcl 151 ref 754 error_table_$unexpected_condition 000066 external static fixed bin(35,0) dcl 152 set ref 851* error_table_$unimplemented_version 000070 external static fixed bin(35,0) dcl 153 set ref 332* 394* extended_mode 11 000357 automatic bit(36) level 2 dcl 274 set ref 450* find_condition_info_ 000370 constant entry external dcl 971 ref 985 first_free 7 based fixed bin(17,0) level 3 dcl 3-55 set ref 502* fixed builtin function dcl 222 ref 481 482 482 483 500 fixed_info based structure level 2 dcl 17-16 fnpe based structure level 1 dcl 8-200 general_acl_entry based structure level 1 unaligned dcl 2-12 general_delete_acl_entry based structure level 1 dcl 2-35 general_extended_acl_entry based structure level 1 dcl 2-23 get_group_id_ 000142 constant entry external dcl 177 ref 339 get_group_id_$tag_star 000144 constant entry external dcl 178 ref 448 get_process_id_ 000146 constant entry external dcl 179 ref 531 get_ring_ 000150 constant entry external dcl 180 ref 559 get_system_free_area_ 000152 constant entry external dcl 181 ref 827 867 hash_$search 000154 constant entry external dcl 182 ref 370 hbound builtin function dcl 222 ref 399 399 399 hc_initlzr_auxl_init_$init 000156 constant entry external dcl 183 ref 594 hcs_$add_acl_entries 000160 constant entry external dcl 184 ref 453 hcs_$make_seg 000162 constant entry external dcl 185 ref 361 443 757 hcs_$replace_acl 000164 constant entry external dcl 186 ref 492 772 hcs_$set_ring_brackets 000166 constant entry external dcl 187 ref 493 hcs_$terminate_noname 000170 constant entry external dcl 188 ref 426 hcs_$truncate_seg 000172 constant entry external dcl 189 ref 465 hcs_$wakeup 000174 constant entry external dcl 190 ref 681 header based structure level 2 in structure "anstbl" dcl 3-55 in procedure "as_init_" header based structure level 2 in structure "sub_error_info" dcl 22-7 in procedure "as_init_" header_extension_mbz1 100 based fixed bin(17,0) level 2 dcl 28-10 set ref 483 header_length 3 based fixed bin(17,0) level 3 dcl 3-55 set ref 500* 501 header_size 73 based fixed bin(17,0) level 2 dcl 28-10 set ref 481* 483 header_version based fixed bin(17,0) level 3 dcl 3-55 set ref 497* hphcs_$restore_quota 000176 constant entry external dcl 191 ref 321 htable based structure level 1 dcl 14-6 htp 000402 automatic pointer initial dcl 1018 set ref 1018* i 000152 automatic fixed bin(17,0) dcl 249 set ref 342* 342* 343* 347* 348* id 4 based char(4) level 2 dcl 14-6 ref 369 369 info_ptr 14 000106 automatic pointer level 2 dcl 972 set ref 986 info_string 3 based varying char(256) level 3 dcl 22-7 set ref 817 817* 987* infoptr parameter pointer dcl 789 set ref 783 814 833* initiate_file_ 000202 constant entry external dcl 193 ref 749 883 installation_parms based structure level 1 dcl 15-33 installation_parms_part_1 based structure level 1 dcl 15-40 installation_parms_resource_array_part based structure array level 1 unaligned dcl 15-144 installation_parms_version_2 constant fixed bin(17,0) initial dcl 15-38 ref 394 installation_request_channel 116 based fixed bin(71,0) level 2 dcl 28-10 set ref 681* installation_request_pid 120 based bit(36) level 2 dcl 28-10 set ref 681* installed_under_resource_mgt 36 based bit(1) level 2 dcl 17-3 ref 420 ioa_ 000204 constant entry external dcl 194 ref 847 ioa_$rsnnl 000206 constant entry external dcl 195 ref 406 ip 000154 automatic pointer dcl 250 set ref 391* 392 394 394 399 399 399 405 410 410 411 411 420 488 590 620 710* 714 ipc_$set_wait_prior 000200 constant entry external dcl 192 ref 353 last_sc 000156 automatic fixed bin(71,0) dcl 251 set ref 464* 487 last_shift_change_time 64 based fixed bin(71,0) level 2 dcl 28-10 set ref 464 487* laste 76 based fixed bin(17,0) level 2 dcl 28-10 set ref 483* laste_adjust 75 based fixed bin(17,0) level 2 dcl 28-10 set ref 483* length builtin function dcl 222 ref 817 lg_ctl_$init 000210 constant entry external dcl 196 ref 597 load_ctl_$init 000212 constant entry external dcl 197 ref 599 load_ctl_$set_maxunits 000214 constant entry external dcl 198 ref 672 local_code 000700 automatic fixed bin(35,0) dcl 747 set ref 749* 752 754 757* 759* 764 764 764* 769* 772* 774 774* lock_count 114 based fixed bin(17,0) level 2 dcl 3-55 set ref 502* login_server_present 143 based bit(1) level 2 dcl 3-55 set ref 548* ls_message_buffer based char packed unaligned dcl 862 set ref 870 871* ls_message_buffer_max_lth 000710 automatic fixed bin(17,0) dcl 859 set ref 868* 870 870 871 ls_message_buffer_ptr 000712 automatic pointer dcl 860 set ref 870* 871 873 ls_request_server_$shutdown 000216 constant entry external dcl 199 ref 734 ls_request_server_event_channel 140 based fixed bin(71,0) level 2 dcl 3-55 set ref 550* ls_request_server_process_id 142 based bit(36) level 2 dcl 3-55 set ref 549* mail_table_priv_$test 000220 constant entry external dcl 200 ref 627 max_size 4 based fixed bin(17,0) level 3 dcl 3-55 set ref 501* max_units 43 based fixed bin(17,0) level 2 in structure "sat" dcl 19-32 in procedure "as_init_" ref 528 max_units 17 based fixed bin(17,0) level 2 in structure "anstbl" dcl 3-55 in procedure "as_init_" set ref 528* 563 max_users 15 based fixed bin(17,0) level 2 dcl 3-55 set ref 524* 526* 564 mc_quiesce_ 000222 constant entry external dcl 201 ref 719 mcptr parameter pointer dcl 786 set ref 783 833* message_lng 112 based fixed bin(17,0) level 2 dcl 3-55 set ref 515* message_update_time 110 based fixed bin(71,0) level 2 dcl 3-55 set ref 516* metering_enabled 000160 automatic bit(1) dcl 252 set ref 293* 325* 636 651* 684 mode 10 000357 automatic bit(36) level 2 in structure "our_acl" dcl 274 in procedure "as_init_" set ref 449* mode 10 000270 automatic bit(36) array level 2 in structure "acla" dcl 268 in procedure "as_init_" set ref 348* 350* 351* 489* 771* mother 135(18) based fixed bin(17,0) level 3 packed packed unaligned dcl 8-72 ref 961 mpxe based structure level 1 dcl 8-221 multiplexer_mgr_$init 000224 constant entry external dcl 202 ref 430 multiplexer_mgr_$shut 000226 constant entry external dcl 203 ref 723 976 991 multiplexer_mgr_$system_go 000230 constant entry external dcl 204 ref 669 multiplexer_mgr_$system_init 000232 constant entry external dcl 205 ref 574 mxunits 2 based fixed bin(17,0) level 2 dcl 28-10 set ref 563* mxusers based fixed bin(17,0) level 2 dcl 28-10 set ref 564* n_acl 000161 automatic fixed bin(17,0) dcl 253 set ref 341* 343 344* 344 346 347 351 489 492* 771 772* n_cdtes 41 based fixed bin(17,0) level 2 dcl 8-44 ref 961 n_projects 41 based fixed bin(17,0) level 2 dcl 19-32 set ref 373* n_rate_structures 66(18) based fixed bin(9,0) level 2 packed packed unsigned unaligned dcl 28-10 set ref 488* n_sessions 20 based fixed bin(17,0) level 2 dcl 3-55 set ref 529* 529 n_units 16 based fixed bin(17,0) level 2 dcl 3-55 set ref 502* n_users 14 based fixed bin(17,0) level 2 dcl 3-55 set ref 502* 699 name 106 based char(32) level 2 dcl 22-7 set ref 817* next_sc 000162 automatic fixed bin(71,0) dcl 254 set ref 463* 486 next_sd 000010 internal static fixed bin(71,0) dcl 226 set ref 459* 675 676* next_sd_msg 000014 internal static char(124) dcl 227 set ref 460* 676* next_sd_until 000012 internal static fixed bin(71,0) dcl 226 set ref 461* 676* next_shift_change_time 62 based fixed bin(71,0) level 2 dcl 28-10 set ref 463 486* next_sister 1654 based fixed bin(17,0) array level 4 packed packed unaligned dcl 8-44 set ref 964 nextsd 10 based fixed bin(71,0) level 2 dcl 28-10 set ref 459 713* nlin 12 based fixed bin(17,0) level 2 dcl 3-55 set ref 502* no_apt 1 based fixed bin(17,0) level 2 dcl 12-5 ref 526 non_local_exit 000104 automatic bit(1) packed unaligned dcl 796 set ref 805* 806 normal_flag 000164 automatic bit(1) dcl 255 set ref 285* 291* 552 597* nrates 1713 based fixed bin(17,0) level 3 dcl 15-33 set ref 399 399 399* 405 488 null builtin function dcl 222 ref 362 425 444 518 520 697 3-53 1018 1023 26-76 759 828 830 836 985 985 number_free 6 based fixed bin(17,0) level 3 dcl 3-55 set ref 502* our_acl 000357 automatic structure level 1 dcl 274 set ref 453 453 part_1 based structure level 2 dcl 15-33 pathname_ 000234 constant entry external dcl 206 ref 885 885 pdir_volume_manager_$init 000236 constant entry external dcl 207 ref 617 phcs_$ring_0_message 000240 constant entry external dcl 208 ref 845 pnt_manager_$test 000242 constant entry external dcl 209 ref 626 processid_index 130 based fixed bin(18,0) level 2 dcl 3-55 set ref 532* quiet_restart 2(02) based bit(1) level 4 packed packed unaligned dcl 22-7 ref 815 rbkt 000165 automatic fixed bin(3,0) array dcl 256 set ref 337* 338* 338* 493* rcp_init_flags 541 based structure level 3 in structure "installation_parms" dcl 15-33 in procedure "as_init_" set ref 590* rcp_init_flags based structure level 1 packed packed unaligned dcl 16-8 in procedure "as_init_" rcp_sys_$initialize 000244 constant entry external dcl 210 ref 590 reassign_work_classes_ 000246 constant entry external dcl 211 ref 612 registration_defaults 602 based structure level 3 dcl 17-16 rel builtin function dcl 222 ref 481 482 482 483 500 resource_mgmt_enabled 541(03) based bit(1) level 4 packed packed unaligned dcl 15-33 set ref 420 rpad 11 000270 automatic bit(36) initial array level 2 dcl 268 set ref 268* 268* 268* 268* 268* rs_name 000170 automatic char(32) packed unaligned dcl 257 set ref 406* 407* rs_number 000200 automatic fixed bin(17,0) dcl 258 set ref 405* 406* 407* rtde based structure level 1 dcl 17-16 rtdt based structure level 1 dcl 17-3 rtdtp 000406 automatic pointer dcl 17-70 set ref 416* 417 420 426* rtrim builtin function dcl 222 ref 314 315 316 343 sat based structure level 1 dcl 19-32 sat_htp 000202 automatic pointer dcl 259 set ref 367* 369 369 370* 373* 378 satep 000410 automatic pointer initial dcl 1023 set ref 1023* satp 000204 automatic pointer dcl 260 set ref 329* 330 332 342 343 373* 373 528 sc_stat_$Go 000346 external static bit(1) dcl 21-62 ref 654 sc_stat_$Multics 000350 external static bit(1) dcl 21-62 ref 299 658 sc_stat_$master_channel 000344 external static char(6) dcl 21-29 ref 530 sc_stat_$sysdir 000342 external static char(168) packed unaligned dcl 21-21 ref 312 sc_stat_$test_mode 000352 external static bit(1) dcl 21-62 ref 303 segment_acl_entry based structure level 1 dcl 2-45 session 6 based char(8) level 2 in structure "whotab" dcl 28-10 in procedure "as_init_" set ref 712* session 46 based char(8) level 2 in structure "anstbl" packed packed unaligned dcl 3-55 in procedure "as_init_" set ref 712* session_uid_counter 131 based fixed bin(35,0) level 2 dcl 3-55 set ref 533* severity 15 000414 automatic fixed bin(17,0) level 2 dcl 23-24 set ref 910* 939* shift 132 based fixed bin(17,0) level 2 in structure "anstbl" dcl 3-55 in procedure "as_init_" set ref 672* shift 000206 automatic fixed bin(17,0) dcl 261 in procedure "as_init_" set ref 462* 485 shift 61 based fixed bin(17,0) level 2 in structure "whotab" dcl 28-10 in procedure "as_init_" set ref 462 485* size builtin function dcl 222 ref 501 sl_info 000414 automatic structure level 1 dcl 23-24 set ref 908* 912 912 937* 941 941 sl_info_code_msg 000000 constant structure level 1 dcl 23-187 ref 908 937 special_message 50 based char(128) level 2 packed packed unaligned dcl 3-55 set ref 514* status_code 104 based fixed bin(35,0) level 3 in structure "sub_error_info" dcl 22-7 in procedure "as_init_" set ref 816 987* 992* status_code 12 000357 automatic fixed bin(35,0) level 2 in structure "our_acl" dcl 274 in procedure "as_init_" set ref 451* sub_error_ 000100 stack reference condition dcl 970 ref 984 sub_error_info based structure level 1 dcl 22-7 sub_error_info_ptr 000412 automatic pointer dcl 22-6 set ref 814* 815 815 816 817 817 817 817 821 986* 987 987 989 992 substr builtin function dcl 222 ref 513 532 sys_info$max_seg_size 000072 external static fixed bin(35,0) dcl 154 ref 501 sys_log_ 000250 constant entry external dcl 212 ref 915 sys_log_$general 000366 constant entry external dcl 935 in procedure "Log_Error" ref 941 sys_log_$general 000362 constant entry external dcl 906 in procedure "Abort" ref 912 sysdir 22 based char(64) level 2 packed packed unaligned dcl 3-55 set ref 513* syserr_log_copy_threshold 535 based fixed bin(9,0) level 3 dcl 15-33 set ref 620* 714 syserr_log_man_$as_copy_init 000252 constant entry external dcl 213 ref 620 syserr_log_man_$as_copy_log 000254 constant entry external dcl 214 ref 714 sysid 121 based char(32) level 2 dcl 28-10 set ref 561* 632* system_admin 676 based char(32) array level 2 packed packed unaligned dcl 19-32 ref 342 343 system_area based area(1024) dcl 278 set ref 830 833 833 838 870 system_area_ptr 000210 automatic pointer dcl 262 set ref 827* 830 833 833 838 867* 870 system_control_dir 000212 automatic char(168) packed unaligned dcl 263 set ref 312* 313 314 315 316 374* 420* 443* 444* 453* 454* 492* 493* 513 626* 627* 749* 755* 757* 759* 764* 769* 772* 774* 883* 885* 885* tcd_card based structure level 1 dcl 12-5 tcd_cardp 000400 automatic pointer dcl 12-3 set ref 518* 519* 520 526 threads 134 based structure level 2 in structure "cdte" dcl 8-72 in procedure "as_init_" threads 1654 based structure array level 3 in structure "cdt" dcl 8-44 in procedure "as_init_" threads 56 based structure level 2 in structure "cdt" dcl 8-44 in procedure "as_init_" timer_manager_$sleep 000256 constant entry external dcl 215 ref 721 timeup 4 based fixed bin(71,0) level 2 dcl 28-10 set ref 562* turn_on_mc_ 000260 constant entry external dcl 216 ref 568 ucs_recursion 000264 automatic fixed bin(17,0) initial dcl 264 set ref 264* 811* 811 812 until 12 based fixed bin(71,0) level 2 dcl 28-10 ref 461 up_sat_$make_sat_hash 000262 constant entry external dcl 217 ref 373 up_sysctl_$init 000264 constant entry external dcl 218 ref 571 update_pending 115 based bit(1) level 2 dcl 3-55 set ref 510* 679 user_abs_attributes based structure level 1 dcl 25-25 user_attributes based structure level 1 dcl 24-21 user_table_type 2 based fixed bin(17,0) level 3 dcl 3-55 set ref 499* userid 000270 automatic char(32) array level 2 dcl 268 set ref 339* 340* 343* 346* ut_header based structure level 1 dcl 27-16 ute based structure level 1 dcl 26-78 ref 501 utep 000664 automatic pointer initial dcl 26-76 set ref 501 26-76* version 72 based fixed bin(17,0) level 2 in structure "whotab" dcl 28-10 in procedure "as_init_" set ref 480* version 37 based fixed bin(17,0) level 2 in structure "sat" dcl 19-32 in procedure "as_init_" ref 332 version 1712 based fixed bin(35,0) level 3 in structure "installation_parms" dcl 15-33 in procedure "as_init_" set ref 394 394* whoptr 000266 automatic pointer dcl 266 set ref 443* 444 458 459 460 461 462 463 464 465* 480 481 481 482 482 482 483 483 483 483 483 485 486 487 488 561 562 563 564 632 680* 681 681 709* 712 713 whotab based structure level 1 dcl 28-10 why 201 based char(124) level 2 dcl 28-10 ref 460 x 000265 automatic fixed bin(17,0) dcl 265 set ref 957* 957* 959* 964 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. ABSQ_METER internal static fixed bin(17,0) initial dcl 5-28 ABS_ATTRIBUTE_NAMES internal static varying char(28) initial array dcl 25-38 ABS_FLAG_NAMES internal static varying char(8) initial array dcl 26-326 ABS_TRYLOG_METER internal static fixed bin(17,0) initial dcl 5-35 ACCTUP_METER internal static fixed bin(17,0) initial dcl 5-26 ACL_VERSION_1 internal static fixed bin(17,0) initial dcl 2-77 ACTIVE internal static fixed bin(17,0) initial dcl 8-272 ACTIVE_VALUES internal static char(18) initial array dcl 13-86 ADMIN_METER internal static fixed bin(17,0) initial dcl 5-32 ALT_USER_ATTRIBUTE_NAMES internal static char(20) initial array packed unaligned dcl 24-77 ANS_SERVICE internal static fixed bin(17,0) initial dcl 8-259 AS_METER_NAMES internal static char(8) initial array packed unaligned dcl 5-43 AT_NORMAL internal static char(8) initial packed unaligned dcl 3-116 AT_SHUTDOWN internal static char(8) initial packed unaligned dcl 3-116 AT_SPECIAL internal static char(8) initial packed unaligned dcl 3-116 AUM_METER internal static fixed bin(17,0) initial dcl 5-22 AU_METER internal static fixed bin(17,0) initial dcl 5-23 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 16-16 CDT_version internal static fixed bin(17,0) initial dcl 8-39 CDT_version_5 internal static fixed bin(17,0) initial dcl 8-38 CHANNEL_DELETED internal static fixed bin(17,0) initial dcl 8-288 COMMAND_METER internal static fixed bin(17,0) initial dcl 5-30 CPG_METER internal static fixed bin(17,0) initial dcl 5-24 DELETE_ACL_VERSION_1 internal static char(4) initial packed unaligned dcl 2-67 DERIVE_MASK internal static bit(2) initial packed unaligned dcl 26-280 DIALUP_METER internal static fixed bin(17,0) initial dcl 5-20 DIAL_OUT_SERVICE internal static fixed bin(17,0) initial dcl 8-259 DIAL_SERVER_FLAG_NAMES internal static varying char(12) initial array dcl 26-332 DIAL_SERVICE internal static fixed bin(17,0) initial dcl 8-259 DIR_ACCESS_MODE_NAMES internal static char(4) initial array packed unaligned dcl 1-33 DIR_ACL_VERSION_1 internal static char(4) initial packed unaligned dcl 2-67 DN355 internal static fixed bin(17,0) initial dcl 9-19 DN6600 internal static fixed bin(17,0) initial dcl 9-19 DN6670 internal static fixed bin(17,0) initial dcl 9-19 DN7100 internal static fixed bin(17,0) initial dcl 9-19 DONT_MASK internal static bit(2) initial packed unaligned dcl 26-280 DO_MASK internal static bit(2) initial packed unaligned dcl 26-280 DPG_METER internal static fixed bin(17,0) initial dcl 5-25 DUM_METER internal static fixed bin(17,0) initial dcl 5-21 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 FIXPDT_METER internal static fixed bin(17,0) initial dcl 5-34 FNP_BOOT internal static fixed bin(17,0) initial dcl 8-298 FNP_DOWN internal static fixed bin(17,0) initial dcl 8-298 FNP_FREE internal static fixed bin(17,0) initial dcl 8-298 FNP_UNKNOWN internal static fixed bin(17,0) initial dcl 8-298 FNP_UP internal static fixed bin(17,0) initial dcl 8-298 FTP_SERVICE internal static fixed bin(17,0) initial dcl 8-259 GENERAL_ACL_VERSION_1 internal static char(8) initial packed unaligned dcl 2-72 GENERAL_DELETE_ACL_VERSION_1 internal static char(8) initial packed unaligned dcl 2-72 GENERAL_EXTENDED_ACL_VERSION_1 internal static char(8) initial packed unaligned dcl 2-72 INACTIVE internal static fixed bin(17,0) initial dcl 8-272 INSTALL_METER internal static fixed bin(17,0) initial dcl 5-27 LOGIN_RESULT_VALUES internal static varying char(24) initial array dcl 26-338 MASK_CTL_NAMES internal static varying char(12) initial array dcl 26-284 MAX_HT_BUCKETS_IN_SEG internal static fixed bin(17,0) initial dcl 14-24 MC_SERVICE internal static fixed bin(17,0) initial dcl 8-259 MPX_BOOT internal static fixed bin(17,0) initial dcl 8-306 MPX_DOWN internal static fixed bin(17,0) initial dcl 8-306 MPX_FREE internal static fixed bin(17,0) initial dcl 8-306 MPX_SERVICE internal static fixed bin(17,0) initial dcl 8-259 MPX_UNKNOWN internal static fixed bin(17,0) initial dcl 8-306 MPX_UP internal static fixed bin(17,0) initial dcl 8-306 MSGCORD_METER internal static fixed bin(17,0) initial dcl 5-29 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 16-16 NETUP_METER internal static fixed bin(17,0) initial dcl 5-37 NOT_CONFIGURED internal static fixed bin(17,0) initial dcl 8-280 NOW_DIALED internal static fixed bin(17,0) initial dcl 13-76 NOW_DIALED_OUT internal static fixed bin(17,0) initial dcl 13-76 NOW_DIALING internal static fixed bin(17,0) initial dcl 13-76 NOW_FREE internal static fixed bin(17,0) initial dcl 13-76 NOW_HAS_PROCESS internal static fixed bin(17,0) initial dcl 13-76 NOW_HUNG_UP internal static fixed bin(17,0) initial dcl 13-76 NOW_LISTENING internal static fixed bin(17,0) initial dcl 13-76 NOW_LOGGED_IN internal static fixed bin(17,0) initial dcl 13-76 N_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 N_CHARGE_TYPES automatic fixed bin(17,0) dcl 17-64 N_MATES automatic fixed bin(17,0) dcl 17-64 N_SUBTYPES automatic fixed bin(17,0) dcl 17-64 No_authentication internal static fixed bin(17,0) initial dcl 16-16 Nominal_authentication internal static fixed bin(17,0) initial dcl 16-16 PREEMPT_BUMPED internal static fixed bin(17,0) initial dcl 13-132 PREEMPT_BUMPED_NO_TERM internal static fixed bin(17,0) initial dcl 13-132 PREEMPT_LOAD_CTL internal static fixed bin(17,0) initial dcl 13-132 PREEMPT_TERMSGNL_RECEIVED internal static fixed bin(17,0) initial dcl 13-132 PREEMPT_TERM_SENT internal static fixed bin(17,0) initial dcl 13-132 PREEMPT_UNBUMP internal static fixed bin(17,0) initial dcl 13-132 PREEMPT_UNBUMP_IGNORE_ALARM internal static fixed bin(17,0) initial dcl 13-132 PREEMPT_VALUES internal static varying char(28) initial array dcl 13-142 PROCESS_TYPE_NAMES internal static varying char(12) initial array dcl 26-265 PT_ABSENTEE internal static fixed bin(17,0) initial dcl 26-261 PT_ALARM internal static fixed bin(17,0) initial dcl 13-106 PT_BUMP internal static fixed bin(17,0) initial dcl 13-106 PT_DAEMON internal static fixed bin(17,0) initial dcl 26-261 PT_DESTROY_REQUEST internal static fixed bin(17,0) initial dcl 13-106 PT_DETACH internal static fixed bin(17,0) initial dcl 13-106 PT_FPE internal static fixed bin(17,0) initial dcl 13-106 PT_HANGUP internal static fixed bin(17,0) initial dcl 13-106 PT_LOGOUT internal static fixed bin(17,0) initial dcl 13-106 PT_NEW_PROC_AUTH internal static fixed bin(17,0) initial dcl 13-106 PT_NEW_PROC_REQUEST internal static fixed bin(17,0) initial dcl 13-106 PT_OPERATOR_TERMINATE internal static fixed bin(17,0) initial dcl 13-106 PT_SHUTDOWN internal static fixed bin(17,0) initial dcl 13-106 PT_UNBUMP internal static fixed bin(17,0) initial dcl 13-106 PW_FLAG_NAMES internal static varying char(12) initial array dcl 26-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 RTDT_version_2 internal static fixed bin(17,0) initial dcl 17-64 RTDT_version_3 internal static fixed bin(17,0) initial dcl 17-64 RW_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 R_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 SAC_METER internal static fixed bin(17,0) initial dcl 5-31 SAT_entry_lth internal static fixed bin(17,0) initial dcl 19-24 SAT_header_lth internal static fixed bin(17,0) initial dcl 19-24 SAT_project_name_length internal static fixed bin(17,0) initial dcl 19-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 SEG_ACL_VERSION_1 internal static char(4) initial packed unaligned dcl 2-67 SLAVE_SERVICE internal static fixed bin(17,0) initial dcl 8-259 SL_INFO_arg_given_in_structure internal static fixed bin(17,0) initial dcl 23-69 SL_INFO_arg_not_given internal static fixed bin(17,0) initial dcl 23-69 SL_INFO_as_mode internal static fixed bin(17,0) initial dcl 23-65 SL_INFO_command_mode internal static fixed bin(17,0) initial dcl 23-65 SL_INFO_version_1 internal static char(8) initial packed unaligned dcl 23-62 SL_LOG_CRASH internal static fixed bin(17,0) initial dcl 23-14 SL_LOG_SILENT internal static fixed bin(17,0) initial dcl 23-14 SL_TYPE internal static fixed bin(17,0) initial dcl 23-14 SL_TYPE_BEEP internal static fixed bin(17,0) initial dcl 23-14 SL_TYPE_CRASH internal static fixed bin(17,0) initial dcl 23-14 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 SSU_METER internal static fixed bin(17,0) initial dcl 5-33 STATE_VALUES internal static char(15) initial array dcl 13-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 26-271 TAG_ABSENTEE internal static char(1) initial packed unaligned dcl 13-93 TAG_DAEMON internal static char(1) initial packed unaligned dcl 13-93 TAG_INTERACTIVE internal static char(1) initial packed unaligned dcl 13-93 TAG_PROXY internal static char(1) initial packed unaligned dcl 13-93 TAG_UFT internal static char(1) initial packed unaligned dcl 13-93 TANDD_SERVICE internal static fixed bin(17,0) initial dcl 8-259 TRA_VEC_VALUES internal static char(32) initial array dcl 13-54 TTY_DIALED internal static fixed bin(17,0) initial dcl 13-64 TTY_HUNG internal static fixed bin(17,0) initial dcl 13-64 TTY_KNOWN internal static fixed bin(17,0) initial dcl 13-64 TTY_MASKED internal static fixed bin(17,0) initial dcl 13-64 UFLAG_NAMES internal static varying char(24) initial array dcl 26-303 USER_ATTRIBUTES_always_allowed internal static bit(36) initial dcl 24-100 USER_ATTRIBUTES_default_in_pdt internal static bit(36) initial dcl 24-104 USER_ATTRIBUTES_settable_by_user internal static bit(36) initial dcl 24-108 USER_ATTRIBUTE_NAMES internal static char(20) initial array packed unaligned dcl 24-50 WAIT_ANSWERBACK internal static fixed bin(17,0) initial dcl 13-25 WAIT_BEFORE_HANGUP internal static fixed bin(17,0) initial dcl 13-25 WAIT_CONNECT_REQUEST internal static fixed bin(17,0) initial dcl 13-25 WAIT_DELETE_CHANNEL internal static fixed bin(17,0) initial dcl 13-25 WAIT_DESTROY_REQUEST internal static fixed bin(17,0) initial dcl 13-25 WAIT_DETACH internal static fixed bin(17,0) initial dcl 13-25 WAIT_DIALUP internal static fixed bin(17,0) initial dcl 13-25 WAIT_DIAL_OUT internal static fixed bin(17,0) initial dcl 13-25 WAIT_DIAL_RELEASE internal static fixed bin(17,0) initial dcl 13-25 WAIT_DISCARD_WAKEUPS internal static fixed bin(17,0) initial dcl 13-25 WAIT_FIN_PRIV_ATTACH internal static fixed bin(17,0) initial dcl 13-25 WAIT_FIN_TANDD_ATTACH internal static fixed bin(17,0) initial dcl 13-25 WAIT_GREETING_MSG internal static fixed bin(17,0) initial dcl 13-25 WAIT_HANGUP internal static fixed bin(17,0) initial dcl 13-25 WAIT_LOGIN_ARGS internal static fixed bin(17,0) initial dcl 13-25 WAIT_LOGIN_LINE internal static fixed bin(17,0) initial dcl 13-25 WAIT_LOGOUT internal static fixed bin(17,0) initial dcl 13-25 WAIT_LOGOUT_HOLD internal static fixed bin(17,0) initial dcl 13-25 WAIT_LOGOUT_SIG internal static fixed bin(17,0) initial dcl 13-25 WAIT_NEW_PASSWORD internal static fixed bin(17,0) initial dcl 13-25 WAIT_NEW_PROC internal static fixed bin(17,0) initial dcl 13-25 WAIT_NEW_PROC_REQUEST internal static fixed bin(17,0) initial dcl 13-25 WAIT_OLD_PASSWORD internal static fixed bin(17,0) initial dcl 13-25 WAIT_PASSWORD internal static fixed bin(17,0) initial dcl 13-25 WAIT_REMOVE internal static fixed bin(17,0) initial dcl 13-25 WAIT_SLAVE_REQUEST internal static fixed bin(17,0) initial dcl 13-25 WAIT_TANDD_HANGUP internal static fixed bin(17,0) initial dcl 13-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 acl_count automatic fixed bin(17,0) dcl 2-5 acl_ptr automatic pointer dcl 2-4 as_data_$BS external static char(1) dcl 4-21 as_data_$CR external static char(1) dcl 4-22 as_data_$abs_dim external static char(32) packed unaligned dcl 4-23 as_data_$acct_update_priority external static fixed bin(17,0) dcl 4-24 as_data_$as_tty automatic char(6) packed unaligned dcl 4-29 as_data_$asmtp external static pointer dcl 4-30 as_data_$buzzardp external static pointer dcl 4-32 as_data_$default_weight external static fixed bin(35,0) dcl 4-34 as_data_$devtabp external static pointer dcl 4-35 as_data_$dft_user_ring external static fixed bin(3,0) dcl 4-36 as_data_$g115_dim external static char(32) packed unaligned dcl 4-38 as_data_$lct_initialized external static bit(1) dcl 4-39 as_data_$lct_size external static fixed bin(17,0) dcl 4-40 as_data_$login_args external static structure level 1 dcl 4-62 as_data_$login_words external static fixed bin(17,0) dcl 4-77 as_data_$ls_request_server_info_ptr external static pointer dcl 4-85 as_data_$mgtp external static pointer dcl 4-42 as_data_$mrd_dim external static char(32) packed unaligned dcl 4-43 as_data_$ntty_dim external static char(32) packed unaligned dcl 4-44 as_data_$request_priority external static fixed bin(17,0) dcl 4-48 as_data_$signal_types external static structure level 1 dcl 4-67 as_data_$suffix external static char(2) array packed unaligned dcl 4-53 as_data_$system_signal_types external static structure level 1 dcl 4-72 as_data_$teens_suffix external static char(2) array packed unaligned dcl 4-55 as_data_$terminet_tabs_string external static varying char(144) dcl 4-56 as_data_$tty_dim external static char(32) packed unaligned dcl 4-57 as_data_$update_priority external static fixed bin(17,0) dcl 4-58 as_data_login_words based structure level 1 dcl 4-77 authentication_level_names internal static char(12) initial array packed unaligned dcl 16-21 charge_type_table based structure level 1 dcl 17-11 condition_info_header_ptr automatic pointer dcl 11-4 condition_info_ptr automatic pointer dcl 10-10 condition_info_version_1 internal static fixed bin(17,0) initial dcl 10-30 cttp automatic pointer dcl 17-70 delete_acl based structure level 1 dcl 2-58 delete_acl_array based structure array level 1 dcl 2-64 directory_acl based structure level 1 dcl 2-49 directory_acl_array based structure array level 1 dcl 2-55 fnp_models internal static fixed bin(17,0) initial array dcl 9-28 fnp_types internal static char(8) initial array packed unaligned dcl 9-25 fnpep automatic pointer dcl 8-41 general_acl based structure level 1 dcl 2-7 general_delete_acl based structure level 1 dcl 2-30 general_extended_acl based structure level 1 dcl 2-18 generic_destination based char(32) packed unaligned dcl 8-195 hash_table_size_ automatic fixed bin(17,0) dcl 14-25 installation_parms_version_1 internal static fixed bin(17,0) initial dcl 15-37 mpxep automatic pointer dcl 8-41 project based structure level 1 dcl 19-53 recursion_possible internal static bit(18) initial packed unaligned dcl 5-39 rifp automatic pointer dcl 16-6 rtdep automatic pointer dcl 17-70 sc_stat_$Go_typed external static bit(1) dcl 21-62 sc_stat_$Multics_typed external static bit(1) dcl 21-62 sc_stat_$Star_typed external static bit(1) dcl 21-62 sc_stat_$admin_listener_exit_label external static label variable dcl 21-34 sc_stat_$admin_listener_switch external static bit(1) dcl 21-62 sc_stat_$admin_log_iocb external static pointer dcl 21-45 sc_stat_$admin_log_write_ptr external static pointer dcl 21-45 sc_stat_$admin_sci_ptr external static pointer dcl 21-45 sc_stat_$as_log_write_ptr external static pointer dcl 21-45 sc_stat_$did_part1 external static bit(1) dcl 21-62 sc_stat_$did_part2 external static bit(1) dcl 21-62 sc_stat_$did_part3 external static bit(1) dcl 21-62 sc_stat_$exec_access_name external static char(32) packed unaligned dcl 21-15 sc_stat_$info_dir external static char(168) packed unaligned dcl 21-21 sc_stat_$initzer_ttyp external static pointer dcl 21-45 sc_stat_$log_dir external static char(168) packed unaligned dcl 21-21 sc_stat_$master_abort_label external static label variable dcl 21-34 sc_stat_$master_iocb external static pointer dcl 21-45 sc_stat_$master_sci_ptr external static pointer dcl 21-45 sc_stat_$mc_acs_dir external static char(168) packed unaligned dcl 21-21 sc_stat_$mc_ansp external static pointer dcl 21-45 sc_stat_$mc_iocb external static pointer dcl 21-45 sc_stat_$mc_is_on external static bit(1) dcl 21-62 sc_stat_$no_operator_login external static bit(1) dcl 21-62 sc_stat_$shutdown_typed external static bit(1) dcl 21-62 sc_stat_$sv1_iocb external static pointer dcl 21-45 sc_stat_$sv2_iocb external static pointer dcl 21-45 sc_stat_$sv3_iocb external static pointer dcl 21-45 sc_stat_$system_shutdown_label external static label variable dcl 21-34 sc_stat_$unidentified_access_name external static char(32) packed unaligned dcl 21-15 sc_stat_$vchn_requires_accept external static bit(1) dcl 21-62 segment_acl based structure level 1 dcl 2-40 segment_acl_array based structure array level 1 dcl 2-46 sl_info_msg internal static structure level 1 dcl 23-214 sl_info_sev_code_label_msg internal static structure level 1 dcl 23-161 sl_info_sev_code_msg internal static structure level 1 dcl 23-82 sl_info_sev_coded_msg internal static structure level 1 dcl 23-134 sl_info_sev_msg internal static structure level 1 dcl 23-108 sub_error_info_version_1 internal static fixed bin(17,0) initial dcl 22-13 supported_fnp internal static bit(1) initial array packed unaligned dcl 9-31 NAMES DECLARED BY EXPLICIT CONTEXT. Abort 005766 constant entry internal dcl 902 ref 299 332 362 374 394 399 420 431 444 454 575 587 591 613 654 658 759 764 774 842 851 885 977 992 CDT_DAMAGE 006165 constant label dcl 967 ref 961 Check_CDT 006122 constant entry internal dcl 946 ref 667 Create_Segment 004464 constant entry internal dcl 741 ref 367 382 384 386 GO_RETURN 004266 constant label dcl 684 ref 652 INIT_RETURN 004025 constant label dcl 636 ref 297 Initialize_Login_Server_Message_Buffer 005610 constant entry internal dcl 856 ref 630 Initiate_Segment 005644 constant entry internal dcl 877 ref 329 391 407 416 Log_Error 006062 constant entry internal dcl 931 ref 355 372 522 632 735 755 769 817 824 837 981 987 997 RETRY_CDT_SCAN 006124 constant label dcl 955 set ref 999 TRY_AGAIN 004475 constant label dcl 749 ref 774 as_init 001322 constant entry external dcl 282 as_init_ 001311 constant entry external dcl 80 check_shut_ok 004304 constant entry external dcl 693 go 004043 constant entry external dcl 644 initialize 001344 constant label dcl 293 ref 286 make_sat_hash 002132 constant label dcl 372 ref 369 shutdown 004333 constant entry external dcl 705 startup 001334 constant entry external dcl 288 ucs 005067 constant entry internal dcl 783 ref 318 318 662 662 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 10204 10576 6546 10214 Length 12000 6546 372 1166 1435 44 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME as_init_ 739 external procedure is an external procedure. Create_Segment internal procedure shares stack frame of external procedure as_init_. ucs 181 internal procedure is assigned to an entry variable, and enables or reverts conditions. on unit on line 829 64 on unit Initialize_Login_Server_Message_Buffer internal procedure shares stack frame of external procedure as_init_. Initiate_Segment internal procedure shares stack frame of external procedure as_init_. Abort 96 internal procedure is declared options(variable). Log_Error 70 internal procedure is declared options(variable). Check_CDT internal procedure shares stack frame of external procedure as_init_. begin block on line 967 132 begin block enables or reverts conditions. on unit on line 984 94 on unit STORAGE FOR INTERNAL STATIC VARIABLES. LOC IDENTIFIER BLOCK NAME 000010 next_sd as_init_ 000012 next_sd_until as_init_ 000014 next_sd_msg as_init_ STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME as_init_ 000100 abort_label as_init_ 000104 answer as_init_ 000136 autp as_init_ 000140 cdt_scan_try_count as_init_ 000141 check as_init_ 000142 code as_init_ 000143 debug_flag as_init_ 000144 dutp as_init_ 000146 error_message_entry as_init_ 000152 i as_init_ 000154 ip as_init_ 000156 last_sc as_init_ 000160 metering_enabled as_init_ 000161 n_acl as_init_ 000162 next_sc as_init_ 000164 normal_flag as_init_ 000165 rbkt as_init_ 000170 rs_name as_init_ 000200 rs_number as_init_ 000202 sat_htp as_init_ 000204 satp as_init_ 000206 shift as_init_ 000210 system_area_ptr as_init_ 000212 system_control_dir as_init_ 000264 ucs_recursion as_init_ 000265 x as_init_ 000266 whoptr as_init_ 000270 acla as_init_ 000357 our_acl as_init_ 000372 ansp as_init_ 000374 cdtp as_init_ 000376 cdtep as_init_ 000400 tcd_cardp as_init_ 000402 htp as_init_ 000404 RTDT_area_len as_init_ 000406 rtdtp as_init_ 000410 satep as_init_ 000412 sub_error_info_ptr as_init_ 000414 sl_info as_init_ 000664 utep as_init_ 000700 local_code Create_Segment 000710 ls_message_buffer_max_lth Initialize_Login_Server_Message_Buffer 000712 ls_message_buffer_ptr Initialize_Login_Server_Message_Buffer begin block on line 967 000106 auto_condition_info begin block on line 967 ucs 000100 cond_info_lng ucs 000102 cond_info_ptr ucs 000104 non_local_exit ucs THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. r_g_a alloc_char_temp enter_begin_block call_ent_var_desc call_ext_out_desc call_ext_out call_int_this_desc call_int_other_desc return_mac tra_ext_1 tra_ext_2 enable_op shorten_stack ext_entry int_entry int_entry_desc divide_fx3 op_alloc_ op_freen_ clock_mac THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. absentee_user_manager_$abs_as_init absentee_user_manager_$term_aum act_ctl_$act_ctl_close act_ctl_$init admin_$down1 as_check_condition_ as_dump_$dont_use_mc as_meter_$asmt_init as_meter_$enter as_meter_$exit as_request_server_$init as_user_message_$priv_system_init asu_$init cdt_mgr_$thread condition_ condition_interpreter_ config_$find cu_$arg_list_ptr cu_$arg_list_ptr cu_$level_set daemon_user_manager_$init device_acct_$init dialup_$init find_condition_info_ get_group_id_ get_group_id_$tag_star get_process_id_ get_ring_ get_system_free_area_ hash_$search hc_initlzr_auxl_init_$init hcs_$add_acl_entries hcs_$make_seg hcs_$replace_acl hcs_$set_ring_brackets hcs_$terminate_noname hcs_$truncate_seg hcs_$wakeup hphcs_$restore_quota initiate_file_ ioa_ ioa_$rsnnl ipc_$set_wait_prior lg_ctl_$init load_ctl_$init load_ctl_$set_maxunits ls_request_server_$shutdown mail_table_priv_$test mc_quiesce_ multiplexer_mgr_$init multiplexer_mgr_$shut multiplexer_mgr_$system_go multiplexer_mgr_$system_init pathname_ pdir_volume_manager_$init phcs_$ring_0_message pnt_manager_$test rcp_sys_$initialize reassign_work_classes_ sys_log_ sys_log_$general sys_log_$general syserr_log_man_$as_copy_init syserr_log_man_$as_copy_log timer_manager_$sleep turn_on_mc_ up_sat_$make_sat_hash up_sysctl_$init THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. active_all_rings_data$system_id as_data_$acsdir as_data_$ansp as_data_$as_procid as_data_$as_ring as_data_$autp as_data_$cdtp as_data_$debug_flag as_data_$dutp as_data_$ls_message_buffer_cur_lth as_data_$ls_message_buffer_max_lth as_data_$ls_message_buffer_ptr as_data_$max_user_ring as_data_$pdtdir as_data_$pit_ptr as_data_$rcpdir as_data_$rs_ptrs as_data_$rtdtp as_data_$sat_htp as_data_$satp as_data_$sysdir as_data_$version as_data_$whoptr error_table_$action_not_performed error_table_$no_r_permission error_table_$no_w_permission error_table_$noentry error_table_$unexpected_condition error_table_$unimplemented_version sc_stat_$Go sc_stat_$Multics sc_stat_$master_channel sc_stat_$sysdir sc_stat_$test_mode sys_info$max_seg_size LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 264 001251 268 001252 3 53 001277 1018 001301 1023 001302 26 76 001303 80 001306 282 001317 285 001330 286 001331 288 001332 291 001342 293 001344 296 001345 297 001346 299 001351 303 001373 304 001376 305 001400 306 001401 308 001402 309 001403 312 001404 313 001410 314 001414 315 001443 316 001463 318 001501 321 001530 323 001537 324 001544 325 001553 329 001555 330 001562 332 001565 337 001607 338 001612 339 001615 340 001626 341 001631 342 001633 343 001650 344 001710 345 001712 346 001714 347 001722 348 001731 349 001734 350 001736 351 001740 353 001743 355 001752 361 001773 362 002035 367 002061 369 002066 370 002074 371 002130 372 002132 373 002153 374 002204 378 002235 382 002240 383 002247 384 002252 385 002263 386 002266 387 002274 391 002277 392 002310 394 002313 399 002340 405 002404 406 002415 407 002446 408 002465 410 002467 411 002476 416 002503 417 002510 419 002513 420 002514 425 002547 426 002552 430 002563 431 002574 433 002615 443 002620 444 002662 448 002711 449 002720 450 002722 451 002723 453 002724 454 002763 458 003010 459 003013 460 003015 461 003020 462 003022 463 003024 464 003026 465 003030 480 003043 481 003046 482 003052 483 003060 485 003072 486 003074 487 003076 488 003100 489 003105 492 003111 493 003157 497 003206 498 003210 499 003213 500 003215 501 003221 502 003233 510 003242 513 003244 514 003247 515 003252 516 003253 518 003256 519 003260 520 003272 522 003276 524 003317 525 003322 526 003323 528 003327 529 003333 530 003334 531 003343 532 003356 533 003367 548 003370 549 003371 550 003372 552 003374 555 003402 556 003403 559 003410 561 003430 562 003436 563 003441 564 003444 568 003446 571 003453 573 003460 574 003462 575 003471 579 003512 581 003517 583 003524 585 003531 586 003533 587 003542 590 003563 591 003575 594 003616 597 003623 599 003632 601 003637 603 003644 605 003651 607 003656 612 003663 613 003672 616 003713 617 003715 620 003722 625 003746 626 003750 627 003761 630 003772 632 003773 636 004025 639 004036 640 004040 644 004041 647 004051 648 004055 649 004056 650 004060 651 004063 652 004064 654 004067 658 004110 662 004135 664 004164 666 004173 667 004175 669 004176 672 004203 675 004213 676 004220 679 004237 680 004242 681 004246 684 004266 687 004277 688 004301 693 004302 696 004312 697 004316 699 004325 701 004331 705 004332 708 004341 709 004345 710 004350 712 004353 713 004362 714 004364 718 004373 719 004400 721 004407 723 004424 734 004433 735 004442 739 004463 741 004464 749 004475 752 004535 754 004540 755 004543 757 004576 759 004637 762 004674 764 004675 769 004733 771 004764 772 004767 774 005032 780 005065 783 005066 805 005102 806 005122 809 005133 811 005137 812 005140 813 005143 814 005151 815 005154 816 005164 817 005166 821 005233 822 005240 824 005241 827 005274 828 005304 829 005306 830 005322 832 005334 833 005335 836 005402 837 005406 838 005436 840 005443 841 005473 842 005474 843 005512 845 005513 847 005522 849 005526 850 005554 851 005571 854 005607 856 005610 867 005611 868 005620 870 005625 871 005634 872 005640 873 005642 874 005643 877 005644 883 005655 885 005715 888 005764 902 005765 908 005773 909 005777 910 006005 911 006010 912 006014 913 006025 914 006030 915 006031 917 006055 920 006060 931 006061 937 006067 938 006073 939 006101 940 006104 941 006110 942 006121 946 006122 953 006123 955 006124 957 006125 959 006134 960 006140 961 006141 964 006157 965 006164 967 006165 974 006170 976 006173 977 006200 981 006221 984 006243 985 006257 986 006277 987 006304 989 006331 991 006337 992 006344 994 006364 996 006365 997 006400 998 006422 999 006425 1001 006430 ----------------------------------------------------------- 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