COMPILATION LISTING OF SEGMENT uc_ls_operator_request_ Compiled by: Multics PL/I Compiler, Release 30, of February 16, 1988 Compiled at: Honeywell Bull, Phoenix AZ, SysM Compiled on: 07/13/88 1026.1 mst Wed Options: optimize map 1 /****^ ******************************************** 2* * * 3* * Copyright, (C) Honeywell Bull Inc., 1987 * 4* * * 5* ******************************************** */ 6 7 8 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 9 /* */ 10 /* This module is part of the Multics Network Architecture (MNA) version of */ 11 /* user control. MNA user control serves users coming into Multics via */ 12 /* separate networks (eg, the Distributed Systems Architecture (DSA) */ 13 /* network. MNA user control is not used for logins through the Multics */ 14 /* Communications System (MCS). A separate MCS user control system serves */ 15 /* MCS users. */ 16 /* */ 17 /* To Be Supplied: */ 18 /* 1) Brief module description. See MDD010 or MTBs 751 and 752 for details */ 19 /* about this module, and its relationship to modules in the MCS user */ 20 /* control system. */ 21 /* 2) Operator error message documentation. This program calls */ 22 /* sys_log_$general but does not contain the required descriptions of */ 23 /* these messages. This omission was waived for initial installation */ 24 /* of the subsystem by the auditor, security coordinator, and by MDC */ 25 /* management. */ 26 /* */ 27 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 28 29 /****^ HISTORY COMMENTS: 30* 1) change(86-04-08,Swenson), approve(87-07-13,MCR7737), 31* audit(87-04-08,GDixon), install(87-08-04,MR12.1-1055): 32* Initial coding. 33* 2) change(87-04-08,GDixon), approve(87-07-13,MCR7737), 34* audit(87-07-30,Brunelle), install(87-08-04,MR12.1-1055): 35* A) Logout user (updating who_tab as well) if operator login denied by 36* mc_commands_$mc_login. Also, destroy the user table entry. 37* B) Null login_server_operator_response.process_group_id when operator 38* login fails. 39* C) Use sys_log_$general to report errors. 40* D) Null login_server_operator_request.person_id, project_id, 41* virtual_channel for non-I&A logins, rather than depending upon the 42* login server to do this. 43* E) Updated for change to user_table_entry.incl.pl1. 44* 3) change(87-06-11,GDixon), approve(87-07-13,MCR7737), 45* audit(87-07-30,Brunelle), install(87-08-04,MR12.1-1055): 46* A) Change calling sequence of mc_commands_$mc_login to pass utep, so 47* Initializer process_id can be filled in after the channel has been 48* added to mc_anstbl. This allows operator to drop the channel rather 49* than accepting it. 50* 4) change(87-06-26,GDixon), approve(87-07-13,MCR7737), 51* audit(87-07-30,Brunelle), install(87-08-04,MR12.1-1055): 52* A) Pass connection_info.access_class_range to mc_commands_$mc_login for 53* use in the operator login audit message. 54* END HISTORY COMMENTS */ 55 56 /* format: style4,indattr,insnl */ 57 58 uc_ls_operator_request_: 59 procedure (P_ls_request_server_info_ptr, 60 P_ls_request_ptr, P_ls_request_lth, 61 P_ls_response_ptr, P_ls_response_lth, 62 P_ls_ipc_reply_ptr, P_code); 63 64 /* Parameters */ 65 66 dcl P_ls_request_server_info_ptr 67 ptr parameter; 68 dcl P_ls_request_ptr ptr parameter; 69 dcl P_ls_request_lth fixed bin (18) parameter; 70 dcl P_ls_response_ptr ptr parameter; 71 dcl P_ls_response_lth fixed bin (18) parameter; 72 dcl P_ls_ipc_reply_ptr ptr parameter; 73 dcl P_code fixed bin (35) parameter; 74 75 /* Automatic */ 76 77 dcl code fixed bin (35) automatic; 78 dcl ls_termination_event_channel 79 fixed bin (71) automatic; 80 81 /* Entries */ 82 83 dcl mc_commands_$mc_login entry (char (*), char (*), ptr, char (*), (2) bit (72) aligned, bit (36) aligned, 84 fixed bin (71), fixed bin (71), bit (72) aligned, fixed bin (35)); 85 dcl uc_logout_ entry (ptr, char (*)); 86 dcl user_table_mgr_$free 87 entry (ptr); 88 dcl user_table_mgr_$utep_from_handle 89 entry (bit (72) aligned) returns (ptr); 90 91 /* External */ 92 93 dcl error_table_$bad_arg fixed bin (35) ext static; 94 dcl error_table_$id_not_found 95 fixed bin (35) ext static; 96 dcl error_table_$unimplemented_version 97 fixed bin (35) ext static; 98 99 /* Constant */ 100 101 dcl ME char (23) initial ("uc_ls_operator_request_") internal static options (constant); 102 103 dcl TRUE bit (1) aligned initial ("1"b) internal static options (constant); 104 105 /* Builtin */ 106 107 dcl (addr, currentsize, null, unspec) 108 builtin; 109 110 /* * * * * * * * * * * * * * * * * * * * * * * * * */ 111 112 113 /* Program */ 114 115 ls_request_ptr = P_ls_request_ptr; 116 ls_response_ptr = P_ls_response_ptr; 117 ls_reply_message_ptr = P_ls_ipc_reply_ptr; 118 ls_request_server_info_ptr = P_ls_request_server_info_ptr; 119 120 code = 0; 121 122 if login_server_operator_request.request_version ^= 123 LOGIN_SERVER_OPERATOR_REQUEST_VERSION_1 124 then call Abort (error_table_$unimplemented_version, 125 "Version of login_server_operator_request is ^a, ^a expected.", 126 login_server_operator_request.request_version, 127 LOGIN_SERVER_OPERATOR_REQUEST_VERSION_1); 128 129 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 130 /* */ 131 /* The operator request can be sent to us either with or without user */ 132 /* identification and authentication. This occurs when when the user types */ 133 /* "d system" without specifying "-user Personid.Projectid". In this case, */ 134 /* there will not be any user table entry associated with this request. We */ 135 /* can tell this from the handle supplied by the login server. If it is 0, */ 136 /* then no validation has been performed and there is no UTE associated with */ 137 /* the request. */ 138 /* */ 139 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 140 141 if login_server_operator_request.initializer_handle = ""b 142 then do; 143 utep = null (); /* no I&A */ 144 login_server_operator_request.person_id, 145 login_server_operator_request.project_id, 146 login_server_operator_request.virtual_channel = ""; 147 end; 148 else do; 149 utep = user_table_mgr_$utep_from_handle 150 (login_server_operator_request.initializer_handle); 151 if utep = null () 152 then call Abort (error_table_$id_not_found, 153 "Could not locate user table entry for handle ^24.3b.", 154 login_server_operator_request.initializer_handle); 155 end; 156 157 if utep ^= null () 158 then if login_server_operator_request.person_id ^= ute.person 159 | login_server_operator_request.project_id ^= ute.project 160 then call Abort (error_table_$bad_arg, 161 "Person.project in operator request (^a.^a) do not match UTE (^a.^a)", 162 login_server_operator_request.person_id, 163 login_server_operator_request.project_id, 164 ute.person, ute.project); 165 166 if utep ^= null () 167 then ls_termination_event_channel = 168 ute.login_server_info.termination_event_channel; 169 else ls_termination_event_channel = 170 login_server_operator_request.terminate_event_channel; 171 172 call mc_commands_$mc_login ( 173 (login_server_operator_request.connection_info.connection_name), 174 (login_server_operator_request.person_id), utep, 175 (login_server_operator_request.virtual_channel), 176 login_server_operator_request.connection_info.access_class_range, 177 ls_request_server_info.request_info.sender_process_id, 178 ls_termination_event_channel, 179 login_server_operator_request.header.reply_event_channel, 180 login_server_operator_request.header.reply_handle, code); 181 182 /**** If the message coordinator said this was ok, then we don't send the 183* response. We let the MC do it. */ 184 185 if code = 0 186 then ls_reply_message.flags.do_not_reply = TRUE; 187 else do; 188 call Fill_response_structure (); 189 code = 0; 190 if utep ^= null 191 then do; 192 call uc_logout_ (utep, "DENIED: login -operator"); 193 call user_table_mgr_$free (utep); 194 end; 195 end; 196 197 RETURN: 198 P_code = code; 199 return; 200 201 /* * * * * * * * * * * * * * * * * * * * * * * * * */ 202 203 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 204 /* */ 205 /* Abort: Report an error via sys_log_$general and stop execution if a */ 206 /* nonzero code was given. */ 207 /* */ 208 /* Syntax: call Abort (code, ioa_ctl, args); */ 209 /* */ 210 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 211 212 Abort: 213 procedure options (variable); 214 215 dcl cu_$arg_list_ptr entry returns (ptr); 216 dcl sys_log_$general entry (ptr); 217 218 sl_info = sl_info_code_msg; 219 sl_info.severity = SL_LOG_SILENT; 220 sl_info.caller = ME; 221 sl_info.arg_list_ptr = cu_$arg_list_ptr (); 222 call sys_log_$general (addr (sl_info)); 223 code = sl_info.code; 224 if code ^= 0 225 then go to RETURN; 226 227 end Abort; 228 229 /* * * * * * * * * * * * * * * * * * * * * * * * * */ 230 231 /* * * * * * * * * * * * * * * * * * * * * * * * * */ 232 233 234 Fill_response_structure: 235 procedure; 236 237 unspec (login_server_operator_response) = ""b; 238 login_server_operator_response.header.message_type = 239 LS_OPERATOR_RESPONSE; 240 login_server_operator_response.header.version = 241 LOGIN_SERVER_OPERATOR_RESPONSE_VERSION_1; 242 login_server_operator_response.status_code = code; 243 login_server_operator_response.process_group_id = ""; 244 P_ls_response_lth = currentsize (login_server_operator_response); 245 246 end Fill_response_structure; 247 248 /* * * * * * * * * * * * * * * * * * * * * * * * * */ 249 250 /* format: off */ 251 /* BEGIN INCLUDE FILE ... login_server_messages.incl.pl1 */ 1 2 1 3 /****^ HISTORY COMMENTS: 1 4* 1) change(86-06-30,Coren), approve(86-06-30,MCR7415), 1 5* audit(86-07-02,Margolin), install(86-07-11,MR12.0-1092): 1 6* Initial implementation. 1 7* 2) change(87-04-16,GDixon), approve(87-07-13,MCR7679), 1 8* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 1 9* A) Add REQUEST_TYPES and RESPONSE_TYPES arrays. 1 10* B) Add login_server_validate_response.last_incorrect_password.time. 1 11* C) Add user_connection_info.line_type. 1 12* D) Add login_server_process_request.minimum_ring. 1 13* 3) change(87-05-14,GDixon), approve(87-07-13,MCR7737), 1 14* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 1 15* A) Add login_server_process_response.brief. 1 16* B) Add login_server_list_response.initial_ring. 1 17* C) Separate login_server_process_response into fixed and variable parts. 1 18* D) Move user_connection_info into login_server_request_header. 1 19* END HISTORY COMMENTS */ 1 20 1 21 /* This include file defines all the structures passed in message segments 1 22* between a login server process and the Initializer (or "answering service") 1 23* process. For convenience, messages from the server to the initializer, 1 24* passed using the send_ls_request_ subroutine, are called "requests"; 1 25* messages from the initializer to the server, passed using the user_message_ 1 26* mechanism, are called "responses". 1 27**/ 1 28 1 29 /* Request types */ 1 30 1 31 dcl (LS_VALIDATE_REQUEST initial (1), /* validate user ID and password */ 1 32 LS_PROCESS_REQUEST initial (2), /* create or connect to a process */ 1 33 LS_LIST_REQUEST initial (3), /* list disconnected processes */ 1 34 LS_DIAL_REQUEST initial (4), /* find a dial server */ 1 35 LS_DISCONNECT_REQUEST initial (5), /* report disconnection of a login channel */ 1 36 LS_LOGOUT_REQUEST initial (6), /* discard UTE (end of dialogue) */ 1 37 LS_OPERATOR_REQUEST initial (7)) /* log the user in as an operator */ 1 38 fixed bin internal static options (constant); 1 39 1 40 dcl LS_REQUEST_TYPES (7) char (10) internal static options (constant) initial 1 41 ( 1 42 "validate", 1 43 "process", 1 44 "list", 1 45 "dial", 1 46 "disconnect", 1 47 "logout", 1 48 "operator"); 1 49 1 50 dcl ls_request_ptr pointer; 1 51 1 52 /* common header for all requests */ 1 53 1 54 dcl 1 ls_request_header aligned based (ls_request_ptr), 1 55 2 header_version char (8), /* version for this header */ 1 56 2 request_version char (8), /* varies depending on the request */ 1 57 2 request_type fixed bin, 1 58 2 pad1 bit (36), 1 59 2 reply_event_channel fixed bin (71), /* event channel over which reply_message should be sent */ 1 60 2 reply_handle bit (72) aligned, /* used for dispatching response */ 1 61 2 connection_info like user_connection_info; /* connection making this request. */ 1 62 1 63 dcl LS_REQUEST_HEADER_VERSION_1 char (8) initial ("lsrh0001") internal static options (constant); 1 64 1 65 dcl 1 user_connection_info aligned based, /* common info passed in most requests */ 1 66 2 connection_name char (32), 1 67 2 access_class_range (2) bit (72), 1 68 2 terminal_type char (32), 1 69 2 terminal_id char (4), 1 70 2 line_type fixed bin; 1 71 1 72 1 73 1 74 /* "validate" request: validate user ID and password */ 1 75 1 76 dcl 1 login_server_validate_request aligned based (ls_request_ptr), 1 77 2 header like ls_request_header, /* request_type = LS_VALIDATE_REQUEST */ 1 78 2 current_password char (8), /* scrambled */ 1 79 2 authorization bit (72), /* only valid if auth_given = "1"b */ 1 80 2 terminate_event_channel fixed bin (71), /* event channel to notify server when process terminates */ 1 81 2 person_id char (22), /* as specified in login line */ 1 82 2 project_id char (9), /* likewise, might be null string */ 1 83 2 network_connection_type fixed bin, /* see below for values */ 1 84 2 new_password char (8), /* only valid if change_password = "1"b */ 1 85 2 flags, 1 86 3 gpw bit (1) unaligned, /* password generated in response to -generate_password */ 1 87 3 auth_given bit (1) unaligned, /* -authorization specified */ 1 88 3 anonymous bit (1) unaligned, /* "enterp" request */ 1 89 3 anon_no_password bit (1) unaligned, /* "enter" request */ 1 90 3 change_password bit (1) unaligned, /* gave -cpw or -gpw */ 1 91 3 change_default_auth bit (1) unaligned, /* gave -change_default_authorization */ 1 92 3 change_default_proj bit (1) unaligned, /* gave -change_default_project */ 1 93 3 operator bit (1) unaligned, /* gave -operator */ 1 94 3 pad bit (28) unaligned; 1 95 1 96 1 97 dcl LS_VALIDATE_REQUEST_VERSION_1 char (8) internal static options (constant) initial ("lsvr0001"); 1 98 1 99 1 100 1 101 /* "process" request: create a process or reconnect to an existing process for the specified user */ 1 102 1 103 dcl 1 login_server_process_request aligned based (ls_request_ptr), 1 104 2 fixed_part, /* to allow for automatic copies */ 1 105 3 header like ls_request_header, /* request_type = LS_PROCESS_REQUEST */ 1 106 3 handle bit (72), /* as provided in validate_response */ 1 107 3 person_id char (22), /* the real one */ 1 108 3 project_id char (9), /* likewise */ 1 109 3 project_pad fixed bin, 1 110 3 command_type fixed bin, /* login, connect, etc.; see below for names */ 1 111 3 process_number fixed bin, /* 0 if unspecified or irrelevant */ 1 112 3 default_io_module char (32), /* I/O module to use if no outer_module specified */ 1 113 3 switch_flags, /* used to indicate if "switch"-type control args were specified */ 1 114 4 warn_given bit (1) unaligned, 1 115 4 force_given bit (1) unaligned, 1 116 4 save_given bit (1) unaligned, 1 117 4 preempt_given bit (1) unaligned, 1 118 4 brief_given bit (1) unaligned, 1 119 4 pad2 bit (31) unaligned, 1 120 3 switch_values, /* these are only valid if corresponding bit in switch_flags is on */ 1 121 4 warn bit (1) unaligned, 1 122 4 force bit (1) unaligned, 1 123 4 save_on_disconnect bit (1) unaligned, 1 124 4 preempt bit (1) unaligned, 1 125 4 brief bit (1) unaligned, /* "0"b & brief_given => -long */ 1 126 4 pad3 bit (31) unaligned, 1 127 3 other_flags, 1 128 4 init_ring_given bit (1) unaligned, /* "1"b if -ring */ 1 129 4 minimum_ring_given bit (1) unaligned, /* "1"b if MNA terminal interface ring > 1 */ 1 130 4 immediate bit (1) unaligned, /* "1"b => -new_proc (or -destroy) -immediate */ 1 131 4 no_start_up bit (1) unaligned, /* "1"b if -no_start_up */ 1 132 4 pad4 bit (32) unaligned, 1 133 3 initial_ring fixed bin, /* valid iff init_ring_given = "1"b */ 1 134 3 minimum_ring fixed bin, /* ring in which MNA terminal mgr operates */ 1 135 3 home_dir char (168), /* null if not specified */ 1 136 3 outer_module char (32), /* likewise */ 1 137 3 process_overseer char (168), /* likewise */ 1 138 3 subsystem char (168), /* likewise */ 1 139 3 n_args fixed bin, /* how many arguments specified after -ag; if 0, ignore the rest of the structure */ 1 140 2 login_arguments, /* variable part, describes stuff after -ag */ 1 141 3 arg_string_length fixed bin (21), 1 142 3 args (ls_process_request_n_args refer (login_server_process_request.n_args)), 1 143 4 start_index fixed bin (21), /* position in arg_string at which arg (i) starts */ 1 144 4 arg_length fixed bin (21), /* length of arg (i) */ 1 145 3 arg_string char (ls_process_request_arg_string_length refer (login_server_process_request.arg_string_length)); 1 146 1 147 dcl ls_process_request_n_args fixed bin; 1 148 dcl ls_process_request_arg_string_length fixed bin (21); 1 149 1 150 dcl LS_PROCESS_REQUEST_VERSION_1 char (8) internal static options (constant) initial ("lspr0001"); 1 151 1 152 1 153 1 154 /* "list" request: list the user's disconnected processes, if any */ 1 155 1 156 dcl 1 login_server_list_request aligned based (ls_request_ptr), 1 157 2 header like ls_request_header, /* request_type = LS_LIST_REQUEST */ 1 158 2 handle bit (72); 1 159 1 160 dcl LS_LIST_REQUEST_VERSION_1 char (8) internal static options (constant) initial ("lslr0001"); 1 161 1 162 1 163 1 164 /* "dial" request: find a process to accept a dial */ 1 165 1 166 /* Note: because a dial request may or may not have been preceded 1 167* by a validate request/response, the initializer_handle may be null. 1 168**/ 1 169 1 170 dcl 1 login_server_dial_request aligned based (ls_request_ptr), 1 171 2 header like ls_request_header, /* request_type = LS_DIAL_REQUEST */ 1 172 2 initializer_handle bit (72), /* as provided in validate_response (if any) */ 1 173 2 terminate_event_channel fixed bin (71), /* event channel to wake up login server when master process terminates */ 1 174 2 dial_qualifier char (22), 1 175 2 person_id char (22), /* null if not specified */ 1 176 2 project_id char (9), /* likewise */ 1 177 2 user_person_id char (22), /* if -user was specified, otherwise "" */ 1 178 2 user_project_id char (9); /* likewise */ 1 179 1 180 dcl LS_DIAL_REQUEST_VERSION_1 char (8) internal static options (constant) initial ("lsdr0001"); 1 181 1 182 1 183 1 184 /* "disconnect" request: report that a login channel has disconnected */ 1 185 /* Note: this message is sent if the connection is broken either during the login dialogue 1 186* or later on when the process was using it */ 1 187 1 188 dcl 1 login_server_disconnect_request aligned based (ls_request_ptr), 1 189 2 header like ls_request_header, /* request_type = LS_DISCONNECT_REQUEST */ 1 190 2 handle bit (72), /* from original validate_response */ 1 191 2 process_id bit (36); /* ""b if no process established */ 1 192 1 193 dcl LS_DISCONNECT_REQUEST_VERSION_1 char (8) internal static options (constant) initial ("lsdc0001"); 1 194 1 195 1 196 1 197 /* "logout" request: indicates that user entered the "logout" request, ending the dialogue; does not require any response */ 1 198 1 199 dcl 1 login_server_logout_request aligned based (ls_request_ptr), 1 200 2 header like ls_request_header, /* request_type = LS_LOGOUT_REQUEST */ 1 201 2 handle bit (72); 1 202 1 203 dcl LS_LOGOUT_REQUEST_VERSION_1 char (8) internal static options (constant) initial ("lslg0001"); 1 204 1 205 1 206 1 207 /* "operator" request: sign the user on as an operator, the result of either 1 208* "login -operator" or "dial system". Note that in the latter case, there may 1 209* not have been a validate request (if the -user control argument wasn't specified), 1 210* in which case initializer_handle is null, and the person_id and project_id 1 211* are blank. 1 212**/ 1 213 1 214 dcl 1 login_server_operator_request aligned based (ls_request_ptr), 1 215 2 header like ls_request_header, /* request_type = LS_OPERATOR_REQUEST */ 1 216 2 initializer_handle bit (72) aligned, /* as provided in validate_response (if any) */ 1 217 2 terminate_event_channel fixed bin (71), /* event channel for wakeup when connection is dropped */ 1 218 2 person_id char (22), /* likewise */ 1 219 2 project_id char (9), /* likewise */ 1 220 2 virtual_channel char (32); /* if -virtual_channel specified, otherwise "" */ 1 221 1 222 dcl LOGIN_SERVER_OPERATOR_REQUEST_VERSION_1 char (8) internal static options (constant) initial ("lsor0001"); 1 223 1 224 1 225 1 226 /* Response types */ 1 227 1 228 dcl (LS_UNKNOWN_RESPONSE initial (100), /* unknown response type. */ 1 229 LS_VALIDATE_RESPONSE initial (101), /* response to validation request */ 1 230 LS_PROCESS_RESPONSE initial (102), /* response to process request */ 1 231 LS_LIST_RESPONSE initial (103), /* response to list request */ 1 232 LS_DIAL_RESPONSE initial (104), /* response to dial request */ 1 233 LS_TERMINATION_RESPONSE initial (105), /* to notify server of a logout */ 1 234 LS_NEW_PROC_RESPONSE initial (106), /* to notify server of process termination */ 1 235 LS_OPERATOR_RESPONSE initial (107)) /* response to operator request */ 1 236 fixed bin internal static options (constant); 1 237 1 238 dcl LS_RESPONSE_TYPES (100:107) char (10) internal static options (constant) initial 1 239 ( 1 240 "UNKNOWN", 1 241 "validate", 1 242 "process", 1 243 "list", 1 244 "dial", 1 245 "terminate", 1 246 "new_proc", 1 247 "operator"); 1 248 1 249 /* NOTE: the server_handle is not included in the response structures because 1 250* it is provided in the user_message_ structures */ 1 251 1 252 1 253 1 254 dcl ls_response_ptr pointer; 1 255 1 256 /* common header for all responses */ 1 257 1 258 dcl 1 login_server_response_header aligned based (ls_response_ptr), 1 259 2 message_type fixed bin, 1 260 2 header_pad bit (36), /* force doubleword alignment */ 1 261 2 version char (8); 1 262 1 263 1 264 1 265 /* "validate" response: indicate whether user_id/password is valid */ 1 266 1 267 dcl 1 login_server_validate_response aligned based (ls_response_ptr), 1 268 2 header like login_server_response_header, /* message_type = LS_VALIDATE_RESPONSE */ 1 269 2 handle bit (72), /* to be provided by the server in subsequent */ 1 270 /* messages for the same connection */ 1 271 2 authorization bit (72), /* default if none was supplied */ 1 272 2 authorization_range (2) bit (72), /* authorization range permitted for this user */ 1 273 2 status_code fixed bin (35), /* 0 iff user is validated */ 1 274 2 person_id char (22), /* primary name from the PNT */ 1 275 2 project_id char (9), /* primary name from the PNT or PDT */ 1 276 2 n_disconnected_processes fixed bin, /* number of disconnected processes for specified user */ 1 277 2 validate_pad fixed bin, 1 278 2 previous_login_info, /* for printing login message */ 1 279 3 time fixed bin (71), 1 280 3 terminal_type char (32), 1 281 3 terminal_id char (4), 1 282 2 incorrect_passwords fixed bin, /* number of times password given incorrectly */ 1 283 2 last_incorrect_password, /* where it came from */ 1 284 3 time fixed bin (71), 1 285 3 terminal_type char (32), 1 286 3 terminal_id char (4), 1 287 2 password_interval fixed bin, /* limit (in days) for password use or change */ 1 288 2 flags, 1 289 3 disconnect bit (1) unaligned, /* if "1"b, close the connection immediately */ 1 290 3 password_changed bit (1) unal, /* "1"b => changed password */ 1 291 3 default_auth_changed bit (1) unal, /* "1"b => changed default authorization */ 1 292 3 default_proj_changed bit (1) unal, /* "1"b => changed default project */ 1 293 3 password_expired bit (1) unal, /* "1"b => password not changed recently enough */ 1 294 3 password_unused_too_long bit (1) unal, /* "1"b => password hasn't been used recently */ 1 295 3 pad bit (30) unaligned; 1 296 1 297 dcl LS_VALIDATE_RESPONSE_VERSION_1 char (8) internal static options (constant) initial ("lsvs0001"); 1 298 1 299 1 300 1 301 /* "process" response: responds to request to create or connect */ 1 302 1 303 dcl 1 login_server_process_response aligned based (ls_response_ptr), 1 304 2 fixed_part, 1 305 3 header like login_server_response_header, /* message_type = LS_PROCESS_RESPONSE */ 1 306 3 status_code fixed bin (35), /* 0 iff process was created or requested process exists */ 1 307 3 process_id bit (36), 1 308 3 new_handle bit (72), /* changed if reconnecting, etc. to preexisting process, all 0 otherwise */ 1 309 3 authorization bit (72), /* authorization of created or existing process */ 1 310 3 process_group_id char (32), /* Person.Project.tag */ 1 311 3 process_number fixed bin, /* as in, "Your disconnected process #2..." */ 1 312 3 n_disconnected_processes fixed bin, /* valid even if code ^= 0, e.g., if request was ambiguous */ 1 313 3 start_event_channel fixed bin (71), /* event channel to wake up user process on */ 1 314 3 login_instance fixed bin, /* "This is your Nth interactive login" */ 1 315 3 accounting_info, /* for destroyed process, if any */ 1 316 4 cpu_usage fixed bin (71), 1 317 4 cost float bin, 1 318 3 flags, /* except for disconnect and logout, invalid if status_code ^= 0 */ 1 319 4 disconnect bit (1) unaligned, /* "1"b => break the connection immediately */ 1 320 4 logout bit (1) unaligned, /* "1"b => restart login sequence */ 1 321 4 created bit (1) unaligned, /* "1"b => new process created */ 1 322 4 connected bit (1) unaligned, /* "1"b => connected to old process */ 1 323 4 new_proc bit (1) unaligned, /* "1"b => connected after new_proc */ 1 324 4 destroyed bit (1) unaligned, /* "1"b => process destroyed */ 1 325 4 anonymous bit (1) unaligned, /* "1"b => anonymous user ("enter" or "enterp") */ 1 326 4 already_logged_in bit (1) unaligned, /* "1"b => user can't log in because he already is */ 1 327 4 message_coordinator bit (1) unaligned, /* "1"b => this connection is going to be used by the message coordinator */ 1 328 4 brief bit (1) unaligned, /* "1"b => brief user attribute from PDT */ 1 329 4 pad bit (26) unaligned, 1 330 3 initial_ring fixed bin, /* ring in which process was created */ 1 331 3 already_logged_in_info, /* relevant if already_logged_in flag is "1"b */ 1 332 4 connection_name char (32), 1 333 4 terminal_type char (32), 1 334 4 terminal_id char (4), 1 335 2 accounting_message_struc, /* character string assembled by initializer giving error or warnings about the user's account */ 1 336 3 accounting_message_length fixed bin, 1 337 3 accounting_message char (ls_process_response_accounting_message_length refer (login_server_process_response.accounting_message_length)); 1 338 1 339 dcl ls_process_response_accounting_message_length fixed bin; 1 340 1 341 dcl LOGIN_SERVER_PROCESS_RESPONSE_VERSION_1 char (8) internal static options (constant) initial ("lsps0001"); 1 342 1 343 1 344 1 345 /* "list" response: used if create request specified "list" command */ 1 346 1 347 dcl 1 login_server_list_response aligned based (ls_response_ptr), 1 348 2 header like login_server_response_header, /* message_type = LS_LIST_RESPONSE */ 1 349 2 n_processes fixed bin, /* number of disconnected processes (might be 0) */ 1 350 2 pad_header fixed bin, 1 351 2 process_info (login_server_list_response_n_processes refer (login_server_list_response.n_processes)), 1 352 3 creation_time fixed bin (71), 1 353 3 authorization bit (72), 1 354 3 initial_ring fixed bin, 1 355 3 pad_process_info fixed bin, 1 356 3 connection_info like user_connection_info; 1 357 1 358 dcl login_server_list_response_n_processes fixed bin; 1 359 1 360 dcl LOGIN_SERVER_LIST_RESPONSE_VERSION_1 char (8) internal static options (constant) initial ("lslr0001"); 1 361 1 362 1 363 1 364 /* "dial" response: response to dial request */ 1 365 1 366 dcl 1 login_server_dial_response aligned based (ls_response_ptr), 1 367 2 header like login_server_response_header, /* message_type = LS_DIAL_RESPONSE */ 1 368 2 status_code fixed bin (35), /* 0 iff dial server was found and all is OK */ 1 369 2 process_id bit (36), /* of dial server */ 1 370 2 process_group_id char (32), /* likewise */ 1 371 2 authorization bit (72), /* likewise, to make sure connection is usable */ 1 372 2 start_event_channel fixed bin (71), /* event channel to wake up user process on */ 1 373 2 process_ring fixed bin, /* initial ring of dial server */ 1 374 2 flags, 1 375 3 disconnect bit (1) unaligned, /* "1"b => break connection immediately */ 1 376 3 pad bit (35) unaligned; 1 377 1 378 dcl LOGIN_SERVER_DIAL_RESPONSE_VERSION_1 char (8) internal static options (constant) initial ("lsds0001"); 1 379 1 380 1 381 1 382 /* "termination" response: (not a response to anything): notify server that a 1 383* process terminated other than by logout */ 1 384 1 385 dcl 1 login_server_termination_response aligned based (ls_response_ptr), 1 386 2 header like login_server_response_header, /* message_type = LS_TERMINATION_RESPONSE */ 1 387 2 accounting_info, /* for printing in logout message */ 1 388 3 cpu_usage fixed bin (71), 1 389 3 cost float bin, 1 390 3 pad bit (33) unaligned, 1 391 2 process_id bit (36), /* of the logged-out process */ 1 392 2 process_group_id char (32), 1 393 2 status_code fixed bin (35), /* e.g., to indicate reason for fatal error */ 1 394 2 flags, 1 395 3 logout bit (1) aligned, /* no new process coming */ 1 396 3 automatic_logout bit (1) unaligned, 1 397 3 hold bit (1) unaligned, 1 398 3 brief bit (1) unaligned, 1 399 3 new_proc bit (1) unaligned, /* user-requested new process */ 1 400 3 fatal_error bit (1) unaligned, /* process died unexpectedly */ 1 401 3 fpe_caused_logout bit (1) unaligned, /* fatal error doesn't generate new process */ 1 402 3 fpe_loop bit (1) unaligned, /* fatal error loop: too many in too short a time */ 1 403 3 fpe_during_init bit (1) unaligned, /* fatal error during process initialization */ 1 404 3 offer_help bit (1) unaligned, /* print a message offering "help" */ 1 405 3 pad bit (27) unaligned; 1 406 1 407 dcl LOGIN_SERVER_TERMINATION_RESPONSE_VERSION_1 char (8) internal static options (constant) initial ("lstr0001"); 1 408 1 409 1 410 1 411 /* "new_proc" response: (not actually a response to anything) -- describes a 1 412* new process (after a termination_response) */ 1 413 1 414 dcl 1 login_server_new_proc_response aligned based (ls_response_ptr), 1 415 2 header like login_server_response_header, /* message_type = LS_NEW_PROC_RESPONSE */ 1 416 2 new_authorization bit (72), /* in case of new_proc -auth */ 1 417 2 new_start_event_channel fixed bin (71), /* event channel for starting new process */ 1 418 2 new_process_id bit (36); /* process_id of newly-created process */ 1 419 1 420 dcl LOGIN_SERVER_NEW_PROC_RESPONSE_VERSION_1 char (8) internal static options (constant) initial ("lsnp0001"); 1 421 1 422 1 423 1 424 /* "operator" response: indicates success or failure of operator request */ 1 425 1 426 dcl 1 login_server_operator_response aligned based (ls_response_ptr), 1 427 2 header like login_server_response_header, /* message_type = LS_OPERATOR_RESPONSE */ 1 428 2 status_code fixed bin (35), /* indicates success or failure */ 1 429 2 process_id bit (36), /* process ID of the message coordinator */ 1 430 2 process_group_id char (32), /* Person.Project.tag */ 1 431 2 event_channel fixed bin (71), /* event channel over which to send connect/disconnect wakeups */ 1 432 2 ring fixed bin, /* ring of message coordinator */ 1 433 2 flags, 1 434 3 disconnect bit (1) unaligned, /* "1" => break the connection immediately */ 1 435 3 mbz bit (35) unaligned; 1 436 1 437 1 438 dcl LOGIN_SERVER_OPERATOR_RESPONSE_VERSION_1 char (8) internal static options (constant) initial ("lsos0001"); 1 439 1 440 1 441 /* format of reply message sent to acknowledge receipt of a request */ 1 442 1 443 dcl ls_reply_message_ptr pointer; 1 444 1 445 dcl 1 ls_reply_message aligned based (ls_reply_message_ptr), 1 446 2 code fixed bin (35), 1 447 2 flags, 1 448 3 request_invalid bit (1) unaligned, /* "1"b => could not process request */ 1 449 3 response_sent bit (1) unaligned, /* "1"b => there is a response message */ 1 450 3 as_error_code bit (1) unaligned, /* "1"b => code is from as_error_table_ */ 1 451 3 do_not_reply bit (1) unaligned, /* "1"b => special flag for AS to prevent any reply from being sent to login server */ 1 452 3 mbz bit (32) unaligned; 1 453 1 454 /* The following are values used to identify the various requests internally; those from CREATE_REQ on 1 455* can appear as "command_type" in ls_process_requests. */ 1 456 1 457 dcl (LOGIN_REQ initial (1), 1 458 ENTER_REQ initial (2), 1 459 ENTERP_REQ initial (3), 1 460 CREATE_REQ initial (4), 1 461 DESTROY_REQ initial (5), 1 462 CONNECT_REQ initial (6), 1 463 NEW_PROC_REQ initial (7), 1 464 LIST_REQ initial (8)) 1 465 fixed bin internal static options (constant); 1 466 1 467 /* The following are the possible values for login_server_validate_request.network_connection_type. 1 468* They are used by the initializer to select a default process overseer and an instance tag. 1 469**/ 1 470 1 471 dcl (NETWORK_CONNECTION_LOGIN initial (1), 1 472 NETWORK_CONNECTION_DSA_FILE_TRANSFER initial (2)) 1 473 fixed bin internal static options (constant); 1 474 1 475 /* END INCLUDE FILE ... login_server_messages.incl.pl1 */ 251 252 /* BEGIN: ls_request_server_info.incl.pl1 * * * * * */ 2 2 2 3 /****^ HISTORY COMMENTS: 2 4* 1) change(86-04-05,Swenson), approve(87-07-14,MCR7737), 2 5* audit(87-07-14,Parisek), install(87-08-04,MR12.1-1056): 2 6* Initial coding. 2 7* END HISTORY COMMENTS */ 2 8 2 9 /* format: style4,indattr */ 2 10 2 11 dcl ls_request_server_info_ptr ptr automatic; 2 12 dcl 1 ls_request_server_info structure aligned 2 13 based (ls_request_server_info_ptr), 2 14 2 version char (8), 2 15 2 reply_ptr ptr, 2 16 2 flags, 2 17 3 initialized bit (1) unaligned, 2 18 3 pad1 bit (35) unaligned, 2 19 2 request_ms, 2 20 3 dirname char (168) unaligned, 2 21 3 entryname char (32) unaligned, 2 22 3 index fixed bin, 2 23 2 request_info, /* only valid while executing a request */ 2 24 3 sender_process_id bit (36) aligned; 2 25 2 26 dcl LS_REQUEST_SERVER_INFO_VERSION_1 char (8) initial ("lsrsi001") internal static options (constant); 2 27 2 28 /* END OF: ls_request_server_info.incl.pl1 * * * * * */ 252 253 /* BEGIN INCLUDE FILE sys_log_constants.incl.pl1 ... 82-09-24 E. N. Kittlitz */ 3 2 3 3 3 4 /****^ HISTORY COMMENTS: 3 5* 1) change(87-04-22,GDixon), approve(87-06-10,MCR7708), 3 6* audit(87-06-02,Parisek), install(87-08-04,MR12.1-1056): 3 7* Added sl_info structure and associated named constants for use in calling 3 8* sys_log_$general. 3 9* END HISTORY COMMENTS */ 3 10 3 11 3 12 /* format: style4 */ 3 13 3 14 dcl ( 3 15 SL_TYPE_CRASH init (-3), /* type message with banner & kill system */ 3 16 SL_TYPE_BEEP init (-2), /* type message with banner */ 3 17 SL_TYPE init (-1), /* type message */ 3 18 SL_LOG_SILENT init (0), /* log message */ 3 19 SL_LOG init (1), /* log & type message */ 3 20 SL_LOG_BEEP init (2), /* log & type message with banner */ 3 21 SL_LOG_CRASH init (3) /* log & type message with banner & kill system */ 3 22 ) fixed bin internal static options (constant); 3 23 3 24 dcl 1 sl_info aligned automatic, 3 25 2 version char(8), /* structure version */ 3 26 2 arg_list_ptr ptr, /* arg_list with values */ 3 27 2 loc, 3 28 3 (mode, severity, code, caller, data, class, ioa_msg) fixed bin, 3 29 /* These flags control where the corresponding data item is found.*/ 3 30 /* -1: data appears in the corresponding structure element below */ 3 31 /* 0: data is not present anywhere */ 3 32 /* +N: data is Nth item in argument list pointed to by */ 3 33 /* sl_info.arg_list_ptr. Upon return, data copied into */ 3 34 /* corresponding structure element. */ 3 35 /* if data = +N: */ 3 36 /* argN is data_ptr, argN+1 is data_len */ 3 37 /* if ioa_msg = +N: */ 3 38 /* argN+1, ... argLAST are arguments substituted into the */ 3 39 /* ioa_msg control string. The formatted msg is returned. */ 3 40 2 flags, 3 41 3 ioa_msg_is_error_code bit(1) unal, /* ioa_ctl is error code. */ 3 42 3 flags_pad bit(35) unal, 3 43 2 mode fixed bin, /* as-mode, command-mode */ 3 44 2 severity fixed bin, /* error severity */ 3 45 2 code fixed bin(35), /* error table code */ 3 46 2 caller char(65) varying, /* caller refname$entryname*/ 3 47 2 data, /* binary data ptr/length */ 3 48 3 data_ptr ptr, 3 49 3 data_lth fixed bin(21), 3 50 2 class char(10) varying, /* binary data class */ 3 51 2 ioa_msg char(500) varying; /* formatted message text */ 3 52 3 53 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 3 54 /* */ 3 55 /* If data values (eg, sl_info.caller) are passed in the argument list, */ 3 56 /* their data types should be as shown in the structure above, except that */ 3 57 /* character strings should be char(*) nonvarying. */ 3 58 /* */ 3 59 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 3 60 3 61 /* value for sl_info.version */ 3 62 dcl SL_INFO_version_1 char (8) int static options(constant) init("sl_info1"); 3 63 3 64 /* values for sl_info.mode */ 3 65 dcl (SL_INFO_as_mode init(1), 3 66 SL_INFO_command_mode init(2)) fixed bin int static options(constant); 3 67 3 68 /* values for sl_info.loc.(severity code caller data class ioa_ctl arg) */ 3 69 dcl (SL_INFO_arg_given_in_structure init(-1), 3 70 SL_INFO_arg_not_given init(0)) fixed bin int static options(constant); 3 71 3 72 3 73 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 3 74 /* */ 3 75 /* The following static structures are commonly used in the Login Server */ 3 76 /* user control software. */ 3 77 /* */ 3 78 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 3 79 3 80 /* Syntax: call Abort (severity, code, ioa_ctl, args); */ 3 81 3 82 dcl 1 sl_info_sev_code_msg aligned int static options(constant), 3 83 2 version char(8) init ("sl_info1"), 3 84 2 arg_list_ptr ptr init (null), 3 85 2 loc, 3 86 3 (mode init (-1), 3 87 severity init ( 1), 3 88 code init ( 2), 3 89 caller init (-1), 3 90 data init ( 0), 3 91 class init ( 0), 3 92 ioa_msg init ( 3)) fixed bin, 3 93 2 flags, 3 94 3 ioa_msg_is_error_code bit(1) unal init ("0"b), 3 95 3 flags_pad bit(35) unal init ("0"b), 3 96 2 mode fixed bin init ( 1), 3 97 2 severity fixed bin init ( 0), 3 98 2 code fixed bin(35) init ( 0), 3 99 2 caller char(65) varying init (""), 3 100 2 data, 3 101 3 data_ptr ptr init (null), 3 102 3 data_lth fixed bin(21) init ( 0), 3 103 2 class char(10) varying init (""), 3 104 2 ioa_msg char(500) varying init (""); 3 105 3 106 /* Syntax: call Abort (severity, ioa_ctl, args); */ 3 107 3 108 dcl 1 sl_info_sev_msg aligned int static options(constant), 3 109 2 version char(8) init ("sl_info1"), 3 110 2 arg_list_ptr ptr init (null), 3 111 2 loc, 3 112 3 (mode init (-1), 3 113 severity init ( 1), 3 114 code init ( 0), 3 115 caller init (-1), 3 116 data init ( 0), 3 117 class init ( 0), 3 118 ioa_msg init ( 2)) fixed bin, 3 119 2 flags, 3 120 3 ioa_msg_is_error_code bit(1) unal init ("0"b), 3 121 3 flags_pad bit(35) unal init ("0"b), 3 122 2 mode fixed bin init ( 1), 3 123 2 severity fixed bin init ( 0), 3 124 2 code fixed bin(35) init ( 0), 3 125 2 caller char(65) varying init (""), 3 126 2 data, 3 127 3 data_ptr ptr init (null), 3 128 3 data_lth fixed bin(21) init ( 0), 3 129 2 class char(10) varying init (""), 3 130 2 ioa_msg char(500) varying init (""); 3 131 3 132 /* Syntax: call Abort (severity, ioa_ctl_as_error_code, args); */ 3 133 3 134 dcl 1 sl_info_sev_coded_msg aligned int static options(constant), 3 135 2 version char(8) init ("sl_info1"), 3 136 2 arg_list_ptr ptr init (null), 3 137 2 loc, 3 138 3 (mode init (-1), 3 139 severity init ( 1), 3 140 code init ( 0), 3 141 caller init (-1), 3 142 data init ( 0), 3 143 class init ( 0), 3 144 ioa_msg init ( 2)) fixed bin, 3 145 2 flags, 3 146 3 ioa_msg_is_error_code bit(1) unal init ("1"b), 3 147 3 flags_pad bit(35) unal init ("0"b), 3 148 2 mode fixed bin init ( 1), 3 149 2 severity fixed bin init ( 0), 3 150 2 code fixed bin(35) init ( 0), 3 151 2 caller char(65) varying init (""), 3 152 2 data, 3 153 3 data_ptr ptr init (null), 3 154 3 data_lth fixed bin(21) init ( 0), 3 155 2 class char(10) varying init (""), 3 156 2 ioa_msg char(500) varying init (""); 3 157 3 158 3 159 /* Syntax: call Abort (severity, code, error_return_label, ioa_ctl, args); */ 3 160 3 161 dcl 1 sl_info_sev_code_label_msg aligned int static options(constant), 3 162 2 version char(8) init ("sl_info1"), 3 163 2 arg_list_ptr ptr init (null), 3 164 2 loc, 3 165 3 (mode init (-1), 3 166 severity init ( 1), 3 167 code init ( 2), 3 168 caller init (-1), 3 169 data init ( 0), 3 170 class init ( 0), 3 171 ioa_msg init ( 4)) fixed bin, 3 172 2 flags, 3 173 3 ioa_msg_is_error_code bit(1) unal init ("0"b), 3 174 3 flags_pad bit(35) unal init ("0"b), 3 175 2 mode fixed bin init ( 1), 3 176 2 severity fixed bin init ( 0), 3 177 2 code fixed bin(35) init ( 0), 3 178 2 caller char(65) varying init (""), 3 179 2 data, 3 180 3 data_ptr ptr init (null), 3 181 3 data_lth fixed bin(21) init ( 0), 3 182 2 class char(10) varying init (""), 3 183 2 ioa_msg char(500) varying init (""); 3 184 3 185 /* Syntax: call Log_error (code, ioa_ctl, args); */ 3 186 3 187 dcl 1 sl_info_code_msg aligned int static options(constant), 3 188 2 version char(8) init ("sl_info1"), 3 189 2 arg_list_ptr ptr init (null), 3 190 2 loc, 3 191 3 (mode init (-1), 3 192 severity init (-1), 3 193 code init ( 1), 3 194 caller init (-1), 3 195 data init ( 0), 3 196 class init ( 0), 3 197 ioa_msg init ( 2)) fixed bin, 3 198 2 flags, 3 199 3 ioa_msg_is_error_code bit(1) unal init ("0"b), 3 200 3 flags_pad bit(35) unal init ("0"b), 3 201 2 mode fixed bin init ( 1), 3 202 2 severity fixed bin init ( 0), 3 203 2 code fixed bin(35) init ( 0), 3 204 2 caller char(65) varying init (""), 3 205 2 data, 3 206 3 data_ptr ptr init (null), 3 207 3 data_lth fixed bin(21) init ( 0), 3 208 2 class char(10) varying init (""), 3 209 2 ioa_msg char(500) varying init (""); 3 210 3 211 3 212 /* Syntax: call Trace (ioa_ctl, args); */ 3 213 3 214 dcl 1 sl_info_msg aligned int static options(constant), 3 215 2 version char(8) init ("sl_info1"), 3 216 2 arg_list_ptr ptr init (null), 3 217 2 loc, 3 218 3 (mode init (-1), 3 219 severity init (-1), 3 220 code init ( 0), 3 221 caller init (-1), 3 222 data init ( 0), 3 223 class init ( 0), 3 224 ioa_msg init ( 1)) fixed bin, 3 225 2 flags, 3 226 3 ioa_msg_is_error_code bit(1) unal init ("0"b), 3 227 3 flags_pad bit(35) unal init ("0"b), 3 228 2 mode fixed bin init ( 1), 3 229 2 severity fixed bin init ( 0), 3 230 2 code fixed bin(35) init ( 0), 3 231 2 caller char(65) varying init (""), 3 232 2 data, 3 233 3 data_ptr ptr init (null), 3 234 3 data_lth fixed bin(21) init ( 0), 3 235 2 class char(10) varying init (""), 3 236 2 ioa_msg char(500) varying init (""); 3 237 3 238 /* END INCLUDE FILE sys_log_constants.incl.pl1 */ 253 254 /* BEGIN INCLUDE FILE ... user_attributes.incl.pl1 TAC 10/79 */ 4 2 4 3 4 4 /****^ HISTORY COMMENTS: 4 5* 1) change(86-12-11,Brunelle), approve(87-07-13,MCR7741), 4 6* audit(87-04-19,GDixon), install(87-08-04,MR12.1-1056): 4 7* Add incl for abs_attributes.incl.pl1 to automatically include absentee 4 8* attribute switches. 4 9* 2) change(87-04-19,GDixon), approve(87-07-13,MCR7741), 4 10* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 4 11* A) Add USER_ATTRIBUTE_NAMES arrays. attribute_names.incl.pl1 can thereby 4 12* be deleted. 4 13* B) Add constants identifying attributes that can be changed by user at 4 14* login, etc. 4 15* END HISTORY COMMENTS */ 4 16 4 17 4 18 /* Modified 82-01-03 E. N. Kittlitz. to declare a complete level-1 structure */ 4 19 4 20 /* format: style4 */ 4 21 dcl 1 user_attributes aligned based, /* the user user_attributes */ 4 22 (2 administrator bit (1), /* 1 system administrator privileges */ 4 23 2 primary_line bit (1), /* 2 user has primary-line privileges */ 4 24 2 nobump bit (1), /* 2 user cannot be bumped */ 4 25 2 guaranteed_login bit (1), /* 4 user has guaranteed login privileges */ 4 26 2 anonymous bit (1), /* 5 used only in SAT. project may have anon.users */ 4 27 2 nopreempt bit (1), /* 6 used only in PDT. user not preemptable by others 4 28* . of same project (distinct from "nobump") */ 4 29 2 nolist bit (1), /* 7 don't list user on "who" */ 4 30 2 dialok bit (1), /* 8 user may have multiple consoles */ 4 31 2 multip bit (1), /* 9 user may have several processes */ 4 32 2 bumping bit (1), /* 10 in SAT. Can users in project bump each other? */ 4 33 2 brief bit (1), /* 11 no login or logout message */ 4 34 2 vinitproc bit (1), /* 12 user may change initial procedure */ 4 35 2 vhomedir bit (1), /* 13 user may change homedir */ 4 36 2 nostartup bit (1), /* 14 user does not want start_up.ec */ 4 37 2 sb_ok bit (1), /* 15 user may be standby */ 4 38 2 pm_ok bit (1), /* 16 user may be primary */ 4 39 2 eo_ok bit (1), /* 17 user may be edit_only */ 4 40 2 daemon bit (1), /* 18 user may login as daemon */ 4 41 2 vdim bit (1), /* 19 * OBSOLETE * user may change outer mdle */ 4 42 2 no_warning bit (1), /* 20 no warning message */ 4 43 2 igroup bit (1), /* 21 in SAT: this project may give its users individual groups 4 44* . in PDT: this user has an individual load control group */ 4 45 2 save_pdir bit (1), /* 22 save pdir after fatal process error */ 4 46 2 disconnect_ok bit (1), /* 23 ok to save user's disconnected processes */ 4 47 2 save_on_disconnect bit (1), /* 24 save them unless -nosave login arg is given */ 4 48 2 pad bit (12)) unaligned; 4 49 4 50 dcl USER_ATTRIBUTE_NAMES (0:24) char (20) int static options (constant) init 4 51 ("none", /* 0 */ 4 52 "administrator", /* 1 */ 4 53 "primary_line", /* 2 */ 4 54 "nobump", /* 3 */ 4 55 "guaranteed_login", /* 4 */ 4 56 "anonymous", /* 5 */ 4 57 "nopreempt", /* 6 */ 4 58 "nolist", /* 7 */ 4 59 "dialok", /* 8 */ 4 60 "multip", /* 9 */ 4 61 "bumping", /* 10 */ 4 62 "brief", /* 11 */ 4 63 "vinitproc", /* 12 */ 4 64 "vhomedir", /* 13 */ 4 65 "nostartup", /* 14 */ 4 66 "no_secondary", /* 15 */ 4 67 "no_prime", /* 16 */ 4 68 "no_eo", /* 17 */ 4 69 "daemon", /* 18 */ 4 70 "", /* 19 vdim OBSOLETE */ 4 71 "no_warning", /* 20 */ 4 72 "igroup", /* 21 */ 4 73 "save_pdir", /* 22 */ 4 74 "disconnect_ok", /* 23 */ 4 75 "save_on_disconnect"); /* 24 */ 4 76 4 77 dcl ALT_USER_ATTRIBUTE_NAMES (0:24) char (20) int static options (constant) init 4 78 ("null", /* 0 */ 4 79 "admin", /* 1 */ 4 80 "", "", /* 2 - 3 */ 4 81 "guar", /* 4 */ 4 82 "anon", /* 5 */ 4 83 "", "", /* 6 - 7 */ 4 84 "dial", /* 8 */ 4 85 "multi_login", /* 9 */ 4 86 "preempting", /* 10 */ 4 87 "", /* 11 */ 4 88 "v_process_overseer", /* 12 */ 4 89 "v_home_dir", /* 13 */ 4 90 "no_start_up", /* 14 */ 4 91 "no_sec", /* 15 */ 4 92 "no_primary", /* 16 */ 4 93 "no_edit_only", /* 17 */ 4 94 "op_login", /* 18 */ 4 95 "", /* 19 */ 4 96 "nowarn", /* 20 */ 4 97 "", "", "", /* 21 - 23 */ 4 98 "save"); /* 24 */ 4 99 4 100 dcl USER_ATTRIBUTES_always_allowed bit (36) aligned int static 4 101 options(constant) init("000000000010000000010000000000000000"b); 4 102 /* SAT/PDT attributes not needed for user to give (brief, no_warning) */ 4 103 4 104 dcl USER_ATTRIBUTES_default_in_pdt bit (36) aligned int static 4 105 options(constant) init("000000000010000000010000000000000000"b); 4 106 /* PDT value for (brief, no_warning) is default */ 4 107 4 108 dcl USER_ATTRIBUTES_settable_by_user bit (36) aligned int static 4 109 options(constant) init("000100000110010000010000000000000000"b); 4 110 /* user MIGHT set (bump, ns, brief, guar, no_warning) */ 4 111 5 1 /* BEGIN INCLUDE FILE ... user_abs_attributes.incl.pl1 */ 5 2 5 3 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 5 4 /* */ 5 5 /* This include file describes the attributes of an absentee job. It is */ 5 6 /* used by user_table_entry.incl.pl1, abs_message_format.incl.pl1 */ 5 7 /* and PIT.incl.pl1. */ 5 8 /* */ 5 9 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 5 10 5 11 /****^ HISTORY COMMENTS: 5 12* 1) change(86-12-08,GDixon), approve(87-07-13,MCR7741), 5 13* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 5 14* Separated abs_attributes from the request structure 5 15* (abs_message_format.incl.pl1) so that the identical structure could be 5 16* used in the ute structure (user_table_entry.incl.pl1). 5 17* 2) change(87-04-19,GDixon), approve(87-07-13,MCR7741), 5 18* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 5 19* Added ABS_ATTRIBUTE_NAMES array. 5 20* 3) change(87-11-11,Parisek), approve(88-02-11,MCR7849), 5 21* audit(88-03-22,Lippard), install(88-07-13,MR12.2-1047): 5 22* Added the no_start_up flag. SCP6367 5 23* END HISTORY COMMENTS */ 5 24 5 25 dcl 1 user_abs_attributes aligned based, 5 26 2 restartable bit (1) unaligned, /* 1 if request may be started over from the beginning */ 5 27 2 user_deferred_until_time bit (1) unaligned, /* 1 if request was specified as deferred */ 5 28 2 proxy bit (1) unaligned, /* 1 if request submitted for someone else */ 5 29 2 set_bit_cnt bit (1) unaligned, /* 1 if should set bit count after every write call */ 5 30 2 time_in_gmt bit (1) unaligned, /* 1 if deferred_time is in GMT */ 5 31 2 user_deferred_indefinitely bit (1) unaligned, /* 1 if operator is to say when to run it */ 5 32 2 secondary_ok bit (1) unaligned, /* 1 if ok to log in as secondary foreground user */ 5 33 2 truncate_absout bit (1) unaligned, /* 1 if .absout is to be truncated */ 5 34 2 restarted bit (1) unaligned, /* 1 if job is restarted */ 5 35 2 no_start_up bit (1) unaligned, /* 1 if requested -ns */ 5 36 2 attributes_pad bit (26) unaligned; 5 37 5 38 dcl ABS_ATTRIBUTE_NAMES (10) char (28) varying int static options(constant) init( 5 39 "restartable", 5 40 "user_deferred_until_time", 5 41 "proxy", 5 42 "set_bit_cnt", 5 43 "time_in_gmt", 5 44 "user_deferred_indefinitely", 5 45 "secondary_ok", 5 46 "truncate_absout", 5 47 "restarted", 5 48 "no_start_up"); 5 49 5 50 /* END INCLUDE FILE ... user_abs_attributes.incl.pl1 */ 5 51 4 112 4 113 4 114 /* END INCLUDE FILE ... user_attributes.incl.pl1 */ 254 /* not used, but needed by PL/I */ 255 /* BEGIN INCLUDE FILE ... user_table_entry.incl.pl1 */ 6 2 6 3 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 6 4 /* */ 6 5 /* This include file requires that the user include */ 6 6 /* user_attributes.incl.pl1 as well. It also includes */ 6 7 /* abs_attributes.incl.pl1 itself. */ 6 8 /* */ 6 9 /* This include file must be included to use absentee_user_table.incl.pl1, */ 6 10 /* answer_table.incl.pl1, and daemon_user_table.incl.pl1. */ 6 11 /* */ 6 12 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 6 13 6 14 /****^ HISTORY COMMENTS: 6 15* 1) change(81-12-21,Gilcrease), approve(86-03-27,MCR7370), 6 16* audit(86-06-23,Lippard), install(86-06-30,MR12.0-1082): 6 17* This comment for hcom. 6 18* 81-12-21 E. N. Kittlitz. derived from abs_user_tab.incl.pl1, 6 19* anstbl.incl.pl1, and dutbl.incl.pl1. 6 20* 82-01-02 E. N. Kittlitz. user_attributes.incl.pl1 changes 6 21* 84-04-04 BIM added privileged_dial_server and dial_server_ring 6 22* 84-07-12 BIM added min_process_authorization 6 23* 84-12-31 Keith Loepere added pdir_dir_quota 6 24* 85-01-16 by E. Swenson to add ute.session_uid 6 25* 2) change(85-11-16,Swenson), approve(87-07-13,MCR7737), 6 26* audit(87-04-14,GDixon), install(87-08-04,MR12.1-1056): 6 27* Added fields for DSA login server support. 6 28* 3) change(86-03-27,Gilcrease), approve(86-03-27,MCR7370), 6 29* audit(86-06-23,Lippard), install(86-06-30,MR12.0-1082): 6 30* Add truncate_absout and restarted bit for -truncate absout, SCP6297. 6 31* 4) change(86-04-09,Herbst), approve(87-07-13,MCR7697), 6 32* audit(87-04-14,GDixon), install(87-08-04,MR12.1-1056): 6 33* Added disconnection_rel_minutes. 6 34* 5) change(86-12-08,GDixon), approve(87-07-13,MCR7741), 6 35* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 6 36* Changed structure under ute.abs_attributes to use like structure in 6 37* abs_attributes.incl.pl1. This allows the same attributes to be used 6 38* in abs_message_format.incl.pl1 and pit.incl.pl1 as well as this include 6 39* file. 6 40* 6) change(87-04-14,GDixon), approve(87-07-13,MCR7741), 6 41* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 6 42* Move constants for ute.pw_flags.mask_ctl from answer_table.incl.pl1. 6 43* 7) change(87-04-16,GDixon), approve(87-07-13,MCR7741), 6 44* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 6 45* A) Global reorganization to locate things by type of data. 6 46* B) Eliminate ute.uflags.logged_in. 6 47* 8) change(87-05-10,GDixon), approve(87-07-13,MCR7741), 6 48* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 6 49* A) Reduced overlength person and project fields to proper length. 6 50* B) Adjusted dialed-console section to begin on even word boundary. 6 51* 9) change(87-05-13,GDixon), approve(87-07-13,MCR7741), 6 52* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 6 53* Add ute.line_type. 6 54* 10) change(87-11-19,Parisek), approve(88-02-11,MCR7849), 6 55* audit(88-02-23,Lippard), install(88-07-13,MR12.2-1047): 6 56* Added the lowest_ring element. Used the upper half of ute.highest_ring 6 57* for the storage. SCP6367 6 58* END HISTORY COMMENTS */ 6 59 6 60 /* format: style4 */ 6 61 6 62 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 6 63 /* */ 6 64 /* Each of the named sections below defines a type of data. Typing comes */ 6 65 /* from data associated with the ute entry itself, with the person, with */ 6 66 /* login argument data, from the main user of the data (eg, dialup_, */ 6 67 /* load_ctl_, login server). Each section begins on a double-word boundary */ 6 68 /* and is an even number of words long. The total structure is 300 decimal */ 6 69 /* words long. */ 6 70 /* */ 6 71 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 6 72 6 73 6 74 dcl UTE_version_4 fixed bin internal static options (constant) init (4); 6 75 6 76 dcl utep pointer automatic init (null); 6 77 6 78 dcl 1 ute based (utep) aligned, /* individual entry in one of the user control tables */ 6 79 6 80 /* Variables which give state of this entry */ 6 81 2 active fixed bin, /* state of entry. 0=>free. see dialup_values.incl.pl1 */ 6 82 2 process_type fixed bin, /* 1=interactive, 2=absentee, 3=daemon */ 6 83 2 ute_index fixed bin, /* index of ute in (anstbl autbl dutbl).entry array */ 6 84 2 next_free fixed bin, /* points to previous free entry */ 6 85 6 86 /* Information user gave about person_id associated with this entry. */ 6 87 2 person char (24) unal, /* user's name */ 6 88 2 project char (12) unal, /* project of absentee user */ 6 89 2 tag char (1) unal, /* instance tag - someday will be generated */ 6 90 2 tag_pad bit (27) unal, 6 91 2 anonymous fixed bin, /* 1 if anonymous, otherwise 0 */ 6 92 2 login_flags, /* flags for login data */ 6 93 3 cpw bit (1) unal, /* flag for wish to change password */ 6 94 3 generate_pw bit (1) unal, /* flag meaning -generate_pw (-gpw) was used. */ 6 95 3 special_pw unal, /* dial or slave */ 6 96 4 dial_pw bit (1) unal, /* true if dial -user */ 6 97 4 slave_pw bit (1) unal, /* true if slave -user */ 6 98 3 cdp bit (1) unal, /* flag for wish to change default project */ 6 99 3 cda bit (1) unal, /* flag to change default authorization */ 6 100 3 auth_given bit (1) unal, /* flag to mean -authorization was used. */ 6 101 3 noprint bit (1) unal, /* used at logout. inhibits printing. */ 6 102 3 operator bit (1) unaligned, /* user specified -operator on login command line */ 6 103 3 pw_pad bit (25) unal, /* spare parts */ 6 104 3 mask_ctl bit (2) unal, /* bits controlling pw mask. See constants, below */ 6 105 /* Must remain last in pw_flags so it does not */ 6 106 /* appear in PW_FLAG_VALUES array below. */ 6 107 2 generated_pw char (8) unal, /* user must type this as new password */ 6 108 2 old_password char (8) unal, /* must match user's previous password (value scrambled) */ 6 109 2 process_authorization bit (72), /* access_authorization of this process */ 6 110 6 111 /* Information user gave about process associated with this entry. */ 6 112 2 outer_module char (32) unal, /* Name of console dim */ 6 113 2 home_dir char (64) unal, /* initial home directory */ 6 114 2 init_proc char (64) unal, /* name of login responder */ 6 115 2 ip_len fixed bin (17) unal, /* length of initproc string */ 6 116 2 ss_len fixed bin (17) unal, /* length of subsystem string */ 6 117 2 ur_at like user_attributes aligned, /* bits on means attributes given by user */ 6 118 2 at like user_attributes aligned, /* bits on means attribute is on */ 6 119 2 initial_ring fixed bin, /* ring process will be started in */ 6 120 2 arg_count fixed bin, /* number of arguments to absentee control segment */ 6 121 2 ln_args fixed bin, /* length of string containing arguments */ 6 122 2 arg_lengths_ptr ptr, /* pointer to array of argument lengths */ 6 123 2 args_ptr ptr, /* pointer to arguments to absentee control segment */ 6 124 6 125 /* Most of the following information is relevant only to absentee processes */ 6 126 2 input_seg char (168) unal, /* pathname of absentee control segment */ 6 127 2 output_seg char (168) unal, /* pathname of absentee output file */ 6 128 2 request_id fixed bin (71), /* time request was entered - used as uid of request */ 6 129 2 reservation_id fixed bin (71), /* nonzero if job has a resource reservation */ 6 130 2 message_id bit (72), /* message segment id assoc with absentee request */ 6 131 2 deferred_time fixed bin (71), /* time at which absentee process should be created */ 6 132 2 max_cpu_time fixed bin (35), /* maximum number of seconds this process can run */ 6 133 2 queue fixed bin, /* -1=daemon;0=interactive or foreground;>0=queue no. 6 134* (but see uflags.adjust_abs_q_no). */ 6 135 2 real_queue fixed bin, /* real queue number; ute.queue gets fudged sometimes */ 6 136 2 abs_attributes aligned like user_abs_attributes, /* include abs_attributes.incl.pl1 */ 6 137 2 abs_flags, 6 138 3 abs_run bit (1) unal, /* on if job was started by abs run command */ 6 139 3 notify bit (1) unal, /* on if user wants notification at login and logout */ 6 140 3 abs_flags_pad bit (34) unal, 6 141 2 abs_group char (8) unal, /* original group before load_ctl_ moves it to absentee group */ 6 142 2 sender char (32) unal, /* name of RJE station that job is from */ 6 143 2 proxy_person char (28) unal, /* name of user who actually entered the request, if proxy */ 6 144 2 proxy_project char (9) unal, 6 145 2 proxy_project_pad char (3) unal, 6 146 2 abs_pad fixed bin, 6 147 6 148 /* Information about process actually created */ 6 149 2 proc_id bit (36), /* process id of absentee process */ 6 150 2 session_uid fixed bin (35), /* Unique authentication session id */ 6 151 2 process_authorization_range (2) bit (72) aligned, 6 152 2 audit bit (36), /* audit flags for user */ 6 153 2 lot_size fixed bin, /* Size of linkage offset table */ 6 154 2 kst_size fixed bin, /* Size of process known segment table */ 6 155 2 cls_size fixed bin, /* Size of process combined linkage */ 6 156 2 sus_channel fixed bin (71), /* event channel on which suspended process is blocked */ 6 157 2 lowest_ring fixed bin (17) unal, /* lowest ring permitted */ 6 158 2 highest_ring fixed bin (17) unal, /* highest ring permitted */ 6 159 2 pdir_lvix fixed bin (17) unal, /* index in disk table of lv where pdir is */ 6 160 2 pdir_quota fixed bin (17) unal, /* process directory quota */ 6 161 2 pdir_dir_quota fixed bin (17) unal, /* process directory quota for dirs */ 6 162 2 pdir_pad fixed bin(17) unal, 6 163 2 process_pad fixed bin, 6 164 6 165 /* Information about primary terminal associated with this entry */ 6 166 2 tty_name char (32) unal, /* absentee=>"abs1", etc. daemon=>"bk", etc. */ 6 167 2 terminal_type char (32) unaligned, /* terminal type */ 6 168 2 line_type fixed bin, /* line type */ 6 169 2 tty_id_code char (4) unal, /* "none" for absentee */ 6 170 2 network_connection_type fixed bin, /* see net_event_message.incl.pl1 */ 6 171 2 channel ptr unal, /* points to CDT entry for user, if any */ 6 172 6 173 /* Variables useful for dialed terminals */ 6 174 2 ndialed_consoles fixed bin, /* if master, number of slaves */ 6 175 2 dial_qualifier char (22) unal, /* first argument to dial command */ 6 176 2 dial_server_ring fixed bin (3) unsigned unaligned, /* dial server intends to attach dialing in channels at this ring. */ 6 177 2 dial_server_flags, 6 178 3 registered_dial_server bit (1) unal, /* process is a registered dial server */ 6 179 3 privileged_dial_server bit (1) unal, /* "1"b -> serves range of AIM classes */ 6 180 3 dial_server_flags_pad bit (13) unal, /* fill out the word */ 6 181 2 dial_ev_chn fixed bin (71), /* if master, control event channel */ 6 182 6 183 /* Information about usage/accounting. Device usage meters are in a 6 184* separate segment, "devtab" */ 6 185 2 pdtep ptr, /* ptr to user's pdt entry, where usage meters live */ 6 186 2 cpu_this_process fixed bin (71), /* cpu used so far this process */ 6 187 2 cpu_usage fixed bin (71), /* total cpu time used in this session */ 6 188 2 mem_usage fixed bin (71), /* memory usage for previous processes in session */ 6 189 2 mem_this_process fixed bin (71), /* memory usage at last update */ 6 190 2 last_update_time fixed bin (71), /* time of last account update */ 6 191 2 session_cost float bin, /* dollar cost of session, for printing in logout messages */ 6 192 2 ndevices fixed bin, /* Count of attached devices */ 6 193 2 device_head fixed bin, /* Table index of head of device chain */ 6 194 2 device_tail fixed bin, /* Table index of tail of device chain */ 6 195 2 rs_number fixed bin (6) unsigned unal, /* rate structure number */ 6 196 2 rs_number_pad bit(30) unal, 6 197 2 usage_pad fixed bin, 6 198 6 199 /* Information for dialup_ (control variables). */ 6 200 2 event fixed bin (71), /* event associated with channel or user manager */ 6 201 2 uprojp ptr, /* ptr to user project sat entry */ 6 202 2 login_time fixed bin (71), /* time when absentee user approved by lg_ctl_ */ 6 203 2 cant_bump_until fixed bin (71), /* bump-protection clock */ 6 204 2 recent_fatal_error_time fixed bin (71), /* time of first error in the suspected loop */ 6 205 2 recent_fatal_error_count fixed bin, /* counter to detect fatal process error loops */ 6 206 2 failure_reason fixed bin, /* why login refused 1=lg_ctl, 2=act_ctl, 3=load_ctl */ 6 207 2 count fixed bin, /* counter for logins and dialups */ 6 208 2 n_processes fixed bin, /* number of processes created in this session */ 6 209 2 lock_value fixed bin, /* number of locks set for this entry */ 6 210 2 login_result fixed bin, /* 0=logged in;1=hopeless,hang him up;2=allow another attempt */ 6 211 2 login_code char (8) unal, /* login command from LOGIN line */ 6 212 2 preempted fixed bin, /* if ^= 0 user preempted (never for abs) */ 6 213 2 destroy_flag fixed bin, /* >8 when awaiting destroy */ 6 214 2 logout_type char (4) unal, /* type of logout */ 6 215 2 logout_index fixed bin, /* to save logout handler index while waiting for termsgnl */ 6 216 2 disconnection_rel_minutes fixed bin (17) unal, /* disconnected this many minutes after login_time */ 6 217 2 next_disconnected_ate_index fixed bin (17) unal, /* thread of list of user's disconnected processes */ 6 218 2 work_class fixed bin, /* work class used by priority scheduler */ 6 219 2 group char (8) unal, /* party group identifier */ 6 220 2 whotabx fixed bin, /* index of user's entry in whotab */ 6 221 6 222 2 uflags, /* Miscellaneous flags */ 6 223 3 dont_call_init_admin bit (1) unal, /* Call overseer directly */ 6 224 3 ip_given bit (1) unal, /* user gave an initproc arg on login line */ 6 225 3 ss_given bit (1) unal, /* initial_procedure contains a subsystem name */ 6 226 3 lvs_attached bit (1) unal, /* set and used by the lv_request_ procedure */ 6 227 3 send_initial_string bit (1) unal, /* initial string should be sent after login line read */ 6 228 3 adjust_abs_q_no bit (1) unal, /* this is an absentee job; user_profile.queue is NOT true Q # */ 6 229 3 foreground_secondary_ok bit (1) unal, /* ok to login foreground absentee job as secondary */ 6 230 3 foreground_job bit (1) unal, /* job was originally from foreground queue */ 6 231 3 sus_sent bit (1) unal, /* sus_ ips signal has been sent to process */ 6 232 3 suspended bit (1) unal, /* process has responded to sus_ signal */ 6 233 3 ignore_cpulimit bit (1) unal, /* process is released, but timer can't be turned off */ 6 234 3 deferral_logged bit (1) unal, /* abs job deferral has already been logged once */ 6 235 3 save_if_disconnected bit (1) unal, /* user wants process preserved across hangups */ 6 236 3 disconnected bit (1) unal, /* process is disconnected from terminal */ 6 237 3 disconnected_list bit (1) unal, /* this ate is on a list of disconnected processes */ 6 238 3 proc_create_ok bit (1) unal, /* lg_ctl_ has set the process creation variables */ 6 239 3 activity_can_unbump bit (1) unal, /* only bump pending is for inactivity */ 6 240 3 fpe_causes_logout bit (1) unal, /* "1"b means don't try to new_proc after fatal process error */ 6 241 3 user_specified_immediate bit (1) unal, /* "1"b -> don't wait around for process destruction. */ 6 242 3 uflags_pad bit (17) unal, 6 243 6 244 /* Information used by load_ctl_ for the process */ 6 245 2 user_weight fixed bin, /* usually 10 - used in load control */ 6 246 2 standby_line fixed bin, /* 0=user has primary line, 1=standby user */ 6 247 2 bump_grace fixed bin (71), /* bump grace in microseconds */ 6 248 6 249 6 250 /* Information for login server */ 6 251 2 login_server_info, 6 252 3 our_handle bit (72) aligned, /* how LS refers to us. */ 6 253 3 his_handle bit (72) aligned, /* how we talk to LS */ 6 254 3 termination_event_channel fixed bin (71), /* for process termination notifications to the LS */ 6 255 3 response_event_channel fixed bin (71), /* for other communications with the LS */ 6 256 3 process_id bit (36) aligned, /* process_id of login server */ 6 257 2 ls_pad (5) fixed bin; /* pad to 300 decimal words */ 6 258 6 259 /* values for ute.process_type */ 6 260 6 261 dcl (PT_INTERACTIVE initial (1), 6 262 PT_ABSENTEE initial (2), 6 263 PT_DAEMON initial (3)) fixed bin internal static options (constant); 6 264 6 265 dcl PROCESS_TYPE_NAMES (0:3) char(12) varying int static options(constant) init( 6 266 "INVALID-TYPE", 6 267 "interactive", 6 268 "absentee", 6 269 "daemon"); 6 270 6 271 dcl TABLE_NAMES (0:3) char(20) int static options(constant) init( 6 272 "UNKNOWN-TABLE", 6 273 "answer_table", 6 274 "absentee_user_table", 6 275 "daemon_user_table"); 6 276 6 277 6 278 /* values for ute.pw_flags.mask_ctl */ 6 279 6 280 dcl (DO_MASK init ("00"b), 6 281 DONT_MASK init ("01"b), 6 282 DERIVE_MASK init ("10"b)) bit (2) internal static options (constant); 6 283 6 284 dcl MASK_CTL_NAMES (0:3) char(12) varying int static options(constant) init( 6 285 "do_mask", "dont_mask", "derive_mask", ""); 6 286 6 287 6 288 /* names for ute.pw_flags */ 6 289 6 290 dcl PW_FLAG_NAMES (9) char (12) varying int static options(constant) init( 6 291 "cpw", 6 292 "generate_pw", 6 293 "dial_pw", 6 294 "slave_pw", 6 295 "cdp", 6 296 "cda", 6 297 "auth_given", 6 298 "noprint", 6 299 "operator"); 6 300 6 301 /* names for ute.uflags */ 6 302 6 303 dcl UFLAG_NAMES (19) char (24) varying int static options (constant) init ( 6 304 "dont_call_init_admin", 6 305 "ip_given", 6 306 "ss_given", 6 307 "lvs_attached", 6 308 "send_initial_string", 6 309 "adjust_abs_q_no", 6 310 "foreground_secondary_ok", 6 311 "foreground_job", 6 312 "sus_sent", 6 313 "suspended", 6 314 "ignore_cpulimit", 6 315 "deferral_logged", 6 316 "save_if_disconnected", 6 317 "disconnected", 6 318 "disconnected_list", 6 319 "proc_create_ok", 6 320 "activity_can_unbump", 6 321 "fpe_causes_logout", 6 322 "user_specified_immediate"); 6 323 6 324 /* names for ute.abs_flags */ 6 325 6 326 dcl ABS_FLAG_NAMES (2) char (8) varying int static options (constant) init ( 6 327 "abs_run", 6 328 "notify"); 6 329 6 330 /* names of ute.dial_server_flags */ 6 331 6 332 dcl DIAL_SERVER_FLAG_NAMES (2) char (12) varying int static options (constant) init ( 6 333 "registered", 6 334 "privileged"); 6 335 6 336 /* values of ute.login_result */ 6 337 6 338 dcl LOGIN_RESULT_VALUES (0:2) char(24) varying int static options(constant) init( 6 339 "logged in", 6 340 "login failed, hangup", 6 341 "login failed, try again"); 6 342 6 343 /* END INCLUDE FILE ... user_table_entry.incl.pl1 */ 255 256 257 end uc_ls_operator_request_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 07/13/88 0938.3 uc_ls_operator_request_.pl1 >special_ldd>install>MR12.2-1047>uc_ls_operator_request_.pl1 251 1 08/06/87 0913.4 login_server_messages.incl.pl1 >ldd>include>login_server_messages.incl.pl1 252 2 08/06/87 0913.5 ls_request_server_info.incl.pl1 >ldd>include>ls_request_server_info.incl.pl1 253 3 08/06/87 0913.5 sys_log_constants.incl.pl1 >ldd>include>sys_log_constants.incl.pl1 254 4 08/06/87 0913.6 user_attributes.incl.pl1 >ldd>include>user_attributes.incl.pl1 4-112 5 07/13/88 0900.1 user_abs_attributes.incl.pl1 >special_ldd>install>MR12.2-1047>user_abs_attributes.incl.pl1 255 6 07/13/88 0903.2 user_table_entry.incl.pl1 >special_ldd>install>MR12.2-1047>user_table_entry.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. LOGIN_SERVER_OPERATOR_REQUEST_VERSION_1 000252 constant char(8) initial packed unaligned dcl 1-222 set ref 122 122* LOGIN_SERVER_OPERATOR_RESPONSE_VERSION_1 000250 constant char(8) initial packed unaligned dcl 1-438 ref 240 LS_OPERATOR_RESPONSE constant fixed bin(17,0) initial dcl 1-228 ref 238 ME 000254 constant char(23) initial packed unaligned dcl 101 ref 220 P_code parameter fixed bin(35,0) dcl 73 set ref 58 197* P_ls_ipc_reply_ptr parameter pointer dcl 72 ref 58 117 P_ls_request_lth parameter fixed bin(18,0) dcl 69 ref 58 P_ls_request_ptr parameter pointer dcl 68 ref 58 115 P_ls_request_server_info_ptr parameter pointer dcl 66 ref 58 118 P_ls_response_lth parameter fixed bin(18,0) dcl 71 set ref 58 244* P_ls_response_ptr parameter pointer dcl 70 ref 58 116 SL_LOG_SILENT constant fixed bin(17,0) initial dcl 3-14 ref 219 TRUE constant bit(1) initial dcl 103 ref 185 access_class_range 22 based bit(72) array level 4 dcl 1-214 set ref 172* addr builtin function dcl 107 ref 222 222 arg_list_ptr 2 000114 automatic pointer level 2 dcl 3-24 set ref 221* caller 17 000114 automatic varying char(65) level 2 dcl 3-24 set ref 220* code 000100 automatic fixed bin(35,0) dcl 77 in procedure "uc_ls_operator_request_" set ref 120* 172* 185 189* 197 223* 224 242 code 16 000114 automatic fixed bin(35,0) level 2 in structure "sl_info" dcl 3-24 in procedure "uc_ls_operator_request_" set ref 223 connection_info 12 based structure level 3 dcl 1-214 connection_name 12 based char(32) level 4 dcl 1-214 ref 172 cu_$arg_list_ptr 000026 constant entry external dcl 215 ref 221 currentsize builtin function dcl 107 ref 244 do_not_reply 1(03) based bit(1) level 3 packed packed unaligned dcl 1-445 set ref 185* error_table_$bad_arg 000020 external static fixed bin(35,0) dcl 93 set ref 157* error_table_$id_not_found 000022 external static fixed bin(35,0) dcl 94 set ref 151* error_table_$unimplemented_version 000024 external static fixed bin(35,0) dcl 96 set ref 122* flags 1 based structure level 2 dcl 1-445 header based structure level 2 in structure "login_server_operator_request" dcl 1-214 in procedure "uc_ls_operator_request_" header based structure level 2 in structure "login_server_operator_response" dcl 1-426 in procedure "uc_ls_operator_request_" initializer_handle 40 based bit(72) level 2 dcl 1-214 set ref 141 149* 151* login_server_info 436 based structure level 2 dcl 6-78 login_server_operator_request based structure level 1 dcl 1-214 login_server_operator_response based structure level 1 dcl 1-426 set ref 237* 244 login_server_response_header based structure level 1 dcl 1-258 ls_reply_message based structure level 1 dcl 1-445 ls_reply_message_ptr 000110 automatic pointer dcl 1-443 set ref 117* 185 ls_request_header based structure level 1 dcl 1-54 ls_request_ptr 000104 automatic pointer dcl 1-50 set ref 115* 122 122 141 144 144 144 149 151 157 157 157 157 169 172 172 172 172 172 172 ls_request_server_info based structure level 1 dcl 2-12 ls_request_server_info_ptr 000112 automatic pointer dcl 2-11 set ref 118* 172 ls_response_ptr 000106 automatic pointer dcl 1-254 set ref 116* 237 238 240 242 243 244 ls_termination_event_channel 000102 automatic fixed bin(71,0) dcl 78 set ref 166* 169* 172* mc_commands_$mc_login 000010 constant entry external dcl 83 ref 172 message_type based fixed bin(17,0) level 3 dcl 1-426 set ref 238* null builtin function dcl 107 ref 143 151 157 166 190 6-76 person 4 based char(24) level 2 packed packed unaligned dcl 6-78 set ref 157 157* person_id 44 based char(22) level 2 dcl 1-214 set ref 144* 157 157* 172 process_group_id 6 based char(32) level 2 dcl 1-426 set ref 243* project 12 based char(12) level 2 packed packed unaligned dcl 6-78 set ref 157 157* project_id 52 based char(9) level 2 dcl 1-214 set ref 144* 157 157* reply_event_channel 6 based fixed bin(71,0) level 3 dcl 1-214 set ref 172* reply_handle 10 based bit(72) level 3 dcl 1-214 set ref 172* request_info 70 based structure level 2 dcl 2-12 request_version 2 based char(8) level 3 dcl 1-214 set ref 122 122* sender_process_id 70 based bit(36) level 3 dcl 2-12 set ref 172* severity 15 000114 automatic fixed bin(17,0) level 2 dcl 3-24 set ref 219* sl_info 000114 automatic structure level 1 dcl 3-24 set ref 218* 222 222 sl_info_code_msg 000000 constant structure level 1 dcl 3-187 ref 218 status_code 4 based fixed bin(35,0) level 2 dcl 1-426 set ref 242* sys_log_$general 000030 constant entry external dcl 216 ref 222 terminate_event_channel 42 based fixed bin(71,0) level 2 dcl 1-214 ref 169 termination_event_channel 442 based fixed bin(71,0) level 3 dcl 6-78 ref 166 uc_logout_ 000012 constant entry external dcl 85 ref 192 unspec builtin function dcl 107 set ref 237* user_abs_attributes based structure level 1 dcl 5-25 user_attributes based structure level 1 dcl 4-21 user_connection_info based structure level 1 dcl 1-65 user_table_mgr_$free 000014 constant entry external dcl 86 ref 193 user_table_mgr_$utep_from_handle 000016 constant entry external dcl 88 ref 149 ute based structure level 1 dcl 6-78 utep 000364 automatic pointer initial dcl 6-76 set ref 143* 149* 151 157 157 157 157 157 166 166 172* 190 192* 193* 6-76* version 2 based char(8) level 3 dcl 1-426 set ref 240* virtual_channel 55 based char(32) level 2 dcl 1-214 set ref 144* 172 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. ABS_ATTRIBUTE_NAMES internal static varying char(28) initial array dcl 5-38 ABS_FLAG_NAMES internal static varying char(8) initial array dcl 6-326 ALT_USER_ATTRIBUTE_NAMES internal static char(20) initial array packed unaligned dcl 4-77 CONNECT_REQ internal static fixed bin(17,0) initial dcl 1-457 CREATE_REQ internal static fixed bin(17,0) initial dcl 1-457 DERIVE_MASK internal static bit(2) initial packed unaligned dcl 6-280 DESTROY_REQ internal static fixed bin(17,0) initial dcl 1-457 DIAL_SERVER_FLAG_NAMES internal static varying char(12) initial array dcl 6-332 DONT_MASK internal static bit(2) initial packed unaligned dcl 6-280 DO_MASK internal static bit(2) initial packed unaligned dcl 6-280 ENTERP_REQ internal static fixed bin(17,0) initial dcl 1-457 ENTER_REQ internal static fixed bin(17,0) initial dcl 1-457 LIST_REQ internal static fixed bin(17,0) initial dcl 1-457 LOGIN_REQ internal static fixed bin(17,0) initial dcl 1-457 LOGIN_RESULT_VALUES internal static varying char(24) initial array dcl 6-338 LOGIN_SERVER_DIAL_RESPONSE_VERSION_1 internal static char(8) initial packed unaligned dcl 1-378 LOGIN_SERVER_LIST_RESPONSE_VERSION_1 internal static char(8) initial packed unaligned dcl 1-360 LOGIN_SERVER_NEW_PROC_RESPONSE_VERSION_1 internal static char(8) initial packed unaligned dcl 1-420 LOGIN_SERVER_PROCESS_RESPONSE_VERSION_1 internal static char(8) initial packed unaligned dcl 1-341 LOGIN_SERVER_TERMINATION_RESPONSE_VERSION_1 internal static char(8) initial packed unaligned dcl 1-407 LS_DIAL_REQUEST internal static fixed bin(17,0) initial dcl 1-31 LS_DIAL_REQUEST_VERSION_1 internal static char(8) initial packed unaligned dcl 1-180 LS_DIAL_RESPONSE internal static fixed bin(17,0) initial dcl 1-228 LS_DISCONNECT_REQUEST internal static fixed bin(17,0) initial dcl 1-31 LS_DISCONNECT_REQUEST_VERSION_1 internal static char(8) initial packed unaligned dcl 1-193 LS_LIST_REQUEST internal static fixed bin(17,0) initial dcl 1-31 LS_LIST_REQUEST_VERSION_1 internal static char(8) initial packed unaligned dcl 1-160 LS_LIST_RESPONSE internal static fixed bin(17,0) initial dcl 1-228 LS_LOGOUT_REQUEST internal static fixed bin(17,0) initial dcl 1-31 LS_LOGOUT_REQUEST_VERSION_1 internal static char(8) initial packed unaligned dcl 1-203 LS_NEW_PROC_RESPONSE internal static fixed bin(17,0) initial dcl 1-228 LS_OPERATOR_REQUEST internal static fixed bin(17,0) initial dcl 1-31 LS_PROCESS_REQUEST internal static fixed bin(17,0) initial dcl 1-31 LS_PROCESS_REQUEST_VERSION_1 internal static char(8) initial packed unaligned dcl 1-150 LS_PROCESS_RESPONSE internal static fixed bin(17,0) initial dcl 1-228 LS_REQUEST_HEADER_VERSION_1 internal static char(8) initial packed unaligned dcl 1-63 LS_REQUEST_SERVER_INFO_VERSION_1 internal static char(8) initial packed unaligned dcl 2-26 LS_REQUEST_TYPES internal static char(10) initial array packed unaligned dcl 1-40 LS_RESPONSE_TYPES internal static char(10) initial array packed unaligned dcl 1-238 LS_TERMINATION_RESPONSE internal static fixed bin(17,0) initial dcl 1-228 LS_UNKNOWN_RESPONSE internal static fixed bin(17,0) initial dcl 1-228 LS_VALIDATE_REQUEST internal static fixed bin(17,0) initial dcl 1-31 LS_VALIDATE_REQUEST_VERSION_1 internal static char(8) initial packed unaligned dcl 1-97 LS_VALIDATE_RESPONSE internal static fixed bin(17,0) initial dcl 1-228 LS_VALIDATE_RESPONSE_VERSION_1 internal static char(8) initial packed unaligned dcl 1-297 MASK_CTL_NAMES internal static varying char(12) initial array dcl 6-284 NETWORK_CONNECTION_DSA_FILE_TRANSFER internal static fixed bin(17,0) initial dcl 1-471 NETWORK_CONNECTION_LOGIN internal static fixed bin(17,0) initial dcl 1-471 NEW_PROC_REQ internal static fixed bin(17,0) initial dcl 1-457 PROCESS_TYPE_NAMES internal static varying char(12) initial array dcl 6-265 PT_ABSENTEE internal static fixed bin(17,0) initial dcl 6-261 PT_DAEMON internal static fixed bin(17,0) initial dcl 6-261 PT_INTERACTIVE internal static fixed bin(17,0) initial dcl 6-261 PW_FLAG_NAMES internal static varying char(12) initial array dcl 6-290 SL_INFO_arg_given_in_structure internal static fixed bin(17,0) initial dcl 3-69 SL_INFO_arg_not_given internal static fixed bin(17,0) initial dcl 3-69 SL_INFO_as_mode internal static fixed bin(17,0) initial dcl 3-65 SL_INFO_command_mode internal static fixed bin(17,0) initial dcl 3-65 SL_INFO_version_1 internal static char(8) initial packed unaligned dcl 3-62 SL_LOG internal static fixed bin(17,0) initial dcl 3-14 SL_LOG_BEEP internal static fixed bin(17,0) initial dcl 3-14 SL_LOG_CRASH internal static fixed bin(17,0) initial dcl 3-14 SL_TYPE internal static fixed bin(17,0) initial dcl 3-14 SL_TYPE_BEEP internal static fixed bin(17,0) initial dcl 3-14 SL_TYPE_CRASH internal static fixed bin(17,0) initial dcl 3-14 TABLE_NAMES internal static char(20) initial array packed unaligned dcl 6-271 UFLAG_NAMES internal static varying char(24) initial array dcl 6-303 USER_ATTRIBUTES_always_allowed internal static bit(36) initial dcl 4-100 USER_ATTRIBUTES_default_in_pdt internal static bit(36) initial dcl 4-104 USER_ATTRIBUTES_settable_by_user internal static bit(36) initial dcl 4-108 USER_ATTRIBUTE_NAMES internal static char(20) initial array packed unaligned dcl 4-50 UTE_version_4 internal static fixed bin(17,0) initial dcl 6-74 login_server_dial_request based structure level 1 dcl 1-170 login_server_dial_response based structure level 1 dcl 1-366 login_server_disconnect_request based structure level 1 dcl 1-188 login_server_list_request based structure level 1 dcl 1-156 login_server_list_response based structure level 1 dcl 1-347 login_server_list_response_n_processes automatic fixed bin(17,0) dcl 1-358 login_server_logout_request based structure level 1 dcl 1-199 login_server_new_proc_response based structure level 1 dcl 1-414 login_server_process_request based structure level 1 dcl 1-103 login_server_process_response based structure level 1 dcl 1-303 login_server_termination_response based structure level 1 dcl 1-385 login_server_validate_request based structure level 1 dcl 1-76 login_server_validate_response based structure level 1 dcl 1-267 ls_process_request_arg_string_length automatic fixed bin(21,0) dcl 1-148 ls_process_request_n_args automatic fixed bin(17,0) dcl 1-147 ls_process_response_accounting_message_length automatic fixed bin(17,0) dcl 1-339 sl_info_msg internal static structure level 1 dcl 3-214 sl_info_sev_code_label_msg internal static structure level 1 dcl 3-161 sl_info_sev_code_msg internal static structure level 1 dcl 3-82 sl_info_sev_coded_msg internal static structure level 1 dcl 3-134 sl_info_sev_msg internal static structure level 1 dcl 3-108 NAMES DECLARED BY EXPLICIT CONTEXT. Abort 001001 constant entry internal dcl 212 ref 122 151 157 Fill_response_structure 001051 constant entry internal dcl 234 ref 188 RETURN 000774 constant label dcl 197 ref 224 uc_ls_operator_request_ 000403 constant entry external dcl 58 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 1242 1274 1074 1252 Length 1626 1074 32 316 146 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME uc_ls_operator_request_ 358 external procedure is an external procedure. Abort 70 internal procedure is declared options(variable). Fill_response_structure internal procedure shares stack frame of external procedure uc_ls_operator_request_. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME uc_ls_operator_request_ 000100 code uc_ls_operator_request_ 000102 ls_termination_event_channel uc_ls_operator_request_ 000104 ls_request_ptr uc_ls_operator_request_ 000106 ls_response_ptr uc_ls_operator_request_ 000110 ls_reply_message_ptr uc_ls_operator_request_ 000112 ls_request_server_info_ptr uc_ls_operator_request_ 000114 sl_info uc_ls_operator_request_ 000364 utep uc_ls_operator_request_ 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 int_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. cu_$arg_list_ptr mc_commands_$mc_login sys_log_$general uc_logout_ user_table_mgr_$free user_table_mgr_$utep_from_handle THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$bad_arg error_table_$id_not_found error_table_$unimplemented_version LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 58 000375 6 76 000410 115 000412 116 000416 117 000421 118 000424 120 000427 122 000430 141 000464 143 000471 144 000473 147 000504 149 000505 151 000516 157 000547 166 000625 169 000635 172 000640 185 000726 188 000734 189 000735 190 000736 192 000742 193 000765 197 000774 199 000777 212 001000 218 001006 219 001012 220 001014 221 001021 222 001027 223 001041 224 001044 227 001050 234 001051 237 001052 238 001056 240 001060 242 001063 243 001065 244 001070 246 001073 ----------------------------------------------------------- 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