COMPILATION LISTING OF SEGMENT xforum_im_mgr Compiled by: Multics PL/I Compiler, Release 29, of July 28, 1986 Compiled at: Honeywell Bull, Phx. Az., Sys-M Compiled on: 08/06/87 1022.3 mst Thu 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 10 /****^ HISTORY COMMENTS: 11* 1) change(85-01-14,Davids), approve(86-02-04,MCR7350), 12* audit(86-04-24,Gilcrease), install(86-04-24,MR12.0-1048): 13* Written. 14* 15* 85-01-23 Davids: Changed the calls to 16* message_facility_$print_message and set_seen_switch to pass the 17* message_id instead of the msg_array index. This was a change to 18* the message_facility_ to fix a bug. 19* 20* 85-04-22 Davids: Added the ro_clean_up_flag to the 21* restore_original entry. This flag will suppress the printing of 22* unseen messages if it is true. This is needed so that in the 23* event that the entry is called because of a cleanup condition 24* being signaled no terminal output is done. 25* 2) change(86-05-06,LJAdams), approve(86-05-27,MCR7425), 26* audit(86-05-28,Gilcrease), install(86-06-30,MR12.0-1080): 27* Created dummy wakeup handler to take advantage of changes made to the 28* message facility. 29* 3) change(87-04-09,LJAdams), approve(87-04-22,MCR7684), 30* audit(87-07-24,Blair), install(87-08-06,MR12.1-1065): 31* Added entrypoint get_wakeup_state to return wakeup state value to 32* xforum_personalize_menu (this value can be unset, accept or defer). 33* END HISTORY COMMENTS */ 34 35 xforum_im_mgr: proc; 36 37 /* 38* BEGIN DESCRIPTION 39* 40* function: 41* This module manages interactive message handling for the Executive Forum 42* subsystems. 43* 44* description of entry points: 45* xforum_im_mgr: This entry point should never be called. 46* 47* init: This entry obtains a pointer to the msg_facility_mailbox structure 48* to the users default mailbox (>udd>PROJECT_ID>PERSON_ID>PERSON_ID.mbx. 49* It also records the message handling state of that mailbox and sets the 50* message handling states for the xforum message handling accept and 51* defer states. This entry must be called before any other entry in this 52* module. Note that if the origianl_wakeup_flags = "0"b it means that 53* messages have never been accepted. There is a ring 1 restriction 54* that prevents the wakeup_state_flags from being reset to "0"b once they 55* have been set to something else. Because of this the original 56* wakeup_state_flags will be changed to "72"b3 (defer messages) if they 57* are "0"b 58* 59* accept_messages: This entry changes the message handling state of the 60* users default mailbox to the Executive Forum accept messages state. 61* This state looks like the system standard accept message state except 62* that all messages are held. It will also print out all unseen messages 63* by calling the print_unseen_messages procedure. 64* 65* defer_messages: This entry changes the message handling state to the 66* Executive Forum defer messages state. This state looks like the system 67* standard defer message state. 68* 69* restore_original: This entry will print all unseen messages by calling 70* the print_unseen_messages facility and then change the message handling 71* state to the state it was in before the call to the init entry. 72* 73* description of internal procedures: 74* set_message_facility_data: Given a structure that defines a message 75* handling state this procedure calls the appropriate message_facility 76* entry points to set that state. 77* 78* print_unseen_messages: This procedure causes all unseen messages to be 79* printed over user_io. It then markes those messages as printed. In the 80* event of an error while printing a message an error message is output and 81* printing of other unseen messages is aborted. 82* 83* print_error: This procedure will print an error message explaining that 84* an error occured while printing messages and that the messages may be 85* read after Xforum is exited. A timer puts the process to sleep for 4 86* seconds so that the message may be read. 87* 88* error: This procedure will signal the xforum_fatal_error condition. 89* it will be called if an error is returned from one of the 90* message_facility_ calls. It will also be called if the main entry point 91* xforum_im_mgr$xforum_im_mgr is called. 92* 93* END DESCRIPTION 94**/ 95 96 /* PARAMETERS */ 97 98 /* EXTERNAL STATIC */ 99 100 dcl iox_$user_io ptr ext static; 101 102 /* ENTRIES */ 103 104 dcl ioa_ entry () options (variable); 105 dcl message_facility_$get_alarm_handler entry (ptr, entry, ptr, fixed bin (71), fixed bin (35)); 106 dcl message_facility_$get_message_format entry (ptr, bit (1) aligned, fixed bin (35)); 107 dcl message_facility_$get_msg_array_ptr entry (ptr, ptr, ptr, fixed bin, fixed bin (35)); 108 dcl message_facility_$get_msgf_mbx_ptr entry (char (*), char (*), ptr, fixed bin (35)); 109 dcl message_facility_$get_prefix entry (ptr, char (32) var, bit (1) aligned, fixed bin (35)); 110 dcl message_facility_$get_wakeup_handler entry (ptr, entry, ptr, fixed bin (35)); 111 dcl message_facility_$get_wakeup_state entry (ptr, bit (*), fixed bin (35)); 112 dcl message_facility_$print_message entry (ptr, ptr, bit (72) aligned, ptr, fixed bin (35)); 113 dcl message_facility_$set_alarm_handler entry (ptr, entry, ptr, fixed bin (71), fixed bin (35)); 114 dcl message_facility_$set_message_format entry (ptr, bit (1) aligned, fixed bin (35)); 115 dcl message_facility_$set_prefix entry (ptr, char (32) var, bit (1) aligned, fixed bin (35)); 116 dcl message_facility_$set_seen_switch entry (ptr, bit (72) aligned, bit (*), fixed bin (35)); 117 dcl message_facility_$set_wakeup_handler entry (ptr, entry, ptr, fixed bin (35)); 118 dcl message_facility_$set_wakeup_state entry (ptr, bit (*), fixed bin (35)); 119 dcl signal_ entry () options (variable); 120 dcl timer_manager_$sleep entry (fixed bin (71), bit (2)); 121 dcl user_info_ entry (char (*), char (*), char (*)); 122 dcl xforum_im_mgr$dummy_wakeup_handler entry () options (variable); 123 124 /* CONDITIONS */ 125 126 /* INTERNAL AUTOMATIC */ 127 128 /* INTERNAL STATIC */ 129 130 dcl ( 131 xim_msg_facility_mbx_ptr ptr, 132 01 xim_accept_messages like message_facility_data, 133 01 xim_original like message_facility_data, 134 01 xim_xforum_error_info like xforum_error_info 135 ) internal static; 136 137 dcl wakeup_state fixed bin (2) internal static; 138 139 /* CONSTANTS */ 140 141 dcl xim_512_SPACES char (512) init (" ") internal static options (constant); 142 dcl UNSET fixed bin (2) int static options (constant) init (0); 143 dcl ACCEPT fixed bin (2) int static options (constant) init (1); 144 dcl DEFER fixed bin (2) int static options (constant) init (2); 145 146 147 /* BUILTINS */ 148 149 dcl addr builtin; 150 dcl empty builtin; 151 dcl null builtin; 152 dcl rtrim 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 /* INCLUDE FILES */ 168 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 */ 169 170 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 */ 171 172 3 1 /* BEGIN INCLUDE FILE xforum_error_info 84-06-19 Davids */ 3 2 3 3 dcl 01 xforum_error_info based, 3 4 02 name char (32), 3 5 02 entry char (32), 3 6 02 doing char (100), 3 7 02 code fixed bin (35), 3 8 02 reason char (512); 3 9 3 10 /* END INCLUDE FILE xforum_error_info */ 173 174 175 call error (0, "Program logic error, main entry point in xforum_im_mgr called."); 176 177 init: entry (); 178 179 /* AUTOMATIC */ 180 181 dcl i_code fixed bin (35); 182 dcl i_dir char (168) varying; 183 dcl i_entry char (32); 184 dcl i_user_name char (32); 185 dcl i_user_project char (32); 186 dcl i_unused_c32 char (32); 187 188 call user_info_ (i_user_name, i_user_project, i_unused_c32); 189 i_dir = ">udd>" || rtrim (i_user_project); 190 i_dir = i_dir || ">"; 191 i_dir = i_dir || rtrim (i_user_name); 192 i_entry = rtrim (i_user_name) || ".mbx"; 193 194 call message_facility_$get_msgf_mbx_ptr ((i_dir), i_entry, xim_msg_facility_mbx_ptr, i_code); 195 if i_code ^= 0 196 then call error (i_code, "Could not get msg facility mbx ptr."); 197 198 call message_facility_$get_wakeup_state (xim_msg_facility_mbx_ptr, xim_original.wakeup_state_flags, i_code); 199 if i_code ^= 0 200 then call error (i_code, "Could not get original wakeup state."); 201 202 if xim_original.wakeup_state_flags = "0"b 203 then wakeup_state = UNSET; 204 else if xim_original.wakeup_state_flags = "72"b3 205 then wakeup_state = DEFER; 206 else if xim_original.wakeup_state_flags = "74"b3 207 then wakeup_state = ACCEPT; 208 209 call message_facility_$get_prefix (xim_msg_facility_mbx_ptr, 210 xim_original.prefix_string, xim_original.short_prefix, i_code); 211 if i_code ^= 0 212 then call error (i_code, "Could not get original msg prefix information."); 213 214 call message_facility_$get_message_format (xim_msg_facility_mbx_ptr, xim_original.short_format, i_code); 215 if i_code ^= 0 216 then call error (i_code, "Could not get original short format flag."); 217 218 call message_facility_$get_alarm_handler (xim_msg_facility_mbx_ptr, 219 xim_original.alarm_entry, xim_original.alarm_info_ptr, xim_original.alarm_time, i_code); 220 if i_code ^= 0 221 then call error (i_code, "Could not get original alarm handler information."); 222 223 call message_facility_$get_wakeup_handler (xim_msg_facility_mbx_ptr, 224 xim_original.wakeup_entry, xim_original.wakeup_info_ptr, i_code); 225 if i_code ^= 0 226 then call error (i_code, "Could not get original wakeup handler information."); 227 228 if xim_original.wakeup_state_flags = "0"b 229 then xim_original.wakeup_state_flags = "72"b3; 230 231 xim_accept_messages.wakeup_state_flags = "74"b3; 232 xim_accept_messages.prefix_string = ""; 233 xim_accept_messages.short_prefix = "0"b; 234 xim_accept_messages.short_format = "0"b; 235 xim_accept_messages.alarm_entry = xforum_im_mgr$dummy_wakeup_handler; 236 xim_accept_messages.alarm_info_ptr = null (); 237 xim_accept_messages.alarm_time = 0; 238 xim_accept_messages.wakeup_entry = xforum_im_mgr$dummy_wakeup_handler; 239 xim_accept_messages.wakeup_info_ptr = addr (xim_512_SPACES); 240 241 return; 242 243 accept_messages: entry (); 244 245 call set_message_facility_data (xim_accept_messages); 246 call print_unseen_messages; 247 wakeup_state = ACCEPT; 248 249 return; 250 251 defer_messages: entry (); 252 253 call set_message_facility_data (xim_accept_messages); 254 wakeup_state = DEFER; 255 256 return; 257 258 dummy_wakeup_handler: entry (); 259 return; 260 261 get_wakeup_state: entry () returns (fixed bin(2)); 262 263 return (wakeup_state); 264 265 266 restore_original: entry (ro_clean_up_flag); 267 268 /* PARAMETERS */ 269 270 dcl ro_clean_up_flag bit (1) aligned; 271 272 273 274 275 276 277 if ^ro_clean_up_flag 278 then call print_unseen_messages; 279 call set_message_facility_data (xim_original); 280 281 return; 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 call message_facility_$set_wakeup_state (xim_msg_facility_mbx_ptr, 294 smfd_message_facility_data.wakeup_state_flags, smfd_code); 295 if smfd_code ^= 0 296 then call error (smfd_code, "Could not set xforum accept wakeup state."); 297 298 call message_facility_$set_prefix (xim_msg_facility_mbx_ptr, 299 smfd_message_facility_data.prefix_string, smfd_message_facility_data.short_prefix, smfd_code); 300 if smfd_code ^= 0 301 then call error (smfd_code, "Could not set xforum accept msg prefix information."); 302 303 call message_facility_$set_message_format (xim_msg_facility_mbx_ptr, 304 smfd_message_facility_data.short_format, smfd_code); 305 if smfd_code ^= 0 306 then call error (smfd_code, "Could not set xforum accept short format flag."); 307 308 call message_facility_$set_alarm_handler (xim_msg_facility_mbx_ptr, 309 smfd_message_facility_data.alarm_entry, smfd_message_facility_data.alarm_info_ptr, 310 smfd_message_facility_data.alarm_time, smfd_code); 311 if smfd_code ^= 0 312 then call error (smfd_code, "Could not set xforum accept alarm handler information."); 313 314 call message_facility_$set_wakeup_handler (xim_msg_facility_mbx_ptr, 315 smfd_message_facility_data.wakeup_entry, smfd_message_facility_data.wakeup_info_ptr, smfd_code); 316 if smfd_code ^= 0 317 then call error (smfd_code, "Could not set xforum accept wakeup handler information."); 318 319 return; 320 321 end set_message_facility_data; 322 323 print_unseen_messages: proc; 324 325 /* AUTOMATIC */ 326 327 dcl pum_code fixed bin (35); 328 dcl pum_i fixed bin; 329 dcl pum_work_area area (500); 330 dcl 01 pum_msg_print_flags like msg_print_flags; 331 332 333 334 335 336 call message_facility_$get_msg_array_ptr (xim_msg_facility_mbx_ptr, 337 addr (pum_work_area), msg_array_ptr, n_messages, pum_code); 338 if pum_code ^= 0 339 then do; 340 call print_error; 341 goto exit_print_unseen_messages; 342 end; 343 344 pum_msg_print_flags.print_prefix = "1"b; 345 pum_msg_print_flags.print_ename = "0"b; 346 pum_msg_print_flags.print_sender = "1"b; 347 pum_msg_print_flags.print_date_and_time = "1"b; 348 pum_msg_print_flags.print_time = "0"b; 349 pum_msg_print_flags.print_last_message = "0"b; 350 pum_msg_print_flags.mbz = "0"b; 351 352 do pum_i = 1 to n_messages; 353 if ^msg_array (pum_i).printed 354 then do; 355 call message_facility_$print_message (xim_msg_facility_mbx_ptr, iox_$user_io, 356 msg_array (pum_i).message_id, addr (pum_msg_print_flags), pum_code); 357 if pum_code ^= 0 358 then do; 359 call print_error; 360 goto exit_print_unseen_messages; 361 end; 362 call message_facility_$set_seen_switch (xim_msg_facility_mbx_ptr, 363 msg_array (pum_i).message_id, DELETE_UNHELD, pum_code); 364 if pum_code ^= 0 365 then do; 366 call print_error; 367 goto exit_print_unseen_messages; 368 end; 369 end; 370 end; 371 372 exit_print_unseen_messages: 373 return; 374 375 end print_unseen_messages; 376 377 print_error: proc; 378 379 call ioa_ ("An error has occured while trying to print newly arrived messages." || 380 "^/You may print these messages after exiting Executive Forum with^/the ""print_messages -new"" command."); 381 call timer_manager_$sleep (4, "11"b); 382 383 return; 384 385 end print_error; 386 387 error: proc (e_code, e_message); 388 389 /* PARAMETERS */ 390 391 dcl e_code fixed bin (35); 392 dcl e_message char (*); 393 394 xim_xforum_error_info.name = "xforum_im_mgr"; 395 xim_xforum_error_info.entry = ""; 396 xim_xforum_error_info.doing = ""; 397 xim_xforum_error_info.code = e_code; 398 xim_xforum_error_info.reason = e_message; 399 400 call signal_ ("xforum_fatal_error", null (), addr (xim_xforum_error_info), null ()); 401 402 end error; 403 404 end xforum_im_mgr; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 08/06/87 1014.4 xforum_im_mgr.pl1 >special_ldd>install>MR12.1-1065>xforum_im_mgr.pl1 169 1 11/08/84 0926.0 msg_array.incl.pl1 >ldd>include>msg_array.incl.pl1 171 2 11/08/84 0926.0 msg_print_flags.incl.pl1 >ldd>include>msg_print_flags.incl.pl1 173 3 12/03/84 1241.6 xforum_error_info.incl.pl1 >ldd>include>xforum_error_info.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. ACCEPT constant fixed bin(2,0) initial dcl 143 ref 206 247 DEFER constant fixed bin(2,0) initial dcl 144 ref 204 254 DELETE_UNHELD 000005 constant bit(3) initial unaligned dcl 1-15 set ref 362* UNSET constant fixed bin(2,0) initial dcl 142 ref 202 addr builtin function dcl 149 ref 239 336 336 355 355 400 400 alarm_entry 14 parameter entry variable level 2 in structure "smfd_message_facility_data" dcl 287 in procedure "set_message_facility_data" set ref 308* alarm_entry 14 000044 internal static entry variable level 2 in structure "xim_original" dcl 130 in procedure "xforum_im_mgr" set ref 218* alarm_entry 14 000012 internal static entry variable level 2 in structure "xim_accept_messages" dcl 130 in procedure "xforum_im_mgr" set ref 235* alarm_info_ptr 20 000012 internal static pointer level 2 in structure "xim_accept_messages" dcl 130 in procedure "xforum_im_mgr" set ref 236* alarm_info_ptr 20 parameter pointer level 2 in structure "smfd_message_facility_data" dcl 287 in procedure "set_message_facility_data" set ref 308* alarm_info_ptr 20 000044 internal static pointer level 2 in structure "xim_original" dcl 130 in procedure "xforum_im_mgr" set ref 218* 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 308* alarm_time 22 000012 internal static fixed bin(71,0) level 2 in structure "xim_accept_messages" dcl 130 in procedure "xforum_im_mgr" set ref 237* alarm_time 22 000044 internal static fixed bin(71,0) level 2 in structure "xim_original" dcl 130 in procedure "xforum_im_mgr" set ref 218* code 51 000076 internal static fixed bin(35,0) level 2 dcl 130 set ref 397* doing 20 000076 internal static char(100) level 2 packed unaligned dcl 130 set ref 396* e_code parameter fixed bin(35,0) dcl 391 ref 387 397 e_message parameter char unaligned dcl 392 ref 387 398 empty builtin function dcl 150 ref 329 entry 10 000076 internal static char(32) level 2 packed unaligned dcl 130 set ref 395* flags 3 based structure array level 2 dcl 1-4 i_code 000104 automatic fixed bin(35,0) dcl 181 set ref 194* 195 195* 198* 199 199* 209* 211 211* 214* 215 215* 218* 220 220* 223* 225 225* i_dir 000105 automatic varying char(168) dcl 182 set ref 189* 190* 190 191* 191 194 i_entry 000160 automatic char(32) unaligned dcl 183 set ref 192* 194* i_unused_c32 000210 automatic char(32) unaligned dcl 186 set ref 188* i_user_name 000170 automatic char(32) unaligned dcl 184 set ref 188* 191 192 i_user_project 000200 automatic char(32) unaligned dcl 185 set ref 188* 189 ioa_ 000354 constant entry external dcl 104 ref 379 iox_$user_io 000352 external static pointer dcl 100 set ref 355* mbz 0(06) 001226 automatic bit(30) level 2 packed unaligned dcl 330 set ref 350* message_facility_$get_alarm_handler 000356 constant entry external dcl 105 ref 218 message_facility_$get_message_format 000360 constant entry external dcl 106 ref 214 message_facility_$get_msg_array_ptr 000362 constant entry external dcl 107 ref 336 message_facility_$get_msgf_mbx_ptr 000364 constant entry external dcl 108 ref 194 message_facility_$get_prefix 000366 constant entry external dcl 109 ref 209 message_facility_$get_wakeup_handler 000370 constant entry external dcl 110 ref 223 message_facility_$get_wakeup_state 000372 constant entry external dcl 111 ref 198 message_facility_$print_message 000374 constant entry external dcl 112 ref 355 message_facility_$set_alarm_handler 000376 constant entry external dcl 113 ref 308 message_facility_$set_message_format 000400 constant entry external dcl 114 ref 303 message_facility_$set_prefix 000402 constant entry external dcl 115 ref 298 message_facility_$set_seen_switch 000404 constant entry external dcl 116 ref 362 message_facility_$set_wakeup_handler 000406 constant entry external dcl 117 ref 314 message_facility_$set_wakeup_state 000410 constant entry external dcl 118 ref 293 message_facility_data based structure level 1 unaligned dcl 156 message_id based bit(72) array level 2 dcl 1-4 set ref 355* 362* msg_array based structure array level 1 dcl 1-4 msg_array_ptr 000100 automatic pointer dcl 1-11 set ref 336* 353 355 362 msg_print_flags 000103 automatic structure level 1 packed unaligned dcl 2-4 n_messages 000102 automatic fixed bin(17,0) dcl 1-13 set ref 336* 352 name 000076 internal static char(32) level 2 packed unaligned dcl 130 set ref 394* null builtin function dcl 151 ref 236 400 400 400 400 prefix_string 1 000044 internal static varying char(32) level 2 in structure "xim_original" dcl 130 in procedure "xforum_im_mgr" set ref 209* prefix_string 1 000012 internal static varying char(32) level 2 in structure "xim_accept_messages" dcl 130 in procedure "xforum_im_mgr" set ref 232* 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 298* print_date_and_time 0(03) 001226 automatic bit(1) level 2 packed unaligned dcl 330 set ref 347* print_ename 0(01) 001226 automatic bit(1) level 2 packed unaligned dcl 330 set ref 345* print_last_message 0(05) 001226 automatic bit(1) level 2 packed unaligned dcl 330 set ref 349* print_prefix 001226 automatic bit(1) level 2 packed unaligned dcl 330 set ref 344* print_sender 0(02) 001226 automatic bit(1) level 2 packed unaligned dcl 330 set ref 346* print_time 0(04) 001226 automatic bit(1) level 2 packed unaligned dcl 330 set ref 348* printed 3 based bit(1) array level 3 packed unaligned dcl 1-4 ref 353 pum_code 000240 automatic fixed bin(35,0) dcl 327 set ref 336* 338 355* 357 362* 364 pum_i 000241 automatic fixed bin(17,0) dcl 328 set ref 352* 353 355 362* pum_msg_print_flags 001226 automatic structure level 1 packed unaligned dcl 330 set ref 355 355 pum_work_area 000242 automatic area(500) dcl 329 set ref 329* 336 336 reason 52 000076 internal static char(512) level 2 packed unaligned dcl 130 set ref 398* ro_clean_up_flag parameter bit(1) dcl 270 ref 266 277 rtrim builtin function dcl 152 ref 189 191 192 short_format 13 000012 internal static bit(1) level 2 in structure "xim_accept_messages" dcl 130 in procedure "xforum_im_mgr" set ref 234* short_format 13 000044 internal static bit(1) level 2 in structure "xim_original" dcl 130 in procedure "xforum_im_mgr" set ref 214* short_format 13 parameter bit(1) level 2 in structure "smfd_message_facility_data" dcl 287 in procedure "set_message_facility_data" set ref 303* short_prefix 12 000012 internal static bit(1) level 2 in structure "xim_accept_messages" dcl 130 in procedure "xforum_im_mgr" set ref 233* short_prefix 12 parameter bit(1) level 2 in structure "smfd_message_facility_data" dcl 287 in procedure "set_message_facility_data" set ref 298* short_prefix 12 000044 internal static bit(1) level 2 in structure "xim_original" dcl 130 in procedure "xforum_im_mgr" set ref 209* signal_ 000412 constant entry external dcl 119 ref 400 smfd_code 000230 automatic fixed bin(35,0) dcl 291 set ref 293* 295 295* 298* 300 300* 303* 305 305* 308* 311 311* 314* 316 316* smfd_message_facility_data parameter structure level 1 unaligned dcl 287 set ref 283 timer_manager_$sleep 000414 constant entry external dcl 120 ref 381 user_info_ 000416 constant entry external dcl 121 ref 188 wakeup_entry 24 parameter entry variable level 2 in structure "smfd_message_facility_data" dcl 287 in procedure "set_message_facility_data" set ref 314* wakeup_entry 24 000044 internal static entry variable level 2 in structure "xim_original" dcl 130 in procedure "xforum_im_mgr" set ref 223* wakeup_entry 24 000012 internal static entry variable level 2 in structure "xim_accept_messages" dcl 130 in procedure "xforum_im_mgr" set ref 238* wakeup_info_ptr 30 000012 internal static pointer level 2 in structure "xim_accept_messages" dcl 130 in procedure "xforum_im_mgr" set ref 239* wakeup_info_ptr 30 000044 internal static pointer level 2 in structure "xim_original" dcl 130 in procedure "xforum_im_mgr" set ref 223* wakeup_info_ptr 30 parameter pointer level 2 in structure "smfd_message_facility_data" dcl 287 in procedure "set_message_facility_data" set ref 314* wakeup_state 000350 internal static fixed bin(2,0) dcl 137 set ref 202* 204* 206* 247* 254* 263 wakeup_state_flags 000044 internal static bit(36) level 2 in structure "xim_original" packed unaligned dcl 130 in procedure "xforum_im_mgr" set ref 198* 202 204 206 228 228* wakeup_state_flags parameter bit(36) level 2 in structure "smfd_message_facility_data" packed unaligned dcl 287 in procedure "set_message_facility_data" set ref 293* wakeup_state_flags 000012 internal static bit(36) level 2 in structure "xim_accept_messages" packed unaligned dcl 130 in procedure "xforum_im_mgr" set ref 231* xforum_error_info based structure level 1 unaligned dcl 3-3 xforum_im_mgr$dummy_wakeup_handler 000420 constant entry external dcl 122 ref 235 238 xim_512_SPACES 002110 constant char(512) initial unaligned dcl 141 set ref 239 xim_accept_messages 000012 internal static structure level 1 unaligned dcl 130 set ref 245* 253* xim_msg_facility_mbx_ptr 000010 internal static pointer dcl 130 set ref 194* 198* 209* 214* 218* 223* 293* 298* 303* 308* 314* 336* 355* 362* xim_original 000044 internal static structure level 1 unaligned dcl 130 set ref 279* xim_xforum_error_info 000076 internal static structure level 1 unaligned dcl 130 set ref 400 400 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. DONT_DELETE_MESSAGES internal static bit(3) initial unaligned dcl 1-16 DONT_DELETE_NOTIFICATIONS internal static bit(3) initial unaligned dcl 1-17 NAMES DECLARED BY EXPLICIT CONTEXT. accept_messages 001041 constant entry external dcl 243 defer_messages 001073 constant entry external dcl 251 dummy_wakeup_handler 001124 constant entry external dcl 258 error 001621 constant entry internal dcl 387 ref 175 195 199 211 215 220 225 295 300 305 311 316 exit_print_unseen_messages 001565 constant label dcl 372 ref 341 360 367 get_wakeup_state 001145 constant entry external dcl 261 init 000407 constant entry external dcl 177 print_error 001566 constant entry internal dcl 377 ref 340 359 366 print_unseen_messages 001414 constant entry internal dcl 323 ref 246 277 restore_original 001171 constant entry external dcl 266 set_message_facility_data 001223 constant entry internal dcl 283 ref 245 253 279 xforum_im_mgr 000367 constant entry external dcl 35 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 2630 3252 2311 2640 Length 3574 2311 422 305 316 342 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME xforum_im_mgr 844 external procedure is an external procedure. set_message_facility_data internal procedure shares stack frame of external procedure xforum_im_mgr. print_unseen_messages internal procedure shares stack frame of external procedure xforum_im_mgr. print_error internal procedure shares stack frame of external procedure xforum_im_mgr. error internal procedure shares stack frame of external procedure xforum_im_mgr. STORAGE FOR INTERNAL STATIC VARIABLES. LOC IDENTIFIER BLOCK NAME 000010 xim_msg_facility_mbx_ptr xforum_im_mgr 000012 xim_accept_messages xforum_im_mgr 000044 xim_original xforum_im_mgr 000076 xim_xforum_error_info xforum_im_mgr 000350 wakeup_state xforum_im_mgr STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME xforum_im_mgr 000100 msg_array_ptr xforum_im_mgr 000102 n_messages xforum_im_mgr 000103 msg_print_flags xforum_im_mgr 000104 i_code xforum_im_mgr 000105 i_dir xforum_im_mgr 000160 i_entry xforum_im_mgr 000170 i_user_name xforum_im_mgr 000200 i_user_project xforum_im_mgr 000210 i_unused_c32 xforum_im_mgr 000230 smfd_code set_message_facility_data 000240 pum_code print_unseen_messages 000241 pum_i print_unseen_messages 000242 pum_work_area print_unseen_messages 001226 pum_msg_print_flags print_unseen_messages THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. alloc_char_temp call_ext_out_desc call_ext_out return_mac signal_op shorten_stack ext_entry op_empty_ THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. 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 signal_ timer_manager_$sleep user_info_ xforum_im_mgr$dummy_wakeup_handler 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 35 000366 175 000376 177 000405 188 000416 189 000435 190 000467 191 000477 192 000523 194 000540 195 000576 198 000607 199 000630 202 000640 204 000646 206 000653 209 000657 211 000673 214 000703 215 000716 218 000726 220 000745 223 000755 225 000772 228 001002 231 001007 232 001011 233 001012 234 001013 235 001014 236 001020 237 001022 238 001024 239 001027 241 001031 243 001040 245 001050 246 001057 247 001060 249 001063 251 001072 253 001102 254 001111 256 001114 258 001123 259 001133 261 001142 263 001153 266 001166 277 001200 279 001205 281 001214 283 001223 293 001225 295 001247 298 001257 300 001276 303 001306 305 001323 308 001333 311 001354 314 001364 316 001403 319 001413 323 001414 329 001415 336 001420 338 001441 340 001443 341 001444 344 001445 345 001447 346 001451 347 001453 348 001455 349 001457 350 001461 352 001463 353 001473 355 001501 357 001522 359 001524 360 001525 362 001526 364 001557 366 001561 367 001562 370 001563 372 001565 377 001566 379 001567 381 001603 383 001620 387 001621 394 001632 395 001636 396 001641 397 001644 398 001647 400 001654 402 001711 ----------------------------------------------------------- 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