COMPILATION LISTING OF SEGMENT login_server_connection_ 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 1303.8 mst Tue Options: optimize map 1 /****^ ******************************************** 2* * * 3* * Copyright, (C) Honeywell Bull Inc., 1987 * 4* * * 5* ******************************************** */ 6 7 /****^ HISTORY COMMENTS: 8* 1) change(85-04-01,Coren), approve(87-06-25,MCR7679), audit(87-03-02,GDixon), 9* install(87-08-04,MR12.1-1055): 10* Initial coding. 11* 2) change(87-03-02,GDixon), approve(87-06-25,MCR7679), 12* audit(87-05-19,Parisek), install(87-08-04,MR12.1-1055): 13* A) Correct coding standard violations. 14* B) Add any_other handler to take lsdump, then remove the connection. 15* 3) change(87-04-16,Brunelle), approve(87-06-25,MCR7679), 16* audit(87-05-19,Parisek), install(87-08-04,MR12.1-1055): 17* Add ls_process_info.process_group_id to call to assign_connection. 18* 4) change(87-04-29,GDixon), approve(87-06-25,MCR7679), 19* audit(87-05-19,Parisek), install(87-08-04,MR12.1-1055): 20* Change calling sequence of ls_dump_. 21* 5) change(87-05-08,GDixon), approve(87-06-25,MCR7679), 22* audit(87-05-19,Parisek), install(87-08-04,MR12.1-1055): 23* Give login_service_entries.assign_connection the initializer_handle rather 24* than the server_handler; this allows the network to send Initializer a 25* disconnect if Login_Server process dies. 26* 6) change(87-05-15,GDixon), approve(87-06-25,MCR7679), 27* audit(87-05-19,Parisek), install(87-08-04,MR12.1-1055): 28* Ignore io_error that occurs when attempting to display "hangup" message 29* upon process termination, when line has already disconnected. 30* 7) change(87-05-18,GDixon), approve(87-06-25,MCR7679), 31* audit(87-05-19,Parisek), install(87-08-04,MR12.1-1055): 32* A) Use new calling sequence of login_service_entries.listen. 33* B) Set ls_connection_desc.minimum_ring. 34* C) Use revised calling sequence for login_server_entries.validate_user. 35* 8) change(87-05-26,GDixon), approve(87-06-25,MCR7679), 36* audit(87-07-06,Parisek), install(87-08-04,MR12.1-1055): 37* A) Use new calling sequence of ls_report_subr_error_. Avoid taking LS 38* dumps for "expected" errors. 39* B) Avoid printing on terminal when io_error condition has been signalled. 40* C) Avoid reference to ls_connection_desc_ptr when it is null. 41* 9) change(87-06-18,GDixon), approve(87-06-25,MCR7679), 42* audit(87-07-06,Parisek), install(87-08-04,MR12.1-1055): 43* A) Avoid infinite loop when an io_error condition occurs while in 44* debug_mode. 45* B) Don't send disconnect request to Initializer after receiving a 46* terminate response from the Initializer. 47* 10) change(87-06-25,GDixon), approve(87-06-25,MCR7679), 48* audit(87-07-06,Parisek), install(87-08-04,MR12.1-1055): 49* A) Call ls_report_subr_error_ and dsa_manager_$trace_message to report 50* problems in disconnecting a connection. 51* END HISTORY COMMENTS */ 52 53 /* format: style4,delnl,insnl,^ifthendo */ 54 55 login_server_connection_: 56 procedure (a_info_ptr); 57 58 /* This is the initial procedure for the control point that manages a single connection 59* talking to the login server. It calls validate_user_ to engage in the login 60* dialogue with the user and the Initializer; assuming this succeeds, it sets up handlers for 61* disconnection and process termination, wakes up the user process, and blocks 62* until one of the above events takes place. The control point lasts as long as 63* the connection does. 64**/ 65 66 /* DECLARATIONS */ 67 68 dcl a_info_ptr pointer parameter; 69 70 71 /* AUTOMATIC */ 72 73 dcl code fixed bin (35); 74 dcl connection_name char (32); 75 dcl cpu_minutes fixed bin; 76 dcl cpu_seconds fixed bin; 77 dcl dumpid char (128) varying; 78 dcl error_message char (100) aligned; 79 dcl event_message fixed bin (71); 80 dcl fatal_condition bit (1); 81 dcl got_response bit (1); 82 dcl message_type fixed bin; 83 dcl person char (22); 84 dcl person_project char (30); 85 dcl project char (9); 86 dcl tell_user bit (1) aligned; 87 dcl terminate_event_channel fixed bin (71); 88 dcl trace_switch bit (1); 89 dcl validate_code fixed bin (35); 90 91 92 /* AUTOMATIC COPIES OF STRUCTURES */ 93 94 dcl 1 auto_disconnect_request aligned like login_server_disconnect_request; 95 96 dcl 1 auto_event_wait_info aligned like event_wait_info; 97 98 dcl 1 auto_process_info aligned like ls_process_info; 99 100 dcl 1 auto_user_message_add_info aligned like as_user_message_add_info; 101 102 dcl 1 auto_user_message_info aligned like as_user_message_info; 103 104 dcl 1 auto_validate_options aligned like ls_validate_options; 105 106 107 /* BASED */ 108 109 dcl based_connection_info (ls_connection_desc.connection_info_len) bit (36) aligned based; 110 111 dcl system_area area based (system_areap); 112 113 dcl user_message (as_user_message_info.message_length) bit (36) aligned based (ls_response_ptr); 114 115 116 /* ENTRIES */ 117 118 dcl convert_status_code_ entry (fixed bin (35), char (8) aligned, char (100) aligned); 119 dcl date_time_$format entry (char (*), fixed bin (71), char (*), char (*)) returns (char (250) var); 120 dcl dsa_log_manager_$trace_message entry options (variable); 121 dcl find_condition_info_ entry (ptr, ptr, fixed bin (35)); 122 dcl get_process_id_ entry () returns (bit (36)); 123 dcl get_system_free_area_ entry () returns (ptr); 124 dcl hcs_$wakeup entry (bit (36) aligned, fixed bin (71), fixed bin (71), fixed bin (35)); 125 dcl ioa_ entry () options (variable); 126 dcl iox_$control entry (ptr, char (*), ptr, fixed bin (35)); 127 dcl ipc_$block entry (ptr, ptr, fixed bin (35)); 128 dcl ipc_$create_ev_chn entry (fixed bin (71), fixed bin (35)); 129 dcl ipc_$delete_ev_chn entry (fixed bin (71), fixed bin (35)); 130 dcl ls_convert_as_error_code_ entry (fixed bin (35)) returns (fixed bin (35)); 131 dcl ls_dump_ entry (char(*) var, ptr, char(32)); 132 dcl ls_message_$print entry options (variable); 133 dcl ls_message_$print_error entry options (variable); 134 dcl ls_report_internal_error_ entry options (variable); 135 dcl ls_report_subr_error_ entry (fixed bin(35), char(*), ptr, char(*), 136 bit(1) aligned, bit(1) aligned); 137 dcl send_ls_request_ entry (ptr, fixed bin (18), ptr, fixed bin (35)); 138 dcl user_message_$read_message entry (pointer, pointer, fixed bin (35)); 139 dcl user_message_priv_$add_message entry (ptr, fixed bin (35)); 140 141 142 /* EXTERNAL STATIC */ 143 144 dcl ( 145 error_table_$action_not_performed, 146 error_table_$no_message, 147 error_table_$process_unknown, 148 error_table_$unimplemented_version, 149 ls_message_table_$automatic_logout, 150 ls_message_table_$dial_logout, 151 ls_message_table_$dial_terminated, 152 ls_message_table_$dropped_by_mc, 153 ls_message_table_$fatal_error, 154 ls_message_table_$fpe_caused_logout, 155 ls_message_table_$fpe_during_init, 156 ls_message_table_$fpe_loop, 157 ls_message_table_$fpe_new_proc, 158 ls_message_table_$hangup, 159 ls_message_table_$logout, 160 ls_message_table_$offer_help 161 ) fixed bin (35) external static; 162 163 164 dcl iox_$user_io pointer external static; 165 166 167 /* INTERNAL STATIC */ 168 169 dcl DISCONNECT_EVENT fixed bin internal static options (constant) initial (1); 170 dcl DONT_TAKE_DUMP bit (1) aligned int static options(constant) init("0"b); 171 dcl DONT_TELL_INITIALIZER bit (1) aligned int static options (constant) init ("0"b); 172 dcl DONT_TELL_USER bit (1) aligned int static options (constant) init ("0"b); 173 dcl (FALSE init ("0"b), 174 TRUE init ("1"b)) bit (1) int static options (constant); 175 dcl N_WAIT_EVENTS fixed bin internal static options (constant) initial (2); 176 dcl ONE_MILLION fixed bin (35) internal static options (constant) initial (1000000); 177 dcl OUR_NAME char (12) internal static options (constant) initial ("login_server"); 178 dcl TAKE_DUMP bit (1) aligned int static options(constant) init("1"b); 179 dcl TERMINATE_EVENT fixed bin internal static options (constant) initial (2); 180 dcl TELL_INITIALIZER bit (1) aligned int static options (constant) init ("1"b); 181 dcl TELL_USER bit (1) aligned int static options (constant) init ("1"b); 182 dcl our_process_id bit (36) aligned internal static initial (""b); 183 dcl system_areap pointer internal static initial (null ()); 184 185 186 /* BUILTINS AND CONDITIONS */ 187 188 dcl (addr, after, before, clock, currentsize, divide, length, null, rtrim, size, string, substr, unspec) builtin; 189 190 dcl (any_other, cleanup, io_error) condition; 191 192 call iox_$control (iox_$user_io, "quit_disable", null (), (0)); 193 /* we don't want quits while we're in the login server */ 194 ls_cp_info_ptr = a_info_ptr; 195 ls_connection_desc_ptr = ls_cp_info.connection_desc_ptr; 196 if system_areap = null () 197 then system_areap = get_system_free_area_ (); 198 if our_process_id = ""b 199 then our_process_id = get_process_id_ (); 200 connection_name = ls_connection_desc.name; 201 trace_switch = ls_cp_info.trace; 202 203 event_wait_list_ptr = null (); 204 205 on cleanup call Remove_connection (); 206 on any_other 207 begin; 208 ci.version = condition_info_version_1; 209 call find_condition_info_ (null, addr (ci), code); 210 if code = 0 211 then do; 212 dumpid = "Condition "; 213 dumpid = dumpid || rtrim (ci.condition_name); 214 dumpid = dumpid || " in connection"; 215 end; 216 else dumpid = "Unknown condition in connection "; 217 if ls_connection_desc_ptr ^= null then do; 218 dumpid = dumpid || " "; 219 dumpid = dumpid || rtrim (ls_connection_desc.name); 220 end; 221 dumpid = dumpid || "."; 222 fatal_condition = TRUE; 223 if ci.info_ptr ^= null 224 then do; 225 condition_info_header_ptr = ci.info_ptr; 226 if condition_info_header.action_flags.default_restart 227 then fatal_condition = FALSE; 228 end; 229 if fatal_condition 230 then do; 231 call ls_dump_ (dumpid, addr (ls_cp_info), ""); 232 tell_user = (ci.condition_name ^= "io_error") & 233 (ls_connection_desc_ptr ^= null); 234 call Hangup_and_remove (tell_user, TELL_INITIALIZER); 235 end; 236 end; 237 238 call cpm_$set_user_cl_intermediary (get_control_point_id_ (), Cl_intermediary, code); 239 240 if code ^= 0 241 then do; 242 call ls_report_subr_error_ (code, OUR_NAME, ls_cp_info_ptr, 243 "cpm_$set_user_cl_intermediary", TELL_USER, TAKE_DUMP); 244 call Hangup_and_remove (TELL_USER, DONT_TELL_INITIALIZER); 245 return; 246 end; 247 248 ls_process_info_ptr = addr (auto_process_info); 249 unspec (ls_process_info) = ""b; 250 ls_process_info.version = LS_PROCESS_INFO_V1; 251 login_service_entries_ptr = ls_connection_desc.service_entries_ptr; 252 253 /* now set up event channel for process termination */ 254 255 call ipc_$create_ev_chn (terminate_event_channel, code); 256 if code ^= 0 257 then do; 258 call ls_report_subr_error_ (code, OUR_NAME, ls_cp_info_ptr, 259 "ipc_$create_ev_chn", TELL_USER, TAKE_DUMP); 260 call Hangup_and_remove (TELL_USER, DONT_TELL_INITIALIZER); 261 go to EXIT; 262 end; 263 264 ls_connection_desc.terminate_event_channel = terminate_event_channel; 265 ls_connection_desc.process_info_ptr = ls_process_info_ptr; 266 267 auto_validate_options.version = LS_VALIDATE_OPTIONS_V1; 268 string (auto_validate_options.flags) = ""b; 269 270 271 call login_service_entries.validate_user (ls_cp_info_ptr, 272 addr (auto_validate_options), ls_process_info_ptr, code); 273 274 if code ^= 0 275 then do; 276 call Remove_connection (); 277 278 if trace_switch 279 then call dsa_log_manager_$trace_message (LS_CALLER_TYPE, OUR_NAME, INFO_LOG_SEVERITY, 0, null (), 0, "", 280 "Returning from control point ^.3b, connection ^a.", get_control_point_id_ (), connection_name); 281 282 return; 283 end; 284 285 call Give_connection_to_process (); 286 287 /* we will now go blocked until one of the events happens. */ 288 289 event_wait_info_ptr = addr (auto_event_wait_info); 290 291 event_wait_list_n_channels = N_WAIT_EVENTS; 292 allocate event_wait_list in (system_area) set (event_wait_list_ptr); 293 294 event_wait_list.n_channels = N_WAIT_EVENTS; 295 event_wait_list.pad = ""b; 296 event_wait_list.channel_id (DISCONNECT_EVENT) = ls_connection_desc.disconnect_event_channel; 297 event_wait_list.channel_id (TERMINATE_EVENT) = ls_connection_desc.terminate_event_channel; 298 299 do while ("1"b); 300 call ipc_$block (event_wait_list_ptr, event_wait_info_ptr, code); 301 if code ^= 0 302 then do; 303 call ls_report_subr_error_ (code, OUR_NAME, ls_cp_info_ptr, 304 "ipc_$block", TELL_USER, TAKE_DUMP); 305 call Hangup_and_remove (TELL_USER, DONT_TELL_INITIALIZER); 306 go to EXIT; 307 end; 308 309 if event_wait_info.channel_index = DISCONNECT_EVENT 310 then call Disconnect_handler (); 311 else if event_wait_info.channel_index = TERMINATE_EVENT 312 then call Terminate_handler (); 313 else call ls_report_internal_error_ (0, OUR_NAME, ls_cp_info_ptr, "0"b, 314 "Wakeup with unexpected channel index ^d", event_wait_info.channel_index); 315 316 /* whatever it was, go wait for more */ 317 318 end; 319 320 EXIT: /* come here from handlers if control point is all finished */ 321 if trace_switch 322 then call dsa_log_manager_$trace_message (LS_CALLER_TYPE, OUR_NAME, INFO_LOG_SEVERITY, 0, null (), 0, "", 323 "Returning from control point ^.3b, connection ^a.", get_control_point_id_ (), connection_name); 324 325 return; 326 327 Disconnect_handler: 328 procedure (); 329 330 /* This procedure is invoked when the connection is broken */ 331 332 if ls_cp_info.trace 333 then call dsa_log_manager_$trace_message (LS_CALLER_TYPE, OUR_NAME, INFO_LOG_SEVERITY, 0, null (), 0, "", 334 "Disconnect wakeup for connection ^a.", connection_name); 335 336 if ls_process_info_ptr ^= null () 337 then do; 338 call Send_disconnect_request (); 339 340 if ls_process_info.usage_type ^= LS_LOGIN_USAGE 341 then call Send_user_message (LS_MSG_DISCONNECTED, null (), 0); 342 /* inform the user process that had the connection */ 343 end; 344 345 call login_service_entries.disconnect (connection_name, ls_connection_desc.connection_handle, ""b, (0)); 346 /* in case lower layer needs this */ 347 348 call Remove_connection (); 349 go to EXIT; 350 351 end Disconnect_handler; 352 353 Terminate_handler: 354 procedure (); 355 356 /* This procedure is invoked when the user process for this connection terminates. 357* It reads the "user_message" from the Initializer, which should be either a new_proc response 358* or a termination response, and proceeds accordingly. 359**/ 360 361 call iox_$control (iox_$user_io, "quit_disable", null (), (0)); 362 /* we don't want quits while we're in the login server */ 363 364 as_user_message_info_ptr = addr (auto_user_message_info); 365 as_user_message_info.version = AS_USER_MESSAGE_INFO_VERSION_1; 366 string (as_user_message_info.flags) = ""b; 367 as_user_message_info.message_handle = ls_process_info.server_handle; 368 got_response = "0"b; 369 370 ls_response_ptr = null (); 371 on cleanup 372 begin; 373 if ls_response_ptr ^= null () 374 then free user_message in (system_area); 375 end; 376 377 do while (^got_response); 378 call user_message_$read_message (system_areap, as_user_message_info_ptr, code); 379 if code ^= 0 380 then do; 381 call ls_report_subr_error_ (code, OUR_NAME, ls_cp_info_ptr, 382 "user_message_$read_message", TELL_USER, 383 (code ^= error_table_$no_message)); 384 call Hangup_and_remove (TELL_USER, TELL_INITIALIZER); 385 go to EXIT; 386 end; 387 388 ls_response_ptr = as_user_message_info.message_ptr; 389 message_type = login_server_response_header.message_type; 390 391 if ls_cp_info.trace 392 then call dsa_log_manager_$trace_message (LS_CALLER_TYPE, OUR_NAME, INFO_LOG_SEVERITY, 0, null (), 0, "", 393 "Termination message (type ^d) for connection ^a.", message_type, connection_name); 394 395 if message_type ^= LS_TERMINATION_RESPONSE & message_type ^= LS_NEW_PROC_RESPONSE 396 then do; 397 call ls_report_internal_error_ (0, OUR_NAME, ls_cp_info_ptr, "0"b, 398 "Ignoring unexpected message type ^d", message_type); 399 free user_message in (system_area); 400 end; 401 402 403 else got_response = "1"b; /* this is for us */ 404 end; 405 406 /* First thing, we know we want to unassign it */ 407 408 call login_service_entries 409 .unassign_connection (connection_name, ls_connection_desc.connection_handle, ""b, code); 410 411 if ls_cp_info.trace 412 then call dsa_log_manager_$trace_message (LS_CALLER_TYPE, OUR_NAME, INFO_LOG_SEVERITY, code, null (), 0, "", 413 "Unassigning connection ^a.", connection_name); 414 415 if code ^= 0 416 then call ls_report_subr_error_ (code, OUR_NAME, ls_cp_info_ptr, 417 "unassign_connection", DONT_TELL_USER, DONT_TAKE_DUMP); 418 419 if message_type = LS_TERMINATION_RESPONSE /* process termination */ 420 then do; 421 if login_server_termination_response.version ^= LOGIN_SERVER_TERMINATION_RESPONSE_VERSION_1 422 then do; 423 call ls_report_internal_error_ (error_table_$unimplemented_version, OUR_NAME, ls_cp_info_ptr, "1"b, 424 "Termination response message contains version ""^a"".", 425 login_server_termination_response.version); 426 go to TERMINATE_FINISHED; 427 end; 428 429 if login_server_termination_response.process_id ^= ls_process_info.process_id 430 then do; 431 call ls_report_internal_error_ (0, OUR_NAME, ls_cp_info_ptr, "0"b, 432 "Ignoring termination message for process ^12.3b, expected ^12.3b.", 433 login_server_termination_response.process_id, ls_process_info.process_id); 434 TERMINATE_FINISHED: 435 call Hangup_and_remove (TELL_USER, TELL_INITIALIZER); 436 free login_server_termination_response in (system_area); 437 go to EXIT; 438 end; 439 440 if ls_process_info.usage_type = LS_LOGIN_USAGE 441 then do; 442 if ^ls_cp_info.no_io_switches 443 then do; 444 if login_server_termination_response.fatal_error 445 /* fatal error */ 446 then do; 447 call convert_status_code_ ( 448 ls_convert_as_error_code_ (login_server_termination_response.status_code), (""), 449 error_message); 450 call ls_message_$print (ls_message_table_$fatal_error, error_message); 451 452 if login_server_termination_response.fpe_caused_logout 453 then call ls_message_$print (ls_message_table_$fpe_caused_logout); 454 455 if login_server_termination_response.fpe_during_init 456 then call ls_message_$print (ls_message_table_$fpe_during_init); 457 458 if login_server_termination_response.fpe_loop 459 then call ls_message_$print (ls_message_table_$fpe_loop); 460 461 ls_process_info.fatal_error = "1"b; 462 /* to remember when new process created */ 463 end; 464 465 else if login_server_termination_response.status_code ^= 0 466 then call ls_message_$print_error ( 467 ls_convert_as_error_code_ (login_server_termination_response.status_code)); 468 469 if login_server_termination_response.offer_help 470 then call ls_message_$print (ls_message_table_$offer_help); 471 472 if login_server_termination_response.logout 473 then do; 474 if login_server_termination_response.automatic_logout 475 then call ls_message_$print (ls_message_table_$automatic_logout); 476 477 if ^login_server_termination_response.brief 478 then do; 479 person_project = 480 substr (ls_process_info.process_group_id, 1, 481 length (rtrim (ls_process_info.process_group_id)) - 2); 482 person = before (person_project, "."); 483 project = after (person_project, "."); 484 cpu_seconds = divide (login_server_termination_response.cpu_usage, ONE_MILLION, 17, 0); 485 cpu_minutes = divide (cpu_seconds, 60, 17, 0); 486 cpu_seconds = cpu_seconds - 60 * cpu_minutes; 487 488 call ls_message_$print (ls_message_table_$logout, person, project, 489 date_time_$format ("system_date_time", clock (), "system_zone", "system_lang"), 490 (cpu_minutes ^= 0), cpu_minutes, cpu_seconds, 491 login_server_termination_response.cost); 492 end; 493 end; 494 end; 495 496 if login_server_termination_response.logout 497 then do; 498 if ^login_server_termination_response.hold 499 then do; /* all done */ 500 call Hangup_and_remove (TELL_USER, DONT_TELL_INITIALIZER); 501 validate_code = error_table_$action_not_performed; 502 /* to make sure we exit */ 503 end; 504 505 else /* back into login dialogue to find out what he wants now */ 506 call Revalidate (login_server_termination_response.brief, validate_code); 507 end; 508 509 else validate_code = 0; 510 end; 511 512 else if ls_process_info.usage_type = LS_DIAL_USAGE 513 then do; 514 if ^ls_cp_info.no_io_switches 515 then if login_server_termination_response.logout 516 then call ls_message_$print (ls_message_table_$dial_logout); 517 else call ls_message_$print (ls_message_table_$dial_terminated); 518 call Revalidate ("0"b, validate_code); 519 end; 520 521 else if ls_process_info.usage_type = LS_MC_USAGE 522 then do; /* in this case "termination" really means operator dropped the connection */ 523 if ^ls_cp_info.no_io_switches 524 then call ls_message_$print (ls_message_table_$dropped_by_mc, connection_name); 525 call Revalidate ("0"b, validate_code); 526 end; 527 528 else do; /* why would we get wakeup for connection that was neither login nor dial? */ 529 call ls_report_internal_error_ (0, OUR_NAME, ls_cp_info_ptr, "1"b, 530 "Unexpected usage type ^d for process termination", ls_process_info.usage_type); 531 call Hangup_and_remove (TELL_USER, TELL_INITIALIZER); 532 validate_code = error_table_$action_not_performed; 533 /* to make sure we exit */ 534 end; 535 536 free login_server_termination_response in (system_area); 537 if validate_code ^= 0 538 then go to EXIT; 539 end; /* terminate_response */ 540 541 else do; /* must be new_proc */ 542 if login_server_new_proc_response.version ^= LOGIN_SERVER_NEW_PROC_RESPONSE_VERSION_1 543 then do; 544 call ls_report_internal_error_ (error_table_$unimplemented_version, OUR_NAME, ls_cp_info_ptr, "1"b, 545 "new_proc response message contains version ""^a"".", login_server_new_proc_response.version); 546 validate_code = error_table_$action_not_performed; 547 /* make sure we exit */ 548 end; 549 550 else do; 551 if ls_process_info.fatal_error 552 then do; /* tell him about new process */ 553 call ls_message_$print (ls_message_table_$fpe_new_proc); 554 ls_process_info.fatal_error = "0"b; 555 end; 556 557 call Start_new_process (); 558 validate_code = 0; 559 end; 560 561 free login_server_new_proc_response in (system_area); 562 563 if validate_code ^= 0 564 then go to EXIT; 565 566 end; /* logout_response */ 567 568 /* if we got to here, we're all done and can go blocked again */ 569 570 return; 571 end Terminate_handler; 572 573 Cl_intermediary: 574 procedure (start_flag); 575 576 /* This is called in case of a call to cu_$cl while the current control point is running */ 577 578 dcl start_flag bit (1) parameter; 579 580 if ls_cp_info.debug_mode 581 then do; 582 ci.version = condition_info_version_1; 583 call find_condition_info_ (null, addr (ci), code); 584 if code = 0 585 then if ci.condition_name ^= "io_error" then do; 586 start_flag = "0"b; /* get to command level so we can poke around */ 587 return; /* io_error is fatal, however. */ 588 end; 589 end; 590 591 if ^ls_cp_info.fault_recursion 592 then do; /* try to clean up if possible */ 593 ls_cp_info.fault_recursion = "1"b; /* in case we get invoked again */ 594 if ls_connection_desc_ptr ^= null () /* connection still active */ 595 then do; 596 on io_error go to IGNORE_IO_ERR; /* Ignore errors due to disconnection. */ 597 call ls_message_$print (0, "Internal error. Abandoning connection."); 598 IGNORE_IO_ERR: revert io_error; 599 call Hangup_and_remove (TELL_USER, TELL_INITIALIZER); 600 end; 601 end; 602 603 go to EXIT; /* no more control point */ 604 605 end Cl_intermediary; 606 607 Give_connection_to_process: 608 procedure (); 609 610 /* this procedure assigns the connection to a user process, passes the entity-specific connection_info 611* to the process, and wakes the process up 612**/ 613 614 615 login_service_entries_ptr = ls_connection_desc.service_entries_ptr; 616 ls_process_info_ptr = ls_connection_desc.process_info_ptr; 617 618 call login_service_entries 619 . 620 assign_connection ((ls_connection_desc.name), 621 ls_connection_desc.connection_handle, 622 ls_process_info.process_id, ls_process_info.process_group_id, 623 ls_process_info.initializer_handle, 624 ls_connection_desc.disconnect_event_channel, 625 ls_connection_desc.terminate_event_channel, 626 ls_process_info.usage_type, code); 627 628 if ls_cp_info.trace 629 then call dsa_log_manager_$trace_message (LS_CALLER_TYPE, OUR_NAME, INFO_LOG_SEVERITY, code, null (), 0, "", 630 "Assigning connection ^a to process ^.3b.", ls_connection_desc.name, ls_process_info.process_id); 631 632 if code ^= 0 633 then do; 634 call ls_report_subr_error_ (code, OUR_NAME, ls_cp_info_ptr, 635 "assign_connection", TELL_USER, DONT_TAKE_DUMP); 636 call Hangup_and_remove (TELL_USER, TELL_INITIALIZER); 637 go to EXIT; 638 end; 639 640 call Send_user_message (LS_MSG_CONNECTED, ls_connection_desc.connection_info_ptr, 641 ls_connection_desc.connection_info_len); 642 643 return; 644 645 end Give_connection_to_process; 646 647 Send_user_message: 648 procedure (a_reason, a_info_ptr, a_info_length); 649 650 /* Sends a message to the user process to give it the connection, or inform it 651* of disconnection, and send the process a wakeup so it knows to read the message. */ 652 653 dcl a_reason fixed bin parameter; 654 dcl a_info_ptr pointer parameter; 655 dcl a_info_length fixed bin (18) unsigned parameter; 656 657 dcl based_connection_info (ls_connection_message_info_length) bit (36) aligned based; 658 659 dcl time_now fixed bin (71); 660 dcl unique_part_of_handle bit (54) aligned; 661 662 663 if a_info_ptr ^= null () 664 then ls_connection_message_info_length = a_info_length; 665 else ls_connection_message_info_length = 0; 666 667 ls_connection_message_ptr = null (); 668 on cleanup 669 begin; 670 if ls_connection_message_ptr ^= null () 671 then free ls_connection_message in (system_area); 672 end; 673 674 allocate ls_connection_message in (system_area) set (ls_connection_message_ptr); 675 676 unspec (ls_connection_message) = ""b; 677 ls_connection_message.version = LS_CONNECTION_MESSAGE_V1; 678 ls_connection_message.connection_name = connection_name; 679 ls_connection_message.io_module_name = ls_connection_desc.io_module; 680 ls_connection_message.connection_handle = ls_connection_desc.connection_handle; 681 ls_connection_message.reason = a_reason; 682 ls_connection_message.connection_info_length = ls_connection_message_info_length; 683 if ls_connection_message.connection_info_length ^= 0 684 then ls_connection_message.connection_info = a_info_ptr -> based_connection_info; 685 686 if ls_process_info.usage_type = LS_DIAL_USAGE 687 then do; 688 time_now = clock (); 689 unique_part_of_handle = substr (unspec (time_now), 19, 54); 690 call Send_actual_message (size (ls_connection_message_common), 691 unique_part_of_handle || USER_MESSAGE_LS_CONNECTION_INFO_HANDLE_LOWER_18); 692 end; 693 694 call Send_actual_message (currentsize (ls_connection_message), USER_MESSAGE_LS_CONNECTION_INFO_HANDLE); 695 696 if ls_cp_info.trace 697 then call dsa_log_manager_$trace_message (LS_CALLER_TYPE, OUR_NAME, INFO_LOG_SEVERITY, code, null (), 0, "", 698 "Sent ^[connect^;disconnect^] message to user process ^.3b for connection ^a.", 699 (a_reason = LS_MSG_CONNECTED), ls_process_info.process_id, connection_name); 700 701 free ls_connection_message in (system_area); 702 703 event_message = 0; 704 dial_event_message_ptr = addr (event_message); 705 if ls_process_info.usage_type = LS_DIAL_USAGE 706 then dial_event_message_handle = unique_part_of_handle; 707 dial_event_message.ls_msg = "1"b; 708 if a_reason = LS_MSG_CONNECTED 709 then dial_event_message.control = JUST_DIALED; 710 else dial_event_message.control = JUST_HUNGUP; 711 712 call hcs_$wakeup (ls_process_info.process_id, ls_process_info.start_event_channel, event_message, code); 713 if code ^= 0 714 then call ls_report_subr_error_ (code, OUR_NAME, ls_cp_info_ptr, 715 "hcs_$wakeup", DONT_TELL_USER, 716 (code ^= error_table_$process_unknown)); 717 return; 718 719 Send_actual_message: 720 procedure (a_message_length, a_message_handle); 721 722 /* internal to Send_user_message: sets up and makes the actual call to user_message_priv_$add_message */ 723 724 dcl a_message_length fixed bin (18) parameter; 725 dcl a_message_handle bit (72) aligned parameter; 726 727 as_user_message_add_info_ptr = addr (auto_user_message_add_info); 728 729 unspec (as_user_message_add_info) = ""b; 730 as_user_message_add_info.version = AS_USER_MESSAGE_ADD_INFO_VERSION_1; 731 as_user_message_add_info.message_ptr = ls_connection_message_ptr; 732 as_user_message_add_info.message_length = a_message_length; 733 as_user_message_add_info.message_access_class = ls_process_info.authorization; 734 as_user_message_add_info.group_id = ""; /* because we have process id */ 735 as_user_message_add_info.process_id = ls_process_info.process_id; 736 as_user_message_add_info.handle = a_message_handle; 737 as_user_message_add_info.ring = ls_process_info.initial_ring; 738 as_user_message_add_info.reader_deletes = "1"b; 739 /* we're not going to keep track of it */ 740 741 call user_message_priv_$add_message (as_user_message_add_info_ptr, code); 742 if code ^= 0 743 then call ls_report_subr_error_ (code, OUR_NAME, ls_cp_info_ptr, 744 "user_message_priv_$add_message", TELL_USER, TAKE_DUMP); 745 return; 746 747 end Send_actual_message; 748 749 end Send_user_message; 750 751 Revalidate: 752 procedure (a_brief, a_code); 753 754 dcl a_brief bit (1) parameter; 755 dcl a_code fixed bin (35) parameter; 756 757 auto_validate_options.version = LS_VALIDATE_OPTIONS_V1; 758 auto_validate_options.brief = a_brief; 759 auto_validate_options.not_first = "1"b; 760 auto_validate_options.mbz = ""b; 761 762 if ^ls_cp_info.no_io_switches 763 then call ioa_ (""); /* put out blank line */ 764 call login_service_entries.validate_user (ls_cp_info_ptr, 765 addr (auto_validate_options), ls_process_info_ptr, a_code); 766 767 if a_code ^= 0 768 then call Remove_connection (); 769 770 else call Give_connection_to_process (); /* event channels are still set up from original login */ 771 772 return; 773 end Revalidate; 774 775 Start_new_process: 776 procedure (); 777 778 /* This procedure is called after new_proc or fatal error to update ls_process_info 779* for the new process and to pass the connection to it */ 780 781 ls_process_info.authorization = login_server_new_proc_response.new_authorization; 782 ls_process_info.process_id = login_server_new_proc_response.new_process_id; 783 ls_process_info.start_event_channel = login_server_new_proc_response.new_start_event_channel; 784 785 call Give_connection_to_process (); 786 return; 787 788 end Start_new_process; 789 790 Hangup_and_remove: 791 procedure (tell_user, tell_initializer); 792 793 /* Disconnect the user, and discard the connection */ 794 795 dcl tell_user bit (1) aligned parameter; 796 dcl tell_initializer bit (1) aligned parameter; 797 dcl code fixed bin(35); 798 799 if tell_user & 800 ^ls_cp_info.no_io_switches & 801 ls_connection_desc_ptr ^= null 802 then do; 803 on io_error go to IGNORE_IO_ERR; /* Ignore errors due to disconnection. */ 804 call ls_message_$print (ls_message_table_$hangup); 805 IGNORE_IO_ERR: revert io_error; 806 end; 807 808 if tell_initializer 809 then call Send_disconnect_request (); 810 811 call login_service_entries.disconnect (connection_name, 812 ls_connection_desc.connection_handle, ""b, code); 813 814 if trace_switch 815 then call dsa_log_manager_$trace_message (LS_CALLER_TYPE, OUR_NAME, INFO_LOG_SEVERITY, code, null (), 0, "", 816 "Calling login_service_entries.disconnect for ^a.", 817 connection_name); 818 819 if code ^= 0 820 then call ls_report_subr_error_ (code, OUR_NAME, ls_cp_info_ptr, 821 "login_server_entries.disconnect", DONT_TELL_USER, 822 DONT_TAKE_DUMP); 823 824 call Remove_connection (); 825 return; 826 827 end Hangup_and_remove; 828 829 Remove_connection: 830 procedure (); 831 832 /* clean up data bases associated with a now-perished connection */ 833 834 if ls_cp_info.trace 835 then call dsa_log_manager_$trace_message (LS_CALLER_TYPE, OUR_NAME, INFO_LOG_SEVERITY, 0, null (), 0, "", 836 "Removing connection ^a at ^p.", connection_name, ls_connection_desc_ptr); 837 838 if ls_connection_desc_ptr = null () 839 then return; /* it's already done */ 840 841 if ls_connection_desc.connection_info_ptr ^= null () 842 then free ls_connection_desc.connection_info_ptr -> based_connection_info in (system_area); 843 844 if ls_connection_desc.disconnect_event_channel ^= 0 845 then call ipc_$delete_ev_chn (ls_connection_desc.disconnect_event_channel, (0)); 846 847 if ls_connection_desc.terminate_event_channel ^= 0 848 then call ipc_$delete_ev_chn (ls_connection_desc.terminate_event_channel, (0)); 849 850 free ls_connection_desc in (system_area); 851 852 /* tell parent control point so it can reduce count of connections */ 853 854 call hcs_$wakeup (our_process_id, ls_cp_info.connection_gone_event_channel, 0, (0)); 855 856 free ls_cp_info in (system_area); 857 858 if event_wait_list_ptr ^= null () 859 then free event_wait_list in (system_area); 860 861 return; 862 end Remove_connection; 863 864 Send_disconnect_request: 865 procedure (); 866 867 /* subroutine to send "request" message to Initializer indicating that the connection has been broken */ 868 869 dcl 1 auto_ls_reply_message aligned like ls_reply_message; 870 871 if ls_process_info.initializer_handle = ""b 872 then return; /* Initializer doesn't know about this connection */ 873 874 ls_request_ptr = addr (auto_disconnect_request); 875 ls_request_header.request_type = LS_DISCONNECT_REQUEST; 876 ls_request_header.request_version = LS_DISCONNECT_REQUEST_VERSION_1; 877 ls_request_header.header_version = LS_REQUEST_HEADER_VERSION_1; 878 ls_request_header.reply_handle = ""b; 879 ls_request_header.reply_event_channel = 0; /* let send_ls_request_ make one */ 880 ls_request_header.pad1 = ""b; 881 882 login_server_disconnect_request.handle = ls_process_info.initializer_handle; 883 login_server_disconnect_request.process_id = ls_process_info.process_id; 884 login_server_disconnect_request.connection_name = ls_connection_desc.name; 885 886 ls_reply_message_ptr = addr (auto_ls_reply_message); 887 888 call send_ls_request_ (ls_request_ptr, size (auto_disconnect_request), ls_reply_message_ptr, code); 889 890 if code ^= 0 891 then call ls_report_subr_error_ (code, OUR_NAME, ls_cp_info_ptr, 892 "send_ls_request_", TELL_USER, TAKE_DUMP); 893 894 else if ls_reply_message.code ^= 0 895 then call ls_report_internal_error_ (code, OUR_NAME, ls_cp_info_ptr, 896 "0"b, "In reply to disconnect request."); 897 898 return; 899 900 end Send_disconnect_request; 901 1 1 /* Begin include file as_user_message_add.incl.pl1 BIM 1985-01-12 */ 1 2 /* format: style4 */ 1 3 1 4 declare as_user_message_add_info_ptr pointer; 1 5 declare 1 as_user_message_add_info aligned based (as_user_message_add_info_ptr), 1 6 2 version char (8) aligned, 1 7 2 message_info aligned, 1 8 3 message_ptr pointer, 1 9 3 message_length fixed bin (18), 1 10 3 pad bit (36) aligned, 1 11 3 message_access_class bit (72) aligned, 1 12 3 message_id bit (72) aligned, /* output */ 1 13 2 destination_info aligned, 1 14 3 group_id char (32) unal, /* stars permitted */ 1 15 3 process_id bit (36) aligned, /* (36)"1"b for ANY */ 1 16 3 handle bit (72) aligned, /* may NOT be zero */ 1 17 3 ring fixed bin (3), 1 18 3 reader_deletes bit (1) aligned; 1 19 1 20 declare AS_USER_MESSAGE_ADD_INFO_VERSION_1 1 21 char (8) init ("auma0001") int static options (constant); 1 22 1 23 /* End include file as_user_message_add.incl.pl1 */ 902 903 2 1 /* Begin include file as_user_message_info.incl.pl1 BIM 1985-01-11 */ 2 2 /* format: style4 */ 2 3 2 4 /**** This structure is passed in by a user process to read out 2 5* an A.S. user message. */ 2 6 2 7 declare as_user_message_info_ptr pointer; 2 8 declare 1 as_user_message_info aligned based (as_user_message_info_ptr), 2 9 2 version char (8) aligned, 2 10 2 flags aligned, 2 11 3 read_message_id bit (1) unaligned, /* message_id specified -- read that one */ 2 12 3 read_after_message_id bit (1) unaligned, /* message_id specified -- read the next one for the handle after that */ 2 13 3 no_handle_given bit (1) unaligned, /* application debugging: look at all messages for us, regardless of handle */ 2 14 3 ring_given bit (1) unaligned, /* application debugging: look at outer ring messages */ 2 15 3 dont_delete bit (1) unaligned, /* application debugging, look at message but don't delete them */ 2 16 3 pad bit (31) unaligned, 2 17 2 message_info aligned, /* Output arguments */ 2 18 3 message_ptr pointer, 2 19 3 message_length fixed bin (18), /* words */ 2 20 3 pad bit (36) aligned, 2 21 3 message_id bit (72) aligned, 2 22 3 message_access_class bit (72) aligned, 2 23 3 message_handle bit (72) aligned, 2 24 3 message_ring fixed bin (3), 2 25 2 sender_info aligned, 2 26 3 group_id char (32) unaligned, 2 27 3 process_id bit (36) aligned, 2 28 2 destination_info aligned, 2 29 3 group_id char (32) unal, 2 30 3 process_id bit (36) aligned, 2 31 3 ring fixed bin (3) aligned; 2 32 2 33 declare AS_USER_MESSAGE_INFO_VERSION_1 char (8) aligned init ("asum0001") int static options (constant); 2 34 2 35 /* End include file as_user_message_info.incl.pl1 */ 904 905 3 1 /* BEGIN INCLUDE FILE ... condition_info.incl.pl1 */ 3 2 3 3 /* Structure for find_condition_info_. 3 4* 3 5* Written 1-Mar-79 by M. N. Davidoff. 3 6**/ 3 7 3 8 /* automatic */ 3 9 3 10 declare condition_info_ptr pointer; 3 11 3 12 /* based */ 3 13 3 14 declare 1 condition_info aligned based (condition_info_ptr), 3 15 2 mc_ptr pointer, /* pointer to machine conditions at fault time */ 3 16 2 version fixed binary, /* Must be 1 */ 3 17 2 condition_name char (32) varying, /* name of condition */ 3 18 2 info_ptr pointer, /* pointer to the condition data structure */ 3 19 2 wc_ptr pointer, /* pointer to wall crossing machine conditions */ 3 20 2 loc_ptr pointer, /* pointer to location where condition occured */ 3 21 2 flags unaligned, 3 22 3 crawlout bit (1), /* on if condition occured in lower ring */ 3 23 3 pad1 bit (35), 3 24 2 pad2 bit (36), 3 25 2 user_loc_ptr pointer, /* ptr to most recent nonsupport loc before condition occurred */ 3 26 2 pad3 (4) bit (36); 3 27 3 28 /* internal static */ 3 29 3 30 declare condition_info_version_1 3 31 fixed binary internal static options (constant) initial (1); 3 32 3 33 /* END INCLUDE FILE ... condition_info.incl.pl1 */ 906 907 dcl 1 ci aligned like condition_info; 908 4 1 /* BEGIN INCLUDE FILE condition_info_header.incl.pl1 BIM 1981 */ 4 2 /* format: style2 */ 4 3 4 4 declare condition_info_header_ptr 4 5 pointer; 4 6 declare 1 condition_info_header 4 7 aligned based (condition_info_header_ptr), 4 8 2 length fixed bin, /* length in words of this structure */ 4 9 2 version fixed bin, /* version number of this structure */ 4 10 2 action_flags aligned, /* tell handler how to proceed */ 4 11 3 cant_restart bit (1) unaligned, /* caller doesn't ever want to be returned to */ 4 12 3 default_restart bit (1) unaligned, /* caller can be returned to with no further action */ 4 13 3 quiet_restart bit (1) unaligned, /* return, and print no message */ 4 14 3 support_signal bit (1) unaligned, /* treat this signal as if the signalling procedure had the support bit set */ 4 15 /* if the signalling procedure had the support bit set, do the same for its caller */ 4 16 3 pad bit (32) unaligned, 4 17 2 info_string char (256) varying, /* may contain printable message */ 4 18 2 status_code fixed bin (35); /* if^=0, code interpretable by com_err_ */ 4 19 4 20 /* END INCLUDE FILE condition_info_header.incl.pl1 */ 909 910 5 1 /* BEGIN INCLUDE FILE ... cpm_entries.incl.pl1 */ 5 2 5 3 /****^ HISTORY COMMENTS: 5 4* 1) change(86-08-12,Kissel), approve(86-08-12,MCR7473), 5 5* audit(86-10-08,Fawcett), install(86-11-03,MR12.0-1206): 5 6* Written to support control point management in March 1985 by G. Palter. 5 7* END HISTORY COMMENTS */ 5 8 5 9 /* format: style3,linecom */ 5 10 5 11 /* Control Point Manager (cpm_) entrypoint definitions */ 5 12 5 13 dcl get_control_point_id_ /* returns the ID of the currently running control point */ 5 14 entry () returns (bit (36) aligned); 5 15 5 16 dcl cpm_$create /* create a new control point */ 5 17 entry (pointer, bit (36) aligned, fixed binary (35)); 5 18 5 19 dcl ( 5 20 cpm_$destroy, /* destroy the specified control point */ 5 21 cpm_$start, /* start the specified control point if its stopped */ 5 22 cpm_$wakeup, /* make the specified control point ready if its blocked */ 5 23 cpm_$stop /* stop the specified control point if its ready or blocked */ 5 24 ) entry (bit (36) aligned, fixed binary (35)); 5 25 5 26 dcl cpm_$block entry (); /* block the current control point */ 5 27 5 28 dcl cpm_$scheduler entry (); /* find a runnable control point and let it run */ 5 29 5 30 dcl ( 5 31 cpm_$get_user_cl_intermediary, /* get the user supplied procedure to run during cu_$cl */ 5 32 cpm_$set_user_cl_intermediary /* set the user supplied procedure to run during cu_$cl */ 5 33 ) entry (bit (36) aligned, entry (bit (1) aligned), fixed binary (35)); 5 34 5 35 dcl ( 5 36 cpm_$generate_call, /* generate an immediate call */ 5 37 cpm_$generate_call_preferred, /* generate an immediate call and make it run preferred */ 5 38 cpm_$generate_call_when_ready /* generate a call when the control point is next ready */ 5 39 ) entry (bit (36) aligned, entry (pointer), pointer, fixed binary (35)); 5 40 5 41 dcl cpm_$get_preferred_control_point /* return the ID of the preferred control point */ 5 42 entry () returns (bit (36) aligned); 5 43 dcl cpm_$set_preferred_control_point /* make the specified control point preferred */ 5 44 entry (bit (36) aligned, fixed binary (35)); 5 45 dcl cpm_$push_preferred_control_point /* switch preferred control points */ 5 46 entry (bit (36) aligned, bit (1) aligned, fixed binary (35)); 5 47 dcl cpm_$pop_preferred_control_point /* restore the previous preferred control point */ 5 48 entry (bit (1) aligned); 5 49 5 50 dcl cpm_$get_control_point_meters /* get the usage meters for a specific control point */ 5 51 entry (bit (36) aligned, pointer, fixed binary (35)); 5 52 dcl cpm_$get_scheduler_meters /* get the usage meters for the control point scheduler */ 5 53 entry (pointer, fixed binary (35)); 5 54 5 55 dcl cpm_$nulle entry () options (variable); /* a "null" entry value which should never be called */ 5 56 5 57 /* END INCLUDE FILE ... cpm_entries.incl.pl1 */ 911 912 6 1 /* BEGIN INCLUDE FILE...dial_event_message.incl.pl1 */ 6 2 6 3 6 4 /****^ HISTORY COMMENTS: 6 5* 1) change(86-06-30,Coren), approve(86-06-30,MCR7415), 6 6* audit(86-07-02,Margolin), install(86-07-11,MR12.0-1092): 6 7* Initial implementation. 6 8* END HISTORY COMMENTS */ 6 9 6 10 /* This include file describes the event message sent by dial_ctl_ and login servers */ 6 11 6 12 dcl dial_event_message_ptr pointer; 6 13 6 14 dcl 1 dial_event_message aligned based (dial_event_message_ptr), 6 15 2 description char (6) unaligned, 6 16 2 flags unal, 6 17 3 devx_msg bit (1), /* indicates description field contains a devx */ 6 18 3 error_msg bit (1), /* indicates description field contains standard error code */ 6 19 3 ls_msg bit (1), /* indicates message from login server, name in user_message */ 6 20 3 control bit (15); 6 21 6 22 6 23 dcl dial_event_message_handle bit (54) aligned based (dial_event_message_ptr); 6 24 /* overlay of description, contains unique part of user_message handle if any */ 6 25 6 26 6 27 /* possible values for dial_event_message.control */ 6 28 6 29 dcl (JUST_DIALED bit (15) aligned initial ("77770"b3), 6 30 JUST_HUNGUP bit (15) aligned initial ("77771"b3), 6 31 DIALS_ALLOWED bit (15) aligned initial ("77772"b3), 6 32 DIALS_DENIED bit (15) aligned initial ("77773"b3) 6 33 ) internal static options (constant); 6 34 6 35 /* END INCLUDE FILE...dial_event_message.incl.pl1 */ 913 914 7 1 /*----------BEGIN dsa_log_constants.incl.pl1---------------------------------*/ 7 2 7 3 /****^ HISTORY COMMENTS: 7 4* 1) change(85-12-01,Kissel), approve(87-07-13,MCR7679), 7 5* audit(87-03-13,GDixon), install(87-08-04,MR12.1-1056): 7 6* Initial coding. 7 7* END HISTORY COMMENTS */ 7 8 7 9 /* format: style3,linecom,ifthenstmt,indthenelse,^indnoniterdo,indnoniterend,initcol3,dclind5,idind32 */ 7 10 7 11 /*****************************************************************************/ 7 12 /* */ 7 13 /* If any changes are made to the entry_type, caller_type, or severity */ 7 14 /* constants, then dsa_log_manager_.pl1 must be updated. It keeps an */ 7 15 /* number of internal static tables which are dimensioned using these */ 7 16 /* constants. */ 7 17 /* */ 7 18 /*****************************************************************************/ 7 19 7 20 /* Types of entries to the dsa_log_manager_. */ 7 21 7 22 dcl AEP_ENTRY_TYPE fixed bin internal static options (constant) init (1); 7 23 dcl ERROR_ENTRY_TYPE fixed bin internal static options (constant) init (2); 7 24 dcl TRACE_ENTRY_TYPE fixed bin internal static options (constant) init (3); 7 25 7 26 /* Types of callers for logging purposes. */ 7 27 7 28 dcl CXI_CALLER_TYPE fixed bin internal static options (constant) init (1); 7 29 dcl SC_CALLER_TYPE fixed bin internal static options (constant) init (2); 7 30 dcl DSAC_CALLER_TYPE fixed bin internal static options (constant) init (3); 7 31 dcl UFT_USER_CALLER_TYPE fixed bin internal static options (constant) init (4); 7 32 dcl UFT_SYSTEM_CALLER_TYPE fixed bin internal static options (constant) init (5); 7 33 dcl TM_CALLER_TYPE fixed bin internal static options (constant) init (6); 7 34 dcl LS_CALLER_TYPE fixed bin internal static options (constant) init (7); 7 35 dcl USER_CALLER_TYPE fixed bin internal static options (constant) init (8); 7 36 7 37 /* Values for the severity parameter in the log. */ 7 38 7 39 dcl INFO_LOG_SEVERITY fixed bin internal static options (constant) init (0); 7 40 dcl WARN_LOG_SEVERITY fixed bin internal static options (constant) init (1); 7 41 dcl SERIOUS_LOG_SEVERITY fixed bin internal static options (constant) init (2); 7 42 dcl FATAL_LOG_SEVERITY fixed bin internal static options (constant) init (3); 7 43 7 44 /* Values for the classes of binary data that can be put into a log. */ 7 45 7 46 dcl AEP_BIN_DATA_CLASS char (16) varying internal static options (constant) init ("aep_record"); 7 47 dcl AEP_UNCONVERTED_DATA_CLASS char (16) varying internal static options (constant) init ("aep_unc_record"); 7 48 dcl DSA_BIN_DATA_CLASS char (16) varying internal static options (constant) init ("dsa_binary"); 7 49 7 50 /* Values for the AEP data types, for use by the conversion routine. */ 7 51 7 52 dcl AEP_NO_CONVERT_DATA_TYPE fixed bin internal static options (constant) init (-1); 7 53 7 54 /*----------END dsa_log_constants.incl.pl1-----------------------------------*/ 915 916 8 1 /* BEGIN INCLUDE FILE event_wait_info.incl.pl1 */ 8 2 8 3 /* T. Casey, May 1978 */ 8 4 8 5 dcl event_wait_info_ptr ptr; 8 6 8 7 dcl 1 event_wait_info aligned based (event_wait_info_ptr), /* argument structure filled in on return from ipc_$block */ 8 8 2 channel_id fixed bin (71), /* event channel on which wakeup occurred */ 8 9 2 message fixed bin (71), /* 72 bits of information passed by sender of wakeup */ 8 10 2 sender bit (36), /* process id of sender */ 8 11 2 origin, 8 12 3 dev_signal bit (18) unaligned, /* "1"b if device signal */ 8 13 3 ring fixed bin (17) unaligned, /* ring from which sent */ 8 14 2 channel_index fixed bin; /* index of this channel in the event wait list */ 8 15 8 16 /* END INCLUDE FILE event_wait_info.incl.pl1 */ 917 918 9 1 /* BEGIN INCLUDE FILE ... event_wait_list.incl.pl1 */ 9 2 9 3 /* ipc_$block wait list structure -- Must begin on an even word boundary. 9 4* 9 5* Written 9-May-79 by M. N. Davidoff. 9 6**/ 9 7 9 8 declare event_wait_list_n_channels 9 9 fixed binary; 9 10 declare event_wait_list_ptr pointer; 9 11 9 12 declare 1 event_wait_list aligned based (event_wait_list_ptr), 9 13 2 n_channels fixed binary, /* number of channels in wait list */ 9 14 2 pad bit (36), 9 15 2 channel_id (event_wait_list_n_channels refer (event_wait_list.n_channels)) fixed binary (71); 9 16 /* event channels to wait on */ 9 17 9 18 /* END INCLUDE FILE ... event_wait_list.incl.pl1 */ 919 920 10 1 /* BEGIN INCLUDE FILE ... login_server_messages.incl.pl1 */ 10 2 10 3 /****^ HISTORY COMMENTS: 10 4* 1) change(86-06-30,Coren), approve(86-06-30,MCR7415), 10 5* audit(86-07-02,Margolin), install(86-07-11,MR12.0-1092): 10 6* Initial implementation. 10 7* 2) change(87-04-16,GDixon), approve(87-07-13,MCR7679), 10 8* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 10 9* A) Add REQUEST_TYPES and RESPONSE_TYPES arrays. 10 10* B) Add login_server_validate_response.last_incorrect_password.time. 10 11* C) Add user_connection_info.line_type. 10 12* D) Add login_server_process_request.minimum_ring. 10 13* 3) change(87-05-14,GDixon), approve(87-07-13,MCR7737), 10 14* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 10 15* A) Add login_server_process_response.brief. 10 16* B) Add login_server_list_response.initial_ring. 10 17* C) Separate login_server_process_response into fixed and variable parts. 10 18* D) Move user_connection_info into login_server_request_header. 10 19* END HISTORY COMMENTS */ 10 20 10 21 /* This include file defines all the structures passed in message segments 10 22* between a login server process and the Initializer (or "answering service") 10 23* process. For convenience, messages from the server to the initializer, 10 24* passed using the send_ls_request_ subroutine, are called "requests"; 10 25* messages from the initializer to the server, passed using the user_message_ 10 26* mechanism, are called "responses". 10 27**/ 10 28 10 29 /* Request types */ 10 30 10 31 dcl (LS_VALIDATE_REQUEST initial (1), /* validate user ID and password */ 10 32 LS_PROCESS_REQUEST initial (2), /* create or connect to a process */ 10 33 LS_LIST_REQUEST initial (3), /* list disconnected processes */ 10 34 LS_DIAL_REQUEST initial (4), /* find a dial server */ 10 35 LS_DISCONNECT_REQUEST initial (5), /* report disconnection of a login channel */ 10 36 LS_LOGOUT_REQUEST initial (6), /* discard UTE (end of dialogue) */ 10 37 LS_OPERATOR_REQUEST initial (7)) /* log the user in as an operator */ 10 38 fixed bin internal static options (constant); 10 39 10 40 dcl LS_REQUEST_TYPES (7) char (10) internal static options (constant) initial 10 41 ( 10 42 "validate", 10 43 "process", 10 44 "list", 10 45 "dial", 10 46 "disconnect", 10 47 "logout", 10 48 "operator"); 10 49 10 50 dcl ls_request_ptr pointer; 10 51 10 52 /* common header for all requests */ 10 53 10 54 dcl 1 ls_request_header aligned based (ls_request_ptr), 10 55 2 header_version char (8), /* version for this header */ 10 56 2 request_version char (8), /* varies depending on the request */ 10 57 2 request_type fixed bin, 10 58 2 pad1 bit (36), 10 59 2 reply_event_channel fixed bin (71), /* event channel over which reply_message should be sent */ 10 60 2 reply_handle bit (72) aligned, /* used for dispatching response */ 10 61 2 connection_info like user_connection_info; /* connection making this request. */ 10 62 10 63 dcl LS_REQUEST_HEADER_VERSION_1 char (8) initial ("lsrh0001") internal static options (constant); 10 64 10 65 dcl 1 user_connection_info aligned based, /* common info passed in most requests */ 10 66 2 connection_name char (32), 10 67 2 access_class_range (2) bit (72), 10 68 2 terminal_type char (32), 10 69 2 terminal_id char (4), 10 70 2 line_type fixed bin; 10 71 10 72 10 73 10 74 /* "validate" request: validate user ID and password */ 10 75 10 76 dcl 1 login_server_validate_request aligned based (ls_request_ptr), 10 77 2 header like ls_request_header, /* request_type = LS_VALIDATE_REQUEST */ 10 78 2 current_password char (8), /* scrambled */ 10 79 2 authorization bit (72), /* only valid if auth_given = "1"b */ 10 80 2 terminate_event_channel fixed bin (71), /* event channel to notify server when process terminates */ 10 81 2 person_id char (22), /* as specified in login line */ 10 82 2 project_id char (9), /* likewise, might be null string */ 10 83 2 network_connection_type fixed bin, /* see below for values */ 10 84 2 new_password char (8), /* only valid if change_password = "1"b */ 10 85 2 flags, 10 86 3 gpw bit (1) unaligned, /* password generated in response to -generate_password */ 10 87 3 auth_given bit (1) unaligned, /* -authorization specified */ 10 88 3 anonymous bit (1) unaligned, /* "enterp" request */ 10 89 3 anon_no_password bit (1) unaligned, /* "enter" request */ 10 90 3 change_password bit (1) unaligned, /* gave -cpw or -gpw */ 10 91 3 change_default_auth bit (1) unaligned, /* gave -change_default_authorization */ 10 92 3 change_default_proj bit (1) unaligned, /* gave -change_default_project */ 10 93 3 operator bit (1) unaligned, /* gave -operator */ 10 94 3 pad bit (28) unaligned; 10 95 10 96 10 97 dcl LS_VALIDATE_REQUEST_VERSION_1 char (8) internal static options (constant) initial ("lsvr0001"); 10 98 10 99 10 100 10 101 /* "process" request: create a process or reconnect to an existing process for the specified user */ 10 102 10 103 dcl 1 login_server_process_request aligned based (ls_request_ptr), 10 104 2 fixed_part, /* to allow for automatic copies */ 10 105 3 header like ls_request_header, /* request_type = LS_PROCESS_REQUEST */ 10 106 3 handle bit (72), /* as provided in validate_response */ 10 107 3 person_id char (22), /* the real one */ 10 108 3 project_id char (9), /* likewise */ 10 109 3 project_pad fixed bin, 10 110 3 command_type fixed bin, /* login, connect, etc.; see below for names */ 10 111 3 process_number fixed bin, /* 0 if unspecified or irrelevant */ 10 112 3 default_io_module char (32), /* I/O module to use if no outer_module specified */ 10 113 3 switch_flags, /* used to indicate if "switch"-type control args were specified */ 10 114 4 warn_given bit (1) unaligned, 10 115 4 force_given bit (1) unaligned, 10 116 4 save_given bit (1) unaligned, 10 117 4 preempt_given bit (1) unaligned, 10 118 4 brief_given bit (1) unaligned, 10 119 4 pad2 bit (31) unaligned, 10 120 3 switch_values, /* these are only valid if corresponding bit in switch_flags is on */ 10 121 4 warn bit (1) unaligned, 10 122 4 force bit (1) unaligned, 10 123 4 save_on_disconnect bit (1) unaligned, 10 124 4 preempt bit (1) unaligned, 10 125 4 brief bit (1) unaligned, /* "0"b & brief_given => -long */ 10 126 4 pad3 bit (31) unaligned, 10 127 3 other_flags, 10 128 4 init_ring_given bit (1) unaligned, /* "1"b if -ring */ 10 129 4 minimum_ring_given bit (1) unaligned, /* "1"b if MNA terminal interface ring > 1 */ 10 130 4 immediate bit (1) unaligned, /* "1"b => -new_proc (or -destroy) -immediate */ 10 131 4 no_start_up bit (1) unaligned, /* "1"b if -no_start_up */ 10 132 4 pad4 bit (32) unaligned, 10 133 3 initial_ring fixed bin, /* valid iff init_ring_given = "1"b */ 10 134 3 minimum_ring fixed bin, /* ring in which MNA terminal mgr operates */ 10 135 3 home_dir char (168), /* null if not specified */ 10 136 3 outer_module char (32), /* likewise */ 10 137 3 process_overseer char (168), /* likewise */ 10 138 3 subsystem char (168), /* likewise */ 10 139 3 n_args fixed bin, /* how many arguments specified after -ag; if 0, ignore the rest of the structure */ 10 140 2 login_arguments, /* variable part, describes stuff after -ag */ 10 141 3 arg_string_length fixed bin (21), 10 142 3 args (ls_process_request_n_args refer (login_server_process_request.n_args)), 10 143 4 start_index fixed bin (21), /* position in arg_string at which arg (i) starts */ 10 144 4 arg_length fixed bin (21), /* length of arg (i) */ 10 145 3 arg_string char (ls_process_request_arg_string_length refer (login_server_process_request.arg_string_length)); 10 146 10 147 dcl ls_process_request_n_args fixed bin; 10 148 dcl ls_process_request_arg_string_length fixed bin (21); 10 149 10 150 dcl LS_PROCESS_REQUEST_VERSION_1 char (8) internal static options (constant) initial ("lspr0001"); 10 151 10 152 10 153 10 154 /* "list" request: list the user's disconnected processes, if any */ 10 155 10 156 dcl 1 login_server_list_request aligned based (ls_request_ptr), 10 157 2 header like ls_request_header, /* request_type = LS_LIST_REQUEST */ 10 158 2 handle bit (72); 10 159 10 160 dcl LS_LIST_REQUEST_VERSION_1 char (8) internal static options (constant) initial ("lslr0001"); 10 161 10 162 10 163 10 164 /* "dial" request: find a process to accept a dial */ 10 165 10 166 /* Note: because a dial request may or may not have been preceded 10 167* by a validate request/response, the initializer_handle may be null. 10 168**/ 10 169 10 170 dcl 1 login_server_dial_request aligned based (ls_request_ptr), 10 171 2 header like ls_request_header, /* request_type = LS_DIAL_REQUEST */ 10 172 2 initializer_handle bit (72), /* as provided in validate_response (if any) */ 10 173 2 terminate_event_channel fixed bin (71), /* event channel to wake up login server when master process terminates */ 10 174 2 dial_qualifier char (22), 10 175 2 person_id char (22), /* null if not specified */ 10 176 2 project_id char (9), /* likewise */ 10 177 2 user_person_id char (22), /* if -user was specified, otherwise "" */ 10 178 2 user_project_id char (9); /* likewise */ 10 179 10 180 dcl LS_DIAL_REQUEST_VERSION_1 char (8) internal static options (constant) initial ("lsdr0001"); 10 181 10 182 10 183 10 184 /* "disconnect" request: report that a login channel has disconnected */ 10 185 /* Note: this message is sent if the connection is broken either during the login dialogue 10 186* or later on when the process was using it */ 10 187 10 188 dcl 1 login_server_disconnect_request aligned based (ls_request_ptr), 10 189 2 header like ls_request_header, /* request_type = LS_DISCONNECT_REQUEST */ 10 190 2 handle bit (72), /* from original validate_response */ 10 191 2 process_id bit (36); /* ""b if no process established */ 10 192 10 193 dcl LS_DISCONNECT_REQUEST_VERSION_1 char (8) internal static options (constant) initial ("lsdc0001"); 10 194 10 195 10 196 10 197 /* "logout" request: indicates that user entered the "logout" request, ending the dialogue; does not require any response */ 10 198 10 199 dcl 1 login_server_logout_request aligned based (ls_request_ptr), 10 200 2 header like ls_request_header, /* request_type = LS_LOGOUT_REQUEST */ 10 201 2 handle bit (72); 10 202 10 203 dcl LS_LOGOUT_REQUEST_VERSION_1 char (8) internal static options (constant) initial ("lslg0001"); 10 204 10 205 10 206 10 207 /* "operator" request: sign the user on as an operator, the result of either 10 208* "login -operator" or "dial system". Note that in the latter case, there may 10 209* not have been a validate request (if the -user control argument wasn't specified), 10 210* in which case initializer_handle is null, and the person_id and project_id 10 211* are blank. 10 212**/ 10 213 10 214 dcl 1 login_server_operator_request aligned based (ls_request_ptr), 10 215 2 header like ls_request_header, /* request_type = LS_OPERATOR_REQUEST */ 10 216 2 initializer_handle bit (72) aligned, /* as provided in validate_response (if any) */ 10 217 2 terminate_event_channel fixed bin (71), /* event channel for wakeup when connection is dropped */ 10 218 2 person_id char (22), /* likewise */ 10 219 2 project_id char (9), /* likewise */ 10 220 2 virtual_channel char (32); /* if -virtual_channel specified, otherwise "" */ 10 221 10 222 dcl LOGIN_SERVER_OPERATOR_REQUEST_VERSION_1 char (8) internal static options (constant) initial ("lsor0001"); 10 223 10 224 10 225 10 226 /* Response types */ 10 227 10 228 dcl (LS_UNKNOWN_RESPONSE initial (100), /* unknown response type. */ 10 229 LS_VALIDATE_RESPONSE initial (101), /* response to validation request */ 10 230 LS_PROCESS_RESPONSE initial (102), /* response to process request */ 10 231 LS_LIST_RESPONSE initial (103), /* response to list request */ 10 232 LS_DIAL_RESPONSE initial (104), /* response to dial request */ 10 233 LS_TERMINATION_RESPONSE initial (105), /* to notify server of a logout */ 10 234 LS_NEW_PROC_RESPONSE initial (106), /* to notify server of process termination */ 10 235 LS_OPERATOR_RESPONSE initial (107)) /* response to operator request */ 10 236 fixed bin internal static options (constant); 10 237 10 238 dcl LS_RESPONSE_TYPES (100:107) char (10) internal static options (constant) initial 10 239 ( 10 240 "UNKNOWN", 10 241 "validate", 10 242 "process", 10 243 "list", 10 244 "dial", 10 245 "terminate", 10 246 "new_proc", 10 247 "operator"); 10 248 10 249 /* NOTE: the server_handle is not included in the response structures because 10 250* it is provided in the user_message_ structures */ 10 251 10 252 10 253 10 254 dcl ls_response_ptr pointer; 10 255 10 256 /* common header for all responses */ 10 257 10 258 dcl 1 login_server_response_header aligned based (ls_response_ptr), 10 259 2 message_type fixed bin, 10 260 2 header_pad bit (36), /* force doubleword alignment */ 10 261 2 version char (8); 10 262 10 263 10 264 10 265 /* "validate" response: indicate whether user_id/password is valid */ 10 266 10 267 dcl 1 login_server_validate_response aligned based (ls_response_ptr), 10 268 2 header like login_server_response_header, /* message_type = LS_VALIDATE_RESPONSE */ 10 269 2 handle bit (72), /* to be provided by the server in subsequent */ 10 270 /* messages for the same connection */ 10 271 2 authorization bit (72), /* default if none was supplied */ 10 272 2 authorization_range (2) bit (72), /* authorization range permitted for this user */ 10 273 2 status_code fixed bin (35), /* 0 iff user is validated */ 10 274 2 person_id char (22), /* primary name from the PNT */ 10 275 2 project_id char (9), /* primary name from the PNT or PDT */ 10 276 2 n_disconnected_processes fixed bin, /* number of disconnected processes for specified user */ 10 277 2 validate_pad fixed bin, 10 278 2 previous_login_info, /* for printing login message */ 10 279 3 time fixed bin (71), 10 280 3 terminal_type char (32), 10 281 3 terminal_id char (4), 10 282 2 incorrect_passwords fixed bin, /* number of times password given incorrectly */ 10 283 2 last_incorrect_password, /* where it came from */ 10 284 3 time fixed bin (71), 10 285 3 terminal_type char (32), 10 286 3 terminal_id char (4), 10 287 2 password_interval fixed bin, /* limit (in days) for password use or change */ 10 288 2 flags, 10 289 3 disconnect bit (1) unaligned, /* if "1"b, close the connection immediately */ 10 290 3 password_changed bit (1) unal, /* "1"b => changed password */ 10 291 3 default_auth_changed bit (1) unal, /* "1"b => changed default authorization */ 10 292 3 default_proj_changed bit (1) unal, /* "1"b => changed default project */ 10 293 3 password_expired bit (1) unal, /* "1"b => password not changed recently enough */ 10 294 3 password_unused_too_long bit (1) unal, /* "1"b => password hasn't been used recently */ 10 295 3 pad bit (30) unaligned; 10 296 10 297 dcl LS_VALIDATE_RESPONSE_VERSION_1 char (8) internal static options (constant) initial ("lsvs0001"); 10 298 10 299 10 300 10 301 /* "process" response: responds to request to create or connect */ 10 302 10 303 dcl 1 login_server_process_response aligned based (ls_response_ptr), 10 304 2 fixed_part, 10 305 3 header like login_server_response_header, /* message_type = LS_PROCESS_RESPONSE */ 10 306 3 status_code fixed bin (35), /* 0 iff process was created or requested process exists */ 10 307 3 process_id bit (36), 10 308 3 new_handle bit (72), /* changed if reconnecting, etc. to preexisting process, all 0 otherwise */ 10 309 3 authorization bit (72), /* authorization of created or existing process */ 10 310 3 process_group_id char (32), /* Person.Project.tag */ 10 311 3 process_number fixed bin, /* as in, "Your disconnected process #2..." */ 10 312 3 n_disconnected_processes fixed bin, /* valid even if code ^= 0, e.g., if request was ambiguous */ 10 313 3 start_event_channel fixed bin (71), /* event channel to wake up user process on */ 10 314 3 login_instance fixed bin, /* "This is your Nth interactive login" */ 10 315 3 accounting_info, /* for destroyed process, if any */ 10 316 4 cpu_usage fixed bin (71), 10 317 4 cost float bin, 10 318 3 flags, /* except for disconnect and logout, invalid if status_code ^= 0 */ 10 319 4 disconnect bit (1) unaligned, /* "1"b => break the connection immediately */ 10 320 4 logout bit (1) unaligned, /* "1"b => restart login sequence */ 10 321 4 created bit (1) unaligned, /* "1"b => new process created */ 10 322 4 connected bit (1) unaligned, /* "1"b => connected to old process */ 10 323 4 new_proc bit (1) unaligned, /* "1"b => connected after new_proc */ 10 324 4 destroyed bit (1) unaligned, /* "1"b => process destroyed */ 10 325 4 anonymous bit (1) unaligned, /* "1"b => anonymous user ("enter" or "enterp") */ 10 326 4 already_logged_in bit (1) unaligned, /* "1"b => user can't log in because he already is */ 10 327 4 message_coordinator bit (1) unaligned, /* "1"b => this connection is going to be used by the message coordinator */ 10 328 4 brief bit (1) unaligned, /* "1"b => brief user attribute from PDT */ 10 329 4 pad bit (26) unaligned, 10 330 3 initial_ring fixed bin, /* ring in which process was created */ 10 331 3 already_logged_in_info, /* relevant if already_logged_in flag is "1"b */ 10 332 4 connection_name char (32), 10 333 4 terminal_type char (32), 10 334 4 terminal_id char (4), 10 335 2 accounting_message_struc, /* character string assembled by initializer giving error or warnings about the user's account */ 10 336 3 accounting_message_length fixed bin, 10 337 3 accounting_message char (ls_process_response_accounting_message_length refer (login_server_process_response.accounting_message_length)); 10 338 10 339 dcl ls_process_response_accounting_message_length fixed bin; 10 340 10 341 dcl LOGIN_SERVER_PROCESS_RESPONSE_VERSION_1 char (8) internal static options (constant) initial ("lsps0001"); 10 342 10 343 10 344 10 345 /* "list" response: used if create request specified "list" command */ 10 346 10 347 dcl 1 login_server_list_response aligned based (ls_response_ptr), 10 348 2 header like login_server_response_header, /* message_type = LS_LIST_RESPONSE */ 10 349 2 n_processes fixed bin, /* number of disconnected processes (might be 0) */ 10 350 2 pad_header fixed bin, 10 351 2 process_info (login_server_list_response_n_processes refer (login_server_list_response.n_processes)), 10 352 3 creation_time fixed bin (71), 10 353 3 authorization bit (72), 10 354 3 initial_ring fixed bin, 10 355 3 pad_process_info fixed bin, 10 356 3 connection_info like user_connection_info; 10 357 10 358 dcl login_server_list_response_n_processes fixed bin; 10 359 10 360 dcl LOGIN_SERVER_LIST_RESPONSE_VERSION_1 char (8) internal static options (constant) initial ("lslr0001"); 10 361 10 362 10 363 10 364 /* "dial" response: response to dial request */ 10 365 10 366 dcl 1 login_server_dial_response aligned based (ls_response_ptr), 10 367 2 header like login_server_response_header, /* message_type = LS_DIAL_RESPONSE */ 10 368 2 status_code fixed bin (35), /* 0 iff dial server was found and all is OK */ 10 369 2 process_id bit (36), /* of dial server */ 10 370 2 process_group_id char (32), /* likewise */ 10 371 2 authorization bit (72), /* likewise, to make sure connection is usable */ 10 372 2 start_event_channel fixed bin (71), /* event channel to wake up user process on */ 10 373 2 process_ring fixed bin, /* initial ring of dial server */ 10 374 2 flags, 10 375 3 disconnect bit (1) unaligned, /* "1"b => break connection immediately */ 10 376 3 pad bit (35) unaligned; 10 377 10 378 dcl LOGIN_SERVER_DIAL_RESPONSE_VERSION_1 char (8) internal static options (constant) initial ("lsds0001"); 10 379 10 380 10 381 10 382 /* "termination" response: (not a response to anything): notify server that a 10 383* process terminated other than by logout */ 10 384 10 385 dcl 1 login_server_termination_response aligned based (ls_response_ptr), 10 386 2 header like login_server_response_header, /* message_type = LS_TERMINATION_RESPONSE */ 10 387 2 accounting_info, /* for printing in logout message */ 10 388 3 cpu_usage fixed bin (71), 10 389 3 cost float bin, 10 390 3 pad bit (33) unaligned, 10 391 2 process_id bit (36), /* of the logged-out process */ 10 392 2 process_group_id char (32), 10 393 2 status_code fixed bin (35), /* e.g., to indicate reason for fatal error */ 10 394 2 flags, 10 395 3 logout bit (1) aligned, /* no new process coming */ 10 396 3 automatic_logout bit (1) unaligned, 10 397 3 hold bit (1) unaligned, 10 398 3 brief bit (1) unaligned, 10 399 3 new_proc bit (1) unaligned, /* user-requested new process */ 10 400 3 fatal_error bit (1) unaligned, /* process died unexpectedly */ 10 401 3 fpe_caused_logout bit (1) unaligned, /* fatal error doesn't generate new process */ 10 402 3 fpe_loop bit (1) unaligned, /* fatal error loop: too many in too short a time */ 10 403 3 fpe_during_init bit (1) unaligned, /* fatal error during process initialization */ 10 404 3 offer_help bit (1) unaligned, /* print a message offering "help" */ 10 405 3 pad bit (27) unaligned; 10 406 10 407 dcl LOGIN_SERVER_TERMINATION_RESPONSE_VERSION_1 char (8) internal static options (constant) initial ("lstr0001"); 10 408 10 409 10 410 10 411 /* "new_proc" response: (not actually a response to anything) -- describes a 10 412* new process (after a termination_response) */ 10 413 10 414 dcl 1 login_server_new_proc_response aligned based (ls_response_ptr), 10 415 2 header like login_server_response_header, /* message_type = LS_NEW_PROC_RESPONSE */ 10 416 2 new_authorization bit (72), /* in case of new_proc -auth */ 10 417 2 new_start_event_channel fixed bin (71), /* event channel for starting new process */ 10 418 2 new_process_id bit (36); /* process_id of newly-created process */ 10 419 10 420 dcl LOGIN_SERVER_NEW_PROC_RESPONSE_VERSION_1 char (8) internal static options (constant) initial ("lsnp0001"); 10 421 10 422 10 423 10 424 /* "operator" response: indicates success or failure of operator request */ 10 425 10 426 dcl 1 login_server_operator_response aligned based (ls_response_ptr), 10 427 2 header like login_server_response_header, /* message_type = LS_OPERATOR_RESPONSE */ 10 428 2 status_code fixed bin (35), /* indicates success or failure */ 10 429 2 process_id bit (36), /* process ID of the message coordinator */ 10 430 2 process_group_id char (32), /* Person.Project.tag */ 10 431 2 event_channel fixed bin (71), /* event channel over which to send connect/disconnect wakeups */ 10 432 2 ring fixed bin, /* ring of message coordinator */ 10 433 2 flags, 10 434 3 disconnect bit (1) unaligned, /* "1" => break the connection immediately */ 10 435 3 mbz bit (35) unaligned; 10 436 10 437 10 438 dcl LOGIN_SERVER_OPERATOR_RESPONSE_VERSION_1 char (8) internal static options (constant) initial ("lsos0001"); 10 439 10 440 10 441 /* format of reply message sent to acknowledge receipt of a request */ 10 442 10 443 dcl ls_reply_message_ptr pointer; 10 444 10 445 dcl 1 ls_reply_message aligned based (ls_reply_message_ptr), 10 446 2 code fixed bin (35), 10 447 2 flags, 10 448 3 request_invalid bit (1) unaligned, /* "1"b => could not process request */ 10 449 3 response_sent bit (1) unaligned, /* "1"b => there is a response message */ 10 450 3 as_error_code bit (1) unaligned, /* "1"b => code is from as_error_table_ */ 10 451 3 do_not_reply bit (1) unaligned, /* "1"b => special flag for AS to prevent any reply from being sent to login server */ 10 452 3 mbz bit (32) unaligned; 10 453 10 454 /* The following are values used to identify the various requests internally; those from CREATE_REQ on 10 455* can appear as "command_type" in ls_process_requests. */ 10 456 10 457 dcl (LOGIN_REQ initial (1), 10 458 ENTER_REQ initial (2), 10 459 ENTERP_REQ initial (3), 10 460 CREATE_REQ initial (4), 10 461 DESTROY_REQ initial (5), 10 462 CONNECT_REQ initial (6), 10 463 NEW_PROC_REQ initial (7), 10 464 LIST_REQ initial (8)) 10 465 fixed bin internal static options (constant); 10 466 10 467 /* The following are the possible values for login_server_validate_request.network_connection_type. 10 468* They are used by the initializer to select a default process overseer and an instance tag. 10 469**/ 10 470 10 471 dcl (NETWORK_CONNECTION_LOGIN initial (1), 10 472 NETWORK_CONNECTION_DSA_FILE_TRANSFER initial (2)) 10 473 fixed bin internal static options (constant); 10 474 10 475 /* END INCLUDE FILE ... login_server_messages.incl.pl1 */ 921 922 11 1 /* BEGIN INCLUDE FILE...login_service_entries.incl.pl1 */ 11 2 11 3 /****^ HISTORY COMMENTS: 11 4* 1) change(85-03-01,Coren), approve(87-07-13,MCR7679), audit(87-03-18,GDixon), 11 5* install(87-08-04,MR12.1-1056): 11 6* Initial coding. 11 7* 2) change(87-04-16,Brunelle), approve(87-07-13,MCR7679), 11 8* audit(87-07-13,Parisek), install(87-08-04,MR12.1-1056): 11 9* Add group_id parameter to the assign_connection entry. 11 10* 3) change(87-05-18,GDixon), approve(87-07-13,MCR7679), 11 11* audit(87-07-13,Parisek), install(87-08-04,MR12.1-1056): 11 12* A) Update calling sequence for .listen to add minimum_ring parameter. 11 13* B) Update calling sequence for .validate_user to remove 11 14* access_class_range parameter. 11 15* END HISTORY COMMENTS */ 11 16 11 17 /* This include file defines the entries to be returned by a call */ 11 18 /* net_info_$get_service_entries with a service type of "login_service". */ 11 19 11 20 /* format: style3,dclind5,idind25,insnl,ll79,comcol7 */ 11 21 11 22 dcl login_service_entries_ptr 11 23 pointer; 11 24 11 25 dcl 1 login_service_entries aligned based (login_service_entries_ptr), 11 26 /**/ 11 27 /* version: "lsveNNNN" */ 11 28 2 version char (8), 11 29 /**/ 11 30 /* listen (generic_connection_name, area_ptr, disconnect_event_channel */ 11 31 /* , connection_name, connection_handle, connection_info_ptr, */ 11 32 /* connection_info_length, attach_description, */ 11 33 /* access_class_range, minimum_ring, code) */ 11 34 2 listen variable 11 35 entry (char (*), ptr, fixed bin (71), char (*), 11 36 fixed bin (35), ptr, fixed bin (18) unsigned, 11 37 char (*) varying, (2) bit (72) aligned, 11 38 fixed bin, fixed bin (35)), 11 39 /**/ 11 40 /* stop_listen (endpoint_name, code) */ 11 41 2 stop_listen variable entry (char (*), fixed bin (35)), 11 42 /**/ 11 43 /* assign_connection (connection_name, connection_handle, process_id, */ 11 44 /* group_id, */ 11 45 /* initializer_handle, disconnect_event_channel, */ 11 46 /* terminate_event_channel, usage_type, code) */ 11 47 2 assign_connection variable 11 48 entry (char (*), fixed bin (35), 11 49 bit (36) aligned, char (32), bit (72) aligned, 11 50 fixed bin (71), fixed bin (71), fixed bin, 11 51 fixed bin (35)), 11 52 /**/ 11 53 /* unassign_connection (connection_name, connection_handle, */ 11 54 /* wakeup_message, code) */ 11 55 2 unassign_connection variable 11 56 entry (char (*), fixed bin (35), bit (72), 11 57 fixed bin (35)), 11 58 /**/ 11 59 /* disconnect (connection_name, connection_handle, wakeup_message, */ 11 60 /* code) */ 11 61 2 disconnect variable 11 62 entry (char (*), fixed bin (35), bit (72), 11 63 fixed bin (35)), 11 64 /**/ 11 65 /* force_disconnect (connection_name, connection_handle, code) */ 11 66 2 force_disconnect variable 11 67 entry (char (*), fixed bin (35), fixed bin (35)), 11 68 /**/ 11 69 /* validate_user (lscp_info_ptr, option_structure_ptr, */ 11 70 /* ls_process_info_ptr, code) */ 11 71 2 validate_user variable 11 72 entry (ptr, ptr, ptr, fixed bin (35)); 11 73 11 74 11 75 dcl LS_ENTRIES_V1 char (8) internal static 11 76 options (constant) initial ("lsve0001"); 11 77 11 78 /* END INCLUDE FILE...login_service_entries.incl.pl1 */ 923 924 12 1 /* BEGIN INCLUDE FILE...ls_connection_desc.incl.pl1 */ 12 2 12 3 /****^ HISTORY COMMENTS: 12 4* 1) change(85-04-01,Coren), approve(87-07-14,MCR7679), audit(87-03-18,GDixon), 12 5* install(87-08-04,MR12.1-1056): 12 6* Initial coding. 12 7* 2) change(87-05-18,GDixon), approve(87-07-14,MCR7679), 12 8* audit(87-07-14,Parisek), install(87-08-04,MR12.1-1056): 12 9* Add minimum_ring element. 12 10* END HISTORY COMMENTS */ 12 11 12 12 /* This include file defines the info structure passed to the control point 12 13* that conducts the logn dialogue with a connection once it has been 12 14* established. 12 15**/ 12 16 12 17 dcl ls_connection_desc_ptr pointer; 12 18 12 19 dcl 1 ls_connection_desc aligned based (ls_connection_desc_ptr), 12 20 2 version char (8), /* "lscdNNNN" */ 12 21 2 name char (32), /* name of the connection */ 12 22 2 endpoint_name char (32), /* name of endpoint through which connection was made */ 12 23 2 io_module char (32), /* I/O module through which connection is attached */ 12 24 2 disconnect_event_channel fixed bin (71), /* event channel over which disconnects will be signalled */ 12 25 2 terminate_event_channel fixed bin (71), /* event channel over which process terminations will be signalled */ 12 26 2 service_entries_ptr pointer, /* points to list of network service entries */ 12 27 2 connection_info_ptr pointer, /* points to entity-specific connection info */ 12 28 2 connection_info_len fixed bin (18) unsigned, /* length of said info in words */ 12 29 2 connection_handle fixed bin (35), /* unique ID of connection */ 12 30 2 process_info_ptr pointer, /* points to ls_process_info */ 12 31 2 access_class_range (2) bit (72), /* min:max access class of the connection */ 12 32 2 minimum_ring fixed bin, /* min ring in which MNA connections works. */ 12 33 2 conn_pad fixed bin; 12 34 12 35 dcl LS_CONNECTION_DESC_V1 char (8) internal static options (constant) initial ("lscd0001"); 12 36 12 37 /* END INCLUDE FILE...ls_connection_desc.incl.pl1 */ 925 926 13 1 /* BEGIN INCLUDE FILE...ls_connection_message.incl.pl1 */ 13 2 13 3 13 4 /****^ HISTORY COMMENTS: 13 5* 1) change(86-07-02,Coren), approve(86-07-02,MCR7415), 13 6* audit(86-07-02,Margolin), install(86-07-11,MR12.0-1092): 13 7* Initial implementation. 13 8* END HISTORY COMMENTS */ 13 9 13 10 /* This include file describes the user_message passed by a login server to 13 11* a user process when a connection is assigned to, or disconnected from, 13 12* that process. The format of the "connection_info" is dependent on the type 13 13* of connection. The connection_info is not included in disconnect messages. 13 14* 13 15* The "common" portion of the message is passed separately for "dialed" channels 13 16* so that convert_dial_message_ in the dial-server's process can use it to 13 17* to determine the names of the connectin and the associated I/O module. The 13 18* "full" message is passed in all cases and used when actually doing the 13 19* attachment. 13 20**/ 13 21 13 22 /* Written April 1985 by Robert Coren */ 13 23 13 24 13 25 dcl ls_connection_message_ptr pointer; 13 26 13 27 dcl ls_connection_message_info_length fixed bin (18) unsigned; 13 28 13 29 13 30 /* The portion of the message that identifies the connection: used in all cases */ 13 31 13 32 dcl 1 ls_connection_message_common aligned based (ls_connection_message_ptr), 13 33 2 version char (8), /* "lscmNNNN" */ 13 34 2 connection_name char (32), 13 35 2 io_module_name char (32); 13 36 13 37 13 38 /* The full message: used by the I/O module when attaching */ 13 39 13 40 dcl 1 ls_connection_message aligned based (ls_connection_message_ptr), 13 41 2 common like ls_connection_message_common, 13 42 2 connection_handle fixed bin (35), 13 43 2 reason fixed bin, /* LS_MSG_CONNECTED or LS_MSG_DISCONNECTED */ 13 44 2 connection_info_length fixed bin (18) unsigned, 13 45 2 mbz bit (36), /* pad to even word boundary */ 13 46 2 connection_info (ls_connection_message_info_length refer (ls_connection_message.connection_info_length)) bit (36); 13 47 13 48 dcl LS_CONNECTION_MESSAGE_V1 char (8) internal static options (constant) initial ("lscm0001"); 13 49 13 50 dcl LS_MSG_CONNECTED fixed bin internal static options (constant) initial (1); 13 51 dcl LS_MSG_DISCONNECTED fixed bin internal static options (constant) initial (2); 13 52 13 53 13 54 /* END INCLUDE FILE...ls_connection_message.incl.pl1 */ 927 928 14 1 /* BEGIN INCLUDE FILE...ls_cp_info.incl.pl1 */ 14 2 14 3 /****^ HISTORY COMMENTS: 14 4* 1) change(85-04-01,Coren), approve(87-06-25,MCR7679), audit(87-03-05,GDixon), 14 5* install(87-08-04,MR12.1-1056): 14 6* Initial coding. 14 7* 2) change(87-03-05,GDixon), approve(87-06-25,MCR7679), 14 8* audit(87-07-14,Parisek), install(87-08-04,MR12.1-1056): 14 9* Add info directory paths to ls_cp_info structure. This allows them to 14 10* be changed while running in a test environment. 14 11* 3) change(87-06-25,GDixon), approve(87-06-25,MCR7679), 14 12* audit(87-07-14,Parisek), install(87-08-04,MR12.1-1056): 14 13* Add ls_cp_info.flags.call_probe to allow debug_mode messages without 14 14* stopping in probe. 14 15* END HISTORY COMMENTS */ 14 16 14 17 /* This include file describes the info structure passed to the initial 14 18* procedure of a login server control point that manages a particular 14 19* connection. 14 20**/ 14 21 14 22 dcl ls_cp_info_ptr pointer; 14 23 14 24 dcl 1 ls_cp_info aligned based (ls_cp_info_ptr), 14 25 2 version char (8), /* "lscpNNNN" */ 14 26 2 connection_desc_ptr pointer, /* points to ls_connection_desc */ 14 27 2 error_info_ptr pointer, /* pointer to ls_error_info structure */ 14 28 2 error_event_channel fixed bin (71), /* event channel for signalling errors in parent control point */ 14 29 2 connection_gone_event_channel fixed bin (71), /* event channel for telling parent that connection is gone */ 14 30 2 answer_table_ptr pointer, /* needed by validate_user_ */ 14 31 2 installation_parms_ptr pointer, /* likewise */ 14 32 2 flags, 14 33 3 debug_mode bit (1) unaligned, /* "1"b => debugging environment */ 14 34 3 call_probe bit (1) unaligned, /* "1"b => call probe when control point reports error */ 14 35 3 trace bit (1) unaligned, /* "1"b => make tracing calls */ 14 36 3 fault_recursion bit (1) unaligned, /* "1"b => cl_intermediary being entered for second time */ 14 37 3 no_io_switches bit (1) unaligned, /* "1"b => control point doesn't have separate I/O switches */ 14 38 3 pad bit (31) unaligned, 14 39 2 login_info_dir char (168) unal, /* info dir for login requests */ 14 40 2 connect_info_dir char (168) unal; /* info dir for connect requests */ 14 41 14 42 dcl LS_CP_INFO_V1 char (8) internal static options (constant) initial ("lscp0001"); 14 43 14 44 /* END INCLUDE FILE...ls_cp_info.incl.pl1 */ 929 930 15 1 /* BEGIN INCLUDE FILE...ls_process_info.incl.pl1 */ 15 2 15 3 /****^ HISTORY COMMENTS: 15 4* 1) change(85-04-01,Coren), approve(87-07-14,MCR7679), audit(87-03-18,GDixon), 15 5* install(87-08-04,MR12.1-1056): 15 6* Initial coding. 15 7* 2) change(87-04-23,GDixon), approve(87-07-14,MCR7679), 15 8* audit(87-07-14,Parisek), install(87-08-04,MR12.1-1056): 15 9* A) Add line_type to ls_process_info structure. 15 10* B) Make process_group_id unaligned. 15 11* END HISTORY COMMENTS */ 15 12 15 13 /* This include file describes the information returned by validate_user_ to 15 14* login_server_connection_, and maintained for the life of the process or the 15 15* connection (whichever is shorter). */ 15 16 15 17 dcl ls_process_info_ptr pointer; 15 18 15 19 dcl 1 ls_process_info aligned based (ls_process_info_ptr), 15 20 2 version char (8), /* "lspiNNNN" */ 15 21 2 process_group_id char (32) unal, /* Person.Project.tag */ 15 22 2 start_event_channel fixed bin (71), /* event channel for sending initial wakeup to user process */ 15 23 2 authorization bit (72), /* process's AIM authorization */ 15 24 2 initializer_handle bit (72), /* "handle" used in request messages with the Initializer about this connection */ 15 25 2 server_handle bit (72), /* "handle" for reading responses from the Initializer */ 15 26 2 process_id bit (36), 15 27 2 initial_ring fixed bin, /* initial ring of process */ 15 28 2 usage_type fixed bin, /* login, dial, etc.; see active_connection_info.incl.pl1 */ 15 29 2 flags, 15 30 3 fatal_error bit (1) unaligned, /* "1"b when process has taken a fatal error */ 15 31 3 terminal_info_set bit (1) unaligned, /* terminal_type and terminal_id are valid */ 15 32 3 pad bit (34) unaligned, 15 33 2 terminal_type char (32), /* terminal type established during login dialogue */ 15 34 2 terminal_id char (4), /* similarly for terminal ID */ 15 35 2 line_type fixed bin; /* similarly for line type. */ 15 36 15 37 dcl LS_PROCESS_INFO_V1 char (8) internal static options (constant) initial ("lspi0001"); 15 38 15 39 15 40 /* The following structure describes the option flags passed to validate_user_ */ 15 41 15 42 dcl ls_validate_options_ptr pointer; 15 43 15 44 dcl 1 ls_validate_options aligned based (ls_validate_options_ptr), 15 45 2 version char (8), /* "lsvoNNNN" */ 15 46 2 flags, 15 47 3 brief bit (1) unaligned, /* "1"b => don't print greeting message */ 15 48 3 not_first bit (1) unaligned, /* "1"b => this is not first dialogue for this connection */ 15 49 3 mbz bit (34) unaligned; 15 50 15 51 dcl LS_VALIDATE_OPTIONS_V1 char (8) internal static options (constant) initial ("lsvo0001"); 15 52 15 53 /* END INCLUDE FILE...ls_process_info.incl.pl1 */ 931 932 16 1 /* BEGIN INCLUDE FILE ... ls_usage_types.incl.pl1 */ 16 2 16 3 /****^ HISTORY COMMENTS: 16 4* 1) change(86-06-30,Coren), approve(86-06-30,MCR7415), 16 5* audit(86-07-02,Margolin), install(86-07-11,MR12.0-1092): 16 6* Initial implementation. 16 7* 2) change(87-05-26,GDixon), approve(87-07-13,MCR7679), 16 8* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 16 9* A) Add LS_USAGE_VALUES constant array. 16 10* END HISTORY COMMENTS */ 16 11 16 12 /* Defines the permissible values for the "usage_type" field in the acctive_connection_list entry and elsewhere */ 16 13 16 14 dcl (LS_ENDPOINT_USAGE initial (0), /* an endpoint for logins, UFT, etc */ 16 15 LS_LOGIN_USAGE initial (1), /* primary login connection */ 16 16 LS_DIAL_USAGE initial (2), /* assigned to dial server */ 16 17 LS_DIAL_OUT_USAGE initial (3), /* user did dial_out operation */ 16 18 LS_SLAVE_ATTACH_USAGE initial (4), /* user did slave attachment */ 16 19 LS_MC_USAGE initial (5)) /* message coordinator channel */ 16 20 fixed bin internal static options (constant); 16 21 16 22 dcl LS_USAGE_VALUES (0:5) char(16) varying int static options(constant) init( 16 23 "endpoint", 16 24 "login", 16 25 "dial-in", 16 26 "dial-out", 16 27 "slave attach", 16 28 "msg coord"); 16 29 16 30 /* END INCLUDE FILE ... ls_usage_types.incl.pl1 */ 933 934 17 1 /* BEGIN INCLUDE FILE...user_message_handles.incl.pl1 */ 17 2 17 3 17 4 /****^ HISTORY COMMENTS: 17 5* 1) change(85-12-19,Herbst), approve(87-07-20,MCR7697), 17 6* audit(87-07-20,GDixon), install(87-08-04,MR12.1-1056): 17 7* Added SYSTEM_MESSAGE_HANDLE 17 8* 2) change(86-06-30,Coren), approve(86-06-30,MCR7415), 17 9* audit(86-07-02,Margolin), install(86-07-11,MR12.0-1092): 17 10* Added USER_MESSAGE_LS_CONNECTION_INFO_HANDLE and 17 11* USER_MESSAGE_LS_CONNECTION_INFO_HANDLE_LOWER_18 for use by login servers. 17 12* END HISTORY COMMENTS */ 17 13 17 14 /* This include file defines "well-known" handles for as_user_messages, 17 15* i.e., each of the handles defined here will be used for a particular purpose, 17 16* and programs that expect to receive such messages will use the appropriate 17 17* handle to read them. 17 18**/ 17 19 17 20 dcl USER_MESSAGE_LS_CONNECTION_INFO_HANDLE initial ("000000000000777777777777"b3) /* connection_info sent by login server to newly created process */ 17 21 bit (72) aligned internal static options (constant); 17 22 17 23 dcl USER_MESSAGE_LS_CONNECTION_INFO_HANDLE_LOWER_18 initial ("777777"b3) /* allows upper 54 bits to be used for unique identifier */ 17 24 bit (18) aligned internal static options (constant); 17 25 17 26 dcl SYSTEM_MESSAGE_HANDLE initial ("770007700077000770007700"b3) /* for warn and dm_shut messages */ 17 27 bit (72) aligned internal static options (constant); 17 28 17 29 17 30 /* END INCLUDE FILE...user_message_handles.incl.pl1 */ 935 936 937 end login_server_connection_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 08/04/87 1222.2 login_server_connection_.pl1 >special_ldd>install>MR12.1-1054>login_server_connection_.pl1 902 1 03/08/85 0852.7 as_user_message_add.incl.pl1 >ldd>include>as_user_message_add.incl.pl1 904 2 03/08/85 0852.7 as_user_message_info.incl.pl1 >ldd>include>as_user_message_info.incl.pl1 906 3 06/28/79 1204.8 condition_info.incl.pl1 >ldd>include>condition_info.incl.pl1 909 4 03/24/82 1347.2 condition_info_header.incl.pl1 >ldd>include>condition_info_header.incl.pl1 911 5 11/07/86 1550.3 cpm_entries.incl.pl1 >ldd>include>cpm_entries.incl.pl1 913 6 07/15/86 2005.5 dial_event_message.incl.pl1 >ldd>include>dial_event_message.incl.pl1 915 7 08/04/87 1140.2 dsa_log_constants.incl.pl1 >spec>install>1056>dsa_log_constants.incl.pl1 917 8 06/29/79 1727.8 event_wait_info.incl.pl1 >ldd>include>event_wait_info.incl.pl1 919 9 06/29/79 1728.0 event_wait_list.incl.pl1 >ldd>include>event_wait_list.incl.pl1 921 10 08/04/87 1139.9 login_server_messages.incl.pl1 >spec>install>1056>login_server_messages.incl.pl1 923 11 08/04/87 1139.9 login_service_entries.incl.pl1 >spec>install>1056>login_service_entries.incl.pl1 925 12 08/04/87 1139.9 ls_connection_desc.incl.pl1 >spec>install>1056>ls_connection_desc.incl.pl1 927 13 07/15/86 2005.5 ls_connection_message.incl.pl1 >ldd>include>ls_connection_message.incl.pl1 929 14 08/04/87 1139.9 ls_cp_info.incl.pl1 >spec>install>1056>ls_cp_info.incl.pl1 931 15 08/04/87 1139.9 ls_process_info.incl.pl1 >spec>install>1056>ls_process_info.incl.pl1 933 16 08/04/87 1139.6 ls_usage_types.incl.pl1 >spec>install>1056>ls_usage_types.incl.pl1 935 17 08/04/87 1138.3 user_message_handles.incl.pl1 >spec>install>1056>user_message_handles.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. AS_USER_MESSAGE_ADD_INFO_VERSION_1 000024 constant char(8) initial unaligned dcl 1-20 ref 730 AS_USER_MESSAGE_INFO_VERSION_1 000022 constant char(8) initial dcl 2-33 ref 365 DISCONNECT_EVENT constant fixed bin(17,0) initial dcl 169 ref 296 309 DONT_TAKE_DUMP 000101 constant bit(1) initial dcl 170 set ref 415* 634* 819* DONT_TELL_INITIALIZER 000101 constant bit(1) initial dcl 171 set ref 244* 260* 305* 500* DONT_TELL_USER 000101 constant bit(1) initial dcl 172 set ref 415* 713* 819* FALSE constant bit(1) initial unaligned dcl 173 ref 226 INFO_LOG_SEVERITY 000101 constant fixed bin(17,0) initial dcl 7-39 set ref 278* 320* 332* 391* 411* 628* 696* 814* 834* JUST_DIALED constant bit(15) initial dcl 6-29 ref 708 JUST_HUNGUP constant bit(15) initial dcl 6-29 ref 710 LOGIN_SERVER_NEW_PROC_RESPONSE_VERSION_1 000010 constant char(8) initial unaligned dcl 10-420 ref 542 LOGIN_SERVER_TERMINATION_RESPONSE_VERSION_1 000012 constant char(8) initial unaligned dcl 10-407 ref 421 LS_CALLER_TYPE 000020 constant fixed bin(17,0) initial dcl 7-34 set ref 278* 320* 332* 391* 411* 628* 696* 814* 834* LS_CONNECTION_MESSAGE_V1 000006 constant char(8) initial unaligned dcl 13-48 ref 677 LS_DIAL_USAGE constant fixed bin(17,0) initial dcl 16-14 ref 512 686 705 LS_DISCONNECT_REQUEST constant fixed bin(17,0) initial dcl 10-31 ref 875 LS_DISCONNECT_REQUEST_VERSION_1 000014 constant char(8) initial unaligned dcl 10-193 ref 876 LS_LOGIN_USAGE constant fixed bin(17,0) initial dcl 16-14 ref 340 440 LS_MC_USAGE constant fixed bin(17,0) initial dcl 16-14 ref 521 LS_MSG_CONNECTED 000110 constant fixed bin(17,0) initial dcl 13-50 set ref 640* 696 708 LS_MSG_DISCONNECTED 000107 constant fixed bin(17,0) initial dcl 13-51 set ref 340* LS_NEW_PROC_RESPONSE constant fixed bin(17,0) initial dcl 10-228 ref 395 LS_PROCESS_INFO_V1 000004 constant char(8) initial unaligned dcl 15-37 ref 250 LS_REQUEST_HEADER_VERSION_1 000016 constant char(8) initial unaligned dcl 10-63 ref 877 LS_TERMINATION_RESPONSE constant fixed bin(17,0) initial dcl 10-228 ref 395 419 LS_VALIDATE_OPTIONS_V1 000002 constant char(8) initial unaligned dcl 15-51 ref 267 757 N_WAIT_EVENTS constant fixed bin(17,0) initial dcl 175 ref 291 294 ONE_MILLION 000031 constant fixed bin(35,0) initial dcl 176 ref 484 OUR_NAME 000026 constant char(12) initial unaligned dcl 177 set ref 242* 258* 278* 303* 313* 320* 332* 381* 391* 397* 411* 415* 423* 431* 529* 544* 628* 634* 696* 713* 742* 814* 819* 834* 890* 894* TAKE_DUMP 000067 constant bit(1) initial dcl 178 set ref 242* 258* 303* 742* 890* TELL_INITIALIZER 000067 constant bit(1) initial dcl 180 set ref 234* 384* 434* 531* 599* 636* TELL_USER 000067 constant bit(1) initial dcl 181 set ref 242* 244* 258* 260* 303* 305* 381* 384* 434* 500* 531* 599* 634* 636* 742* 890* TERMINATE_EVENT constant fixed bin(17,0) initial dcl 179 ref 297 311 TRUE constant bit(1) initial unaligned dcl 173 ref 222 USER_MESSAGE_LS_CONNECTION_INFO_HANDLE 000000 constant bit(72) initial dcl 17-20 set ref 694* USER_MESSAGE_LS_CONNECTION_INFO_HANDLE_LOWER_18 constant bit(18) initial dcl 17-23 ref 690 a_brief parameter bit(1) unaligned dcl 754 ref 751 758 a_code parameter fixed bin(35,0) dcl 755 set ref 751 764* 767 a_info_length parameter fixed bin(18,0) unsigned dcl 655 ref 647 663 a_info_ptr parameter pointer dcl 654 in procedure "Send_user_message" ref 647 663 683 a_info_ptr parameter pointer dcl 68 in procedure "login_server_connection_" ref 55 194 a_message_handle parameter bit(72) dcl 725 ref 719 736 a_message_length parameter fixed bin(18,0) dcl 724 ref 719 732 a_reason parameter fixed bin(17,0) dcl 653 ref 647 681 696 708 accounting_info 4 based structure level 2 dcl 10-385 action_flags 2 based structure level 2 dcl 4-6 addr builtin function dcl 188 ref 209 209 231 231 248 271 271 289 364 583 583 704 727 764 764 874 886 after builtin function dcl 188 ref 483 any_other 000454 stack reference condition dcl 190 ref 206 as_user_message_add_info based structure level 1 dcl 1-5 set ref 729* as_user_message_add_info_ptr 000470 automatic pointer dcl 1-4 set ref 727* 729 730 731 732 733 734 735 736 737 738 741* as_user_message_info based structure level 1 dcl 2-8 as_user_message_info_ptr 000472 automatic pointer dcl 2-7 set ref 364* 365 366 367 373 378* 388 399 assign_connection 12 based entry variable level 2 dcl 11-25 ref 618 authorization 14 based bit(72) level 2 dcl 15-19 set ref 733 781* auto_disconnect_request 000242 automatic structure level 1 dcl 94 set ref 874 888 888 auto_event_wait_info 000306 automatic structure level 1 dcl 96 set ref 289 auto_ls_reply_message 000100 automatic structure level 1 dcl 869 set ref 886 auto_process_info 000316 automatic structure level 1 dcl 98 set ref 248 auto_user_message_add_info 000356 automatic structure level 1 dcl 100 set ref 727 auto_user_message_info 000406 automatic structure level 1 dcl 102 set ref 364 auto_validate_options 000450 automatic structure level 1 dcl 104 set ref 271 271 764 764 automatic_logout 23 based bit(1) level 3 packed unaligned dcl 10-385 ref 474 based_connection_info based bit(36) array dcl 109 in procedure "login_server_connection_" ref 841 based_connection_info based bit(36) array dcl 657 in procedure "Send_user_message" ref 683 before builtin function dcl 188 ref 482 brief 2 000450 automatic bit(1) level 3 in structure "auto_validate_options" packed unaligned dcl 104 in procedure "login_server_connection_" set ref 758* brief 23(02) based bit(1) level 3 in structure "login_server_termination_response" packed unaligned dcl 10-385 in procedure "login_server_connection_" set ref 477 505* channel_id 2 based fixed bin(71,0) array level 2 dcl 9-12 set ref 296* 297* channel_index 6 based fixed bin(17,0) level 2 dcl 8-7 set ref 309 311 313* ci 000474 automatic structure level 1 dcl 907 set ref 209 209 583 583 cleanup 000462 stack reference condition dcl 190 ref 205 371 668 clock builtin function dcl 188 ref 488 488 688 code 000100 automatic fixed bin(35,0) dcl 797 in procedure "Hangup_and_remove" set ref 811* 814* 819 819* code 000100 automatic fixed bin(35,0) dcl 73 in procedure "login_server_connection_" set ref 209* 210 238* 240 242* 255* 256 258* 271* 274 300* 301 303* 378* 379 381* 381 408* 411* 415 415* 583* 584 618* 628* 632 634* 696* 712* 713 713* 713 741* 742 742* code based fixed bin(35,0) level 2 in structure "ls_reply_message" dcl 10-445 in procedure "login_server_connection_" ref 894 code 000100 automatic fixed bin(35,0) level 2 in structure "auto_ls_reply_message" dcl 869 in procedure "Send_disconnect_request" set ref 888* 890 890* 894* common based structure level 2 dcl 13-40 condition_info based structure level 1 dcl 3-14 condition_info_header based structure level 1 dcl 4-6 condition_info_header_ptr 000526 automatic pointer dcl 4-4 set ref 225* 226 condition_info_version_1 constant fixed bin(17,0) initial dcl 3-30 ref 208 582 condition_name 3 000474 automatic varying char(32) level 2 dcl 907 set ref 213 232 584 connection_desc_ptr 2 based pointer level 2 dcl 14-24 set ref 195 connection_gone_event_channel 10 based fixed bin(71,0) level 2 dcl 14-24 set ref 854* connection_handle 43 based fixed bin(35,0) level 2 in structure "ls_connection_desc" dcl 12-19 in procedure "login_server_connection_" set ref 345* 408* 618* 680 811* connection_handle 22 based fixed bin(35,0) level 2 in structure "ls_connection_message" dcl 13-40 in procedure "login_server_connection_" set ref 680* connection_info 26 based bit(36) array level 2 in structure "ls_connection_message" dcl 13-40 in procedure "login_server_connection_" set ref 683* connection_info 12 based structure level 3 in structure "login_server_disconnect_request" dcl 10-188 in procedure "login_server_connection_" connection_info_len 42 based fixed bin(18,0) level 2 unsigned dcl 12-19 set ref 640* 841 connection_info_length 24 based fixed bin(18,0) level 2 unsigned dcl 13-40 set ref 670 674* 676 682* 683 683 694 694 701 connection_info_ptr 40 based pointer level 2 dcl 12-19 set ref 640* 841 841 connection_name 12 based char(32) level 4 in structure "login_server_disconnect_request" dcl 10-188 in procedure "login_server_connection_" set ref 884* connection_name 2 based char(32) level 3 in structure "ls_connection_message" dcl 13-40 in procedure "login_server_connection_" set ref 678* connection_name 000101 automatic char(32) unaligned dcl 74 in procedure "login_server_connection_" set ref 200* 278* 320* 332* 345* 391* 408* 411* 523* 678 696* 811* 814* 834* control 1(21) based bit(15) level 3 packed unaligned dcl 6-14 set ref 708* 710* convert_status_code_ 000014 constant entry external dcl 118 ref 447 cost 6 based float bin(27) level 3 dcl 10-385 set ref 488* cpm_$set_user_cl_intermediary 000132 constant entry external dcl 5-30 ref 238 cpu_minutes 000111 automatic fixed bin(17,0) dcl 75 set ref 485* 486 488 488* cpu_seconds 000112 automatic fixed bin(17,0) dcl 76 set ref 484* 485 486* 486 488* cpu_usage 4 based fixed bin(71,0) level 3 dcl 10-385 ref 484 currentsize builtin function dcl 188 ref 694 694 date_time_$format 000016 constant entry external dcl 119 ref 488 debug_mode 16 based bit(1) level 3 packed unaligned dcl 14-24 set ref 580 default_restart 2(01) based bit(1) level 3 packed unaligned dcl 4-6 ref 226 destination_info 12 based structure level 2 dcl 1-5 dial_event_message based structure level 1 dcl 6-14 dial_event_message_handle based bit(54) dcl 6-23 set ref 705* dial_event_message_ptr 000530 automatic pointer dcl 6-12 set ref 704* 705 707 708 710 disconnect 22 based entry variable level 2 dcl 11-25 ref 345 811 disconnect_event_channel 32 based fixed bin(71,0) level 2 dcl 12-19 set ref 296 618* 844 844* divide builtin function dcl 188 ref 484 485 dsa_log_manager_$trace_message 000020 constant entry external dcl 120 ref 278 320 332 391 411 628 696 814 834 dumpid 000113 automatic varying char(128) dcl 77 set ref 212* 213* 213 214* 214 216* 218* 218 219* 219 221* 221 231* error_message 000154 automatic char(100) dcl 78 set ref 447* 450* error_table_$action_not_performed 000066 external static fixed bin(35,0) dcl 144 ref 501 532 546 error_table_$no_message 000070 external static fixed bin(35,0) dcl 144 ref 381 error_table_$process_unknown 000072 external static fixed bin(35,0) dcl 144 ref 713 error_table_$unimplemented_version 000074 external static fixed bin(35,0) dcl 144 set ref 423* 544* event_message 000206 automatic fixed bin(71,0) dcl 79 set ref 703* 704 712* event_wait_info based structure level 1 dcl 8-7 event_wait_info_ptr 000532 automatic pointer dcl 8-5 set ref 289* 300* 309 311 313 event_wait_list based structure level 1 dcl 9-12 set ref 292 858 event_wait_list_n_channels 000534 automatic fixed bin(17,0) dcl 9-8 set ref 291* 292 292 event_wait_list_ptr 000536 automatic pointer dcl 9-10 set ref 203* 292* 294 295 296 297 300* 858 858 fatal_condition 000210 automatic bit(1) unaligned dcl 80 set ref 222* 226* 229 fatal_error 25 based bit(1) level 3 in structure "ls_process_info" packed unaligned dcl 15-19 in procedure "login_server_connection_" set ref 461* 551 554* fatal_error 23(04) based bit(1) level 3 in structure "login_server_termination_response" packed unaligned dcl 10-385 in procedure "login_server_connection_" ref 444 fault_recursion 16(03) based bit(1) level 3 packed unaligned dcl 14-24 set ref 591 593* find_condition_info_ 000022 constant entry external dcl 121 ref 209 583 flags 1(18) based structure level 2 in structure "dial_event_message" packed unaligned dcl 6-14 in procedure "login_server_connection_" flags 25 based structure level 2 in structure "ls_process_info" dcl 15-19 in procedure "login_server_connection_" flags 2 based structure level 2 in structure "as_user_message_info" dcl 2-8 in procedure "login_server_connection_" set ref 366* flags 22 based structure level 2 in structure "login_server_termination_response" dcl 10-385 in procedure "login_server_connection_" flags 2 000450 automatic structure level 2 in structure "auto_validate_options" dcl 104 in procedure "login_server_connection_" set ref 268* flags 16 based structure level 2 in structure "ls_cp_info" dcl 14-24 in procedure "login_server_connection_" fpe_caused_logout 23(05) based bit(1) level 3 packed unaligned dcl 10-385 ref 452 fpe_during_init 23(07) based bit(1) level 3 packed unaligned dcl 10-385 ref 455 fpe_loop 23(06) based bit(1) level 3 packed unaligned dcl 10-385 ref 458 get_control_point_id_ 000130 constant entry external dcl 5-13 ref 238 238 278 278 320 320 get_process_id_ 000024 constant entry external dcl 122 ref 198 get_system_free_area_ 000026 constant entry external dcl 123 ref 196 got_response 000211 automatic bit(1) unaligned dcl 81 set ref 368* 377 403* group_id 12 based char(32) level 3 packed unaligned dcl 1-5 set ref 734* handle 23 based bit(72) level 3 in structure "as_user_message_add_info" dcl 1-5 in procedure "login_server_connection_" set ref 736* handle 40 based bit(72) level 2 in structure "login_server_disconnect_request" dcl 10-188 in procedure "login_server_connection_" set ref 882* hcs_$wakeup 000030 constant entry external dcl 124 ref 712 854 header based structure level 2 in structure "login_server_disconnect_request" dcl 10-188 in procedure "login_server_connection_" header based structure level 2 in structure "login_server_new_proc_response" dcl 10-414 in procedure "login_server_connection_" header based structure level 2 in structure "login_server_termination_response" dcl 10-385 in procedure "login_server_connection_" header_version based char(8) level 2 dcl 10-54 set ref 877* hold 23(01) based bit(1) level 3 packed unaligned dcl 10-385 ref 498 info_ptr 14 000474 automatic pointer level 2 dcl 907 set ref 223 225 initial_ring 23 based fixed bin(17,0) level 2 dcl 15-19 set ref 737 initializer_handle 16 based bit(72) level 2 dcl 15-19 set ref 618* 871 882 io_error 000000 stack reference condition dcl 190 ref 596 598 803 805 io_module 22 based char(32) level 2 dcl 12-19 ref 679 io_module_name 12 based char(32) level 3 dcl 13-40 set ref 679* ioa_ 000032 constant entry external dcl 125 ref 762 iox_$control 000034 constant entry external dcl 126 ref 192 361 iox_$user_io 000126 external static pointer dcl 164 set ref 192* 361* ipc_$block 000036 constant entry external dcl 127 ref 300 ipc_$create_ev_chn 000040 constant entry external dcl 128 ref 255 ipc_$delete_ev_chn 000042 constant entry external dcl 129 ref 844 847 length builtin function dcl 188 ref 479 login_server_disconnect_request based structure level 1 dcl 10-188 login_server_new_proc_response based structure level 1 dcl 10-414 set ref 561 login_server_response_header based structure level 1 dcl 10-258 login_server_termination_response based structure level 1 dcl 10-385 set ref 436 536 login_service_entries based structure level 1 dcl 11-25 login_service_entries_ptr 000546 automatic pointer dcl 11-22 set ref 251* 271 345 408 615* 618 764 811 logout 22 based bit(1) level 3 dcl 10-385 ref 472 496 514 ls_connection_desc based structure level 1 dcl 12-19 set ref 850 ls_connection_desc_ptr 000550 automatic pointer dcl 12-17 set ref 195* 200 217 219 232 251 264 265 296 297 345 408 594 615 616 618 618 618 618 628 640 640 679 680 799 811 834* 838 841 841 841 844 844 847 847 850 884 ls_connection_message based structure level 1 dcl 13-40 set ref 670 674 676* 694 694 701 ls_connection_message_common based structure level 1 dcl 13-32 ref 690 690 ls_connection_message_info_length 000554 automatic fixed bin(18,0) unsigned dcl 13-27 set ref 663* 665* 674 674 682 683 ls_connection_message_ptr 000552 automatic pointer dcl 13-25 set ref 667* 670 670 674* 676 677 678 679 680 681 682 683 683 690 690 694 694 701 731 ls_convert_as_error_code_ 000044 constant entry external dcl 130 ref 447 447 465 465 ls_cp_info based structure level 1 dcl 14-24 set ref 231 231 856 ls_cp_info_ptr 000556 automatic pointer dcl 14-22 set ref 194* 195 201 231 231 242* 258* 271* 303* 313* 332 381* 391 397* 411 415* 423* 431* 442 514 523 529* 544* 580 591 593 628 634* 696 713* 742* 762 764* 799 819* 834 854 856 890* 894* ls_dump_ 000046 constant entry external dcl 131 ref 231 ls_message_$print 000050 constant entry external dcl 132 ref 450 452 455 458 469 474 488 514 517 523 553 597 804 ls_message_$print_error 000052 constant entry external dcl 133 ref 465 ls_message_table_$automatic_logout 000076 external static fixed bin(35,0) dcl 144 set ref 474* ls_message_table_$dial_logout 000100 external static fixed bin(35,0) dcl 144 set ref 514* ls_message_table_$dial_terminated 000102 external static fixed bin(35,0) dcl 144 set ref 517* ls_message_table_$dropped_by_mc 000104 external static fixed bin(35,0) dcl 144 set ref 523* ls_message_table_$fatal_error 000106 external static fixed bin(35,0) dcl 144 set ref 450* ls_message_table_$fpe_caused_logout 000110 external static fixed bin(35,0) dcl 144 set ref 452* ls_message_table_$fpe_during_init 000112 external static fixed bin(35,0) dcl 144 set ref 455* ls_message_table_$fpe_loop 000114 external static fixed bin(35,0) dcl 144 set ref 458* ls_message_table_$fpe_new_proc 000116 external static fixed bin(35,0) dcl 144 set ref 553* ls_message_table_$hangup 000120 external static fixed bin(35,0) dcl 144 set ref 804* ls_message_table_$logout 000122 external static fixed bin(35,0) dcl 144 set ref 488* ls_message_table_$offer_help 000124 external static fixed bin(35,0) dcl 144 set ref 469* ls_msg 1(20) based bit(1) level 3 packed unaligned dcl 6-14 set ref 707* ls_process_info based structure level 1 dcl 15-19 set ref 249* ls_process_info_ptr 000560 automatic pointer dcl 15-17 set ref 248* 249 250 265 271* 336 340 367 429 431 440 461 479 479 512 521 529 551 554 616* 618 618 618 618 628 686 696 705 712 712 733 735 737 764* 781 782 783 871 882 883 ls_reply_message based structure level 1 dcl 10-445 ls_reply_message_ptr 000544 automatic pointer dcl 10-443 set ref 886* 888* 894 ls_report_internal_error_ 000054 constant entry external dcl 134 ref 313 397 423 431 529 544 894 ls_report_subr_error_ 000056 constant entry external dcl 135 ref 242 258 303 381 415 634 713 742 819 890 ls_request_header based structure level 1 dcl 10-54 ls_request_ptr 000540 automatic pointer dcl 10-50 set ref 874* 875 876 877 878 879 880 882 883 884 888* ls_response_ptr 000542 automatic pointer dcl 10-254 set ref 370* 373 373 388* 389 399 421 423 429 431 436 444 447 447 452 455 458 465 465 465 469 472 474 477 484 488 496 498 505 514 536 542 544 561 781 782 783 ls_validate_options based structure level 1 dcl 15-44 mbz 2(02) 000450 automatic bit(34) level 3 packed unaligned dcl 104 set ref 760* message_access_class 6 based bit(72) level 3 dcl 1-5 set ref 733* message_handle 14 based bit(72) level 3 dcl 2-8 set ref 367* message_info 2 based structure level 2 in structure "as_user_message_add_info" dcl 1-5 in procedure "login_server_connection_" message_info 4 based structure level 2 in structure "as_user_message_info" dcl 2-8 in procedure "login_server_connection_" message_length 6 based fixed bin(18,0) level 3 in structure "as_user_message_info" dcl 2-8 in procedure "login_server_connection_" ref 373 399 message_length 4 based fixed bin(18,0) level 3 in structure "as_user_message_add_info" dcl 1-5 in procedure "login_server_connection_" set ref 732* message_ptr 2 based pointer level 3 in structure "as_user_message_add_info" dcl 1-5 in procedure "login_server_connection_" set ref 731* message_ptr 4 based pointer level 3 in structure "as_user_message_info" dcl 2-8 in procedure "login_server_connection_" ref 388 message_type based fixed bin(17,0) level 2 in structure "login_server_response_header" dcl 10-258 in procedure "login_server_connection_" ref 389 message_type 000212 automatic fixed bin(17,0) dcl 82 in procedure "login_server_connection_" set ref 389* 391* 395 395 397* 419 n_channels based fixed bin(17,0) level 2 dcl 9-12 set ref 292* 294* 858 name 2 based char(32) level 2 dcl 12-19 set ref 200 219 618 628* 884 new_authorization 4 based bit(72) level 2 dcl 10-414 ref 781 new_process_id 10 based bit(36) level 2 dcl 10-414 ref 782 new_start_event_channel 6 based fixed bin(71,0) level 2 dcl 10-414 ref 783 no_io_switches 16(04) based bit(1) level 3 packed unaligned dcl 14-24 set ref 442 514 523 762 799 not_first 2(01) 000450 automatic bit(1) level 3 packed unaligned dcl 104 set ref 759* null builtin function dcl 188 ref 192 192 196 203 209 209 217 223 232 278 278 320 320 332 332 336 340 340 361 361 370 373 391 391 411 411 583 583 594 628 628 663 667 670 696 696 799 814 814 834 834 838 841 858 offer_help 23(08) based bit(1) level 3 packed unaligned dcl 10-385 ref 469 our_process_id 000010 internal static bit(36) initial dcl 182 set ref 198 198* 854* pad 1 based bit(36) level 2 dcl 9-12 set ref 295* pad1 5 based bit(36) level 2 dcl 10-54 set ref 880* person 000213 automatic char(22) unaligned dcl 83 set ref 482* 488* person_project 000221 automatic char(30) unaligned dcl 84 set ref 479* 482 483 process_group_id 2 based char(32) level 2 packed unaligned dcl 15-19 set ref 479 479 618* process_id 10 based bit(36) level 2 in structure "login_server_termination_response" dcl 10-385 in procedure "login_server_connection_" set ref 429 431* process_id 22 based bit(36) level 3 in structure "as_user_message_add_info" dcl 1-5 in procedure "login_server_connection_" set ref 735* process_id 22 based bit(36) level 2 in structure "ls_process_info" dcl 15-19 in procedure "login_server_connection_" set ref 429 431* 618* 628* 696* 712* 735 782* 883 process_id 42 based bit(36) level 2 in structure "login_server_disconnect_request" dcl 10-188 in procedure "login_server_connection_" set ref 883* process_info_ptr 44 based pointer level 2 dcl 12-19 set ref 265* 616 project 000231 automatic char(9) unaligned dcl 85 set ref 483* 488* reader_deletes 26 based bit(1) level 3 dcl 1-5 set ref 738* reason 23 based fixed bin(17,0) level 2 dcl 13-40 set ref 681* reply_event_channel 6 based fixed bin(71,0) level 2 dcl 10-54 set ref 879* reply_handle 10 based bit(72) level 2 dcl 10-54 set ref 878* request_type 4 based fixed bin(17,0) level 2 dcl 10-54 set ref 875* request_version 2 based char(8) level 2 dcl 10-54 set ref 876* ring 25 based fixed bin(3,0) level 3 dcl 1-5 set ref 737* rtrim builtin function dcl 188 ref 213 219 479 send_ls_request_ 000060 constant entry external dcl 137 ref 888 server_handle 20 based bit(72) level 2 dcl 15-19 set ref 367 service_entries_ptr 36 based pointer level 2 dcl 12-19 ref 251 615 size builtin function dcl 188 ref 690 690 888 888 start_event_channel 12 based fixed bin(71,0) level 2 dcl 15-19 set ref 712* 783* start_flag parameter bit(1) unaligned dcl 578 set ref 573 586* status_code 21 based fixed bin(35,0) level 2 dcl 10-385 set ref 447* 447* 465 465* 465* string builtin function dcl 188 set ref 268* 366* substr builtin function dcl 188 ref 479 689 system_area based area(1024) dcl 111 ref 292 373 399 436 536 561 670 674 701 841 850 856 858 system_areap 000012 internal static pointer initial dcl 183 set ref 196 196* 292 373 378* 399 436 536 561 670 674 701 841 850 856 858 tell_initializer parameter bit(1) dcl 796 ref 790 808 tell_user parameter bit(1) dcl 795 in procedure "Hangup_and_remove" ref 790 799 tell_user 000234 automatic bit(1) dcl 86 in procedure "login_server_connection_" set ref 232* 234* terminate_event_channel 34 based fixed bin(71,0) level 2 in structure "ls_connection_desc" dcl 12-19 in procedure "login_server_connection_" set ref 264* 297 618* 847 847* terminate_event_channel 000236 automatic fixed bin(71,0) dcl 87 in procedure "login_server_connection_" set ref 255* 264 time_now 000100 automatic fixed bin(71,0) dcl 659 set ref 688* 689 trace 16(02) based bit(1) level 3 packed unaligned dcl 14-24 set ref 201 332 391 411 628 696 834 trace_switch 000240 automatic bit(1) unaligned dcl 88 set ref 201* 278 320 814 unassign_connection 16 based entry variable level 2 dcl 11-25 ref 408 unique_part_of_handle 000102 automatic bit(54) dcl 660 set ref 689* 690 705 unspec builtin function dcl 188 set ref 249* 676* 689 729* usage_type 24 based fixed bin(17,0) level 2 dcl 15-19 set ref 340 440 512 521 529* 618* 686 705 user_connection_info based structure level 1 dcl 10-65 user_message based bit(36) array dcl 113 ref 373 399 user_message_$read_message 000062 constant entry external dcl 138 ref 378 user_message_priv_$add_message 000064 constant entry external dcl 139 ref 741 validate_code 000241 automatic fixed bin(35,0) dcl 89 set ref 501* 505* 509* 518* 525* 532* 537 546* 558* 563 validate_user 32 based entry variable level 2 dcl 11-25 ref 271 764 version based char(8) level 2 in structure "as_user_message_add_info" dcl 1-5 in procedure "login_server_connection_" set ref 730* version 2 000474 automatic fixed bin(17,0) level 2 in structure "ci" dcl 907 in procedure "login_server_connection_" set ref 208* 582* version based char(8) level 2 in structure "ls_process_info" dcl 15-19 in procedure "login_server_connection_" set ref 250* version 2 based char(8) level 3 in structure "login_server_termination_response" dcl 10-385 in procedure "login_server_connection_" set ref 421 423* version based char(8) level 2 in structure "as_user_message_info" dcl 2-8 in procedure "login_server_connection_" set ref 365* version based char(8) level 3 in structure "ls_connection_message" dcl 13-40 in procedure "login_server_connection_" set ref 677* version 000450 automatic char(8) level 2 in structure "auto_validate_options" dcl 104 in procedure "login_server_connection_" set ref 267* 757* version 2 based char(8) level 3 in structure "login_server_new_proc_response" dcl 10-414 in procedure "login_server_connection_" set ref 542 544* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. AEP_BIN_DATA_CLASS internal static varying char(16) initial dcl 7-46 AEP_ENTRY_TYPE internal static fixed bin(17,0) initial dcl 7-22 AEP_NO_CONVERT_DATA_TYPE internal static fixed bin(17,0) initial dcl 7-52 AEP_UNCONVERTED_DATA_CLASS internal static varying char(16) initial dcl 7-47 CONNECT_REQ internal static fixed bin(17,0) initial dcl 10-457 CREATE_REQ internal static fixed bin(17,0) initial dcl 10-457 CXI_CALLER_TYPE internal static fixed bin(17,0) initial dcl 7-28 DESTROY_REQ internal static fixed bin(17,0) initial dcl 10-457 DIALS_ALLOWED internal static bit(15) initial dcl 6-29 DIALS_DENIED internal static bit(15) initial dcl 6-29 DSAC_CALLER_TYPE internal static fixed bin(17,0) initial dcl 7-30 DSA_BIN_DATA_CLASS internal static varying char(16) initial dcl 7-48 ENTERP_REQ internal static fixed bin(17,0) initial dcl 10-457 ENTER_REQ internal static fixed bin(17,0) initial dcl 10-457 ERROR_ENTRY_TYPE internal static fixed bin(17,0) initial dcl 7-23 FATAL_LOG_SEVERITY internal static fixed bin(17,0) initial dcl 7-42 LIST_REQ internal static fixed bin(17,0) initial dcl 10-457 LOGIN_REQ internal static fixed bin(17,0) initial dcl 10-457 LOGIN_SERVER_DIAL_RESPONSE_VERSION_1 internal static char(8) initial unaligned dcl 10-378 LOGIN_SERVER_LIST_RESPONSE_VERSION_1 internal static char(8) initial unaligned dcl 10-360 LOGIN_SERVER_OPERATOR_REQUEST_VERSION_1 internal static char(8) initial unaligned dcl 10-222 LOGIN_SERVER_OPERATOR_RESPONSE_VERSION_1 internal static char(8) initial unaligned dcl 10-438 LOGIN_SERVER_PROCESS_RESPONSE_VERSION_1 internal static char(8) initial unaligned dcl 10-341 LS_CONNECTION_DESC_V1 internal static char(8) initial unaligned dcl 12-35 LS_CP_INFO_V1 internal static char(8) initial unaligned dcl 14-42 LS_DIAL_OUT_USAGE internal static fixed bin(17,0) initial dcl 16-14 LS_DIAL_REQUEST internal static fixed bin(17,0) initial dcl 10-31 LS_DIAL_REQUEST_VERSION_1 internal static char(8) initial unaligned dcl 10-180 LS_DIAL_RESPONSE internal static fixed bin(17,0) initial dcl 10-228 LS_ENDPOINT_USAGE internal static fixed bin(17,0) initial dcl 16-14 LS_ENTRIES_V1 internal static char(8) initial unaligned dcl 11-75 LS_LIST_REQUEST internal static fixed bin(17,0) initial dcl 10-31 LS_LIST_REQUEST_VERSION_1 internal static char(8) initial unaligned dcl 10-160 LS_LIST_RESPONSE internal static fixed bin(17,0) initial dcl 10-228 LS_LOGOUT_REQUEST internal static fixed bin(17,0) initial dcl 10-31 LS_LOGOUT_REQUEST_VERSION_1 internal static char(8) initial unaligned dcl 10-203 LS_OPERATOR_REQUEST internal static fixed bin(17,0) initial dcl 10-31 LS_OPERATOR_RESPONSE internal static fixed bin(17,0) initial dcl 10-228 LS_PROCESS_REQUEST internal static fixed bin(17,0) initial dcl 10-31 LS_PROCESS_REQUEST_VERSION_1 internal static char(8) initial unaligned dcl 10-150 LS_PROCESS_RESPONSE internal static fixed bin(17,0) initial dcl 10-228 LS_REQUEST_TYPES internal static char(10) initial array unaligned dcl 10-40 LS_RESPONSE_TYPES internal static char(10) initial array unaligned dcl 10-238 LS_SLAVE_ATTACH_USAGE internal static fixed bin(17,0) initial dcl 16-14 LS_UNKNOWN_RESPONSE internal static fixed bin(17,0) initial dcl 10-228 LS_USAGE_VALUES internal static varying char(16) initial array dcl 16-22 LS_VALIDATE_REQUEST internal static fixed bin(17,0) initial dcl 10-31 LS_VALIDATE_REQUEST_VERSION_1 internal static char(8) initial unaligned dcl 10-97 LS_VALIDATE_RESPONSE internal static fixed bin(17,0) initial dcl 10-228 LS_VALIDATE_RESPONSE_VERSION_1 internal static char(8) initial unaligned dcl 10-297 NETWORK_CONNECTION_DSA_FILE_TRANSFER internal static fixed bin(17,0) initial dcl 10-471 NETWORK_CONNECTION_LOGIN internal static fixed bin(17,0) initial dcl 10-471 NEW_PROC_REQ internal static fixed bin(17,0) initial dcl 10-457 SC_CALLER_TYPE internal static fixed bin(17,0) initial dcl 7-29 SERIOUS_LOG_SEVERITY internal static fixed bin(17,0) initial dcl 7-41 SYSTEM_MESSAGE_HANDLE internal static bit(72) initial dcl 17-26 TM_CALLER_TYPE internal static fixed bin(17,0) initial dcl 7-33 TRACE_ENTRY_TYPE internal static fixed bin(17,0) initial dcl 7-24 UFT_SYSTEM_CALLER_TYPE internal static fixed bin(17,0) initial dcl 7-32 UFT_USER_CALLER_TYPE internal static fixed bin(17,0) initial dcl 7-31 USER_CALLER_TYPE internal static fixed bin(17,0) initial dcl 7-35 WARN_LOG_SEVERITY internal static fixed bin(17,0) initial dcl 7-40 condition_info_ptr automatic pointer dcl 3-10 cpm_$block 000000 constant entry external dcl 5-26 cpm_$create 000000 constant entry external dcl 5-16 cpm_$destroy 000000 constant entry external dcl 5-19 cpm_$generate_call 000000 constant entry external dcl 5-35 cpm_$generate_call_preferred 000000 constant entry external dcl 5-35 cpm_$generate_call_when_ready 000000 constant entry external dcl 5-35 cpm_$get_control_point_meters 000000 constant entry external dcl 5-50 cpm_$get_preferred_control_point 000000 constant entry external dcl 5-41 cpm_$get_scheduler_meters 000000 constant entry external dcl 5-52 cpm_$get_user_cl_intermediary 000000 constant entry external dcl 5-30 cpm_$nulle 000000 constant entry external dcl 5-55 cpm_$pop_preferred_control_point 000000 constant entry external dcl 5-47 cpm_$push_preferred_control_point 000000 constant entry external dcl 5-45 cpm_$scheduler 000000 constant entry external dcl 5-28 cpm_$set_preferred_control_point 000000 constant entry external dcl 5-43 cpm_$start 000000 constant entry external dcl 5-19 cpm_$stop 000000 constant entry external dcl 5-19 cpm_$wakeup 000000 constant entry external dcl 5-19 login_server_dial_request based structure level 1 dcl 10-170 login_server_dial_response based structure level 1 dcl 10-366 login_server_list_request based structure level 1 dcl 10-156 login_server_list_response based structure level 1 dcl 10-347 login_server_list_response_n_processes automatic fixed bin(17,0) dcl 10-358 login_server_logout_request based structure level 1 dcl 10-199 login_server_operator_request based structure level 1 dcl 10-214 login_server_operator_response based structure level 1 dcl 10-426 login_server_process_request based structure level 1 dcl 10-103 login_server_process_response based structure level 1 dcl 10-303 login_server_validate_request based structure level 1 dcl 10-76 login_server_validate_response based structure level 1 dcl 10-267 ls_process_request_arg_string_length automatic fixed bin(21,0) dcl 10-148 ls_process_request_n_args automatic fixed bin(17,0) dcl 10-147 ls_process_response_accounting_message_length automatic fixed bin(17,0) dcl 10-339 ls_validate_options_ptr automatic pointer dcl 15-42 NAMES DECLARED BY EXPLICIT CONTEXT. Cl_intermediary 004057 constant entry internal dcl 573 ref 238 238 Disconnect_handler 002001 constant entry internal dcl 327 ref 309 EXIT 001705 constant label dcl 320 ref 261 306 349 385 437 537 563 603 637 Give_connection_to_process 004217 constant entry internal dcl 607 ref 285 770 785 Hangup_and_remove 005360 constant entry internal dcl 790 ref 234 244 260 305 384 434 500 531 599 636 IGNORE_IO_ERR 004201 constant label dcl 598 in procedure "Cl_intermediary" ref 596 IGNORE_IO_ERR 005432 constant label dcl 805 in procedure "Hangup_and_remove" ref 803 Remove_connection 005626 constant entry internal dcl 829 ref 205 276 348 767 824 Revalidate 005242 constant entry internal dcl 751 ref 505 518 525 Send_actual_message 005121 constant entry internal dcl 719 ref 690 694 Send_disconnect_request 006035 constant entry internal dcl 864 ref 338 808 Send_user_message 004472 constant entry internal dcl 647 ref 340 640 Start_new_process 005335 constant entry internal dcl 775 ref 557 TERMINATE_FINISHED 003036 constant label dcl 434 ref 426 Terminate_handler 002153 constant entry internal dcl 353 ref 311 login_server_connection_ 000543 constant entry external dcl 55 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 7136 7272 6253 7146 Length 10222 6253 134 714 663 4 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME login_server_connection_ 534 external procedure is an external procedure. on unit on line 205 64 on unit on unit on line 206 92 on unit Disconnect_handler internal procedure shares stack frame of external procedure login_server_connection_. Terminate_handler 262 internal procedure enables or reverts conditions. on unit on line 371 64 on unit Cl_intermediary 104 internal procedure is assigned to an entry variable, and enables or reverts conditions. on unit on line 596 64 on unit Give_connection_to_process 158 internal procedure is called by several nonquick procedures. Send_user_message 192 internal procedure enables or reverts conditions. on unit on line 668 64 on unit Send_actual_message internal procedure shares stack frame of internal procedure Send_user_message. Revalidate internal procedure shares stack frame of internal procedure Terminate_handler. Start_new_process internal procedure shares stack frame of internal procedure Terminate_handler. Hangup_and_remove 140 internal procedure enables or reverts conditions. on unit on line 803 64 on unit Remove_connection 120 internal procedure is called by several nonquick procedures. Send_disconnect_request 104 internal procedure is called by several nonquick procedures. STORAGE FOR INTERNAL STATIC VARIABLES. LOC IDENTIFIER BLOCK NAME 000010 our_process_id login_server_connection_ 000012 system_areap login_server_connection_ STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME Hangup_and_remove 000100 code Hangup_and_remove Send_disconnect_request 000100 auto_ls_reply_message Send_disconnect_request Send_user_message 000100 time_now Send_user_message 000102 unique_part_of_handle Send_user_message login_server_connection_ 000100 code login_server_connection_ 000101 connection_name login_server_connection_ 000111 cpu_minutes login_server_connection_ 000112 cpu_seconds login_server_connection_ 000113 dumpid login_server_connection_ 000154 error_message login_server_connection_ 000206 event_message login_server_connection_ 000210 fatal_condition login_server_connection_ 000211 got_response login_server_connection_ 000212 message_type login_server_connection_ 000213 person login_server_connection_ 000221 person_project login_server_connection_ 000231 project login_server_connection_ 000234 tell_user login_server_connection_ 000236 terminate_event_channel login_server_connection_ 000240 trace_switch login_server_connection_ 000241 validate_code login_server_connection_ 000242 auto_disconnect_request login_server_connection_ 000306 auto_event_wait_info login_server_connection_ 000316 auto_process_info login_server_connection_ 000356 auto_user_message_add_info login_server_connection_ 000406 auto_user_message_info login_server_connection_ 000450 auto_validate_options login_server_connection_ 000470 as_user_message_add_info_ptr login_server_connection_ 000472 as_user_message_info_ptr login_server_connection_ 000474 ci login_server_connection_ 000526 condition_info_header_ptr login_server_connection_ 000530 dial_event_message_ptr login_server_connection_ 000532 event_wait_info_ptr login_server_connection_ 000534 event_wait_list_n_channels login_server_connection_ 000536 event_wait_list_ptr login_server_connection_ 000540 ls_request_ptr login_server_connection_ 000542 ls_response_ptr login_server_connection_ 000544 ls_reply_message_ptr login_server_connection_ 000546 login_service_entries_ptr login_server_connection_ 000550 ls_connection_desc_ptr login_server_connection_ 000552 ls_connection_message_ptr login_server_connection_ 000554 ls_connection_message_info_length login_server_connection_ 000556 ls_cp_info_ptr login_server_connection_ 000560 ls_process_info_ptr login_server_connection_ THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. r_e_as r_ne_as call_ent_var_desc call_ent_var call_ext_out_desc call_ext_out call_int_this call_int_other return_mac tra_ext_1 bound_ck_signal enable_op ext_entry int_entry divide_fx3 op_alloc_ op_freen_ clock_mac THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. convert_status_code_ cpm_$set_user_cl_intermediary date_time_$format dsa_log_manager_$trace_message find_condition_info_ get_control_point_id_ get_process_id_ get_system_free_area_ hcs_$wakeup ioa_ iox_$control ipc_$block ipc_$create_ev_chn ipc_$delete_ev_chn ls_convert_as_error_code_ ls_dump_ ls_message_$print ls_message_$print_error ls_report_internal_error_ ls_report_subr_error_ send_ls_request_ user_message_$read_message user_message_priv_$add_message THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$action_not_performed error_table_$no_message error_table_$process_unknown error_table_$unimplemented_version iox_$user_io ls_message_table_$automatic_logout ls_message_table_$dial_logout ls_message_table_$dial_terminated ls_message_table_$dropped_by_mc ls_message_table_$fatal_error ls_message_table_$fpe_caused_logout ls_message_table_$fpe_during_init ls_message_table_$fpe_loop ls_message_table_$fpe_new_proc ls_message_table_$hangup ls_message_table_$logout ls_message_table_$offer_help LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 55 000540 192 000550 194 000603 195 000607 196 000611 198 000624 200 000640 201 000644 203 000651 205 000653 206 000675 208 000711 209 000714 210 000732 212 000735 213 000742 214 000767 215 001001 216 001002 217 001007 218 001013 219 001022 221 001047 222 001056 223 001060 225 001064 226 001066 229 001073 231 001075 232 001123 234 001140 236 001151 238 001152 240 001177 242 001201 244 001240 245 001250 248 001251 249 001253 250 001256 251 001261 255 001264 256 001275 258 001277 260 001336 261 001346 264 001347 265 001352 267 001354 268 001356 271 001357 274 001376 276 001400 278 001404 282 001477 285 001500 289 001504 291 001506 292 001510 294 001522 295 001524 296 001525 297 001532 300 001536 301 001551 303 001553 305 001613 306 001623 309 001624 311 001632 313 001641 318 001704 320 001705 325 002000 327 002001 332 002002 336 002064 338 002070 340 002074 345 002115 348 002145 349 002151 353 002152 361 002160 364 002213 365 002217 366 002222 367 002223 368 002230 370 002231 371 002233 373 002247 375 002257 377 002260 378 002263 379 002276 381 002301 384 002343 385 002354 388 002357 389 002362 391 002364 395 002451 397 002457 399 002522 400 002525 403 002526 404 002530 408 002531 411 002560 415 002643 419 002710 421 002714 423 002721 426 002763 429 002764 431 002770 434 003036 436 003047 437 003052 440 003055 442 003060 444 003064 447 003067 450 003116 452 003134 455 003152 458 003170 461 003206 463 003212 465 003213 469 003237 472 003255 474 003261 477 003275 479 003302 482 003320 483 003330 484 003346 485 003353 486 003355 488 003361 496 003503 498 003507 500 003512 501 003523 503 003527 505 003530 507 003542 509 003543 510 003544 512 003545 514 003547 517 003567 518 003600 519 003613 521 003614 523 003616 525 003637 526 003652 529 003653 531 003716 532 003727 536 003733 537 003736 539 003744 542 003745 544 003752 546 004014 548 004020 551 004021 553 004025 554 004036 557 004042 558 004043 561 004045 563 004047 570 004055 573 004056 580 004064 582 004071 583 004073 584 004111 586 004121 587 004126 591 004127 593 004133 594 004135 596 004141 597 004160 598 004201 599 004202 603 004213 607 004216 615 004224 616 004231 618 004233 628 004305 632 004376 634 004401 636 004440 637 004451 640 004454 643 004470 647 004471 663 004477 665 004510 667 004512 668 004514 670 004530 672 004543 674 004544 676 004557 677 004566 678 004571 679 004574 680 004600 681 004602 682 004605 683 004607 686 004640 688 004645 689 004647 690 004652 694 004663 696 004672 701 004773 703 005001 704 005004 705 005006 707 005015 708 005017 710 005030 712 005034 713 005051 717 005120 719 005121 727 005123 729 005127 730 005132 731 005136 732 005140 733 005143 734 005150 735 005153 736 005155 737 005162 738 005164 741 005166 742 005177 745 005241 751 005242 757 005244 758 005247 759 005253 760 005255 762 005257 764 005274 767 005316 770 005327 772 005334 775 005335 781 005336 782 005345 783 005347 785 005351 786 005356 790 005357 799 005365 803 005402 804 005421 805 005432 808 005433 811 005444 814 005474 819 005555 824 005617 825 005624 829 005625 834 005633 838 005720 841 005725 844 005735 847 005753 850 005771 854 005774 856 006016 858 006021 861 006033 864 006034 871 006042 874 006050 875 006052 876 006054 877 006057 878 006062 879 006065 880 006067 882 006070 883 006075 884 006077 886 006103 888 006105 890 006123 894 006171 898 006232 ----------------------------------------------------------- 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