COMPILATION LISTING OF SEGMENT xmail_im_mgr_ Compiled by: Multics PL/I Compiler, Release 30, of February 16, 1988 Compiled at: Honeywell Bull, Phoenix AZ, SysM Compiled on: 05/31/88 1500.6 mst Tue Options: optimize map 1 /****^ *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Bull Inc., 1988 * 4* * * 5* * Copyright, (C) Honeywell Information Systems Inc., 1985 * 6* * * 7* *********************************************************** */ 8 9 10 /****^ HISTORY COMMENTS: 11* 1) change(86-02-27,Blair), approve(86-02-27,MCR7358), 12* audit(86-04-18,RBarstad), install(86-05-28,MR12.0-1062): 13* 85-04-15 JG Backs: Written from xforum_im_mgr.pl1 14* 15* 85-04-17 JG Backs: Added a print_messages entry to allow for restoring 16* original without printing messages in the case of restore_original 17* being called during a cleanup condition. Deleted the call to 18* print_unseen_messages from restore_original entry. 19* 20* 85-04-23 JG Backs: Cleanup code for standards. 21* 2) change(86-06-04,Blair), approve(86-07-15,MCR7447), 22* audit(86-07-18,LJAdams), install(86-07-21,MR12.0-1100): 23* Delete xim_defer_message structure, have defer_messages always set things 24* up with the accept_messages structure and use dummy wakeup_handler entries 25* to take advantage of message_facility_ changes which make processing 26* faster. 27* 3) change(88-04-06,Blair), approve(88-05-02,MCR7882), 28* audit(88-05-13,LJAdams), install(88-05-31,MR12.2-1050): 29* Make the print_unseen_messages routine call xmail_area_$create to define 30* the area that the msg_array structure will be placed in. 31* END HISTORY COMMENTS */ 32 33 xmail_im_mgr: proc; 34 35 /* 36* BEGIN DESCRIPTION 37* 38* function: 39* This module manages interactive message handling for the Executive Mail 40* subsystem. 41* 42* description of entry points: 43* xmail_im_mgr: This entry point should never be called. 44* 45* init: This entry obtains a pointer to the msg_facility_mailbox structure 46* to the users default mailbox (>udd>PROJECT_ID>PERSON_ID>PERSON_ID.mbx. 47* It also records the message handling state of that mailbox and sets the 48* message handling states for the xmail message handling accept and 49* defer states. This entry must be called before any other entry in this 50* module. Note that if the original_wakeup_flags = "0"b it means that 51* messages have never been accepted. There is a ring 1 restriction 52* that prevents the wakeup_state_flags from being reset to "0"b once they 53* have been set to something else. Because of this the original 54* wakeup_state_flags will be changed to "72"b3 (defer messages) if they 55* are "0"b 56* 57* accept_messages: This entry changes the message handling state of the 58* users default mailbox to the Executive Mail accept messages state. 59* This state looks like the system standard accept message state except 60* that all messages are held. It will also print out all unseen messages 61* by calling the print_unseen_messages procedure. 62* 63* defer_messages: This entry changes the message handling state to the 64* Executive Mail defer messages state. This state looks like the system 65* standard defer message state. 66* 67* restore_original: This entry will change the message handling 68* state to the state it was in before the call to the init entry. 69* If not a cleanup condition, a call to the print_messages entrypoint 70* should be made before calling this entrypoint. 71* 72* print_messages: This entry will print out all unseen messages by 73* calling the print_unseen_messages procedure. 74* 75* description of internal procedures: 76* set_message_facility_data: Given a structure that defines a message 77* handling state this procedure calls the appropriate message_facility 78* entry points to set that state. 79* 80* print_unseen_messages: This procedure causes all unseen messages to be 81* printed over user_io. It then marks those messages as printed. In the 82* event of an error while printing a message an error message is output and 83* printing of other unseen messages is aborted. This procedure uses 84* the message_facility entrypoints. 85* 86* print_error: This procedure will print an error message explaining that 87* an error occurred while printing messages and that the messages may be 88* read after Xmail is exited. A timer puts the process to sleep for 4 89* seconds so that the message may be read. 90* 91* error: This procedure will call xmail_error_ with "quit" action after 92* logging the error. It will be called if an error is returned from one 93* of the message_facility_ calls. It will also be called if the main 94* entry point xmail_im_mgr$xmail_im_mgr is called. 95* 96* known bugs: 97* 98* notes: 99* 100* END DESCRIPTION 101**/ 102 103 /* PARAMETERS */ 104 105 /* EXTERNAL STATIC */ 106 107 dcl iox_$user_io ptr ext static; 108 109 /* ENTRIES */ 110 111 dcl ioa_ entry () options (variable); 112 dcl message_facility_$get_alarm_handler entry (ptr, entry, ptr, fixed bin (71), fixed bin (35)); 113 dcl message_facility_$get_message_format entry (ptr, bit (1) aligned, fixed bin (35)); 114 dcl message_facility_$get_msg_array_ptr entry (ptr, ptr, ptr, fixed bin, fixed bin (35)); 115 dcl message_facility_$get_msgf_mbx_ptr entry (char (*), char (*), ptr, fixed bin (35)); 116 dcl message_facility_$get_prefix entry (ptr, char (32) var, bit (1) aligned, fixed bin (35)); 117 dcl message_facility_$get_wakeup_handler entry (ptr, entry, ptr, fixed bin (35)); 118 dcl message_facility_$get_wakeup_state entry (ptr, bit (*), fixed bin (35)); 119 dcl message_facility_$print_message entry (ptr, ptr, bit (72) aligned, ptr, fixed bin (35)); 120 dcl message_facility_$set_alarm_handler entry (ptr, entry, ptr, fixed bin (71), fixed bin (35)); 121 dcl message_facility_$set_message_format entry (ptr, bit (1) aligned, fixed bin (35)); 122 dcl message_facility_$set_prefix entry (ptr, char (32) var, bit (1) aligned, fixed bin (35)); 123 dcl message_facility_$set_seen_switch entry (ptr, bit (72) aligned, bit (*), fixed bin (35)); 124 dcl message_facility_$set_wakeup_handler entry (ptr, entry, ptr, fixed bin (35)); 125 dcl message_facility_$set_wakeup_state entry (ptr, bit (*), fixed bin (35)); 126 dcl xmail_im_mgr_$dummy entry (); 127 dcl timer_manager_$sleep entry (fixed bin (71), bit (2)); 128 dcl user_info_ entry (char (*), char (*), char (*)); 129 130 /* CONDITIONS */ 131 132 /* INTERNAL AUTOMATIC */ 133 134 /* INTERNAL STATIC */ 135 136 dcl first_time bit (1) aligned init ("1"b) internal static; 137 dcl pum_work_area_ptr ptr; 138 dcl ( 139 xim_msg_facility_mbx_ptr ptr, 140 01 xim_accept_messages like message_facility_data, 141 01 xim_original like message_facility_data 142 ) internal static; 143 144 /* CONSTANTS */ 145 146 dcl NAME char (13) init ("xmail_im_mgr_") internal static options (constant); 147 dcl QUIT char (1) init ("q") internal static options (constant); 148 dcl xim_512_SPACES char (512) init (" ") internal static options (constant); 149 150 /* BUILTINS */ 151 152 dcl (addr, null, rtrim, substr) builtin; 153 154 /* BASED */ 155 156 dcl 01 message_facility_data based, 157 02 wakeup_state_flags bit (36), 158 02 prefix_string char (32) varying, 159 02 short_prefix bit (1) aligned, 160 02 short_format bit (1) aligned, 161 02 alarm_entry entry, 162 02 alarm_info_ptr ptr, 163 02 alarm_time fixed bin (71), 164 02 wakeup_entry entry, 165 02 wakeup_info_ptr ptr; 166 167 168 /* INCLUDE FILES */ 169 1 1 /* BEGIN INCLUDE FILE msg_array.incl.pl1 */ 1 2 /* Written 05/29/84 by Jim Lippard */ 1 3 1 4 dcl 1 msg_array (n_messages) aligned based (msg_array_ptr), 1 5 2 message_id bit (72), 1 6 2 message_number fixed bin, 1 7 2 flags, 1 8 3 printed bit (1) unal, 1 9 3 mbz bit (35) unal; 1 10 1 11 dcl msg_array_ptr ptr; 1 12 1 13 dcl n_messages fixed bin; 1 14 1 15 dcl DELETE_UNHELD bit (3) internal static options (constant) init ("100"b); 1 16 dcl DONT_DELETE_MESSAGES bit (3) internal static options (constant) init ("010"b); 1 17 dcl DONT_DELETE_NOTIFICATIONS bit (3) internal static options (constant) init ("001"b); 1 18 1 19 /* END INCLUDE FILE msg_array.incl.pl1 */ 170 171 2 1 /* BEGIN INCLUDE FILE msg_print_flags.incl.pl1 */ 2 2 /* Written 10/17/84 by Jim Lippard */ 2 3 2 4 dcl 1 msg_print_flags unaligned, 2 5 2 print_prefix bit (1), 2 6 2 print_ename bit (1), 2 7 2 print_sender bit (1), 2 8 2 print_date_and_time bit (1), 2 9 2 print_time bit (1), 2 10 2 print_last_message bit (1), 2 11 2 mbz bit (30); 2 12 2 13 /* END INCLUDE FILE msg_print_flags.incl.pl1 */ 172 173 174 /* BEGIN */ 175 176 call error (0, "Program logic error, main entry point in xmail_im_mgr called."); 177 178 /* ENTRYPOINTS */ 179 180 init: entry (); 181 182 /* AUTOMATIC */ 183 184 dcl i_code fixed bin (35); 185 dcl i_dir char (168) varying; 186 dcl i_entry char (32); 187 dcl i_user_name char (32); 188 dcl i_user_project char (32); 189 dcl i_unused_c32 char (32); 190 191 /* BEGIN */ 192 193 call user_info_ (i_user_name, i_user_project, i_unused_c32); 194 i_dir = ">udd>" || rtrim (i_user_project); 195 i_dir = i_dir || ">"; 196 i_dir = i_dir || rtrim (i_user_name); 197 i_entry = rtrim (i_user_name) || ".mbx"; 198 199 call message_facility_$get_msgf_mbx_ptr ((i_dir), i_entry, xim_msg_facility_mbx_ptr, i_code); 200 if i_code ^= 0 201 then call error (i_code, "Could not get msg facility mbx ptr."); 202 203 call message_facility_$get_wakeup_state (xim_msg_facility_mbx_ptr, xim_original.wakeup_state_flags, i_code); 204 if i_code ^= 0 205 then call error (i_code, "Could not get original wakeup state."); 206 207 call message_facility_$get_prefix (xim_msg_facility_mbx_ptr, 208 xim_original.prefix_string, xim_original.short_prefix, i_code); 209 if i_code ^= 0 210 then call error (i_code, "Could not get original msg prefix information."); 211 212 call message_facility_$get_message_format (xim_msg_facility_mbx_ptr, xim_original.short_format, i_code); 213 if i_code ^= 0 214 then call error (i_code, "Could not get original short format flag."); 215 216 call message_facility_$get_alarm_handler (xim_msg_facility_mbx_ptr, 217 xim_original.alarm_entry, xim_original.alarm_info_ptr, xim_original.alarm_time, i_code); 218 if i_code ^= 0 219 then call error (i_code, "Could not get original alarm handler information."); 220 221 call message_facility_$get_wakeup_handler (xim_msg_facility_mbx_ptr, 222 xim_original.wakeup_entry, xim_original.wakeup_info_ptr, i_code); 223 if i_code ^= 0 224 then call error (i_code, "Could not get original wakeup handler information."); 225 226 if xim_original.wakeup_state_flags = "0"b 227 then xim_original.wakeup_state_flags = "72"b3; 228 229 xim_accept_messages.wakeup_state_flags = "74"b3; 230 xim_accept_messages.prefix_string = ""; 231 xim_accept_messages.short_prefix = "0"b; 232 xim_accept_messages.short_format = "0"b; 233 xim_accept_messages.alarm_entry = xmail_im_mgr_$dummy; 234 xim_accept_messages.alarm_info_ptr = null (); 235 xim_accept_messages.alarm_time = 0; 236 xim_accept_messages.wakeup_entry = xmail_im_mgr_$dummy; 237 xim_accept_messages.wakeup_info_ptr = addr (xim_512_SPACES); 238 239 /* in case state changed during multics mode */ 240 if ^first_time 241 then if substr(xim_original.wakeup_state_flags,4,2) = "10"b 242 then xim_accept_messages.wakeup_state_flags = xim_original.wakeup_state_flags; 243 else xim_accept_messages.wakeup_state_flags = "74"b3; 244 return; 245 246 accept_messages: entry (); 247 248 if first_time then do; 249 xim_accept_messages.wakeup_state_flags = "74"b3; 250 first_time = "0"b; 251 end; 252 else if substr(xim_original.wakeup_state_flags,4,2) = "01"b 253 then xim_accept_messages.wakeup_state_flags = "74"b3; 254 else xim_accept_messages.wakeup_state_flags = xim_original.wakeup_state_flags; 255 call set_message_facility_data (xim_accept_messages); 256 call print_unseen_messages; 257 258 return; 259 260 dummy: entry (); 261 return; 262 263 defer_messages: entry (); 264 265 call set_message_facility_data (xim_accept_messages); 266 267 return; 268 269 print_messages: entry (); 270 271 call print_unseen_messages; 272 273 return; 274 275 restore_original: entry (); 276 277 call set_message_facility_data (xim_original); 278 279 return; 280 281 /* INTERNAL PROCEDURES */ 282 283 set_message_facility_data: proc (smfd_message_facility_data); 284 285 /* PARAMETERS */ 286 287 dcl 01 smfd_message_facility_data like message_facility_data; 288 289 /* AUTOMATIC */ 290 291 dcl smfd_code fixed bin (35); 292 293 /* BEGIN */ 294 295 call message_facility_$set_wakeup_state (xim_msg_facility_mbx_ptr, 296 smfd_message_facility_data.wakeup_state_flags, smfd_code); 297 if smfd_code ^= 0 298 then call error (smfd_code, "Could not set xmail accept wakeup state."); 299 300 call message_facility_$set_prefix (xim_msg_facility_mbx_ptr, 301 smfd_message_facility_data.prefix_string, smfd_message_facility_data.short_prefix, smfd_code); 302 if smfd_code ^= 0 303 then call error (smfd_code, "Could not set xmail accept msg prefix information."); 304 305 call message_facility_$set_message_format (xim_msg_facility_mbx_ptr, 306 smfd_message_facility_data.short_format, smfd_code); 307 if smfd_code ^= 0 308 then call error (smfd_code, "Could not set xmail accept short format flag."); 309 310 call message_facility_$set_alarm_handler (xim_msg_facility_mbx_ptr, 311 smfd_message_facility_data.alarm_entry, smfd_message_facility_data.alarm_info_ptr, 312 smfd_message_facility_data.alarm_time, smfd_code); 313 if smfd_code ^= 0 314 then call error (smfd_code, "Could not set xmail accept alarm handler information."); 315 316 call message_facility_$set_wakeup_handler (xim_msg_facility_mbx_ptr, 317 smfd_message_facility_data.wakeup_entry, smfd_message_facility_data.wakeup_info_ptr, smfd_code); 318 if smfd_code ^= 0 319 then call error (smfd_code, "Could not set xmail accept wakeup handler information."); 320 321 return; 322 323 end set_message_facility_data; 324 325 print_unseen_messages: proc; 326 327 /* AUTOMATIC */ 328 329 dcl pum_code fixed bin (35); 330 dcl pum_i fixed bin; 331 dcl pum_work_area_ptr ptr; 332 dcl 01 pum_msg_print_flags like msg_print_flags; 333 dcl cleanup condition; 334 335 dcl get_temp_segment_ entry (char(*), ptr, fixed bin(35)); 336 dcl xmail_area_$create entry (ptr, fixed bin(35)); 337 338 /* BEGIN */ 339 340 pum_work_area_ptr = null; 341 on cleanup begin; 342 call CLEANUP; 343 end; 344 345 call get_temp_segment_ (NAME, pum_work_area_ptr, pum_code); 346 call xmail_area_$create (pum_work_area_ptr, pum_code); 347 if pum_code ^= 0 348 then do; 349 call print_error; 350 goto exit_print_unseen_messages; 351 end; 352 call message_facility_$get_msg_array_ptr (xim_msg_facility_mbx_ptr, 353 pum_work_area_ptr, msg_array_ptr, n_messages, pum_code); 354 if pum_code ^= 0 355 then do; 356 call print_error; 357 goto exit_print_unseen_messages; 358 end; 359 360 pum_msg_print_flags.print_prefix = "1"b; 361 pum_msg_print_flags.print_ename = "0"b; 362 pum_msg_print_flags.print_sender = "1"b; 363 pum_msg_print_flags.print_date_and_time = "1"b; 364 pum_msg_print_flags.print_time = "0"b; 365 pum_msg_print_flags.print_last_message = "0"b; 366 pum_msg_print_flags.mbz = "0"b; 367 368 do pum_i = 1 to n_messages; 369 if ^msg_array (pum_i).printed 370 then do; 371 call message_facility_$print_message (xim_msg_facility_mbx_ptr, iox_$user_io, 372 msg_array (pum_i).message_id, addr (pum_msg_print_flags), pum_code); 373 if pum_code ^= 0 374 then do; 375 call print_error; 376 goto exit_print_unseen_messages; 377 end; 378 call message_facility_$set_seen_switch (xim_msg_facility_mbx_ptr, 379 msg_array (pum_i).message_id, DELETE_UNHELD, pum_code); 380 if pum_code ^= 0 381 then do; 382 call print_error; 383 goto exit_print_unseen_messages; 384 end; 385 end; 386 end; 387 388 call CLEANUP; 389 390 exit_print_unseen_messages: 391 return; 392 393 end print_unseen_messages; 394 395 print_error: proc; 396 397 call ioa_ ("An error has occured while trying to print newly arrived messages." || 398 "^/You may print these messages after exiting Executive Mail with^/the ""print_messages -new"" command."); 399 call timer_manager_$sleep (4, "11"b); 400 401 return; 402 403 end print_error; 404 405 error: proc (e_code, e_message); 406 407 /* PARAMETERS */ 408 409 dcl e_code fixed bin (35); 410 dcl e_message char (*); 411 412 /* ENTRIES */ 413 414 dcl xmail_error_$code_first entry () options (variable); 415 416 /* BEGIN */ 417 418 call xmail_error_$code_first (e_code, NAME, QUIT, e_message); 419 420 end error; 421 422 CLEANUP: proc; 423 424 dcl code fixed bin (35); 425 dcl release_temp_segment_ entry (char(*), ptr, fixed bin(35)); 426 427 if pum_work_area_ptr ^= null 428 then call release_temp_segment_ (NAME, pum_work_area_ptr, code); 429 430 end CLEANUP; 431 432 end xmail_im_mgr; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 05/31/88 1500.7 xmail_im_mgr_.pl1 >spec>install>1050>xmail_im_mgr_.pl1 170 1 11/08/84 0926.0 msg_array.incl.pl1 >ldd>include>msg_array.incl.pl1 172 2 11/08/84 0926.0 msg_print_flags.incl.pl1 >ldd>include>msg_print_flags.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. DELETE_UNHELD 000017 constant bit(3) initial packed unaligned dcl 1-15 set ref 378* NAME 000001 constant char(13) initial packed unaligned dcl 146 set ref 345* 418* 427* QUIT 000000 constant char(1) initial packed unaligned dcl 147 set ref 418* addr builtin function dcl 152 ref 237 371 371 alarm_entry 14 000046 internal static entry variable level 2 in structure "xim_original" dcl 138 in procedure "xmail_im_mgr" set ref 216* alarm_entry 14 parameter entry variable level 2 in structure "smfd_message_facility_data" dcl 287 in procedure "set_message_facility_data" set ref 310* alarm_entry 14 000014 internal static entry variable level 2 in structure "xim_accept_messages" dcl 138 in procedure "xmail_im_mgr" set ref 233* alarm_info_ptr 20 000046 internal static pointer level 2 in structure "xim_original" dcl 138 in procedure "xmail_im_mgr" set ref 216* alarm_info_ptr 20 parameter pointer level 2 in structure "smfd_message_facility_data" dcl 287 in procedure "set_message_facility_data" set ref 310* alarm_info_ptr 20 000014 internal static pointer level 2 in structure "xim_accept_messages" dcl 138 in procedure "xmail_im_mgr" set ref 234* alarm_time 22 000014 internal static fixed bin(71,0) level 2 in structure "xim_accept_messages" dcl 138 in procedure "xmail_im_mgr" set ref 235* alarm_time 22 parameter fixed bin(71,0) level 2 in structure "smfd_message_facility_data" dcl 287 in procedure "set_message_facility_data" set ref 310* alarm_time 22 000046 internal static fixed bin(71,0) level 2 in structure "xim_original" dcl 138 in procedure "xmail_im_mgr" set ref 216* cleanup 000106 stack reference condition dcl 333 ref 341 code 000100 automatic fixed bin(35,0) dcl 424 set ref 427* e_code parameter fixed bin(35,0) dcl 409 set ref 405 418* e_message parameter char packed unaligned dcl 410 set ref 405 418* first_time 000010 internal static bit(1) initial dcl 136 set ref 240 248 250* flags 3 based structure array level 2 dcl 1-4 get_temp_segment_ 000146 constant entry external dcl 335 ref 345 i_code 000106 automatic fixed bin(35,0) dcl 184 set ref 199* 200 200* 203* 204 204* 207* 209 209* 212* 213 213* 216* 218 218* 221* 223 223* i_dir 000107 automatic varying char(168) dcl 185 set ref 194* 195* 195 196* 196 199 i_entry 000162 automatic char(32) packed unaligned dcl 186 set ref 197* 199* i_unused_c32 000212 automatic char(32) packed unaligned dcl 189 set ref 193* i_user_name 000172 automatic char(32) packed unaligned dcl 187 set ref 193* 196 197 i_user_project 000202 automatic char(32) packed unaligned dcl 188 set ref 193* 194 ioa_ 000102 constant entry external dcl 111 ref 397 iox_$user_io 000100 external static pointer dcl 107 set ref 371* mbz 0(06) 000104 automatic bit(30) level 2 packed packed unaligned dcl 332 set ref 366* message_facility_$get_alarm_handler 000104 constant entry external dcl 112 ref 216 message_facility_$get_message_format 000106 constant entry external dcl 113 ref 212 message_facility_$get_msg_array_ptr 000110 constant entry external dcl 114 ref 352 message_facility_$get_msgf_mbx_ptr 000112 constant entry external dcl 115 ref 199 message_facility_$get_prefix 000114 constant entry external dcl 116 ref 207 message_facility_$get_wakeup_handler 000116 constant entry external dcl 117 ref 221 message_facility_$get_wakeup_state 000120 constant entry external dcl 118 ref 203 message_facility_$print_message 000122 constant entry external dcl 119 ref 371 message_facility_$set_alarm_handler 000124 constant entry external dcl 120 ref 310 message_facility_$set_message_format 000126 constant entry external dcl 121 ref 305 message_facility_$set_prefix 000130 constant entry external dcl 122 ref 300 message_facility_$set_seen_switch 000132 constant entry external dcl 123 ref 378 message_facility_$set_wakeup_handler 000134 constant entry external dcl 124 ref 316 message_facility_$set_wakeup_state 000136 constant entry external dcl 125 ref 295 message_facility_data based structure level 1 unaligned dcl 156 message_id based bit(72) array level 2 dcl 1-4 set ref 371* 378* msg_array based structure array level 1 dcl 1-4 msg_array_ptr 000102 automatic pointer dcl 1-11 set ref 352* 369 371 378 msg_print_flags 000105 automatic structure level 1 packed packed unaligned dcl 2-4 n_messages 000104 automatic fixed bin(17,0) dcl 1-13 set ref 352* 368 null builtin function dcl 152 ref 234 340 427 prefix_string 1 parameter varying char(32) level 2 in structure "smfd_message_facility_data" dcl 287 in procedure "set_message_facility_data" set ref 300* prefix_string 1 000014 internal static varying char(32) level 2 in structure "xim_accept_messages" dcl 138 in procedure "xmail_im_mgr" set ref 230* prefix_string 1 000046 internal static varying char(32) level 2 in structure "xim_original" dcl 138 in procedure "xmail_im_mgr" set ref 207* print_date_and_time 0(03) 000104 automatic bit(1) level 2 packed packed unaligned dcl 332 set ref 363* print_ename 0(01) 000104 automatic bit(1) level 2 packed packed unaligned dcl 332 set ref 361* print_last_message 0(05) 000104 automatic bit(1) level 2 packed packed unaligned dcl 332 set ref 365* print_prefix 000104 automatic bit(1) level 2 packed packed unaligned dcl 332 set ref 360* print_sender 0(02) 000104 automatic bit(1) level 2 packed packed unaligned dcl 332 set ref 362* print_time 0(04) 000104 automatic bit(1) level 2 packed packed unaligned dcl 332 set ref 364* printed 3 based bit(1) array level 3 packed packed unaligned dcl 1-4 ref 369 pum_code 000100 automatic fixed bin(35,0) dcl 329 set ref 345* 346* 347 352* 354 371* 373 378* 380 pum_i 000101 automatic fixed bin(17,0) dcl 330 set ref 368* 369 371 378* pum_msg_print_flags 000104 automatic structure level 1 packed packed unaligned dcl 332 set ref 371 371 pum_work_area_ptr 000102 automatic pointer dcl 331 in procedure "print_unseen_messages" set ref 340* 345* 346* 352* pum_work_area_ptr 000100 automatic pointer dcl 137 in procedure "xmail_im_mgr" set ref 427 427* release_temp_segment_ 000154 constant entry external dcl 425 ref 427 rtrim builtin function dcl 152 ref 194 196 197 short_format 13 000046 internal static bit(1) level 2 in structure "xim_original" dcl 138 in procedure "xmail_im_mgr" set ref 212* short_format 13 000014 internal static bit(1) level 2 in structure "xim_accept_messages" dcl 138 in procedure "xmail_im_mgr" set ref 232* short_format 13 parameter bit(1) level 2 in structure "smfd_message_facility_data" dcl 287 in procedure "set_message_facility_data" set ref 305* short_prefix 12 000046 internal static bit(1) level 2 in structure "xim_original" dcl 138 in procedure "xmail_im_mgr" set ref 207* short_prefix 12 000014 internal static bit(1) level 2 in structure "xim_accept_messages" dcl 138 in procedure "xmail_im_mgr" set ref 231* short_prefix 12 parameter bit(1) level 2 in structure "smfd_message_facility_data" dcl 287 in procedure "set_message_facility_data" set ref 300* smfd_code 000230 automatic fixed bin(35,0) dcl 291 set ref 295* 297 297* 300* 302 302* 305* 307 307* 310* 313 313* 316* 318 318* smfd_message_facility_data parameter structure level 1 unaligned dcl 287 set ref 283 substr builtin function dcl 152 ref 240 252 timer_manager_$sleep 000142 constant entry external dcl 127 ref 399 user_info_ 000144 constant entry external dcl 128 ref 193 wakeup_entry 24 parameter entry variable level 2 in structure "smfd_message_facility_data" dcl 287 in procedure "set_message_facility_data" set ref 316* wakeup_entry 24 000046 internal static entry variable level 2 in structure "xim_original" dcl 138 in procedure "xmail_im_mgr" set ref 221* wakeup_entry 24 000014 internal static entry variable level 2 in structure "xim_accept_messages" dcl 138 in procedure "xmail_im_mgr" set ref 236* wakeup_info_ptr 30 parameter pointer level 2 in structure "smfd_message_facility_data" dcl 287 in procedure "set_message_facility_data" set ref 316* wakeup_info_ptr 30 000014 internal static pointer level 2 in structure "xim_accept_messages" dcl 138 in procedure "xmail_im_mgr" set ref 237* wakeup_info_ptr 30 000046 internal static pointer level 2 in structure "xim_original" dcl 138 in procedure "xmail_im_mgr" set ref 221* wakeup_state_flags 000014 internal static bit(36) level 2 in structure "xim_accept_messages" packed packed unaligned dcl 138 in procedure "xmail_im_mgr" set ref 229* 240* 243* 249* 252* 254* wakeup_state_flags parameter bit(36) level 2 in structure "smfd_message_facility_data" packed packed unaligned dcl 287 in procedure "set_message_facility_data" set ref 295* wakeup_state_flags 000046 internal static bit(36) level 2 in structure "xim_original" packed packed unaligned dcl 138 in procedure "xmail_im_mgr" set ref 203* 226 226* 240 240 252 254 xim_512_SPACES 002114 constant char(512) initial packed unaligned dcl 148 set ref 237 xim_accept_messages 000014 internal static structure level 1 unaligned dcl 138 set ref 255* 265* xim_msg_facility_mbx_ptr 000012 internal static pointer dcl 138 set ref 199* 203* 207* 212* 216* 221* 295* 300* 305* 310* 316* 352* 371* 378* xim_original 000046 internal static structure level 1 unaligned dcl 138 set ref 277* xmail_area_$create 000150 constant entry external dcl 336 ref 346 xmail_error_$code_first 000152 constant entry external dcl 414 ref 418 xmail_im_mgr_$dummy 000140 constant entry external dcl 126 ref 233 236 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. DONT_DELETE_MESSAGES internal static bit(3) initial packed unaligned dcl 1-16 DONT_DELETE_NOTIFICATIONS internal static bit(3) initial packed unaligned dcl 1-17 NAMES DECLARED BY EXPLICIT CONTEXT. CLEANUP 001664 constant entry internal dcl 422 ref 342 388 accept_messages 001013 constant entry external dcl 246 defer_messages 001064 constant entry external dcl 263 dummy 001055 constant entry external dcl 260 error 001622 constant entry internal dcl 405 ref 176 200 204 209 213 218 223 297 302 307 313 318 exit_print_unseen_messages 001566 constant label dcl 390 ref 350 357 376 383 init 000375 constant entry external dcl 180 print_error 001567 constant entry internal dcl 395 ref 349 356 375 382 print_messages 001102 constant entry external dcl 269 print_unseen_messages 001324 constant entry internal dcl 325 ref 256 271 restore_original 001115 constant entry external dcl 275 set_message_facility_data 001132 constant entry internal dcl 283 ref 255 265 277 xmail_im_mgr 000357 constant entry external dcl 33 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 2722 3100 2315 2732 Length 3406 2315 156 272 404 70 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME xmail_im_mgr 232 external procedure is an external procedure. set_message_facility_data internal procedure shares stack frame of external procedure xmail_im_mgr. print_unseen_messages 171 internal procedure enables or reverts conditions. on unit on line 341 64 on unit print_error internal procedure shares stack frame of internal procedure print_unseen_messages. error internal procedure shares stack frame of external procedure xmail_im_mgr. CLEANUP 80 internal procedure is called by several nonquick procedures. STORAGE FOR INTERNAL STATIC VARIABLES. LOC IDENTIFIER BLOCK NAME 000010 first_time xmail_im_mgr 000012 xim_msg_facility_mbx_ptr xmail_im_mgr 000014 xim_accept_messages xmail_im_mgr 000046 xim_original xmail_im_mgr STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME CLEANUP 000100 code CLEANUP print_unseen_messages 000100 pum_code print_unseen_messages 000101 pum_i print_unseen_messages 000102 pum_work_area_ptr print_unseen_messages 000104 pum_msg_print_flags print_unseen_messages xmail_im_mgr 000100 pum_work_area_ptr xmail_im_mgr 000102 msg_array_ptr xmail_im_mgr 000104 n_messages xmail_im_mgr 000105 msg_print_flags xmail_im_mgr 000106 i_code xmail_im_mgr 000107 i_dir xmail_im_mgr 000162 i_entry xmail_im_mgr 000172 i_user_name xmail_im_mgr 000202 i_user_project xmail_im_mgr 000212 i_unused_c32 xmail_im_mgr 000230 smfd_code set_message_facility_data THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. 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 THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. get_temp_segment_ ioa_ message_facility_$get_alarm_handler message_facility_$get_message_format message_facility_$get_msg_array_ptr message_facility_$get_msgf_mbx_ptr message_facility_$get_prefix message_facility_$get_wakeup_handler message_facility_$get_wakeup_state message_facility_$print_message message_facility_$set_alarm_handler message_facility_$set_message_format message_facility_$set_prefix message_facility_$set_seen_switch message_facility_$set_wakeup_handler message_facility_$set_wakeup_state release_temp_segment_ timer_manager_$sleep user_info_ xmail_area_$create xmail_error_$code_first xmail_im_mgr_$dummy 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 33 000356 176 000364 180 000373 193 000402 194 000421 195 000453 196 000463 197 000507 199 000524 200 000562 203 000573 204 000614 207 000624 209 000641 212 000651 213 000664 216 000674 218 000713 221 000723 223 000740 226 000750 229 000755 230 000757 231 000760 232 000761 233 000762 234 000766 235 000770 236 000772 237 000775 240 000777 244 001011 246 001012 248 001020 249 001023 250 001025 251 001026 252 001027 254 001037 255 001041 256 001047 258 001053 260 001054 261 001062 263 001063 265 001071 267 001100 269 001101 271 001107 273 001113 275 001114 277 001122 279 001131 283 001132 295 001134 297 001156 300 001166 302 001205 305 001215 307 001232 310 001242 313 001263 316 001273 318 001312 321 001322 325 001323 340 001331 341 001333 342 001347 343 001354 345 001355 346 001376 347 001407 349 001411 350 001412 352 001413 354 001433 356 001435 357 001436 360 001437 361 001441 362 001443 363 001445 364 001447 365 001451 366 001453 368 001455 369 001465 371 001473 373 001514 375 001516 376 001517 378 001520 380 001553 382 001555 383 001556 386 001557 388 001561 390 001566 395 001567 397 001570 399 001604 401 001621 405 001622 418 001633 420 001662 422 001663 427 001671 430 001716 ----------------------------------------------------------- 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