COMPILATION LISTING OF SEGMENT uc_ls_process_request_ Compiled by: Multics PL/I Compiler, Release 29, of July 28, 1986 Compiled at: Honeywell Bull, Phx. Az., Sys-M Compiled on: 08/04/87 1258.0 mst Tue Options: optimize map 1 /****^ ******************************************** 2* * * 3* * Copyright, (C) Honeywell Bull Inc., 1987 * 4* * * 5* ******************************************** */ 6 7 8 9 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 10 /* */ 11 /* This module is part of the Multics Network Architecture (MNA) version of */ 12 /* user control. MNA user control serves users coming into Multics via */ 13 /* separate networks (eg, the Distributed Systems Architecture (DSA) */ 14 /* network. MNA user control is not used for logins through the Multics */ 15 /* Communications System (MCS). A separate MCS user control system serves */ 16 /* MCS users. */ 17 /* */ 18 /* To Be Supplied: */ 19 /* 1) Brief module description. See MDD010 or MTBs 751 and 752 for details */ 20 /* about this module, and its relationship to modules in the MCS user */ 21 /* control system. */ 22 /* 2) Operator error message documentation. This program calls */ 23 /* sys_log_$general but does not contain the required descriptions of */ 24 /* these messages. This omission was waived for initial installation */ 25 /* of the subsystem by the auditor, security coordinator, and by MDC */ 26 /* management. */ 27 /* */ 28 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 29 30 /****^ HISTORY COMMENTS: 31* 1) change(86-04-24,Swenson), approve(87-07-13,MCR7737), 32* audit(87-04-23,GDixon), install(87-08-04,MR12.1-1055): 33* Initial coding. 34* 2) change(87-04-24,GDixon), approve(87-07-13,MCR7737), 35* audit(87-07-30,Brunelle), install(87-08-04,MR12.1-1055): 36* A) Upgrade to use sys_log_$general to report errors. 37* B) Handle enter and enterp preaccess commands. 38* END HISTORY COMMENTS */ 39 40 /* format: style4,indattr */ 41 42 uc_ls_process_request_: 43 procedure (P_ls_request_server_info_ptr, 44 P_ls_request_ptr, P_ls_request_lth, 45 P_ls_response_ptr, P_ls_response_lth, 46 P_ls_ipc_reply_ptr, P_code); 47 48 /* Parameters */ 49 50 dcl P_ls_request_server_info_ptr ptr parameter; 51 dcl P_ls_request_ptr ptr parameter; 52 dcl P_ls_request_lth fixed bin (18) parameter; 53 dcl P_ls_response_ptr ptr parameter; 54 dcl P_ls_response_lth fixed bin (18) parameter; 55 dcl P_ls_ipc_reply_ptr ptr parameter; 56 dcl P_code fixed bin (35) parameter; 57 58 /* Automatic */ 59 60 dcl abort_label label automatic; 61 dcl code fixed bin (35) automatic; 62 dcl entry_to_call entry (ptr, ptr, fixed bin (18), ptr, fixed bin (18), ptr, fixed bin (35)) variable; 63 64 /* Entries */ 65 66 dcl uc_ls_create_request_ entry (ptr, ptr, fixed bin (18), ptr, fixed bin (18), ptr, fixed bin (35)); 67 dcl uc_ls_destroy_request_ entry (ptr, ptr, fixed bin (18), ptr, fixed bin (18), ptr, fixed bin (35)); 68 dcl uc_ls_connect_request_ entry (ptr, ptr, fixed bin (18), ptr, fixed bin (18), ptr, fixed bin (35)); 69 dcl uc_ls_new_proc_request_ entry (ptr, ptr, fixed bin (18), ptr, fixed bin (18), ptr, fixed bin (35)); 70 71 /* External */ 72 73 dcl error_table_$bad_arg fixed bin (35) ext static; 74 75 /* Constant */ 76 77 dcl ME char (22) initial ("uc_ls_process_request_") internal static options (constant); 78 79 /* Builtins */ 80 81 dcl addr builtin; 82 83 84 /* Program */ 85 86 ls_request_server_info_ptr = P_ls_request_server_info_ptr; 87 ls_request_ptr = P_ls_request_ptr; 88 ls_reply_message_ptr = P_ls_ipc_reply_ptr; 89 code = 0; 90 91 abort_label = RETURN; 92 93 if login_server_process_request.header.request_version ^= 94 LS_PROCESS_REQUEST_VERSION_1 then 95 call Abort (SL_LOG_SILENT, code, 96 "login_server_process_request version is ^a, should be ^a.", 97 login_server_process_request.header.request_version, 98 LS_PROCESS_REQUEST_VERSION_1); 99 100 if login_server_process_request.command_type = LOGIN_REQ then 101 entry_to_call = uc_ls_create_request_; 102 else if login_server_process_request.command_type = CREATE_REQ then 103 entry_to_call = uc_ls_create_request_; 104 else if login_server_process_request.command_type = DESTROY_REQ then 105 entry_to_call = uc_ls_destroy_request_; 106 else if login_server_process_request.command_type = CONNECT_REQ then 107 entry_to_call = uc_ls_connect_request_; 108 else if login_server_process_request.command_type = NEW_PROC_REQ then 109 entry_to_call = uc_ls_new_proc_request_; 110 else if login_server_process_request.command_type = ENTER_REQ then 111 entry_to_call = uc_ls_create_request_; 112 else if login_server_process_request.command_type = ENTERP_REQ then 113 entry_to_call = uc_ls_create_request_; 114 else call Abort (SL_LOG_SILENT, error_table_$bad_arg, 115 "command_type is invalid (^d).", 116 login_server_process_request.command_type); 117 118 /**** Dispatch on subrequest */ 119 120 call entry_to_call (P_ls_request_server_info_ptr, P_ls_request_ptr, 121 P_ls_request_lth, P_ls_response_ptr, P_ls_response_lth, 122 P_ls_ipc_reply_ptr, code); 123 124 RETURN: 125 P_code = code; 126 return; 127 128 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 129 /* */ 130 /* Abort: Report an error via sys_log_$general and stop execution if a */ 131 /* nonzero code was given. */ 132 /* */ 133 /* Syntax: call Abort (severity, code, ioa_ctl, args); */ 134 /* */ 135 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 136 137 Abort: 138 procedure options (variable); 139 140 dcl cu_$arg_list_ptr entry returns (ptr); 141 dcl sys_log_$general entry (ptr); 142 143 sl_info = sl_info_sev_code_msg; 144 sl_info.caller = ME; 145 sl_info.arg_list_ptr = cu_$arg_list_ptr (); 146 call sys_log_$general (addr (sl_info)); 147 code = sl_info.code; 148 if code ^= 0 then go to abort_label; 149 150 end Abort; 151 152 /* format: off */ 153 /* 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 */ 153 154 /* 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 * * * * * */ 154 155 /* 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 */ 155 156 157 end uc_ls_process_request_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 08/04/87 1222.0 uc_ls_process_request_.pl1 >special_ldd>install>MR12.1-1054>uc_ls_process_request_.pl1 153 1 08/04/87 1139.9 login_server_messages.incl.pl1 >spec>install>1056>login_server_messages.incl.pl1 154 2 08/04/87 1139.8 ls_request_server_info.incl.pl1 >spec>install>1056>ls_request_server_info.incl.pl1 155 3 08/04/87 1139.0 sys_log_constants.incl.pl1 >spec>install>1056>sys_log_constants.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. CONNECT_REQ constant fixed bin(17,0) initial dcl 1-457 ref 106 CREATE_REQ constant fixed bin(17,0) initial dcl 1-457 ref 102 DESTROY_REQ constant fixed bin(17,0) initial dcl 1-457 ref 104 ENTERP_REQ constant fixed bin(17,0) initial dcl 1-457 ref 112 ENTER_REQ constant fixed bin(17,0) initial dcl 1-457 ref 110 LOGIN_REQ constant fixed bin(17,0) initial dcl 1-457 ref 100 LS_PROCESS_REQUEST_VERSION_1 000250 constant char(8) initial unaligned dcl 1-150 set ref 93 93* ME 000252 constant char(22) initial unaligned dcl 77 ref 144 NEW_PROC_REQ constant fixed bin(17,0) initial dcl 1-457 ref 108 P_code parameter fixed bin(35,0) dcl 56 set ref 42 124* P_ls_ipc_reply_ptr parameter pointer dcl 55 set ref 42 88 120* P_ls_request_lth parameter fixed bin(18,0) dcl 52 set ref 42 120* P_ls_request_ptr parameter pointer dcl 51 set ref 42 87 120* P_ls_request_server_info_ptr parameter pointer dcl 50 set ref 42 86 120* P_ls_response_lth parameter fixed bin(18,0) dcl 54 set ref 42 120* P_ls_response_ptr parameter pointer dcl 53 set ref 42 120* SL_LOG_SILENT 000265 constant fixed bin(17,0) initial dcl 3-14 set ref 93* 114* abort_label 000100 automatic label variable dcl 60 set ref 91* 148 addr builtin function dcl 81 ref 146 146 arg_list_ptr 2 000120 automatic pointer level 2 dcl 3-24 set ref 145* caller 17 000120 automatic varying char(65) level 2 dcl 3-24 set ref 144* code 16 000120 automatic fixed bin(35,0) level 2 in structure "sl_info" dcl 3-24 in procedure "uc_ls_process_request_" set ref 147 code 000104 automatic fixed bin(35,0) dcl 61 in procedure "uc_ls_process_request_" set ref 89* 93* 120* 124 147* 148 command_type 54 based fixed bin(17,0) level 3 dcl 1-103 set ref 100 102 104 106 108 110 112 114* cu_$arg_list_ptr 000022 constant entry external dcl 140 ref 145 entry_to_call 000106 automatic entry variable dcl 62 set ref 100* 102* 104* 106* 108* 110* 112* 120 error_table_$bad_arg 000020 external static fixed bin(35,0) dcl 73 set ref 114* fixed_part based structure level 2 dcl 1-103 header based structure level 3 dcl 1-103 login_server_process_request based structure level 1 dcl 1-103 login_server_response_header based structure level 1 dcl 1-258 ls_reply_message_ptr 000114 automatic pointer dcl 1-443 set ref 88* ls_request_header based structure level 1 dcl 1-54 ls_request_ptr 000112 automatic pointer dcl 1-50 set ref 87* 93 93 100 102 104 106 108 110 112 114 ls_request_server_info_ptr 000116 automatic pointer dcl 2-11 set ref 86* request_version 2 based char(8) level 4 dcl 1-103 set ref 93 93* sl_info 000120 automatic structure level 1 dcl 3-24 set ref 143* 146 146 sl_info_sev_code_msg 000000 constant structure level 1 dcl 3-82 ref 143 sys_log_$general 000024 constant entry external dcl 141 ref 146 uc_ls_connect_request_ 000014 constant entry external dcl 68 ref 106 uc_ls_create_request_ 000010 constant entry external dcl 66 ref 100 102 110 112 uc_ls_destroy_request_ 000012 constant entry external dcl 67 ref 104 uc_ls_new_proc_request_ 000016 constant entry external dcl 69 ref 108 user_connection_info based structure level 1 dcl 1-65 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. LIST_REQ internal static fixed bin(17,0) initial dcl 1-457 LOGIN_SERVER_DIAL_RESPONSE_VERSION_1 internal static char(8) initial unaligned dcl 1-378 LOGIN_SERVER_LIST_RESPONSE_VERSION_1 internal static char(8) initial unaligned dcl 1-360 LOGIN_SERVER_NEW_PROC_RESPONSE_VERSION_1 internal static char(8) initial unaligned dcl 1-420 LOGIN_SERVER_OPERATOR_REQUEST_VERSION_1 internal static char(8) initial unaligned dcl 1-222 LOGIN_SERVER_OPERATOR_RESPONSE_VERSION_1 internal static char(8) initial unaligned dcl 1-438 LOGIN_SERVER_PROCESS_RESPONSE_VERSION_1 internal static char(8) initial unaligned dcl 1-341 LOGIN_SERVER_TERMINATION_RESPONSE_VERSION_1 internal static char(8) initial 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 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 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 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 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_OPERATOR_RESPONSE internal static fixed bin(17,0) initial dcl 1-228 LS_PROCESS_REQUEST internal static fixed bin(17,0) initial dcl 1-31 LS_PROCESS_RESPONSE internal static fixed bin(17,0) initial dcl 1-228 LS_REQUEST_HEADER_VERSION_1 internal static char(8) initial unaligned dcl 1-63 LS_REQUEST_SERVER_INFO_VERSION_1 internal static char(8) initial unaligned dcl 2-26 LS_REQUEST_TYPES internal static char(10) initial array unaligned dcl 1-40 LS_RESPONSE_TYPES internal static char(10) initial array 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 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 unaligned dcl 1-297 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 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 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 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_operator_request based structure level 1 dcl 1-214 login_server_operator_response based structure level 1 dcl 1-426 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 ls_reply_message based structure level 1 dcl 1-445 ls_request_server_info based structure level 1 dcl 2-12 ls_response_ptr automatic pointer dcl 1-254 sl_info_code_msg internal static structure level 1 dcl 3-187 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_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 000561 constant entry internal dcl 137 ref 93 114 RETURN 000554 constant label dcl 124 ref 91 uc_ls_process_request_ 000326 constant entry external dcl 42 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 764 1012 632 774 Length 1264 632 26 236 131 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME uc_ls_process_request_ 288 external procedure is an external procedure. Abort 70 internal procedure is declared options(variable). STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME uc_ls_process_request_ 000100 abort_label uc_ls_process_request_ 000104 code uc_ls_process_request_ 000106 entry_to_call uc_ls_process_request_ 000112 ls_request_ptr uc_ls_process_request_ 000114 ls_reply_message_ptr uc_ls_process_request_ 000116 ls_request_server_info_ptr uc_ls_process_request_ 000120 sl_info uc_ls_process_request_ THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ent_var call_ext_out call_int_this_desc return_mac tra_ext_2 ext_entry int_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. cu_$arg_list_ptr sys_log_$general uc_ls_connect_request_ uc_ls_create_request_ uc_ls_destroy_request_ uc_ls_new_proc_request_ THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$bad_arg LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 42 000320 86 000333 87 000337 88 000342 89 000345 91 000346 93 000351 100 000410 102 000422 104 000432 106 000442 108 000452 110 000462 112 000472 114 000502 120 000531 124 000554 126 000557 137 000560 143 000566 144 000572 145 000577 146 000605 147 000617 148 000622 150 000626 ----------------------------------------------------------- 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