COMPILATION LISTING OF SEGMENT heals_io_report_gen_ Compiled by: Multics PL/I Compiler, Release 28d, of October 4, 1983 Compiled at: Honeywell Multics Op. - System M Compiled on: 09/27/84 0745.5 mst Thu Options: optimize map 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 4* * * 5* *********************************************************** */ 6 heals_io_report_gen_: proc (heals_arg_info_p, heals_ior_args_p, r_code); 7 8 /* ****************************************************************************** 9* * * 10* * Comments: * 11* * * 12* * Written by RH Morrison Dec. 1, 1976 * 13* * Last modified by RH Morrison 01/03/77 * 14* * * 15* ****************************************************************************** */ 16 17 /* FF */ 18 /* ******** DECLARATIONS ******** */ 19 20 /* **** PROCEDURE ARGUMENTS **** */ 21 22 dcl heals_arg_info_p ptr; 23 dcl heals_ior_args_p ptr; 24 dcl r_code fixed bin (35); 25 26 /* **** EXTERNAL STATIC **** */ 27 28 dcl error_table_$end_of_info ext static fixed bin (35); 29 30 /* **** ENTRIES **** */ 31 32 dcl ioa_ entry options (variable); 33 dcl ioa_$ioa_switch entry options (variable); 34 dcl clock_ entry returns (fixed bin (71)); 35 dcl com_err_ entry options (variable); 36 dcl date_time_ entry (fixed bin (71), char (*)); 37 dcl iox_$close entry (ptr, fixed bin (35)); 38 dcl iox_$open entry (ptr, fixed bin, bit (1) aligned, fixed bin (35)); 39 dcl iox_$read_record entry (ptr, ptr, fixed bin (21), fixed bin (21), fixed bin (35)); 40 41 /* **** POINTERS **** */ 42 dcl flags_p ptr init (null); 43 dcl work_p1 ptr init (null); 44 45 /* Arguments */ 46 dcl inbuf_p ptr init (null); 47 dcl insw_p ptr init (null); 48 dcl outsw_p ptr init (null); 49 50 /* Pointers declared elsewhere: 51* ior_flags_p 52* ior_parms_p 53* ch_nfo_p 54* ior_avars_p 55* ioerr_rec_p 56* io_msgp 57* statp 58* */ 59 60 /* **** CHARACTER STRING VARIABLES **** */ 61 dcl inbuf char (inbuf_len) aligned; 62 dcl rprt_from_time char (16); 63 dcl rprt_to_time char (16); 64 dcl old_date char (8); 65 dcl date char (8); 66 dcl time char (6); 67 dcl date_time char (16); 68 dcl ch_nr pic "99"; 69 dcl dev_nr pic "99"; 70 71 /* Arguments */ 72 dcl whoami char (20) init ("heals_io_report_gen_"); 73 dcl version_date char (8) init ("12/15/76"); 74 75 /* **** ARITHMETIC VARIABLES **** */ 76 dcl clock_time fixed bin (71); 77 dcl line_cnt fixed bin; 78 dcl max_line_cnt fixed bin; 79 dcl page_nb fixed bin; 80 81 /* Arguments */ 82 dcl code fixed bin (35); 83 dcl version_nb fixed bin init (1); 84 dcl inrec_len fixed bin (21); 85 dcl inbuf_len fixed bin (21) int static init (1024); 86 dcl seq_in fixed bin int static init (4); 87 88 /* **** BIT STRING VARIABLES **** */ 89 dcl flags_word bit (36) aligned; 90 dcl eof bit (1) aligned; 91 92 /* Arguments */ 93 dcl unused bit (1) aligned int static init ("0"b); 94 95 /* **** BASED VARIABLES **** */ 96 dcl 1 flags aligned based (flags_p), 97 (2 trace bit (1), 98 2 db bit (1), 99 2 hdrs bit (1), 100 2 no_recs bit (1), 101 2 fill (1) 102 ) unal; 103 104 dcl 1 arg_info like heals_arg_info aligned based (heals_arg_info_p); 105 106 /* **** MISC. DECLARATIONS **** */ 107 108 dcl (addr, fixed, null, substr) builtin; 109 dcl cleanup condition; 110 111 /* FF */ 112 /* **** INCLUDE FILES **** */ 1 1 /* heals_arg_info.incl.pl1 contains the declaration 1 2* of the argument structure passed between heals releated utilities. 1 3* Created January 1976 by A. R. Downing */ 1 4 dcl 1 heals_arg_info aligned, 1 5 2 iocbp ptr, 1 6 2 report_iocbp ptr, 1 7 2 err_nb fixed bin (35), 1 8 2 info_selection bit (72) unal, 1 9 2 report_name char (64) varying, 1 10 2 heals_log_path_name char (168), /* path name of the heals log */ 1 11 2 system_id char (32) varying, 1 12 2 installation_id char (32) varying, 1 13 2 from_seq fixed bin (35), /* beginning seq_num */ 1 14 2 to_seq fixed bin (35), /* ending seq_num */ 1 15 2 from_time fixed bin (71), /* beginning of desired time period */ 1 16 2 to_time fixed bin (71); /* end of desired time period */ 1 17 /* end heals_arg_info. */ 113 2 1 /* BEGIN INCLUDE FILE heals_io_report_args.incl.pl1 */ 2 2 /* Created by RH Morrison Dec. 9,1976 */ 2 3 /* Last modified by RH Morrison 12/13/76 */ 2 4 2 5 dcl 1 ior_ptrs aligned based (heals_ior_args_p), 2 6 2 ior_flags_p ptr, 2 7 2 ior_prms_p ptr, 2 8 2 ch_nfo_ar_p ptr, 2 9 2 ioerr_log_sw_p ptr, 2 10 2 ior_avars_p ptr; 2 11 2 12 dcl 1 ior_flags aligned based (ior_ptrs.ior_flags_p), 2 13 (2 trace bit (1), 2 14 2 db bit (1), 2 15 2 no_recs bit (1) 2 16 ) unal; 2 17 2 18 dcl 1 ior_prms aligned based (ior_ptrs.ior_prms_p), 2 19 (2 max_iom_nb_a fixed bin, 2 20 2 max_ch_nb_a fixed bin, 2 21 2 max_tape_nb_a fixed bin, 2 22 2 max_line_cnt_a fixed bin) unal; 2 23 2 24 dcl ch_nfo_p ptr; 2 25 dcl 1 ch_nfo aligned based (ch_nfo_p), 2 26 (2 dev_nam char (4), 2 27 2 model fixed bin, 2 28 2 lchan fixed bin (6), 2 29 2 uchan fixed bin (6), 2 30 2 i_set bit (1) 2 31 ) unal; 2 32 2 33 dcl 1 ior_avars aligned based (ior_ptrs.ior_avars_p), 2 34 2 bulk_port fixed bin; 2 35 2 36 /* END INCLUDE FILE heals_io_report_args.incl.pl1 */ 114 3 1 /* BEGIN INCLUDE FILE heals_ioerr_rec.incl.pl1 */ 3 2 /* Created Dec. 1, 1976 by RH Morrison */ 3 3 /* Last modified by RH Morrison 01/03/77 */ 3 4 /* This include file defines the I/O error record derived from syserr_log records. */ 3 5 3 6 dcl ioerr_rec_p ptr; 3 7 dcl 1 ioerr_rec aligned based (ioerr_rec_p), 3 8 2 sort_rec aligned, 3 9 (3 sort_date char (8), 3 10 3 iom_nb fixed bin (3), 3 11 3 ch_nb fixed bin (6), 3 12 3 dev_nb fixed bin (6), 3 13 3 power_off bit (1), 3 14 3 maj_st bit (6), 3 15 3 sub_st bit (6), 3 16 3 ntrpt_no bit (1), 3 17 3 dev_cmnd bit (6), 3 18 3 iom_st bit (6), 3 19 3 rec_cnt_res bit (6)) unal, 3 20 2 report_nfo aligned, 3 21 (3 dev_nm pic "xxxx", 3 22 3 log_time char (6), 3 23 3 ntrpt_nm char (1), 3 24 3 rprt_flags, 3 25 4 ioerr bit (1), 3 26 4 diskerr bit (1), 3 27 4 disk_addr bit (1), 3 28 4 ext_stat bit (1), 3 29 4 iom_rec bit (1), 3 30 4 bad_rec bit (1), 3 31 4 msg bit (1), 3 32 4 bulk bit (1), 3 33 4 fill bit (1), 3 34 3 dev_model fixed bin) unal, 3 35 2 tape_disk_nfo aligned, 3 36 (3 tapno_diskad pic "xxxxxxx", 3 37 3 dens_cyl pic "xxxx", 3 38 3 ring_head pic "xx", 3 39 3 tracks_sector pic "xx") unal, 3 40 2 syserr_nfo aligned, 3 41 (3 tally_nb fixed bin (35), 3 42 3 seq_nb fixed bin (35), 3 43 3 time fixed bin (71), 3 44 3 code fixed bin (11), 3 45 3 msg_len fixed bin (11), 3 46 3 data_size fixed bin (11), 3 47 3 data (0 refer (ioerr_rec.data_size)) bit (36)) unal, 3 48 2 msg char (0 refer (ioerr_rec.msg_len)) aligned; 3 49 /* END INCLUDE FILE heals_ioerr_rec.incl.pl1 */ 115 4 1 /* Begin include file ..... io_syserr_msg.incl.pl1 */ 4 2 4 3 /* Created October 1975 by Larry Johnson */ 4 4 /* Modified 11/11/76 by Noel I. Morris */ 4 5 /* Modified November 1979 by Larry Johnson for detailed status */ 4 6 /* Modified February 1981 by Chris Jones to use channel names */ 4 7 4 8 /* This include file defines the format of the syserr message generated for I/O errors. */ 4 9 /* This message is also defined (size and type) by the "io_msg" and "io_msg_detail" 4 10* constants in syserr_binary_def.incl.pl1 */ 4 11 4 12 dcl io_msgp ptr; /* Pointer to syserr message structure */ 4 13 4 14 dcl 1 io_msg aligned based (io_msgp), 4 15 ( 4 16 2 level bit (3), /* Level of interrupt being logged */ 4 17 2 fill1 bit (9), 4 18 2 device bit (6), /* Device which caused error */ 4 19 2 time_out bit (1), /* Set if error caused by channel timeout */ 4 20 2 type bit (2), /* Type of last DCW */ 4 21 2 command bit (6), /* Command being executed by device */ 4 22 2 fill2 bit (3), 4 23 2 count bit (6) 4 24 ) unal, /* Count of message repetitions */ 4 25 2 channel char (8), /* Channel over which interrupt came */ 4 26 2 status bit (36), /* First word of IOM status */ 4 27 2 devname char (4), /* Device name */ 4 28 2 detailed_status bit (216); /* Optional detailed device status */ 4 29 4 30 /* End include file ..... io_syserr_msg.incl.pl1 */ 116 5 1 5 2 /* Begin include file ...... iom_stat.incl.pl1 */ 5 3 /* Last modified on 10/31/74 by Noel I. Morris */ 5 4 5 5 dcl statp ptr; /* pointer to status */ 5 6 5 7 dcl 1 status based (statp) aligned, /* IOM status information */ 5 8 (2 t bit (1), /* set to "1"b by IOM */ 5 9 2 power bit (1), /* non-zero if peripheral absent or power off */ 5 10 2 major bit (4), /* major status */ 5 11 2 sub bit (6), /* substatus */ 5 12 2 eo bit (1), /* even/odd bit */ 5 13 2 marker bit (1), /* non-zero if marker status */ 5 14 2 soft bit (2), /* software status */ 5 15 2 initiate bit (1), /* initiate bit */ 5 16 2 abort bit (1), /* software abort bit */ 5 17 2 channel_stat bit (3), /* IOM channel status */ 5 18 2 central_stat bit (3), /* IOM central status */ 5 19 2 mbz bit (6), 5 20 2 rcount bit (6), /* record count residue */ 5 21 2 address bit (18), /* DCW address residue */ 5 22 2 char_pos bit (3), /* character position residue */ 5 23 2 r bit (1), /* non-zero if reading */ 5 24 2 type bit (2), /* type of last DCW */ 5 25 2 tally bit (12)) unal; /* DCW tally residue */ 5 26 5 27 dcl 1 faultword based (statp) aligned, /* system fault word */ 5 28 (2 mbz1 bit (9), 5 29 2 channel bit (9), /* channel number */ 5 30 2 serv_req bit (5), /* service request */ 5 31 2 mbz2 bit (3), 5 32 2 controller_fault bit (4), /* system controller fault code */ 5 33 2 io_fault bit (6)) unal; /* I/O fault code */ 5 34 5 35 dcl 1 special_status based (statp) aligned, /* special status from PSIA */ 5 36 (2 t bit (1), /* entry present bit */ 5 37 2 channel bit (8), /* channel number */ 5 38 2 pad1 bit (3), 5 39 2 device bit (6), /* device address */ 5 40 2 pad2 bit (1), 5 41 2 byte2 bit (8), /* device dependent information */ 5 42 2 pad3 bit (1), 5 43 2 byte3 bit (8)) unal; /* device dependent information */ 5 44 5 45 /* End of include file iom_stat.incl.pl1 */ 5 46 117 118 /* **** END OF DECLARATIONS **** */ 119 /* FF */ 120 /* ******** PROCEDURE ******** */ 121 122 /* **** Procedure Initialization **** */ 123 124 on cleanup call clean_up; 125 126 /* Init returns. */ 127 r_code = 0; 128 arg_info.err_nb = 0; 129 130 /* Init pointers. */ 131 flags_p = addr (flags_word); 132 insw_p = ioerr_log_sw_p; 133 outsw_p = arg_info.report_iocbp; 134 inbuf_p = addr (inbuf); 135 ioerr_rec_p = addr (inbuf); 136 io_msgp = addr (ioerr_rec.data); 137 statp = addr (io_msg.status); 138 139 /* Init control flags. */ 140 flags_word = "0"b; 141 flags.hdrs = "1"b; 142 flags.no_recs = ior_flags.no_recs; 143 eof = "0"b; 144 145 /* Init all else. */ 146 147 code = 0; 148 old_date = ""; 149 page_nb = 0; 150 line_cnt = 0; 151 max_line_cnt = max_line_cnt_a; 152 call date_time_ (arg_info.from_time, rprt_from_time); 153 call date_time_ (arg_info.to_time, rprt_to_time); 154 155 /* **** End Procedure Initialization **** */ 156 157 /* Run information. */ 158 clock_time = clock_ (); 159 call date_time_ (clock_time, date_time); 160 date = substr (date_time, 1, 8); 161 time = substr (date_time, 11, 6); 162 if flags.trace 163 | ior_flags.trace 164 then call ioa_ ("^a run info: date ^a, time ^a, version ^d of ^a.", 165 whoami, date, time, version_nb, version_date); 166 167 /* Open heals_ioerr_log file and read first record. */ 168 if ^flags.no_recs 169 then do; 170 call iox_$open (insw_p, seq_in, unused, code); 171 if code ^= 0 then call proc_err (30); 172 call iox_$read_record (insw_p, inbuf_p, inbuf_len, inrec_len, code); 173 if code ^= 0 174 then if code = error_table_$end_of_info 175 then flags.no_recs = "1"b; 176 else call proc_err (35); 177 end; 178 179 /* Record processing loop. */ 180 io_report_line_loop: 181 do while (^eof); 182 if flags.hdrs 183 then do; page_nb = page_nb + 1; 184 line_cnt = 5; 185 call ioa_$ioa_switch (outsw_p, 186 "^|IO_ERROR_REPORT:^x^a^xTO^x^a^12xPAGE^x^2d^/", 187 rprt_from_time, rprt_to_time, page_nb); 188 189 call ioa_$ioa_switch (outsw_p, 190 "S_Y_S_E_R_R_____L_O_G_^3x_____D_E_V_I_C_E_____^3xS_T_A_T_U_S__^3xTLY^3xTAPE_NO^2xSTATUS_RETURN 191 TIME NUMBER^3xNAME I-CC-DD CM^3xMJ-SB-I^9xDISK_AD"); 192 193 if flags.no_recs then eof = "1"b; 194 end; 195 196 /* Write date line. */ 197 if ^eof 198 then do; if sort_date ^= old_date | flags.hdrs /* write date line after headers */ 199 then do; old_date = sort_date; 200 flags.hdrs = "0"b; 201 line_cnt = line_cnt + 4; 202 call ioa_$ioa_switch (outsw_p, "^/^72(_^)^/DATE:^x^a^vxDATE:^x^a^/", 203 sort_date, 44, sort_date); 204 end; 205 206 ch_nr = fixed (ch_nb); /* pad one digit numbers on left */ 207 dev_nr = fixed (dev_nb); 208 209 /* Write io_error report line. */ 210 line_cnt = line_cnt + 1; 211 212 if rprt_flags.ioerr 213 then call ioa_$ioa_switch (outsw_p, 214 "^6a^x^6d^3x^4a^x^1d-^2a-^2a^x^2.3b^3x^2.3b-^2.3b-^1a^3x^3d^3x^7a^3x^w", 215 log_time, seq_nb, dev_nm, iom_nb, ch_nr, dev_nr, dev_cmnd, maj_st, sub_st, ntrpt_nm, 216 tally_nb, tapno_diskad, io_msg.status); 217 218 else if rprt_flags.diskerr 219 then do; call ioa_$ioa_switch (outsw_p, 220 "^6a^x^6d^3x^4a^x^1d-^2a-^2a^x^2.3b^3x^2.3b-^2.3b-^1a^3x^3d^3x^7a^3x^w^/^34x^a", 221 log_time, seq_nb, dev_nm, iom_nb, ch_nr, dev_nr, dev_cmnd, maj_st, sub_st, ntrpt_nm, 222 tally_nb, tapno_diskad, io_msg.status, ioerr_rec.msg); 223 line_cnt = line_cnt + 1; 224 end; 225 226 else if rprt_flags.disk_addr 227 then call ioa_$ioa_switch (outsw_p, 228 "^6a^x^6d^3x^4a^x^1d-^2a-^2a^x^2.3b^19x^7a", 229 log_time, seq_nb, dev_nm, iom_nb, ch_nr, dev_nr, dev_cmnd, tapno_diskad); 230 231 else if rprt_flags.ext_stat | rprt_flags.iom_rec 232 then call ioa_$ioa_switch (outsw_p, 233 "^6a^x^6d^3x^4a^x^1d-^2a-^2a^x^2.3b^3x^a", 234 log_time, seq_nb, dev_nm, iom_nb, ch_nr, dev_nr, dev_cmnd, ioerr_rec.msg); 235 236 else if rprt_flags.msg 237 then call ioa_$ioa_switch (outsw_p, "^a", ioerr_rec.msg); 238 239 else if rprt_flags.bulk 240 then call ioa_$ioa_switch (outsw_p, 241 "^6a^x^6d^3x^a", 242 log_time, seq_nb, ioerr_rec.msg); 243 244 else if rprt_flags.bad_rec 245 then call ioa_$ioa_switch (outsw_p, 246 "^6a^x^6d^3x^4a^x^1d-^2a-^2a^6x^a", 247 log_time, seq_nb, dev_nm, iom_nb, ch_nr, dev_nr, ioerr_rec.msg); 248 249 /* Read next ioerr_log record. */ 250 call iox_$read_record (insw_p, inbuf_p, inbuf_len, inrec_len, code); 251 if code ^= 0 252 then if code = error_table_$end_of_info 253 then eof = "1"b; 254 else call proc_err (32); 255 256 /* Date change. */ 257 if sort_date ^= old_date 258 then if line_cnt > max_line_cnt - 10 /* too near bottom of page */ 259 then flags.hdrs = "1"b; /* so start new page */ 260 261 end; 262 263 if line_cnt > max_line_cnt 264 then flags.hdrs = "1"b; 265 end io_report_line_loop; 266 267 /* end of file on heals_ioerr_log */ 268 if flags.no_recs 269 then call ioa_$ioa_switch (outsw_p, 270 "^/^11xThere were no io_errors during the report period."); 271 call ioa_$ioa_switch (outsw_p, 272 "^/END: IO_ERROR_REPORT"); 273 if ^flags.no_recs 274 then do; call iox_$close (ioerr_log_sw_p, code); 275 if code ^= 0 then call proc_err (33); 276 end; 277 return; 278 279 /* FF */ 280 proc_err: proc (proc_err_nb); 281 dcl proc_err_nb fixed bin; 282 r_code = code; 283 arg_info.err_nb = proc_err_nb; 284 call com_err_ (code, whoami, "Procedure error number = ^d.", proc_err_nb); 285 call clean_up; 286 goto err_return; 287 end proc_err; 288 289 clean_up: proc; 290 call iox_$close (ioerr_log_sw_p, code); 291 return; 292 end clean_up; 293 294 err_return: return; 295 296 end heals_io_report_gen_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 09/27/84 0745.2 heals_io_report_gen_.pl1 >spec>on>heals>heals_io_report_gen_.pl1 113 1 11/02/76 1752.0 heals_arg_info.incl.pl1 >ldd>include>heals_arg_info.incl.pl1 114 2 10/25/77 1258.3 heals_io_report_args.incl.pl1 >ldd>include>heals_io_report_args.incl.pl1 115 3 10/25/77 1258.3 heals_ioerr_rec.incl.pl1 >ldd>include>heals_ioerr_rec.incl.pl1 116 4 08/10/81 1843.6 io_syserr_msg.incl.pl1 >ldd>include>io_syserr_msg.incl.pl1 117 5 01/10/75 1343.6 iom_stat.incl.pl1 >ldd>include>iom_stat.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 108 ref 131 134 135 136 137 arg_info based structure level 1 dcl 104 bad_rec 6(32) based bit(1) level 4 packed unaligned dcl 3-7 ref 244 bulk 6(34) based bit(1) level 4 packed unaligned dcl 3-7 ref 239 ch_nb 2(04) based fixed bin(6,0) level 3 packed unaligned dcl 3-7 ref 206 ch_nr 000134 automatic picture(2) unaligned dcl 68 set ref 206* 212* 219* 226* 231* 244* cleanup 000160 stack reference condition dcl 109 ref 124 clock_ 000022 constant entry external dcl 34 ref 158 clock_time 000146 automatic fixed bin(71,0) dcl 76 set ref 158* 159* code 000153 automatic fixed bin(35,0) dcl 82 set ref 147* 170* 171 172* 173 173 250* 251 251 274* 275 282 284* 290* com_err_ 000024 constant entry external dcl 35 ref 284 data 21 based bit(36) array level 3 packed unaligned dcl 3-7 set ref 136 data_size 20(24) based fixed bin(11,0) level 3 packed unaligned dcl 3-7 ref 219 231 236 239 244 date 000124 automatic char(8) unaligned dcl 65 set ref 160* 162* date_time 000130 automatic char(16) unaligned dcl 67 set ref 159* 160 161 date_time_ 000026 constant entry external dcl 36 ref 152 153 159 dev_cmnd 2(32) based bit(6) level 3 packed unaligned dcl 3-7 set ref 212* 219* 226* 231* dev_nb 2(11) based fixed bin(6,0) level 3 packed unaligned dcl 3-7 ref 207 dev_nm 4 based picture(4) level 3 packed unaligned dcl 3-7 set ref 212* 219* 226* 231* 244* dev_nr 000135 automatic picture(2) unaligned dcl 69 set ref 207* 212* 219* 226* 231* 244* disk_addr 6(29) based bit(1) level 4 packed unaligned dcl 3-7 ref 226 diskerr 6(28) based bit(1) level 4 packed unaligned dcl 3-7 ref 218 eof 000157 automatic bit(1) dcl 90 set ref 143* 180 193* 197 251* err_nb 4 based fixed bin(35,0) level 2 dcl 104 set ref 128* 283* error_table_$end_of_info 000014 external static fixed bin(35,0) dcl 28 ref 173 251 ext_stat 6(30) based bit(1) level 4 packed unaligned dcl 3-7 ref 231 fixed builtin function dcl 108 ref 206 207 flags based structure level 1 dcl 96 flags_p 000100 automatic pointer initial dcl 42 set ref 42* 131* 141 142 162 168 173 182 193 198 200 257 263 268 273 flags_word 000156 automatic bit(36) dcl 89 set ref 131 140* from_time 126 based fixed bin(71,0) level 2 dcl 104 set ref 152* hdrs 0(02) based bit(1) level 2 packed unaligned dcl 96 set ref 141* 182 198 200* 257* 263* heals_arg_info 000166 automatic structure level 1 dcl 1-4 heals_arg_info_p parameter pointer dcl 22 ref 6 128 133 152 153 283 heals_ior_args_p parameter pointer dcl 23 ref 6 132 142 151 162 274 290 inbuf 000112 automatic char dcl 61 set ref 134 135 inbuf_len 000010 internal static fixed bin(21,0) initial dcl 85 set ref 61 172* 250* inbuf_p 000104 automatic pointer initial dcl 46 set ref 46* 134* 172* 250* inrec_len 000155 automatic fixed bin(21,0) dcl 84 set ref 172* 250* insw_p 000106 automatic pointer initial dcl 47 set ref 47* 132* 170* 172* 250* io_msg based structure level 1 dcl 4-14 io_msgp 000322 automatic pointer dcl 4-12 set ref 136* 137 212 219 ioa_ 000016 constant entry external dcl 32 ref 162 ioa_$ioa_switch 000020 constant entry external dcl 33 ref 185 189 202 212 219 226 231 236 239 244 268 271 ioerr 6(27) based bit(1) level 4 packed unaligned dcl 3-7 ref 212 ioerr_log_sw_p 6 based pointer level 2 dcl 2-5 set ref 132 274* 290* ioerr_rec based structure level 1 dcl 3-7 ioerr_rec_p 000320 automatic pointer dcl 3-6 set ref 135* 136 198 199 202 202 206 207 212 212 212 212 212 212 212 212 212 212 212 218 219 219 219 219 219 219 219 219 219 219 219 226 226 226 226 226 226 226 231 231 231 231 231 231 231 231 236 236 239 239 239 239 244 244 244 244 244 244 257 iom_nb 2 based fixed bin(3,0) level 3 packed unaligned dcl 3-7 set ref 212* 219* 226* 231* 244* iom_rec 6(31) based bit(1) level 4 packed unaligned dcl 3-7 ref 231 ior_flags based structure level 1 dcl 2-12 ior_flags_p based pointer level 2 dcl 2-5 ref 142 162 ior_prms based structure level 1 dcl 2-18 ior_prms_p 2 based pointer level 2 dcl 2-5 ref 151 ior_ptrs based structure level 1 dcl 2-5 iox_$close 000030 constant entry external dcl 37 ref 274 290 iox_$open 000032 constant entry external dcl 38 ref 170 iox_$read_record 000034 constant entry external dcl 39 ref 172 250 line_cnt 000150 automatic fixed bin(17,0) dcl 77 set ref 150* 184* 201* 201 210* 210 223* 223 257 263 log_time 5 based char(6) level 3 packed unaligned dcl 3-7 set ref 212* 219* 226* 231* 239* 244* maj_st 2(19) based bit(6) level 3 packed unaligned dcl 3-7 set ref 212* 219* max_line_cnt 000151 automatic fixed bin(17,0) dcl 78 set ref 151* 257 263 max_line_cnt_a 1(18) based fixed bin(17,0) level 2 packed unaligned dcl 2-18 ref 151 msg 6(33) based bit(1) level 4 in structure "ioerr_rec" packed unaligned dcl 3-7 in procedure "heals_io_report_gen_" ref 236 msg based char level 2 in structure "ioerr_rec" dcl 3-7 in procedure "heals_io_report_gen_" set ref 219* 231* 236* 239* 244* msg_len 20(12) based fixed bin(11,0) level 3 packed unaligned dcl 3-7 ref 219 219 231 231 236 236 239 239 244 244 no_recs 0(03) based bit(1) level 2 in structure "flags" packed unaligned dcl 96 in procedure "heals_io_report_gen_" set ref 142* 168 173* 193 268 273 no_recs 0(02) based bit(1) level 2 in structure "ior_flags" packed unaligned dcl 2-12 in procedure "heals_io_report_gen_" ref 142 ntrpt_nm 6(18) based char(1) level 3 packed unaligned dcl 3-7 set ref 212* 219* null builtin function dcl 108 ref 42 43 46 47 48 old_date 000122 automatic char(8) unaligned dcl 64 set ref 148* 198 199* 257 outsw_p 000110 automatic pointer initial dcl 48 set ref 48* 133* 185* 189* 202* 212* 219* 226* 231* 236* 239* 244* 268* 271* page_nb 000152 automatic fixed bin(17,0) dcl 79 set ref 149* 183* 183 185* proc_err_nb parameter fixed bin(17,0) dcl 281 set ref 280 283 284* r_code parameter fixed bin(35,0) dcl 24 set ref 6 127* 282* report_iocbp 2 based pointer level 2 dcl 104 ref 133 report_nfo 4 based structure level 2 dcl 3-7 rprt_flags 6(27) based structure level 3 packed unaligned dcl 3-7 rprt_from_time 000112 automatic char(16) unaligned dcl 62 set ref 152* 185* rprt_to_time 000116 automatic char(16) unaligned dcl 63 set ref 153* 185* seq_in 000011 internal static fixed bin(17,0) initial dcl 86 set ref 170* seq_nb 15 based fixed bin(35,0) level 3 packed unaligned dcl 3-7 set ref 212* 219* 226* 231* 239* 244* sort_date based char(8) level 3 packed unaligned dcl 3-7 set ref 198 199 202* 202* 257 sort_rec based structure level 2 dcl 3-7 statp 000324 automatic pointer dcl 5-5 set ref 137* status 3 based bit(36) level 2 dcl 4-14 set ref 137 212* 219* sub_st 2(25) based bit(6) level 3 packed unaligned dcl 3-7 set ref 212* 219* substr builtin function dcl 108 ref 160 161 syserr_nfo 14 based structure level 2 dcl 3-7 tally_nb 14 based fixed bin(35,0) level 3 packed unaligned dcl 3-7 set ref 212* 219* tape_disk_nfo 10 based structure level 2 dcl 3-7 tapno_diskad 10 based picture(7) level 3 packed unaligned dcl 3-7 set ref 212* 219* 226* time 000126 automatic char(6) unaligned dcl 66 set ref 161* 162* to_time 130 based fixed bin(71,0) level 2 dcl 104 set ref 153* trace based bit(1) level 2 in structure "ior_flags" packed unaligned dcl 2-12 in procedure "heals_io_report_gen_" ref 162 trace based bit(1) level 2 in structure "flags" packed unaligned dcl 96 in procedure "heals_io_report_gen_" ref 162 unused 000012 internal static bit(1) initial dcl 93 set ref 170* version_date 000144 automatic char(8) initial unaligned dcl 73 set ref 73* 162* version_nb 000154 automatic fixed bin(17,0) initial dcl 83 set ref 83* 162* whoami 000136 automatic char(20) initial unaligned dcl 72 set ref 72* 162* 284* work_p1 000102 automatic pointer initial dcl 43 set ref 43* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. ch_nfo based structure level 1 dcl 2-25 ch_nfo_p automatic pointer dcl 2-24 faultword based structure level 1 dcl 5-27 ior_avars based structure level 1 dcl 2-33 special_status based structure level 1 dcl 5-35 status based structure level 1 dcl 5-7 NAMES DECLARED BY EXPLICIT CONTEXT. clean_up 002156 constant entry internal dcl 289 ref 124 285 err_return 002105 constant label dcl 294 ref 286 heals_io_report_gen_ 000336 constant entry external dcl 6 io_report_line_loop 000703 constant label dcl 180 proc_err 002106 constant entry internal dcl 280 ref 171 176 254 275 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 2346 2404 2212 2356 Length 2706 2212 36 265 133 4 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME heals_io_report_gen_ 472 external procedure is an external procedure. on unit on line 124 64 on unit proc_err internal procedure shares stack frame of external procedure heals_io_report_gen_. clean_up 70 internal procedure is called by several nonquick procedures. STORAGE FOR INTERNAL STATIC VARIABLES. LOC IDENTIFIER BLOCK NAME 000010 inbuf_len heals_io_report_gen_ 000011 seq_in heals_io_report_gen_ 000012 unused heals_io_report_gen_ STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME heals_io_report_gen_ 000100 flags_p heals_io_report_gen_ 000102 work_p1 heals_io_report_gen_ 000104 inbuf_p heals_io_report_gen_ 000106 insw_p heals_io_report_gen_ 000110 outsw_p heals_io_report_gen_ 000112 inbuf heals_io_report_gen_ 000112 rprt_from_time heals_io_report_gen_ 000116 rprt_to_time heals_io_report_gen_ 000122 old_date heals_io_report_gen_ 000124 date heals_io_report_gen_ 000126 time heals_io_report_gen_ 000130 date_time heals_io_report_gen_ 000134 ch_nr heals_io_report_gen_ 000135 dev_nr heals_io_report_gen_ 000136 whoami heals_io_report_gen_ 000144 version_date heals_io_report_gen_ 000146 clock_time heals_io_report_gen_ 000150 line_cnt heals_io_report_gen_ 000151 max_line_cnt heals_io_report_gen_ 000152 page_nb heals_io_report_gen_ 000153 code heals_io_report_gen_ 000154 version_nb heals_io_report_gen_ 000155 inrec_len heals_io_report_gen_ 000156 flags_word heals_io_report_gen_ 000157 eof heals_io_report_gen_ 000166 heals_arg_info heals_io_report_gen_ 000320 ioerr_rec_p heals_io_report_gen_ 000322 io_msgp heals_io_report_gen_ 000324 statp heals_io_report_gen_ THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_out_desc call_ext_out call_int_this call_int_other return alloc_auto_adj enable ext_entry int_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. clock_ com_err_ date_time_ ioa_ ioa_$ioa_switch iox_$close iox_$open iox_$read_record THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$end_of_info LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 6 000332 42 000343 43 000345 46 000346 47 000347 48 000350 61 000351 72 000360 73 000366 83 000370 124 000372 127 000414 128 000416 131 000421 132 000423 133 000427 134 000431 135 000433 136 000435 137 000437 140 000441 141 000442 142 000444 143 000451 147 000452 148 000453 149 000455 150 000456 151 000457 152 000464 153 000501 158 000521 159 000530 160 000545 161 000547 162 000552 168 000622 170 000625 171 000642 172 000650 173 000667 176 000677 180 000703 182 000706 183 000711 184 000712 185 000714 189 000747 193 000767 197 000774 198 000776 199 001006 200 001011 201 001013 202 001015 206 001052 207 001067 210 001103 212 001104 218 001221 219 001224 223 001352 224 001353 226 001354 231 001441 236 001537 239 001577 244 001651 250 001740 251 001757 254 001767 257 001773 263 002006 265 002013 268 002014 271 002037 273 002057 274 002062 275 002076 277 002104 294 002105 280 002106 282 002110 283 002113 284 002117 285 002150 286 002154 289 002155 290 002163 291 002177 ----------------------------------------------------------- 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