COMPILATION LISTING OF SEGMENT forum_logger_ Compiled by: Multics PL/I Compiler, Release 29, of July 28, 1986 Compiled at: Honeywell Multics Op. - System M Compiled on: 08/16/86 1405.5 mst Sat Options: optimize map 1 /****^ ************************************************************** 2* * * 3* * Copyright, (C) Massachusetts Institute of Technology, 1984 * 4* * * 5* ************************************************************** */ 6 7 8 /****^ HISTORY COMMENTS: 9* 1) change(86-07-29,Pattin), approve(86-07-29,MCR7354), 10* audit(86-08-07,Margolin), install(86-08-16,MR12.0-1128): 11* CHange to send mail instead of logging. 12* END HISTORY COMMENTS */ 13 14 15 forum_logger_: 16 proc options (variable); 17 18 declare any_other_call bit (1) aligned, 19 arg_ptr ptr, 20 arg_len fixed bin (21), 21 based_code fixed bin (35) based (arg_ptr), 22 based_caller char (arg_len) based (arg_ptr), 23 caller char (32), 24 error char (100) aligned, 25 message char (512), 26 message_len fixed bin (21), 27 user_ring fixed bin (3), 28 line char (512), 29 progname char (32); 30 31 declare 1 ci aligned like condition_info; 32 declare (addr, null, string, substr) builtin, 33 (cleanup, any_other) condition; 34 35 declare convert_status_code_ entry (fixed bin (35), char (8) aligned, char (100) aligned), 36 cu_$arg_list_ptr entry returns (ptr), 37 cu_$arg_ptr entry (fixed bin, ptr, fixed bin (21), fixed bin (35)), 38 find_condition_info_ entry (ptr, ptr, fixed bin (35)), 39 get_group_id_ entry returns (char (32)), 40 get_ring_ entry returns (fixed bin (3)), 41 hcs_$fs_get_path_name entry (ptr, char (*), fixed bin, char (*), fixed bin (35)), 42 hcs_$level_get entry (fixed bin (3)), 43 hcs_$level_set entry (fixed bin (3)), 44 ioa_$rsnnl entry options (variable), 45 ioa_$general_rs entry (ptr, fixed bin, fixed bin, char (*), fixed bin (21), bit (1) aligned, 46 bit (1) aligned), 47 send_mail_ entry (char(*), char(*), ptr, fixed bin(35)); 48 49 declare forum_data_$log_destination char (32) external; 50 1 1 /* BEGIN send_mail_info include file */ 1 2 1 3 dcl send_mail_info_version_2 fixed bin init(2); 1 4 1 5 dcl 1 send_mail_info aligned, 1 6 2 version fixed bin, /* = 2 */ 1 7 2 sent_from char(32) aligned, 1 8 2 switches, 1 9 3 wakeup bit(1) unal, 1 10 3 mbz1 bit(1) unal, 1 11 3 always_add bit(1) unal, 1 12 3 never_add bit(1) unal, 1 13 3 notify bit(1) unal, 1 14 3 acknowledge bit(1) unal, 1 15 3 mbz bit(30) unal; 1 16 1 17 /* END send_mail_info include file */ 51 52 2 1 /* BEGIN INCLUDE FILE ... condition_info.incl.pl1 */ 2 2 2 3 /* Structure for find_condition_info_. 2 4* 2 5* Written 1-Mar-79 by M. N. Davidoff. 2 6**/ 2 7 2 8 /* automatic */ 2 9 2 10 declare condition_info_ptr pointer; 2 11 2 12 /* based */ 2 13 2 14 declare 1 condition_info aligned based (condition_info_ptr), 2 15 2 mc_ptr pointer, /* pointer to machine conditions at fault time */ 2 16 2 version fixed binary, /* Must be 1 */ 2 17 2 condition_name char (32) varying, /* name of condition */ 2 18 2 info_ptr pointer, /* pointer to the condition data structure */ 2 19 2 wc_ptr pointer, /* pointer to wall crossing machine conditions */ 2 20 2 loc_ptr pointer, /* pointer to location where condition occured */ 2 21 2 flags unaligned, 2 22 3 crawlout bit (1), /* on if condition occured in lower ring */ 2 23 3 pad1 bit (35), 2 24 2 pad2 bit (36), 2 25 2 user_loc_ptr pointer, /* ptr to most recent nonsupport loc before condition occurred */ 2 26 2 pad3 (4) bit (36); 2 27 2 28 /* internal static */ 2 29 2 30 declare condition_info_version_1 2 31 fixed binary internal static options (constant) initial (1); 2 32 2 33 /* END INCLUDE FILE ... condition_info.incl.pl1 */ 53 54 55 any_other_call = ""b; 56 goto JOIN; 57 58 forum_logger_$any_other: 59 entry options (variable); 60 61 any_other_call = "1"b; 62 63 JOIN: if forum_data_$log_destination = "" then return; 64 65 call hcs_$level_get (user_ring); 66 on cleanup call hcs_$level_set (user_ring); 67 call hcs_$level_set (get_ring_ ()); 68 69 on any_other goto PUNT; /* If we get an error ourselves, lets not recurse. */ 70 71 if any_other_call then do; 72 ci.version = condition_info_version_1; 73 call find_condition_info_ (null (), addr (ci), (0)); 74 error = ci.condition_name; 75 call hcs_$fs_get_path_name (ci.user_loc_ptr, (""), (0), progname, (0)); 76 end; 77 else do; 78 call cu_$arg_ptr (1, arg_ptr, (0), (0)); 79 if based_code ^= 0 then call convert_status_code_ (based_code, "", error); 80 else error = ""; 81 end; 82 83 call cu_$arg_ptr (2, arg_ptr, arg_len, (0)); 84 caller = based_caller; 85 86 call ioa_$general_rs (cu_$arg_list_ptr (), 3, 4, message, message_len, "0"b, "0"b); 87 message = substr (message, 1, message_len); 88 89 call ioa_$rsnnl ("^a (^a): ^[^a ^;^s^]^[fault at ^p (^a). ^;^2s^]^a", line, message_len, caller, get_group_id_ (), 90 error ^= "", error, any_other_call, ci.user_loc_ptr, progname, message); 91 92 send_mail_info.version = 2; 93 send_mail_info.sent_from = "forum_logger_"; 94 string (send_mail_info.switches) = ""b; 95 send_mail_info.wakeup, send_mail_info.always_add = "1"b; 96 97 call send_mail_ (forum_data_$log_destination, substr (line, 1, message_len), addr (send_mail_info), (0)); 98 99 PUNT: 100 call hcs_$level_set (user_ring); 101 return; 102 end forum_logger_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 08/16/86 1354.5 forum_logger_.pl1 >spec>install>1128>forum_logger_.pl1 51 1 04/27/78 1504.4 send_mail_info.incl.pl1 >ldd>include>send_mail_info.incl.pl1 53 2 06/28/79 1204.8 condition_info.incl.pl1 >ldd>include>condition_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. addr builtin function dcl 32 ref 73 73 97 97 always_add 11(02) 000627 automatic bit(1) level 3 packed unaligned dcl 1-5 set ref 95* any_other 000620 stack reference condition dcl 32 ref 69 any_other_call 000100 automatic bit(1) dcl 18 set ref 55* 61* 71 89* arg_len 000104 automatic fixed bin(21,0) dcl 18 set ref 83* 84 arg_ptr 000102 automatic pointer dcl 18 set ref 78* 79 79 83* 84 based_caller based char unaligned dcl 18 ref 84 based_code based fixed bin(35,0) dcl 18 set ref 79 79* caller 000105 automatic char(32) unaligned dcl 18 set ref 84* 89* ci 000560 automatic structure level 1 dcl 31 set ref 73 73 cleanup 000612 stack reference condition dcl 32 ref 66 condition_info based structure level 1 dcl 2-14 condition_info_version_1 constant fixed bin(17,0) initial dcl 2-30 ref 72 condition_name 3 000560 automatic varying char(32) level 2 dcl 31 set ref 74 convert_status_code_ 000010 constant entry external dcl 35 ref 79 cu_$arg_list_ptr 000012 constant entry external dcl 35 ref 86 86 cu_$arg_ptr 000014 constant entry external dcl 35 ref 78 83 error 000115 automatic char(100) dcl 18 set ref 74* 79* 80* 89 89* find_condition_info_ 000016 constant entry external dcl 35 ref 73 forum_data_$log_destination 000040 external static char(32) unaligned dcl 49 set ref 63 97* get_group_id_ 000020 constant entry external dcl 35 ref 89 89 get_ring_ 000022 constant entry external dcl 35 ref 67 67 hcs_$fs_get_path_name 000024 constant entry external dcl 35 ref 75 hcs_$level_get 000026 constant entry external dcl 35 ref 65 hcs_$level_set 000030 constant entry external dcl 35 ref 66 67 99 ioa_$general_rs 000034 constant entry external dcl 35 ref 86 ioa_$rsnnl 000032 constant entry external dcl 35 ref 89 line 000350 automatic char(512) unaligned dcl 18 set ref 89* 97 97 message 000146 automatic char(512) unaligned dcl 18 set ref 86* 87* 87 89* message_len 000346 automatic fixed bin(21,0) dcl 18 set ref 86* 87 89* 97 97 null builtin function dcl 32 ref 73 73 progname 000550 automatic char(32) unaligned dcl 18 set ref 75* 89* send_mail_ 000036 constant entry external dcl 35 ref 97 send_mail_info 000627 automatic structure level 1 dcl 1-5 set ref 97 97 send_mail_info_version_2 000626 automatic fixed bin(17,0) initial dcl 1-3 set ref 1-3* sent_from 1 000627 automatic char(32) level 2 dcl 1-5 set ref 93* string builtin function dcl 32 set ref 94* substr builtin function dcl 32 ref 87 97 97 switches 11 000627 automatic structure level 2 dcl 1-5 set ref 94* user_loc_ptr 24 000560 automatic pointer level 2 dcl 31 set ref 75* 89* user_ring 000347 automatic fixed bin(3,0) dcl 18 set ref 65* 66* 99* version 000627 automatic fixed bin(17,0) level 2 in structure "send_mail_info" dcl 1-5 in procedure "forum_logger_" set ref 92* version 2 000560 automatic fixed bin(17,0) level 2 in structure "ci" dcl 31 in procedure "forum_logger_" set ref 72* wakeup 11 000627 automatic bit(1) level 3 packed unaligned dcl 1-5 set ref 95* NAME DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. condition_info_ptr automatic pointer dcl 2-10 NAMES DECLARED BY EXPLICIT CONTEXT. JOIN 000075 constant label dcl 63 ref 56 PUNT 000577 constant label dcl 99 ref 69 forum_logger_ 000054 constant entry external dcl 15 forum_logger_$any_other 000065 constant entry external dcl 58 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 1030 1072 610 1040 Length 1320 610 42 212 217 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME forum_logger_ 536 external procedure is an external procedure. on unit on line 66 68 on unit on unit on line 69 64 on unit STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME forum_logger_ 000100 any_other_call forum_logger_ 000102 arg_ptr forum_logger_ 000104 arg_len forum_logger_ 000105 caller forum_logger_ 000115 error forum_logger_ 000146 message forum_logger_ 000346 message_len forum_logger_ 000347 user_ring forum_logger_ 000350 line forum_logger_ 000550 progname forum_logger_ 000560 ci forum_logger_ 000626 send_mail_info_version_2 forum_logger_ 000627 send_mail_info forum_logger_ THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. r_ne_as alloc_char_temp call_ext_out_desc call_ext_out return_mac tra_ext_1 enable_op shorten_stack ext_entry int_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. convert_status_code_ cu_$arg_list_ptr cu_$arg_ptr find_condition_info_ get_group_id_ get_ring_ hcs_$fs_get_path_name hcs_$level_get hcs_$level_set ioa_$general_rs ioa_$rsnnl send_mail_ THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. forum_data_$log_destination LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 1 3 000047 15 000053 55 000062 56 000063 58 000064 61 000073 63 000075 65 000103 66 000111 67 000135 69 000153 71 000172 72 000175 73 000177 74 000217 75 000223 76 000256 78 000257 79 000300 80 000320 83 000323 84 000343 86 000350 87 000425 89 000431 92 000526 93 000530 94 000533 95 000534 97 000540 99 000577 101 000607 ----------------------------------------------------------- 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