COMPILATION LISTING OF SEGMENT heals_io_reports_ 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.6 mst Thu Options: optimize map 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 4* * * 5* *********************************************************** */ 6 heals_io_reports_: proc (heals_arg_info_p, r_code); /* (ptr, fixed bin (35)) */ 7 8 /* ****************************************************************************** 9* * * 10* * This procedure processes syserr_log messages for HEALS and generates * 11* * one or more of the following HEALS reports: * 12* * io_error_report * 13* * sorted_io_error_report * 14* * * 15* * The procedure reads heals_log records (which are selected and modified * 16* * syserr_log records), converts binary data to ascii, processes the data, * 17* * and writes the processed records to heals_ioerr_log. * 18* * * 19* * For each report type, the heals_ioerr_log records are read, sorted, * 20* * summmarized, and the report formatted and written to a print file. * 21* * * 22* * Written by RH Morrison Feb. 18, 1976 * 23* * Last modified by RH Morrison 01/03/77 * 24* * * 25* ****************************************************************************** */ 26 27 /* FF */ 28 /* ******** DECLARATIONS ******** */ 29 30 31 /* **** PROCEDURE ARGUMENTS **** */ 32 dcl heals_arg_info_p pointer; 33 dcl r_code fixed bin (35); 34 35 36 /* **** EXTERNAL STATIC **** */ 37 dcl error_table_$noarg ext static fixed bin (35); 38 39 40 /* **** ENTRIES **** */ 41 dcl ioa_ entry options (variable); 42 dcl ioa_$ioa_switch entry options (variable); 43 dcl iox_$attach_ioname entry (char (*), ptr, char (*), fixed bin (35)); 44 dcl iox_$detach_iocb entry (ptr, fixed bin (35)); 45 dcl delete_$path entry (char (*), char (*), bit (6), char (*), fixed bin (35)); 46 dcl iox_$close entry (ptr, fixed bin (35)); 47 dcl get_pdir_ entry returns (char (168)); 48 dcl heals_scan_config_ entry (ptr, fixed bin (35)); 49 dcl heals_gen_ioerr_log_ entry (ptr, ptr, fixed bin (35)); 50 dcl com_err_ entry options (variable); 51 dcl date_time_ entry (fixed bin (71), char (*)); 52 dcl clock_ entry returns (fixed bin (71)); 53 dcl heals_io_report_gen_ entry (ptr, ptr, fixed bin (35)); 54 dcl heals_sorted_report_gen_ entry (ptr, ptr, fixed bin (35)); 55 dcl heals_media_sort_gen_ entry (ptr, ptr, fixed bin (35)); 56 57 58 /* **** POINTERS **** */ 59 dcl flags_p ptr init (null); 60 61 /* Arguments */ 62 dcl heals_ior_args_p ptr init (null); 63 dcl ch_nfo_ar_p ptr init (null); 64 dcl outsw_p ptr init (null); 65 dcl 1 real_p aligned like ior_ptrs; 66 67 /* pointers declared elsewhere: 68* heals_arg_info_p 69* ior_flags_p 70* ior_prms_p 71* ch-nfo_ar_p 72* ioerr_log_sw_p 73* ch_nf_p 74**/ 75 76 77 /* **** CONTROL VARIABLES **** */ 78 /* Parameters */ 79 dcl whoami char (17) int static init ("heals_io_reports_"); 80 dcl version_date char (8) init ("12/15/76"); 81 dcl version_nb fixed bin init (2); 82 dcl max_iom_nb fixed bin int static init (4); 83 dcl max_ch_nb fixed bin int static init (63); 84 dcl max_tape_nb fixed bin int static init (16); 85 dcl max_line_cnt fixed bin int static init (58); 86 87 /* Flags */ 88 dcl 1 flags aligned based (flags_p), 89 (2 trace bit (1), 90 2 db bit (1), 91 2 io_error bit (1), 92 2 sorted_io_error bit (1), 93 2 media_rprt bit (1), 94 2 fill bit (1) 95 ) unal; 96 97 dcl io_rprt bit (1) unal defined arg_info.info_selection pos (1); 98 dcl mpc_data bit (1) unal defined arg_info.info_selection pos (2); 99 dcl cpu_data bit (1) unal defined arg_info.info_selection pos (3); 100 dcl mos_edac_data bit (1) unal defined arg_info.info_selection pos (4); 101 dcl sorted_io_rprt bit (1) unal defined arg_info.info_selection pos (5); 102 dcl media_data bit (1) unal defined arg_info.info_selection pos (8); 103 104 /* Arguments */ 105 dcl 1 real_ior_prms aligned like ior_prms; 106 107 108 /* **** CHARACTER STRING VARIABLES **** */ 109 dcl date char (8); 110 dcl time char (6); 111 112 /* Arguments */ 113 dcl date_time char (16); 114 dcl ioerr_log_sw char (12) int static init ("ioerr_log_sw"); 115 116 117 /* **** ARITHMETIC VARIABLES **** */ 118 dcl ch_nr pic "99"; 119 dcl (i, j) fixed bin; 120 121 /* Arguments */ 122 dcl code fixed bin (35); 123 dcl clock_time fixed bin (71); 124 dcl 1 real_ior_avars aligned like ior_avars; 125 126 127 /* **** BIT STRING VARIABLES **** */ 128 dcl flags_word bit (36) aligned init ("0"b); 129 130 /* Arguments */ 131 dcl dl_sws bit (6) int static init ("100100"b); 132 dcl ior_flags_word bit (36) aligned; 133 134 135 /* **** ARRAY VARIABLES **** */ 136 dcl 1 ch_nfo_ar (1:max_iom_nb) aligned, 137 2 ch_entry (0:max_ch_nb) like ch_nfo; 138 139 140 /* **** BASED **** */ 141 142 /* Arguments */ 143 dcl 1 arg_info like heals_arg_info aligned based (heals_arg_info_p); 144 145 146 /* **** MISC. DECLARATIONS **** */ 147 dcl (addr, before, null, substr) builtin; 148 dcl cleanup condition; 149 150 /* FF */ 151 152 /* **** 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. */ 153 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 */ 154 3 1 /* BEGIN INCLUDE FILE ..... iocb.incl.pl1 ..... 13 Feb 1975, M. Asherman */ 3 2 /* Modified 11/29/82 by S. Krupp to add new entries and to change 3 3* version number to IOX2. */ 3 4 /* format: style2 */ 3 5 3 6 dcl 1 iocb aligned based, /* I/O control block. */ 3 7 2 version character (4) aligned, /* IOX2 */ 3 8 2 name char (32), /* I/O name of this block. */ 3 9 2 actual_iocb_ptr ptr, /* IOCB ultimately SYNed to. */ 3 10 2 attach_descrip_ptr ptr, /* Ptr to printable attach description. */ 3 11 2 attach_data_ptr ptr, /* Ptr to attach data structure. */ 3 12 2 open_descrip_ptr ptr, /* Ptr to printable open description. */ 3 13 2 open_data_ptr ptr, /* Ptr to open data structure (old SDB). */ 3 14 2 reserved bit (72), /* Reserved for future use. */ 3 15 2 detach_iocb entry (ptr, fixed (35)),/* detach_iocb(p,s) */ 3 16 2 open entry (ptr, fixed, bit (1) aligned, fixed (35)), 3 17 /* open(p,mode,not_used,s) */ 3 18 2 close entry (ptr, fixed (35)),/* close(p,s) */ 3 19 2 get_line entry (ptr, ptr, fixed (21), fixed (21), fixed (35)), 3 20 /* get_line(p,bufptr,buflen,actlen,s) */ 3 21 2 get_chars entry (ptr, ptr, fixed (21), fixed (21), fixed (35)), 3 22 /* get_chars(p,bufptr,buflen,actlen,s) */ 3 23 2 put_chars entry (ptr, ptr, fixed (21), fixed (35)), 3 24 /* put_chars(p,bufptr,buflen,s) */ 3 25 2 modes entry (ptr, char (*), char (*), fixed (35)), 3 26 /* modes(p,newmode,oldmode,s) */ 3 27 2 position entry (ptr, fixed, fixed (21), fixed (35)), 3 28 /* position(p,u1,u2,s) */ 3 29 2 control entry (ptr, char (*), ptr, fixed (35)), 3 30 /* control(p,order,infptr,s) */ 3 31 2 read_record entry (ptr, ptr, fixed (21), fixed (21), fixed (35)), 3 32 /* read_record(p,bufptr,buflen,actlen,s) */ 3 33 2 write_record entry (ptr, ptr, fixed (21), fixed (35)), 3 34 /* write_record(p,bufptr,buflen,s) */ 3 35 2 rewrite_record entry (ptr, ptr, fixed (21), fixed (35)), 3 36 /* rewrite_record(p,bufptr,buflen,s) */ 3 37 2 delete_record entry (ptr, fixed (35)),/* delete_record(p,s) */ 3 38 2 seek_key entry (ptr, char (256) varying, fixed (21), fixed (35)), 3 39 /* seek_key(p,key,len,s) */ 3 40 2 read_key entry (ptr, char (256) varying, fixed (21), fixed (35)), 3 41 /* read_key(p,key,len,s) */ 3 42 2 read_length entry (ptr, fixed (21), fixed (35)), 3 43 /* read_length(p,len,s) */ 3 44 2 open_file entry (ptr, fixed bin, char (*), bit (1) aligned, fixed bin (35)), 3 45 /* open_file(p,mode,desc,not_used,s) */ 3 46 2 close_file entry (ptr, char (*), fixed bin (35)), 3 47 /* close_file(p,desc,s) */ 3 48 2 detach entry (ptr, char (*), fixed bin (35)); 3 49 /* detach(p,desc,s) */ 3 50 3 51 declare iox_$iocb_version_sentinel 3 52 character (4) aligned external static; 3 53 3 54 /* END INCLUDE FILE ..... iocb.incl.pl1 ..... */ 155 156 157 /* ******** END OF DECLARATIONS ******** */ 158 159 /* FF */ 160 /* ******** PROCEDURE ******** */ 161 162 /* **** Procedure Initialization **** */ 163 164 on cleanup call clean_up; 165 166 /* Init returns. */ 167 r_code = 0; 168 169 /* Init pointers. */ 170 flags_p = addr (flags_word); 171 heals_ior_args_p = addr (real_p); 172 173 /* Init heals_ior_args pointers. */ 174 real_p.ior_flags_p = addr (ior_flags_word); 175 real_p.ior_prms_p = addr (real_ior_prms); 176 real_p.ch_nfo_ar_p = addr (ch_nfo_ar); 177 real_p.ioerr_log_sw_p = null (); 178 real_p.ior_avars_p = addr (real_ior_avars); 179 180 /* Init flags. */ 181 ior_flags_word = "0"b; 182 if io_rprt then flags.io_error = "1"b; /* flag for io_error_report */ 183 if sorted_io_rprt then flags.sorted_io_error = "1"b; /* flag for sorted_io_error_report */ 184 if media_data then flags.media_rprt = "1"b; 185 if ^flags.io_error & ^flags.sorted_io_error & ^flags.media_rprt 186 then do; /* then return with error code */ 187 arg_info.err_nb = 11; 188 r_code = error_table_$noarg; 189 return; 190 end; 191 if trace_sw then flags.trace = "1"b; 192 else flags.trace = "0"b; 193 ior_flags.trace = flags.trace; 194 195 /* Init heals_ior_args parameters. */ 196 ior_prms.max_iom_nb_a = max_iom_nb; 197 ior_prms.max_ch_nb_a = max_ch_nb; 198 ior_prms.max_tape_nb_a = max_tape_nb; 199 ior_prms.max_line_cnt_a = max_line_cnt; 200 201 /* Init all else. */ 202 arg_info.err_nb = 0; 203 204 /* **** End Procedure Initialization **** */ 205 206 /* Run information. */ 207 clock_time = clock_ (); 208 call date_time_ (clock_time, date_time); 209 date = substr (date_time, 1, 8); 210 time = substr (date_time, 11, 6); 211 if flags.trace 212 then call ioa_ ("^a run info: date ^a, time ^a, version ^d of ^a.", 213 whoami, date, time, version_nb, version_date); 214 215 /* Set iom, channel, and device data. */ 216 call heals_scan_config_ (heals_ior_args_p, code); 217 if code ^= 0 then call proc_err (19); 218 219 /* **** Generate HEALS io reports. * *** */ 220 221 /* Attach heals_ioerr_log file */ 222 call iox_$attach_ioname (ioerr_log_sw, real_p.ioerr_log_sw_p, "vfile_ " || 223 before (get_pdir_ (), " ") || ">heals_ioerr_log", code); 224 if code ^= 0 then call proc_err (12); 225 226 call heals_gen_ioerr_log_ (heals_arg_info_p, heals_ior_args_p, code); 227 if code ^= 0 then call proc_err (18); 228 229 /* Set output switch pointer to heals_reports switch pointer. */ 230 if arg_info.report_iocbp = null () then call proc_err (21); 231 outsw_p = arg_info.report_iocbp; 232 233 /* Print configuration table. */ 234 if ^ior_flags.no_recs 235 then do; 236 call ioa_$ioa_switch (outsw_p, 237 "^vxCHANNEL ASSIGNMENT TABLE AT TIME OF HEALS RUN 238 ^vxRUN DATE: ^a^vxRUN TIME: ^a, 239 ^vxSYSTEM_ID:^x^13a^2xSITE_ID:^x^a^/", 240 13, 13, date, 1, time, 241 13, arg_info.system_id, arg_info.installation_id); 242 243 call ioa_$ioa_switch (outsw_p, 244 "^13xIOM^8xCHNL^9xDEVICE^10xMODEL 245 ^13xNUM^9xNUM^11xNAME^9xNUMBER^/"); 246 247 do i = 1 to max_iom_nb; /* run through ch_nfo_ar */ 248 do j = 0 to max_ch_nb; 249 ch_nfo_p = addr (ch_nfo_ar.ch_entry (i, j)); 250 if ch_nfo.i_set 251 then do; ch_nr = j; 252 if ch_nfo.model = 9999 /* dummy model number */ 253 then call ioa_$ioa_switch (outsw_p, 254 "^15x^1d^10x^2a^11x^4a", 255 i, ch_nr, ch_nfo.dev_nam); 256 else call ioa_$ioa_switch (outsw_p, 257 "^15x^1d^10x^2a^11x^4a^11x^d", 258 i, ch_nr, ch_nfo.dev_nam, ch_nfo.model); 259 end; 260 end; 261 end; 262 call ioa_$ioa_switch (outsw_p, "^|"); 263 end; 264 265 /* Select reports. */ 266 if flags.io_error 267 then call heals_io_report_gen_ (heals_arg_info_p, heals_ior_args_p, code); 268 if code ^= 0 then call proc_err (29); 269 if flags.sorted_io_error 270 then call heals_sorted_report_gen_ (heals_arg_info_p, heals_ior_args_p, code); 271 if code ^= 0 then call proc_err (28); 272 if flags.media_rprt 273 then call heals_media_sort_gen_ (heals_arg_info_p, heals_ior_args_p, code); 274 /* Clean up and return to heals_report. */ 275 call clean_up; 276 return; /* all done, normal return */ 277 278 /* FF */ 279 proc_err: proc (proc_err_nb); 280 dcl proc_err_nb fixed bin; 281 r_code = code; /* return error code */ 282 arg_info.err_nb = proc_err_nb; /* return unique proc_err number */ 283 call com_err_ (code, whoami, "Procedure error number = ^d.", proc_err_nb); 284 call clean_up; 285 goto err_return; 286 end proc_err; 287 288 clean_up: proc; 289 if code ^= 0 then call iox_$close (arg_info.iocbp, code); /* close heals_log file */ 290 if real_p.ioerr_log_sw_p ^= null () 291 then do; if real_p.ioerr_log_sw_p -> iocb.open_descrip_ptr ^= null () 292 then call real_p.ioerr_log_sw_p -> iocb.close (real_p.ioerr_log_sw_p, code); 293 if real_p.ioerr_log_sw_p -> iocb.attach_descrip_ptr ^= null () 294 then call real_p.ioerr_log_sw_p -> iocb.detach_iocb (real_p.ioerr_log_sw_p, code); 295 end; 296 call delete_$path (get_pdir_ (), "heals_ioerr_log", dl_sws, whoami, code); 297 call delete_$path (get_pdir_ (), "heals_sort_log", dl_sws, whoami, code); 298 return; 299 end clean_up; 300 301 err_return: 302 return; 303 304 trace: tr: entry; 305 dcl trace_sw bit (1) aligned int static init ("0"b); 306 dcl trace_state char (3); 307 308 trace_sw = ^trace_sw; 309 if trace_sw 310 then trace_state = "on"; 311 else trace_state = "off"; 312 call ioa_ ("Trace state is ^a.", trace_state); 313 return; 314 315 end heals_io_reports_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 09/27/84 0745.2 heals_io_reports_.pl1 >spec>on>heals>heals_io_reports_.pl1 153 1 11/02/76 1752.0 heals_arg_info.incl.pl1 >ldd>include>heals_arg_info.incl.pl1 154 2 10/25/77 1258.3 heals_io_report_args.incl.pl1 >ldd>include>heals_io_report_args.incl.pl1 155 3 05/20/83 1846.4 iocb.incl.pl1 >ldd>include>iocb.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 147 ref 170 171 174 175 176 178 249 arg_info based structure level 1 dcl 143 attach_descrip_ptr 14 based pointer level 2 dcl 3-6 ref 293 before builtin function dcl 147 ref 222 ch_entry 000151 automatic structure array level 2 dcl 136 set ref 249 ch_nfo based structure level 1 dcl 2-25 ch_nfo_ar 000151 automatic structure array level 1 dcl 136 set ref 176 ch_nfo_ar_p 000104 automatic pointer initial dcl 63 in procedure "heals_io_reports_" set ref 63* ch_nfo_ar_p 4 000110 automatic pointer level 2 in structure "real_p" dcl 65 in procedure "heals_io_reports_" set ref 176* ch_nfo_p 000312 automatic pointer dcl 2-24 set ref 249* 250 252 252 256 256 ch_nr 000140 automatic picture(2) unaligned dcl 118 set ref 251* 252* 256* cleanup 000152 stack reference condition dcl 148 ref 164 clock_ 000050 constant entry external dcl 52 ref 207 clock_time 000144 automatic fixed bin(71,0) dcl 123 set ref 207* 208* close 36 based entry variable level 2 dcl 3-6 ref 291 code 000143 automatic fixed bin(35,0) dcl 122 set ref 216* 217 222* 224 226* 227 266* 268 269* 271 272* 281 283* 289 289* 291* 293* 296* 297* com_err_ 000044 constant entry external dcl 50 ref 283 date 000130 automatic char(8) unaligned dcl 109 set ref 209* 211* 236* date_time 000134 automatic char(16) unaligned dcl 113 set ref 208* 209 210 date_time_ 000046 constant entry external dcl 51 ref 208 delete_$path 000032 constant entry external dcl 45 ref 296 297 detach_iocb 26 based entry variable level 2 dcl 3-6 ref 293 dev_nam based char(4) level 2 packed unaligned dcl 2-25 set ref 252* 256* dl_sws 000020 internal static bit(6) initial unaligned dcl 131 set ref 296* 297* err_nb 4 based fixed bin(35,0) level 2 dcl 143 set ref 187* 202* 282* error_table_$noarg 000022 external static fixed bin(35,0) dcl 37 ref 188 flags based structure level 1 dcl 88 flags_p 000100 automatic pointer initial dcl 59 set ref 59* 170* 182 183 184 185 185 185 191 192 193 211 266 269 272 flags_word 000147 automatic bit(36) initial dcl 128 set ref 128* 170 get_pdir_ 000036 constant entry external dcl 47 ref 222 296 296 297 297 heals_arg_info 000160 automatic structure level 1 dcl 1-4 heals_arg_info_p parameter pointer dcl 32 set ref 6 182 183 184 187 202 226* 230 231 236 236 266* 269* 272* 282 289 heals_gen_ioerr_log_ 000042 constant entry external dcl 49 ref 226 heals_io_report_gen_ 000052 constant entry external dcl 53 ref 266 heals_ior_args_p 000102 automatic pointer initial dcl 62 set ref 62* 171* 193 196 197 198 199 216* 226* 234 266* 269* 272* heals_media_sort_gen_ 000056 constant entry external dcl 55 ref 272 heals_scan_config_ 000040 constant entry external dcl 48 ref 216 heals_sorted_report_gen_ 000054 constant entry external dcl 54 ref 269 i 000141 automatic fixed bin(17,0) dcl 119 set ref 247* 249 252* 256* i_set 1(32) based bit(1) level 2 packed unaligned dcl 2-25 ref 250 info_selection 5 based bit(72) level 2 packed unaligned dcl 143 ref 182 182 183 183 184 184 installation_id 113 based varying char(32) level 2 dcl 143 set ref 236* io_error 0(02) based bit(1) level 2 packed unaligned dcl 88 set ref 182* 185 266 io_rprt defined bit(1) unaligned dcl 97 ref 182 ioa_ 000024 constant entry external dcl 41 ref 211 312 ioa_$ioa_switch 000026 constant entry external dcl 42 ref 236 243 252 256 262 iocb based structure level 1 dcl 3-6 iocbp based pointer level 2 dcl 143 set ref 289* ioerr_log_sw 000015 internal static char(12) initial unaligned dcl 114 set ref 222* ioerr_log_sw_p 6 000110 automatic pointer level 2 dcl 65 set ref 177* 222* 290 291 291 291* 293 293 293* ior_avars based structure level 1 dcl 2-33 ior_avars_p 10 000110 automatic pointer level 2 dcl 65 set ref 178* ior_flags based structure level 1 dcl 2-12 ior_flags_p based pointer level 2 in structure "ior_ptrs" dcl 2-5 in procedure "heals_io_reports_" ref 193 234 ior_flags_p 000110 automatic pointer level 2 in structure "real_p" dcl 65 in procedure "heals_io_reports_" set ref 174* ior_flags_word 000150 automatic bit(36) dcl 132 set ref 174 181* ior_prms based structure level 1 dcl 2-18 ior_prms_p 2 000110 automatic pointer level 2 in structure "real_p" dcl 65 in procedure "heals_io_reports_" set ref 175* ior_prms_p 2 based pointer level 2 in structure "ior_ptrs" dcl 2-5 in procedure "heals_io_reports_" ref 196 197 198 199 ior_ptrs based structure level 1 dcl 2-5 iox_$attach_ioname 000030 constant entry external dcl 43 ref 222 iox_$close 000034 constant entry external dcl 46 ref 289 j 000142 automatic fixed bin(17,0) dcl 119 set ref 248* 249 251* max_ch_nb constant fixed bin(17,0) initial dcl 83 ref 136 197 248 max_ch_nb_a 0(18) based fixed bin(17,0) level 2 packed unaligned dcl 2-18 set ref 197* max_iom_nb constant fixed bin(17,0) initial dcl 82 ref 136 196 247 max_iom_nb_a based fixed bin(17,0) level 2 packed unaligned dcl 2-18 set ref 196* max_line_cnt constant fixed bin(17,0) initial dcl 85 ref 199 max_line_cnt_a 1(18) based fixed bin(17,0) level 2 packed unaligned dcl 2-18 set ref 199* max_tape_nb constant fixed bin(17,0) initial dcl 84 ref 198 max_tape_nb_a 1 based fixed bin(17,0) level 2 packed unaligned dcl 2-18 set ref 198* media_data defined bit(1) unaligned dcl 102 ref 184 media_rprt 0(04) based bit(1) level 2 packed unaligned dcl 88 set ref 184* 185 272 model 1 based fixed bin(17,0) level 2 packed unaligned dcl 2-25 set ref 252 256* no_recs 0(02) based bit(1) level 2 packed unaligned dcl 2-12 ref 234 null builtin function dcl 147 ref 59 62 63 64 177 230 290 291 293 open_descrip_ptr 20 based pointer level 2 dcl 3-6 ref 291 outsw_p 000106 automatic pointer initial dcl 64 set ref 64* 231* 236* 243* 252* 256* 262* proc_err_nb parameter fixed bin(17,0) dcl 280 set ref 279 282 283* r_code parameter fixed bin(35,0) dcl 33 set ref 6 167* 188* 281* real_ior_avars 000146 automatic structure level 1 dcl 124 set ref 178 real_ior_prms 000126 automatic structure level 1 dcl 105 set ref 175 real_p 000110 automatic structure level 1 dcl 65 set ref 171 report_iocbp 2 based pointer level 2 dcl 143 ref 230 231 sorted_io_error 0(03) based bit(1) level 2 packed unaligned dcl 88 set ref 183* 185 269 sorted_io_rprt defined bit(1) unaligned dcl 101 ref 183 substr builtin function dcl 147 ref 209 210 system_id 102 based varying char(32) level 2 dcl 143 set ref 236* time 000132 automatic char(6) unaligned dcl 110 set ref 210* 211* 236* trace based bit(1) level 2 in structure "ior_flags" packed unaligned dcl 2-12 in procedure "heals_io_reports_" set ref 193* trace based bit(1) level 2 in structure "flags" packed unaligned dcl 88 in procedure "heals_io_reports_" set ref 191* 192* 193 211 trace_state 000314 automatic char(3) unaligned dcl 306 set ref 309* 311* 312* trace_sw 000021 internal static bit(1) initial dcl 305 set ref 191 308* 308 309 version_date 000122 automatic char(8) initial unaligned dcl 80 set ref 80* 211* version_nb 000124 automatic fixed bin(17,0) initial dcl 81 set ref 81* 211* whoami 000010 internal static char(17) initial unaligned dcl 79 set ref 211* 283* 296* 297* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. cpu_data defined bit(1) unaligned dcl 99 iox_$detach_iocb 000000 constant entry external dcl 44 iox_$iocb_version_sentinel external static char(4) dcl 3-51 mos_edac_data defined bit(1) unaligned dcl 100 mpc_data defined bit(1) unaligned dcl 98 NAMES DECLARED BY EXPLICIT CONTEXT. clean_up 001370 constant entry internal dcl 288 ref 164 275 284 err_return 001243 constant label dcl 301 ref 285 heals_io_reports_ 000244 constant entry external dcl 6 proc_err 001320 constant entry internal dcl 279 ref 217 224 227 230 268 271 tr 001245 constant entry external dcl 304 trace 001255 constant entry external dcl 304 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 2032 2112 1601 2042 Length 2372 1601 60 243 230 12 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME heals_io_reports_ 390 external procedure is an external procedure. on unit on line 164 64 on unit proc_err internal procedure shares stack frame of external procedure heals_io_reports_. clean_up 142 internal procedure is called by several nonquick procedures. STORAGE FOR INTERNAL STATIC VARIABLES. LOC IDENTIFIER BLOCK NAME 000010 whoami heals_io_reports_ 000015 ioerr_log_sw heals_io_reports_ 000020 dl_sws heals_io_reports_ 000021 trace_sw heals_io_reports_ STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME heals_io_reports_ 000100 flags_p heals_io_reports_ 000102 heals_ior_args_p heals_io_reports_ 000104 ch_nfo_ar_p heals_io_reports_ 000106 outsw_p heals_io_reports_ 000110 real_p heals_io_reports_ 000122 version_date heals_io_reports_ 000124 version_nb heals_io_reports_ 000126 real_ior_prms heals_io_reports_ 000130 date heals_io_reports_ 000132 time heals_io_reports_ 000134 date_time heals_io_reports_ 000140 ch_nr heals_io_reports_ 000141 i heals_io_reports_ 000142 j heals_io_reports_ 000143 code heals_io_reports_ 000144 clock_time heals_io_reports_ 000146 real_ior_avars heals_io_reports_ 000147 flags_word heals_io_reports_ 000150 ior_flags_word heals_io_reports_ 000151 ch_nfo_ar heals_io_reports_ 000160 heals_arg_info heals_io_reports_ 000312 ch_nfo_p heals_io_reports_ 000314 trace_state heals_io_reports_ THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. alloc_cs cat_realloc_cs call_var call_ext_out_desc call_ext_out call_int_this call_int_other return alloc_auto_adj enable shorten_stack ext_entry int_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. clock_ com_err_ date_time_ delete_$path get_pdir_ heals_gen_ioerr_log_ heals_io_report_gen_ heals_media_sort_gen_ heals_scan_config_ heals_sorted_report_gen_ ioa_ ioa_$ioa_switch iox_$attach_ioname iox_$close THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$noarg LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 59 000211 62 000213 63 000214 64 000215 80 000216 81 000220 128 000222 136 000223 6 000240 164 000252 167 000274 170 000276 171 000300 174 000302 175 000304 176 000306 177 000310 178 000312 181 000314 182 000315 183 000324 184 000331 185 000336 187 000341 188 000343 189 000346 191 000347 192 000355 193 000357 196 000363 197 000366 198 000371 199 000374 202 000376 207 000377 208 000405 209 000422 210 000424 211 000427 216 000471 217 000502 222 000510 224 000576 226 000605 227 000621 230 000627 231 000642 234 000647 236 000653 243 000737 247 000757 248 000767 249 000775 250 001006 251 001011 252 001021 256 001062 260 001122 261 001124 262 001126 266 001145 268 001164 269 001172 271 001211 272 001217 275 001236 276 001242 301 001243 304 001244 308 001263 309 001267 311 001273 312 001275 313 001317 279 001320 281 001322 282 001325 283 001331 284 001362 285 001366 288 001367 289 001375 290 001412 291 001417 293 001434 296 001452 297 001517 298 001564 ----------------------------------------------------------- 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