COMPILATION LISTING OF SEGMENT system_message_handler_ 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 1329.3 mst Tue Options: optimize map 1 /****^ *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Bull Inc., 1987 * 4* * * 5* * Copyright, (C) Honeywell Information Systems Inc., 1985 * 6* * * 7* *********************************************************** */ 8 9 /****^ HISTORY COMMENTS: 10* 1) change(85-11-27,Herbst), approve(87-07-23,MCR7697), 11* audit(87-07-23,GDixon), install(87-08-04,MR12.1-1055): 12* New program. 13* 2) change(85-12-19,Herbst), approve(87-07-23,MCR7697), 14* audit(87-07-23,GDixon), install(87-08-04,MR12.1-1055): 15* Fixed to free all read messages, moved asum handle to 16* user_message_handles.incl.pl1 17* 3) change(87-01-27,Brunelle), approve(87-07-23,MCR7697), 18* audit(87-07-23,GDixon), install(87-08-04,MR12.1-1055): 19* Changed to use user_message_$read_message instead of 20* as_user_message_$user_read_message. Changed to send messages to the user 21* via the message facility if at all possible. Also to send message to 22* initializer if an INACTIVITY message was received. 23* 4) change(87-04-20,Brunelle), approve(87-07-23,MCR7697), 24* audit(87-07-23,GDixon), install(87-08-04,MR12.1-1055): 25* Add call to iox_$control to "start" I/O on the channel again. 26* 5) change(87-04-22,Brunelle), approve(87-07-23,MCR7697), 27* audit(87-07-23,GDixon), install(87-08-04,MR12.1-1055): 28* Removed all use of message facility, instead, just sending message 29* directly to user_i/o. 30* 6) change(87-07-23,Brunelle), approve(87-07-23,MCR7697), 31* audit(87-07-23,GDixon), install(87-08-04,MR12.1-1055): 32* Remove window in the freeing of message in cleanup handler and general 33* minor cleanup. 34* END HISTORY COMMENTS */ 35 36 /* format: style4 */ 37 38 system_message_handler_: proc (); 39 40 /* Static handler for all system messages, those accompanied by the 41* system_message_ IPS signal. This program reads all pending system 42* messages from the user_message_ facility and performs an appropriate 43* action for each. 44* 45* Currently, there are two kinds of system messages supported, both from 46* the Answering Service: warning and inactivity messages. 47* 48* Each is displayed on user_i/o. 49**/ 50 51 /* External */ 52 53 dcl iox_$control entry (ptr, char (*), ptr, fixed bin (35)); 54 dcl iox_$user_io ptr external; 55 56 /* Entries */ 57 58 dcl get_group_id_ entry () returns (char (32)); 59 dcl get_process_id_ entry () returns (bit (36)); 60 dcl get_system_free_area_ entry () returns (ptr); 61 dcl hcs_$wakeup entry (bit (36) aligned, fixed bin (71), fixed bin (71), fixed bin (35)); 62 dcl ioa_$ioa_switch entry options (variable); 63 dcl ioa_$rsnpnnl entry () options (variable); 64 dcl user_info_$logout_data entry options (variable); 65 dcl user_message_$read_message entry (ptr, ptr, fixed bin (35)); 66 67 dcl cleanup condition; 68 69 dcl (addr, null, substr, unspec) builtin; 70 71 /* Internal Static */ 72 73 dcl system_area_ptr ptr int static init (null); 74 75 /* Based */ 76 77 dcl event_message_string char (8) aligned based (event_message_ptr); /* char string variable for event message */ 78 dcl system_area area based (system_area_ptr); 79 80 /* Automatic */ 81 82 dcl code fixed bin (35); /* general error code */ 83 dcl event_message fixed bin (71); /* event message for answering service */ 84 dcl event_message_ptr ptr; /* ptr to event message */ 85 dcl inactivity_msg_rcvd bit (1); /* set on if we process an inactivity warn message */ 86 dcl logout_channel fixed bin (71); /* logout channel to initializer */ 87 dcl logout_pid bit (36) aligned; /* process ID if initializer */ 88 dcl output_message char (1024); /* message to user */ 89 dcl output_message_length fixed bin (21); /* and length of same */ 90 91 dcl 1 auto_asum_info aligned like as_user_message_info; 92 93 if system_area_ptr = null then 94 system_area_ptr = get_system_free_area_ (); 95 96 system_message_ptr = null; 97 inactivity_msg_rcvd = "0"b; 98 99 unspec (auto_asum_info) = "0"b; 100 auto_asum_info.version = AS_USER_MESSAGE_INFO_VERSION_1; 101 auto_asum_info.message_handle = SYSTEM_MESSAGE_HANDLE; 102 auto_asum_info.destination_info.group_id = get_group_id_ (); 103 auto_asum_info.destination_info.process_id = get_process_id_ (); 104 105 on cleanup begin; 106 if auto_asum_info.message_ptr ^= null then 107 call FREE_MESSAGE (); 108 if inactivity_msg_rcvd then 109 call SEND_RESPONSE_TO_INITIALIZER (); 110 end; 111 112 do while ("1"b); 113 114 call GET_MESSAGE (); 115 116 if system_message.type = SYSTEM_MESSAGE_TYPE_AS_WARN then do; 117 call ioa_$rsnpnnl ("^[^a: ^;^s^]^a", 118 output_message, output_message_length, 119 warn_system_message.caller ^= "", warn_system_message.caller, 120 warn_system_message.text); 121 end; 122 else if system_message.type = SYSTEM_MESSAGE_TYPE_AS_INACTIVITY then do; 123 inactivity_msg_rcvd = "1"b; /* remember we have to respond */ 124 call ioa_$rsnpnnl ("^[^a: ^;^s^]^a", 125 output_message, output_message_length, 126 inactivity_system_message.caller ^= "", inactivity_system_message.caller, 127 inactivity_system_message.text); 128 end; 129 else if system_message.type = SYSTEM_MESSAGE_TYPE_DM_SHUT then do; 130 /* not currently used */ 131 call ioa_$rsnpnnl ("^[^a: ^;^s^]^a", 132 output_message, output_message_length, 133 dm_shut_system_message.caller ^= "", dm_shut_system_message.caller, 134 dm_shut_system_message.text); 135 end; 136 137 call FREE_MESSAGE (); 138 139 /* display message on user's screen */ 140 call ioa_$ioa_switch (iox_$user_io, 141 substr (output_message, 1, output_message_length)); 142 end; 143 RETURN: 144 145 /* make sure we restart all I/O again */ 146 call iox_$control (iox_$user_io, "start", null (), code); 147 148 /* if any of the messages were for inactivity, inform Initializer we are done */ 149 if inactivity_msg_rcvd then do; 150 call SEND_RESPONSE_TO_INITIALIZER (); 151 end; 152 153 return; 154 155 FREE_MESSAGE: proc; 156 157 dcl based_message (auto_asum_info.message_length) fixed bin (35) based (auto_asum_info.message_ptr); 158 159 free based_message in (system_area); 160 auto_asum_info.message_ptr = null; 161 162 end FREE_MESSAGE; 163 164 GET_MESSAGE: proc (); 165 166 do while ("1"b); 167 168 auto_asum_info.message_ptr = null; 169 call user_message_$read_message (system_area_ptr, addr (auto_asum_info), code); 170 if code ^= 0 then go to RETURN; 171 172 system_message_ptr = auto_asum_info.message_ptr; 173 174 if system_message.version = SYSTEM_MESSAGE_VERSION_1 then do; 175 176 if system_message.type = SYSTEM_MESSAGE_TYPE_AS_WARN then do; 177 if system_message.type_version = SYSTEM_MESSAGE_AS_WARN_V1 then return; 178 end; 179 180 else if system_message.type = SYSTEM_MESSAGE_TYPE_AS_INACTIVITY then do; 181 if system_message.type_version = SYSTEM_MESSAGE_AS_INACTIVITY_V1 then return; 182 end; 183 184 else if system_message.type = SYSTEM_MESSAGE_TYPE_DM_SHUT then do; 185 if system_message.type_version = SYSTEM_MESSAGE_DM_SHUT_V1 then return; 186 end; 187 end; 188 189 else call FREE_MESSAGE (); 190 end; 191 192 end GET_MESSAGE; 193 194 SEND_RESPONSE_TO_INITIALIZER: proc (); 195 196 event_message_ptr = addr (event_message); 197 event_message_string = "inacrcvd"; 198 call user_info_$logout_data (logout_channel, logout_pid); /* get logout information */ 199 call hcs_$wakeup (logout_pid, logout_channel, event_message, code); /* send message to answering service */ 200 201 end SEND_RESPONSE_TO_INITIALIZER; 202 /* Begin include file as_user_message_info.incl.pl1 BIM 1985-01-11 */ 1 2 /* format: style4 */ 1 3 1 4 /**** This structure is passed in by a user process to read out 1 5* an A.S. user message. */ 1 6 1 7 declare as_user_message_info_ptr pointer; 1 8 declare 1 as_user_message_info aligned based (as_user_message_info_ptr), 1 9 2 version char (8) aligned, 1 10 2 flags aligned, 1 11 3 read_message_id bit (1) unaligned, /* message_id specified -- read that one */ 1 12 3 read_after_message_id bit (1) unaligned, /* message_id specified -- read the next one for the handle after that */ 1 13 3 no_handle_given bit (1) unaligned, /* application debugging: look at all messages for us, regardless of handle */ 1 14 3 ring_given bit (1) unaligned, /* application debugging: look at outer ring messages */ 1 15 3 dont_delete bit (1) unaligned, /* application debugging, look at message but don't delete them */ 1 16 3 pad bit (31) unaligned, 1 17 2 message_info aligned, /* Output arguments */ 1 18 3 message_ptr pointer, 1 19 3 message_length fixed bin (18), /* words */ 1 20 3 pad bit (36) aligned, 1 21 3 message_id bit (72) aligned, 1 22 3 message_access_class bit (72) aligned, 1 23 3 message_handle bit (72) aligned, 1 24 3 message_ring fixed bin (3), 1 25 2 sender_info aligned, 1 26 3 group_id char (32) unaligned, 1 27 3 process_id bit (36) aligned, 1 28 2 destination_info aligned, 1 29 3 group_id char (32) unal, 1 30 3 process_id bit (36) aligned, 1 31 3 ring fixed bin (3) aligned; 1 32 1 33 declare AS_USER_MESSAGE_INFO_VERSION_1 char (8) aligned init ("asum0001") int static options (constant); 1 34 1 35 /* End include file as_user_message_info.incl.pl1 */ 202 203 /* BEGIN INCLUDE FILE system_message.incl.pl1 */ 2 2 2 3 /****^ HISTORY COMMENTS: 2 4* 1) change(85-12-19,Herbst), approve(87-07-20,MCR7697), 2 5* audit(87-07-20,GDixon), install(87-08-04,MR12.1-1056): 2 6* Moved SYSTEM MESSAGE_HANDLE to user_message_handles.incl.pl1 2 7* 2) change(87-02-24,Brunelle), approve(87-07-20,MCR7697), 2 8* audit(87-07-20,GDixon), install(87-08-04,MR12.1-1056): 2 9* added INACTIVITY message same as WARN message to be able to tell messages 2 10* apart. 2 11* 3) change(87-05-30,Brunelle), approve(87-07-20,MCR7697), 2 12* audit(87-07-20,GDixon), install(87-08-04,MR12.1-1056): 2 13* Added SYSTEM_MESSAGE_TYPES array. 2 14* END HISTORY COMMENTS */ 2 15 2 16 dcl system_message_ptr ptr aligned; 2 17 2 18 dcl 1 system_message_header aligned based, 2 19 2 version char (8), /* version of this structure */ 2 20 2 type fixed bin, /* type of message: AS_WARN_.., etc. */ 2 21 2 type_version char (8); /* version of info for this type */ 2 22 2 23 dcl 1 system_message aligned based (system_message_ptr), /* generic */ 2 24 2 header aligned like system_message_header, 2 25 2 contents bit (0); /* types are of different length */ 2 26 2 27 dcl SYSTEM_MESSAGE_VERSION_1 char (8) int static options (constant) init ("SYSMSG01"); 2 28 2 29 dcl system_message_text_len fixed bin; 2 30 2 31 dcl 1 warn_system_message aligned based (system_message_ptr), 2 32 2 header aligned like system_message_header, 2 33 2 caller char (64), 2 34 2 text_len fixed bin (21), 2 35 2 text char (system_message_text_len refer (warn_system_message.text_len)); 2 36 2 37 dcl 1 inactivity_system_message aligned based (system_message_ptr), 2 38 2 header aligned like system_message_header, 2 39 2 caller char (64), 2 40 2 text_len fixed bin (21), 2 41 2 text char (system_message_text_len refer (inactivity_system_message.text_len)); 2 42 2 43 dcl 1 dm_shut_system_message aligned based (system_message_ptr), 2 44 2 header aligned like system_message_header, 2 45 2 caller char (64), 2 46 2 text_len fixed bin (21), 2 47 2 text char (system_message_text_len refer (dm_shut_system_message.text_len)); 2 48 2 49 dcl (ANY_TYPE init (0), 2 50 SYSTEM_MESSAGE_TYPE_AS_WARN init (1), 2 51 SYSTEM_MESSAGE_TYPE_DM_SHUT init (2), 2 52 SYSTEM_MESSAGE_TYPE_AS_INACTIVITY init (3)) 2 53 fixed bin int static options (constant); 2 54 2 55 dcl (SYSTEM_MESSAGE_AS_WARN_V1 init ("SYSASW01"), 2 56 SYSTEM_MESSAGE_DM_SHUT_V1 init ("SYSDMS01"), 2 57 SYSTEM_MESSAGE_AS_INACTIVITY_V1 init ("SYSASI01")) 2 58 char (8) int static options (constant); 2 59 2 60 dcl SYSTEM_MESSAGE_TYPES (0:3) char(12) varying int static options(constant) 2 61 init("unknown type", "AS warning", "DM shutdown", "inactivity"); 2 62 2 63 2 64 /* END INCLUDE FILE system_message.incl.pl1 */ 203 204 /* BEGIN INCLUDE FILE...user_message_handles.incl.pl1 */ 3 2 3 3 3 4 /****^ HISTORY COMMENTS: 3 5* 1) change(85-12-19,Herbst), approve(87-07-20,MCR7697), 3 6* audit(87-07-20,GDixon), install(87-08-04,MR12.1-1056): 3 7* Added SYSTEM_MESSAGE_HANDLE 3 8* 2) change(86-06-30,Coren), approve(86-06-30,MCR7415), 3 9* audit(86-07-02,Margolin), install(86-07-11,MR12.0-1092): 3 10* Added USER_MESSAGE_LS_CONNECTION_INFO_HANDLE and 3 11* USER_MESSAGE_LS_CONNECTION_INFO_HANDLE_LOWER_18 for use by login servers. 3 12* END HISTORY COMMENTS */ 3 13 3 14 /* This include file defines "well-known" handles for as_user_messages, 3 15* i.e., each of the handles defined here will be used for a particular purpose, 3 16* and programs that expect to receive such messages will use the appropriate 3 17* handle to read them. 3 18**/ 3 19 3 20 dcl USER_MESSAGE_LS_CONNECTION_INFO_HANDLE initial ("000000000000777777777777"b3) /* connection_info sent by login server to newly created process */ 3 21 bit (72) aligned internal static options (constant); 3 22 3 23 dcl USER_MESSAGE_LS_CONNECTION_INFO_HANDLE_LOWER_18 initial ("777777"b3) /* allows upper 54 bits to be used for unique identifier */ 3 24 bit (18) aligned internal static options (constant); 3 25 3 26 dcl SYSTEM_MESSAGE_HANDLE initial ("770007700077000770007700"b3) /* for warn and dm_shut messages */ 3 27 bit (72) aligned internal static options (constant); 3 28 3 29 3 30 /* END INCLUDE FILE...user_message_handles.incl.pl1 */ 204 205 206 end system_message_handler_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 08/04/87 1221.5 system_message_handler_.pl1 >special_ldd>install>MR12.1-1054>system_message_handler_.pl1 202 1 03/08/85 0852.7 as_user_message_info.incl.pl1 >ldd>include>as_user_message_info.incl.pl1 203 2 08/04/87 1138.9 system_message.incl.pl1 >spec>install>1056>system_message.incl.pl1 204 3 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_INFO_VERSION_1 000012 constant char(8) initial dcl 1-33 ref 100 SYSTEM_MESSAGE_AS_INACTIVITY_V1 000002 constant char(8) initial unaligned dcl 2-55 ref 181 SYSTEM_MESSAGE_AS_WARN_V1 000006 constant char(8) initial unaligned dcl 2-55 ref 177 SYSTEM_MESSAGE_DM_SHUT_V1 000004 constant char(8) initial unaligned dcl 2-55 ref 185 SYSTEM_MESSAGE_HANDLE 000000 constant bit(72) initial dcl 3-26 ref 101 SYSTEM_MESSAGE_TYPE_AS_INACTIVITY constant fixed bin(17,0) initial dcl 2-49 ref 122 180 SYSTEM_MESSAGE_TYPE_AS_WARN constant fixed bin(17,0) initial dcl 2-49 ref 116 176 SYSTEM_MESSAGE_TYPE_DM_SHUT constant fixed bin(17,0) initial dcl 2-49 ref 129 184 SYSTEM_MESSAGE_VERSION_1 000010 constant char(8) initial unaligned dcl 2-27 ref 174 addr builtin function dcl 69 ref 169 169 196 as_user_message_info based structure level 1 dcl 1-8 auto_asum_info 000522 automatic structure level 1 dcl 91 set ref 99* 169 169 based_message based fixed bin(35,0) array dcl 157 ref 159 caller 5 based char(64) level 2 in structure "inactivity_system_message" dcl 2-37 in procedure "system_message_handler_" set ref 124 124* caller 5 based char(64) level 2 in structure "warn_system_message" dcl 2-31 in procedure "system_message_handler_" set ref 117 117* caller 5 based char(64) level 2 in structure "dm_shut_system_message" dcl 2-43 in procedure "system_message_handler_" set ref 131 131* cleanup 000100 stack reference condition dcl 67 ref 105 code 000106 automatic fixed bin(35,0) dcl 82 set ref 143* 169* 170 199* destination_info 30 000522 automatic structure level 2 dcl 91 dm_shut_system_message based structure level 1 dcl 2-43 event_message 000110 automatic fixed bin(71,0) dcl 83 set ref 196 199* event_message_ptr 000112 automatic pointer dcl 84 set ref 196* 197 event_message_string based char(8) dcl 77 set ref 197* get_group_id_ 000016 constant entry external dcl 58 ref 102 get_process_id_ 000020 constant entry external dcl 59 ref 103 get_system_free_area_ 000022 constant entry external dcl 60 ref 93 group_id 30 000522 automatic char(32) level 3 packed unaligned dcl 91 set ref 102* hcs_$wakeup 000024 constant entry external dcl 61 ref 199 header based structure level 2 dcl 2-23 inactivity_msg_rcvd 000114 automatic bit(1) unaligned dcl 85 set ref 97* 108 123* 149 inactivity_system_message based structure level 1 dcl 2-37 ioa_$ioa_switch 000026 constant entry external dcl 62 ref 140 ioa_$rsnpnnl 000030 constant entry external dcl 63 ref 117 124 131 iox_$control 000012 constant entry external dcl 53 ref 143 iox_$user_io 000014 external static pointer dcl 54 set ref 140* 143* logout_channel 000116 automatic fixed bin(71,0) dcl 86 set ref 198* 199* logout_pid 000120 automatic bit(36) dcl 87 set ref 198* 199* message_handle 14 000522 automatic bit(72) level 3 dcl 91 set ref 101* message_info 4 000522 automatic structure level 2 dcl 91 message_length 6 000522 automatic fixed bin(18,0) level 3 dcl 91 set ref 159 message_ptr 4 000522 automatic pointer level 3 dcl 91 set ref 106 159 160* 168* 172 null builtin function dcl 69 ref 93 96 106 143 143 160 168 output_message 000121 automatic char(1024) unaligned dcl 88 set ref 117* 124* 131* 140 140 output_message_length 000521 automatic fixed bin(21,0) dcl 89 set ref 117* 124* 131* 140 140 process_id 40 000522 automatic bit(36) level 3 dcl 91 set ref 103* substr builtin function dcl 69 ref 140 140 system_area based area(1024) dcl 78 ref 159 system_area_ptr 000010 internal static pointer initial dcl 73 set ref 93 93* 159 169* system_message based structure level 1 dcl 2-23 system_message_header based structure level 1 dcl 2-18 system_message_ptr 000564 automatic pointer dcl 2-16 set ref 96* 116 117 117 117 122 124 124 124 129 131 131 131 172* 174 176 177 180 181 184 185 text 26 based char level 2 in structure "warn_system_message" dcl 2-31 in procedure "system_message_handler_" set ref 117* text 26 based char level 2 in structure "dm_shut_system_message" dcl 2-43 in procedure "system_message_handler_" set ref 131* text 26 based char level 2 in structure "inactivity_system_message" dcl 2-37 in procedure "system_message_handler_" set ref 124* text_len 25 based fixed bin(21,0) level 2 in structure "warn_system_message" dcl 2-31 in procedure "system_message_handler_" ref 117 117 text_len 25 based fixed bin(21,0) level 2 in structure "inactivity_system_message" dcl 2-37 in procedure "system_message_handler_" ref 124 124 text_len 25 based fixed bin(21,0) level 2 in structure "dm_shut_system_message" dcl 2-43 in procedure "system_message_handler_" ref 131 131 type 2 based fixed bin(17,0) level 3 dcl 2-23 ref 116 122 129 176 180 184 type_version 3 based char(8) level 3 dcl 2-23 ref 177 181 185 unspec builtin function dcl 69 set ref 99* user_info_$logout_data 000032 constant entry external dcl 64 ref 198 user_message_$read_message 000034 constant entry external dcl 65 ref 169 version based char(8) level 3 in structure "system_message" dcl 2-23 in procedure "system_message_handler_" ref 174 version 000522 automatic char(8) level 2 in structure "auto_asum_info" dcl 91 in procedure "system_message_handler_" set ref 100* warn_system_message based structure level 1 dcl 2-31 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. ANY_TYPE internal static fixed bin(17,0) initial dcl 2-49 SYSTEM_MESSAGE_TYPES internal static varying char(12) initial array dcl 2-60 USER_MESSAGE_LS_CONNECTION_INFO_HANDLE internal static bit(72) initial dcl 3-20 USER_MESSAGE_LS_CONNECTION_INFO_HANDLE_LOWER_18 internal static bit(18) initial dcl 3-23 as_user_message_info_ptr automatic pointer dcl 1-7 system_message_text_len automatic fixed bin(17,0) dcl 2-29 NAMES DECLARED BY EXPLICIT CONTEXT. FREE_MESSAGE 000462 constant entry internal dcl 155 ref 106 137 189 GET_MESSAGE 000476 constant entry internal dcl 164 ref 114 RETURN 000422 constant label dcl 143 ref 170 SEND_RESPONSE_TO_INITIALIZER 000570 constant entry internal dcl 194 ref 108 150 system_message_handler_ 000047 constant entry external dcl 38 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 1032 1070 637 1042 Length 1346 637 36 241 172 2 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME system_message_handler_ 426 external procedure is an external procedure. on unit on line 105 64 on unit FREE_MESSAGE 64 internal procedure is called by several nonquick procedures. GET_MESSAGE internal procedure shares stack frame of external procedure system_message_handler_. SEND_RESPONSE_TO_INITIALIZER 74 internal procedure is called by several nonquick procedures. STORAGE FOR INTERNAL STATIC VARIABLES. LOC IDENTIFIER BLOCK NAME 000010 system_area_ptr system_message_handler_ STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME system_message_handler_ 000106 code system_message_handler_ 000110 event_message system_message_handler_ 000112 event_message_ptr system_message_handler_ 000114 inactivity_msg_rcvd system_message_handler_ 000116 logout_channel system_message_handler_ 000120 logout_pid system_message_handler_ 000121 output_message system_message_handler_ 000521 output_message_length system_message_handler_ 000522 auto_asum_info system_message_handler_ 000564 system_message_ptr system_message_handler_ THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. r_ne_as alloc_char_temp call_ext_out_desc call_ext_out call_int_this call_int_other return_mac enable_op shorten_stack ext_entry int_entry op_freen_ THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. get_group_id_ get_process_id_ get_system_free_area_ hcs_$wakeup ioa_$ioa_switch ioa_$rsnpnnl iox_$control user_info_$logout_data user_message_$read_message THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. iox_$user_io LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 38 000046 93 000054 96 000066 97 000070 99 000071 100 000074 101 000076 102 000100 103 000107 105 000120 106 000134 108 000146 110 000156 112 000157 114 000160 116 000161 117 000165 121 000236 122 000237 123 000241 124 000243 128 000314 129 000315 131 000317 137 000370 140 000374 142 000420 143 000422 149 000452 150 000454 153 000460 155 000461 159 000467 160 000472 162 000475 164 000476 166 000477 168 000500 169 000502 170 000517 172 000521 174 000523 176 000530 177 000533 178 000540 180 000541 181 000543 182 000550 184 000551 185 000553 187 000560 189 000561 190 000565 192 000566 194 000567 196 000575 197 000601 198 000604 199 000620 201 000636 ----------------------------------------------------------- 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