COMPILATION LISTING OF SEGMENT monitor_sys_log_wakeup_ Compiled by: Multics PL/I Compiler, Release 30, of February 16, 1988 Compiled at: Honeywell Bull, Phoenix AZ, SysM Compiled on: 08/29/88 0928.5 mst Mon Options: optimize map 1 /****^ *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Bull Inc., 1988 * 4* * * 5* * Copyright, (C) Honeywell Information Systems Inc., 1984 * 6* * * 7* *********************************************************** */ 8 9 /* monitor_sys_log_wakeup_.pl1 -- event wakeup handler for monitor_sys_log */ 10 /* format: style2 */ 11 12 monitor_sys_log_wakeup_: 13 procedure; 14 15 /**** Created 1984-12, BIM. */ 16 /**** Modified 1985-01-15, BIM: process_id and data_class printing. */ 17 18 19 /****^ HISTORY COMMENTS: 20* 1) change(88-04-28,GDixon), approve(88-08-15,MCR7969), 21* audit(88-08-03,Lippard), install(88-08-29,MR12.2-1093): 22* A) Add a "start" control order to restart any I/O interrupted by this 23* wakeup handler printing out a message. (phx20587) 24* END HISTORY COMMENTS */ 25 26 27 declare P_event_call_info_ptr pointer; 28 1 1 /* BEGIN INCLUDE FILE event_call_info.incl.pl1 */ 1 2 1 3 /* T. Casey, May 1978 */ 1 4 1 5 dcl event_call_info_ptr ptr; 1 6 1 7 dcl 1 event_call_info aligned based (event_call_info_ptr), /* argument structure passed to event call procedure */ 1 8 2 channel_id fixed bin (71), /* event channel on which wakeup occurred */ 1 9 2 message fixed bin (71), /* 72 bits of information passed by sender of wakeup */ 1 10 2 sender bit (36), /* process id of sender */ 1 11 2 origin, 1 12 3 dev_signal bit (18) unaligned, /* "1"b if device signal */ 1 13 3 ring fixed bin (17) unaligned, /* ring from which sent */ 1 14 2 data_ptr ptr; /* ptr given to dcl_event_call_channel */ 1 15 1 16 /* END INCLUDE FILE event_call_info.incl.pl1 */ 29 30 31 declare cu_$cp entry (ptr, fixed bin (21), fixed bin (35)); 32 declare date_time_$format entry (character (*), fixed binary (71), character (*), character (*)) 33 returns (character (250) var); 34 declare expand_log_message_ entry (pointer, pointer, pointer, character (*) var, fixed binary (35)); 35 declare expand_log_message_$append_octal 36 entry (pointer, pointer, fixed binary, character (*) var); 37 declare expand_log_message_$append_process_id 38 entry (pointer, pointer, character (*) var); 39 declare expand_log_message_$append_data_class 40 entry (pointer, pointer, character (*) var); 41 declare format_log_message_$format 42 entry (pointer, pointer, pointer, character (*) var, character (*) var, 43 fixed binary (35)); 44 declare ioa_$rsnnl entry () options (variable); 45 declare iox_$control entry (ptr, char(*), ptr, fixed bin(35)); 46 declare iox_$put_chars entry (ptr, ptr, fixed bin (21), fixed bin (35)); 47 declare ipc_$drain_chn entry (fixed bin (71), fixed bin (35)); 48 declare log_expand_select_$test 49 entry (pointer, pointer, bit (1) aligned, pointer); 50 declare log_match_$test entry (pointer, pointer, character (*) var) returns (bit (1) aligned); 51 declare log_read_$next_message entry (pointer, pointer, fixed binary (35)); 52 declare log_read_$update entry (fixed binary (35), pointer, pointer, fixed binary (35)); 53 declare requote_string_ entry (character (*)) returns (character (*)); 54 declare timer_manager_$alarm_wakeup 55 entry (fixed binary (71), bit (2), fixed binary (71)); 56 57 declare code fixed bin (35); 58 2 1 /* Begin include file monitor_sys_log_info_.incl.pl1 */ 2 2 2 3 /****^ HISTORY COMMENTS: 2 4* 1) change(86-08-01,Ex), approve(86-08-01,MCR7456), audit(86-08-01,Wong), 2 5* install(86-11-03,MR12.0-1149): 2 6* Changed by Rick Kissel to support DSA System and system aep logs, using 2 7* the -dsasl and -dsasal control arguments. 2 8* END HISTORY COMMENTS */ 2 9 2 10 /* format: style3,idind30 */ 2 11 2 12 /***************************************************************************** 2 13* * This include file declares the monitor_sys_log_data and * 2 14* * monitor_sys_log_array structures used by monitor_sys_log as part of the * 2 15* * logging tools. * 2 16* *****************************************************************************/ 2 17 2 18 2 19 declare 1 monitor_sys_log_data_ external static, 2 20 2 initialized bit (1) init ("0"b), 2 21 2 active bit (1) init ("0"b),/* timer manager is turned on */ 2 22 2 wakeup_interval fixed bin (71) init (10), 2 23 /* seconds */ 2 24 2 n_logs fixed bin init (0), 2 25 2 n_logs_on_timer fixed bin init (0), 2 26 2 wakeup_event_channel fixed bin (71) init (0), 2 27 2 log_array_ptr pointer init (null ()); 2 28 2 29 declare monitor_sys_log_array_ptr pointer; 2 30 declare 1 monitor_sys_log_array aligned based (monitor_sys_log_array_ptr), 2 31 2 n_entries fixed bin, 2 32 2 entry (msl_n_entries refer (monitor_sys_log_array.n_entries)) aligned, 2 33 3 dir_name char (168) unal, 2 34 3 entryname char (32) unal, 2 35 3 log_read_ptr pointer, 2 36 3 the_syserr_log bit (1) aligned, 2 37 3 the_as_log bit (1) aligned, 2 38 3 the_admin_log bit (1) aligned, 2 39 3 the_dm_log bit (1) aligned, 2 40 3 the_dsas_log bit (1) aligned, 2 41 3 the_dsasa_log bit (1) aligned, 2 42 3 inhibited bit (1) aligned, /* -off in effect */ 2 43 3 interpret_sw bit (1) aligned, 2 44 3 octal_sw bit (1) aligned, 2 45 3 registered bit (1) aligned, /* don't look kere on the timer */ 2 46 3 data_class_sw bit (1) aligned, /* print data class */ 2 47 3 process_id_sw bit (1) aligned, /* print process id */ 2 48 3 expand_select_ptr pointer, /* expansion */ 2 49 3 lmd_ptr pointer, /* selection */ 2 50 3 iocb_ptr pointer, /* print here */ 2 51 3 format_ptr pointer, /* format like this */ 2 52 3 last_sequence fixed bin (35), 2 53 3 last_message_ptr pointer, /* the last one we read */ 2 54 3 prev_message_ptr pointer, /* the one before that */ 2 55 3 registered_wakeup_event_channel 2 56 fixed bin (71), 2 57 3 call_command aligned, 2 58 4 ptr pointer, 2 59 4 length fixed bin (21); 2 60 2 61 declare msl_n_entries fixed bin; 2 62 2 63 /* End include file monitor_sys_log_info_.incl.pl1 */ 59 60 declare an_entry_ptr pointer; 61 declare 1 an_entry aligned like monitor_sys_log_array.entry based (an_entry_ptr); 62 declare (addr, addwordno, dimension, length, null) 63 builtin; 64 3 1 /* BEGIN INCLUDE FILE ... log_message.incl.pl1 ... 84-04-25 ... W. Olin Sibert */ 3 2 3 3 declare 1 log_message_header aligned based, /* Items marked "(SET)" are set by $create_message */ 3 4 2 sentinel bit (36) aligned, /* Proper value declared in log_segment.incl.pl1 */ 3 5 2 sequence fixed bin (35), /* Sequence number for this message (SET) */ 3 6 2 severity fixed bin (8) unaligned, /* Severity of message */ 3 7 2 data_class_lth fixed bin (9) unaligned unsigned, /* Length of data class-- 0 to 16 (SET) */ 3 8 2 time fixed bin (53) unaligned, /* Time message originated */ 3 9 2 text_lth fixed bin (17) unaligned, /* Length of message text. Must be nonzero (SET) */ 3 10 2 data_lth fixed bin (17) unaligned, /* Length of binary data. May be zero (SET) */ 3 11 2 process_id bit (36) aligned; /* Process id of process writing message */ 3 12 3 13 declare 1 log_message aligned based (log_message_ptr), 3 14 2 header aligned like log_message_header, 3 15 2 text char (log_message_text_lth refer (log_message.text_lth)) unaligned, 3 16 2 data_class char (log_message_data_class_lth refer (log_message.data_class_lth)) unaligned, 3 17 2 data dim (log_message_data_lth refer (log_message.data_lth)) bit (36) aligned; 3 18 3 19 declare log_message_ptr pointer; 3 20 declare log_message_text_lth fixed bin; 3 21 declare log_message_data_class_lth fixed bin; 3 22 declare log_message_data_lth fixed bin; 3 23 3 24 /* END INCLUDE FILE ... log_message.incl.pl1 */ 65 4 1 /* BEGIN INCLUDE FILE ... log_message_format.incl.pl1 ... 84-07-03 ... W. Olin Sibert */ 4 2 4 3 declare 1 log_message_format aligned based (log_message_format_ptr), 4 4 2 caller char (32) unaligned, /* Caller name to use when printing error messages */ 4 5 2 line_lth fixed bin, /* Max length of output lines; longer messages are folded */ 4 6 2 indentation fixed bin, /* Number of spaces at beginning of each output line */ 4 7 2 equal_sw bit (1) aligned, /* Whether to suppress messages with identical text */ 4 8 2 error_sw bit (1) aligned, /* Whether to print error messages via com_err_ */ 4 9 2 prefix char (40) varying, /* Prefix for printing messages */ 4 10 2 number_format char (20) varying, /* ioa_ format for printing message numbers */ 4 11 2 time_format char (40) varying, /* date_time_$format string for message times */ 4 12 2 date_format char (40) varying, /* date_time_$format string for when date changes */ 4 13 2 continuation_indent fixed bin, /* If >= zero, value for continuation lines */ 4 14 /* Otherwise, lined up under the text by default */ 4 15 4 16 2 pad (59) bit (36) aligned, 4 17 4 18 /* ONLY format_log_message_$adjust ever changes the values below */ 4 19 4 20 2 internal_info aligned, /* Internal info, set by $adjust-- DO NOT CHANGE */ 4 21 3 area_ptr pointer, /* Where this structure is allocated */ 4 22 3 date_ioa_string char (100) varying, /* Format for date breaks,if any */ 4 23 3 message_ioa_string char (100) varying, /* Format for first lines of messages */ 4 24 3 real_continuation_indent fixed bin, /* Indentation for continuation lines */ 4 25 3 prefix_lth fixed bin, /* Length of indent + prefix + time + sequence + severity */ 4 26 3 date_modulus fixed bin (36), /* Modulus for checking whether dates are equal */ 4 27 4 28 2 end fixed bin; 4 29 4 30 declare log_message_format_ptr pointer; 4 31 4 32 /* END INCLUDE FILE ... log_message_format.incl.pl1 */ 66 67 68 69 timer: 70 entry (P_event_call_info_ptr); 71 72 event_call_info_ptr = P_event_call_info_ptr; 73 74 if ^monitor_sys_log_data_.initialized | ^monitor_sys_log_data_.active 75 then return; 76 77 call ipc_$drain_chn (monitor_sys_log_data_.wakeup_event_channel, (0)); 78 79 monitor_sys_log_array_ptr = monitor_sys_log_data_.log_array_ptr; 80 if monitor_sys_log_data_.n_logs_on_timer > 0 & monitor_sys_log_array_ptr ^= null () 81 then call process_logs; 82 83 if monitor_sys_log_data_.active & monitor_sys_log_data_.wakeup_event_channel ^= 0 84 then call timer_manager_$alarm_wakeup (monitor_sys_log_data_.wakeup_interval, "11"b, 85 monitor_sys_log_data_.wakeup_event_channel); 86 return; 87 88 process_logs: 89 procedure; 90 91 declare lx fixed bin; 92 93 do lx = 1 to monitor_sys_log_array.n_entries; 94 an_entry_ptr = addr (monitor_sys_log_array.entry (lx)); 95 if an_entry.dir_name ^= "" 96 then if ^an_entry.registered 97 then if ^an_entry.inhibited 98 then call process_one_log; 99 end; 100 101 return; 102 end process_logs; 103 104 process_one_log: 105 procedure; /* assumes an_entry_ptr set */ 106 declare printed_one_message bit (1) aligned; /* do "start" control if any message printed from this log. */ 107 declare process_last_message bit (1) aligned; /* for first message in empty log fencepost -- process the "last" message. */ 108 declare saved_last_message_ptr pointer; 109 110 process_last_message = "0"b; 111 if an_entry.last_message_ptr = null () 112 then do; /* was empty when we started */ 113 call log_read_$next_message (an_entry.log_read_ptr, an_entry.last_message_ptr, code); 114 if code ^= 0 115 then return; /* Still no entries in the log */ 116 an_entry.last_sequence = an_entry.last_message_ptr -> log_message.sequence; 117 /* okay, consider the first message, and fall down to update */ 118 process_last_message = "1"b; 119 end; 120 121 call log_read_$update (an_entry.last_sequence, an_entry.log_read_ptr, an_entry.last_message_ptr, code); 122 if code ^= 0 123 then return; 124 printed_one_message = "0"b; /* remember if any messages were printed. */ 125 do while (code = 0); 126 saved_last_message_ptr = an_entry.last_message_ptr; 127 if ^process_last_message 128 then /* Normal case */ 129 call log_read_$next_message (an_entry.log_read_ptr, an_entry.last_message_ptr, code); 130 else do; /* first message in empty seg is in the last_ vars */ 131 saved_last_message_ptr = null (); /* prev_message to first message in segment is null () */ 132 process_last_message = "0"b; /* only do this ONCE */ 133 code = 0; 134 end; 135 if an_entry.last_message_ptr = null () | code ^= 0 136 /* in process_last_message case this is guaranteed to fail */ 137 then an_entry.last_message_ptr = saved_last_message_ptr; 138 else if code = 0 139 then do; 140 an_entry.prev_message_ptr = saved_last_message_ptr; 141 an_entry.last_sequence = an_entry.last_message_ptr -> log_message.sequence; 142 call process_message; 143 end; 144 end; 145 if printed_one_message /* restart any interrupted I/O. */ 146 then call iox_$control (an_entry.iocb_ptr, "start", null, code); 147 return; 148 149 process_message: 150 procedure; 151 152 declare output_buffer char (5000) varying; 153 declare expansion char (5000) varying; 154 declare expand_this_message bit (1) aligned; 155 declare expand_mode_ptr pointer; 156 157 log_message_ptr = an_entry.last_message_ptr; 158 if ^log_match_$test (an_entry.lmd_ptr, log_message_ptr, "") 159 /* first, see if we can toss this without any work at all */ 160 then return; 161 if ^an_entry.interpret_sw 162 then /* If not interpreting, then definitely not */ 163 expand_this_message = "0"b; 164 else if (dimension (log_message.data, 1) = 0) 165 then /* And, if no data, also definitely not */ 166 expand_this_message = "0"b; 167 else if (an_entry.expand_select_ptr = null ()) 168 then do; /* But if we are interpreting, and no classes were */ 169 expand_this_message = "1"b; /* asked for, we do expand this one's data */ 170 expand_mode_ptr = null (); /* But, obviously, there were no expand modes asked for */ 171 end; 172 else call log_expand_select_$test 173 /* Otherwise, we ask the selector */ (an_entry.expand_select_ptr, log_message_ptr, 174 expand_this_message, expand_mode_ptr); 175 176 if expand_this_message 177 then call expand_log_message_ (an_entry.format_ptr, log_message_ptr, expand_mode_ptr, expansion, (0)); 178 else expansion = ""; /* This one has nothing for the formatter */ 179 if ^log_match_$test (an_entry.lmd_ptr, log_message_ptr, expansion) 180 then return; 181 182 if an_entry.octal_sw 183 then call expand_log_message_$append_octal (an_entry.format_ptr, addr (log_message.data), 184 (log_message.data_lth), expansion); 185 186 if an_entry.process_id_sw 187 then call expand_log_message_$append_process_id (an_entry.format_ptr, log_message_ptr, expansion); 188 if an_entry.data_class_sw 189 then call expand_log_message_$append_data_class (an_entry.format_ptr, log_message_ptr, expansion); 190 191 if an_entry.call_command.ptr ^= null () 192 then call process_call; 193 else call process_print; 194 195 return; 196 197 process_print: 198 procedure; 199 200 call format_log_message_$format (an_entry.format_ptr, log_message_ptr, an_entry.prev_message_ptr, expansion, 201 output_buffer, (0)); 202 203 call iox_$put_chars (an_entry.iocb_ptr, addwordno (addr (output_buffer), 1), length (output_buffer), (0)); 204 printed_one_message = "1"b; 205 return; 206 end process_print; 207 208 process_call: 209 procedure options (non_quick); 210 211 declare requoted_buffer char (5000) varying; 212 declare command_line_buffer char (6000) varying; 213 /* has got to be big enough */ 214 declare dt_string char (100) varying; 215 declare call_command_string char (an_entry.call_command.length) based (an_entry.call_command.ptr); 216 217 /**** This needs data expansion support ... */ 218 219 log_message_ptr = an_entry.last_message_ptr; 220 requoted_buffer = requote_string_ (log_message.text); 221 dt_string = requote_string_ (date_time_$format ("iso_long_date_time", (log_message.time), "", "")); 222 command_line_buffer = ""; 223 call ioa_$rsnnl ("^a ^a ^a ^d ^d ^a^[ ^a ^a^]", command_line_buffer, (0), call_command_string, 224 an_entry.format_ptr -> log_message_format.prefix, dt_string, log_message.sequence, log_message.severity, 225 requoted_buffer, log_message.data_class_lth > 0, log_message.data_class, 226 """""" /* will be expanded text */); 227 228 call cu_$cp (addwordno (addr (command_line_buffer), 1), length (command_line_buffer), (0)); 229 return; 230 end process_call; 231 232 end process_message; 233 end process_one_log; 234 end monitor_sys_log_wakeup_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 08/29/88 0858.7 monitor_sys_log_wakeup_.pl1 >spec>install>1093>monitor_sys_log_wakeup_.pl1 29 1 06/29/79 1728.0 event_call_info.incl.pl1 >ldd>include>event_call_info.incl.pl1 59 2 11/03/86 1042.6 monitor_sys_log_info_.incl.pl1 >ldd>include>monitor_sys_log_info_.incl.pl1 65 3 01/21/85 0912.2 log_message.incl.pl1 >ldd>include>log_message.incl.pl1 66 4 01/21/85 0912.2 log_message_format.incl.pl1 >ldd>include>log_message_format.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. P_event_call_info_ptr parameter pointer dcl 27 ref 69 72 active 0(01) 000052 external static bit(1) initial level 2 packed packed unaligned dcl 2-19 ref 74 83 addr builtin function dcl 62 ref 94 182 182 203 203 228 228 addwordno builtin function dcl 62 ref 203 203 228 228 an_entry based structure level 1 dcl 61 an_entry_ptr 000106 automatic pointer dcl 60 set ref 94* 95 95 95 111 113 113 116 116 121 121 121 126 127 127 135 135 140 141 141 145 157 158 161 167 172 176 179 182 182 186 186 188 188 191 200 200 203 219 223 223 223 223 call_command 120 based structure level 2 dcl 61 call_command_string based char packed unaligned dcl 215 set ref 223* code 000102 automatic fixed bin(35,0) dcl 57 set ref 113* 114 121* 122 125 127* 133* 135 138 145* command_line_buffer 002443 automatic varying char(6000) dcl 212 set ref 222* 223* 228 228 228 228 cu_$cp 000010 constant entry external dcl 31 ref 228 data based bit(36) array level 2 dcl 3-13 set ref 164 182 182 data_class based char level 2 packed packed unaligned dcl 3-13 set ref 223* data_class_lth 2(09) based fixed bin(9,0) level 3 packed packed unsigned unaligned dcl 3-13 ref 164 182 182 223 223 223 data_class_sw 76 based bit(1) level 2 dcl 61 ref 188 data_lth 4(18) based fixed bin(17,0) level 3 packed packed unaligned dcl 3-13 ref 164 182 date_time_$format 000012 constant entry external dcl 32 ref 221 dimension builtin function dcl 62 ref 164 dir_name based char(168) level 2 packed packed unaligned dcl 61 ref 95 dt_string 005400 automatic varying char(100) dcl 214 set ref 221* 223* entry 2 based structure array level 2 dcl 2-30 set ref 94 event_call_info_ptr 000100 automatic pointer dcl 1-5 set ref 72* expand_log_message_ 000014 constant entry external dcl 34 ref 176 expand_log_message_$append_data_class 000022 constant entry external dcl 39 ref 188 expand_log_message_$append_octal 000016 constant entry external dcl 35 ref 182 expand_log_message_$append_process_id 000020 constant entry external dcl 37 ref 186 expand_mode_ptr 005052 automatic pointer dcl 155 set ref 170* 172* 176* expand_select_ptr 100 based pointer level 2 dcl 61 set ref 167 172* expand_this_message 005050 automatic bit(1) dcl 154 set ref 161* 164* 169* 172* 176 expansion 002505 automatic varying char(5000) dcl 153 set ref 176* 178* 179* 182* 186* 188* 200* format_log_message_$format 000024 constant entry external dcl 41 ref 200 format_ptr 106 based pointer level 2 dcl 61 set ref 176* 182* 186* 188* 200* 223 header based structure level 2 dcl 3-13 inhibited 72 based bit(1) level 2 dcl 61 ref 95 initialized 000052 external static bit(1) initial level 2 packed packed unaligned dcl 2-19 ref 74 interpret_sw 73 based bit(1) level 2 dcl 61 ref 161 ioa_$rsnnl 000026 constant entry external dcl 44 ref 223 iocb_ptr 104 based pointer level 2 dcl 61 set ref 145* 203* iox_$control 000030 constant entry external dcl 45 ref 145 iox_$put_chars 000032 constant entry external dcl 46 ref 203 ipc_$drain_chn 000034 constant entry external dcl 47 ref 77 last_message_ptr 112 based pointer level 2 dcl 61 set ref 111 113* 116 121* 126 127* 135 135* 141 157 219 last_sequence 110 based fixed bin(35,0) level 2 dcl 61 set ref 116* 121* 141* length builtin function dcl 62 in procedure "monitor_sys_log_wakeup_" ref 203 203 228 228 length 122 based fixed bin(21,0) level 3 in structure "an_entry" dcl 61 in procedure "monitor_sys_log_wakeup_" ref 223 223 lmd_ptr 102 based pointer level 2 dcl 61 set ref 158* 179* log_array_ptr 10 000052 external static pointer initial level 2 dcl 2-19 ref 79 log_expand_select_$test 000036 constant entry external dcl 48 ref 172 log_match_$test 000040 constant entry external dcl 50 ref 158 179 log_message based structure level 1 dcl 3-13 log_message_format based structure level 1 dcl 4-3 log_message_header based structure level 1 dcl 3-3 log_message_ptr 000110 automatic pointer dcl 3-19 set ref 157* 158* 164 172* 176* 179* 182 182 182 186* 188* 200* 219* 220 221 223 223 223 223 log_read_$next_message 000042 constant entry external dcl 51 ref 113 127 log_read_$update 000044 constant entry external dcl 52 ref 121 log_read_ptr 62 based pointer level 2 dcl 61 set ref 113* 121* 127* lx 000120 automatic fixed bin(17,0) dcl 91 set ref 93* 94* monitor_sys_log_array based structure level 1 dcl 2-30 monitor_sys_log_array_ptr 000104 automatic pointer dcl 2-29 set ref 79* 80 93 94 monitor_sys_log_data_ 000052 external static structure level 1 unaligned dcl 2-19 n_entries based fixed bin(17,0) level 2 dcl 2-30 ref 93 n_logs_on_timer 5 000052 external static fixed bin(17,0) initial level 2 dcl 2-19 ref 80 null builtin function dcl 62 ref 80 111 131 135 145 145 167 170 191 octal_sw 74 based bit(1) level 2 dcl 61 ref 182 output_buffer 000142 automatic varying char(5000) dcl 152 set ref 200* 203 203 203 203 prefix 14 based varying char(40) level 2 dcl 4-3 set ref 223* prev_message_ptr 114 based pointer level 2 dcl 61 set ref 140* 200* printed_one_message 000130 automatic bit(1) dcl 106 set ref 124* 145 204* process_id_sw 77 based bit(1) level 2 dcl 61 ref 186 process_last_message 000131 automatic bit(1) dcl 107 set ref 110* 118* 127 132* ptr 120 based pointer level 3 dcl 61 ref 191 223 registered 75 based bit(1) level 2 dcl 61 ref 95 requote_string_ 000046 constant entry external dcl 53 ref 220 221 requoted_buffer 000100 automatic varying char(5000) dcl 211 set ref 220* 223* saved_last_message_ptr 000132 automatic pointer dcl 108 set ref 126* 131* 135 140 sequence 1 based fixed bin(35,0) level 3 dcl 3-13 set ref 116 141 223* severity 2 based fixed bin(8,0) level 3 packed packed unaligned dcl 3-13 set ref 223* text 6 based char level 2 packed packed unaligned dcl 3-13 set ref 220* text_lth 4 based fixed bin(17,0) level 3 packed packed unaligned dcl 3-13 ref 164 182 182 220 220 223 time 2(18) based fixed bin(53,0) level 3 packed packed unaligned dcl 3-13 ref 221 timer_manager_$alarm_wakeup 000050 constant entry external dcl 54 ref 83 wakeup_event_channel 6 000052 external static fixed bin(71,0) initial level 2 dcl 2-19 set ref 77* 83 83* wakeup_interval 2 000052 external static fixed bin(71,0) initial level 2 dcl 2-19 set ref 83* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. event_call_info based structure level 1 dcl 1-7 log_message_data_class_lth automatic fixed bin(17,0) dcl 3-21 log_message_data_lth automatic fixed bin(17,0) dcl 3-22 log_message_format_ptr automatic pointer dcl 4-30 log_message_text_lth automatic fixed bin(17,0) dcl 3-20 msl_n_entries automatic fixed bin(17,0) dcl 2-61 NAMES DECLARED BY EXPLICIT CONTEXT. monitor_sys_log_wakeup_ 000045 constant entry external dcl 12 process_call 000772 constant entry internal dcl 208 ref 191 process_logs 000147 constant entry internal dcl 88 ref 80 process_message 000362 constant entry internal dcl 149 ref 142 process_one_log 000177 constant entry internal dcl 104 ref 95 process_print 000703 constant entry internal dcl 197 ref 193 timer 000056 constant entry external dcl 69 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 1606 1662 1315 1616 Length 2164 1315 54 265 271 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME monitor_sys_log_wakeup_ 2742 external procedure is an external procedure. process_logs internal procedure shares stack frame of external procedure monitor_sys_log_wakeup_. process_one_log internal procedure shares stack frame of external procedure monitor_sys_log_wakeup_. process_message internal procedure shares stack frame of external procedure monitor_sys_log_wakeup_. process_print internal procedure shares stack frame of external procedure monitor_sys_log_wakeup_. process_call 2949 internal procedure is declared options(non_quick). STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME monitor_sys_log_wakeup_ 000100 event_call_info_ptr monitor_sys_log_wakeup_ 000102 code monitor_sys_log_wakeup_ 000104 monitor_sys_log_array_ptr monitor_sys_log_wakeup_ 000106 an_entry_ptr monitor_sys_log_wakeup_ 000110 log_message_ptr monitor_sys_log_wakeup_ 000120 lx process_logs 000130 printed_one_message process_one_log 000131 process_last_message process_one_log 000132 saved_last_message_ptr process_one_log 000142 output_buffer process_message 002505 expansion process_message 005050 expand_this_message process_message 005052 expand_mode_ptr process_message process_call 000100 requoted_buffer process_call 002443 command_line_buffer process_call 005400 dt_string process_call THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. r_g_a alloc_char_temp call_ext_out_desc call_ext_out call_int_this return_mac shorten_stack ext_entry int_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. cu_$cp date_time_$format expand_log_message_ expand_log_message_$append_data_class expand_log_message_$append_octal expand_log_message_$append_process_id format_log_message_$format ioa_$rsnnl iox_$control iox_$put_chars ipc_$drain_chn log_expand_select_$test log_match_$test log_read_$next_message log_read_$update requote_string_ timer_manager_$alarm_wakeup THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. monitor_sys_log_data_ LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 12 000044 69 000052 72 000063 74 000067 77 000075 79 000107 80 000113 83 000123 86 000146 88 000147 93 000150 94 000157 95 000163 99 000174 101 000176 104 000177 110 000200 111 000201 113 000206 114 000221 116 000224 118 000230 121 000232 122 000247 124 000252 125 000253 126 000256 127 000261 131 000300 132 000302 133 000303 135 000304 138 000316 140 000317 141 000321 142 000324 144 000325 145 000326 147 000361 149 000362 157 000363 158 000366 161 000420 164 000425 167 000434 169 000440 170 000442 171 000444 172 000445 176 000462 178 000517 179 000520 182 000551 186 000621 188 000644 191 000667 193 000701 195 000702 197 000703 200 000704 203 000740 204 000766 205 000770 208 000771 219 000777 220 001004 221 001041 222 001150 223 001152 228 001271 229 001314 ----------------------------------------------------------- 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