COMPILATION LISTING OF SEGMENT dm_dmn_requests_ Compiled by: Multics PL/I Compiler, Release 30, of February 16, 1988 Compiled at: Honeywell Bull, Phoenix AZ, SysM Compiled on: 07/13/88 1035.6 mst Wed Options: optimize map 1 /****^ *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Bull Inc., 1987 * 4* * * 5* * Copyright, (C) Honeywell Information Systems Inc., 1984 * 6* * * 7* *********************************************************** */ 8 9 /* DESCRIPTION: 10*This program is a collection of utility entries for the Data Management 11*Daemon. The most important of these entries is the $request entry. This 12*entry is the object of the event call channel that all Daemon requests 13*are made over. There are entries to logout and new_proc the Daemon 14*and an entry for logging. 15* 16*This procedure was originally written by Mike Pandolf. Most of the 17*$request entry was taken from the now defunct dmsd_listener_ program, 18*also written by Mike Pandolf. 19**/ 20 21 /* HISTORY: 22*Written by R. Michael Tague, 11/23/84. 23*Modified: 24*12/06/84 by R. Michael Tague: Changed program name from dmsd_util_. 25*12/10/84 by R. Michael Tague: Changed string for alarm wakeups, is "alarm___". 26*12/11/84 by R. Michael Tague: Removed error code from the $adjust_tdt call. 27*01/16/85 by R. Michael Tague: Fixed a variety of small items for auditing. 28*01/22/85 by R. Michael Tague: Added the kill_txn request. 29*03/18/85 by Steve Herbst: Removed "TDT adjusted." log message. 30**/ 31 32 33 /****^ HISTORY COMMENTS: 34* 1) change(87-04-27,GDixon), approve(87-07-08,MCR7741), 35* audit(87-07-08,Hartogs), install(87-08-04,MR12.1-1055): 36* Upgraded for change to answer_table.incl.pl1 and user_table_entry.incl.pl1 37* END HISTORY COMMENTS */ 38 39 40 /* format: style5,^indcomtxt */ 41 log: 42 proc () options (variable); 43 44 /* START OF DECLARATIONS */ 45 /* Parameter */ 46 /* Automatic */ 47 48 dcl arg_list_ptr ptr; 49 dcl group_id char (32); 50 dcl myname char (32); 51 dcl request_type fixed bin (17); 52 dcl sender_id bit (36) aligned; 53 54 dcl logout_current_system_state 55 char (4) aligned; 56 57 dcl 1 logout_info aligned, 58 2 version fixed bin init (0), 59 2 hold bit (1) unal init ("0"b), 60 2 brief bit (1) unal init ("0"b), 61 2 pad bit (34) unal init ((34)"0"b); 62 63 dcl 1 new_proc_info aligned, 64 2 version fixed bin init (1), 65 2 change_auth bit (1) unal init ("0"b), 66 2 pad bit (35) unal init ((35)"0"b), 67 2 new_auth bit (72) aligned; 68 69 /* Builtin */ 70 71 dcl (addr, null, rtrim, substr) 72 builtin; 73 74 /* Constant */ 75 76 dcl NEVER_SET fixed bin (71) init (-1) int 77 static options (constant); 78 dcl SYSTEM_CTL_DIR char (4) init (">sc1") int 79 static options (constant); 80 81 /* Entry */ 82 83 dcl cu_$arg_list_ptr entry (ptr); 84 dcl dm_daemon_util_$get_daemon_info 85 entry (ptr); 86 dcl dm_daemon_util_$log entry options (variable); 87 dcl dm_daemon_util_$log_message 88 entry (ptr); 89 dcl dm_daemon_util_$new_proc 90 entry (); 91 dcl dm_daemon_util_$schedule_shutdown 92 entry (); 93 dcl dm_daemon_util_$set_system_state 94 entry (char (4) aligned); 95 dcl dm_misc_util_$is_process_using_dm 96 entry returns (bit (1) aligned); 97 dcl dm_misc_util_$get_begin_shutdown_time 98 entry returns (fixed bin (71)); 99 dcl dm_misc_util_$get_system_state 100 entry returns (char (4) aligned); 101 dcl hcs_$initiate entry (char (*), char (*), char (*), 102 fixed bin (1), fixed bin (2), ptr, 103 fixed bin (35)); 104 dcl terminate_process_ entry (char (*), ptr); 105 dcl timer_manager_$reset_alarm_wakeup 106 entry (fixed bin (71)); 107 dcl timer_manager_$alarm_wakeup 108 entry (fixed bin (71), bit (2), 109 fixed bin (71)); 110 dcl transaction_manager_$adjust_process_id 111 entry (bit (36) aligned, fixed bin (35)) 112 ; 113 dcl transaction_manager_$adjust_tdt 114 entry (); 115 dcl transaction_manager_$adjust_tdt_entry 116 entry (bit (36) aligned, fixed bin, 117 fixed bin (35)); 118 dcl transaction_manager_$dm_system_in_use 119 entry returns (bit (1) aligned); 120 dcl transaction_manager_$ips_wakeup 121 entry (char (*), bit (36) aligned); 122 dcl transaction_manager_$kill_txn 123 entry (bit (36) aligned, fixed bin (35)) 124 ; 125 126 /* External */ 127 128 dcl dm_error_$process_not_found 129 fixed bin (35) ext; 130 dcl dm_request_action_$adjust_process_id 131 fixed bin (17) ext; 132 dcl dm_request_action_$adjust_tdt 133 fixed bin (17) ext; 134 dcl dm_request_action_$adjust_tdt_entry 135 fixed bin (17) ext; 136 dcl dm_request_action_$adjust_txn 137 fixed bin (17) ext; 138 dcl dm_request_action_$kill_txn 139 fixed bin (17) ext; 140 dcl dm_request_action_$new_proc 141 fixed bin (17) ext; 142 dcl dm_request_action_$new_process_notifications 143 fixed bin (17) ext; 144 dcl dm_request_action_$shutdown 145 fixed bin (17) ext; 146 147 /* Static */ 148 149 dcl request_idle_time_in_seconds 150 fixed bin (71) init (NEVER_SET); 151 152 /* These are pointers to the answer table, the absentee user table, */ 153 /* and the daemon user table. */ 154 155 dcl static_ansp ptr init (null ()) int static; 156 dcl static_autp ptr init (null ()) int static; 157 dcl static_dutp ptr init (null ()) int static; 158 159 /* END OF DECLARATIONS */ 160 161 /* ************************************************************************* 162* * dm_dmn_requests_$log - This entry point passes its argument pointer * 163* * to $log_messages so that the options (variable) can be carried * 164* * through a gate. This entry is the main procedure entry for this * 165* * module. * 166* ************************************************************************* */ 167 168 myname = "dm_dmn_requests_$log"; 169 call cu_$arg_list_ptr (arg_list_ptr); 170 call dm_daemon_util_$log_message (arg_list_ptr); 171 call RETURN; 172 173 /* ************************************************************************* 174* * dm_dmn_requests_$logout - This entry is called by the Daemon to * 175* * logout the Daemon's process. Just before actually logging out * 176* * a check is made to see if we are currently in the process of shutting * 177* * down DM. If we are and no one is left in the system, the state is * 178* * set to DM_SYSTEM_STATE_NORMAL_SHUTDOWN. The terminate_process_ * 179* * procedure should never return. * 180* ************************************************************************* */ 181 182 logout: 183 entry (); 184 185 myname = "dm_dmn_requests_$logout"; 186 if dm_misc_util_$is_process_using_dm () then 187 do; 188 logout_current_system_state = dm_misc_util_$get_system_state (); 189 if logout_current_system_state = DM_SYSTEM_STATE_SHUTDOWN_BEGUN 190 | logout_current_system_state 191 = DM_SYSTEM_STATE_SHUTDOWN_BUMP_USERS then 192 if ^transaction_manager_$dm_system_in_use () then 193 call dm_daemon_util_$set_system_state ( 194 DM_SYSTEM_STATE_NORMAL_SHUTDOWN); 195 end; 196 call terminate_process_ ("logout", addr (logout_info)); 197 call RETURN; 198 199 /* ************************************************************************* 200* * dm_dmn_requests_$new_proc - This entry is called by the Daemon * 201* * overseer to get a new process. This may be called due to an operator * 202* * request or because an error was encountered. The terminate_process_ * 203* * procedure should never return. * 204* ************************************************************************* */ 205 206 new_proc: 207 entry (); 208 209 myname = "dm_dmn_requests_$new_proc"; 210 call terminate_process_ ("new_proc", addr (new_proc_info)); 211 call RETURN; 212 213 /* ************************************************************************* 214* * dm_dmn_requests_$request - This entry handles all Daemon requests * 215* * including those made by the Answering Service to adjust_process_id * 216* * for processes that have terminated and the Idle timer request of * 217* * adjust_tdt. This entry is called as the object of an event call * 218* * channel. * 219* ************************************************************************* */ 220 221 request: 222 entry (event_call_info_ptr); 223 224 myname = "dm_dmn_requests_$request"; 225 dm_request_message_ptr = addr (event_call_info.message); 226 sender_id = event_call_info.sender; 227 group_id = GET_PROCESS_GROUP (sender_id); 228 call RESET_IDLE_TIMER (event_call_info.channel_id); 229 if dm_alarm_message = "alarm___" then 230 call ALARM_WAKEUP (); 231 else 232 do; 233 request_type = dm_request_message.action_type; 234 if request_type = dm_request_action_$adjust_process_id then 235 call ADJUST_PROCESS_ID (); 236 else if request_type = dm_request_action_$adjust_tdt then 237 call ADJUST_TDT (); 238 else if request_type = dm_request_action_$adjust_tdt_entry then 239 call ADJUST_TDT_ENTRY (); 240 else if request_type = dm_request_action_$adjust_txn then 241 call ADJUST_TXN (); 242 else if request_type = dm_request_action_$kill_txn then 243 call KILL_TXN (); 244 else if request_type = dm_request_action_$new_proc then 245 call NEW_PROC (); 246 else if request_type 247 = dm_request_action_$new_process_notifications then 248 call NEW_PROCESS_NOTIFICATIONS (); 249 else if request_type = dm_request_action_$shutdown then 250 call SHUTDOWN (); 251 else 252 call dm_daemon_util_$log (LOG_SV, 253 "Unknown Daemon request type: ^i, from ^w (^a).", 254 request_type, sender_id, group_id); 255 end; 256 call RETURN; 257 258 MAIN_RETURN: 259 return; 260 261 /* ************************************************************************* 262* * ALARM_WAKEUP - This routine is invoked by an idle timeout request. * 263* ************************************************************************* */ 264 265 ALARM_WAKEUP: 266 proc (); 267 268 call dm_daemon_util_$log (LOG_SV, "Idle timeout request by ^w, (^a).", 269 sender_id, group_id); 270 call transaction_manager_$adjust_tdt (); 271 end ALARM_WAKEUP; 272 273 /* ************************************************************************* 274* * ADJUST_PROCESS_ID - Request to adjust the TDT based on a supplied * 275* * process_id. This request is logged if it does not come from the * 276* * the Initializer. The Answering Service sends this request as a * 277* * process termination notification. * 278* ************************************************************************* */ 279 280 ADJUST_PROCESS_ID: 281 proc (); 282 dcl api_code fixed bin (35); 283 dcl INITIALIZER_USER_NAME char (11) init ("Initializer") 284 internal static options (constant); 285 286 if substr (group_id, 1, 11) ^= INITIALIZER_USER_NAME then 287 do; 288 call dm_daemon_util_$log (LOG_SV, 289 "ADJUST_PROCESS_ID ^w requested by ^w (^a).", 290 dm_adjust_process_id_message.process_id, sender_id, 291 group_id); 292 call transaction_manager_$adjust_process_id 293 ((dm_adjust_process_id_message.process_id), api_code); 294 if api_code ^= 0 then 295 call dm_daemon_util_$log (LOG_SV, api_code, myname, 296 "Transaction manager could not adjust process id."); 297 end; 298 else 299 do; 300 call transaction_manager_$adjust_process_id 301 ((dm_adjust_process_id_message.process_id), api_code); 302 if api_code ^= 0 & api_code ^= dm_error_$process_not_found then 303 call dm_daemon_util_$log (LOG_SV, api_code, myname, 304 "Transaction manager could not adjust process id."); 305 end; 306 end ADJUST_PROCESS_ID; 307 308 /* ************************************************************************* 309* * ADJUST_TDT - Adjust the TDT table. * 310* ************************************************************************* */ 311 312 ADJUST_TDT: 313 proc (); 314 315 call dm_daemon_util_$log (LOG_SV, "ADJUST TDT for ^w (^a).", sender_id, 316 group_id); 317 call transaction_manager_$adjust_tdt (); 318 call dm_daemon_util_$log (LOG_SV, "TDT successfully adjusted."); 319 end ADJUST_TDT; 320 321 /* ************************************************************************* 322* * ADJUST_TDT_ENTRY - Adjust the TDT table for a specified entry, an * 323* * offset into the table. * 324* ************************************************************************* */ 325 326 ADJUST_TDT_ENTRY: 327 proc (); 328 dcl ate_code fixed bin (35); 329 330 call dm_daemon_util_$log (LOG_SV, 331 "ADJUST_TDT_ENTRY (index = ^i) requested by ^w (^a).", 332 dm_adjust_txn_message.transaction_index, sender_id, group_id); 333 call transaction_manager_$adjust_tdt_entry 334 ((dm_adjust_txn_message.transaction_id), 335 (dm_adjust_txn_message.transaction_index), ate_code); 336 if ate_code ^= 0 then 337 call dm_daemon_util_$log (LOG_SV, ate_code, myname, 338 "TDT entry could not be adjusted."); 339 else 340 call dm_daemon_util_$log (LOG_SV, 341 "TDT entry successfully adjusted."); 342 end ADJUST_TDT_ENTRY; 343 344 /* ************************************************************************* 345* * ADJUST_TXN - Adjust the TDT table given a transaction id. * 346* ************************************************************************* */ 347 348 ADJUST_TXN: 349 proc (); 350 dcl at_code fixed bin (35); 351 352 call dm_daemon_util_$log (LOG_SV, 353 "ADJUST_TXN (index = ^i) requested by ^w (^a).", 354 dm_adjust_txn_message.transaction_index, sender_id, group_id); 355 call transaction_manager_$adjust_tdt_entry 356 ((dm_adjust_txn_message.transaction_id), 357 (dm_adjust_txn_message.transaction_index), at_code); 358 if at_code ^= 0 then 359 call dm_daemon_util_$log (LOG_SV, at_code, myname, 360 "Transaction could not be adjusted"); 361 else 362 call dm_daemon_util_$log (LOG_SV, 363 "Transaction successfully adjusted."); 364 end ADJUST_TXN; 365 366 /* ************************************************************************* 367* * GET_PROCESS_GROUP - This function returns a string which is the * 368* * caller process' group_id (user.project.tag). If the group id cannot * 369* * be determined, then "UNABLE TO GET GROUP ID" is returned. * 370* ************************************************************************* */ 371 372 GET_PROCESS_GROUP: 373 proc (gpg_process_id) returns (char (32)); 374 dcl gpg_process_id bit (36) aligned; 375 dcl gpg_code fixed bin (35); 376 dcl gpg_entry_no fixed bin; 377 dcl INTERACTIVE_USER_TABLE char (32) init ("answer_table") 378 internal static options (constant); 379 dcl DAEMON_USER_TABLE char (32) 380 init ("daemon_user_table") 381 internal static options (constant); 382 dcl ABSENTEE_USER_TABLE char (32) 383 init ("absentee_user_table") 384 internal static options (constant); 385 386 if static_ansp = null () then 387 call hcs_$initiate (SYSTEM_CTL_DIR, INTERACTIVE_USER_TABLE, "", 388 0, 0, static_ansp, gpg_code); 389 if static_dutp = null () then 390 call hcs_$initiate (SYSTEM_CTL_DIR, DAEMON_USER_TABLE, "", 0, 0, 391 static_dutp, gpg_code); 392 if static_autp = null () then 393 call hcs_$initiate (SYSTEM_CTL_DIR, ABSENTEE_USER_TABLE, "", 0, 394 0, static_autp, gpg_code); 395 ansp = static_ansp; 396 autp = static_autp; 397 dutp = static_dutp; 398 399 if ansp ^= null () then 400 do gpg_entry_no = 1 to ansp -> anstbl.current_size; 401 utep = addr (anstbl.entry (gpg_entry_no)); 402 if utep -> ute.active = NOW_HAS_PROCESS then 403 if utep -> ute.proc_id = gpg_process_id then 404 return (rtrim (utep -> ute.person) 405 || "." 406 || rtrim (utep -> ute.project) 407 || ".a"); 408 end; 409 410 if autp ^= null () then 411 do gpg_entry_no = 1 to autp -> autbl.current_size; 412 utep = addr (autp -> autbl.entry (gpg_entry_no)); 413 if utep -> ute.active ^= NOW_FREE then 414 if utep -> ute.proc_id = gpg_process_id then 415 return (rtrim (utep -> ute.person) 416 || "." 417 || rtrim (utep -> ute.project) 418 || ".m"); 419 end; 420 421 if dutp ^= null () then 422 do gpg_entry_no = 1 to dutp -> dutbl.current_size; 423 utep = addr (dutp -> dutbl.entry (gpg_entry_no)); 424 if utep -> ute.active = NOW_HAS_PROCESS then 425 if utep -> ute.proc_id = gpg_process_id then 426 return (rtrim (utep -> ute.person) 427 || "." 428 || rtrim (utep -> ute.project) 429 || ".z"); 430 end; 431 432 return ("UNABLE TO GET GROUP ID"); 433 end GET_PROCESS_GROUP; 434 435 /* ************************************************************************* 436* * IDLE_TIME_IN_SECONDS - This function returns the the value of the DM * 437* * system parameter that specifies the amount of time between idle * 438* * timeouts for the Daemon. The time is converted from minutes to * 439* * seconds and returned. * 440* ************************************************************************* */ 441 442 IDLE_TIME_IN_SECONDS: 443 proc () returns (fixed bin); 444 dcl 1 itis_daemon_info aligned like dm_daemon_info; 445 dcl SECONDS_PER_MINUTE fixed bin init (60) internal 446 static options (constant); 447 448 itis_daemon_info.version = DM_DAEMON_INFO_VERSION_1; 449 call dm_daemon_util_$get_daemon_info (addr (itis_daemon_info)); 450 return (SECONDS_PER_MINUTE * itis_daemon_info.wakeup_increment); 451 end IDLE_TIME_IN_SECONDS; 452 453 /* ************************************************************************* 454* * KILL_TXN - Kills (just wipes out) tht specified TDT entry. * 455* ************************************************************************* */ 456 457 KILL_TXN: 458 proc (); 459 dcl kt_code fixed bin (35); 460 461 call dm_daemon_util_$log (LOG_SV, 462 "KILL_TXN (ID = ^i) requested by ^w (^a).", 463 dm_kill_txn.transaction_id, sender_id, group_id); 464 call transaction_manager_$kill_txn ((dm_kill_txn.transaction_id), 465 kt_code); 466 if kt_code ^= 0 then 467 call dm_daemon_util_$log (LOG_SV, kt_code, myname, 468 "Transaction could not be killed."); 469 else 470 call dm_daemon_util_$log (LOG_SV, 471 "Transaction successfully killed."); 472 end KILL_TXN; 473 474 /* ************************************************************************* 475* * NEW_PROC - The new_proc request. This causes the DM Daemon to * 476* * execute a new_proc. * 477* ************************************************************************* */ 478 479 NEW_PROC: 480 proc (); 481 482 call dm_daemon_util_$log (LOG_SV, "NEW_PROC from process ^w (^a).", 483 sender_id, group_id); 484 call dm_daemon_util_$new_proc (); 485 end NEW_PROC; 486 487 /* ************************************************************************* 488* * NEW_PROCESS_NOTIFICATIONS - This request causes the Daemon to send a * 489* * dm_shutdown_scheduled_ IPS signal to the process that made the * 490* * request. This is used by per-process initialization in the inner * 491* * ring to cause the IPS signal for the outer ring. * 492* ************************************************************************* */ 493 494 NEW_PROCESS_NOTIFICATIONS: 495 proc (); 496 dcl DM_SHUTDOWN_SCHEDULED_IPS_NAME 497 char (32) 498 init ("dm_shutdown_scheduled_") 499 internal static options (constant); 500 501 if dm_misc_util_$get_begin_shutdown_time () ^= 0 then 502 call transaction_manager_$ips_wakeup ( 503 DM_SHUTDOWN_SCHEDULED_IPS_NAME, sender_id); 504 end NEW_PROCESS_NOTIFICATIONS; 505 506 /* ************************************************************************* 507* * RETURN - This is the main return procedure for the several entry * 508* * points. It does a non-local goto to MAIN_RETURN. * 509* ************************************************************************* */ 510 511 RETURN: 512 proc (); 513 514 goto MAIN_RETURN; 515 end RETURN; 516 517 /* ************************************************************************* 518* * RESET_IDLE_TIMER - This entry is called whenever a request is * 519* * processed. It resets the the idle timer since we aren't idle. The * 520* * idle timer is set to go off request_idle_time_in_seconds in the * 521* * future. If the static value request_idle_time_in_seconds has not * 522* * been set before, we set it using the value returned from the * 523* * IDLE_TIME_IN_SECONDS procedure. * 524* ************************************************************************* */ 525 526 RESET_IDLE_TIMER: 527 proc (rit_p_request_channel); 528 dcl rit_p_request_channel fixed bin (71); 529 dcl RIT_RELATIVE_SECONDS_REQUEST 530 bit (2) init ("11"b) internal 531 static options (constant); 532 533 call timer_manager_$reset_alarm_wakeup (rit_p_request_channel); 534 if request_idle_time_in_seconds = NEVER_SET then 535 request_idle_time_in_seconds = IDLE_TIME_IN_SECONDS (); 536 if request_idle_time_in_seconds > 0 then 537 call timer_manager_$alarm_wakeup (request_idle_time_in_seconds, 538 RIT_RELATIVE_SECONDS_REQUEST, rit_p_request_channel); 539 end RESET_IDLE_TIMER; 540 541 /* ************************************************************************* 542* * SHUTDOWN - This request causes the DM system to schedule a shutdown. * 543* ************************************************************************* */ 544 545 SHUTDOWN: 546 proc (); 547 call dm_daemon_util_$log (LOG_SV, "SHUTDOWN from process ^w (^a).", 548 sender_id, group_id); 549 call dm_daemon_util_$schedule_shutdown (); 550 end SHUTDOWN; 551 552 /* BEGIN INCLUDE FILE ... answer_table.incl.pl1 */ 1 2 1 3 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 1 4 /* */ 1 5 /* The answer table has one entry per "login instance" whether completed or */ 1 6 /* not. It is connected to the Channel Definition Table by the pointer */ 1 7 /* "channel". The header is used mostly by dialup_. */ 1 8 /* */ 1 9 /* Programs which use this file must also include user_table_header.incl.pl1 */ 1 10 /* */ 1 11 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 1 12 1 13 /****^ HISTORY COMMENTS: 1 14* 1) change(81-09-10,Kittlitz), approve(), audit(), install(): 1 15* Replace anstbl.incl.pl1. 1 16* 2) change(85-01-15,Swenson), approve(), audit(), install(): 1 17* Add anstbl.session_uid_counter. 1 18* 3) change(85-08-21,Coren), approve(), audit(), install(): 1 19* Add anstbl.message_update_time and named constants for values of 1 20* anstbl.session, and to make all padding explicit. 1 21* 4) change(85-08-23,Coren), approve(), audit(), install(): 1 22* Change "entry" to a placeholder so as not to require 1 23* user_table_entry.incl.pl1. 1 24* 5) change(86-06-29,Swenson), approve(87-07-13,MCR7741), 1 25* audit(87-04-14,GDixon), install(87-08-04,MR12.1-1056): 1 26* Added the flag login_server_present which indicates whether a login 1 27* server request has been received. This is used to determine whether 1 28* dial_ctl_ should call uc_cleanup_network_dials_ (and thus 1 29* hpriv_connection_list_, which only exists with the MNA RPQ software). 1 30* 6) change(87-04-14,GDixon), approve(87-07-13,MCR7741), 1 31* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 1 32* A) Moved constants for ute.pw_flags.mask_ctl into 1 33* user_table_entry.incl.pl1. 1 34* B) Added common table header to all user tables. 1 35* END HISTORY COMMENTS */ 1 36 1 37 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 1 38 /* */ 1 39 /* The anstbl structure below is divided into sections. Each section begins */ 1 40 /* with a comment describing the elements in the section. Elements are */ 1 41 /* placed within a section, based upon their function or the programs that */ 1 42 /* use them. Each section begins on a double word and is an even number of */ 1 43 /* words long. */ 1 44 /* */ 1 45 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 1 46 1 47 1 48 1 49 /* format: style4 */ 1 50 1 51 dcl ANSTBL_version_4 static options (constant) init (4); /* version of this declaration */ 1 52 1 53 dcl ansp ptr automatic init (null); 1 54 1 55 dcl 1 anstbl based (ansp) aligned, /* Structure of answer table */ 1 56 2 header like ut_header, /* Header common to all user tables. */ 1 57 1 58 /* Counter elements. */ 1 59 2 nlin fixed bin, /* number of active lines */ 1 60 2 mxlin fixed bin, /* maximum number of active lines */ 1 61 2 n_users fixed bin, /* number of logged-in users */ 1 62 2 max_users fixed bin, /* maximum number of users allowed */ 1 63 2 n_units fixed bin, /* number of logged in units */ 1 64 2 max_units fixed bin, /* maximum number of units */ 1 65 2 n_sessions fixed bin, /* number of Multics sessions */ 1 66 2 n_pad fixed bin, 1 67 1 68 /* Name elements. */ 1 69 2 sysdir char (64) unal, /* name of main system control directory */ 1 70 2 as_tty char (8) unal, /* name of main answering service device. */ 1 71 1 72 /* Login elements. */ 1 73 2 login_word char (8) unal, /* login word if special_session=1 */ 1 74 2 session char (8) unal, /* session indicator */ 1 75 2 special_message char (128) unal, /* message to be printed for special session */ 1 76 2 message_update_time fixed bin (71), /* time at which special_message was last updated */ 1 77 2 message_lng fixed bin, /* length of special message */ 1 78 2 login_pad fixed bin, 1 79 1 80 /* Table update elements. */ 1 81 2 lock_count fixed bin, /* global lock for all system control tables */ 1 82 2 update_pending bit (1) aligned, /* flag indicating that update is required */ 1 83 2 update_channel fixed binary (71), /* event channel of update procedure */ 1 84 2 acct_update_chn fixed bin (71) aligned, /* Timer IPC channel */ 1 85 2 acct_last_update_time fixed bin (71) aligned, /* Time of last accounting update */ 1 86 2 acct_alarm_fail fixed bin, /* non-zero if alarm has failed */ 1 87 2 update_pad fixed bin, 1 88 1 89 /* dialup_ data values. */ 1 90 2 current_time fixed bin (71), /* Time of last transaction */ 1 91 2 processid_index fixed bin (18), /* unique index for process id generation */ 1 92 2 session_uid_counter fixed bin (35), /* current session_uid */ 1 93 1 94 /* load_ctl_ elements. */ 1 95 2 shift fixed bin, /* Shift, set by act_ctl_ */ 1 96 2 auto_maxu fixed bin, /* 0 = manual, 1 = config, 2 = load-level */ 1 97 2 extra_units fixed bin, /* Total daemon and abs units. */ 1 98 /* load_ctl_ load leveling desired response range: */ 1 99 2 response_high fixed bin, /* bad if user response time slower than this */ 1 100 2 response_low fixed bin, /* bad if user response time faster than this */ 1 101 2 load_ctl_pad fixed bin, 1 102 1 103 /* Login server request server data. */ 1 104 2 ls_request_server_event_channel fixed bin (71), /* channel for login server requests */ 1 105 2 ls_request_server_process_id bit (36) aligned, /* process serving login server requests */ 1 106 2 login_server_present bit (1) aligned, /* On IFF a login server request has been processed */ 1 107 1 108 2 entry_pad (28) fixed bin, /* pad to 128 words */ 1 109 2 entry (0 refer (anstbl.current_size)), /* user entries */ 1 110 3 contents (UTE_SIZE) fixed bin; 1 111 1 112 /* constants */ 1 113 1 114 /* values for anstbl.session */ 1 115 1 116 dcl (AT_NORMAL init ("normal "), 1 117 AT_SPECIAL init ("special "), 1 118 AT_SHUTDOWN init ("shutdown")) char (8) internal static options (constant); 1 119 1 120 dcl UTE_SIZE fixed bin internal static initial (300); 1 121 1 122 /* END INCLUDE FILE ... answer_table.incl.pl1 */ 552 553 /* BEGIN INCLUDE FILE ... absentee_user_table.incl.pl1 */ 2 2 2 3 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 2 4 /* */ 2 5 /* The absentee user table is the control data base for the absentee */ 2 6 /* facility. It has a header, with scheduling parameters, then one user */ 2 7 /* table entry for each logged-in absentee job. */ 2 8 /* */ 2 9 /* Programs which use this table must also include */ 2 10 /* user_table_header.incl.pl1 and user_table_entry.incl.pl1. */ 2 11 /* */ 2 12 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 2 13 2 14 2 15 /****^ HISTORY COMMENTS: 2 16* 1) change(81-09-10,Kittlitz), approve(), audit(), install(): 2 17* Replace abs_user_tab.incl.pl1. 2 18* 2) change(87-04-26,GDixon), approve(87-07-13,MCR7741), 2 19* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 2 20* Use ut_header common to all user control tables. 2 21* END HISTORY COMMENTS */ 2 22 2 23 2 24 dcl AUTBL_version_4 fixed bin int static options (constant) init (4); 2 25 2 26 dcl autp ptr automatic init (null); 2 27 2 28 dcl 1 autbl based (autp) aligned, /* a per system table to store info on absentee processes */ 2 29 2 header like ut_header, /* Header common to all user tables. */ 2 30 2 31 /* Counter elements */ 2 32 2 n_abs_run fixed bin, /* actual number of absentee processes current */ 2 33 2 max_abs_users fixed bin, /* max number of background absentee processes permitted */ 2 34 2 n_background_abs fixed bin, /* number of absentee processes not from foreground queue */ 2 35 2 n_sec_fg fixed bin, /* number of secondary foreground absentee jobs */ 2 36 2 idle_units fixed bin, /* used in adjusting abs_maxu dynamically */ 2 37 2 abs_units fixed bin, /* part of anstbl.n_units used by background absentees */ 2 38 2 n_abs (4) fixed bin, /* number of processes from each background queue */ 2 39 2 qres (4) fixed bin, /* number of slots reserved for each background queue */ 2 40 2 rsc_waiting (-1:4) fixed bin, /* number of requests waiting for resources, from each queue */ 2 41 2 qerr (-1:4) fixed bin, /* number of consecutive errors for q (dropped if > QERR_MAX) */ 2 42 2 cpu_limit (4) fixed bin (35), /* current per-queue cpu time limits */ 2 43 2 44 /* absentee user manager values. */ 2 45 2 defer_channel fixed bin (71), /* IPC for time-defered queue entries */ 2 46 2 absentee_rq_chn fixed bin (71), /* IPC channel for absentee requests */ 2 47 2 last_queue_searched fixed bin, /* highest queue looked at by scheduler */ 2 48 2 debugging fixed bin, /* take asdumps at strategic places */ 2 49 2 control, /* see also whotab.incl.pl1 */ 2 50 3 mnbz bit (1) unal, /* must not be zero */ 2 51 3 abs_maxu_auto bit (1) unal, /* 1 if abs maxu has not been set by operator command */ 2 52 3 abs_maxq_auto bit (1) unal, /* 1 if abs maxq has not been set by operator command */ 2 53 3 abs_qres_auto bit (1) unal, /* 1 if abs qres has not been set by operator command */ 2 54 3 abs_cpu_limit_auto bit (1) unal, /* 1 if abs cpu_limit has not been set by operator command */ 2 55 3 queue_dropped (-1:4) bit (1) unal, /* 1 if queue has been dropped because of errors */ 2 56 3 abs_up bit (1) unal, /* 1 if absentee facility is running */ 2 57 3 abs_stopped bit (1) unal, /* 1 if abs stop command was issued */ 2 58 /* both 1 if we're waiting for the last jobs to log out */ 2 59 3 aum_ctl bit (1) unal, /* for AUM to tell AU to start a new sequence */ 2 60 3 lc_list bit (1) unal, /* for AU to tell AUM that the lc list is non-empty */ 2 61 /* comments in AU and AUM explain aum_ctl and lc_list */ 2 62 3 control_pad (21) bit (1) unal, /* fill out rest of word */ 2 63 2 aum_pad fixed bin, 2 64 2 65 2 entry_pad (80) fixed bin, /* pad table header to 128 words */ 2 66 2 entry (0 refer (autbl.current_size)) like ute; 2 67 2 68 dcl AUTBL_CONTROL_NAMES (15) char(20) varying int static options(constant) init( 2 69 "mnbz", 2 70 "abs_maxu_auto", 2 71 "abs_maxq_auto", 2 72 "abs_qres_auto", 2 73 "abs_cpu_limit_auto", 2 74 "queue_dropped(-1)", 2 75 "queue_dropped( 0)", 2 76 "queue_dropped( 1)", 2 77 "queue_dropped( 2)", 2 78 "queue_dropped( 3)", 2 79 "queue_dropped( 4)", 2 80 "abs_up", 2 81 "abs_stopped", 2 82 "aum_ctl", 2 83 "lc_list"); 2 84 2 85 /* END INCLUDE FILE ... absentee_user_table.incl.pl1 */ 553 554 /* BEGIN INCLUDE FILE - dm_system_states.incl.pl1 */ 3 2 3 3 /* DESCRIPTION: 3 4* 3 5* This include file contains the structure for getting all the 3 6* information from dm_system_data_ about the caretaker Daemon of a DMS. 3 7* The caller recieveing the info from the inner ring routine must set 3 8* version to prevent its storage from being trashed. 3 9**/ 3 10 3 11 /* HISTORY: 3 12* Written by Lee A. Newcomb, 03/22/84. 3 13* Modified: 3 14**/ 3 15 /* format: style4,indattr,ifthenstmt,ifthen,idind33,^indcomtxt */ 3 16 3 17 dcl dm_daemon_info_ptr ptr; 3 18 dcl DM_DAEMON_INFO_VERSION_1 char (8) init ("DMDMNIF1") options (constant) int static; 3 19 3 20 dcl 1 dm_daemon_info aligned based (dm_daemon_info_ptr), 3 21 2 version char (8), 3 22 2 event_channel fixed bin (71), 3 23 2 process_id bit (36), 3 24 2 wakeup_increment fixed bin, 3 25 2 user_id char (32), 3 26 2 command_ms_name char (32); 3 27 3 28 /* END INCLUDE FILE - dm_daemon_info.incl.pl1 */ 554 555 /* BEGIN INCLUDE FILE ... daemon_user_table.incl.pl1 */ 4 2 4 3 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 4 4 /* */ 4 5 /* The daemon_user_table has one entry per daemon. Daemons are logged in by */ 4 6 /* operator command or automatically. If they do any I/O, it is done via */ 4 7 /* the message coordinator. */ 4 8 /* */ 4 9 /* Programs using this include file must also use user_table_header.incl.pl1 */ 4 10 /* and user_table_entry.incl.pl1. */ 4 11 /* */ 4 12 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 4 13 4 14 4 15 /****^ HISTORY COMMENTS: 4 16* 1) change(81-09-10,Kittlitz), approve(), audit(), install(): 4 17* Initially coded from dutbl.incl.pl1. 4 18* 2) change(87-04-26,GDixon), approve(87-07-13,MCR7741), 4 19* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 4 20* A) Add use of ut_header common to all user control tables. 4 21* B) Corrected padding prior to first ute entry. 4 22* END HISTORY COMMENTS */ 4 23 4 24 4 25 dcl DUTBL_version_4 fixed bin int static init (4); /* version of this declaration */ 4 26 4 27 dcl dutp ptr automatic init (null); 4 28 4 29 dcl 1 dutbl based (dutp) aligned, /* Daemon user table */ 4 30 2 header like ut_header, /* Header common to all user tables. */ 4 31 4 32 2 active_count fixed bin, /* the count of active daemons managed by DUM_ */ 4 33 4 34 2 entry_pad (117) fixed bin, /* pad to 128 words */ 4 35 2 entry (0 refer (dutbl.current_size)) like ute; /* daemon user entries */ 4 36 4 37 /* END INCLUDE FILE ... daemon_user_table.incl.pl1 */ 555 556 /* BEGIN INCLUDE FILE ... dialup_values.incl.pl1 */ 5 2 5 3 /* format: style4 */ 5 4 5 5 /* Values for "cdte.tra_vec" used by dialup_ and others. */ 5 6 5 7 /* Modified by T. Casey April 1976 to add WAIT_NEW_PASSWORD 5 8* - in 1977 and 1978 to add WAIT_(GREETING_MSG DELETE_CHANNEL) 5 9* - and in October 1979 to add WAIT_CONNECT_REQUEST 5 10* Modified by Robert Coren in May 1981 to add TANDD_ATTACH values and 5 11* WAIT_DISCARD_WAKEUP 5 12* Modified by T. Casey, July 1981, for MR9.0, to add WAIT_BEFORE_HANGUP. 5 13* Modified by E. N. Kittlitz, July 1982, to add TTY_MASKED. 5 14**/ 5 15 5 16 /****^ HISTORY COMMENTS: 5 17* 1) change(87-04-20,GDixon), approve(87-07-13,MCR7741), 5 18* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 5 19* Add constant arrays naming cdte.state, cdte.tra_vec and ute.active values. 5 20* 2) change(87-05-11,GDixon), approve(87-07-13,MCR7741), 5 21* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 5 22* Add named constants for instance tags. 5 23* END HISTORY COMMENTS */ 5 24 5 25 dcl (WAIT_DIALUP init (1), /* Channel waiting for dialup. */ 5 26 WAIT_ANSWERBACK initial (2), /* WRU sent, waiting for reply */ 5 27 WAIT_LOGIN_LINE init (3), /* Greeting typed, wait for login command. */ 5 28 WAIT_LOGIN_ARGS init (4), /* Want rest of login line */ 5 29 WAIT_OLD_PASSWORD init (5), /* "-cpw" was specified. Wait for old password. */ 5 30 WAIT_PASSWORD init (6), /* Waiting for password. (If "-cpw", repeat of new one.) */ 5 31 WAIT_NEW_PASSWORD init (7), /* "-cpw" was specified. Wait for new password */ 5 32 WAIT_LOGOUT_SIG init (8), /* Channel is hooked up. Wait for logout. */ 5 33 WAIT_LOGOUT init (9), /* A logout has been requested. Wait for process to die */ 5 34 WAIT_LOGOUT_HOLD init (10), /* As above but don't hang up when it dies. */ 5 35 WAIT_DETACH init (11), /* As above but ignore channel afterwards. */ 5 36 WAIT_NEW_PROC init (12), /* As above but make new process and continue. */ 5 37 WAIT_REMOVE init (13), /* As above but completely expunge channel. */ 5 38 WAIT_FIN_PRIV_ATTACH init (14), /* When channel dials up, connect it to user */ 5 39 WAIT_DIAL_RELEASE init (15), /* Waiting for master process to release. */ 5 40 WAIT_DIAL_OUT init (16), /* Waiting for auto call to complete */ 5 41 WAIT_HANGUP init (17), /* Wait for the hangup event to occur for a channel */ 5 42 WAIT_SLAVE_REQUEST init (18), /* Ignore line until someone asks */ 5 43 WAIT_GREETING_MSG init (19), /* Print greeting message and wait for login line */ 5 44 WAIT_DELETE_CHANNEL init (20), /* Channel deleted - mark cdte after process is destroyed */ 5 45 WAIT_CONNECT_REQUEST init (21), /* logged in; awaiting request re disconnected processes */ 5 46 WAIT_TANDD_HANGUP init (22), /* when channel hangs up, proceed with t & d attachment */ 5 47 WAIT_FIN_TANDD_ATTACH init (23), /* when channel dials up, finish t & d attachment */ 5 48 WAIT_DISCARD_WAKEUPS init (24), /* disregard all wakeups on channel */ 5 49 WAIT_BEFORE_HANGUP init (25), /* allow output to print before hanging up */ 5 50 WAIT_DESTROY_REQUEST init (26), /* waiting to continue with destroy request after process has destroyed itself */ 5 51 WAIT_NEW_PROC_REQUEST init (27) /* waiting to continue with new_proc request after process has destroyed itself */ 5 52 ) fixed bin internal static options (constant); 5 53 5 54 dcl TRA_VEC_VALUES (0:13) char (32) aligned int static options (constant) init 5 55 /* names of ute.destroy_flag values */ 5 56 ("", "wait dialup", "wait answerback", "wait login line", /* 0-3 */ 5 57 "wait login args", "wait old password", "wait password", /* 4-6 */ 5 58 "wait new password", "wait logout signal", "wait logout", /* 7-9 */ 5 59 "wait logout hold", "wait detach", "wait new proc", /* 10-12 */ 5 60 "wait remove"); /* -13 */ 5 61 5 62 /* Values for "cdte.state", typewriter state. */ 5 63 5 64 dcl (TTY_MASKED init (-1), /* Terminal channel is there, but masked by MCS */ 5 65 TTY_HUNG init (1), /* Terminal channel is there, but dead. */ 5 66 TTY_KNOWN init (2), /* Channel being "listened" to, awaiting dialup. */ 5 67 TTY_DIALED init (5) /* Channel is dialed up. This is normal state. */ 5 68 ) fixed bin internal static options (constant); 5 69 5 70 dcl STATE_VALUES (-1:5) char (15) aligned int static options (constant) init 5 71 /* names of cdte.state values */ 5 72 ("masked", "dead", "hung up", "listening", "", "", "dialed up"); 5 73 5 74 /* Values for "cdte.in_use" and "ate.active" */ 5 75 5 76 dcl (NOW_FREE init (0), /* Entry is empty. */ 5 77 NOW_HUNG_UP init (1), /* Entry is usable but tty is hung up. */ 5 78 NOW_LISTENING init (2), /* Entry is waiting for phone call. */ 5 79 NOW_DIALED init (3), /* Entry is connected but login not complete. */ 5 80 NOW_LOGGED_IN init (4), /* Entry is logged in but no process. */ 5 81 NOW_HAS_PROCESS init (5), /* Entry has a valid process. */ 5 82 NOW_DIALING init (6), /* Entry (auto_call line) is dialing */ 5 83 NOW_DIALED_OUT init (7) /* Entry (auto_call line) is in use */ 5 84 ) fixed bin internal static options (constant); 5 85 5 86 dcl ACTIVE_VALUES (0:5) char (18) aligned int static options (constant) init 5 87 /* names of ute.active values */ 5 88 ("free", "hung-up", "listening", "dialed", "logged in, no proc", "logged in & proc"); 5 89 5 90 5 91 /**** Values for ute.tag */ 5 92 5 93 dcl (TAG_INTERACTIVE init("a"), 5 94 TAG_UFT init("f"), 5 95 TAG_ABSENTEE init("m"), 5 96 TAG_PROXY init("p"), 5 97 TAG_DAEMON init("z") 5 98 ) char(1) int static options(constant); 5 99 5 100 5 101 /**** Following are constants used to indicate to the process termination 5 102* handler the reason for the process termination. They are used by 5 103* uc_proc_term_handler_, as well as uc_ls_new_proc_request_ and 5 104* uc_ls_destroy_request_. */ 5 105 5 106 dcl ( 5 107 PT_FPE initial (1), 5 108 PT_LOGOUT initial (4), 5 109 PT_NEW_PROC_AUTH initial (13), 5 110 PT_HANGUP initial (20), 5 111 PT_SHUTDOWN initial (21), 5 112 PT_BUMP initial (22), 5 113 PT_ALARM initial (23), 5 114 PT_DETACH initial (24), 5 115 PT_UNBUMP initial (25), 5 116 PT_OPERATOR_TERMINATE initial (27), 5 117 PT_DESTROY_REQUEST initial (30), 5 118 PT_NEW_PROC_REQUEST initial (31) 5 119 ) fixed bin (17) internal static options (constant); 5 120 5 121 /**** Values for ute.preempted: 5 122* -1 user unbumped after term signal sent 5 123* 0 user unbumped; ignore alarm___ 5 124* 1 value internally used in load_ctl_ 5 125* 2 user bumped; when alarm___ comes in, send term signal 5 126* 3 term signal sent; destroy process if termsgnl, alarm___, or cpulimit 5 127* signals come in 5 128* 4 user bumped; process sick, so destroy without sending term signal 5 129* 5 trm_ signal sent, termsgnl received; (if still 3, we never got the 5 130* termsgnl). */ 5 131 5 132 dcl ( 5 133 PREEMPT_UNBUMP initial (-1), 5 134 PREEMPT_UNBUMP_IGNORE_ALARM initial (0), 5 135 PREEMPT_LOAD_CTL initial (1), 5 136 PREEMPT_BUMPED initial (2), 5 137 PREEMPT_TERM_SENT initial (3), 5 138 PREEMPT_BUMPED_NO_TERM initial (4), 5 139 PREEMPT_TERMSGNL_RECEIVED initial (5) 5 140 ) fixed bin (17) internal static options(constant); 5 141 5 142 dcl PREEMPT_VALUES (-1:5) char(28) varying int static options(constant) init( 5 143 "unbumped", 5 144 "not bumped, ignore alarm___", 5 145 "load_ctl_", 5 146 "bumped", 5 147 "bumped, trm_ sent", 5 148 "bumped without trm_", 5 149 "bumped, termsgnl received"); 5 150 5 151 /* END INCLUDE FILE ... dialup_values.incl.pl1 */ 556 557 /* BEGIN INCLUDE FILE dm_log_sv_codes.incl.pl1 */ 6 2 6 3 /* format: ^indcom */ 6 4 6 5 /* DESCRIPTION: 6 6* These are the severity codes used by the dms daemon when calling its logger. 6 7* The severity is ranked thusly: 6 8* 6 9* severity log write situation 6 10* -------- --- ----- --------- 6 11* 0 no yes standard output, query, etc. 6 12* 1 yes yes fatal error, terminate dms daemon. 6 13* 2 yes yes nonfatal error. 6 14* 3 yes yes informative message. 6 15* 4 yes no log information only. 6 16**/ 6 17 6 18 /* HISTORY: 6 19* 6 20*Written by M. Pandolf, 10/06/82. 6 21*Modified: 6 22*12/10/84 by R. Michael Tague: Rename and reformat description/history. 6 23*01/13/85 by Lee A. Newcomb: Renamed to dm_log_sv_codes from 6 24* dm_daemon_sv_codes as the severity codes for the DM log are not 6 25* restrained to the DM Daemon's use. 6 26*01/24/85 by Lee A. Newcomb: Fixed to say dm_log_sv_codes.incl.pl1 in the 6 27* BEGIN and END INCLUDE comments, instead of dm_daemon_sv_codes.==. 6 28**/ 6 29 6 30 /* format: style5 */ 6 31 6 32 dcl (PRINT_SV, QUERY_SV) fixed bin internal static 6 33 options (constant) init (0); 6 34 dcl (CRASH_SV, FATAL_SV) fixed bin internal static 6 35 options (constant) init (1); 6 36 dcl ERROR_SV fixed bin internal static 6 37 options (constant) init (2); 6 38 dcl INFORM_SV fixed bin internal static 6 39 options (constant) init (3); 6 40 dcl LOG_SV fixed bin internal static 6 41 options (constant) init (4); 6 42 6 43 /* END INCLUDE FILE dm_log_sv_codes.incl.pl1 */ 557 558 /* BEGIN INCLUDE FILE dm_request_message.incl.pl1 */ 7 2 7 3 /* DESCRIPTION 7 4* This include file describes the format of messages sent to the 7 5* data management daemon process. All messages begin with a common 7 6* header, and contain information specific to the request within 7 7* the message. 7 8**/ 7 9 7 10 /* HISTORY 7 11*Written by M. Pandolf, 10/28/82. 7 12*Modified: 7 13*11/04/82 by M. Pandolf: to add dm_adjust_bjt_message. 7 14*01/25/83 by M. Pandolf: to add dm_adjust_tdt_entry_message and to replace 7 15* dm_bury message with dm_adjust_process_id. 7 16*03/11/83 by to M. Pandolf: to add list_ref_names and terminate. 7 17*11/28/84 by R. Michael Tague: added dm_adjust_process_id_word_1 and 7 18* dm_alarm_message. 7 19*01/22/85 by R. Michael Tague: added dm_kill_txn and changed the entry 7 20* new_process_notifications to new_process_notifies. 7 21**/ 7 22 7 23 /* format: style5,^indcomtxt */ 7 24 dcl dm_request_message_ptr pointer; 7 25 7 26 dcl 1 dm_request_message aligned based (dm_request_message_ptr), 7 27 ( 2 action_type fixed bin (17), 7 28 2 action_specific_data 7 29 bit (54) 7 30 ) unaligned; 7 31 7 32 dcl 1 dm_terminate_segno_message 7 33 aligned based (dm_request_message_ptr), 7 34 ( 2 action_type fixed bin (17), 7 35 2 segment_number bit (18), 7 36 2 pad fixed bin (35) 7 37 ) unaligned; 7 38 7 39 dcl 1 dm_adjust_txn_message aligned based (dm_request_message_ptr), 7 40 ( 2 action_type fixed bin (17), 7 41 2 transaction_index fixed bin (17), 7 42 2 transaction_id bit (36) 7 43 ) unaligned; 7 44 7 45 dcl 1 dm_adjust_tdt_entry_message 7 46 aligned based (dm_request_message_ptr), 7 47 ( 2 action_type fixed bin (17), 7 48 2 transaction_index fixed bin (17), 7 49 2 transaction_id bit (36) 7 50 ) unaligned; 7 51 7 52 dcl 1 dm_adjust_process_id_message 7 53 aligned based (dm_request_message_ptr), 7 54 ( 2 action_type fixed bin (17), 7 55 2 pad fixed bin (17), 7 56 2 process_id bit (36) 7 57 ) unaligned; 7 58 7 59 dcl 1 dm_adjust_process_id_word_1 7 60 aligned based (dm_request_message_ptr), 7 61 2 action_type fixed bin (17) unaligned, 7 62 2 pad fixed bin (17) unaligned; 7 63 7 64 dcl 1 dm_kill_txn aligned based (dm_request_message_ptr), 7 65 2 action_type fixed bin (17) unaligned, 7 66 2 pad fixed bin (17) unaligned, 7 67 2 transaction_id bit (36) unaligned; 7 68 7 69 dcl dm_alarm_message char (8) aligned based (dm_request_message_ptr); 7 70 7 71 /* END INCLUDE FILE dm_request_message.incl.pl1 */ 558 559 /* BEGIN INCLUDE FILE - dm_system_states.incl.pl1 */ 8 2 8 3 /* DESCRIPTION: 8 4* 8 5* This include file gives all defined values that 8 6* dm_system_data_$current_dm_state may have. 8 7**/ 8 8 8 9 /* HISTORY: 8 10*Written by Lee A. Newcomb, CISL, 11/04/82 8 11*Modified: 8 12*03/02/84 by Lee A. Newcomb: added DM_SYSTEM_STATE_SHUTDOWN_WARNING and 8 13* DM_SYSTEM_STATE_USER_SHUTDOWN; also renamed from dm_statuses to 8 14* dm_system_states.incl.pl1. 8 15*04/06/84 by Lindsey Spratt: Added DM_SYSTEM_STATE_SYSTEM_SHUTDOWN. 8 16*09/05/84 by Lee A. Newcomb: renamed DM_SYSTEM_STATE_SHUTDOWN_WARNING do 8 17* ...SHUTDOWN_BEGUN and ...SYSTEM_SHUTDOWN to 8 18* ...SHUTDOWN_BUMP_USERS; deleted ...USER_SHUTDOWN. 8 19**/ 8 20 /* format: style2,^inddcls,linecom,ifthendo,ifthen,^indnoniterdo,dclind5,idind35 */ 8 21 8 22 dcl ( /* valid statuses of data management */ 8 23 /* ordered to expected sequence of use */ 8 24 DM_SYSTEM_STATE_UNDEFINED init ("undf"), /* found in a template dm_system_data_ */ 8 25 DM_SYSTEM_STATE_INITIALIZING init ("init"), 8 26 DM_SYSTEM_STATE_RECOVERING init ("rcov"), 8 27 DM_SYSTEM_STATE_RUNNING init ("run "), 8 28 DM_SYSTEM_STATE_SHUTDOWN_BEGUN init ("sbgn"), 8 29 DM_SYSTEM_STATE_SHUTDOWN_BUMP_USERS 8 30 init ("sbmp"), 8 31 DM_SYSTEM_STATE_NORMAL_SHUTDOWN init ("shut") 8 32 ) char (4) aligned int static options (constant); 8 33 8 34 /* END INCLUDE FILE - dm_system_states.incl.pl1 */ 559 560 /* BEGIN INCLUDE FILE event_call_info.incl.pl1 */ 9 2 9 3 /* T. Casey, May 1978 */ 9 4 9 5 dcl event_call_info_ptr ptr; 9 6 9 7 dcl 1 event_call_info aligned based (event_call_info_ptr), /* argument structure passed to event call procedure */ 9 8 2 channel_id fixed bin (71), /* event channel on which wakeup occurred */ 9 9 2 message fixed bin (71), /* 72 bits of information passed by sender of wakeup */ 9 10 2 sender bit (36), /* process id of sender */ 9 11 2 origin, 9 12 3 dev_signal bit (18) unaligned, /* "1"b if device signal */ 9 13 3 ring fixed bin (17) unaligned, /* ring from which sent */ 9 14 2 data_ptr ptr; /* ptr given to dcl_event_call_channel */ 9 15 9 16 /* END INCLUDE FILE event_call_info.incl.pl1 */ 560 561 /* BEGIN INCLUDE FILE ... user_attributes.incl.pl1 TAC 10/79 */ 10 2 10 3 10 4 /****^ HISTORY COMMENTS: 10 5* 1) change(86-12-11,Brunelle), approve(87-07-13,MCR7741), 10 6* audit(87-04-19,GDixon), install(87-08-04,MR12.1-1056): 10 7* Add incl for abs_attributes.incl.pl1 to automatically include absentee 10 8* attribute switches. 10 9* 2) change(87-04-19,GDixon), approve(87-07-13,MCR7741), 10 10* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 10 11* A) Add USER_ATTRIBUTE_NAMES arrays. attribute_names.incl.pl1 can thereby 10 12* be deleted. 10 13* B) Add constants identifying attributes that can be changed by user at 10 14* login, etc. 10 15* END HISTORY COMMENTS */ 10 16 10 17 10 18 /* Modified 82-01-03 E. N. Kittlitz. to declare a complete level-1 structure */ 10 19 10 20 /* format: style4 */ 10 21 dcl 1 user_attributes aligned based, /* the user user_attributes */ 10 22 (2 administrator bit (1), /* 1 system administrator privileges */ 10 23 2 primary_line bit (1), /* 2 user has primary-line privileges */ 10 24 2 nobump bit (1), /* 2 user cannot be bumped */ 10 25 2 guaranteed_login bit (1), /* 4 user has guaranteed login privileges */ 10 26 2 anonymous bit (1), /* 5 used only in SAT. project may have anon.users */ 10 27 2 nopreempt bit (1), /* 6 used only in PDT. user not preemptable by others 10 28* . of same project (distinct from "nobump") */ 10 29 2 nolist bit (1), /* 7 don't list user on "who" */ 10 30 2 dialok bit (1), /* 8 user may have multiple consoles */ 10 31 2 multip bit (1), /* 9 user may have several processes */ 10 32 2 bumping bit (1), /* 10 in SAT. Can users in project bump each other? */ 10 33 2 brief bit (1), /* 11 no login or logout message */ 10 34 2 vinitproc bit (1), /* 12 user may change initial procedure */ 10 35 2 vhomedir bit (1), /* 13 user may change homedir */ 10 36 2 nostartup bit (1), /* 14 user does not want start_up.ec */ 10 37 2 sb_ok bit (1), /* 15 user may be standby */ 10 38 2 pm_ok bit (1), /* 16 user may be primary */ 10 39 2 eo_ok bit (1), /* 17 user may be edit_only */ 10 40 2 daemon bit (1), /* 18 user may login as daemon */ 10 41 2 vdim bit (1), /* 19 * OBSOLETE * user may change outer mdle */ 10 42 2 no_warning bit (1), /* 20 no warning message */ 10 43 2 igroup bit (1), /* 21 in SAT: this project may give its users individual groups 10 44* . in PDT: this user has an individual load control group */ 10 45 2 save_pdir bit (1), /* 22 save pdir after fatal process error */ 10 46 2 disconnect_ok bit (1), /* 23 ok to save user's disconnected processes */ 10 47 2 save_on_disconnect bit (1), /* 24 save them unless -nosave login arg is given */ 10 48 2 pad bit (12)) unaligned; 10 49 10 50 dcl USER_ATTRIBUTE_NAMES (0:24) char (20) int static options (constant) init 10 51 ("none", /* 0 */ 10 52 "administrator", /* 1 */ 10 53 "primary_line", /* 2 */ 10 54 "nobump", /* 3 */ 10 55 "guaranteed_login", /* 4 */ 10 56 "anonymous", /* 5 */ 10 57 "nopreempt", /* 6 */ 10 58 "nolist", /* 7 */ 10 59 "dialok", /* 8 */ 10 60 "multip", /* 9 */ 10 61 "bumping", /* 10 */ 10 62 "brief", /* 11 */ 10 63 "vinitproc", /* 12 */ 10 64 "vhomedir", /* 13 */ 10 65 "nostartup", /* 14 */ 10 66 "no_secondary", /* 15 */ 10 67 "no_prime", /* 16 */ 10 68 "no_eo", /* 17 */ 10 69 "daemon", /* 18 */ 10 70 "", /* 19 vdim OBSOLETE */ 10 71 "no_warning", /* 20 */ 10 72 "igroup", /* 21 */ 10 73 "save_pdir", /* 22 */ 10 74 "disconnect_ok", /* 23 */ 10 75 "save_on_disconnect"); /* 24 */ 10 76 10 77 dcl ALT_USER_ATTRIBUTE_NAMES (0:24) char (20) int static options (constant) init 10 78 ("null", /* 0 */ 10 79 "admin", /* 1 */ 10 80 "", "", /* 2 - 3 */ 10 81 "guar", /* 4 */ 10 82 "anon", /* 5 */ 10 83 "", "", /* 6 - 7 */ 10 84 "dial", /* 8 */ 10 85 "multi_login", /* 9 */ 10 86 "preempting", /* 10 */ 10 87 "", /* 11 */ 10 88 "v_process_overseer", /* 12 */ 10 89 "v_home_dir", /* 13 */ 10 90 "no_start_up", /* 14 */ 10 91 "no_sec", /* 15 */ 10 92 "no_primary", /* 16 */ 10 93 "no_edit_only", /* 17 */ 10 94 "op_login", /* 18 */ 10 95 "", /* 19 */ 10 96 "nowarn", /* 20 */ 10 97 "", "", "", /* 21 - 23 */ 10 98 "save"); /* 24 */ 10 99 10 100 dcl USER_ATTRIBUTES_always_allowed bit (36) aligned int static 10 101 options(constant) init("000000000010000000010000000000000000"b); 10 102 /* SAT/PDT attributes not needed for user to give (brief, no_warning) */ 10 103 10 104 dcl USER_ATTRIBUTES_default_in_pdt bit (36) aligned int static 10 105 options(constant) init("000000000010000000010000000000000000"b); 10 106 /* PDT value for (brief, no_warning) is default */ 10 107 10 108 dcl USER_ATTRIBUTES_settable_by_user bit (36) aligned int static 10 109 options(constant) init("000100000110010000010000000000000000"b); 10 110 /* user MIGHT set (bump, ns, brief, guar, no_warning) */ 10 111 11 1 /* BEGIN INCLUDE FILE ... user_abs_attributes.incl.pl1 */ 11 2 11 3 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 11 4 /* */ 11 5 /* This include file describes the attributes of an absentee job. It is */ 11 6 /* used by user_table_entry.incl.pl1, abs_message_format.incl.pl1 */ 11 7 /* and PIT.incl.pl1. */ 11 8 /* */ 11 9 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 11 10 11 11 /****^ HISTORY COMMENTS: 11 12* 1) change(86-12-08,GDixon), approve(87-07-13,MCR7741), 11 13* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 11 14* Separated abs_attributes from the request structure 11 15* (abs_message_format.incl.pl1) so that the identical structure could be 11 16* used in the ute structure (user_table_entry.incl.pl1). 11 17* 2) change(87-04-19,GDixon), approve(87-07-13,MCR7741), 11 18* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 11 19* Added ABS_ATTRIBUTE_NAMES array. 11 20* 3) change(87-11-11,Parisek), approve(88-02-11,MCR7849), 11 21* audit(88-03-22,Lippard), install(88-07-13,MR12.2-1047): 11 22* Added the no_start_up flag. SCP6367 11 23* END HISTORY COMMENTS */ 11 24 11 25 dcl 1 user_abs_attributes aligned based, 11 26 2 restartable bit (1) unaligned, /* 1 if request may be started over from the beginning */ 11 27 2 user_deferred_until_time bit (1) unaligned, /* 1 if request was specified as deferred */ 11 28 2 proxy bit (1) unaligned, /* 1 if request submitted for someone else */ 11 29 2 set_bit_cnt bit (1) unaligned, /* 1 if should set bit count after every write call */ 11 30 2 time_in_gmt bit (1) unaligned, /* 1 if deferred_time is in GMT */ 11 31 2 user_deferred_indefinitely bit (1) unaligned, /* 1 if operator is to say when to run it */ 11 32 2 secondary_ok bit (1) unaligned, /* 1 if ok to log in as secondary foreground user */ 11 33 2 truncate_absout bit (1) unaligned, /* 1 if .absout is to be truncated */ 11 34 2 restarted bit (1) unaligned, /* 1 if job is restarted */ 11 35 2 no_start_up bit (1) unaligned, /* 1 if requested -ns */ 11 36 2 attributes_pad bit (26) unaligned; 11 37 11 38 dcl ABS_ATTRIBUTE_NAMES (10) char (28) varying int static options(constant) init( 11 39 "restartable", 11 40 "user_deferred_until_time", 11 41 "proxy", 11 42 "set_bit_cnt", 11 43 "time_in_gmt", 11 44 "user_deferred_indefinitely", 11 45 "secondary_ok", 11 46 "truncate_absout", 11 47 "restarted", 11 48 "no_start_up"); 11 49 11 50 /* END INCLUDE FILE ... user_abs_attributes.incl.pl1 */ 11 51 10 112 10 113 10 114 /* END INCLUDE FILE ... user_attributes.incl.pl1 */ 561 562 /* BEGIN INCLUDE FILE ... user_table_entry.incl.pl1 */ 12 2 12 3 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 12 4 /* */ 12 5 /* This include file requires that the user include */ 12 6 /* user_attributes.incl.pl1 as well. It also includes */ 12 7 /* abs_attributes.incl.pl1 itself. */ 12 8 /* */ 12 9 /* This include file must be included to use absentee_user_table.incl.pl1, */ 12 10 /* answer_table.incl.pl1, and daemon_user_table.incl.pl1. */ 12 11 /* */ 12 12 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 12 13 12 14 /****^ HISTORY COMMENTS: 12 15* 1) change(81-12-21,Gilcrease), approve(86-03-27,MCR7370), 12 16* audit(86-06-23,Lippard), install(86-06-30,MR12.0-1082): 12 17* This comment for hcom. 12 18* 81-12-21 E. N. Kittlitz. derived from abs_user_tab.incl.pl1, 12 19* anstbl.incl.pl1, and dutbl.incl.pl1. 12 20* 82-01-02 E. N. Kittlitz. user_attributes.incl.pl1 changes 12 21* 84-04-04 BIM added privileged_dial_server and dial_server_ring 12 22* 84-07-12 BIM added min_process_authorization 12 23* 84-12-31 Keith Loepere added pdir_dir_quota 12 24* 85-01-16 by E. Swenson to add ute.session_uid 12 25* 2) change(85-11-16,Swenson), approve(87-07-13,MCR7737), 12 26* audit(87-04-14,GDixon), install(87-08-04,MR12.1-1056): 12 27* Added fields for DSA login server support. 12 28* 3) change(86-03-27,Gilcrease), approve(86-03-27,MCR7370), 12 29* audit(86-06-23,Lippard), install(86-06-30,MR12.0-1082): 12 30* Add truncate_absout and restarted bit for -truncate absout, SCP6297. 12 31* 4) change(86-04-09,Herbst), approve(87-07-13,MCR7697), 12 32* audit(87-04-14,GDixon), install(87-08-04,MR12.1-1056): 12 33* Added disconnection_rel_minutes. 12 34* 5) change(86-12-08,GDixon), approve(87-07-13,MCR7741), 12 35* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 12 36* Changed structure under ute.abs_attributes to use like structure in 12 37* abs_attributes.incl.pl1. This allows the same attributes to be used 12 38* in abs_message_format.incl.pl1 and pit.incl.pl1 as well as this include 12 39* file. 12 40* 6) change(87-04-14,GDixon), approve(87-07-13,MCR7741), 12 41* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 12 42* Move constants for ute.pw_flags.mask_ctl from answer_table.incl.pl1. 12 43* 7) change(87-04-16,GDixon), approve(87-07-13,MCR7741), 12 44* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 12 45* A) Global reorganization to locate things by type of data. 12 46* B) Eliminate ute.uflags.logged_in. 12 47* 8) change(87-05-10,GDixon), approve(87-07-13,MCR7741), 12 48* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 12 49* A) Reduced overlength person and project fields to proper length. 12 50* B) Adjusted dialed-console section to begin on even word boundary. 12 51* 9) change(87-05-13,GDixon), approve(87-07-13,MCR7741), 12 52* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 12 53* Add ute.line_type. 12 54* 10) change(87-11-19,Parisek), approve(88-02-11,MCR7849), 12 55* audit(88-02-23,Lippard), install(88-07-13,MR12.2-1047): 12 56* Added the lowest_ring element. Used the upper half of ute.highest_ring 12 57* for the storage. SCP6367 12 58* END HISTORY COMMENTS */ 12 59 12 60 /* format: style4 */ 12 61 12 62 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 12 63 /* */ 12 64 /* Each of the named sections below defines a type of data. Typing comes */ 12 65 /* from data associated with the ute entry itself, with the person, with */ 12 66 /* login argument data, from the main user of the data (eg, dialup_, */ 12 67 /* load_ctl_, login server). Each section begins on a double-word boundary */ 12 68 /* and is an even number of words long. The total structure is 300 decimal */ 12 69 /* words long. */ 12 70 /* */ 12 71 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 12 72 12 73 12 74 dcl UTE_version_4 fixed bin internal static options (constant) init (4); 12 75 12 76 dcl utep pointer automatic init (null); 12 77 12 78 dcl 1 ute based (utep) aligned, /* individual entry in one of the user control tables */ 12 79 12 80 /* Variables which give state of this entry */ 12 81 2 active fixed bin, /* state of entry. 0=>free. see dialup_values.incl.pl1 */ 12 82 2 process_type fixed bin, /* 1=interactive, 2=absentee, 3=daemon */ 12 83 2 ute_index fixed bin, /* index of ute in (anstbl autbl dutbl).entry array */ 12 84 2 next_free fixed bin, /* points to previous free entry */ 12 85 12 86 /* Information user gave about person_id associated with this entry. */ 12 87 2 person char (24) unal, /* user's name */ 12 88 2 project char (12) unal, /* project of absentee user */ 12 89 2 tag char (1) unal, /* instance tag - someday will be generated */ 12 90 2 tag_pad bit (27) unal, 12 91 2 anonymous fixed bin, /* 1 if anonymous, otherwise 0 */ 12 92 2 login_flags, /* flags for login data */ 12 93 3 cpw bit (1) unal, /* flag for wish to change password */ 12 94 3 generate_pw bit (1) unal, /* flag meaning -generate_pw (-gpw) was used. */ 12 95 3 special_pw unal, /* dial or slave */ 12 96 4 dial_pw bit (1) unal, /* true if dial -user */ 12 97 4 slave_pw bit (1) unal, /* true if slave -user */ 12 98 3 cdp bit (1) unal, /* flag for wish to change default project */ 12 99 3 cda bit (1) unal, /* flag to change default authorization */ 12 100 3 auth_given bit (1) unal, /* flag to mean -authorization was used. */ 12 101 3 noprint bit (1) unal, /* used at logout. inhibits printing. */ 12 102 3 operator bit (1) unaligned, /* user specified -operator on login command line */ 12 103 3 pw_pad bit (25) unal, /* spare parts */ 12 104 3 mask_ctl bit (2) unal, /* bits controlling pw mask. See constants, below */ 12 105 /* Must remain last in pw_flags so it does not */ 12 106 /* appear in PW_FLAG_VALUES array below. */ 12 107 2 generated_pw char (8) unal, /* user must type this as new password */ 12 108 2 old_password char (8) unal, /* must match user's previous password (value scrambled) */ 12 109 2 process_authorization bit (72), /* access_authorization of this process */ 12 110 12 111 /* Information user gave about process associated with this entry. */ 12 112 2 outer_module char (32) unal, /* Name of console dim */ 12 113 2 home_dir char (64) unal, /* initial home directory */ 12 114 2 init_proc char (64) unal, /* name of login responder */ 12 115 2 ip_len fixed bin (17) unal, /* length of initproc string */ 12 116 2 ss_len fixed bin (17) unal, /* length of subsystem string */ 12 117 2 ur_at like user_attributes aligned, /* bits on means attributes given by user */ 12 118 2 at like user_attributes aligned, /* bits on means attribute is on */ 12 119 2 initial_ring fixed bin, /* ring process will be started in */ 12 120 2 arg_count fixed bin, /* number of arguments to absentee control segment */ 12 121 2 ln_args fixed bin, /* length of string containing arguments */ 12 122 2 arg_lengths_ptr ptr, /* pointer to array of argument lengths */ 12 123 2 args_ptr ptr, /* pointer to arguments to absentee control segment */ 12 124 12 125 /* Most of the following information is relevant only to absentee processes */ 12 126 2 input_seg char (168) unal, /* pathname of absentee control segment */ 12 127 2 output_seg char (168) unal, /* pathname of absentee output file */ 12 128 2 request_id fixed bin (71), /* time request was entered - used as uid of request */ 12 129 2 reservation_id fixed bin (71), /* nonzero if job has a resource reservation */ 12 130 2 message_id bit (72), /* message segment id assoc with absentee request */ 12 131 2 deferred_time fixed bin (71), /* time at which absentee process should be created */ 12 132 2 max_cpu_time fixed bin (35), /* maximum number of seconds this process can run */ 12 133 2 queue fixed bin, /* -1=daemon;0=interactive or foreground;>0=queue no. 12 134* (but see uflags.adjust_abs_q_no). */ 12 135 2 real_queue fixed bin, /* real queue number; ute.queue gets fudged sometimes */ 12 136 2 abs_attributes aligned like user_abs_attributes, /* include abs_attributes.incl.pl1 */ 12 137 2 abs_flags, 12 138 3 abs_run bit (1) unal, /* on if job was started by abs run command */ 12 139 3 notify bit (1) unal, /* on if user wants notification at login and logout */ 12 140 3 abs_flags_pad bit (34) unal, 12 141 2 abs_group char (8) unal, /* original group before load_ctl_ moves it to absentee group */ 12 142 2 sender char (32) unal, /* name of RJE station that job is from */ 12 143 2 proxy_person char (28) unal, /* name of user who actually entered the request, if proxy */ 12 144 2 proxy_project char (9) unal, 12 145 2 proxy_project_pad char (3) unal, 12 146 2 abs_pad fixed bin, 12 147 12 148 /* Information about process actually created */ 12 149 2 proc_id bit (36), /* process id of absentee process */ 12 150 2 session_uid fixed bin (35), /* Unique authentication session id */ 12 151 2 process_authorization_range (2) bit (72) aligned, 12 152 2 audit bit (36), /* audit flags for user */ 12 153 2 lot_size fixed bin, /* Size of linkage offset table */ 12 154 2 kst_size fixed bin, /* Size of process known segment table */ 12 155 2 cls_size fixed bin, /* Size of process combined linkage */ 12 156 2 sus_channel fixed bin (71), /* event channel on which suspended process is blocked */ 12 157 2 lowest_ring fixed bin (17) unal, /* lowest ring permitted */ 12 158 2 highest_ring fixed bin (17) unal, /* highest ring permitted */ 12 159 2 pdir_lvix fixed bin (17) unal, /* index in disk table of lv where pdir is */ 12 160 2 pdir_quota fixed bin (17) unal, /* process directory quota */ 12 161 2 pdir_dir_quota fixed bin (17) unal, /* process directory quota for dirs */ 12 162 2 pdir_pad fixed bin(17) unal, 12 163 2 process_pad fixed bin, 12 164 12 165 /* Information about primary terminal associated with this entry */ 12 166 2 tty_name char (32) unal, /* absentee=>"abs1", etc. daemon=>"bk", etc. */ 12 167 2 terminal_type char (32) unaligned, /* terminal type */ 12 168 2 line_type fixed bin, /* line type */ 12 169 2 tty_id_code char (4) unal, /* "none" for absentee */ 12 170 2 network_connection_type fixed bin, /* see net_event_message.incl.pl1 */ 12 171 2 channel ptr unal, /* points to CDT entry for user, if any */ 12 172 12 173 /* Variables useful for dialed terminals */ 12 174 2 ndialed_consoles fixed bin, /* if master, number of slaves */ 12 175 2 dial_qualifier char (22) unal, /* first argument to dial command */ 12 176 2 dial_server_ring fixed bin (3) unsigned unaligned, /* dial server intends to attach dialing in channels at this ring. */ 12 177 2 dial_server_flags, 12 178 3 registered_dial_server bit (1) unal, /* process is a registered dial server */ 12 179 3 privileged_dial_server bit (1) unal, /* "1"b -> serves range of AIM classes */ 12 180 3 dial_server_flags_pad bit (13) unal, /* fill out the word */ 12 181 2 dial_ev_chn fixed bin (71), /* if master, control event channel */ 12 182 12 183 /* Information about usage/accounting. Device usage meters are in a 12 184* separate segment, "devtab" */ 12 185 2 pdtep ptr, /* ptr to user's pdt entry, where usage meters live */ 12 186 2 cpu_this_process fixed bin (71), /* cpu used so far this process */ 12 187 2 cpu_usage fixed bin (71), /* total cpu time used in this session */ 12 188 2 mem_usage fixed bin (71), /* memory usage for previous processes in session */ 12 189 2 mem_this_process fixed bin (71), /* memory usage at last update */ 12 190 2 last_update_time fixed bin (71), /* time of last account update */ 12 191 2 session_cost float bin, /* dollar cost of session, for printing in logout messages */ 12 192 2 ndevices fixed bin, /* Count of attached devices */ 12 193 2 device_head fixed bin, /* Table index of head of device chain */ 12 194 2 device_tail fixed bin, /* Table index of tail of device chain */ 12 195 2 rs_number fixed bin (6) unsigned unal, /* rate structure number */ 12 196 2 rs_number_pad bit(30) unal, 12 197 2 usage_pad fixed bin, 12 198 12 199 /* Information for dialup_ (control variables). */ 12 200 2 event fixed bin (71), /* event associated with channel or user manager */ 12 201 2 uprojp ptr, /* ptr to user project sat entry */ 12 202 2 login_time fixed bin (71), /* time when absentee user approved by lg_ctl_ */ 12 203 2 cant_bump_until fixed bin (71), /* bump-protection clock */ 12 204 2 recent_fatal_error_time fixed bin (71), /* time of first error in the suspected loop */ 12 205 2 recent_fatal_error_count fixed bin, /* counter to detect fatal process error loops */ 12 206 2 failure_reason fixed bin, /* why login refused 1=lg_ctl, 2=act_ctl, 3=load_ctl */ 12 207 2 count fixed bin, /* counter for logins and dialups */ 12 208 2 n_processes fixed bin, /* number of processes created in this session */ 12 209 2 lock_value fixed bin, /* number of locks set for this entry */ 12 210 2 login_result fixed bin, /* 0=logged in;1=hopeless,hang him up;2=allow another attempt */ 12 211 2 login_code char (8) unal, /* login command from LOGIN line */ 12 212 2 preempted fixed bin, /* if ^= 0 user preempted (never for abs) */ 12 213 2 destroy_flag fixed bin, /* >8 when awaiting destroy */ 12 214 2 logout_type char (4) unal, /* type of logout */ 12 215 2 logout_index fixed bin, /* to save logout handler index while waiting for termsgnl */ 12 216 2 disconnection_rel_minutes fixed bin (17) unal, /* disconnected this many minutes after login_time */ 12 217 2 next_disconnected_ate_index fixed bin (17) unal, /* thread of list of user's disconnected processes */ 12 218 2 work_class fixed bin, /* work class used by priority scheduler */ 12 219 2 group char (8) unal, /* party group identifier */ 12 220 2 whotabx fixed bin, /* index of user's entry in whotab */ 12 221 12 222 2 uflags, /* Miscellaneous flags */ 12 223 3 dont_call_init_admin bit (1) unal, /* Call overseer directly */ 12 224 3 ip_given bit (1) unal, /* user gave an initproc arg on login line */ 12 225 3 ss_given bit (1) unal, /* initial_procedure contains a subsystem name */ 12 226 3 lvs_attached bit (1) unal, /* set and used by the lv_request_ procedure */ 12 227 3 send_initial_string bit (1) unal, /* initial string should be sent after login line read */ 12 228 3 adjust_abs_q_no bit (1) unal, /* this is an absentee job; user_profile.queue is NOT true Q # */ 12 229 3 foreground_secondary_ok bit (1) unal, /* ok to login foreground absentee job as secondary */ 12 230 3 foreground_job bit (1) unal, /* job was originally from foreground queue */ 12 231 3 sus_sent bit (1) unal, /* sus_ ips signal has been sent to process */ 12 232 3 suspended bit (1) unal, /* process has responded to sus_ signal */ 12 233 3 ignore_cpulimit bit (1) unal, /* process is released, but timer can't be turned off */ 12 234 3 deferral_logged bit (1) unal, /* abs job deferral has already been logged once */ 12 235 3 save_if_disconnected bit (1) unal, /* user wants process preserved across hangups */ 12 236 3 disconnected bit (1) unal, /* process is disconnected from terminal */ 12 237 3 disconnected_list bit (1) unal, /* this ate is on a list of disconnected processes */ 12 238 3 proc_create_ok bit (1) unal, /* lg_ctl_ has set the process creation variables */ 12 239 3 activity_can_unbump bit (1) unal, /* only bump pending is for inactivity */ 12 240 3 fpe_causes_logout bit (1) unal, /* "1"b means don't try to new_proc after fatal process error */ 12 241 3 user_specified_immediate bit (1) unal, /* "1"b -> don't wait around for process destruction. */ 12 242 3 uflags_pad bit (17) unal, 12 243 12 244 /* Information used by load_ctl_ for the process */ 12 245 2 user_weight fixed bin, /* usually 10 - used in load control */ 12 246 2 standby_line fixed bin, /* 0=user has primary line, 1=standby user */ 12 247 2 bump_grace fixed bin (71), /* bump grace in microseconds */ 12 248 12 249 12 250 /* Information for login server */ 12 251 2 login_server_info, 12 252 3 our_handle bit (72) aligned, /* how LS refers to us. */ 12 253 3 his_handle bit (72) aligned, /* how we talk to LS */ 12 254 3 termination_event_channel fixed bin (71), /* for process termination notifications to the LS */ 12 255 3 response_event_channel fixed bin (71), /* for other communications with the LS */ 12 256 3 process_id bit (36) aligned, /* process_id of login server */ 12 257 2 ls_pad (5) fixed bin; /* pad to 300 decimal words */ 12 258 12 259 /* values for ute.process_type */ 12 260 12 261 dcl (PT_INTERACTIVE initial (1), 12 262 PT_ABSENTEE initial (2), 12 263 PT_DAEMON initial (3)) fixed bin internal static options (constant); 12 264 12 265 dcl PROCESS_TYPE_NAMES (0:3) char(12) varying int static options(constant) init( 12 266 "INVALID-TYPE", 12 267 "interactive", 12 268 "absentee", 12 269 "daemon"); 12 270 12 271 dcl TABLE_NAMES (0:3) char(20) int static options(constant) init( 12 272 "UNKNOWN-TABLE", 12 273 "answer_table", 12 274 "absentee_user_table", 12 275 "daemon_user_table"); 12 276 12 277 12 278 /* values for ute.pw_flags.mask_ctl */ 12 279 12 280 dcl (DO_MASK init ("00"b), 12 281 DONT_MASK init ("01"b), 12 282 DERIVE_MASK init ("10"b)) bit (2) internal static options (constant); 12 283 12 284 dcl MASK_CTL_NAMES (0:3) char(12) varying int static options(constant) init( 12 285 "do_mask", "dont_mask", "derive_mask", ""); 12 286 12 287 12 288 /* names for ute.pw_flags */ 12 289 12 290 dcl PW_FLAG_NAMES (9) char (12) varying int static options(constant) init( 12 291 "cpw", 12 292 "generate_pw", 12 293 "dial_pw", 12 294 "slave_pw", 12 295 "cdp", 12 296 "cda", 12 297 "auth_given", 12 298 "noprint", 12 299 "operator"); 12 300 12 301 /* names for ute.uflags */ 12 302 12 303 dcl UFLAG_NAMES (19) char (24) varying int static options (constant) init ( 12 304 "dont_call_init_admin", 12 305 "ip_given", 12 306 "ss_given", 12 307 "lvs_attached", 12 308 "send_initial_string", 12 309 "adjust_abs_q_no", 12 310 "foreground_secondary_ok", 12 311 "foreground_job", 12 312 "sus_sent", 12 313 "suspended", 12 314 "ignore_cpulimit", 12 315 "deferral_logged", 12 316 "save_if_disconnected", 12 317 "disconnected", 12 318 "disconnected_list", 12 319 "proc_create_ok", 12 320 "activity_can_unbump", 12 321 "fpe_causes_logout", 12 322 "user_specified_immediate"); 12 323 12 324 /* names for ute.abs_flags */ 12 325 12 326 dcl ABS_FLAG_NAMES (2) char (8) varying int static options (constant) init ( 12 327 "abs_run", 12 328 "notify"); 12 329 12 330 /* names of ute.dial_server_flags */ 12 331 12 332 dcl DIAL_SERVER_FLAG_NAMES (2) char (12) varying int static options (constant) init ( 12 333 "registered", 12 334 "privileged"); 12 335 12 336 /* values of ute.login_result */ 12 337 12 338 dcl LOGIN_RESULT_VALUES (0:2) char(24) varying int static options(constant) init( 12 339 "logged in", 12 340 "login failed, hangup", 12 341 "login failed, try again"); 12 342 12 343 /* END INCLUDE FILE ... user_table_entry.incl.pl1 */ 562 563 /* BEGIN INCLUDE FILE ... user_table_header.incl.pl1 */ 13 2 13 3 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 13 4 /* */ 13 5 /* This include file declares the header shared by the answer_table, */ 13 6 /* absentee_user_table and daemon_user_table include files. */ 13 7 /* */ 13 8 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 13 9 13 10 /****^ HISTORY COMMENTS: 13 11* 1) change(87-04-26,GDixon), approve(87-07-13,MCR7741), 13 12* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 13 13* Initial coding. 13 14* END HISTORY COMMENTS */ 13 15 13 16 dcl 1 ut_header aligned based, /* header shared by all user control tables. */ 13 17 2 header_version fixed bin, /* version of the header (3) */ 13 18 2 entry_version fixed bin, /* version of user table entries */ 13 19 2 user_table_type fixed bin, /* 1 interactive, 2 absentee, 3 daemon */ 13 20 2 header_length fixed bin, /* length of the header */ 13 21 2 max_size fixed bin, /* max number of entries in this table */ 13 22 2 current_size fixed bin, /* actual size of table (in entries) */ 13 23 2 number_free fixed bin, /* number of free entries in the table. */ 13 24 2 first_free fixed bin, /* index of first entry in the free list. */ 13 25 2 as_procid bit (36), /* process ID of user table manager process */ 13 26 2 ut_header_pad fixed bin; 13 27 13 28 /* END INCLUDE FILE ... user_table_header.incl.pl1 */ 563 564 565 end log; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 07/13/88 0937.9 dm_dmn_requests_.pl1 >special_ldd>install>MR12.2-1047>dm_dmn_requests_.pl1 552 1 08/06/87 0913.0 answer_table.incl.pl1 >ldd>include>answer_table.incl.pl1 553 2 08/06/87 0913.4 absentee_user_table.incl.pl1 >ldd>include>absentee_user_table.incl.pl1 554 3 01/07/85 0858.5 dm_daemon_info.incl.pl1 >ldd>include>dm_daemon_info.incl.pl1 555 4 08/06/87 0912.9 daemon_user_table.incl.pl1 >ldd>include>daemon_user_table.incl.pl1 556 5 08/06/87 0913.4 dialup_values.incl.pl1 >ldd>include>dialup_values.incl.pl1 557 6 03/06/85 1031.1 dm_log_sv_codes.incl.pl1 >ldd>include>dm_log_sv_codes.incl.pl1 558 7 03/06/85 1031.2 dm_request_message.incl.pl1 >ldd>include>dm_request_message.incl.pl1 559 8 01/07/85 0900.0 dm_system_states.incl.pl1 >ldd>include>dm_system_states.incl.pl1 560 9 06/29/79 1728.0 event_call_info.incl.pl1 >ldd>include>event_call_info.incl.pl1 561 10 08/06/87 0913.6 user_attributes.incl.pl1 >ldd>include>user_attributes.incl.pl1 10-112 11 07/13/88 0900.1 user_abs_attributes.incl.pl1 >special_ldd>install>MR12.2-1047>user_abs_attributes.incl.pl1 562 12 07/13/88 0903.2 user_table_entry.incl.pl1 >special_ldd>install>MR12.2-1047>user_table_entry.incl.pl1 563 13 08/06/87 0913.6 user_table_header.incl.pl1 >ldd>include>user_table_header.incl.pl1 NAMES DECLARED IN THIS COMPILATION. IDENTIFIER OFFSET LOC STORAGE CLASS DATA TYPE ATTRIBUTES AND REFERENCES (* indicates a set context) NAMES DECLARED BY DECLARE STATEMENT. ABSENTEE_USER_TABLE 000011 constant char(32) initial packed unaligned dcl 382 set ref 392* DAEMON_USER_TABLE 000021 constant char(32) initial packed unaligned dcl 379 set ref 389* DM_DAEMON_INFO_VERSION_1 000050 constant char(8) initial packed unaligned dcl 3-18 ref 448 DM_SHUTDOWN_SCHEDULED_IPS_NAME 000001 constant char(32) initial packed unaligned dcl 496 set ref 501* DM_SYSTEM_STATE_NORMAL_SHUTDOWN 000044 constant char(4) initial dcl 8-22 set ref 189* DM_SYSTEM_STATE_SHUTDOWN_BEGUN 000046 constant char(4) initial dcl 8-22 ref 189 DM_SYSTEM_STATE_SHUTDOWN_BUMP_USERS 000045 constant char(4) initial dcl 8-22 ref 189 INITIALIZER_USER_NAME 000041 constant char(11) initial packed unaligned dcl 283 ref 286 INTERACTIVE_USER_TABLE 000031 constant char(32) initial packed unaligned dcl 377 set ref 386* LOG_SV 000105 constant fixed bin(17,0) initial dcl 6-40 set ref 251* 268* 288* 294* 302* 315* 318* 330* 336* 339* 352* 358* 361* 461* 466* 469* 482* 547* NEVER_SET 000054 constant fixed bin(71,0) initial dcl 76 ref 149 534 NOW_FREE constant fixed bin(17,0) initial dcl 5-76 ref 413 NOW_HAS_PROCESS constant fixed bin(17,0) initial dcl 5-76 ref 402 424 RIT_RELATIVE_SECONDS_REQUEST 000000 constant bit(2) initial packed unaligned dcl 529 set ref 536* SECONDS_PER_MINUTE constant fixed bin(17,0) initial dcl 445 ref 450 SYSTEM_CTL_DIR 000052 constant char(4) initial packed unaligned dcl 78 set ref 386* 389* 392* UTE_SIZE constant fixed bin(17,0) initial dcl 1-120 ref 401 401 action_type based fixed bin(17,0) level 2 packed packed unaligned dcl 7-26 ref 233 active based fixed bin(17,0) level 2 dcl 12-78 ref 402 413 424 addr builtin function dcl 71 ref 196 196 210 210 225 401 412 423 449 449 ansp 000136 automatic pointer initial dcl 1-53 set ref 1-53* 395* 399 399 401 anstbl based structure level 1 dcl 1-55 api_code 000164 automatic fixed bin(35,0) dcl 282 set ref 292* 294 294* 300* 302 302 302* arg_list_ptr 000100 automatic pointer dcl 48 set ref 169* 170* at_code 000212 automatic fixed bin(35,0) dcl 350 set ref 355* 358 358* ate_code 000202 automatic fixed bin(35,0) dcl 328 set ref 333* 336 336* autbl based structure level 1 dcl 2-28 autp 000140 automatic pointer initial dcl 2-26 set ref 2-26* 396* 410 410 412 brief 1(01) 000126 automatic bit(1) initial level 2 packed packed unaligned dcl 57 set ref 57* change_auth 1 000130 automatic bit(1) initial level 2 packed packed unaligned dcl 63 set ref 63* channel_id based fixed bin(71,0) level 2 dcl 9-7 set ref 228* cu_$arg_list_ptr 000016 constant entry external dcl 83 ref 169 current_size 5 based fixed bin(17,0) level 3 in structure "dutbl" dcl 4-29 in procedure "log" ref 421 current_size 5 based fixed bin(17,0) level 3 in structure "autbl" dcl 2-28 in procedure "log" ref 410 current_size 5 based fixed bin(17,0) level 3 in structure "anstbl" dcl 1-55 in procedure "log" ref 399 dm_adjust_process_id_message based structure level 1 dcl 7-52 dm_adjust_txn_message based structure level 1 dcl 7-39 dm_alarm_message based char(8) dcl 7-69 ref 229 dm_daemon_info based structure level 1 dcl 3-20 dm_daemon_util_$get_daemon_info 000020 constant entry external dcl 84 ref 449 dm_daemon_util_$log 000022 constant entry external dcl 86 ref 251 268 288 294 302 315 318 330 336 339 352 358 361 461 466 469 482 547 dm_daemon_util_$log_message 000024 constant entry external dcl 87 ref 170 dm_daemon_util_$new_proc 000026 constant entry external dcl 89 ref 484 dm_daemon_util_$schedule_shutdown 000030 constant entry external dcl 91 ref 549 dm_daemon_util_$set_system_state 000032 constant entry external dcl 93 ref 189 dm_error_$process_not_found 000066 external static fixed bin(35,0) dcl 128 ref 302 dm_kill_txn based structure level 1 dcl 7-64 dm_misc_util_$get_begin_shutdown_time 000036 constant entry external dcl 97 ref 501 dm_misc_util_$get_system_state 000040 constant entry external dcl 99 ref 188 dm_misc_util_$is_process_using_dm 000034 constant entry external dcl 95 ref 186 dm_request_action_$adjust_process_id 000070 external static fixed bin(17,0) dcl 130 ref 234 dm_request_action_$adjust_tdt 000072 external static fixed bin(17,0) dcl 132 ref 236 dm_request_action_$adjust_tdt_entry 000074 external static fixed bin(17,0) dcl 134 ref 238 dm_request_action_$adjust_txn 000076 external static fixed bin(17,0) dcl 136 ref 240 dm_request_action_$kill_txn 000100 external static fixed bin(17,0) dcl 138 ref 242 dm_request_action_$new_proc 000102 external static fixed bin(17,0) dcl 140 ref 244 dm_request_action_$new_process_notifications 000104 external static fixed bin(17,0) dcl 142 ref 246 dm_request_action_$shutdown 000106 external static fixed bin(17,0) dcl 144 ref 249 dm_request_message based structure level 1 dcl 7-26 dm_request_message_ptr 000144 automatic pointer dcl 7-24 set ref 225* 229 233 288 292 300 330 333 333 352 355 355 461 464 dutbl based structure level 1 dcl 4-29 dutp 000142 automatic pointer initial dcl 4-27 set ref 4-27* 397* 421 421 423 entry 200 based structure array level 2 in structure "dutbl" dcl 4-29 in procedure "log" set ref 423 entry 200 based structure array level 2 in structure "autbl" dcl 2-28 in procedure "log" set ref 412 entry 200 based structure array level 2 in structure "anstbl" dcl 1-55 in procedure "log" set ref 401 event_call_info based structure level 1 dcl 9-7 event_call_info_ptr parameter pointer dcl 9-5 ref 221 225 226 228 gpg_code 000222 automatic fixed bin(35,0) dcl 375 set ref 386* 389* 392* gpg_entry_no 000223 automatic fixed bin(17,0) dcl 376 set ref 399* 401* 410* 412* 421* 423* gpg_process_id parameter bit(36) dcl 374 ref 372 402 413 424 group_id 000102 automatic char(32) packed unaligned dcl 49 set ref 227* 251* 268* 286 288* 315* 330* 352* 461* 482* 547* hcs_$initiate 000042 constant entry external dcl 101 ref 386 389 392 header based structure level 2 in structure "dutbl" dcl 4-29 in procedure "log" header based structure level 2 in structure "autbl" dcl 2-28 in procedure "log" header based structure level 2 in structure "anstbl" dcl 1-55 in procedure "log" hold 1 000126 automatic bit(1) initial level 2 packed packed unaligned dcl 57 set ref 57* itis_daemon_info 000236 automatic structure level 1 dcl 444 set ref 449 449 kt_code 000272 automatic fixed bin(35,0) dcl 459 set ref 464* 466 466* logout_current_system_state 000124 automatic char(4) dcl 54 set ref 188* 189 189 logout_info 000126 automatic structure level 1 dcl 57 set ref 196 196 message 2 based fixed bin(71,0) level 2 dcl 9-7 set ref 225 myname 000112 automatic char(32) packed unaligned dcl 50 set ref 168* 185* 209* 224* 294* 302* 336* 358* 466* new_proc_info 000130 automatic structure level 1 dcl 63 set ref 210 210 null builtin function dcl 71 ref 1-53 2-26 4-27 12-76 386 389 392 399 410 421 pad 1(01) 000130 automatic bit(35) initial level 2 in structure "new_proc_info" packed packed unaligned dcl 63 in procedure "log" set ref 63* pad 1(02) 000126 automatic bit(34) initial level 2 in structure "logout_info" packed packed unaligned dcl 57 in procedure "log" set ref 57* person 4 based char(24) level 2 packed packed unaligned dcl 12-78 ref 402 413 424 proc_id 276 based bit(36) level 2 dcl 12-78 ref 402 413 424 process_id 1 based bit(36) level 2 packed packed unaligned dcl 7-52 set ref 288* 292 300 project 12 based char(12) level 2 packed packed unaligned dcl 12-78 ref 402 413 424 request_idle_time_in_seconds 000134 automatic fixed bin(71,0) initial dcl 149 set ref 149* 534 534* 536 536* request_type 000122 automatic fixed bin(17,0) dcl 51 set ref 233* 234 236 238 240 242 244 246 249 251* rit_p_request_channel parameter fixed bin(71,0) dcl 528 set ref 526 533* 536* rtrim builtin function dcl 71 ref 402 402 413 413 424 424 sender 4 based bit(36) level 2 dcl 9-7 ref 226 sender_id 000123 automatic bit(36) dcl 52 set ref 226* 227* 251* 268* 288* 315* 330* 352* 461* 482* 501* 547* static_ansp 000010 internal static pointer initial dcl 155 set ref 386 386* 395 static_autp 000012 internal static pointer initial dcl 156 set ref 392 392* 396 static_dutp 000014 internal static pointer initial dcl 157 set ref 389 389* 397 substr builtin function dcl 71 ref 286 terminate_process_ 000044 constant entry external dcl 104 ref 196 210 timer_manager_$alarm_wakeup 000050 constant entry external dcl 107 ref 536 timer_manager_$reset_alarm_wakeup 000046 constant entry external dcl 105 ref 533 transaction_id 1 based bit(36) level 2 in structure "dm_adjust_txn_message" packed packed unaligned dcl 7-39 in procedure "log" ref 333 355 transaction_id 1 based bit(36) level 2 in structure "dm_kill_txn" packed packed unaligned dcl 7-64 in procedure "log" set ref 461* 464 transaction_index 0(18) based fixed bin(17,0) level 2 packed packed unaligned dcl 7-39 set ref 330* 333 352* 355 transaction_manager_$adjust_process_id 000052 constant entry external dcl 110 ref 292 300 transaction_manager_$adjust_tdt 000054 constant entry external dcl 113 ref 270 317 transaction_manager_$adjust_tdt_entry 000056 constant entry external dcl 115 ref 333 355 transaction_manager_$dm_system_in_use 000060 constant entry external dcl 118 ref 189 transaction_manager_$ips_wakeup 000062 constant entry external dcl 120 ref 501 transaction_manager_$kill_txn 000064 constant entry external dcl 122 ref 464 user_abs_attributes based structure level 1 dcl 11-25 user_attributes based structure level 1 dcl 10-21 ut_header based structure level 1 dcl 13-16 ute based structure level 1 dcl 12-78 utep 000146 automatic pointer initial dcl 12-76 set ref 12-76* 401* 402 402 402 402 412* 413 413 413 413 423* 424 424 424 424 version 000126 automatic fixed bin(17,0) initial level 2 in structure "logout_info" dcl 57 in procedure "log" set ref 57* version 000130 automatic fixed bin(17,0) initial level 2 in structure "new_proc_info" dcl 63 in procedure "log" set ref 63* version 000236 automatic char(8) level 2 in structure "itis_daemon_info" dcl 444 in procedure "IDLE_TIME_IN_SECONDS" set ref 448* wakeup_increment 5 000236 automatic fixed bin(17,0) level 2 dcl 444 set ref 450 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. ABS_ATTRIBUTE_NAMES internal static varying char(28) initial array dcl 11-38 ABS_FLAG_NAMES internal static varying char(8) initial array dcl 12-326 ACTIVE_VALUES internal static char(18) initial array dcl 5-86 ALT_USER_ATTRIBUTE_NAMES internal static char(20) initial array packed unaligned dcl 10-77 ANSTBL_version_4 internal static fixed bin(17,0) initial dcl 1-51 AT_NORMAL internal static char(8) initial packed unaligned dcl 1-116 AT_SHUTDOWN internal static char(8) initial packed unaligned dcl 1-116 AT_SPECIAL internal static char(8) initial packed unaligned dcl 1-116 AUTBL_CONTROL_NAMES internal static varying char(20) initial array dcl 2-68 AUTBL_version_4 internal static fixed bin(17,0) initial dcl 2-24 CRASH_SV internal static fixed bin(17,0) initial dcl 6-34 DERIVE_MASK internal static bit(2) initial packed unaligned dcl 12-280 DIAL_SERVER_FLAG_NAMES internal static varying char(12) initial array dcl 12-332 DM_SYSTEM_STATE_INITIALIZING internal static char(4) initial dcl 8-22 DM_SYSTEM_STATE_RECOVERING internal static char(4) initial dcl 8-22 DM_SYSTEM_STATE_RUNNING internal static char(4) initial dcl 8-22 DM_SYSTEM_STATE_UNDEFINED internal static char(4) initial dcl 8-22 DONT_MASK internal static bit(2) initial packed unaligned dcl 12-280 DO_MASK internal static bit(2) initial packed unaligned dcl 12-280 DUTBL_version_4 internal static fixed bin(17,0) initial dcl 4-25 ERROR_SV internal static fixed bin(17,0) initial dcl 6-36 FATAL_SV internal static fixed bin(17,0) initial dcl 6-34 INFORM_SV internal static fixed bin(17,0) initial dcl 6-38 LOGIN_RESULT_VALUES internal static varying char(24) initial array dcl 12-338 MASK_CTL_NAMES internal static varying char(12) initial array dcl 12-284 NOW_DIALED internal static fixed bin(17,0) initial dcl 5-76 NOW_DIALED_OUT internal static fixed bin(17,0) initial dcl 5-76 NOW_DIALING internal static fixed bin(17,0) initial dcl 5-76 NOW_HUNG_UP internal static fixed bin(17,0) initial dcl 5-76 NOW_LISTENING internal static fixed bin(17,0) initial dcl 5-76 NOW_LOGGED_IN internal static fixed bin(17,0) initial dcl 5-76 PREEMPT_BUMPED internal static fixed bin(17,0) initial dcl 5-132 PREEMPT_BUMPED_NO_TERM internal static fixed bin(17,0) initial dcl 5-132 PREEMPT_LOAD_CTL internal static fixed bin(17,0) initial dcl 5-132 PREEMPT_TERMSGNL_RECEIVED internal static fixed bin(17,0) initial dcl 5-132 PREEMPT_TERM_SENT internal static fixed bin(17,0) initial dcl 5-132 PREEMPT_UNBUMP internal static fixed bin(17,0) initial dcl 5-132 PREEMPT_UNBUMP_IGNORE_ALARM internal static fixed bin(17,0) initial dcl 5-132 PREEMPT_VALUES internal static varying char(28) initial array dcl 5-142 PRINT_SV internal static fixed bin(17,0) initial dcl 6-32 PROCESS_TYPE_NAMES internal static varying char(12) initial array dcl 12-265 PT_ABSENTEE internal static fixed bin(17,0) initial dcl 12-261 PT_ALARM internal static fixed bin(17,0) initial dcl 5-106 PT_BUMP internal static fixed bin(17,0) initial dcl 5-106 PT_DAEMON internal static fixed bin(17,0) initial dcl 12-261 PT_DESTROY_REQUEST internal static fixed bin(17,0) initial dcl 5-106 PT_DETACH internal static fixed bin(17,0) initial dcl 5-106 PT_FPE internal static fixed bin(17,0) initial dcl 5-106 PT_HANGUP internal static fixed bin(17,0) initial dcl 5-106 PT_INTERACTIVE internal static fixed bin(17,0) initial dcl 12-261 PT_LOGOUT internal static fixed bin(17,0) initial dcl 5-106 PT_NEW_PROC_AUTH internal static fixed bin(17,0) initial dcl 5-106 PT_NEW_PROC_REQUEST internal static fixed bin(17,0) initial dcl 5-106 PT_OPERATOR_TERMINATE internal static fixed bin(17,0) initial dcl 5-106 PT_SHUTDOWN internal static fixed bin(17,0) initial dcl 5-106 PT_UNBUMP internal static fixed bin(17,0) initial dcl 5-106 PW_FLAG_NAMES internal static varying char(12) initial array dcl 12-290 QUERY_SV internal static fixed bin(17,0) initial dcl 6-32 STATE_VALUES internal static char(15) initial array dcl 5-70 TABLE_NAMES internal static char(20) initial array packed unaligned dcl 12-271 TAG_ABSENTEE internal static char(1) initial packed unaligned dcl 5-93 TAG_DAEMON internal static char(1) initial packed unaligned dcl 5-93 TAG_INTERACTIVE internal static char(1) initial packed unaligned dcl 5-93 TAG_PROXY internal static char(1) initial packed unaligned dcl 5-93 TAG_UFT internal static char(1) initial packed unaligned dcl 5-93 TRA_VEC_VALUES internal static char(32) initial array dcl 5-54 TTY_DIALED internal static fixed bin(17,0) initial dcl 5-64 TTY_HUNG internal static fixed bin(17,0) initial dcl 5-64 TTY_KNOWN internal static fixed bin(17,0) initial dcl 5-64 TTY_MASKED internal static fixed bin(17,0) initial dcl 5-64 UFLAG_NAMES internal static varying char(24) initial array dcl 12-303 USER_ATTRIBUTES_always_allowed internal static bit(36) initial dcl 10-100 USER_ATTRIBUTES_default_in_pdt internal static bit(36) initial dcl 10-104 USER_ATTRIBUTES_settable_by_user internal static bit(36) initial dcl 10-108 USER_ATTRIBUTE_NAMES internal static char(20) initial array packed unaligned dcl 10-50 UTE_version_4 internal static fixed bin(17,0) initial dcl 12-74 WAIT_ANSWERBACK internal static fixed bin(17,0) initial dcl 5-25 WAIT_BEFORE_HANGUP internal static fixed bin(17,0) initial dcl 5-25 WAIT_CONNECT_REQUEST internal static fixed bin(17,0) initial dcl 5-25 WAIT_DELETE_CHANNEL internal static fixed bin(17,0) initial dcl 5-25 WAIT_DESTROY_REQUEST internal static fixed bin(17,0) initial dcl 5-25 WAIT_DETACH internal static fixed bin(17,0) initial dcl 5-25 WAIT_DIALUP internal static fixed bin(17,0) initial dcl 5-25 WAIT_DIAL_OUT internal static fixed bin(17,0) initial dcl 5-25 WAIT_DIAL_RELEASE internal static fixed bin(17,0) initial dcl 5-25 WAIT_DISCARD_WAKEUPS internal static fixed bin(17,0) initial dcl 5-25 WAIT_FIN_PRIV_ATTACH internal static fixed bin(17,0) initial dcl 5-25 WAIT_FIN_TANDD_ATTACH internal static fixed bin(17,0) initial dcl 5-25 WAIT_GREETING_MSG internal static fixed bin(17,0) initial dcl 5-25 WAIT_HANGUP internal static fixed bin(17,0) initial dcl 5-25 WAIT_LOGIN_ARGS internal static fixed bin(17,0) initial dcl 5-25 WAIT_LOGIN_LINE internal static fixed bin(17,0) initial dcl 5-25 WAIT_LOGOUT internal static fixed bin(17,0) initial dcl 5-25 WAIT_LOGOUT_HOLD internal static fixed bin(17,0) initial dcl 5-25 WAIT_LOGOUT_SIG internal static fixed bin(17,0) initial dcl 5-25 WAIT_NEW_PASSWORD internal static fixed bin(17,0) initial dcl 5-25 WAIT_NEW_PROC internal static fixed bin(17,0) initial dcl 5-25 WAIT_NEW_PROC_REQUEST internal static fixed bin(17,0) initial dcl 5-25 WAIT_OLD_PASSWORD internal static fixed bin(17,0) initial dcl 5-25 WAIT_PASSWORD internal static fixed bin(17,0) initial dcl 5-25 WAIT_REMOVE internal static fixed bin(17,0) initial dcl 5-25 WAIT_SLAVE_REQUEST internal static fixed bin(17,0) initial dcl 5-25 WAIT_TANDD_HANGUP internal static fixed bin(17,0) initial dcl 5-25 dm_adjust_process_id_word_1 based structure level 1 dcl 7-59 dm_adjust_tdt_entry_message based structure level 1 dcl 7-45 dm_daemon_info_ptr automatic pointer dcl 3-17 dm_terminate_segno_message based structure level 1 dcl 7-32 NAMES DECLARED BY EXPLICIT CONTEXT. ADJUST_PROCESS_ID 001047 constant entry internal dcl 280 ref 234 ADJUST_TDT 001231 constant entry internal dcl 312 ref 236 ADJUST_TDT_ENTRY 001310 constant entry internal dcl 326 ref 238 ADJUST_TXN 001445 constant entry internal dcl 348 ref 240 ALARM_WAKEUP 001010 constant entry internal dcl 265 ref 229 GET_PROCESS_GROUP 001602 constant entry internal dcl 372 ref 227 IDLE_TIME_IN_SECONDS 002363 constant entry internal dcl 442 ref 534 KILL_TXN 002405 constant entry internal dcl 457 ref 242 MAIN_RETURN 001007 constant label dcl 258 ref 514 NEW_PROC 002533 constant entry internal dcl 479 ref 244 NEW_PROCESS_NOTIFICATIONS 002572 constant entry internal dcl 494 ref 246 RESET_IDLE_TIMER 002624 constant entry internal dcl 526 ref 228 RETURN 002622 constant entry internal dcl 511 ref 171 197 211 256 SHUTDOWN 002664 constant entry internal dcl 545 ref 249 log 000452 constant entry external dcl 41 logout 000504 constant entry external dcl 182 new_proc 000610 constant entry external dcl 206 request 000647 constant entry external dcl 221 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 3340 3450 2744 3350 Length 4216 2744 110 531 373 6 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME log 614 external procedure is an external procedure. ALARM_WAKEUP internal procedure shares stack frame of external procedure log. ADJUST_PROCESS_ID internal procedure shares stack frame of external procedure log. ADJUST_TDT internal procedure shares stack frame of external procedure log. ADJUST_TDT_ENTRY internal procedure shares stack frame of external procedure log. ADJUST_TXN internal procedure shares stack frame of external procedure log. GET_PROCESS_GROUP internal procedure shares stack frame of external procedure log. IDLE_TIME_IN_SECONDS internal procedure shares stack frame of external procedure log. KILL_TXN internal procedure shares stack frame of external procedure log. NEW_PROC internal procedure shares stack frame of external procedure log. NEW_PROCESS_NOTIFICATIONS internal procedure shares stack frame of external procedure log. RETURN internal procedure shares stack frame of external procedure log. RESET_IDLE_TIMER internal procedure shares stack frame of external procedure log. SHUTDOWN internal procedure shares stack frame of external procedure log. STORAGE FOR INTERNAL STATIC VARIABLES. LOC IDENTIFIER BLOCK NAME 000010 static_ansp log 000012 static_autp log 000014 static_dutp log STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME log 000100 arg_list_ptr log 000102 group_id log 000112 myname log 000122 request_type log 000123 sender_id log 000124 logout_current_system_state log 000126 logout_info log 000130 new_proc_info log 000134 request_idle_time_in_seconds log 000136 ansp log 000140 autp log 000142 dutp log 000144 dm_request_message_ptr log 000146 utep log 000164 api_code ADJUST_PROCESS_ID 000202 ate_code ADJUST_TDT_ENTRY 000212 at_code ADJUST_TXN 000222 gpg_code GET_PROCESS_GROUP 000223 gpg_entry_no GET_PROCESS_GROUP 000236 itis_daemon_info IDLE_TIME_IN_SECONDS 000272 kt_code KILL_TXN THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. alloc_char_temp cat_realloc_chars call_ext_out_desc call_ext_out return_mac shorten_stack ext_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. cu_$arg_list_ptr dm_daemon_util_$get_daemon_info dm_daemon_util_$log dm_daemon_util_$log_message dm_daemon_util_$new_proc dm_daemon_util_$schedule_shutdown dm_daemon_util_$set_system_state dm_misc_util_$get_begin_shutdown_time dm_misc_util_$get_system_state dm_misc_util_$is_process_using_dm hcs_$initiate terminate_process_ timer_manager_$alarm_wakeup timer_manager_$reset_alarm_wakeup transaction_manager_$adjust_process_id transaction_manager_$adjust_tdt transaction_manager_$adjust_tdt_entry transaction_manager_$dm_system_in_use transaction_manager_$ips_wakeup transaction_manager_$kill_txn THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. dm_error_$process_not_found dm_request_action_$adjust_process_id dm_request_action_$adjust_tdt dm_request_action_$adjust_tdt_entry dm_request_action_$adjust_txn dm_request_action_$kill_txn dm_request_action_$new_proc dm_request_action_$new_process_notifications dm_request_action_$shutdown LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 57 000423 63 000432 149 000440 1 53 000442 2 26 000444 4 27 000445 12 76 000446 41 000451 168 000460 169 000463 170 000472 171 000501 182 000502 185 000512 186 000515 188 000527 189 000536 196 000564 197 000605 206 000606 209 000616 210 000621 211 000642 221 000643 224 000655 225 000660 226 000665 227 000667 228 000671 229 000701 233 000710 234 000713 236 000720 238 000724 240 000730 242 000734 244 000740 246 000744 249 000750 251 000754 256 001006 258 001007 265 001010 268 001011 270 001041 271 001046 280 001047 286 001050 288 001054 292 001111 294 001125 297 001157 300 001160 302 001174 306 001230 312 001231 315 001232 317 001262 318 001267 319 001307 326 001310 330 001311 333 001347 336 001371 339 001424 342 001444 348 001445 352 001446 355 001504 358 001526 361 001561 364 001601 372 001602 386 001604 389 001653 392 001722 395 001771 396 001774 397 001776 399 002000 401 002015 402 002022 408 002116 410 002120 412 002135 413 002141 419 002234 421 002236 423 002253 424 002257 430 002353 432 002355 442 002363 448 002365 449 002367 450 002400 457 002405 461 002406 464 002443 466 002457 469 002512 472 002532 479 002533 482 002534 484 002564 485 002571 494 002572 501 002573 504 002621 511 002622 514 002623 526 002624 533 002626 534 002635 536 002645 539 002663 545 002664 547 002665 549 002715 550 002722 ----------------------------------------------------------- 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