COMPILATION LISTING OF SEGMENT uc_logout_ Compiled by: Multics PL/I Compiler, Release 30, of February 16, 1988 Compiled at: Honeywell Bull, Phoenix AZ, SysM Compiled on: 07/13/88 1027.9 mst Wed Options: optimize map 1 /****^ ******************************************** 2* * * 3* * Copyright, (C) Honeywell Bull Inc., 1987 * 4* * * 5* ******************************************** */ 6 7 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 8 /* */ 9 /* This module is part of the Multics Network Architecture (MNA) version of */ 10 /* user control. MNA user control serves users coming into Multics via */ 11 /* separate networks (eg, the Distributed Systems Architecture (DSA) */ 12 /* network. MNA user control is not used for logins through the Multics */ 13 /* Communications System (MCS). A separate MCS user control system serves */ 14 /* MCS users. */ 15 /* */ 16 /* To Be Supplied: */ 17 /* 1) Brief module description. See MDD010 or MTBs 751 and 752 for details */ 18 /* about this module, and its relationship to modules in the MCS user */ 19 /* control system. */ 20 /* 2) Operator error message documentation. This program calls */ 21 /* sys_log_$general but does not contain the required descriptions of */ 22 /* these messages. This omission was waived for initial installation */ 23 /* of the subsystem by the auditor, security coordinator, and by MDC */ 24 /* management. */ 25 /* */ 26 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 27 28 /****^ HISTORY COMMENTS: 29* 1) change(86-04-27,Swenson), approve(87-07-13,MCR7737), 30* audit(87-05-18,GDixon), install(87-08-04,MR12.1-1055): 31* Initial coding. 32* 2) change(87-04-27,GDixon), approve(87-07-13,MCR7737), 33* audit(87-07-30,Brunelle), install(87-08-04,MR12.1-1055): 34* Upgraded for change to answer_table.incl.pl1 and user_table_entry.incl.pl1 35* 3) change(87-05-18,GDixon), approve(87-07-13,MCR7737), 36* audit(87-07-30,Brunelle), install(87-08-04,MR12.1-1055): 37* A) Use sys_log_$general to report errors. 38* B) Correct error in maintenance of whotab. 39* 4) change(87-05-20,GDixon), approve(87-07-13,MCR7737), 40* audit(87-07-30,Brunelle), install(87-08-04,MR12.1-1055): 41* When an MNA user logs in, a UTE is created. When this user connects to an 42* existing process, that proc's UTE is retained and the login UTE is freed; 43* but the whotab is never updated to reflect freeing of the login UTE. 44* A) Add uc_logout_$reconnect to do all aspects of logging out the login 45* UTE except for auditing the LOGOUT. Instead, 46* uc_setup_process_connect_ audits a CONNECT operation. 47* END HISTORY COMMENTS */ 48 49 /* format: style4,indattr */ 50 51 uc_logout_: 52 procedure (P_utep, P_added_info); 53 54 /* Parameters */ 55 56 dcl P_added_info char (*) parameter; 57 dcl P_utep ptr parameter; 58 59 /* Automatic */ 60 61 dcl added_info char (32) automatic; 62 dcl reconnect_sw bit (1); 63 dcl satep ptr automatic; 64 dcl whoptr ptr automatic; 65 66 /* Entries */ 67 68 dcl as_access_audit_$logout entry (ptr, char (*)); 69 dcl load_ctl_$unload entry (ptr, fixed bin); 70 dcl terminate_file_ entry (ptr, fixed bin (24), bit (*), fixed bin (35)); 71 72 /* External */ 73 74 dcl error_table_$action_not_performed fixed bin(35) ext static; 75 76 /* Constants */ 77 78 dcl (FALSE init("0"b), 79 TRUE init("1"b)) bit(1) int static options(constant); 80 dcl ME char(10) int static options(constant) init("uc_logout_"); 81 82 /* Builtins */ 83 84 dcl (addr, null) builtin; 85 86 87 /* Program */ 88 reconnect_sw = FALSE; 89 go to COMMON; 90 91 reconnect: 92 entry (P_utep, P_added_info); 93 94 reconnect_sw = TRUE; 95 go to COMMON; 96 97 COMMON: utep = P_utep; 98 added_info = P_added_info; 99 100 call Setup (); 101 102 if ute.active ^= NOW_LOGGED_IN then 103 call Abort (error_table_$action_not_performed, 104 "UTE (^d, ^p in ^a) not logged in (active= ^a, ^d).", 105 ute.ute_index, utep, TABLE_NAMES(ute.process_type), 106 ACTIVE_VALUES(ute.active), ute.active); 107 108 call Update_Whotab (); /* Make sure whotab gets updated. Do it first. */ 109 110 if ute.uflags.proc_create_ok then 111 call load_ctl_$unload (utep, ute.process_type); 112 113 if ute.uprojp ^= null () then do; 114 satep = ute.uprojp; 115 if project.n_users <= 0 then 116 if project.project_id ^= "SysDaemon" then do; 117 call terminate_file_ (project.pdt_ptr, 0, 118 TERM_FILE_TERM, (0)); 119 ute.pdtep = null (); 120 end; 121 end; 122 123 ute.active = NOW_DIALED; 124 125 if ^reconnect_sw then /* reconnect audited in uc_setup_process_connect_ */ 126 call as_access_audit_$logout (utep, added_info); 127 128 RETURN: return; 129 130 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 131 /* */ 132 /* Abort: Report errors via sys_log_$general and stop execution. */ 133 /* */ 134 /* Syntax: call Abort (code, ioa_ctl, args); */ 135 /* */ 136 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 137 138 Abort: 139 procedure options (variable); 140 141 dcl cu_$arg_list_ptr entry returns (ptr); 142 dcl sys_log_$general entry (ptr); 143 144 sl_info = sl_info_code_msg; 145 sl_info.arg_list_ptr = cu_$arg_list_ptr (); 146 sl_info.severity = SL_LOG_BEEP; 147 sl_info.caller = ME; 148 call sys_log_$general (addr (sl_info)); 149 goto RETURN; 150 151 end Abort; 152 153 Setup: 154 procedure (); 155 156 ansp = as_data_$ansp; 157 return; 158 end Setup; 159 160 Update_Whotab: 161 procedure (); 162 163 dcl whotab_idx fixed bin automatic; 164 165 whoptr = as_data_$whoptr; 166 167 whotab.n_users = whotab.n_users - 1; 168 whotab.n_units = whotab.n_units - ute.user_weight; 169 whotab_idx = ute.whotabx; 170 if whotab_idx ^= 0 then 171 do; 172 whotab.e (whotab_idx).active = NOW_FREE; 173 whotab.e (whotab_idx).person = ""; 174 whotab.e (whotab_idx).project = ""; 175 whotab.e (whotab_idx).chain = whotab.freep; /* chain free entries together */ 176 whotab.freep = whotab_idx; /* on top of free queue */ 177 ute.whotabx = 0; 178 end; 179 180 if ute.process_type = PT_ABSENTEE then do; 181 if ute.queue > 0 then /* background absentee */ 182 whotab.abs_users = whotab.abs_users - 1; 183 else whotab.fg_abs_users = whotab.fg_abs_users - 1; 184 end; 185 else if ute.process_type = PT_DAEMON then 186 whotab.n_daemons = whotab.n_daemons - 1; 187 return; 188 end Update_Whotab; 189 190 /* format: off */ 191 /* 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 */ 191 192 /* BEGIN INCLUDE FILE ... as_data_.incl.pl1 ... */ 2 2 2 3 /* format: style4 */ 2 4 2 5 /* This file must be kept in sync with as_data_.alm */ 2 6 2 7 /****^ HISTORY COMMENTS: 2 8* 1) change(86-09-21,Beattie), approve(86-09-22,MCR7542), 2 9* audit(86-10-31,Brunelle), install(86-11-12,MR12.0-1211): 2 10* Remove references to the 963 and 029 preaccess commands and remove support 2 11* for ARDS, 202_ETX, 2741 and 1050 in system interfaces. 2 12* 2) change(86-09-25,Swenson), approve(87-07-20,MCR7737), 2 13* audit(87-07-20,GDixon), install(87-08-04,MR12.1-1056): 2 14* Add references to as_data_ entrypoints added for Login Server. 2 15* 3) change(87-03-03,Brunelle), approve(87-07-20,MCR7697), 2 16* audit(87-07-20,GDixon), install(87-08-04,MR12.1-1056): 2 17* Added new user signal field of inacrcvd (14) to handle inactivity response 2 18* from user. 2 19* END HISTORY COMMENTS */ 2 20 2 21 dcl as_data_$BS char (1) aligned ext static; /* BACKSPACE character */ 2 22 dcl as_data_$CR char (1) aligned ext static; /* CARRIAGE RETURN character */ 2 23 dcl as_data_$abs_dim char (32) ext static; /* absentee DIM */ 2 24 dcl as_data_$acct_update_priority fixed bin ext static; /* accounting update IPC priority */ 2 25 dcl as_data_$acsdir char (168) ext static; /* Access Control Segment directory */ 2 26 dcl as_data_$ansp ptr ext static; /* answer_table */ 2 27 dcl as_data_$as_procid bit (36) aligned ext static; /* Answering Service process id */ 2 28 dcl as_data_$as_ring fixed bin (3) ext static; /* AS operating ring */ 2 29 dcl as_data_$as_tty char (6); /* AS master tty channel */ 2 30 dcl as_data_$asmtp ptr ext static; /* AS meter table */ 2 31 dcl as_data_$autp ptr ext static; /* absentee_user_table */ 2 32 dcl as_data_$buzzardp ptr ext static; /* dpg_ list of buteo processes */ 2 33 dcl as_data_$cdtp ptr ext static; /* CDT */ 2 34 dcl as_data_$default_weight fixed bin (35) ext; /* default user process load control weight */ 2 35 dcl as_data_$devtabp ptr ext static; /* device_table */ 2 36 dcl as_data_$dft_user_ring fixed bin (3) ext static; /* default user ring */ 2 37 dcl as_data_$dutp ptr ext static; /* daemon_user_table */ 2 38 dcl as_data_$g115_dim char (32) ext static; 2 39 dcl as_data_$lct_initialized bit (1) aligned ext static; /* LCT allocated in ring 0 */ 2 40 dcl as_data_$lct_size fixed bin ext static; /* CDT tty channels + spares */ 2 41 dcl as_data_$max_user_ring fixed bin (3) ext static; /* maximum user ring */ 2 42 dcl as_data_$mgtp ptr ext static; /* master group table */ 2 43 dcl as_data_$mrd_dim char (32) ext static; /* daemon's message routing DIM */ 2 44 dcl as_data_$ntty_dim char (32) ext static; /* network connection DIM */ 2 45 dcl as_data_$pdtdir char (168) ext static; /* PDT directory */ 2 46 dcl as_data_$pit_ptr ptr ext static; /* pit_temp_ */ 2 47 dcl as_data_$rcpdir char (168) ext static; /* RCP directory */ 2 48 dcl as_data_$request_priority fixed bin ext static; 2 49 dcl as_data_$rs_ptrs (0:9) ptr ext static; /* rate_structures */ 2 50 dcl as_data_$rtdtp ptr ext static; /* RTDT */ 2 51 dcl as_data_$sat_htp ptr ext static; /* SAT hash table */ 2 52 dcl as_data_$satp ptr ext static; /* SAT */ 2 53 dcl as_data_$suffix (0:9) char (2) unaligned ext static; 2 54 dcl as_data_$sysdir char (168) ext static; /* system control directory */ 2 55 dcl as_data_$teens_suffix (10:19) char (2) unaligned ext static; 2 56 dcl as_data_$terminet_tabs_string char (144) varying ext static; 2 57 dcl as_data_$tty_dim char (32) ext static; /* standard interactive DIM */ 2 58 dcl as_data_$update_priority fixed bin ext static; /* ??? */ 2 59 dcl as_data_$version char (8) ext static; /* AS version */ 2 60 dcl as_data_$whoptr ptr ext static; /* whotab */ 2 61 2 62 dcl 1 as_data_$login_args aligned ext static, /* control arguments for login */ 2 63 2 n_login_args fixed bin, 2 64 2 pad fixed bin, 2 65 2 login_args (55 /* as_data_$login_args.n_login_args */) char (24) unaligned; 2 66 2 67 dcl 1 as_data_$signal_types ext static aligned, /* IPC process control signals */ 2 68 2 n_signals fixed bin, 2 69 2 pad fixed bin, 2 70 2 signals (14 /* as_data_$signal_types.n_signals */) char (8) unaligned; 2 71 2 72 dcl 1 as_data_$system_signal_types ext static aligned, /* IPC process control signals */ 2 73 2 n_system_signals fixed bin, 2 74 2 pad fixed bin, 2 75 2 system_signals (10 /* as_data_$system_signal_types.n_system_signals */) char (8) unaligned; 2 76 2 77 dcl as_data_$login_words fixed bin ext static aligned, 2 78 /* interactive login words */ 2 79 1 as_data_login_words aligned based (addr (as_data_$login_words)), 2 80 2 n_words fixed bin, 2 81 2 pad fixed bin, 2 82 2 words (0 refer (as_data_login_words.n_words)) char (16) unaligned; 2 83 2 84 dcl as_data_$debug_flag bit (1) aligned external static; 2 85 dcl as_data_$ls_request_server_info_ptr ptr external static; 2 86 dcl as_data_$ls_message_buffer_cur_lth fixed bin (18) external static; 2 87 dcl as_data_$ls_message_buffer_max_lth fixed bin (18) external static; 2 88 dcl as_data_$ls_message_buffer_ptr ptr external static; 2 89 2 90 /* END INCLUDE FILE ... as_data_.incl.pl1 ... */ 192 193 /* BEGIN INCLUDE FILE ... dialup_values.incl.pl1 */ 3 2 3 3 /* format: style4 */ 3 4 3 5 /* Values for "cdte.tra_vec" used by dialup_ and others. */ 3 6 3 7 /* Modified by T. Casey April 1976 to add WAIT_NEW_PASSWORD 3 8* - in 1977 and 1978 to add WAIT_(GREETING_MSG DELETE_CHANNEL) 3 9* - and in October 1979 to add WAIT_CONNECT_REQUEST 3 10* Modified by Robert Coren in May 1981 to add TANDD_ATTACH values and 3 11* WAIT_DISCARD_WAKEUP 3 12* Modified by T. Casey, July 1981, for MR9.0, to add WAIT_BEFORE_HANGUP. 3 13* Modified by E. N. Kittlitz, July 1982, to add TTY_MASKED. 3 14**/ 3 15 3 16 /****^ HISTORY COMMENTS: 3 17* 1) change(87-04-20,GDixon), approve(87-07-13,MCR7741), 3 18* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 3 19* Add constant arrays naming cdte.state, cdte.tra_vec and ute.active values. 3 20* 2) change(87-05-11,GDixon), approve(87-07-13,MCR7741), 3 21* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 3 22* Add named constants for instance tags. 3 23* END HISTORY COMMENTS */ 3 24 3 25 dcl (WAIT_DIALUP init (1), /* Channel waiting for dialup. */ 3 26 WAIT_ANSWERBACK initial (2), /* WRU sent, waiting for reply */ 3 27 WAIT_LOGIN_LINE init (3), /* Greeting typed, wait for login command. */ 3 28 WAIT_LOGIN_ARGS init (4), /* Want rest of login line */ 3 29 WAIT_OLD_PASSWORD init (5), /* "-cpw" was specified. Wait for old password. */ 3 30 WAIT_PASSWORD init (6), /* Waiting for password. (If "-cpw", repeat of new one.) */ 3 31 WAIT_NEW_PASSWORD init (7), /* "-cpw" was specified. Wait for new password */ 3 32 WAIT_LOGOUT_SIG init (8), /* Channel is hooked up. Wait for logout. */ 3 33 WAIT_LOGOUT init (9), /* A logout has been requested. Wait for process to die */ 3 34 WAIT_LOGOUT_HOLD init (10), /* As above but don't hang up when it dies. */ 3 35 WAIT_DETACH init (11), /* As above but ignore channel afterwards. */ 3 36 WAIT_NEW_PROC init (12), /* As above but make new process and continue. */ 3 37 WAIT_REMOVE init (13), /* As above but completely expunge channel. */ 3 38 WAIT_FIN_PRIV_ATTACH init (14), /* When channel dials up, connect it to user */ 3 39 WAIT_DIAL_RELEASE init (15), /* Waiting for master process to release. */ 3 40 WAIT_DIAL_OUT init (16), /* Waiting for auto call to complete */ 3 41 WAIT_HANGUP init (17), /* Wait for the hangup event to occur for a channel */ 3 42 WAIT_SLAVE_REQUEST init (18), /* Ignore line until someone asks */ 3 43 WAIT_GREETING_MSG init (19), /* Print greeting message and wait for login line */ 3 44 WAIT_DELETE_CHANNEL init (20), /* Channel deleted - mark cdte after process is destroyed */ 3 45 WAIT_CONNECT_REQUEST init (21), /* logged in; awaiting request re disconnected processes */ 3 46 WAIT_TANDD_HANGUP init (22), /* when channel hangs up, proceed with t & d attachment */ 3 47 WAIT_FIN_TANDD_ATTACH init (23), /* when channel dials up, finish t & d attachment */ 3 48 WAIT_DISCARD_WAKEUPS init (24), /* disregard all wakeups on channel */ 3 49 WAIT_BEFORE_HANGUP init (25), /* allow output to print before hanging up */ 3 50 WAIT_DESTROY_REQUEST init (26), /* waiting to continue with destroy request after process has destroyed itself */ 3 51 WAIT_NEW_PROC_REQUEST init (27) /* waiting to continue with new_proc request after process has destroyed itself */ 3 52 ) fixed bin internal static options (constant); 3 53 3 54 dcl TRA_VEC_VALUES (0:13) char (32) aligned int static options (constant) init 3 55 /* names of ute.destroy_flag values */ 3 56 ("", "wait dialup", "wait answerback", "wait login line", /* 0-3 */ 3 57 "wait login args", "wait old password", "wait password", /* 4-6 */ 3 58 "wait new password", "wait logout signal", "wait logout", /* 7-9 */ 3 59 "wait logout hold", "wait detach", "wait new proc", /* 10-12 */ 3 60 "wait remove"); /* -13 */ 3 61 3 62 /* Values for "cdte.state", typewriter state. */ 3 63 3 64 dcl (TTY_MASKED init (-1), /* Terminal channel is there, but masked by MCS */ 3 65 TTY_HUNG init (1), /* Terminal channel is there, but dead. */ 3 66 TTY_KNOWN init (2), /* Channel being "listened" to, awaiting dialup. */ 3 67 TTY_DIALED init (5) /* Channel is dialed up. This is normal state. */ 3 68 ) fixed bin internal static options (constant); 3 69 3 70 dcl STATE_VALUES (-1:5) char (15) aligned int static options (constant) init 3 71 /* names of cdte.state values */ 3 72 ("masked", "dead", "hung up", "listening", "", "", "dialed up"); 3 73 3 74 /* Values for "cdte.in_use" and "ate.active" */ 3 75 3 76 dcl (NOW_FREE init (0), /* Entry is empty. */ 3 77 NOW_HUNG_UP init (1), /* Entry is usable but tty is hung up. */ 3 78 NOW_LISTENING init (2), /* Entry is waiting for phone call. */ 3 79 NOW_DIALED init (3), /* Entry is connected but login not complete. */ 3 80 NOW_LOGGED_IN init (4), /* Entry is logged in but no process. */ 3 81 NOW_HAS_PROCESS init (5), /* Entry has a valid process. */ 3 82 NOW_DIALING init (6), /* Entry (auto_call line) is dialing */ 3 83 NOW_DIALED_OUT init (7) /* Entry (auto_call line) is in use */ 3 84 ) fixed bin internal static options (constant); 3 85 3 86 dcl ACTIVE_VALUES (0:5) char (18) aligned int static options (constant) init 3 87 /* names of ute.active values */ 3 88 ("free", "hung-up", "listening", "dialed", "logged in, no proc", "logged in & proc"); 3 89 3 90 3 91 /**** Values for ute.tag */ 3 92 3 93 dcl (TAG_INTERACTIVE init("a"), 3 94 TAG_UFT init("f"), 3 95 TAG_ABSENTEE init("m"), 3 96 TAG_PROXY init("p"), 3 97 TAG_DAEMON init("z") 3 98 ) char(1) int static options(constant); 3 99 3 100 3 101 /**** Following are constants used to indicate to the process termination 3 102* handler the reason for the process termination. They are used by 3 103* uc_proc_term_handler_, as well as uc_ls_new_proc_request_ and 3 104* uc_ls_destroy_request_. */ 3 105 3 106 dcl ( 3 107 PT_FPE initial (1), 3 108 PT_LOGOUT initial (4), 3 109 PT_NEW_PROC_AUTH initial (13), 3 110 PT_HANGUP initial (20), 3 111 PT_SHUTDOWN initial (21), 3 112 PT_BUMP initial (22), 3 113 PT_ALARM initial (23), 3 114 PT_DETACH initial (24), 3 115 PT_UNBUMP initial (25), 3 116 PT_OPERATOR_TERMINATE initial (27), 3 117 PT_DESTROY_REQUEST initial (30), 3 118 PT_NEW_PROC_REQUEST initial (31) 3 119 ) fixed bin (17) internal static options (constant); 3 120 3 121 /**** Values for ute.preempted: 3 122* -1 user unbumped after term signal sent 3 123* 0 user unbumped; ignore alarm___ 3 124* 1 value internally used in load_ctl_ 3 125* 2 user bumped; when alarm___ comes in, send term signal 3 126* 3 term signal sent; destroy process if termsgnl, alarm___, or cpulimit 3 127* signals come in 3 128* 4 user bumped; process sick, so destroy without sending term signal 3 129* 5 trm_ signal sent, termsgnl received; (if still 3, we never got the 3 130* termsgnl). */ 3 131 3 132 dcl ( 3 133 PREEMPT_UNBUMP initial (-1), 3 134 PREEMPT_UNBUMP_IGNORE_ALARM initial (0), 3 135 PREEMPT_LOAD_CTL initial (1), 3 136 PREEMPT_BUMPED initial (2), 3 137 PREEMPT_TERM_SENT initial (3), 3 138 PREEMPT_BUMPED_NO_TERM initial (4), 3 139 PREEMPT_TERMSGNL_RECEIVED initial (5) 3 140 ) fixed bin (17) internal static options(constant); 3 141 3 142 dcl PREEMPT_VALUES (-1:5) char(28) varying int static options(constant) init( 3 143 "unbumped", 3 144 "not bumped, ignore alarm___", 3 145 "load_ctl_", 3 146 "bumped", 3 147 "bumped, trm_ sent", 3 148 "bumped without trm_", 3 149 "bumped, termsgnl received"); 3 150 3 151 /* END INCLUDE FILE ... dialup_values.incl.pl1 */ 193 194 /* BEGIN INCLUDE FILE ... sat.incl.pl1 */ 4 2 4 3 4 4 4 5 4 6 /****^ HISTORY COMMENTS: 4 7* 1) change(86-09-05,Parisek), approve(87-06-17,MCR7570), 4 8* audit(87-06-15,Hirneisen), install(87-08-06,MR12.1-1066): 4 9* Expand comment line of project.state to include the renamed state (state = 4 10* 3). 4 11* END HISTORY COMMENTS */ 4 12 4 13 4 14 4 15 /* Modified 740723 by PG to add AIM info */ 4 16 /* Modified 750604 by T. Casey to add priority scheduler parameters */ 4 17 /* Modified May 1976 by T. Casey to add project cutoff limits */ 4 18 /* Modified May 1978 by T. Casey to add pdir_quota */ 4 19 /* Modified November 1978 by T. Casey to add max_(fore back)ground and abs_foreground_cpu_limit */ 4 20 /* Modified July 1979 by J. N. R. Barnecut to support multiple rate structures. (UNCA) */ 4 21 /* Modified January 1982 by E. N. Kittlitz for user_attributes.incl.pl1 changes */ 4 22 /* Modified 1984-07-05 BIM range of authorizations, version 3 */ 4 23 4 24 dcl (SAT_version init (3), /* version 2 of this declaration */ 4 25 4 26 SAT_header_lth init (466), /* length in words of SAT header */ 4 27 SAT_entry_lth init (80), /* length in words of SAT entry */ 4 28 4 29 SAT_project_name_length init (9) /* proper length of project.project_id */ 4 30 ) fixed bin internal static options (constant); 4 31 4 32 dcl 1 sat based (satp) aligned, 4 33 5 1 /* BEGIN INCLUDE FILE author.incl.pl1 */ 5 2 5 3 /* the "author" items must always be the first ones in the table. The 5 4* module which moves the converted table to the System Control process 5 5* fills in these data items and assumes them to be at the head of the segment 5 6* regardless of the specific table's actual declaration. The variables 5 7* "lock" and "last_install_time" used to be "process_id" and "ev_channel" 5 8* respectively. For tables installed in multiple processes, these 5 9* are to be used to lock out multiple installations. */ 5 10 5 11 /* Lock should be used as a modification lock. Since, in general, 5 12* entries may not be moved in system tables, even by installations, 5 13* it is sufficient for only installers and programs that change threads 5 14* to set or respect the lock. Simply updating data in an entry 5 15* requires no such protection. 5 16* 5 17* Last_install_time is used by readers of system tables to detect 5 18* installations or other serious modifications. By checking it before 5 19* and after copying a block of data, they can be protected against 5 20* modifications. 5 21* 5 22* Modules that set the lock should save proc_group_id, and then 5 23* put their group id there for the time they hold the lock. 5 24* if they do not actually install the, they should restore the group id. 5 25**/ 5 26 5 27 2 author aligned, /* validation data about table's author */ 5 28 3 proc_group_id char (32), /* process-group-id (personid.projectid.tag) */ 5 29 3 lock bit (36), /* installation lock */ 5 30 3 update_attributes bit (1) unal, /* update/add/delete attributes */ 5 31 3 update_authorization bit (1) unal, /* update only authorizations */ 5 32 3 deferral_notified bit (1) unal, /* installer notified of deferral of installation */ 5 33 3 pad bit (33) unaligned, 5 34 3 last_install_time fixed bin (71), 5 35 3 table char (4), /* name of table, e.g., SAT MGT TTT RTDT PDT etc. */ 5 36 3 w_dir char (64), /* author's working directory */ 5 37 5 38 /* END INCLUDE FILE author.incl.pl1 */ 4 34 4 35 2 max_size fixed bin, /* max number of entries table can grow */ 4 36 2 current_size fixed bin, /* current size of table (in entries) */ 4 37 2 version fixed bin, /* version number of table (word 32) */ 4 38 2 freep fixed bin, /* free chain ptr. 0 if no free entries */ 4 39 2 n_projects fixed bin, /* number of entries actually used */ 4 40 2 pad_was_max_users bit (36) aligned, 4 41 2 max_units fixed bin, /* maximum number of login-units per session */ 4 42 2 pad_was_max_prim bit (36) aligned, 4 43 2 uwt_size fixed bin, /* size of User Weight Table */ 4 44 2 uwt (24) aligned, /* User Weight Table */ 4 45 3 initproc char (64) unaligned, /* user's initial procedure */ 4 46 3 units fixed bin, /* weight of initial procedure */ 4 47 2 system_admin (2) char (32) unal, /* system administrator ID */ 4 48 2 pad1 (4) fixed bin, /* padding to 466 wds */ 4 49 2 project (3258), /* The SAT entries. 255K segment. */ 4 50 3 pad (80) fixed bin; /* each entry is 80 words long */ 4 51 4 52 4 53 dcl 1 project based (satep) aligned, /* declaration of a single SAT entry */ 4 54 2 state fixed bin, /* state 1 = normal, 0 = free, 2 = deleted, 3 = renamed */ 4 55 2 project_id char (12) unaligned, /* project's name */ 4 56 2 project_dir char (64) unaligned, /* project's directory */ 4 57 2 pdt_ptr pointer, /* pointer to current PDT */ 4 58 2 max_users fixed bin, /* maximum number of users from project */ 4 59 2 n_users fixed bin, /* current number */ 4 60 2 at like user_attributes aligned, /* include user_attributes.incl.pl1 */ 4 61 2 admin (4) aligned, /* list of project's administrators */ 4 62 3 userid char (30) unal, /* administrator's user-id (personid.projectid) */ 4 63 3 pad char (2) unal, 4 64 2 cutoff char (1), /* if project is cut off, why. */ 4 65 2 min_ring fixed bin, /* lowest ring for project */ 4 66 2 max_ring fixed bin, /* highest ring for project */ 4 67 2 alias char (8) unal, /* project alias */ 4 68 2 group char (8) unal, /* default group for this project */ 4 69 2 grace_max fixed bin, /* maximum bump grace */ 4 70 2 audit bit (36), /* audit flags for project */ 4 71 2 project_authorization (2) bit (72), /* authorization of this project */ 4 72 2 groups (2) char (8) unal, /* authorized groups for this project */ 4 73 2 days_to_cutoff fixed bin (17) unaligned, /* these figures are as of last running of daily_summary */ 4 74 2 pct_balance fixed bin (17) unaligned, /* they are used for warning message printing only */ 4 75 2 dollars_to_cutoff float bin, /* and are not to be taken as up-to-date figures */ 4 76 2 pdir_quota fixed bin (17) unaligned, /* max pdir quota allowed for project */ 4 77 2 max_foreground fixed bin (9) unsigned unaligned, /* max simultaneous foreground and background */ 4 78 2 max_background fixed bin (9) unsigned unaligned, /* processes that a user on this project can have */ 4 79 2 abs_foreground_cpu_limit fixed bin (17) unaligned, /* time limit on foreground absentee jobs */ 4 80 2 rs_number fixed bin (9) unsigned unaligned, /* rate structure number (0=default rates ) */ 4 81 2 satpad1 fixed bin (9) unsigned unaligned, 4 82 2 satpad (1) bit (36) aligned, /* pad to 80 words */ 4 83 2 chain fixed bin; /* if free entry, chain */ 4 84 4 85 /* END INCLUDE FILE ... sat.incl.pl1 */ 194 195 196 dcl satp ptr automatic init (null); /* sat needs it */ 197 /* BEGIN INCLUDE FILE sys_log_constants.incl.pl1 ... 82-09-24 E. N. Kittlitz */ 6 2 6 3 6 4 /****^ HISTORY COMMENTS: 6 5* 1) change(87-04-22,GDixon), approve(87-06-10,MCR7708), 6 6* audit(87-06-02,Parisek), install(87-08-04,MR12.1-1056): 6 7* Added sl_info structure and associated named constants for use in calling 6 8* sys_log_$general. 6 9* END HISTORY COMMENTS */ 6 10 6 11 6 12 /* format: style4 */ 6 13 6 14 dcl ( 6 15 SL_TYPE_CRASH init (-3), /* type message with banner & kill system */ 6 16 SL_TYPE_BEEP init (-2), /* type message with banner */ 6 17 SL_TYPE init (-1), /* type message */ 6 18 SL_LOG_SILENT init (0), /* log message */ 6 19 SL_LOG init (1), /* log & type message */ 6 20 SL_LOG_BEEP init (2), /* log & type message with banner */ 6 21 SL_LOG_CRASH init (3) /* log & type message with banner & kill system */ 6 22 ) fixed bin internal static options (constant); 6 23 6 24 dcl 1 sl_info aligned automatic, 6 25 2 version char(8), /* structure version */ 6 26 2 arg_list_ptr ptr, /* arg_list with values */ 6 27 2 loc, 6 28 3 (mode, severity, code, caller, data, class, ioa_msg) fixed bin, 6 29 /* These flags control where the corresponding data item is found.*/ 6 30 /* -1: data appears in the corresponding structure element below */ 6 31 /* 0: data is not present anywhere */ 6 32 /* +N: data is Nth item in argument list pointed to by */ 6 33 /* sl_info.arg_list_ptr. Upon return, data copied into */ 6 34 /* corresponding structure element. */ 6 35 /* if data = +N: */ 6 36 /* argN is data_ptr, argN+1 is data_len */ 6 37 /* if ioa_msg = +N: */ 6 38 /* argN+1, ... argLAST are arguments substituted into the */ 6 39 /* ioa_msg control string. The formatted msg is returned. */ 6 40 2 flags, 6 41 3 ioa_msg_is_error_code bit(1) unal, /* ioa_ctl is error code. */ 6 42 3 flags_pad bit(35) unal, 6 43 2 mode fixed bin, /* as-mode, command-mode */ 6 44 2 severity fixed bin, /* error severity */ 6 45 2 code fixed bin(35), /* error table code */ 6 46 2 caller char(65) varying, /* caller refname$entryname*/ 6 47 2 data, /* binary data ptr/length */ 6 48 3 data_ptr ptr, 6 49 3 data_lth fixed bin(21), 6 50 2 class char(10) varying, /* binary data class */ 6 51 2 ioa_msg char(500) varying; /* formatted message text */ 6 52 6 53 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 6 54 /* */ 6 55 /* If data values (eg, sl_info.caller) are passed in the argument list, */ 6 56 /* their data types should be as shown in the structure above, except that */ 6 57 /* character strings should be char(*) nonvarying. */ 6 58 /* */ 6 59 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 6 60 6 61 /* value for sl_info.version */ 6 62 dcl SL_INFO_version_1 char (8) int static options(constant) init("sl_info1"); 6 63 6 64 /* values for sl_info.mode */ 6 65 dcl (SL_INFO_as_mode init(1), 6 66 SL_INFO_command_mode init(2)) fixed bin int static options(constant); 6 67 6 68 /* values for sl_info.loc.(severity code caller data class ioa_ctl arg) */ 6 69 dcl (SL_INFO_arg_given_in_structure init(-1), 6 70 SL_INFO_arg_not_given init(0)) fixed bin int static options(constant); 6 71 6 72 6 73 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 6 74 /* */ 6 75 /* The following static structures are commonly used in the Login Server */ 6 76 /* user control software. */ 6 77 /* */ 6 78 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 6 79 6 80 /* Syntax: call Abort (severity, code, ioa_ctl, args); */ 6 81 6 82 dcl 1 sl_info_sev_code_msg aligned int static options(constant), 6 83 2 version char(8) init ("sl_info1"), 6 84 2 arg_list_ptr ptr init (null), 6 85 2 loc, 6 86 3 (mode init (-1), 6 87 severity init ( 1), 6 88 code init ( 2), 6 89 caller init (-1), 6 90 data init ( 0), 6 91 class init ( 0), 6 92 ioa_msg init ( 3)) fixed bin, 6 93 2 flags, 6 94 3 ioa_msg_is_error_code bit(1) unal init ("0"b), 6 95 3 flags_pad bit(35) unal init ("0"b), 6 96 2 mode fixed bin init ( 1), 6 97 2 severity fixed bin init ( 0), 6 98 2 code fixed bin(35) init ( 0), 6 99 2 caller char(65) varying init (""), 6 100 2 data, 6 101 3 data_ptr ptr init (null), 6 102 3 data_lth fixed bin(21) init ( 0), 6 103 2 class char(10) varying init (""), 6 104 2 ioa_msg char(500) varying init (""); 6 105 6 106 /* Syntax: call Abort (severity, ioa_ctl, args); */ 6 107 6 108 dcl 1 sl_info_sev_msg aligned int static options(constant), 6 109 2 version char(8) init ("sl_info1"), 6 110 2 arg_list_ptr ptr init (null), 6 111 2 loc, 6 112 3 (mode init (-1), 6 113 severity init ( 1), 6 114 code init ( 0), 6 115 caller init (-1), 6 116 data init ( 0), 6 117 class init ( 0), 6 118 ioa_msg init ( 2)) fixed bin, 6 119 2 flags, 6 120 3 ioa_msg_is_error_code bit(1) unal init ("0"b), 6 121 3 flags_pad bit(35) unal init ("0"b), 6 122 2 mode fixed bin init ( 1), 6 123 2 severity fixed bin init ( 0), 6 124 2 code fixed bin(35) init ( 0), 6 125 2 caller char(65) varying init (""), 6 126 2 data, 6 127 3 data_ptr ptr init (null), 6 128 3 data_lth fixed bin(21) init ( 0), 6 129 2 class char(10) varying init (""), 6 130 2 ioa_msg char(500) varying init (""); 6 131 6 132 /* Syntax: call Abort (severity, ioa_ctl_as_error_code, args); */ 6 133 6 134 dcl 1 sl_info_sev_coded_msg aligned int static options(constant), 6 135 2 version char(8) init ("sl_info1"), 6 136 2 arg_list_ptr ptr init (null), 6 137 2 loc, 6 138 3 (mode init (-1), 6 139 severity init ( 1), 6 140 code init ( 0), 6 141 caller init (-1), 6 142 data init ( 0), 6 143 class init ( 0), 6 144 ioa_msg init ( 2)) fixed bin, 6 145 2 flags, 6 146 3 ioa_msg_is_error_code bit(1) unal init ("1"b), 6 147 3 flags_pad bit(35) unal init ("0"b), 6 148 2 mode fixed bin init ( 1), 6 149 2 severity fixed bin init ( 0), 6 150 2 code fixed bin(35) init ( 0), 6 151 2 caller char(65) varying init (""), 6 152 2 data, 6 153 3 data_ptr ptr init (null), 6 154 3 data_lth fixed bin(21) init ( 0), 6 155 2 class char(10) varying init (""), 6 156 2 ioa_msg char(500) varying init (""); 6 157 6 158 6 159 /* Syntax: call Abort (severity, code, error_return_label, ioa_ctl, args); */ 6 160 6 161 dcl 1 sl_info_sev_code_label_msg aligned int static options(constant), 6 162 2 version char(8) init ("sl_info1"), 6 163 2 arg_list_ptr ptr init (null), 6 164 2 loc, 6 165 3 (mode init (-1), 6 166 severity init ( 1), 6 167 code init ( 2), 6 168 caller init (-1), 6 169 data init ( 0), 6 170 class init ( 0), 6 171 ioa_msg init ( 4)) fixed bin, 6 172 2 flags, 6 173 3 ioa_msg_is_error_code bit(1) unal init ("0"b), 6 174 3 flags_pad bit(35) unal init ("0"b), 6 175 2 mode fixed bin init ( 1), 6 176 2 severity fixed bin init ( 0), 6 177 2 code fixed bin(35) init ( 0), 6 178 2 caller char(65) varying init (""), 6 179 2 data, 6 180 3 data_ptr ptr init (null), 6 181 3 data_lth fixed bin(21) init ( 0), 6 182 2 class char(10) varying init (""), 6 183 2 ioa_msg char(500) varying init (""); 6 184 6 185 /* Syntax: call Log_error (code, ioa_ctl, args); */ 6 186 6 187 dcl 1 sl_info_code_msg aligned int static options(constant), 6 188 2 version char(8) init ("sl_info1"), 6 189 2 arg_list_ptr ptr init (null), 6 190 2 loc, 6 191 3 (mode init (-1), 6 192 severity init (-1), 6 193 code init ( 1), 6 194 caller init (-1), 6 195 data init ( 0), 6 196 class init ( 0), 6 197 ioa_msg init ( 2)) fixed bin, 6 198 2 flags, 6 199 3 ioa_msg_is_error_code bit(1) unal init ("0"b), 6 200 3 flags_pad bit(35) unal init ("0"b), 6 201 2 mode fixed bin init ( 1), 6 202 2 severity fixed bin init ( 0), 6 203 2 code fixed bin(35) init ( 0), 6 204 2 caller char(65) varying init (""), 6 205 2 data, 6 206 3 data_ptr ptr init (null), 6 207 3 data_lth fixed bin(21) init ( 0), 6 208 2 class char(10) varying init (""), 6 209 2 ioa_msg char(500) varying init (""); 6 210 6 211 6 212 /* Syntax: call Trace (ioa_ctl, args); */ 6 213 6 214 dcl 1 sl_info_msg aligned int static options(constant), 6 215 2 version char(8) init ("sl_info1"), 6 216 2 arg_list_ptr ptr init (null), 6 217 2 loc, 6 218 3 (mode init (-1), 6 219 severity init (-1), 6 220 code init ( 0), 6 221 caller init (-1), 6 222 data init ( 0), 6 223 class init ( 0), 6 224 ioa_msg init ( 1)) fixed bin, 6 225 2 flags, 6 226 3 ioa_msg_is_error_code bit(1) unal init ("0"b), 6 227 3 flags_pad bit(35) unal init ("0"b), 6 228 2 mode fixed bin init ( 1), 6 229 2 severity fixed bin init ( 0), 6 230 2 code fixed bin(35) init ( 0), 6 231 2 caller char(65) varying init (""), 6 232 2 data, 6 233 3 data_ptr ptr init (null), 6 234 3 data_lth fixed bin(21) init ( 0), 6 235 2 class char(10) varying init (""), 6 236 2 ioa_msg char(500) varying init (""); 6 237 6 238 /* END INCLUDE FILE sys_log_constants.incl.pl1 */ 197 198 /* BEGIN INCLUDE FILE ... terminate_file.incl.pl1 */ 7 2 /* format: style2,^inddcls,idind32 */ 7 3 7 4 declare 1 terminate_file_switches based, 7 5 2 truncate bit (1) unaligned, 7 6 2 set_bc bit (1) unaligned, 7 7 2 terminate bit (1) unaligned, 7 8 2 force_write bit (1) unaligned, 7 9 2 delete bit (1) unaligned; 7 10 7 11 declare TERM_FILE_TRUNC bit (1) internal static options (constant) initial ("1"b); 7 12 declare TERM_FILE_BC bit (2) internal static options (constant) initial ("01"b); 7 13 declare TERM_FILE_TRUNC_BC bit (2) internal static options (constant) initial ("11"b); 7 14 declare TERM_FILE_TERM bit (3) internal static options (constant) initial ("001"b); 7 15 declare TERM_FILE_TRUNC_BC_TERM bit (3) internal static options (constant) initial ("111"b); 7 16 declare TERM_FILE_FORCE_WRITE bit (4) internal static options (constant) initial ("0001"b); 7 17 declare TERM_FILE_DELETE bit (5) internal static options (constant) initial ("00001"b); 7 18 7 19 /* END INCLUDE FILE ... terminate_file.incl.pl1 */ 198 199 /* BEGIN INCLUDE FILE ... user_attributes.incl.pl1 TAC 10/79 */ 8 2 8 3 8 4 /****^ HISTORY COMMENTS: 8 5* 1) change(86-12-11,Brunelle), approve(87-07-13,MCR7741), 8 6* audit(87-04-19,GDixon), install(87-08-04,MR12.1-1056): 8 7* Add incl for abs_attributes.incl.pl1 to automatically include absentee 8 8* attribute switches. 8 9* 2) change(87-04-19,GDixon), approve(87-07-13,MCR7741), 8 10* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 8 11* A) Add USER_ATTRIBUTE_NAMES arrays. attribute_names.incl.pl1 can thereby 8 12* be deleted. 8 13* B) Add constants identifying attributes that can be changed by user at 8 14* login, etc. 8 15* END HISTORY COMMENTS */ 8 16 8 17 8 18 /* Modified 82-01-03 E. N. Kittlitz. to declare a complete level-1 structure */ 8 19 8 20 /* format: style4 */ 8 21 dcl 1 user_attributes aligned based, /* the user user_attributes */ 8 22 (2 administrator bit (1), /* 1 system administrator privileges */ 8 23 2 primary_line bit (1), /* 2 user has primary-line privileges */ 8 24 2 nobump bit (1), /* 2 user cannot be bumped */ 8 25 2 guaranteed_login bit (1), /* 4 user has guaranteed login privileges */ 8 26 2 anonymous bit (1), /* 5 used only in SAT. project may have anon.users */ 8 27 2 nopreempt bit (1), /* 6 used only in PDT. user not preemptable by others 8 28* . of same project (distinct from "nobump") */ 8 29 2 nolist bit (1), /* 7 don't list user on "who" */ 8 30 2 dialok bit (1), /* 8 user may have multiple consoles */ 8 31 2 multip bit (1), /* 9 user may have several processes */ 8 32 2 bumping bit (1), /* 10 in SAT. Can users in project bump each other? */ 8 33 2 brief bit (1), /* 11 no login or logout message */ 8 34 2 vinitproc bit (1), /* 12 user may change initial procedure */ 8 35 2 vhomedir bit (1), /* 13 user may change homedir */ 8 36 2 nostartup bit (1), /* 14 user does not want start_up.ec */ 8 37 2 sb_ok bit (1), /* 15 user may be standby */ 8 38 2 pm_ok bit (1), /* 16 user may be primary */ 8 39 2 eo_ok bit (1), /* 17 user may be edit_only */ 8 40 2 daemon bit (1), /* 18 user may login as daemon */ 8 41 2 vdim bit (1), /* 19 * OBSOLETE * user may change outer mdle */ 8 42 2 no_warning bit (1), /* 20 no warning message */ 8 43 2 igroup bit (1), /* 21 in SAT: this project may give its users individual groups 8 44* . in PDT: this user has an individual load control group */ 8 45 2 save_pdir bit (1), /* 22 save pdir after fatal process error */ 8 46 2 disconnect_ok bit (1), /* 23 ok to save user's disconnected processes */ 8 47 2 save_on_disconnect bit (1), /* 24 save them unless -nosave login arg is given */ 8 48 2 pad bit (12)) unaligned; 8 49 8 50 dcl USER_ATTRIBUTE_NAMES (0:24) char (20) int static options (constant) init 8 51 ("none", /* 0 */ 8 52 "administrator", /* 1 */ 8 53 "primary_line", /* 2 */ 8 54 "nobump", /* 3 */ 8 55 "guaranteed_login", /* 4 */ 8 56 "anonymous", /* 5 */ 8 57 "nopreempt", /* 6 */ 8 58 "nolist", /* 7 */ 8 59 "dialok", /* 8 */ 8 60 "multip", /* 9 */ 8 61 "bumping", /* 10 */ 8 62 "brief", /* 11 */ 8 63 "vinitproc", /* 12 */ 8 64 "vhomedir", /* 13 */ 8 65 "nostartup", /* 14 */ 8 66 "no_secondary", /* 15 */ 8 67 "no_prime", /* 16 */ 8 68 "no_eo", /* 17 */ 8 69 "daemon", /* 18 */ 8 70 "", /* 19 vdim OBSOLETE */ 8 71 "no_warning", /* 20 */ 8 72 "igroup", /* 21 */ 8 73 "save_pdir", /* 22 */ 8 74 "disconnect_ok", /* 23 */ 8 75 "save_on_disconnect"); /* 24 */ 8 76 8 77 dcl ALT_USER_ATTRIBUTE_NAMES (0:24) char (20) int static options (constant) init 8 78 ("null", /* 0 */ 8 79 "admin", /* 1 */ 8 80 "", "", /* 2 - 3 */ 8 81 "guar", /* 4 */ 8 82 "anon", /* 5 */ 8 83 "", "", /* 6 - 7 */ 8 84 "dial", /* 8 */ 8 85 "multi_login", /* 9 */ 8 86 "preempting", /* 10 */ 8 87 "", /* 11 */ 8 88 "v_process_overseer", /* 12 */ 8 89 "v_home_dir", /* 13 */ 8 90 "no_start_up", /* 14 */ 8 91 "no_sec", /* 15 */ 8 92 "no_primary", /* 16 */ 8 93 "no_edit_only", /* 17 */ 8 94 "op_login", /* 18 */ 8 95 "", /* 19 */ 8 96 "nowarn", /* 20 */ 8 97 "", "", "", /* 21 - 23 */ 8 98 "save"); /* 24 */ 8 99 8 100 dcl USER_ATTRIBUTES_always_allowed bit (36) aligned int static 8 101 options(constant) init("000000000010000000010000000000000000"b); 8 102 /* SAT/PDT attributes not needed for user to give (brief, no_warning) */ 8 103 8 104 dcl USER_ATTRIBUTES_default_in_pdt bit (36) aligned int static 8 105 options(constant) init("000000000010000000010000000000000000"b); 8 106 /* PDT value for (brief, no_warning) is default */ 8 107 8 108 dcl USER_ATTRIBUTES_settable_by_user bit (36) aligned int static 8 109 options(constant) init("000100000110010000010000000000000000"b); 8 110 /* user MIGHT set (bump, ns, brief, guar, no_warning) */ 8 111 9 1 /* BEGIN INCLUDE FILE ... user_abs_attributes.incl.pl1 */ 9 2 9 3 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 9 4 /* */ 9 5 /* This include file describes the attributes of an absentee job. It is */ 9 6 /* used by user_table_entry.incl.pl1, abs_message_format.incl.pl1 */ 9 7 /* and PIT.incl.pl1. */ 9 8 /* */ 9 9 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 9 10 9 11 /****^ HISTORY COMMENTS: 9 12* 1) change(86-12-08,GDixon), approve(87-07-13,MCR7741), 9 13* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 9 14* Separated abs_attributes from the request structure 9 15* (abs_message_format.incl.pl1) so that the identical structure could be 9 16* used in the ute structure (user_table_entry.incl.pl1). 9 17* 2) change(87-04-19,GDixon), approve(87-07-13,MCR7741), 9 18* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 9 19* Added ABS_ATTRIBUTE_NAMES array. 9 20* 3) change(87-11-11,Parisek), approve(88-02-11,MCR7849), 9 21* audit(88-03-22,Lippard), install(88-07-13,MR12.2-1047): 9 22* Added the no_start_up flag. SCP6367 9 23* END HISTORY COMMENTS */ 9 24 9 25 dcl 1 user_abs_attributes aligned based, 9 26 2 restartable bit (1) unaligned, /* 1 if request may be started over from the beginning */ 9 27 2 user_deferred_until_time bit (1) unaligned, /* 1 if request was specified as deferred */ 9 28 2 proxy bit (1) unaligned, /* 1 if request submitted for someone else */ 9 29 2 set_bit_cnt bit (1) unaligned, /* 1 if should set bit count after every write call */ 9 30 2 time_in_gmt bit (1) unaligned, /* 1 if deferred_time is in GMT */ 9 31 2 user_deferred_indefinitely bit (1) unaligned, /* 1 if operator is to say when to run it */ 9 32 2 secondary_ok bit (1) unaligned, /* 1 if ok to log in as secondary foreground user */ 9 33 2 truncate_absout bit (1) unaligned, /* 1 if .absout is to be truncated */ 9 34 2 restarted bit (1) unaligned, /* 1 if job is restarted */ 9 35 2 no_start_up bit (1) unaligned, /* 1 if requested -ns */ 9 36 2 attributes_pad bit (26) unaligned; 9 37 9 38 dcl ABS_ATTRIBUTE_NAMES (10) char (28) varying int static options(constant) init( 9 39 "restartable", 9 40 "user_deferred_until_time", 9 41 "proxy", 9 42 "set_bit_cnt", 9 43 "time_in_gmt", 9 44 "user_deferred_indefinitely", 9 45 "secondary_ok", 9 46 "truncate_absout", 9 47 "restarted", 9 48 "no_start_up"); 9 49 9 50 /* END INCLUDE FILE ... user_abs_attributes.incl.pl1 */ 9 51 8 112 8 113 8 114 /* END INCLUDE FILE ... user_attributes.incl.pl1 */ 199 200 /* BEGIN INCLUDE FILE ... user_table_entry.incl.pl1 */ 10 2 10 3 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 10 4 /* */ 10 5 /* This include file requires that the user include */ 10 6 /* user_attributes.incl.pl1 as well. It also includes */ 10 7 /* abs_attributes.incl.pl1 itself. */ 10 8 /* */ 10 9 /* This include file must be included to use absentee_user_table.incl.pl1, */ 10 10 /* answer_table.incl.pl1, and daemon_user_table.incl.pl1. */ 10 11 /* */ 10 12 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 10 13 10 14 /****^ HISTORY COMMENTS: 10 15* 1) change(81-12-21,Gilcrease), approve(86-03-27,MCR7370), 10 16* audit(86-06-23,Lippard), install(86-06-30,MR12.0-1082): 10 17* This comment for hcom. 10 18* 81-12-21 E. N. Kittlitz. derived from abs_user_tab.incl.pl1, 10 19* anstbl.incl.pl1, and dutbl.incl.pl1. 10 20* 82-01-02 E. N. Kittlitz. user_attributes.incl.pl1 changes 10 21* 84-04-04 BIM added privileged_dial_server and dial_server_ring 10 22* 84-07-12 BIM added min_process_authorization 10 23* 84-12-31 Keith Loepere added pdir_dir_quota 10 24* 85-01-16 by E. Swenson to add ute.session_uid 10 25* 2) change(85-11-16,Swenson), approve(87-07-13,MCR7737), 10 26* audit(87-04-14,GDixon), install(87-08-04,MR12.1-1056): 10 27* Added fields for DSA login server support. 10 28* 3) change(86-03-27,Gilcrease), approve(86-03-27,MCR7370), 10 29* audit(86-06-23,Lippard), install(86-06-30,MR12.0-1082): 10 30* Add truncate_absout and restarted bit for -truncate absout, SCP6297. 10 31* 4) change(86-04-09,Herbst), approve(87-07-13,MCR7697), 10 32* audit(87-04-14,GDixon), install(87-08-04,MR12.1-1056): 10 33* Added disconnection_rel_minutes. 10 34* 5) change(86-12-08,GDixon), approve(87-07-13,MCR7741), 10 35* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 10 36* Changed structure under ute.abs_attributes to use like structure in 10 37* abs_attributes.incl.pl1. This allows the same attributes to be used 10 38* in abs_message_format.incl.pl1 and pit.incl.pl1 as well as this include 10 39* file. 10 40* 6) change(87-04-14,GDixon), approve(87-07-13,MCR7741), 10 41* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 10 42* Move constants for ute.pw_flags.mask_ctl from answer_table.incl.pl1. 10 43* 7) change(87-04-16,GDixon), approve(87-07-13,MCR7741), 10 44* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 10 45* A) Global reorganization to locate things by type of data. 10 46* B) Eliminate ute.uflags.logged_in. 10 47* 8) change(87-05-10,GDixon), approve(87-07-13,MCR7741), 10 48* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 10 49* A) Reduced overlength person and project fields to proper length. 10 50* B) Adjusted dialed-console section to begin on even word boundary. 10 51* 9) change(87-05-13,GDixon), approve(87-07-13,MCR7741), 10 52* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 10 53* Add ute.line_type. 10 54* 10) change(87-11-19,Parisek), approve(88-02-11,MCR7849), 10 55* audit(88-02-23,Lippard), install(88-07-13,MR12.2-1047): 10 56* Added the lowest_ring element. Used the upper half of ute.highest_ring 10 57* for the storage. SCP6367 10 58* END HISTORY COMMENTS */ 10 59 10 60 /* format: style4 */ 10 61 10 62 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 10 63 /* */ 10 64 /* Each of the named sections below defines a type of data. Typing comes */ 10 65 /* from data associated with the ute entry itself, with the person, with */ 10 66 /* login argument data, from the main user of the data (eg, dialup_, */ 10 67 /* load_ctl_, login server). Each section begins on a double-word boundary */ 10 68 /* and is an even number of words long. The total structure is 300 decimal */ 10 69 /* words long. */ 10 70 /* */ 10 71 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 10 72 10 73 10 74 dcl UTE_version_4 fixed bin internal static options (constant) init (4); 10 75 10 76 dcl utep pointer automatic init (null); 10 77 10 78 dcl 1 ute based (utep) aligned, /* individual entry in one of the user control tables */ 10 79 10 80 /* Variables which give state of this entry */ 10 81 2 active fixed bin, /* state of entry. 0=>free. see dialup_values.incl.pl1 */ 10 82 2 process_type fixed bin, /* 1=interactive, 2=absentee, 3=daemon */ 10 83 2 ute_index fixed bin, /* index of ute in (anstbl autbl dutbl).entry array */ 10 84 2 next_free fixed bin, /* points to previous free entry */ 10 85 10 86 /* Information user gave about person_id associated with this entry. */ 10 87 2 person char (24) unal, /* user's name */ 10 88 2 project char (12) unal, /* project of absentee user */ 10 89 2 tag char (1) unal, /* instance tag - someday will be generated */ 10 90 2 tag_pad bit (27) unal, 10 91 2 anonymous fixed bin, /* 1 if anonymous, otherwise 0 */ 10 92 2 login_flags, /* flags for login data */ 10 93 3 cpw bit (1) unal, /* flag for wish to change password */ 10 94 3 generate_pw bit (1) unal, /* flag meaning -generate_pw (-gpw) was used. */ 10 95 3 special_pw unal, /* dial or slave */ 10 96 4 dial_pw bit (1) unal, /* true if dial -user */ 10 97 4 slave_pw bit (1) unal, /* true if slave -user */ 10 98 3 cdp bit (1) unal, /* flag for wish to change default project */ 10 99 3 cda bit (1) unal, /* flag to change default authorization */ 10 100 3 auth_given bit (1) unal, /* flag to mean -authorization was used. */ 10 101 3 noprint bit (1) unal, /* used at logout. inhibits printing. */ 10 102 3 operator bit (1) unaligned, /* user specified -operator on login command line */ 10 103 3 pw_pad bit (25) unal, /* spare parts */ 10 104 3 mask_ctl bit (2) unal, /* bits controlling pw mask. See constants, below */ 10 105 /* Must remain last in pw_flags so it does not */ 10 106 /* appear in PW_FLAG_VALUES array below. */ 10 107 2 generated_pw char (8) unal, /* user must type this as new password */ 10 108 2 old_password char (8) unal, /* must match user's previous password (value scrambled) */ 10 109 2 process_authorization bit (72), /* access_authorization of this process */ 10 110 10 111 /* Information user gave about process associated with this entry. */ 10 112 2 outer_module char (32) unal, /* Name of console dim */ 10 113 2 home_dir char (64) unal, /* initial home directory */ 10 114 2 init_proc char (64) unal, /* name of login responder */ 10 115 2 ip_len fixed bin (17) unal, /* length of initproc string */ 10 116 2 ss_len fixed bin (17) unal, /* length of subsystem string */ 10 117 2 ur_at like user_attributes aligned, /* bits on means attributes given by user */ 10 118 2 at like user_attributes aligned, /* bits on means attribute is on */ 10 119 2 initial_ring fixed bin, /* ring process will be started in */ 10 120 2 arg_count fixed bin, /* number of arguments to absentee control segment */ 10 121 2 ln_args fixed bin, /* length of string containing arguments */ 10 122 2 arg_lengths_ptr ptr, /* pointer to array of argument lengths */ 10 123 2 args_ptr ptr, /* pointer to arguments to absentee control segment */ 10 124 10 125 /* Most of the following information is relevant only to absentee processes */ 10 126 2 input_seg char (168) unal, /* pathname of absentee control segment */ 10 127 2 output_seg char (168) unal, /* pathname of absentee output file */ 10 128 2 request_id fixed bin (71), /* time request was entered - used as uid of request */ 10 129 2 reservation_id fixed bin (71), /* nonzero if job has a resource reservation */ 10 130 2 message_id bit (72), /* message segment id assoc with absentee request */ 10 131 2 deferred_time fixed bin (71), /* time at which absentee process should be created */ 10 132 2 max_cpu_time fixed bin (35), /* maximum number of seconds this process can run */ 10 133 2 queue fixed bin, /* -1=daemon;0=interactive or foreground;>0=queue no. 10 134* (but see uflags.adjust_abs_q_no). */ 10 135 2 real_queue fixed bin, /* real queue number; ute.queue gets fudged sometimes */ 10 136 2 abs_attributes aligned like user_abs_attributes, /* include abs_attributes.incl.pl1 */ 10 137 2 abs_flags, 10 138 3 abs_run bit (1) unal, /* on if job was started by abs run command */ 10 139 3 notify bit (1) unal, /* on if user wants notification at login and logout */ 10 140 3 abs_flags_pad bit (34) unal, 10 141 2 abs_group char (8) unal, /* original group before load_ctl_ moves it to absentee group */ 10 142 2 sender char (32) unal, /* name of RJE station that job is from */ 10 143 2 proxy_person char (28) unal, /* name of user who actually entered the request, if proxy */ 10 144 2 proxy_project char (9) unal, 10 145 2 proxy_project_pad char (3) unal, 10 146 2 abs_pad fixed bin, 10 147 10 148 /* Information about process actually created */ 10 149 2 proc_id bit (36), /* process id of absentee process */ 10 150 2 session_uid fixed bin (35), /* Unique authentication session id */ 10 151 2 process_authorization_range (2) bit (72) aligned, 10 152 2 audit bit (36), /* audit flags for user */ 10 153 2 lot_size fixed bin, /* Size of linkage offset table */ 10 154 2 kst_size fixed bin, /* Size of process known segment table */ 10 155 2 cls_size fixed bin, /* Size of process combined linkage */ 10 156 2 sus_channel fixed bin (71), /* event channel on which suspended process is blocked */ 10 157 2 lowest_ring fixed bin (17) unal, /* lowest ring permitted */ 10 158 2 highest_ring fixed bin (17) unal, /* highest ring permitted */ 10 159 2 pdir_lvix fixed bin (17) unal, /* index in disk table of lv where pdir is */ 10 160 2 pdir_quota fixed bin (17) unal, /* process directory quota */ 10 161 2 pdir_dir_quota fixed bin (17) unal, /* process directory quota for dirs */ 10 162 2 pdir_pad fixed bin(17) unal, 10 163 2 process_pad fixed bin, 10 164 10 165 /* Information about primary terminal associated with this entry */ 10 166 2 tty_name char (32) unal, /* absentee=>"abs1", etc. daemon=>"bk", etc. */ 10 167 2 terminal_type char (32) unaligned, /* terminal type */ 10 168 2 line_type fixed bin, /* line type */ 10 169 2 tty_id_code char (4) unal, /* "none" for absentee */ 10 170 2 network_connection_type fixed bin, /* see net_event_message.incl.pl1 */ 10 171 2 channel ptr unal, /* points to CDT entry for user, if any */ 10 172 10 173 /* Variables useful for dialed terminals */ 10 174 2 ndialed_consoles fixed bin, /* if master, number of slaves */ 10 175 2 dial_qualifier char (22) unal, /* first argument to dial command */ 10 176 2 dial_server_ring fixed bin (3) unsigned unaligned, /* dial server intends to attach dialing in channels at this ring. */ 10 177 2 dial_server_flags, 10 178 3 registered_dial_server bit (1) unal, /* process is a registered dial server */ 10 179 3 privileged_dial_server bit (1) unal, /* "1"b -> serves range of AIM classes */ 10 180 3 dial_server_flags_pad bit (13) unal, /* fill out the word */ 10 181 2 dial_ev_chn fixed bin (71), /* if master, control event channel */ 10 182 10 183 /* Information about usage/accounting. Device usage meters are in a 10 184* separate segment, "devtab" */ 10 185 2 pdtep ptr, /* ptr to user's pdt entry, where usage meters live */ 10 186 2 cpu_this_process fixed bin (71), /* cpu used so far this process */ 10 187 2 cpu_usage fixed bin (71), /* total cpu time used in this session */ 10 188 2 mem_usage fixed bin (71), /* memory usage for previous processes in session */ 10 189 2 mem_this_process fixed bin (71), /* memory usage at last update */ 10 190 2 last_update_time fixed bin (71), /* time of last account update */ 10 191 2 session_cost float bin, /* dollar cost of session, for printing in logout messages */ 10 192 2 ndevices fixed bin, /* Count of attached devices */ 10 193 2 device_head fixed bin, /* Table index of head of device chain */ 10 194 2 device_tail fixed bin, /* Table index of tail of device chain */ 10 195 2 rs_number fixed bin (6) unsigned unal, /* rate structure number */ 10 196 2 rs_number_pad bit(30) unal, 10 197 2 usage_pad fixed bin, 10 198 10 199 /* Information for dialup_ (control variables). */ 10 200 2 event fixed bin (71), /* event associated with channel or user manager */ 10 201 2 uprojp ptr, /* ptr to user project sat entry */ 10 202 2 login_time fixed bin (71), /* time when absentee user approved by lg_ctl_ */ 10 203 2 cant_bump_until fixed bin (71), /* bump-protection clock */ 10 204 2 recent_fatal_error_time fixed bin (71), /* time of first error in the suspected loop */ 10 205 2 recent_fatal_error_count fixed bin, /* counter to detect fatal process error loops */ 10 206 2 failure_reason fixed bin, /* why login refused 1=lg_ctl, 2=act_ctl, 3=load_ctl */ 10 207 2 count fixed bin, /* counter for logins and dialups */ 10 208 2 n_processes fixed bin, /* number of processes created in this session */ 10 209 2 lock_value fixed bin, /* number of locks set for this entry */ 10 210 2 login_result fixed bin, /* 0=logged in;1=hopeless,hang him up;2=allow another attempt */ 10 211 2 login_code char (8) unal, /* login command from LOGIN line */ 10 212 2 preempted fixed bin, /* if ^= 0 user preempted (never for abs) */ 10 213 2 destroy_flag fixed bin, /* >8 when awaiting destroy */ 10 214 2 logout_type char (4) unal, /* type of logout */ 10 215 2 logout_index fixed bin, /* to save logout handler index while waiting for termsgnl */ 10 216 2 disconnection_rel_minutes fixed bin (17) unal, /* disconnected this many minutes after login_time */ 10 217 2 next_disconnected_ate_index fixed bin (17) unal, /* thread of list of user's disconnected processes */ 10 218 2 work_class fixed bin, /* work class used by priority scheduler */ 10 219 2 group char (8) unal, /* party group identifier */ 10 220 2 whotabx fixed bin, /* index of user's entry in whotab */ 10 221 10 222 2 uflags, /* Miscellaneous flags */ 10 223 3 dont_call_init_admin bit (1) unal, /* Call overseer directly */ 10 224 3 ip_given bit (1) unal, /* user gave an initproc arg on login line */ 10 225 3 ss_given bit (1) unal, /* initial_procedure contains a subsystem name */ 10 226 3 lvs_attached bit (1) unal, /* set and used by the lv_request_ procedure */ 10 227 3 send_initial_string bit (1) unal, /* initial string should be sent after login line read */ 10 228 3 adjust_abs_q_no bit (1) unal, /* this is an absentee job; user_profile.queue is NOT true Q # */ 10 229 3 foreground_secondary_ok bit (1) unal, /* ok to login foreground absentee job as secondary */ 10 230 3 foreground_job bit (1) unal, /* job was originally from foreground queue */ 10 231 3 sus_sent bit (1) unal, /* sus_ ips signal has been sent to process */ 10 232 3 suspended bit (1) unal, /* process has responded to sus_ signal */ 10 233 3 ignore_cpulimit bit (1) unal, /* process is released, but timer can't be turned off */ 10 234 3 deferral_logged bit (1) unal, /* abs job deferral has already been logged once */ 10 235 3 save_if_disconnected bit (1) unal, /* user wants process preserved across hangups */ 10 236 3 disconnected bit (1) unal, /* process is disconnected from terminal */ 10 237 3 disconnected_list bit (1) unal, /* this ate is on a list of disconnected processes */ 10 238 3 proc_create_ok bit (1) unal, /* lg_ctl_ has set the process creation variables */ 10 239 3 activity_can_unbump bit (1) unal, /* only bump pending is for inactivity */ 10 240 3 fpe_causes_logout bit (1) unal, /* "1"b means don't try to new_proc after fatal process error */ 10 241 3 user_specified_immediate bit (1) unal, /* "1"b -> don't wait around for process destruction. */ 10 242 3 uflags_pad bit (17) unal, 10 243 10 244 /* Information used by load_ctl_ for the process */ 10 245 2 user_weight fixed bin, /* usually 10 - used in load control */ 10 246 2 standby_line fixed bin, /* 0=user has primary line, 1=standby user */ 10 247 2 bump_grace fixed bin (71), /* bump grace in microseconds */ 10 248 10 249 10 250 /* Information for login server */ 10 251 2 login_server_info, 10 252 3 our_handle bit (72) aligned, /* how LS refers to us. */ 10 253 3 his_handle bit (72) aligned, /* how we talk to LS */ 10 254 3 termination_event_channel fixed bin (71), /* for process termination notifications to the LS */ 10 255 3 response_event_channel fixed bin (71), /* for other communications with the LS */ 10 256 3 process_id bit (36) aligned, /* process_id of login server */ 10 257 2 ls_pad (5) fixed bin; /* pad to 300 decimal words */ 10 258 10 259 /* values for ute.process_type */ 10 260 10 261 dcl (PT_INTERACTIVE initial (1), 10 262 PT_ABSENTEE initial (2), 10 263 PT_DAEMON initial (3)) fixed bin internal static options (constant); 10 264 10 265 dcl PROCESS_TYPE_NAMES (0:3) char(12) varying int static options(constant) init( 10 266 "INVALID-TYPE", 10 267 "interactive", 10 268 "absentee", 10 269 "daemon"); 10 270 10 271 dcl TABLE_NAMES (0:3) char(20) int static options(constant) init( 10 272 "UNKNOWN-TABLE", 10 273 "answer_table", 10 274 "absentee_user_table", 10 275 "daemon_user_table"); 10 276 10 277 10 278 /* values for ute.pw_flags.mask_ctl */ 10 279 10 280 dcl (DO_MASK init ("00"b), 10 281 DONT_MASK init ("01"b), 10 282 DERIVE_MASK init ("10"b)) bit (2) internal static options (constant); 10 283 10 284 dcl MASK_CTL_NAMES (0:3) char(12) varying int static options(constant) init( 10 285 "do_mask", "dont_mask", "derive_mask", ""); 10 286 10 287 10 288 /* names for ute.pw_flags */ 10 289 10 290 dcl PW_FLAG_NAMES (9) char (12) varying int static options(constant) init( 10 291 "cpw", 10 292 "generate_pw", 10 293 "dial_pw", 10 294 "slave_pw", 10 295 "cdp", 10 296 "cda", 10 297 "auth_given", 10 298 "noprint", 10 299 "operator"); 10 300 10 301 /* names for ute.uflags */ 10 302 10 303 dcl UFLAG_NAMES (19) char (24) varying int static options (constant) init ( 10 304 "dont_call_init_admin", 10 305 "ip_given", 10 306 "ss_given", 10 307 "lvs_attached", 10 308 "send_initial_string", 10 309 "adjust_abs_q_no", 10 310 "foreground_secondary_ok", 10 311 "foreground_job", 10 312 "sus_sent", 10 313 "suspended", 10 314 "ignore_cpulimit", 10 315 "deferral_logged", 10 316 "save_if_disconnected", 10 317 "disconnected", 10 318 "disconnected_list", 10 319 "proc_create_ok", 10 320 "activity_can_unbump", 10 321 "fpe_causes_logout", 10 322 "user_specified_immediate"); 10 323 10 324 /* names for ute.abs_flags */ 10 325 10 326 dcl ABS_FLAG_NAMES (2) char (8) varying int static options (constant) init ( 10 327 "abs_run", 10 328 "notify"); 10 329 10 330 /* names of ute.dial_server_flags */ 10 331 10 332 dcl DIAL_SERVER_FLAG_NAMES (2) char (12) varying int static options (constant) init ( 10 333 "registered", 10 334 "privileged"); 10 335 10 336 /* values of ute.login_result */ 10 337 10 338 dcl LOGIN_RESULT_VALUES (0:2) char(24) varying int static options(constant) init( 10 339 "logged in", 10 340 "login failed, hangup", 10 341 "login failed, try again"); 10 342 10 343 /* END INCLUDE FILE ... user_table_entry.incl.pl1 */ 200 201 /* BEGIN INCLUDE FILE ... user_table_header.incl.pl1 */ 11 2 11 3 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 11 4 /* */ 11 5 /* This include file declares the header shared by the answer_table, */ 11 6 /* absentee_user_table and daemon_user_table include files. */ 11 7 /* */ 11 8 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 11 9 11 10 /****^ HISTORY COMMENTS: 11 11* 1) change(87-04-26,GDixon), approve(87-07-13,MCR7741), 11 12* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 11 13* Initial coding. 11 14* END HISTORY COMMENTS */ 11 15 11 16 dcl 1 ut_header aligned based, /* header shared by all user control tables. */ 11 17 2 header_version fixed bin, /* version of the header (3) */ 11 18 2 entry_version fixed bin, /* version of user table entries */ 11 19 2 user_table_type fixed bin, /* 1 interactive, 2 absentee, 3 daemon */ 11 20 2 header_length fixed bin, /* length of the header */ 11 21 2 max_size fixed bin, /* max number of entries in this table */ 11 22 2 current_size fixed bin, /* actual size of table (in entries) */ 11 23 2 number_free fixed bin, /* number of free entries in the table. */ 11 24 2 first_free fixed bin, /* index of first entry in the free list. */ 11 25 2 as_procid bit (36), /* process ID of user table manager process */ 11 26 2 ut_header_pad fixed bin; 11 27 11 28 /* END INCLUDE FILE ... user_table_header.incl.pl1 */ 201 202 /* BEGIN INCLUDE FILE ... whotab.incl.pl1 */ 12 2 12 3 /* Modified 740723 by PG to add security info */ 12 4 /* Modified April 1976 by T. Casey to add shift and shift start and end times */ 12 5 /* Modified May 1979 by T. Casey for MR7.0a to add foreground absentee variables */ 12 6 /* Modified June 1981 by E. N. Kittlitz to add n_rate_structures. */ 12 7 /* Modified December 1981 by E. N. Kittlitz to expand header. */ 12 8 /* Modified 84-11-14 by E. A. Ranzenbach to add "session" fiedld in place of obsolete system ID... */ 12 9 12 10 dcl 1 whotab based (whoptr) aligned, 12 11 2 mxusers fixed bin, /* max. number of users on system */ 12 12 2 n_users fixed bin, /* current number of users */ 12 13 2 mxunits fixed bin, /* maximun "load units" allowed */ 12 14 2 n_units fixed bin, /* current load */ 12 15 2 timeup fixed bin (71), /* time system was started */ 12 16 2 session char (8), /* AS state, same as anstbl.session */ 12 17 2 nextsd fixed bin (71), /* time we will shutdown */ 12 18 2 until fixed bin (71), /* projected time we start up again */ 12 19 2 lastsd fixed bin (71), /* time of last crash or shutdown */ 12 20 2 erfno char (8), /* if a crash, the error number */ 12 21 2 obsolete_why char (32), /* reason for last shutdown */ 12 22 2 installation_id char (32), /* name of installation */ 12 23 2 obsolete_message char (32), /* message for all users */ 12 24 2 abs_event fixed bin (71), /* event channel associated with absentee */ 12 25 2 abs_procid bit (36) aligned, /* process to whom messages about absentee are signalled */ 12 26 2 max_abs_users fixed bin, /* max number of absentee users */ 12 27 2 abs_users fixed bin, /* number of absentee users logged-in */ 12 28 2 n_daemons fixed bin, /* Number of daemon users logged in */ 12 29 2 request_channel fixed bin (71), /* System master channel for requests to AS. */ 12 30 2 request_process_id bit (36), /* Process ID of request dispatcher */ 12 31 2 shift fixed bin, /* current shift (copied from anstbl, for users to see) */ 12 32 2 next_shift_change_time fixed bin (71), /* time current shift ends */ 12 33 2 last_shift_change_time fixed bin (71), /* time current shift started */ 12 34 2 fg_abs_users fixed bin (17) unal, /* number of foreground absentee users */ 12 35 2 n_rate_structures fixed bin (9) unsigned unal, /* number of rate_structures defined at bootload */ 12 36 2 pad1 bit (9) unal, 12 37 2 pad (3) fixed bin, 12 38 2 version fixed bin, /* structure version */ 12 39 2 header_size fixed bin, /* length of header in words */ 12 40 2 entry_size fixed bin, /* length of entry in words */ 12 41 /* laste_adjust is used only by Answering Service programs */ 12 42 2 laste_adjust fixed bin, /* count of 32 wd blocks in hdr from header_extension_mbz1 */ 12 43 2 laste fixed bin, /* index of last entry in use (includes laste_adjust) */ 12 44 2 freep fixed bin (18) unsigned, /* index of first free entry. chained thru "chain" */ 12 45 12 46 /* whotab header extension: The header is extended from 64 words by 12 47* annexing whole user entries from the 'e' array. Each 'e' entry is 32 words 12 48* long. Each annexed block has its first word set to zero, indicating that no user entry is 12 49* present. This allows existing programs to function with old definitions of 12 50* whotab. Obviously no new header field can be more than 31 contiguous words in 12 51* length. In the Answering Service, all programs using whotab must be compiled 12 52* with the latest version. Only lg_ctl_ uses laste_adjust. */ 12 53 12 54 2 header_extension_mbz1 fixed bin, /* location 100o */ 12 55 2 n_abs (4) fixed bin, /* number of processes from each background queue */ 12 56 2 abs_qres (4) fixed bin, /* number of absentee positions reserved for each queue */ 12 57 2 abs_cpu_limit (4) fixed bin (35), /* current absentee cpu limits */ 12 58 2 abs_control, /* see absentee_user_table */ 12 59 3 mnbz bit (1) unal, /* must not be zero */ 12 60 3 abs_maxu_auto bit (1) unal, /* 1 if automatic */ 12 61 3 abs_maxq_auto bit (1) unal, /* 1 if automatic */ 12 62 3 abs_qres_auto bit (1) unal, /* 1 if automatic */ 12 63 3 abs_cpu_limit_auto bit (1) unal, /* 1 if automatic */ 12 64 3 queue_dropped (-1:4) bit (1) unal, /* 1 if queue dropped */ 12 65 3 abs_up bit (1) unal, /* 1 if absentee facility is running */ 12 66 3 abs_stopped bit (1) unal, /* 1 if absentee facility is stopped */ 12 67 3 control_pad bit (23) unal, 12 68 2 installation_request_channel fixed bin (71), /* IPC channel for install command */ 12 69 2 installation_request_pid bit (36), /* installation process identifier */ 12 70 2 sysid char (32), /* current system name */ 12 71 2 header_extension_pad1 (7) fixed bin, /* pad to size of e element, offset 137o */ 12 72 2 header_extension_mbz2 fixed bin, /* offset 140o */ 12 73 2 message char (124), /* message for all users */ 12 74 2 header_extension_mbz3 fixed bin, /* offset 200o */ 12 75 2 why char (124), /* reason for last shutdown */ 12 76 2 e (1000), /* offset 240o */ 12 77 3 active fixed bin, /* nonzero means logged in */ 12 78 3 person char (28) aligned, /* person name */ 12 79 3 project char (28), /* project id */ 12 80 3 anon fixed bin, /* 1 if anonymous user */ 12 81 3 padding fixed bin (71), 12 82 3 timeon fixed bin (71), /* time of login */ 12 83 3 units fixed bin, /* load units */ 12 84 3 stby fixed bin, /* 1 if stby */ 12 85 3 idcode char (4), /* tty id code */ 12 86 3 chain fixed bin (18) unsigned, /* chain for free list */ 12 87 3 proc_type fixed bin, /* 1 = interactive, 2 = absentee, 3 = daemon */ 12 88 3 group char (8), /* party-line group */ 12 89 3 fg_abs bit (1) unal, /* "1"b if foreground absentee user */ 12 90 3 disconnected bit (1) unaligned, /* "1"b if process is disconnected */ 12 91 3 suspended bit (1) unaligned, /* "1"b if process is suspended */ 12 92 3 pad2 bit (33) unal, 12 93 3 cant_bump_until fixed bin (71), /* protected from primary bump till here */ 12 94 3 process_authorization bit (72); /* access authorization of process */ 12 95 12 96 dcl WHOTAB_VERSION_1 fixed bin init (1) static options (constant); 12 97 12 98 /* END INCLUDE FILE ... whotab.incl.pl1 */ 202 203 204 end uc_logout_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 07/13/88 0938.2 uc_logout_.pl1 >special_ldd>install>MR12.2-1047>uc_logout_.pl1 191 1 08/06/87 0913.0 answer_table.incl.pl1 >ldd>include>answer_table.incl.pl1 192 2 08/06/87 0913.4 as_data_.incl.pl1 >ldd>include>as_data_.incl.pl1 193 3 08/06/87 0913.4 dialup_values.incl.pl1 >ldd>include>dialup_values.incl.pl1 194 4 08/06/87 1416.6 sat.incl.pl1 >ldd>include>sat.incl.pl1 4-34 5 04/21/82 1211.8 author.incl.pl1 >ldd>include>author.incl.pl1 197 6 08/06/87 0913.5 sys_log_constants.incl.pl1 >ldd>include>sys_log_constants.incl.pl1 198 7 04/06/83 1239.4 terminate_file.incl.pl1 >ldd>include>terminate_file.incl.pl1 199 8 08/06/87 0913.6 user_attributes.incl.pl1 >ldd>include>user_attributes.incl.pl1 8-112 9 07/13/88 0900.1 user_abs_attributes.incl.pl1 >special_ldd>install>MR12.2-1047>user_abs_attributes.incl.pl1 200 10 07/13/88 0903.2 user_table_entry.incl.pl1 >special_ldd>install>MR12.2-1047>user_table_entry.incl.pl1 201 11 08/06/87 0913.6 user_table_header.incl.pl1 >ldd>include>user_table_header.incl.pl1 202 12 01/18/85 0953.2 whotab.incl.pl1 >ldd>include>whotab.incl.pl1 NAMES DECLARED IN THIS COMPILATION. IDENTIFIER OFFSET LOC STORAGE CLASS DATA TYPE ATTRIBUTES AND REFERENCES (* indicates a set context) NAMES DECLARED BY DECLARE STATEMENT. ACTIVE_VALUES 000274 constant char(18) initial array dcl 3-86 set ref 102* FALSE constant bit(1) initial packed unaligned dcl 78 ref 88 ME 000332 constant char(10) initial packed unaligned dcl 80 ref 147 NOW_DIALED constant fixed bin(17,0) initial dcl 3-76 ref 123 NOW_FREE constant fixed bin(17,0) initial dcl 3-76 ref 172 NOW_LOGGED_IN constant fixed bin(17,0) initial dcl 3-76 ref 102 PT_ABSENTEE constant fixed bin(17,0) initial dcl 10-261 ref 180 PT_DAEMON constant fixed bin(17,0) initial dcl 10-261 ref 185 P_added_info parameter char packed unaligned dcl 56 ref 51 91 98 P_utep parameter pointer dcl 57 ref 51 91 97 SL_LOG_BEEP constant fixed bin(17,0) initial dcl 6-14 ref 146 TABLE_NAMES 000247 constant char(20) initial array packed unaligned dcl 10-271 set ref 102* TERM_FILE_TERM 000273 constant bit(3) initial packed unaligned dcl 7-14 set ref 117* TRUE constant bit(1) initial packed unaligned dcl 78 ref 94 abs_users 54 based fixed bin(17,0) level 2 dcl 12-10 set ref 181* 181 active based fixed bin(17,0) level 2 in structure "ute" dcl 10-78 in procedure "uc_logout_" set ref 102 102 102* 123* active 240 based fixed bin(17,0) array level 3 in structure "whotab" dcl 12-10 in procedure "uc_logout_" set ref 172* added_info 000100 automatic char(32) packed unaligned dcl 61 set ref 98* 125* addr builtin function dcl 84 ref 148 148 ansp 000116 automatic pointer initial dcl 1-53 set ref 1-53* 156* arg_list_ptr 2 000122 automatic pointer level 2 dcl 6-24 set ref 145* as_access_audit_$logout 000010 constant entry external dcl 68 ref 125 as_data_$ansp 000020 external static pointer dcl 2-26 ref 156 as_data_$whoptr 000022 external static pointer dcl 2-60 ref 165 caller 17 000122 automatic varying char(65) level 2 dcl 6-24 set ref 147* chain 267 based fixed bin(18,0) array level 3 unsigned dcl 12-10 set ref 175* cu_$arg_list_ptr 000024 constant entry external dcl 141 ref 145 e 240 based structure array level 2 dcl 12-10 error_table_$action_not_performed 000016 external static fixed bin(35,0) dcl 74 set ref 102* fg_abs_users 66 based fixed bin(17,0) level 2 packed packed unaligned dcl 12-10 set ref 183* 183 freep 77 based fixed bin(18,0) level 2 unsigned dcl 12-10 set ref 175 176* load_ctl_$unload 000012 constant entry external dcl 69 ref 110 n_daemons 55 based fixed bin(17,0) level 2 dcl 12-10 set ref 185* 185 n_units 3 based fixed bin(17,0) level 2 dcl 12-10 set ref 168* 168 n_users 27 based fixed bin(17,0) level 2 in structure "project" dcl 4-53 in procedure "uc_logout_" ref 115 n_users 1 based fixed bin(17,0) level 2 in structure "whotab" dcl 12-10 in procedure "uc_logout_" set ref 167* 167 null builtin function dcl 84 ref 113 119 1-53 196 10-76 pdt_ptr 24 based pointer level 2 dcl 4-53 set ref 117* pdtep 354 based pointer level 2 dcl 10-78 set ref 119* person 241 based char(28) array level 3 dcl 12-10 set ref 173* proc_create_ok 431(15) based bit(1) level 3 packed packed unaligned dcl 10-78 ref 110 process_type 1 based fixed bin(17,0) level 2 dcl 10-78 set ref 102 110* 180 185 project based structure level 1 dcl 4-53 in procedure "uc_logout_" project 250 based char(28) array level 3 in structure "whotab" dcl 12-10 in procedure "uc_logout_" set ref 174* project_id 1 based char(12) level 2 packed packed unaligned dcl 4-53 ref 115 queue 245 based fixed bin(17,0) level 2 dcl 10-78 ref 181 reconnect_sw 000110 automatic bit(1) packed unaligned dcl 62 set ref 88* 94* 125 satep 000112 automatic pointer dcl 63 set ref 114* 115 115 117 satp 000120 automatic pointer initial dcl 196 set ref 196* severity 15 000122 automatic fixed bin(17,0) level 2 dcl 6-24 set ref 146* sl_info 000122 automatic structure level 1 dcl 6-24 set ref 144* 148 148 sl_info_code_msg 000000 constant structure level 1 dcl 6-187 ref 144 sys_log_$general 000026 constant entry external dcl 142 ref 148 terminate_file_ 000014 constant entry external dcl 70 ref 117 uflags 431 based structure level 2 dcl 10-78 uprojp 400 based pointer level 2 dcl 10-78 ref 113 114 user_abs_attributes based structure level 1 dcl 9-25 user_attributes based structure level 1 dcl 8-21 user_weight 432 based fixed bin(17,0) level 2 dcl 10-78 ref 168 ut_header based structure level 1 dcl 11-16 ute based structure level 1 dcl 10-78 ute_index 2 based fixed bin(17,0) level 2 dcl 10-78 set ref 102* utep 000372 automatic pointer initial dcl 10-76 set ref 97* 102 102 102* 102 102 102 110 110* 110 113 114 119 123 125* 10-76* 168 169 177 180 181 185 whoptr 000114 automatic pointer dcl 64 set ref 165* 167 167 168 168 172 173 174 175 175 176 181 181 183 183 185 185 whotab based structure level 1 dcl 12-10 whotab_idx 000410 automatic fixed bin(17,0) dcl 163 set ref 169* 170 172 173 174 175 176 whotabx 430 based fixed bin(17,0) level 2 dcl 10-78 set ref 169 177* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. ABS_ATTRIBUTE_NAMES internal static varying char(28) initial array dcl 9-38 ABS_FLAG_NAMES internal static varying char(8) initial array dcl 10-326 ALT_USER_ATTRIBUTE_NAMES internal static char(20) initial array packed unaligned dcl 8-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 DERIVE_MASK internal static bit(2) initial packed unaligned dcl 10-280 DIAL_SERVER_FLAG_NAMES internal static varying char(12) initial array dcl 10-332 DONT_MASK internal static bit(2) initial packed unaligned dcl 10-280 DO_MASK internal static bit(2) initial packed unaligned dcl 10-280 LOGIN_RESULT_VALUES internal static varying char(24) initial array dcl 10-338 MASK_CTL_NAMES internal static varying char(12) initial array dcl 10-284 NOW_DIALED_OUT internal static fixed bin(17,0) initial dcl 3-76 NOW_DIALING internal static fixed bin(17,0) initial dcl 3-76 NOW_HAS_PROCESS internal static fixed bin(17,0) initial dcl 3-76 NOW_HUNG_UP internal static fixed bin(17,0) initial dcl 3-76 NOW_LISTENING internal static fixed bin(17,0) initial dcl 3-76 PREEMPT_BUMPED internal static fixed bin(17,0) initial dcl 3-132 PREEMPT_BUMPED_NO_TERM internal static fixed bin(17,0) initial dcl 3-132 PREEMPT_LOAD_CTL internal static fixed bin(17,0) initial dcl 3-132 PREEMPT_TERMSGNL_RECEIVED internal static fixed bin(17,0) initial dcl 3-132 PREEMPT_TERM_SENT internal static fixed bin(17,0) initial dcl 3-132 PREEMPT_UNBUMP internal static fixed bin(17,0) initial dcl 3-132 PREEMPT_UNBUMP_IGNORE_ALARM internal static fixed bin(17,0) initial dcl 3-132 PREEMPT_VALUES internal static varying char(28) initial array dcl 3-142 PROCESS_TYPE_NAMES internal static varying char(12) initial array dcl 10-265 PT_ALARM internal static fixed bin(17,0) initial dcl 3-106 PT_BUMP internal static fixed bin(17,0) initial dcl 3-106 PT_DESTROY_REQUEST internal static fixed bin(17,0) initial dcl 3-106 PT_DETACH internal static fixed bin(17,0) initial dcl 3-106 PT_FPE internal static fixed bin(17,0) initial dcl 3-106 PT_HANGUP internal static fixed bin(17,0) initial dcl 3-106 PT_INTERACTIVE internal static fixed bin(17,0) initial dcl 10-261 PT_LOGOUT internal static fixed bin(17,0) initial dcl 3-106 PT_NEW_PROC_AUTH internal static fixed bin(17,0) initial dcl 3-106 PT_NEW_PROC_REQUEST internal static fixed bin(17,0) initial dcl 3-106 PT_OPERATOR_TERMINATE internal static fixed bin(17,0) initial dcl 3-106 PT_SHUTDOWN internal static fixed bin(17,0) initial dcl 3-106 PT_UNBUMP internal static fixed bin(17,0) initial dcl 3-106 PW_FLAG_NAMES internal static varying char(12) initial array dcl 10-290 SAT_entry_lth internal static fixed bin(17,0) initial dcl 4-24 SAT_header_lth internal static fixed bin(17,0) initial dcl 4-24 SAT_project_name_length internal static fixed bin(17,0) initial dcl 4-24 SAT_version internal static fixed bin(17,0) initial dcl 4-24 SL_INFO_arg_given_in_structure internal static fixed bin(17,0) initial dcl 6-69 SL_INFO_arg_not_given internal static fixed bin(17,0) initial dcl 6-69 SL_INFO_as_mode internal static fixed bin(17,0) initial dcl 6-65 SL_INFO_command_mode internal static fixed bin(17,0) initial dcl 6-65 SL_INFO_version_1 internal static char(8) initial packed unaligned dcl 6-62 SL_LOG internal static fixed bin(17,0) initial dcl 6-14 SL_LOG_CRASH internal static fixed bin(17,0) initial dcl 6-14 SL_LOG_SILENT internal static fixed bin(17,0) initial dcl 6-14 SL_TYPE internal static fixed bin(17,0) initial dcl 6-14 SL_TYPE_BEEP internal static fixed bin(17,0) initial dcl 6-14 SL_TYPE_CRASH internal static fixed bin(17,0) initial dcl 6-14 STATE_VALUES internal static char(15) initial array dcl 3-70 TAG_ABSENTEE internal static char(1) initial packed unaligned dcl 3-93 TAG_DAEMON internal static char(1) initial packed unaligned dcl 3-93 TAG_INTERACTIVE internal static char(1) initial packed unaligned dcl 3-93 TAG_PROXY internal static char(1) initial packed unaligned dcl 3-93 TAG_UFT internal static char(1) initial packed unaligned dcl 3-93 TERM_FILE_BC internal static bit(2) initial packed unaligned dcl 7-12 TERM_FILE_DELETE internal static bit(5) initial packed unaligned dcl 7-17 TERM_FILE_FORCE_WRITE internal static bit(4) initial packed unaligned dcl 7-16 TERM_FILE_TRUNC internal static bit(1) initial packed unaligned dcl 7-11 TERM_FILE_TRUNC_BC internal static bit(2) initial packed unaligned dcl 7-13 TERM_FILE_TRUNC_BC_TERM internal static bit(3) initial packed unaligned dcl 7-15 TRA_VEC_VALUES internal static char(32) initial array dcl 3-54 TTY_DIALED internal static fixed bin(17,0) initial dcl 3-64 TTY_HUNG internal static fixed bin(17,0) initial dcl 3-64 TTY_KNOWN internal static fixed bin(17,0) initial dcl 3-64 TTY_MASKED internal static fixed bin(17,0) initial dcl 3-64 UFLAG_NAMES internal static varying char(24) initial array dcl 10-303 USER_ATTRIBUTES_always_allowed internal static bit(36) initial dcl 8-100 USER_ATTRIBUTES_default_in_pdt internal static bit(36) initial dcl 8-104 USER_ATTRIBUTES_settable_by_user internal static bit(36) initial dcl 8-108 USER_ATTRIBUTE_NAMES internal static char(20) initial array packed unaligned dcl 8-50 UTE_SIZE internal static fixed bin(17,0) initial dcl 1-120 UTE_version_4 internal static fixed bin(17,0) initial dcl 10-74 WAIT_ANSWERBACK internal static fixed bin(17,0) initial dcl 3-25 WAIT_BEFORE_HANGUP internal static fixed bin(17,0) initial dcl 3-25 WAIT_CONNECT_REQUEST internal static fixed bin(17,0) initial dcl 3-25 WAIT_DELETE_CHANNEL internal static fixed bin(17,0) initial dcl 3-25 WAIT_DESTROY_REQUEST internal static fixed bin(17,0) initial dcl 3-25 WAIT_DETACH internal static fixed bin(17,0) initial dcl 3-25 WAIT_DIALUP internal static fixed bin(17,0) initial dcl 3-25 WAIT_DIAL_OUT internal static fixed bin(17,0) initial dcl 3-25 WAIT_DIAL_RELEASE internal static fixed bin(17,0) initial dcl 3-25 WAIT_DISCARD_WAKEUPS internal static fixed bin(17,0) initial dcl 3-25 WAIT_FIN_PRIV_ATTACH internal static fixed bin(17,0) initial dcl 3-25 WAIT_FIN_TANDD_ATTACH internal static fixed bin(17,0) initial dcl 3-25 WAIT_GREETING_MSG internal static fixed bin(17,0) initial dcl 3-25 WAIT_HANGUP internal static fixed bin(17,0) initial dcl 3-25 WAIT_LOGIN_ARGS internal static fixed bin(17,0) initial dcl 3-25 WAIT_LOGIN_LINE internal static fixed bin(17,0) initial dcl 3-25 WAIT_LOGOUT internal static fixed bin(17,0) initial dcl 3-25 WAIT_LOGOUT_HOLD internal static fixed bin(17,0) initial dcl 3-25 WAIT_LOGOUT_SIG internal static fixed bin(17,0) initial dcl 3-25 WAIT_NEW_PASSWORD internal static fixed bin(17,0) initial dcl 3-25 WAIT_NEW_PROC internal static fixed bin(17,0) initial dcl 3-25 WAIT_NEW_PROC_REQUEST internal static fixed bin(17,0) initial dcl 3-25 WAIT_OLD_PASSWORD internal static fixed bin(17,0) initial dcl 3-25 WAIT_PASSWORD internal static fixed bin(17,0) initial dcl 3-25 WAIT_REMOVE internal static fixed bin(17,0) initial dcl 3-25 WAIT_SLAVE_REQUEST internal static fixed bin(17,0) initial dcl 3-25 WAIT_TANDD_HANGUP internal static fixed bin(17,0) initial dcl 3-25 WHOTAB_VERSION_1 internal static fixed bin(17,0) initial dcl 12-96 anstbl based structure level 1 dcl 1-55 as_data_$BS external static char(1) dcl 2-21 as_data_$CR external static char(1) dcl 2-22 as_data_$abs_dim external static char(32) packed unaligned dcl 2-23 as_data_$acct_update_priority external static fixed bin(17,0) dcl 2-24 as_data_$acsdir external static char(168) packed unaligned dcl 2-25 as_data_$as_procid external static bit(36) dcl 2-27 as_data_$as_ring external static fixed bin(3,0) dcl 2-28 as_data_$as_tty automatic char(6) packed unaligned dcl 2-29 as_data_$asmtp external static pointer dcl 2-30 as_data_$autp external static pointer dcl 2-31 as_data_$buzzardp external static pointer dcl 2-32 as_data_$cdtp external static pointer dcl 2-33 as_data_$debug_flag external static bit(1) dcl 2-84 as_data_$default_weight external static fixed bin(35,0) dcl 2-34 as_data_$devtabp external static pointer dcl 2-35 as_data_$dft_user_ring external static fixed bin(3,0) dcl 2-36 as_data_$dutp external static pointer dcl 2-37 as_data_$g115_dim external static char(32) packed unaligned dcl 2-38 as_data_$lct_initialized external static bit(1) dcl 2-39 as_data_$lct_size external static fixed bin(17,0) dcl 2-40 as_data_$login_args external static structure level 1 dcl 2-62 as_data_$login_words external static fixed bin(17,0) dcl 2-77 as_data_$ls_message_buffer_cur_lth external static fixed bin(18,0) dcl 2-86 as_data_$ls_message_buffer_max_lth external static fixed bin(18,0) dcl 2-87 as_data_$ls_message_buffer_ptr external static pointer dcl 2-88 as_data_$ls_request_server_info_ptr external static pointer dcl 2-85 as_data_$max_user_ring external static fixed bin(3,0) dcl 2-41 as_data_$mgtp external static pointer dcl 2-42 as_data_$mrd_dim external static char(32) packed unaligned dcl 2-43 as_data_$ntty_dim external static char(32) packed unaligned dcl 2-44 as_data_$pdtdir external static char(168) packed unaligned dcl 2-45 as_data_$pit_ptr external static pointer dcl 2-46 as_data_$rcpdir external static char(168) packed unaligned dcl 2-47 as_data_$request_priority external static fixed bin(17,0) dcl 2-48 as_data_$rs_ptrs external static pointer array dcl 2-49 as_data_$rtdtp external static pointer dcl 2-50 as_data_$sat_htp external static pointer dcl 2-51 as_data_$satp external static pointer dcl 2-52 as_data_$signal_types external static structure level 1 dcl 2-67 as_data_$suffix external static char(2) array packed unaligned dcl 2-53 as_data_$sysdir external static char(168) packed unaligned dcl 2-54 as_data_$system_signal_types external static structure level 1 dcl 2-72 as_data_$teens_suffix external static char(2) array packed unaligned dcl 2-55 as_data_$terminet_tabs_string external static varying char(144) dcl 2-56 as_data_$tty_dim external static char(32) packed unaligned dcl 2-57 as_data_$update_priority external static fixed bin(17,0) dcl 2-58 as_data_$version external static char(8) packed unaligned dcl 2-59 as_data_login_words based structure level 1 dcl 2-77 sat based structure level 1 dcl 4-32 sl_info_msg internal static structure level 1 dcl 6-214 sl_info_sev_code_label_msg internal static structure level 1 dcl 6-161 sl_info_sev_code_msg internal static structure level 1 dcl 6-82 sl_info_sev_coded_msg internal static structure level 1 dcl 6-134 sl_info_sev_msg internal static structure level 1 dcl 6-108 terminate_file_switches based structure level 1 packed packed unaligned dcl 7-4 NAMES DECLARED BY EXPLICIT CONTEXT. Abort 000642 constant entry internal dcl 138 ref 102 COMMON 000444 constant label dcl 97 ref 89 95 RETURN 000640 constant label dcl 128 ref 149 Setup 000705 constant entry internal dcl 153 ref 100 Update_Whotab 000713 constant entry internal dcl 160 ref 108 reconnect 000425 constant entry external dcl 91 uc_logout_ 000405 constant entry external dcl 51 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 1140 1170 775 1150 Length 1620 775 30 414 142 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME uc_logout_ 315 external procedure is an external procedure. Abort 70 internal procedure is declared options(variable). Setup internal procedure shares stack frame of external procedure uc_logout_. Update_Whotab internal procedure shares stack frame of external procedure uc_logout_. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME uc_logout_ 000100 added_info uc_logout_ 000110 reconnect_sw uc_logout_ 000112 satep uc_logout_ 000114 whoptr uc_logout_ 000116 ansp uc_logout_ 000120 satp uc_logout_ 000122 sl_info uc_logout_ 000372 utep uc_logout_ 000410 whotab_idx Update_Whotab THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_out_desc call_ext_out call_int_this_desc return_mac tra_ext_1 ext_entry_desc int_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. as_access_audit_$logout cu_$arg_list_ptr load_ctl_$unload sys_log_$general terminate_file_ THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. as_data_$ansp as_data_$whoptr error_table_$action_not_performed LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 1 53 000373 196 000375 10 76 000376 51 000401 88 000421 89 000422 91 000423 94 000441 95 000443 97 000444 98 000450 100 000455 102 000456 108 000532 110 000533 113 000550 114 000555 115 000557 117 000565 119 000614 123 000617 125 000621 128 000640 138 000641 144 000647 145 000653 146 000661 147 000664 148 000671 149 000702 153 000705 156 000706 157 000712 160 000713 165 000714 167 000720 168 000723 169 000726 170 000730 172 000731 173 000735 174 000741 175 000745 176 000747 177 000751 180 000752 181 000755 183 000762 184 000767 185 000770 187 000774 ----------------------------------------------------------- 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