COMPILATION LISTING OF SEGMENT external_mowse_ Compiled by: Multics PL/I Compiler, Release 29, of July 28, 1986 Compiled at: Honeywell Bull, Phx. Az., Sys-M Compiled on: 08/07/87 1507.6 mst Fri Options: optimize map 1 /****^ *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Bull Inc., 1987 * 4* * * 5* * Copyright, (C) Honeywell Information Systems Inc., 1986 * 6* * * 7* *********************************************************** */ 8 9 /****^ HISTORY COMMENTS: 10* 1) change(86-08-27,Smith), approve(87-07-15,MCR7580), 11* audit(87-07-30,RBarstad), install(87-08-07,MR12.1-1075): 12* Created. 13* 2) change(86-10-22,Smith), approve(87-07-15,MCR7580), 14* audit(87-07-30,RBarstad), install(87-08-07,MR12.1-1075): 15* Modified code to handle the special mowse message responsible for 16* resetting, suspending, resuming and terminating a capability. 17* 3) change(86-10-22,Smith), approve(87-07-15,MCR7580), 18* audit(87-07-30,RBarstad), install(87-08-07,MR12.1-1075): 19* Modified code to handle messages with invalid destinations. 20* 4) change(86-11-14,Flegel), approve(87-07-15,MCR7580), 21* audit(87-07-30,RBarstad), install(87-08-07,MR12.1-1075): 22* Changed method of implementation of messages for suspended applications. 23* 5) change(86-11-27,Flegel), approve(86-11-27,MCR7580), 24* audit(87-07-30,RBarstad), install(87-08-07,MR12.1-1075): 25* Approved. 26* 6) change(86-11-27,Flegel), approve(86-11-27,MCR7580), 27* audit(87-07-30,RBarstad), install(87-08-07,MR12.1-1075): 28* Clear the application output buffers when a FAIL_CAPABILITY message is 29* received. 30* 7) change(86-12-10,Flegel), approve(86-12-10,MCR7580), 31* audit(87-07-30,RBarstad), install(87-08-07,MR12.1-1075): 32* Replaced signalling of mowse_fatal_error with a call to fatal_mowse_trap_. 33* END HISTORY COMMENTS */ 34 35 /* format: style4,indattr,ifthen,^indcomtxt,thendo,^indproc,^indblkcom,initcol1,declareind8,dclind4,struclvlind3,comcol55 */ 36 external_mowse_: 37 proc (p_mowse_mcb_ptr, p_major, p_minor, p_mess_ptr, p_mess_len, 38 p_ecode); 39 40 /* : PROGRAM FUNCTION 41* 42*Places messages in the buffers associated with the capability to which a 43*message is 'addressed'. Should a message be longer than the pre-defined 44*packet size the routine handles the reassembling of the complete message from 45*the several partial messages transmitted. The routine also handles the 46*disassembly of long messages destined for some remote capability. A 47*functionally identical routine exists on remote system within the mowse 48*environment. */ 49 50 /* : NOTES 51**/ 52 53 54 /* INPUT PARAMETERS */ 55 dcl p_mowse_mcb_ptr ptr parameter; /* mcb for mowse_io_ */ 56 dcl p_major fixed bin parameter; /* Major cap number */ 57 dcl p_minor fixed bin parameter; /* Minor cap number */ 58 dcl p_mess_ptr ptr parameter; /* Message pointer */ 59 dcl p_mess_len fixed bin parameter; /* Message length */ 60 dcl p_ecode fixed bin (35) parameter; /* Error code */ 61 62 63 /* SYSTEM CALL SUPPORT */ 64 dcl ws_error_$input_buffer_overflow 65 fixed bin (35) ext static; 66 67 /* EXTERNAL CALLS */ 68 dcl prepare_trace_ entry (ptr, fixed bin, ptr, fixed bin); 69 dcl mowse_error_handler_ entry (ptr, fixed bin, fixed bin); 70 dcl send_mowse_message_ entry (ptr, fixed bin, fixed bin, fixed bin, 71 fixed bin, fixed bin, fixed bin, ptr, 72 fixed bin, fixed bin, fixed bin (35)); 73 dcl get_mowse_info_ptr_ entry (ptr, ptr, fixed bin (35)); 74 dcl send_outbuff_data_ entry (ptr, fixed bin, fixed bin, fixed bin, 75 fixed bin (35)); 76 dcl send_msg_ entry (ptr, fixed bin, fixed bin, ptr, 77 fixed bin, fixed bin, fixed bin (35)); 78 dcl capability_$pack entry (fixed bin, fixed bin, fixed bin, 79 fixed bin (35)); 80 dcl message_manager_ entry (ptr, fixed bin, fixed bin, ptr, 81 fixed bin, fixed bin (35)); 82 dcl release_outbuffer_ entry (ptr); 83 dcl fatal_mowse_trap_ entry (fixed bin (35)); 84 85 /* EXTERNAL CALL SUPPORT */ 86 dcl ws_error_$recursive_background_error 87 fixed bin (35) ext static; 88 89 /* MISC VARIABLES */ 90 dcl mowse_info_ptr ptr; /* Pointer to mowse info structure */ 91 dcl destination fixed bin; /* Destination of failure message */ 92 dcl mcb_ptr ptr; 93 dcl msg_type fixed bin; 94 95 /* BUILTINS */ 96 dcl null builtin; 97 dcl rank builtin; 98 99 /* STRUCTURES */ 100 101 /* CONDITIONS */ 102 dcl any_other condition; 103 104 /* CONSTANTS */ 105 dcl TRUE bit (1) int static options (constant) init ("1"b); 106 dcl FALSE bit (1) int static options (constant) init ("0"b); 107 108 /* */ 109 110 /* INITIALIZATION */ 111 p_ecode = 0; 112 call get_mowse_info_ptr_ (p_mowse_mcb_ptr, mowse_info_ptr, 113 p_ecode); 114 if p_ecode ^= 0 then 115 return; 116 117 /* Establish handler */ 118 119 mowse_info_ptr -> mowse_info.mowse_flags.error_handled = FALSE; 120 on any_other 121 begin; 122 call mowse_error_handler_ (p_mowse_mcb_ptr, p_major, 123 p_minor); 124 goto CAPABILITY_ERROR_RETURN; 125 end; 126 127 /* MAIN */ 128 129 /* : If message_ptr is null, return */ 130 131 if p_mess_ptr = null then 132 return; 133 134 msg_type = rank (p_mess_ptr -> event_message.header.msg_type); 135 136 /* : Call trace message to print message received */ 137 138 if mowse_info_ptr -> mowse_info.mowse_flags.trace = TRUE then 139 call prepare_trace_ (p_mess_ptr, p_mess_len, 140 mowse_info_ptr -> mowse_info.mowse_flags.trace_file_iocb, 141 p_minor); 142 143 /* : If invalid application, send a fail to source */ 144 145 if (p_major < MINIMUM_CAT_ENTRY) | (p_major > MAXIMUM_CAT_ENTRY) 146 then do; 147 call send_fail (p_mess_ptr, p_minor, p_mowse_mcb_ptr, p_ecode); 148 if p_ecode ^= 0 then 149 return; 150 end; 151 152 /* : If destination MCB does not exist, send fail to source */ 153 154 mcb_ptr = 155 mowse_info_ptr -> mowse_info.local_cat (p_major).mcb_ptr; 156 if mcb_ptr = null then do; 157 call send_fail (p_mess_ptr, p_minor, p_mowse_mcb_ptr, p_ecode); 158 if p_ecode ^= 0 then 159 return; 160 end; 161 162 /* : MORE message */ 163 164 if msg_type = MORE then do; 165 call external_more (mowse_info_ptr, mcb_ptr, p_mess_ptr, 166 p_mess_len, p_ecode); 167 return; 168 end; 169 170 /* : CONTINUE message */ 171 172 if msg_type = CONTINUE then do; 173 call external_continue (mcb_ptr, p_mowse_mcb_ptr, 174 p_mess_ptr, p_mess_len, p_major, p_minor, p_ecode); 175 return; 176 end; 177 178 /* : TERMINATE_APPLICATION message */ 179 180 if p_minor = TERMINATE_APPLICATION then do; 181 call external_terminate (mowse_info_ptr, mcb_ptr, p_mess_ptr, 182 p_mess_len, p_ecode); 183 return; 184 end; 185 186 /* : RESET_APPLICATION message */ 187 188 if p_minor = RESET_APPLICATION then do; 189 call external_reset (mcb_ptr, p_major, mowse_info_ptr, 190 p_mess_ptr, p_mess_len, p_ecode); 191 return; 192 end; 193 194 /* : FAIL_CAPABILITY or SYSTEM_ERROR message */ 195 196 if p_minor = FAIL_CAPABILITY | p_minor = SYSTEM_ERROR then do; 197 call external_fail (mcb_ptr, p_major, mowse_info_ptr, 198 p_mess_ptr, p_mess_len, p_ecode); 199 return; 200 end; 201 202 /* : SUSPEND_APPLICATION message */ 203 204 if p_minor = SUSPEND_APPLICATION then do; 205 call external_suspend (mcb_ptr, mowse_info_ptr, p_mess_ptr, 206 p_mess_len, p_major, p_ecode); 207 return; 208 end; 209 210 /* : RESUME_APPLICATION message */ 211 212 if p_minor = RESUME_APPLICATION then do; 213 call external_resume (mcb_ptr, mowse_info_ptr, p_mess_ptr, 214 p_mess_len, p_ecode); 215 return; 216 end; 217 218 /* : DEFAULT message (any other) */ 219 220 call message_processor (mowse_info_ptr, mcb_ptr, p_mess_ptr, 221 p_mess_len, p_minor, p_ecode); 222 223 p_ecode = 0; 224 return; 225 226 /* : Termination of application performed in the event of an "any_other". 227* This is the control point of a non-local goto in the event of any 228* condition signalled by the capability. The capability is unwound 229* from the stack (via the goto) and is removed from MOWSE because of 230* its error. */ 231 232 CAPABILITY_ERROR_RETURN: 233 234 p_ecode = 0; 235 call capability_$pack ( 236 rank (p_mess_ptr -> last_message.header.source_system), 237 rank (p_mess_ptr -> last_message.header.source_major), 238 destination, p_ecode); 239 240 if p_ecode = 0 & 241 rank (p_mess_ptr -> last_message.header.source_major) 242 ^= INTERNAL 243 then 244 call send_msg_ (p_mowse_mcb_ptr, destination, FAIL_CAPABILITY, 245 null, 0, BG, p_ecode); 246 247 p_ecode = 0; 248 call get_mowse_info_ptr_ (p_mowse_mcb_ptr, mowse_info_ptr, p_ecode); 249 if (p_ecode ^= 0) then 250 return; 251 252 if (mowse_info_ptr = null) then 253 return; 254 255 if mowse_info_ptr -> mowse_info.mowse_flags.error_handled then do; 256 mowse_info_ptr -> mowse_info.mowse_flags.error_handled = FALSE; 257 revert any_other; 258 call fatal_mowse_trap_ (ws_error_$recursive_background_error); 259 return; 260 end; 261 262 /* */ 263 264 /* INTERNAL PROCEDURES */ 265 266 267 /* : *** Procedure: message_processor - Internal proc for external_mowse_ *** */ 268 269 270 message_processor: 271 proc (p_mowse_info_ptr, p_mcb_ptr, p_message_ptr, p_message_len, p_minor, 272 p_code); 273 274 /* : PROCEDURE FUNCTION 275* 276*Take the current message and processes it accordingly. 277**/ 278 279 /* INPUT PARAMETERS */ 280 dcl p_mowse_info_ptr ptr parameter; /* MOWSE info */ 281 dcl p_minor fixed bin parameter; /* Minor of message */ 282 dcl p_message_len fixed bin; /* Length of message */ 283 dcl p_mcb_ptr ptr parameter; /* Applciation's MCB */ 284 dcl p_message_ptr ptr parameter; /* Message */ 285 286 287 /* OUTPUT PARAMETERS */ 288 dcl p_code fixed bin (35) parameter; 289 290 291 /* MISC VARIABLES */ 292 dcl major fixed bin; /* Destination major */ 293 dcl minor fixed bin; /* Minor to be passed */ 294 dcl source_major fixed bin; /* Packed major capability of source */ 295 dcl code fixed bin (35); /* Internal error code */ 296 dcl source_major_num fixed bin; /* Sourc emajor of message */ 297 dcl source_system fixed bin; /* Source system of message */ 298 299 300 /* INITIALIZATION */ 301 p_code = 0; 302 303 source_system = 304 rank (p_message_ptr -> last_message.header.source_system); 305 source_major_num = 306 rank (p_message_ptr -> last_message.header.source_major); 307 308 call message_manager_ (p_mcb_ptr, LAST, source_major_num, 309 p_message_ptr, p_message_len, code); 310 311 /* : set the data_length field and the input buffer position so that the next 312* block of data gets placed at the beginning of the buffer */ 313 314 p_mcb_ptr -> mcb.inbuff_data_length = 315 p_mcb_ptr -> mcb.inbuff_position_index; 316 p_mcb_ptr -> mcb.inbuff_position_index = 0; 317 318 call capability_$pack (source_system, source_major_num, 319 source_major, p_code); 320 if p_code ^= 0 then 321 return; 322 323 /* : If suspended and the message is not resume or terminate, send a fail to 324* the source */ 325 326 major = rank (p_message_ptr -> last_message.header.major); 327 if p_mowse_info_ptr -> mowse_info.local_cat (major).flags.suspended 328 & p_minor ^= TERMINATE_APPLICATION 329 & p_minor ^= RESUME_APPLICATION 330 & p_minor ^= SUSPEND_APPLICATION 331 then do; 332 if source_major_num = INTERNAL then 333 return; 334 call send_msg_ (p_mcb_ptr, source_major, FAIL_CAPABILITY, null, 335 0, BG, p_ecode); 336 return; 337 end; 338 339 /* : If there is an overflow, call the application with the overflow minor 340* Else pass the message on */ 341 342 minor = p_minor; 343 if code = ws_error_$input_buffer_overflow then 344 minor = OVERFLOWED_BUFFER; 345 346 /* : All parameters MUST be passed by value as we cannot allow the application 347* to modify them */ 348 349 call p_mcb_ptr -> mcb.entry_var ((minor), (source_major), 350 (p_mcb_ptr -> mcb.inbuff), 351 (p_mcb_ptr -> mcb.inbuff_data_length), 352 (p_mcb_ptr), (p_mcb_ptr -> data_block_ptr)); 353 354 end message_processor; 355 356 /* */ 357 358 /* : *** Procedure: external_resume - Internal proc for external_mowse_ *** */ 359 360 361 external_resume: 362 proc (p_mcb_ptr, p_mowse_info_ptr, p_message_ptr, p_message_len, p_code); 363 364 /* : PROCEDURE FUNCTION 365* 366*If the suspend flag is set then reset it and call the application, otherwise 367*ignore the message. 368**/ 369 370 /* INPUT PARAMETERS */ 371 dcl p_message_len fixed bin parameter; /* Length of message */ 372 dcl p_mcb_ptr ptr parameter; /* MCB of application */ 373 dcl p_message_ptr ptr parameter; /* Message */ 374 dcl p_mowse_info_ptr ptr parameter; /* MOWSE info */ 375 376 377 /* OUTPUT PARAMETERS */ 378 dcl p_code fixed bin (35) parameter; 379 380 381 /* MISC VARIABLES */ 382 383 384 /* INITIALIZATION */ 385 386 p_code = 0; 387 388 /* : If the suspend flag is not set then ignore */ 389 390 if ^p_mowse_info_ptr 391 -> mowse_info.local_cat (p_major).flags.suspended then do; 392 393 p_mcb_ptr -> inbuff_position_index = 0; 394 p_mcb_ptr -> inbuff_data_length = 0; 395 return; 396 end; 397 398 /* : Set the flag and pass the message to the application */ 399 400 p_mowse_info_ptr -> mowse_info.local_cat (p_major).flags.suspended = 401 FALSE; 402 403 p_mcb_ptr -> mcb.inbuff_position_index = 0; 404 p_mcb_ptr -> mcb.inbuff_data_length = 0; 405 406 call message_processor (p_mowse_info_ptr, p_mcb_ptr, p_message_ptr, 407 p_message_len, RESUME_APPLICATION, p_code); 408 409 end external_resume; 410 411 /* */ 412 413 /* : *** Procedure: external_suspend - Internal proc for external_mowse_ *** */ 414 415 416 external_suspend: 417 proc (p_mcb_ptr, p_mowse_info_ptr, p_message_ptr, p_message_len, p_major, 418 p_code); 419 420 /* : PROCEDURE FUNCTION 421* 422*If suspended flag is NOT set then set the suspended flag and pass the 423*message to the application 424**/ 425 426 /* INPUT PARAMETERS */ 427 dcl p_message_len fixed bin parameter; /* Length of message */ 428 dcl p_mcb_ptr ptr parameter; /* MCB of application */ 429 dcl p_message_ptr ptr parameter; /* Message */ 430 dcl p_major fixed bin parameter; /* Major capability of this application */ 431 dcl p_mowse_info_ptr ptr parameter; /* MOWSE info */ 432 433 434 /* OUTPUT PARAMETERS */ 435 dcl p_code fixed bin (35) parameter; 436 437 438 /* MISC VARIABLES */ 439 440 441 /* INITIALIZATION */ 442 443 p_code = 0; 444 445 /* : If already suspended, then return */ 446 447 if p_mowse_info_ptr 448 -> mowse_info.local_cat (p_major).flags.suspended then do; 449 450 p_mcb_ptr -> inbuff_position_index = 0; 451 p_mcb_ptr -> inbuff_data_length = 0; 452 return; 453 end; 454 455 /* : Else set the flag and pass the message to the application */ 456 457 p_mowse_info_ptr -> mowse_info.local_cat (p_major).flags.suspended 458 = TRUE; 459 460 p_mcb_ptr -> mcb.inbuff_data_length = 0; 461 p_mcb_ptr -> mcb.inbuff_position_index = 0; 462 463 call message_processor (p_mowse_info_ptr, p_mcb_ptr, p_message_ptr, 464 p_message_len, SUSPEND_APPLICATION, p_code); 465 466 end external_suspend; 467 468 /* */ 469 470 /* : *** Procedure: external_fail - Internal proc for external_mowse_ *** */ 471 472 473 external_fail: 474 proc (p_mcb_ptr, p_major, p_mowse_info_ptr, p_message_ptr, p_message_len, 475 p_code); 476 477 /* : PROCEDURE FUNCTION 478* 479*Clear out the application's output buffer cause it was trying to send stuff 480*which caused a screwup. 481**/ 482 483 /* INPUT PARAMETERS */ 484 dcl p_major fixed bin parameter; /* Major of message */ 485 dcl p_message_len fixed bin parameter; /* Length of message */ 486 dcl p_message_ptr ptr parameter; /* Message */ 487 dcl p_mcb_ptr ptr parameter; /* Application's MCB */ 488 dcl p_mowse_info_ptr ptr parameter; /* MOWSE info */ 489 490 491 /* OUTPUT PARAMETERS */ 492 dcl p_code fixed bin (35); 493 494 495 /* MISC VARIABLES */ 496 497 498 /* INITIALIZATION */ 499 500 p_code = 0; 501 502 /* : Empty out all stored messages in output buffer */ 503 504 call release_outbuffer_ (p_mcb_ptr); 505 506 /* : Call the application */ 507 508 call message_processor (p_mowse_info_ptr, p_mcb_ptr, p_message_ptr, 509 p_message_len, FAIL_CAPABILITY, p_code); 510 if p_code ^= 0 then 511 return; 512 end external_fail; 513 514 /* */ 515 516 /* : *** Procedure: external_reset - Internal proc for external_mowse_ *** */ 517 518 519 external_reset: 520 proc (p_mcb_ptr, p_major, p_mowse_info_ptr, p_message_ptr, p_message_len, 521 p_code); 522 523 /* : PROCEDURE FUNCTION 524* 525*Set the reset flag and pass the message to the application only if the flag 526*was not already set. 527**/ 528 529 /* INPUT PARAMETERS */ 530 dcl p_major fixed bin parameter; /* Major of message */ 531 dcl p_message_len fixed bin parameter; /* Length of message */ 532 dcl p_message_ptr ptr parameter; /* Message */ 533 dcl p_mcb_ptr ptr parameter; /* Application's MCB */ 534 dcl p_mowse_info_ptr ptr parameter; /* MOWSE info */ 535 536 537 /* OUTPUT PARAMETERS */ 538 dcl p_code fixed bin (35); 539 540 541 /* MISC VARIABLES */ 542 dcl source_major fixed bin; /* Packed source major capability */ 543 dcl source_system fixed bin; /* Source system of message */ 544 545 /* INITIALIZATION */ 546 547 p_code = 0; 548 549 /* : If the flag is already set, ignore the message */ 550 551 if p_mowse_info_ptr -> mowse_info.local_cat (p_major).flags.reset 552 then 553 554 return; 555 556 /* : Set the flag and pass the message to the application */ 557 558 p_mowse_info_ptr -> mowse_info.local_cat (p_major).flags.reset 559 = TRUE; 560 561 /* : Empty out all stored messages */ 562 563 p_mcb_ptr -> mcb.inbuff_position_index = 0; 564 p_mcb_ptr -> mcb.inbuff_data_length = 0; 565 566 call release_outbuffer_ (p_mcb_ptr); 567 568 /* : Call the application */ 569 570 call message_processor (p_mowse_info_ptr, p_mcb_ptr, p_message_ptr, 571 p_message_len, RESET_APPLICATION, p_code); 572 if p_code ^= 0 then 573 return; 574 575 /* : Send the reset reply to the source system's MOWSE capability only if 576* the source is on a remote system */ 577 578 p_mowse_info_ptr -> mowse_info.local_cat (p_major).flags.reset 579 = FALSE; 580 581 source_system 582 = rank (p_message_ptr -> last_message.header.source_system); 583 if source_system = LOCAL_SYSTEM then 584 return; 585 586 call capability_$pack (source_system, INTERNAL, source_major, 587 p_code); 588 if p_code ^= 0 then 589 return; 590 591 call send_msg_ (p_mcb_ptr, source_major, RESET_REPLY, null, 0, BG, 592 p_code); 593 594 end external_reset; 595 596 /* */ 597 598 /* : *** Procedure: external_terminate - Internal proc for external_mowse_ *** */ 599 600 601 external_terminate: 602 proc (p_mowse_info_ptr, p_mcb_ptr, p_message_ptr, p_message_len, p_code); 603 604 /* : PROCEDURE FUNCTION 605* 606*Handle the functions necessary for passing on a terminate message. 607**/ 608 609 /* INPUT PARAMETERS */ 610 dcl p_mowse_info_ptr ptr parameter; /* MOWSE info */ 611 dcl p_message_len fixed bin parameter; /* Length of message */ 612 dcl p_message_ptr ptr parameter; /* Message */ 613 dcl p_mcb_ptr ptr parameter; /* Application's MCB */ 614 615 616 /* OUTPUT PARAMETERS */ 617 dcl p_code fixed bin (35) parameter; 618 619 620 /* MISC VARIABLES */ 621 622 623 /* INITIALIZATION */ 624 625 p_code = 0; 626 627 /* : Clear the suspend flag */ 628 629 mowse_info_ptr -> mowse_info.local_cat (p_major).flags.suspended = 630 FALSE; 631 632 /* : Pass on the message */ 633 634 mcb_ptr -> mcb.inbuff_position_index = 0; 635 mcb_ptr -> mcb.inbuff_data_length = 0; 636 637 call message_processor (p_mowse_info_ptr, p_mcb_ptr, p_message_ptr, 638 p_message_len, TERMINATE_APPLICATION, p_code); 639 640 end external_terminate; 641 642 /* */ 643 644 /* : *** Procedure: external_continue - Internal proc for external_mowse_ *** */ 645 646 647 external_continue: 648 proc (p_mcb_ptr, p_mowse_mcb_ptr, p_message_ptr, p_message_len, p_major, 649 p_minor, p_code); 650 651 /* : PROCEDURE FUNCTION 652* 653*Place the message in a buffer associated with the source of the message. 654*If for some reason the applications mcb is not valid then return a 655*FAIL_CAPABILITY to the source of the message to indicate the the capability 656*failed. 657**/ 658 659 /* INPUT PARAMETERS */ 660 dcl p_mcb_ptr ptr parameter; /* MCB of capability */ 661 dcl p_minor fixed bin parameter; /* Minor of message */ 662 dcl p_major fixed bin parameter; /* Major of destination */ 663 dcl p_mowse_mcb_ptr ptr parameter; /* Mowse's MCB */ 664 dcl p_message_len fixed bin parameter; /* Length of message */ 665 dcl p_message_ptr ptr parameter; /* Message */ 666 667 668 /* OUTPUT PARAMETERS */ 669 dcl p_code fixed bin (35) parameter; 670 671 672 /* MISC VARIABLES */ 673 dcl dest_system fixed bin; /* Destination system id of message */ 674 dcl source_major_num fixed bin; /* Source major number of message */ 675 dcl source_system fixed bin; /* Source system of message */ 676 677 678 /* INITIALIZATION */ 679 680 p_code = 0; 681 682 source_system = 683 rank (p_message_ptr 684 -> more_remaining_message.header.source_system); 685 source_major_num = 686 rank (p_message_ptr 687 -> more_remaining_message.header.source_major); 688 dest_system = 689 rank (p_message_ptr -> more_remaining_message.header.system); 690 691 /* : If the source major is invalid, then ignore the message */ 692 693 if (source_major_num < MINIMUM_CAT_ENTRY) 694 | (source_major_num > MAXIMUM_CAT_ENTRY) then 695 696 return; 697 698 /* : Manipulate the message into the queues of the application */ 699 700 call message_manager_ (p_mcb_ptr, CONTINUE, source_major_num, 701 p_message_ptr, p_message_len, p_code); 702 703 /* : Get the next portion from the source */ 704 705 call send_mowse_message_ (p_mowse_mcb_ptr, source_system, 706 source_major_num, dest_system, p_major, p_minor, MORE, null, 0, 707 BG, p_code); 708 709 end external_continue; 710 711 /* */ 712 713 /* : *** Procedure: external_more - Internal proc for external_mowse_ *** */ 714 715 716 external_more: 717 proc (p_mowse_info_ptr, p_mcb_ptr, p_message_ptr, p_message_len, p_code); 718 719 /* : PROCEDURE FUNCTION 720* 721*Send another packet from the outbuffer to the capability requesting more 722*data. 723**/ 724 725 /* INPUT PARAMETERS */ 726 dcl p_mowse_info_ptr ptr parameter; /* MOWSE info */ 727 dcl p_message_len fixed bin parameter; /* Length of message */ 728 dcl p_mcb_ptr ptr parameter; /* MCB of destination capability */ 729 dcl p_message_ptr ptr parameter; /* Message */ 730 731 732 /* OUTPUT PARAMETERS */ 733 dcl p_code fixed bin (35); 734 735 736 /* MISC VARIABLES */ 737 dcl source_minor fixed bin; /* Source minor of message */ 738 dcl source_major_num fixed bin; /* Source major of message */ 739 dcl source_system fixed bin; /* Source system of message */ 740 741 742 /* INITIALIZATION */ 743 744 p_code = 0; 745 746 source_system = 747 rank (p_message_ptr 748 -> request_more_message.header.source_system); 749 source_major_num = 750 rank (p_message_ptr 751 -> request_more_message.header.source_major); 752 source_minor = 753 rank (p_message_ptr 754 -> request_more_message.header.source_minor); 755 756 /* : If source major or minor is invalid, ignore message */ 757 758 if (source_major_num < MINIMUM_CAT_ENTRY) 759 | (source_major_num > MAXIMUM_CAT_ENTRY) 760 | (source_minor < MINIMUM_SYSTEM_MINOR) 761 | (source_minor > MAXIMUM_USER_MINOR) then 762 763 return; 764 765 call send_outbuff_data_ (p_mcb_ptr, source_system, source_major_num, 766 source_minor, p_code); 767 if p_code = 0 then 768 return; 769 770 /* : If something went wrong with the next portion, send a FAIL capability 771* to this application */ 772 773 p_mcb_ptr -> mcb.inbuff_position_index = 0; 774 p_mcb_ptr -> mcb.inbuff_data_length = 0; 775 776 call message_processor (p_mowse_info_ptr, p_mcb_ptr, p_message_ptr, 777 p_message_len, FAIL_CAPABILITY, p_code); 778 779 end external_more; 780 781 /* */ 782 783 /* : *** Procedure: send_fail - Internal proc for external_mowse_ *** */ 784 785 786 send_fail: 787 proc (p_message_ptr, p_minor, p_mowse_mcb_ptr, p_code); 788 789 /* : PROCEDURE FUNCTION 790* 791*Determine if it is valid to send a FAIL_CAPABILITY message to the source of 792*the message, if so then send it. 793**/ 794 795 /* INPUT PARAMETERS */ 796 dcl p_minor fixed bin parameter; /* Minor capability number */ 797 dcl p_mowse_mcb_ptr ptr parameter; /* MOWSE's MCB */ 798 dcl p_message_ptr ptr parameter; /* Invalid message destination */ 799 800 801 /* OUTPUT PARAMETERS */ 802 dcl p_code fixed bin (35) parameter; 803 804 805 /* MISC VARIABLES */ 806 dcl destination fixed bin; /* Destination capability of fail */ 807 808 809 /* INITIALIZATION */ 810 811 p_code = 0; 812 813 if p_minor = EXECUTE_COMMAND_REPLY | p_minor = FAIL_CAPABILITY | 814 p_minor = RESET_REPLY | p_minor = QUERY_REPLY | 815 p_minor = RESPONSE_CONNECT | p_minor = RESPONSE_DISCONNECT 816 then do; 817 818 p_code = 0; 819 return; 820 end; 821 822 call capability_$pack ( 823 rank (p_message_ptr -> last_message.header.source_system), 824 rank (p_message_ptr -> last_message.header.source_major), 825 destination, p_code); 826 if p_ecode ^= 0 then do; 827 p_code = 0; 828 return; 829 end; 830 831 call send_msg_ (p_mowse_mcb_ptr, destination, FAIL_CAPABILITY, 832 null, 0, BG, p_code); 833 834 end send_fail; 835 836 /* */ 837 838 839 840 /* INCLUDE FILES */ 1 1 /* BEGIN INCLUDE FILE: mowse.incl.pl1 * * * * * * * * * * * * */ 1 2 1 3 /****^ HISTORY COMMENTS: 1 4* 1) change(86-09-17,Flegel), approve(86-12-16,MCR7580), 1 5* audit(86-12-15,Gilcrease), install(87-01-06,MR12.0-1255): 1 6* Created. 1 7* 2) change(86-10-03,Flegel), approve(86-12-16,MCR7580), 1 8* audit(86-12-15,Gilcrease), install(87-01-06,MR12.0-1255): 1 9* Combined mowse_minor_caps.incl.pl1 and 1 10* mowse.incl.pl1 so that programmer only needs include mowse.incl.pl1 1 11* 3) change(86-11-27,Flegel), approve(86-11-27,MCR7580), 1 12* audit(86-12-15,Gilcrease), install(87-01-06,MR12.0-1255): 1 13* Approved. 1 14* 4) change(87-07-31,Flegel), approve(87-07-31,MCR7580), 1 15* audit(87-07-31,RBarstad), install(87-08-07,MR12.1-1075): 1 16* Changes to support async call channels. 1 17* END HISTORY COMMENTS */ 1 18 1 19 /* Name of MOWSE temp seg for data */ 1 20 1 21 /* format: style4,indattr,ifthen,^indcomtxt,thendo,^indproc,^indblkcom,initcol1,declareind8,dclind4,struclvlind3,comcol55 */ 1 22 dcl temp_seg_name char (6) init ("MOWSE_"); 1 23 1 24 /* Version number */ 1 25 1 26 dcl MOWSE_VERSION_ char (8) int static options (constant) init ("version1"); 1 27 1 28 /* System identification */ 1 29 1 30 dcl LOCAL_SYSTEM fixed bin int static options (constant) init (32); 1 31 dcl REMOTE_SYSTEM fixed bin int static options (constant) init (33); 1 32 1 33 /* Status request return codes */ 1 34 1 35 dcl STATUS_SUCCESS fixed bin (8) int static options (constant) 1 36 init (32); 1 37 dcl STATUS_FAILED fixed bin (8) int static options (constant) 1 38 init (33); 1 39 1 40 /* Input/output capability buffer size limits */ 1 41 1 42 dcl MINIMUM_BUFFER_SIZE fixed bin int static options (constant) init (128); 1 43 dcl MAXIMUM_BUFFER_SIZE fixed bin int static options (constant) init (65536); 1 44 dcl MAXIMUM_BG_SIZE fixed bin int static options (constant) init (512); 1 45 1 46 /* Packet size (communication) constants */ 1 47 1 48 dcl PACKET_SIZE fixed bin int static options (constant) init (124); 1 49 dcl MAXIMUM_PACKET_SIZE fixed bin int static options (constant) init (118); 1 50 1 51 /* Query message constants */ 1 52 1 53 dcl SEND_QUERY fixed bin int static options (constant) init (128); 1 54 dcl ACCEPT fixed bin int static options (constant) init (32); 1 55 dcl REJECT fixed bin int static options (constant) init (33); 1 56 1 57 /* Trace information constants */ 1 58 1 59 dcl RECEIVE fixed bin int static options (constant) init (1); 1 60 dcl SEND fixed bin int static options (constant) init (0); 1 61 1 62 /* Limits on dedicated minor capabilities */ 1 63 1 64 dcl MINIMUM_SYSTEM_MINOR fixed bin int static options (constant) init (32); 1 65 dcl MAXIMUM_SYSTEM_MINOR fixed bin int static options (constant) init (63); 1 66 dcl MINIMUM_USER_MINOR fixed bin int static options (constant) init (64); 1 67 dcl MAXIMUM_USER_MINOR fixed bin int static options (constant) init (127); 1 68 1 69 /* Dedicated Minor Capabilities */ 1 70 1 71 dcl LAST fixed bin int static options (constant) init (0); 1 72 dcl EXECUTE_COMMAND_REPLY fixed bin int static options (constant) init (32); 1 73 dcl EXECUTE_CAPABILITY_REPLY 1 74 fixed bin int static options (constant) init (33); 1 75 dcl FAIL_CAPABILITY fixed bin int static options (constant) init (33); 1 76 dcl INTERNAL fixed bin int static options (constant) init (32); 1 77 dcl EXECUTE_COMMAND fixed bin int static options (constant) init (34); 1 78 dcl ADD_TO_REMOTE_CAT fixed bin int static options (constant) init (35); 1 79 dcl DELETE_FROM_REMOTE_CAT fixed bin int static options (constant) init (36); 1 80 dcl SUSPEND_APPLICATION fixed bin int static options (constant) init (37); 1 81 dcl RESUME_APPLICATION fixed bin int static options (constant) init (38); 1 82 dcl TERMINATE_APPLICATION fixed bin int static options (constant) init (39); 1 83 dcl RESET_APPLICATION fixed bin int static options (constant) init (40); 1 84 dcl RESET_REPLY fixed bin int static options (constant) init (41); 1 85 dcl WAKE_UP fixed bin int static options (constant) init (42); 1 86 dcl STATUS fixed bin int static options (constant) init (43); 1 87 dcl OVERFLOWED_BUFFER fixed bin int static options (constant) init (44); 1 88 dcl SYSTEM_ERROR fixed bin int static options (constant) init (45); 1 89 dcl QUERY_REPLY fixed bin int static options (constant) init (46); 1 90 dcl RESPONSE_CONNECT fixed bin int static options (constant) init (47); 1 91 dcl RESPONSE_DISCONNECT fixed bin int static options (constant) init (48); 1 92 dcl REQUEST_CONNECT fixed bin int static options (constant) init (49); 1 93 dcl REQUEST_DISCONNECT fixed bin int static options (constant) init (50); 1 94 dcl CONTINUE fixed bin int static options (constant) init (51); 1 95 dcl MORE fixed bin int static options (constant) init (52); 1 96 dcl SET_SLEEP_FLAG fixed bin int static options (constant) init (53); 1 97 dcl RESET_SLEEP_FLAG fixed bin int static options (constant) init (54); 1 98 dcl SET_SUSPEND fixed bin int static options (constant) init (55); 1 99 dcl RESET_SUSPEND fixed bin int static options (constant) init (56); 1 100 dcl STATUS_REPLY fixed bin int static options (constant) init (57); 1 101 1 102 /* Foreground */ 1 103 1 104 dcl FG_CONTROL_MESSAGE fixed bin int static options (constant) init (33); 1 105 dcl FG_BREAK fixed bin int static options (constant) init (34); 1 106 dcl FG_TERMINAL_DATA fixed bin int static options (constant) init (35); 1 107 dcl FG_MORE_DATA fixed bin int static options (constant) init (36); 1 108 dcl PUT_TO_BACKGROUND_BUFFER 1 109 fixed bin int static options (constant) init (37); 1 110 dcl PUT_TO_QUERY_MESSAGE_BUFFER 1 111 fixed bin int static options (constant) init (38); 1 112 1 113 /* END INCLUDE FILE: mowse.incl.pl1 * * * * * * * * * * * * */ 841 2 1 /* BEGIN INCLUDE FILE: mowse_info.incl.pl1 * * * * * * * * * * * * */ 2 2 2 3 /****^ HISTORY COMMENTS: 2 4* 1) change(86-07-19,Smith), approve(87-07-15,MCR7580), 2 5* audit(87-07-30,RBarstad), install(87-08-07,MR12.1-1075): 2 6* Created to define MOWSE information to be 2 7* placed into a temp segment. 2 8* 2) change(86-11-27,Flegel), approve(86-11-27,MCR7580), 2 9* audit(87-07-30,RBarstad), install(87-08-07,MR12.1-1075): 2 10* Approved. 2 11* 3) change(87-02-25,Flegel), approve(87-02-25,MCR7580), 2 12* audit(87-07-30,RBarstad), install(87-08-07,MR12.1-1075): 2 13* Added bit switches to the init_mowse_info structure as well as the force 2 14* flag. 2 15* 4) change(87-03-24,Flegel), approve(87-03-24,MCR7580), 2 16* audit(87-07-30,RBarstad), install(87-08-07,MR12.1-1075): 2 17* Added open_struc for passing EOP and escape char info from attach_mowse 2 18* to mowse_io_. 2 19* END HISTORY COMMENTS */ 2 20 2 21 /* CAT index limits */ 2 22 2 23 /* format: style4,indattr,ifthen,^indcomtxt,thendo,^indproc,^indblkcom,initcol1,declareind8,dclind4,struclvlind3,comcol55 */ 2 24 dcl MINIMUM_CAT_ENTRY fixed bin int static options (constant) init (33); 2 25 dcl MAXIMUM_CAT_ENTRY fixed bin int static options (constant) init (64); 2 26 2 27 dcl CAPABILITY_NAME_LENGTH fixed bin int static options (constant) init (32); 2 28 2 29 /* Mowse information structure */ 2 30 2 31 dcl 01 mowse_info based aligned, 2 32 02 version char (8), 2 33 02 local_cat dimension (33:64), /* Multics CAT table */ 2 34 03 flags, 2 35 04 reset bit (1) unal, /* Reset in progress */ 2 36 04 suspended bit (1) unal, /* Suspended applciation */ 2 37 04 status bit (1) unal, /* Status pending */ 2 38 04 mbz1 bit (33) unal, 2 39 03 sleep_time fixed bin, /* Time application is sleeping */ 2 40 03 mcb_ptr ptr, /* Capability MCB */ 2 41 02 remote_cat dimension (33:64), /* PC CAT table */ 2 42 03 major_capability 2 43 fixed bin, /* Capability number */ 2 44 03 capability_name char (32), /* Name of capability */ 2 45 03 flags, 2 46 04 reset bit (1) unal, /* Reset in progress */ 2 47 04 suspended bit (1) unal, /* Suspended capability */ 2 48 04 sleep_time bit (1) unal, /* Application sleeping */ 2 49 04 mbz2 bit (33) unal, 2 50 02 message_manager_info, /* Info for processing messages */ 2 51 03 head_list_ptr ptr, /* Head of message list */ 2 52 03 tail_list_ptr ptr, /* Tail of message list */ 2 53 03 pending_messages 2 54 fixed bin, /* Number of pending messages */ 2 55 02 mowse_flags, 2 56 03 trace bit (1) unal, /* Message tracing facility active */ 2 57 03 debug bit (1) unal, /* Debugging packets facility active */ 2 58 03 error_handled bit (1) unal, /* In mowse_error_handler procedure */ 2 59 03 mbz1 bit (33) unal, 2 60 03 trace_file_iocb ptr, /* Trace file iocb */ 2 61 03 debug_file_iocb ptr, /* Debug file iocb */ 2 62 02 init_mowse_info_ptr 2 63 ptr; /* Initialization information */ 2 64 2 65 /* MOWSE initialization information */ 2 66 2 67 dcl init_mowse_info_ptr ptr; 2 68 dcl 01 init_mowse_info based (init_mowse_info_ptr), 2 69 02 version char (8), 2 70 02 flags, /* Bit switches */ 2 71 03 trace_sw bit (1) unal, 2 72 03 debug_sw bit (1) unal, 2 73 03 io_switch_sw bit (1) unal, 2 74 03 force_sw bit (1) unal, 2 75 03 start_up_sw bit (1) unal, 2 76 03 escape_sw bit (1) unal, 2 77 03 network_sw bit (1) unal, 2 78 03 pad bit (29) unal, 2 79 02 escape, 2 80 03 chars (0:255) bit (1) unal, /* Character escapes */ 2 81 03 pad bit (32) unal, 2 82 02 trace char (512) var, /* Trace file name */ 2 83 02 debug char (512) var, /* Debug file name */ 2 84 02 io_switch char (512) var, /* Io switch name of mowse_io_ attachment */ 2 85 02 startup (MAXIMUM_CAT_ENTRY - MINIMUM_CAT_ENTRY + 1) 2 86 char (168) var; /* Capability to be autoloaded */ 2 87 2 88 /* Open description structure (this is padded to character bounds as it 2 89* is a character overlay structure - passed as a character string) */ 2 90 2 91 dcl open_struc_ptr ptr; 2 92 dcl 01 open_struc based (open_struc_ptr), 2 93 02 flags, 2 94 03 network_sw bit (1) unal, 2 95 03 escape_sw bit (1) unal, 2 96 03 pad bit (7) unal, 2 97 02 escape, 2 98 03 switches (0:255) bit (1) unal, 2 99 03 pad bit (32) unal, 2 100 02 mbz bit (16) unal; 2 101 2 102 /* END INCLUDE FILE: mowse_info.incl.pl1 * * * * * * * * * * * * */ 842 3 1 /* BEGIN INCLUDE FILE: mowse_mcb.incl.pl1 * * * * * * * * * * * * */ 3 2 3 3 /****^ HISTORY COMMENTS: 3 4* 1) change(86-05-17,Smith), approve(87-07-15,MCR7580), 3 5* audit(87-07-30,RBarstad), install(87-08-07,MR12.1-1075): 3 6* Created to define the mcb (Mowse Control Block) 3 7* for information on capabilities. 3 8* 2) change(86-11-27,Flegel), approve(86-11-27,MCR7580), 3 9* audit(87-07-30,RBarstad), install(87-08-07,MR12.1-1075): 3 10* Approved. 3 11* END HISTORY COMMENTS */ 3 12 /* MOWSE control block */ 3 13 /* format: style4,indattr,ifthen,^indcomtxt,thendo,^indproc,^indblkcom,initcol1,declareind8,dclind4,struclvlind3,comcol55 */ 3 14 dcl 01 mcb based, 3 15 02 version char (8), 3 16 02 capability_name char (32), /* Name of capability */ 3 17 02 major_capability fixed bin (17), /* Capability number */ 3 18 02 inbuff_length fixed bin (17), /* Length of buffer */ 3 19 02 inbuff_position_index 3 20 fixed bin (17), /* Current position in inbuffer */ 3 21 02 inbuff_data_length 3 22 fixed bin (17), /* Amoiunt of data in inbuffer */ 3 23 02 outbuff_length fixed bin (17), /* Length of outbuffer */ 3 24 02 mbz1 bit (36) unal, 3 25 02 entry_var entry options (variable), /* Message processor entry point of capability */ 3 26 02 data_block_ptr ptr, /* Capability data */ 3 27 02 inbuff ptr, /* Message input buffer */ 3 28 02 outbuff_list_start 3 29 ptr, /* Pointer to outbuffer data */ 3 30 02 outbuff_list_end ptr, /* Last node in outbuffer data */ 3 31 02 iocb_ptr ptr, /* IOCB to mowse_io_ */ 3 32 02 mowse_info_ptr ptr; /* MOWSE information */ 3 33 /* Output buffer linked list node */ 3 34 dcl 01 output_buffer based, 3 35 02 destination_system 3 36 char, /* Destination of message */ 3 37 02 destination_major char, 3 38 02 destination_minor char, 3 39 02 buffer_position fixed bin, /* Position in buffer of message */ 3 40 02 buffer_length fixed bin, /* Length of buffer */ 3 41 02 next_buffer ptr, /* Next buffer of message */ 3 42 02 data ptr; /* Pointer to message */ 3 43 3 44 /* END INCLUDE FILE: mowse_mcb.incl.pl1 * * * * * * * * * * * * */ 843 4 1 /* BEGIN INCLUDE FILE: mowse_messages.incl.pl1 * * * * * * * * * * * * */ 4 2 4 3 /****^ HISTORY COMMENTS: 4 4* 1) change(86-05-17,Smith), approve(86-12-16,MCR7580), 4 5* audit(86-12-15,Gilcrease), install(87-01-06,MR12.0-1255): 4 6* Created to define MOWSE message formats. 4 7* 2) change(86-11-27,Flegel), approve(86-11-27,MCR7580), 4 8* audit(86-12-15,Gilcrease), install(87-01-06,MR12.0-1255): 4 9* Approved. 4 10* 3) change(87-07-31,Flegel), approve(87-07-31,MCR7580), 4 11* audit(87-07-31,RBarstad), install(87-08-07,MR12.1-1075): 4 12* Changes to support async call channels. 4 13* END HISTORY COMMENTS */ 4 14 4 15 /* Message Channels */ 4 16 /* format: style4,indattr,ifthen,^indcomtxt,thendo,^indproc,^indblkcom,initcol1,declareind8,dclind4,struclvlind3,comcol55 */ 4 17 dcl BG fixed bin int static options (constant) init (0); 4 18 /* Fore ground */ 4 19 dcl FG fixed bin int static options (constant) init (1); 4 20 /* Back ground */ 4 21 4 22 /* Message types: 4 23* 4 24*Each intersystem message is labelled with one of the following types. Upon 4 25*reciept of the message suitable action is undertaken. This scheme was 4 26*introduced to allow the transmission of messsages longer than the maximum 4 27*packet size. 4 28**/ 4 29 4 30 /* Templates for the various messages used throughout the mowse environment. 4 31* Non-allocatable */ 4 32 4 33 dcl message_len fixed bin init (6); 4 34 dcl message_ptr ptr; 4 35 4 36 /* expected format of message */ 4 37 4 38 dcl 01 input_message based (message_ptr), 4 39 02 header, 4 40 03 system char (1) unal, 4 41 03 major char (1) unal, 4 42 03 minor char (1) unal, 4 43 03 source_system char (1) unal, 4 44 03 source_major char (1) unal, 4 45 02 data char (message_len - 5) unal; 4 46 4 47 /* expected format of message to be handled by mowse internal execute command */ 4 48 4 49 dcl 01 execom_message based (message_ptr), 4 50 02 header, 4 51 03 system char (1) unal, 4 52 03 major char (1) unal, 4 53 03 minor char (1) unal, 4 54 03 source_system char (1) unal, 4 55 03 source_major char (1) unal, 4 56 02 data, 4 57 03 cmd_id fixed bin (17) unal, 4 58 03 command char (message_len - 7) unal; 4 59 4 60 /* expected format of message recieved when a request to alter a CAT table 4 61* is made by a remote system */ 4 62 4 63 dcl 01 alter_cat_message based (message_ptr), 4 64 02 header, 4 65 03 system char (1) unal, 4 66 03 major char (1) unal, 4 67 03 minor char (1) unal, 4 68 03 source_system char (1) unal, 4 69 03 source_major char (1) unal, 4 70 02 data, 4 71 03 major char unal, 4 72 03 major_name char (CAPABILITY_NAME_LENGTH) unal; 4 73 4 74 /* Template used to parse message recieved from some remote system. */ 4 75 4 76 dcl 01 event_message based (message_ptr), 4 77 02 header, 4 78 03 system char (1) unal, 4 79 03 major char (1) unal, 4 80 03 msg_type char (1) unal; 4 81 4 82 /* format of message of MORE type */ 4 83 4 84 dcl 01 request_more_message 4 85 based (message_ptr), 4 86 02 header, 4 87 03 system char (1) unal, 4 88 03 major char (1) unal, 4 89 03 more char (1) unal, 4 90 03 source_system char (1) unal, 4 91 03 source_major char (1) unal, 4 92 03 source_minor char (1) unal; 4 93 4 94 /* format of message of CONTINUE type */ 4 95 4 96 dcl 01 more_remaining_message 4 97 based (message_ptr), 4 98 02 header, 4 99 03 system char (1) unal, 4 100 03 major char (1) unal, 4 101 03 continue char (1) unal, 4 102 03 minor char (1) unal, 4 103 03 source_system char (1) unal, 4 104 03 source_major char (1) unal, 4 105 02 data, 4 106 03 data_buf char (message_len - 6) unal; 4 107 4 108 /* format of message of LAST type */ 4 109 4 110 dcl 01 last_message based (message_ptr), 4 111 02 header, 4 112 03 system char (1) unal, 4 113 03 major char (1) unal, 4 114 03 minor char (1) unal, 4 115 03 source_system char (1) unal, 4 116 03 source_major char (1) unal, 4 117 02 data, 4 118 03 data_buf char (message_len - 5) unal; 4 119 4 120 /* Execute_command_reply message format */ 4 121 4 122 dcl 01 execom_reply_msg based (message_ptr), 4 123 02 header, 4 124 03 system char (1) unal, 4 125 03 major char (1) unal, 4 126 03 minor char (1) unal, 4 127 03 source_system char (1) unal, 4 128 03 source_major char (1) unal, 4 129 02 data, 4 130 03 cmd_id fixed bin unal, 4 131 03 status char unal; 4 132 4 133 /* Used to manage partial messages destined for any application */ 4 134 4 135 dcl msg_node_ptr ptr; 4 136 dcl 01 message_node based (msg_node_ptr), 4 137 02 major fixed bin, 4 138 02 partial_msg_list_ptr 4 139 ptr, 4 140 02 next_node ptr, 4 141 02 prev_node ptr, 4 142 02 last_part_msg ptr; 4 143 4 144 dcl part_msg_ptr ptr; 4 145 dcl 01 partial_message based (part_msg_ptr), 4 146 02 msg_ptr ptr, 4 147 02 msg_len fixed bin, 4 148 02 next_msg ptr; 4 149 4 150 4 151 dcl part_msg_length fixed bin; 4 152 dcl part_msg char (part_msg_length) based; 4 153 4 154 /* Trace information structure */ 4 155 dcl 01 trace_message_info, 4 156 02 direction fixed bin, 4 157 02 from_system fixed bin, 4 158 02 from_major fixed bin, 4 159 02 dest_system fixed bin, 4 160 02 dest_major fixed bin, 4 161 02 dest_minor fixed bin, 4 162 02 msg_type fixed bin, 4 163 02 message char (PACKET_SIZE) var; 4 164 4 165 /* END INCLUDE FILE: mowse_messages.incl.pl1 * * * * * * * * * * * * */ 844 845 846 /* : END external_mowse_ */ 847 end external_mowse_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 08/07/87 1454.9 external_mowse_.pl1 >special_ldd>install>MR12.1-1075>external_mowse_.pl1 841 1 08/07/87 1445.8 mowse.incl.pl1 >special_ldd>install>MR12.1-1075>mowse.incl.pl1 842 2 08/07/87 1445.8 mowse_info.incl.pl1 >special_ldd>install>MR12.1-1075>mowse_info.incl.pl1 843 3 08/07/87 1447.6 mowse_mcb.incl.pl1 >special_ldd>install>MR12.1-1075>mowse_mcb.incl.pl1 844 4 08/07/87 1447.1 mowse_messages.incl.pl1 >special_ldd>install>MR12.1-1075>mowse_messages.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. BG 000011 constant fixed bin(17,0) initial dcl 4-17 set ref 240* 334* 591* 705* 831* CONTINUE 000001 constant fixed bin(17,0) initial dcl 1-94 set ref 172 700* EXECUTE_COMMAND_REPLY constant fixed bin(17,0) initial dcl 1-72 ref 813 FAIL_CAPABILITY 000007 constant fixed bin(17,0) initial dcl 1-75 set ref 196 240* 334* 508* 776* 813 831* FALSE constant bit(1) initial unaligned dcl 106 ref 119 256 400 578 629 INTERNAL 000010 constant fixed bin(17,0) initial dcl 1-76 set ref 240 332 586* LAST 000011 constant fixed bin(17,0) initial dcl 1-71 set ref 308* LOCAL_SYSTEM 000010 constant fixed bin(17,0) initial dcl 1-30 ref 583 MAXIMUM_CAT_ENTRY constant fixed bin(17,0) initial dcl 2-25 ref 145 693 758 MAXIMUM_USER_MINOR constant fixed bin(17,0) initial dcl 1-67 ref 758 MINIMUM_CAT_ENTRY constant fixed bin(17,0) initial dcl 2-24 ref 145 693 758 MINIMUM_SYSTEM_MINOR constant fixed bin(17,0) initial dcl 1-64 ref 758 MORE 000000 constant fixed bin(17,0) initial dcl 1-95 set ref 164 705* OVERFLOWED_BUFFER constant fixed bin(17,0) initial dcl 1-87 ref 343 PACKET_SIZE constant fixed bin(17,0) initial dcl 1-48 ref 4-155 QUERY_REPLY constant fixed bin(17,0) initial dcl 1-89 ref 813 RESET_APPLICATION 000003 constant fixed bin(17,0) initial dcl 1-83 set ref 188 570* RESET_REPLY 000002 constant fixed bin(17,0) initial dcl 1-84 set ref 591* 813 RESPONSE_CONNECT constant fixed bin(17,0) initial dcl 1-90 ref 813 RESPONSE_DISCONNECT constant fixed bin(17,0) initial dcl 1-91 ref 813 RESUME_APPLICATION 000005 constant fixed bin(17,0) initial dcl 1-81 set ref 212 327 406* SUSPEND_APPLICATION 000006 constant fixed bin(17,0) initial dcl 1-80 set ref 204 327 463* SYSTEM_ERROR constant fixed bin(17,0) initial dcl 1-88 ref 196 TERMINATE_APPLICATION 000004 constant fixed bin(17,0) initial dcl 1-82 set ref 180 327 637* TRUE constant bit(1) initial unaligned dcl 105 ref 138 457 558 any_other 000110 stack reference condition dcl 102 ref 120 257 capability_$pack 000026 constant entry external dcl 78 ref 235 318 586 822 code 000135 automatic fixed bin(35,0) dcl 295 set ref 308* 343 data_block_ptr 24 based pointer level 2 dcl 3-14 ref 349 dest_system 000206 automatic fixed bin(17,0) dcl 673 set ref 688* 705* destination 000102 automatic fixed bin(17,0) dcl 91 in procedure "external_mowse_" set ref 235* 240* destination 000232 automatic fixed bin(17,0) dcl 806 in procedure "send_fail" set ref 822* 831* entry_var 20 based entry variable level 2 dcl 3-14 ref 349 error_handled 710(02) based bit(1) level 3 packed unaligned dcl 2-31 set ref 119* 255 256* event_message based structure level 1 packed unaligned dcl 4-76 fatal_mowse_trap_ 000034 constant entry external dcl 83 ref 258 flags 2 based structure array level 3 dcl 2-31 get_mowse_info_ptr_ 000020 constant entry external dcl 73 ref 112 248 header based structure level 2 in structure "more_remaining_message" packed unaligned dcl 4-96 in procedure "external_mowse_" header based structure level 2 in structure "last_message" packed unaligned dcl 4-110 in procedure "external_mowse_" header based structure level 2 in structure "event_message" packed unaligned dcl 4-76 in procedure "external_mowse_" header based structure level 2 in structure "request_more_message" packed unaligned dcl 4-84 in procedure "external_mowse_" inbuff 26 based pointer level 2 dcl 3-14 ref 349 inbuff_data_length 15 based fixed bin(17,0) level 2 dcl 3-14 set ref 314* 349 394* 404* 451* 460* 564* 635* 774* inbuff_position_index 14 based fixed bin(17,0) level 2 dcl 3-14 set ref 314 316* 393* 403* 450* 461* 563* 634* 773* last_message based structure level 1 packed unaligned dcl 4-110 local_cat 2 based structure array level 2 dcl 2-31 major 0(09) based char(1) level 3 in structure "last_message" packed unaligned dcl 4-110 in procedure "external_mowse_" ref 326 major 000132 automatic fixed bin(17,0) dcl 292 in procedure "message_processor" set ref 326* 327 mcb based structure level 1 unaligned dcl 3-14 mcb_ptr 4 based pointer array level 3 in structure "mowse_info" dcl 2-31 in procedure "external_mowse_" ref 154 mcb_ptr 000104 automatic pointer dcl 92 in procedure "external_mowse_" set ref 154* 156 165* 173* 181* 189* 197* 205* 213* 220* 634 635 message_len 000120 automatic fixed bin(17,0) initial dcl 4-33 set ref 4-33* message_manager_ 000030 constant entry external dcl 80 ref 308 700 minor 000133 automatic fixed bin(17,0) dcl 293 set ref 342* 343* 349 more_remaining_message based structure level 1 packed unaligned dcl 4-96 mowse_error_handler_ 000014 constant entry external dcl 69 ref 122 mowse_flags 710 based structure level 2 dcl 2-31 mowse_info based structure level 1 dcl 2-31 mowse_info_ptr 000100 automatic pointer dcl 90 set ref 112* 119 138 138 154 165* 181* 189* 197* 205* 213* 220* 248* 252 255 256 629 msg_type 0(18) based char(1) level 3 in structure "event_message" packed unaligned dcl 4-76 in procedure "external_mowse_" ref 134 msg_type 000106 automatic fixed bin(17,0) dcl 93 in procedure "external_mowse_" set ref 134* 164 172 null builtin function dcl 96 ref 131 156 240 240 252 334 334 591 591 705 705 831 831 p_code parameter fixed bin(35,0) dcl 669 in procedure "external_continue" set ref 647 680* 700* 705* p_code parameter fixed bin(35,0) dcl 617 in procedure "external_terminate" set ref 601 625* 637* p_code parameter fixed bin(35,0) dcl 435 in procedure "external_suspend" set ref 416 443* 463* p_code parameter fixed bin(35,0) dcl 802 in procedure "send_fail" set ref 786 811* 818* 822* 827* 831* p_code parameter fixed bin(35,0) dcl 733 in procedure "external_more" set ref 716 744* 765* 767 776* p_code parameter fixed bin(35,0) dcl 538 in procedure "external_reset" set ref 519 547* 570* 572 586* 588 591* p_code parameter fixed bin(35,0) dcl 288 in procedure "message_processor" set ref 270 301* 318* 320 p_code parameter fixed bin(35,0) dcl 492 in procedure "external_fail" set ref 473 500* 508* 510 p_code parameter fixed bin(35,0) dcl 378 in procedure "external_resume" set ref 361 386* 406* p_ecode parameter fixed bin(35,0) dcl 60 set ref 36 111* 112* 114 147* 148 157* 158 165* 173* 181* 189* 197* 205* 213* 220* 223* 232* 235* 240 240* 247* 248* 249 334* 826 p_major parameter fixed bin(17,0) dcl 662 in procedure "external_continue" set ref 647 705* p_major parameter fixed bin(17,0) dcl 484 in procedure "external_fail" ref 473 p_major parameter fixed bin(17,0) dcl 530 in procedure "external_reset" ref 519 551 558 578 p_major parameter fixed bin(17,0) dcl 56 in procedure "external_mowse_" set ref 36 122* 145 145 154 173* 189* 197* 205* 390 400 629 p_major parameter fixed bin(17,0) dcl 430 in procedure "external_suspend" ref 416 447 457 p_mcb_ptr parameter pointer dcl 660 in procedure "external_continue" set ref 647 700* p_mcb_ptr parameter pointer dcl 372 in procedure "external_resume" set ref 361 393 394 403 404 406* p_mcb_ptr parameter pointer dcl 533 in procedure "external_reset" set ref 519 563 564 566* 570* 591* p_mcb_ptr parameter pointer dcl 283 in procedure "message_processor" set ref 270 308* 314 314 316 334* 349 349 349 349 349 p_mcb_ptr parameter pointer dcl 728 in procedure "external_more" set ref 716 765* 773 774 776* p_mcb_ptr parameter pointer dcl 613 in procedure "external_terminate" set ref 601 637* p_mcb_ptr parameter pointer dcl 487 in procedure "external_fail" set ref 473 504* 508* p_mcb_ptr parameter pointer dcl 428 in procedure "external_suspend" set ref 416 450 451 460 461 463* p_mess_len parameter fixed bin(17,0) dcl 59 set ref 36 138* 165* 173* 181* 189* 197* 205* 213* 220* p_mess_ptr parameter pointer dcl 58 set ref 36 131 134 138* 147* 157* 165* 173* 181* 189* 197* 205* 213* 220* 235 235 235 235 240 p_message_len parameter fixed bin(17,0) dcl 485 in procedure "external_fail" set ref 473 508* p_message_len parameter fixed bin(17,0) dcl 727 in procedure "external_more" set ref 716 776* p_message_len parameter fixed bin(17,0) dcl 664 in procedure "external_continue" set ref 647 700* p_message_len parameter fixed bin(17,0) dcl 282 in procedure "message_processor" set ref 270 308* p_message_len parameter fixed bin(17,0) dcl 531 in procedure "external_reset" set ref 519 570* p_message_len parameter fixed bin(17,0) dcl 371 in procedure "external_resume" set ref 361 406* p_message_len parameter fixed bin(17,0) dcl 611 in procedure "external_terminate" set ref 601 637* p_message_len parameter fixed bin(17,0) dcl 427 in procedure "external_suspend" set ref 416 463* p_message_ptr parameter pointer dcl 612 in procedure "external_terminate" set ref 601 637* p_message_ptr parameter pointer dcl 665 in procedure "external_continue" set ref 647 682 685 688 700* p_message_ptr parameter pointer dcl 798 in procedure "send_fail" ref 786 822 822 822 822 p_message_ptr parameter pointer dcl 284 in procedure "message_processor" set ref 270 303 305 308* 326 p_message_ptr parameter pointer dcl 532 in procedure "external_reset" set ref 519 570* 581 p_message_ptr parameter pointer dcl 429 in procedure "external_suspend" set ref 416 463* p_message_ptr parameter pointer dcl 373 in procedure "external_resume" set ref 361 406* p_message_ptr parameter pointer dcl 729 in procedure "external_more" set ref 716 746 749 752 776* p_message_ptr parameter pointer dcl 486 in procedure "external_fail" set ref 473 508* p_minor parameter fixed bin(17,0) dcl 57 in procedure "external_mowse_" set ref 36 122* 138* 147* 157* 173* 180 188 196 196 204 212 220* p_minor parameter fixed bin(17,0) dcl 281 in procedure "message_processor" ref 270 327 327 327 342 p_minor parameter fixed bin(17,0) dcl 796 in procedure "send_fail" ref 786 813 813 813 813 813 813 p_minor parameter fixed bin(17,0) dcl 661 in procedure "external_continue" set ref 647 705* p_mowse_info_ptr parameter pointer dcl 488 in procedure "external_fail" set ref 473 508* p_mowse_info_ptr parameter pointer dcl 726 in procedure "external_more" set ref 716 776* p_mowse_info_ptr parameter pointer dcl 280 in procedure "message_processor" ref 270 327 p_mowse_info_ptr parameter pointer dcl 610 in procedure "external_terminate" set ref 601 637* p_mowse_info_ptr parameter pointer dcl 374 in procedure "external_resume" set ref 361 390 400 406* p_mowse_info_ptr parameter pointer dcl 534 in procedure "external_reset" set ref 519 551 558 570* 578 p_mowse_info_ptr parameter pointer dcl 431 in procedure "external_suspend" set ref 416 447 457 463* p_mowse_mcb_ptr parameter pointer dcl 55 in procedure "external_mowse_" set ref 36 112* 122* 147* 157* 173* 240* 248* p_mowse_mcb_ptr parameter pointer dcl 663 in procedure "external_continue" set ref 647 705* p_mowse_mcb_ptr parameter pointer dcl 797 in procedure "send_fail" set ref 786 831* prepare_trace_ 000012 constant entry external dcl 68 ref 138 rank builtin function dcl 97 ref 134 235 235 235 235 240 303 305 326 581 682 685 688 746 749 752 822 822 822 822 release_outbuffer_ 000032 constant entry external dcl 82 ref 504 566 request_more_message based structure level 1 packed unaligned dcl 4-84 reset 2 based bit(1) array level 4 packed unaligned dcl 2-31 set ref 551 558* 578* send_mowse_message_ 000016 constant entry external dcl 70 ref 705 send_msg_ 000024 constant entry external dcl 76 ref 240 334 591 831 send_outbuff_data_ 000022 constant entry external dcl 74 ref 765 source_major 000134 automatic fixed bin(17,0) dcl 294 in procedure "message_processor" set ref 318* 334* 349 source_major 1 based char(1) level 3 in structure "request_more_message" packed unaligned dcl 4-84 in procedure "external_mowse_" ref 749 source_major 1 based char(1) level 3 in structure "last_message" packed unaligned dcl 4-110 in procedure "external_mowse_" ref 235 235 240 305 822 822 source_major 1(09) based char(1) level 3 in structure "more_remaining_message" packed unaligned dcl 4-96 in procedure "external_mowse_" ref 685 source_major 000170 automatic fixed bin(17,0) dcl 542 in procedure "external_reset" set ref 586* 591* source_major_num 000136 automatic fixed bin(17,0) dcl 296 in procedure "message_processor" set ref 305* 308* 318* 332 source_major_num 000221 automatic fixed bin(17,0) dcl 738 in procedure "external_more" set ref 749* 758 758 765* source_major_num 000207 automatic fixed bin(17,0) dcl 674 in procedure "external_continue" set ref 685* 693 693 700* 705* source_minor 000220 automatic fixed bin(17,0) dcl 737 in procedure "external_more" set ref 752* 758 758 765* source_minor 1(09) based char(1) level 3 in structure "request_more_message" packed unaligned dcl 4-84 in procedure "external_mowse_" ref 752 source_system 000210 automatic fixed bin(17,0) dcl 675 in procedure "external_continue" set ref 682* 705* source_system 0(27) based char(1) level 3 in structure "last_message" packed unaligned dcl 4-110 in procedure "external_mowse_" ref 235 235 303 581 822 822 source_system 000137 automatic fixed bin(17,0) dcl 297 in procedure "message_processor" set ref 303* 318* source_system 1 based char(1) level 3 in structure "more_remaining_message" packed unaligned dcl 4-96 in procedure "external_mowse_" ref 682 source_system 000222 automatic fixed bin(17,0) dcl 739 in procedure "external_more" set ref 746* 765* source_system 000171 automatic fixed bin(17,0) dcl 543 in procedure "external_reset" set ref 581* 583 586* source_system 0(27) based char(1) level 3 in structure "request_more_message" packed unaligned dcl 4-84 in procedure "external_mowse_" ref 746 suspended 2(01) based bit(1) array level 4 packed unaligned dcl 2-31 set ref 327 390 400* 447 457* 629* system based char(1) level 3 packed unaligned dcl 4-96 ref 688 temp_seg_name 000116 automatic char(6) initial unaligned dcl 1-22 set ref 1-22* trace 710 based bit(1) level 3 packed unaligned dcl 2-31 ref 138 trace_file_iocb 712 based pointer level 3 dcl 2-31 set ref 138* ws_error_$input_buffer_overflow 000010 external static fixed bin(35,0) dcl 64 ref 343 ws_error_$recursive_background_error 000036 external static fixed bin(35,0) dcl 86 set ref 258* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. ACCEPT internal static fixed bin(17,0) initial dcl 1-54 ADD_TO_REMOTE_CAT internal static fixed bin(17,0) initial dcl 1-78 CAPABILITY_NAME_LENGTH internal static fixed bin(17,0) initial dcl 2-27 DELETE_FROM_REMOTE_CAT internal static fixed bin(17,0) initial dcl 1-79 EXECUTE_CAPABILITY_REPLY internal static fixed bin(17,0) initial dcl 1-73 EXECUTE_COMMAND internal static fixed bin(17,0) initial dcl 1-77 FG internal static fixed bin(17,0) initial dcl 4-19 FG_BREAK internal static fixed bin(17,0) initial dcl 1-105 FG_CONTROL_MESSAGE internal static fixed bin(17,0) initial dcl 1-104 FG_MORE_DATA internal static fixed bin(17,0) initial dcl 1-107 FG_TERMINAL_DATA internal static fixed bin(17,0) initial dcl 1-106 MAXIMUM_BG_SIZE internal static fixed bin(17,0) initial dcl 1-44 MAXIMUM_BUFFER_SIZE internal static fixed bin(17,0) initial dcl 1-43 MAXIMUM_PACKET_SIZE internal static fixed bin(17,0) initial dcl 1-49 MAXIMUM_SYSTEM_MINOR internal static fixed bin(17,0) initial dcl 1-65 MINIMUM_BUFFER_SIZE internal static fixed bin(17,0) initial dcl 1-42 MINIMUM_USER_MINOR internal static fixed bin(17,0) initial dcl 1-66 MOWSE_VERSION_ internal static char(8) initial unaligned dcl 1-26 PUT_TO_BACKGROUND_BUFFER internal static fixed bin(17,0) initial dcl 1-108 PUT_TO_QUERY_MESSAGE_BUFFER internal static fixed bin(17,0) initial dcl 1-110 RECEIVE internal static fixed bin(17,0) initial dcl 1-59 REJECT internal static fixed bin(17,0) initial dcl 1-55 REMOTE_SYSTEM internal static fixed bin(17,0) initial dcl 1-31 REQUEST_CONNECT internal static fixed bin(17,0) initial dcl 1-92 REQUEST_DISCONNECT internal static fixed bin(17,0) initial dcl 1-93 RESET_SLEEP_FLAG internal static fixed bin(17,0) initial dcl 1-97 RESET_SUSPEND internal static fixed bin(17,0) initial dcl 1-99 SEND internal static fixed bin(17,0) initial dcl 1-60 SEND_QUERY internal static fixed bin(17,0) initial dcl 1-53 SET_SLEEP_FLAG internal static fixed bin(17,0) initial dcl 1-96 SET_SUSPEND internal static fixed bin(17,0) initial dcl 1-98 STATUS internal static fixed bin(17,0) initial dcl 1-86 STATUS_FAILED internal static fixed bin(8,0) initial dcl 1-37 STATUS_REPLY internal static fixed bin(17,0) initial dcl 1-100 STATUS_SUCCESS internal static fixed bin(8,0) initial dcl 1-35 WAKE_UP internal static fixed bin(17,0) initial dcl 1-85 alter_cat_message based structure level 1 packed unaligned dcl 4-63 execom_message based structure level 1 packed unaligned dcl 4-49 execom_reply_msg based structure level 1 packed unaligned dcl 4-122 init_mowse_info based structure level 1 unaligned dcl 2-68 init_mowse_info_ptr automatic pointer dcl 2-67 input_message based structure level 1 packed unaligned dcl 4-38 message_node based structure level 1 unaligned dcl 4-136 message_ptr automatic pointer dcl 4-34 msg_node_ptr automatic pointer dcl 4-135 open_struc based structure level 1 packed unaligned dcl 2-92 open_struc_ptr automatic pointer dcl 2-91 output_buffer based structure level 1 unaligned dcl 3-34 part_msg based char unaligned dcl 4-152 part_msg_length automatic fixed bin(17,0) dcl 4-151 part_msg_ptr automatic pointer dcl 4-144 partial_message based structure level 1 unaligned dcl 4-145 trace_message_info automatic structure level 1 unaligned dcl 4-155 NAMES DECLARED BY EXPLICIT CONTEXT. CAPABILITY_ERROR_RETURN 000472 constant label dcl 232 ref 124 external_continue 001445 constant entry internal dcl 647 ref 173 external_fail 001201 constant entry internal dcl 473 ref 197 external_more 001561 constant entry internal dcl 716 ref 165 external_mowse_ 000033 constant entry external dcl 36 external_reset 001241 constant entry internal dcl 519 ref 189 external_resume 001060 constant entry internal dcl 361 ref 213 external_suspend 001131 constant entry internal dcl 416 ref 205 external_terminate 001407 constant entry internal dcl 601 ref 181 message_processor 000632 constant entry internal dcl 270 ref 220 406 463 508 570 637 776 send_fail 001671 constant entry internal dcl 786 ref 147 157 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 2206 2246 2006 2216 Length 2552 2006 40 267 177 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME external_mowse_ 486 external procedure is an external procedure. on unit on line 120 72 on unit message_processor internal procedure shares stack frame of external procedure external_mowse_. external_resume internal procedure shares stack frame of external procedure external_mowse_. external_suspend internal procedure shares stack frame of external procedure external_mowse_. external_fail internal procedure shares stack frame of external procedure external_mowse_. external_reset internal procedure shares stack frame of external procedure external_mowse_. external_terminate internal procedure shares stack frame of external procedure external_mowse_. external_continue internal procedure shares stack frame of external procedure external_mowse_. external_more internal procedure shares stack frame of external procedure external_mowse_. send_fail internal procedure shares stack frame of external procedure external_mowse_. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME external_mowse_ 000100 mowse_info_ptr external_mowse_ 000102 destination external_mowse_ 000104 mcb_ptr external_mowse_ 000106 msg_type external_mowse_ 000116 temp_seg_name external_mowse_ 000120 message_len external_mowse_ 000132 major message_processor 000133 minor message_processor 000134 source_major message_processor 000135 code message_processor 000136 source_major_num message_processor 000137 source_system message_processor 000170 source_major external_reset 000171 source_system external_reset 000206 dest_system external_continue 000207 source_major_num external_continue 000210 source_system external_continue 000220 source_minor external_more 000221 source_major_num external_more 000222 source_system external_more 000232 destination send_fail THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ent_var_desc call_ext_out return_mac tra_ext_1 alloc_auto_adj enable_op ext_entry int_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. capability_$pack fatal_mowse_trap_ get_mowse_info_ptr_ message_manager_ mowse_error_handler_ prepare_trace_ release_outbuffer_ send_mowse_message_ send_msg_ send_outbuff_data_ THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. ws_error_$input_buffer_overflow ws_error_$recursive_background_error LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 36 000025 1 22 000040 4 33 000042 4 155 000044 111 000052 112 000054 114 000066 119 000071 120 000074 122 000110 124 000124 131 000127 134 000134 138 000143 145 000165 147 000173 148 000207 154 000212 156 000217 157 000223 158 000237 164 000242 165 000245 167 000263 172 000264 173 000266 175 000310 180 000311 181 000314 183 000332 188 000333 189 000335 191 000355 196 000356 197 000362 199 000402 204 000403 205 000405 207 000425 212 000426 213 000430 215 000446 220 000447 223 000467 224 000471 232 000472 235 000474 240 000525 247 000566 248 000570 249 000603 252 000606 255 000612 256 000616 257 000620 258 000621 259 000630 847 000631 270 000632 301 000634 303 000635 305 000644 308 000651 314 000673 316 000700 318 000701 320 000716 326 000722 327 000731 332 000746 334 000752 336 001001 342 001002 343 001004 349 001012 354 001057 361 001060 386 001062 390 001063 393 001074 394 001077 395 001100 400 001101 403 001103 404 001106 406 001107 409 001130 416 001131 443 001133 447 001134 450 001144 451 001147 452 001150 457 001151 460 001153 461 001156 463 001157 466 001200 473 001201 500 001203 504 001204 508 001213 510 001234 512 001240 519 001241 547 001243 551 001244 558 001255 563 001257 564 001262 566 001263 570 001272 572 001313 578 001317 581 001325 583 001334 586 001337 588 001354 591 001360 594 001406 601 001407 625 001411 629 001412 634 001420 635 001422 637 001423 640 001444 647 001445 680 001447 682 001450 685 001457 688 001464 693 001471 700 001477 705 001521 709 001560 716 001561 744 001563 746 001564 749 001573 752 001600 758 001605 765 001620 767 001640 773 001644 774 001647 776 001650 779 001670 786 001671 811 001673 813 001674 818 001711 819 001712 822 001713 826 001745 827 001750 828 001752 831 001753 834 002002 ----------------------------------------------------------- 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