COMPILATION LISTING OF SEGMENT heals_media_sort_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.8 mst Thu Options: optimize map 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 4* * * 5* *********************************************************** */ 6 heals_media_sort_gen_: proc (heals_arg_info_p, heals_ior_args_p, r_code); 7 8 /* ****************************************************************************** 9* * * 10* * Comments: * 11* * * 12* * Evolved from heals_sorted_report_gen_ by A. R. Downing May 1977 * 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 dcl sort_ entry ((*)char (*), char (*), (*)ptr, char (*), char (*), float bin (27), 32 fixed bin (35)); 33 dcl clock_ entry returns (fixed bin (71)); 34 dcl get_pdir_ entry returns (char (168)); 35 dcl ioa_ entry options (variable); 36 dcl ioa_$ioa_switch entry options (variable); 37 dcl com_err_ entry options (variable); 38 dcl date_time_ entry (fixed bin (71), char (*)); 39 dcl iox_$attach_ioname entry (char (*), ptr, char (*), fixed bin (35)); 40 dcl iox_$detach_iocb entry (ptr, fixed bin (35)); 41 dcl iox_$close entry (ptr, fixed bin (35)); 42 dcl iox_$open entry (ptr, fixed bin, bit (1) aligned, fixed bin (35)); 43 dcl iox_$read_record entry (ptr, ptr, fixed bin (21), fixed bin (21), fixed bin (35)); 44 45 /* **** POINTERS **** */ 46 dcl flags_p ptr init (null); 47 dcl work_p1 ptr init (null); 48 49 /* Arguments */ 50 dcl sortsw_p ptr init (null); 51 dcl sort_data_p ptr init (null); 52 dcl sort_desc_p (3) ptr init (null, null, null); 53 dcl inbuf_p ptr init (null); 54 dcl insw_p ptr init (null); 55 dcl outsw_p ptr init (null); 56 57 /* Pointers declared in include files: 58* ior_flags_p 59* ior_prms_p 60* ch_nfo_p 61* heals_ior_avars_p 62* ioerr_rec_p 63* statp 64* iocbp 65* io_msgp 66* */ 67 68 /* **** CHARACTER STRING VARIABLES **** */ 69 dcl old_name char (4); 70 dcl whoami char (24) int static init ("heals_media_sort_gen_"); 71 dcl inbuf char (inbuf_len) aligned; 72 dcl rprt_from_time char (16); 73 dcl rprt_to_time char (16); 74 dcl old_date char (8); 75 dcl date char (8); 76 dcl time char (6); 77 dcl date_time char (16); 78 dcl ch_nr pic "99"; 79 dcl dev_nr pic "99"; 80 81 /* Arguments */ 82 dcl version_date char (8) init ("12/15/76"); 83 84 /* **** ARITHMETIC VARIABLES **** */ 85 dcl clock_time fixed bin (71); 86 dcl line_cnt fixed bin; 87 dcl max_line_cnt fixed bin; 88 dcl page_nb fixed bin; 89 90 /* Arguments */ 91 dcl version_nb fixed bin init (1); 92 dcl code fixed bin (35); 93 dcl inrec_len fixed bin (21); 94 dcl inbuf_len fixed bin (21) int static init (1024); 95 dcl seq_in fixed bin int static init (4); 96 97 /* **** BIT STRING VARIABLES **** */ 98 dcl flags_word bit (36) aligned; 99 dcl eof bit (1) aligned; 100 101 /* Arguments */ 102 dcl unused bit (1) aligned init ("0"b); 103 104 /* **** BASED VARIABLES **** */ 105 dcl 1 arg_info like heals_arg_info aligned based (heals_arg_info_p); 106 dcl 1 flags aligned based (flags_p), 107 (2 trace bit (1), 108 2 db bit (1), 109 2 hdrs bit (1), 110 2 no_recs bit (1), 111 2 fill bit (1) 112 ) unal; 113 114 /* **** SORT DECLARATIONS **** */ 115 dcl sort_file_size float bin (27); 116 dcl sort_out_file char (168); 117 dcl sort_temp_dir char (168); 118 dcl sort_user_out_sw char (32); 119 dcl sortsw char (6) int static init ("sortsw"); 120 dcl sort_in_file (1) char (168); 121 dcl user_keys_number int static init (3); 122 dcl 1 keys, 123 2 version fixed bin init (1), 124 2 number fixed bin, 125 2 key_desc (user_keys_number), 126 3 datatype char (8), 127 3 size fixed bin (24), 128 3 word_offset fixed bin (18), 129 3 bit_offset fixed bin (6), 130 3 desc char (3); 131 132 /* **** MISC. DECLARATIONS **** */ 133 134 dcl (addr, addrel, before, fixed, null) builtin; 135 dcl cleanup condition; 136 137 /* FF */ 138 /* **** 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. */ 139 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 */ 140 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 */ 141 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 */ 142 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 143 144 /* **** END OF DECLARATIONS **** */ 145 /* FF */ 146 /* ******** PROCEDURE ******** */ 147 148 /* **** Procedure Initialization **** */ 149 150 on cleanup call clean_up; 151 152 /* Init returns. */ 153 r_code = 0; 154 arg_info.err_nb = 0; 155 156 /* Init pointers. */ 157 flags_p = addr (flags_word); 158 insw_p = ioerr_log_sw_p; 159 outsw_p = arg_info.report_iocbp; 160 inbuf_p = addr (inbuf); 161 ioerr_rec_p = addr (inbuf); 162 io_msgp = addr (ioerr_rec.data); 163 statp = addr (io_msg.status); 164 165 /* Init control flags. */ 166 flags_word = "0"b; 167 flags.hdrs = "1"b; 168 flags.no_recs = ior_flags.no_recs; 169 eof = "0"b; 170 171 /* Init all else. */ 172 173 code = 0; 174 old_date = ""; 175 page_nb = 0; 176 line_cnt = 0; 177 max_line_cnt = max_line_cnt_a; 178 call date_time_ (arg_info.from_time, rprt_from_time); 179 call date_time_ (arg_info.to_time, rprt_to_time); 180 181 /* Initialize for sort. */ 182 sort_in_file = "-if "||before (get_pdir_ (), " ") ||">heals_ioerr_log"; 183 sort_out_file = "-of " || before (get_pdir_ (), " ") || ">heals_sort_log"; 184 sort_desc_p (1) = addr (keys); 185 sort_desc_p (2) = null; 186 sort_desc_p (3) = null; 187 sort_file_size = 0; 188 sort_temp_dir = ""; 189 sort_user_out_sw = ""; 190 191 keys.number = user_keys_number; 192 193 key_desc.datatype (1) = "char"; 194 key_desc.size (1) = 8; 195 key_desc.word_offset (1) = 0; 196 key_desc.bit_offset (1) = 0; 197 key_desc.desc (1) = ""; 198 199 key_desc.datatype (2) = "char"; 200 key_desc.size (2) = 7; 201 key_desc.word_offset (2) = 8; 202 key_desc.bit_offset (2) = 0; 203 key_desc.desc (2) = ""; 204 205 206 key_desc.datatype (3) = "bit"; 207 key_desc.size (3) = 44; 208 key_desc.word_offset (3) = 2; 209 key_desc.bit_offset (3) = 0; 210 key_desc.desc (3) = ""; 211 212 /* **** End Procedure Initialization **** */ 213 214 /* Run information. */ 215 clock_time = clock_ (); 216 call date_time_ (clock_time, date_time); 217 date = substr (date_time, 1, 8); 218 time = substr (date_time, 11, 6); 219 if flags.trace 220 | ior_flags.trace 221 then call ioa_ ("^a run info: date ^a, time ^a, version ^d of ^a.", 222 whoami, date, time, version_nb, version_date); 223 224 /* Sort heals_ioerr_log for the media_error report. */ 225 call sort_ (sort_in_file, sort_out_file, sort_desc_p, 226 sort_temp_dir, "", 0, code); 227 if code ^= 0 then call proc_err (45); 228 229 /* **** Write media__error report. **** */ 230 231 /* Attach and open heals_sort_log file. */ 232 if ^flags.no_recs 233 then do; 234 call iox_$attach_ioname (sortsw, sortsw_p, "vfile_ " || before ( 235 get_pdir_ (), " ") || ">heals_sort_log", code); 236 if code ^= 0 then call proc_err (22); 237 call iox_$open (sortsw_p, seq_in, unused, code); 238 if code ^= 0 then call proc_err (40); 239 240 /* Read first record. */ 241 call iox_$read_record (sortsw_p, inbuf_p, inbuf_len, inrec_len, code); 242 if code ^= 0 then if code = error_table_$end_of_info 243 then flags.no_recs = "1"b; 244 else call proc_err (41); 245 old_name = dev_nm; /* initialize from first record */ 246 end; 247 248 /* Record processing loop. */ 249 media_report_line_loop: 250 do while (^eof); 251 if flags.hdrs 252 then do; page_nb = page_nb + 1; 253 line_cnt = 5; 254 call ioa_$ioa_switch (outsw_p, 255 "^|MEDIA_IO_ERROR_REPORT:^x^a^xto^x^a^5xPAGE^x^2d^/", 256 rprt_from_time, rprt_to_time, page_nb); 257 258 call ioa_$ioa_switch (outsw_p, 259 "_____D_E_V_I_C_E_____^3xS_T_A_T_U_S__^2xTLY^4xTAPE_NO^1xDENS^xRING^1xTRK^4xS_Y_S_E_R_R_____L_O_G_ 260 I-CC-DD NAME CM^3xMJ-SB-I^9xDISK_AD^2xCYL^xHEAD^1xSEC^4xTIME^3xNUMBER"); 261 262 if flags.no_recs then eof = "1"b; 263 end; 264 265 /* Write date line. */ 266 if ^eof 267 then do; if sort_date ^= old_date | flags.hdrs 268 then do; old_date = sort_date; 269 flags.hdrs = "0"b; 270 line_cnt = line_cnt +4; 271 call ioa_$ioa_switch (outsw_p, "^/^72(_^)^/DATE:^x^a^vxDATE:^x^a^/", 272 sort_date, 44, sort_date); 273 end; 274 275 ch_nr = fixed (ch_nb); 276 dev_nr = fixed (dev_nb); 277 278 /* Write media_error report line. */ 279 if substr (dev_nm, 1, 3) ^= "tap" & 280 substr (dev_nm, 1, 3) ^= "dsk" then go to read_next_log_rec; 281 line_cnt = line_cnt + 1; 282 283 if rprt_flags.ioerr 284 then call ioa_$ioa_switch (outsw_p, 285 "^1d-^2a-^2a^x^4a^x^2.3b^3x^2.3b-^2.3b-^1a^2x^3d^4x^7a^1x^4a^3x^2a^2x^2a^4x^6a^x^6d", 286 iom_nb, ch_nr, dev_nr, dev_nm, dev_cmnd, maj_st, sub_st, ntrpt_nm, tally_nb, 287 tapno_diskad, dens_cyl, ring_head, tracks_sector, 288 log_time, seq_nb); 289 290 else if rprt_flags.diskerr 291 then do; call ioa_$ioa_switch (outsw_p, 292 "^1d-^2a-^2a^x^4a^x^2.3b^3x^2.3b-^2.3b-^1a^2x^3d^4x^7a^1x^4a^3x^2a^2x^2a^4x^6a^x^6d^/^18x^a", 293 iom_nb, ch_nr, dev_nr, dev_nm, dev_cmnd, maj_st, sub_st, ntrpt_nm, tally_nb, 294 tapno_diskad, dens_cyl, ring_head, tracks_sector, 295 log_time, seq_nb, ioerr_rec.msg); 296 line_cnt = line_cnt + 1; 297 end; 298 299 else if rprt_flags.disk_addr 300 then call ioa_$ioa_switch (outsw_p, 301 "^1d-^2a-^2a^x^4a^x^2.3b^19x^7a^1x^4a^3x^2a^2x^2a^4x^6a^x^6d", 302 iom_nb, ch_nr, dev_nr, dev_nm, dev_cmnd, 303 tapno_diskad, dens_cyl, ring_head, tracks_sector, log_time, seq_nb); 304 305 else if rprt_flags.ext_stat | rprt_flags.iom_rec 306 then call ioa_$ioa_switch (outsw_p, 307 "^1d-^2a-^2a^x^4a^x^2.3b^3x^38a^3x^6a^x^6d", 308 iom_nb, ch_nr, dev_nr, dev_nm, dev_cmnd, ioerr_rec.msg, log_time, seq_nb); 309 310 else if rprt_flags.msg 311 then call ioa_$ioa_switch (outsw_p, "^a", ioerr_rec.msg); 312 313 else if rprt_flags.bulk 314 then call ioa_$ioa_switch (outsw_p, 315 "^8x^50a^x^6a^x^6d", 316 ioerr_rec.msg, log_time, seq_nb); 317 318 /* Read next heals_sort_log record. */ 319 read_next_log_rec: 320 call iox_$read_record (sortsw_p, inbuf_p, inbuf_len, inrec_len, code); 321 if code ^= 0 322 then if code = error_table_$end_of_info 323 then eof = "1"b; 324 else call proc_err (42); 325 326 327 /* Date change. */ 328 if sort_date ^= old_date 329 then if line_cnt > max_line_cnt - 10 330 then flags.hdrs = "1"b; 331 end; 332 333 if line_cnt > max_line_cnt 334 then flags.hdrs = "1"b; 335 end media_report_line_loop; 336 337 /* End of file on heals_sort_log. */ 338 if flags.no_recs 339 then call ioa_$ioa_switch (outsw_p, 340 "^/^11xThere were no io_errors during the report period."); 341 call ioa_$ioa_switch (outsw_p, 342 "^/END: MEDIA_IO_ERROR_REPORT"); 343 if ^flags.no_recs 344 then do; call iox_$close (sortsw_p, code); 345 if code ^= 0 then call proc_err (43); 346 call iox_$detach_iocb (sortsw_p, code); 347 if code ^= 0 then call proc_err (27); 348 end; 349 return; 350 351 /* FF */ 352 proc_err: proc (proc_err_nb); 353 dcl proc_err_nb fixed bin; 354 r_code = code; 355 arg_info.err_nb = proc_err_nb; 356 call com_err_ (code, whoami, "Procedure error number = ^d.", proc_err_nb); 357 call clean_up; 358 goto err_return; 359 end proc_err; 360 361 clean_up: proc; 362 if sortsw_p ^= null () then do; 363 call iox_$close (sortsw_p, code); 364 call iox_$detach_iocb (sortsw_p, code); 365 end; 366 return; 367 end clean_up; 368 369 err_return: return; 370 371 end heals_media_sort_gen_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 09/27/84 0745.2 heals_media_sort_gen_.pl1 >spec>on>heals>heals_media_sort_gen_.pl1 139 1 11/02/76 1752.0 heals_arg_info.incl.pl1 >ldd>include>heals_arg_info.incl.pl1 140 2 10/25/77 1258.3 heals_io_report_args.incl.pl1 >ldd>include>heals_io_report_args.incl.pl1 141 3 10/25/77 1258.3 heals_ioerr_rec.incl.pl1 >ldd>include>heals_ioerr_rec.incl.pl1 142 4 08/10/81 1843.6 io_syserr_msg.incl.pl1 >ldd>include>io_syserr_msg.incl.pl1 143 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 134 ref 157 160 161 162 163 184 arg_info based structure level 1 dcl 105 before builtin function dcl 134 ref 182 183 234 bit_offset 6 000376 automatic fixed bin(6,0) array level 3 dcl 122 set ref 196* 202* 209* bulk 6(34) based bit(1) level 4 packed unaligned dcl 3-7 ref 313 ch_nb 2(04) based fixed bin(6,0) level 3 packed unaligned dcl 3-7 ref 275 ch_nr 000150 automatic picture(2) unaligned dcl 78 set ref 275* 283* 291* 299* 305* cleanup 000376 stack reference condition dcl 135 ref 150 clock_ 000026 constant entry external dcl 33 ref 215 clock_time 000154 automatic fixed bin(71,0) dcl 85 set ref 215* 216* code 000162 automatic fixed bin(35,0) dcl 92 set ref 173* 225* 227 234* 236 237* 238 241* 242 242 319* 321 321 344* 345 346* 347 354 356* 363* 364* com_err_ 000036 constant entry external dcl 37 ref 356 data 21 based bit(36) array level 3 packed unaligned dcl 3-7 set ref 162 data_size 20(24) based fixed bin(11,0) level 3 packed unaligned dcl 3-7 ref 291 305 310 313 datatype 2 000376 automatic char(8) array level 3 packed unaligned dcl 122 set ref 193* 199* 206* date 000140 automatic char(8) unaligned dcl 75 set ref 217* 219* date_time 000144 automatic char(16) unaligned dcl 77 set ref 216* 217 218 date_time_ 000040 constant entry external dcl 38 ref 178 179 216 dens_cyl 11(27) based picture(4) level 3 packed unaligned dcl 3-7 set ref 283* 291* 299* desc 7 000376 automatic char(3) array level 3 packed unaligned dcl 122 set ref 197* 203* 210* dev_cmnd 2(32) based bit(6) level 3 packed unaligned dcl 3-7 set ref 283* 291* 299* 305* dev_nb 2(11) based fixed bin(6,0) level 3 packed unaligned dcl 3-7 ref 276 dev_nm 4 based picture(4) level 3 packed unaligned dcl 3-7 set ref 245 279 279 283* 291* 299* 305* dev_nr 000151 automatic picture(2) unaligned dcl 79 set ref 276* 283* 291* 299* 305* disk_addr 6(29) based bit(1) level 4 packed unaligned dcl 3-7 ref 299 diskerr 6(28) based bit(1) level 4 packed unaligned dcl 3-7 ref 290 eof 000165 automatic bit(1) dcl 99 set ref 169* 249 262* 266 321* err_nb 4 based fixed bin(35,0) level 2 dcl 105 set ref 154* 355* error_table_$end_of_info 000022 external static fixed bin(35,0) dcl 28 ref 242 321 ext_stat 6(30) based bit(1) level 4 packed unaligned dcl 3-7 ref 305 fixed builtin function dcl 134 ref 275 276 flags based structure level 1 dcl 106 flags_p 000100 automatic pointer initial dcl 46 set ref 46* 157* 167 168 219 232 242 251 262 267 269 328 333 338 343 flags_word 000164 automatic bit(36) dcl 98 set ref 157 166* from_time 126 based fixed bin(71,0) level 2 dcl 105 set ref 178* get_pdir_ 000030 constant entry external dcl 34 ref 182 183 234 hdrs 0(02) based bit(1) level 2 packed unaligned dcl 106 set ref 167* 251 267 269* 328* 333* heals_arg_info 000404 automatic structure level 1 dcl 1-4 heals_arg_info_p parameter pointer dcl 22 ref 6 154 159 178 179 355 heals_ior_args_p parameter pointer dcl 23 ref 6 158 168 177 219 inbuf 000125 automatic char dcl 71 set ref 160 161 inbuf_len 000016 internal static fixed bin(21,0) initial dcl 94 set ref 71 241* 319* inbuf_p 000116 automatic pointer initial dcl 53 set ref 53* 160* 241* 319* inrec_len 000163 automatic fixed bin(21,0) dcl 93 set ref 241* 319* insw_p 000120 automatic pointer initial dcl 54 set ref 54* 158* io_msg based structure level 1 dcl 4-14 io_msgp 000540 automatic pointer dcl 4-12 set ref 162* 163 ioa_ 000032 constant entry external dcl 35 ref 219 ioa_$ioa_switch 000034 constant entry external dcl 36 ref 254 258 271 283 291 299 305 310 313 338 341 ioerr 6(27) based bit(1) level 4 packed unaligned dcl 3-7 ref 283 ioerr_log_sw_p 6 based pointer level 2 dcl 2-5 ref 158 ioerr_rec based structure level 1 dcl 3-7 ioerr_rec_p 000536 automatic pointer dcl 3-6 set ref 161* 162 245 267 268 271 271 275 276 279 279 283 283 283 283 283 283 283 283 283 283 283 283 283 283 290 291 291 291 291 291 291 291 291 291 291 291 291 291 291 299 299 299 299 299 299 299 299 299 299 305 305 305 305 305 305 305 305 310 310 313 313 313 313 328 iom_nb 2 based fixed bin(3,0) level 3 packed unaligned dcl 3-7 set ref 283* 291* 299* 305* iom_rec 6(31) based bit(1) level 4 packed unaligned dcl 3-7 ref 305 ior_flags based structure level 1 dcl 2-12 ior_flags_p based pointer level 2 dcl 2-5 ref 168 219 ior_prms based structure level 1 dcl 2-18 ior_prms_p 2 based pointer level 2 dcl 2-5 ref 177 ior_ptrs based structure level 1 dcl 2-5 iox_$attach_ioname 000042 constant entry external dcl 39 ref 234 iox_$close 000046 constant entry external dcl 41 ref 344 363 iox_$detach_iocb 000044 constant entry external dcl 40 ref 346 364 iox_$open 000050 constant entry external dcl 42 ref 237 iox_$read_record 000052 constant entry external dcl 43 ref 241 319 key_desc 2 000376 automatic structure array level 2 unaligned dcl 122 keys 000376 automatic structure level 1 unaligned dcl 122 set ref 184 line_cnt 000156 automatic fixed bin(17,0) dcl 86 set ref 176* 253* 270* 270 281* 281 296* 296 328 333 log_time 5 based char(6) level 3 packed unaligned dcl 3-7 set ref 283* 291* 299* 305* 313* maj_st 2(19) based bit(6) level 3 packed unaligned dcl 3-7 set ref 283* 291* max_line_cnt 000157 automatic fixed bin(17,0) dcl 87 set ref 177* 328 333 max_line_cnt_a 1(18) based fixed bin(17,0) level 2 packed unaligned dcl 2-18 ref 177 msg based char level 2 in structure "ioerr_rec" dcl 3-7 in procedure "heals_media_sort_gen_" set ref 291* 305* 310* 313* msg 6(33) based bit(1) level 4 in structure "ioerr_rec" packed unaligned dcl 3-7 in procedure "heals_media_sort_gen_" ref 310 msg_len 20(12) based fixed bin(11,0) level 3 packed unaligned dcl 3-7 ref 291 291 305 305 310 310 313 313 no_recs 0(02) based bit(1) level 2 in structure "ior_flags" packed unaligned dcl 2-12 in procedure "heals_media_sort_gen_" ref 168 no_recs 0(03) based bit(1) level 2 in structure "flags" packed unaligned dcl 106 in procedure "heals_media_sort_gen_" set ref 168* 232 242* 262 338 343 ntrpt_nm 6(18) based char(1) level 3 packed unaligned dcl 3-7 set ref 283* 291* null builtin function dcl 134 ref 46 47 50 51 52 52 52 53 54 55 185 186 362 number 1 000376 automatic fixed bin(17,0) level 2 dcl 122 set ref 191* old_date 000136 automatic char(8) unaligned dcl 74 set ref 174* 267 268* 328 old_name 000124 automatic char(4) unaligned dcl 69 set ref 245* outsw_p 000122 automatic pointer initial dcl 55 set ref 55* 159* 254* 258* 271* 283* 291* 299* 305* 310* 313* 338* 341* page_nb 000160 automatic fixed bin(17,0) dcl 88 set ref 175* 252* 252 254* proc_err_nb parameter fixed bin(17,0) dcl 353 set ref 352 355 356* r_code parameter fixed bin(35,0) dcl 24 set ref 6 153* 354* report_iocbp 2 based pointer level 2 dcl 105 ref 159 report_nfo 4 based structure level 2 dcl 3-7 ring_head 12(27) based picture(2) level 3 packed unaligned dcl 3-7 set ref 283* 291* 299* rprt_flags 6(27) based structure level 3 packed unaligned dcl 3-7 rprt_from_time 000125 automatic char(16) unaligned dcl 72 set ref 178* 254* rprt_to_time 000131 automatic char(16) unaligned dcl 73 set ref 179* 254* seq_in 000017 internal static fixed bin(17,0) initial dcl 95 set ref 237* seq_nb 15 based fixed bin(35,0) level 3 packed unaligned dcl 3-7 set ref 283* 291* 299* 305* 313* size 4 000376 automatic fixed bin(24,0) array level 3 dcl 122 set ref 194* 200* 207* sort_ 000024 constant entry external dcl 31 ref 225 sort_data_p 000106 automatic pointer initial dcl 51 set ref 51* sort_date based char(8) level 3 packed unaligned dcl 3-7 set ref 267 268 271* 271* 328 sort_desc_p 000110 automatic pointer initial array dcl 52 set ref 52* 52* 52* 184* 185* 186* 225* sort_file_size 000167 automatic float bin(27) dcl 115 set ref 187* sort_in_file 000324 automatic char(168) array unaligned dcl 120 set ref 182* 225* sort_out_file 000170 automatic char(168) unaligned dcl 116 set ref 183* 225* sort_rec based structure level 2 dcl 3-7 sort_temp_dir 000242 automatic char(168) unaligned dcl 117 set ref 188* 225* sort_user_out_sw 000314 automatic char(32) unaligned dcl 118 set ref 189* sortsw 000020 internal static char(6) initial unaligned dcl 119 set ref 234* sortsw_p 000104 automatic pointer initial dcl 50 set ref 50* 234* 237* 241* 319* 344* 346* 362 363* 364* statp 000542 automatic pointer dcl 5-5 set ref 163* status 3 based bit(36) level 2 dcl 4-14 set ref 163 sub_st 2(25) based bit(6) level 3 packed unaligned dcl 3-7 set ref 283* 291* 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 283* 291* 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 283* 291* 299* time 000142 automatic char(6) unaligned dcl 76 set ref 218* 219* to_time 130 based fixed bin(71,0) level 2 dcl 105 set ref 179* trace based bit(1) level 2 in structure "flags" packed unaligned dcl 106 in procedure "heals_media_sort_gen_" ref 219 trace based bit(1) level 2 in structure "ior_flags" packed unaligned dcl 2-12 in procedure "heals_media_sort_gen_" ref 219 tracks_sector 13(09) based picture(2) level 3 packed unaligned dcl 3-7 set ref 283* 291* 299* unused 000166 automatic bit(1) initial dcl 102 set ref 102* 237* user_keys_number constant fixed bin(17,0) initial dcl 121 ref 122 191 version 000376 automatic fixed bin(17,0) initial level 2 dcl 122 set ref 122* version_date 000152 automatic char(8) initial unaligned dcl 82 set ref 82* 219* version_nb 000161 automatic fixed bin(17,0) initial dcl 91 set ref 91* 219* whoami 000010 internal static char(24) initial unaligned dcl 70 set ref 219* 356* word_offset 5 000376 automatic fixed bin(18,0) array level 3 dcl 122 set ref 195* 201* 208* work_p1 000102 automatic pointer initial dcl 47 set ref 47* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. addrel builtin function dcl 134 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 002612 constant entry internal dcl 361 ref 150 357 err_return 002541 constant label dcl 369 ref 358 heals_media_sort_gen_ 000376 constant entry external dcl 6 media_report_line_loop 001341 constant label dcl 249 proc_err 002542 constant entry internal dcl 352 ref 227 236 238 244 324 345 347 read_next_log_rec 002360 constant label dcl 319 ref 279 NAME DECLARED BY CONTEXT OR IMPLICATION. substr builtin function ref 217 218 279 279 STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 3046 3122 2663 3056 Length 3436 2663 54 277 163 12 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME heals_media_sort_gen_ 674 external procedure is an external procedure. on unit on line 150 64 on unit proc_err internal procedure shares stack frame of external procedure heals_media_sort_gen_. clean_up 70 internal procedure is called by several nonquick procedures. STORAGE FOR INTERNAL STATIC VARIABLES. LOC IDENTIFIER BLOCK NAME 000010 whoami heals_media_sort_gen_ 000016 inbuf_len heals_media_sort_gen_ 000017 seq_in heals_media_sort_gen_ 000020 sortsw heals_media_sort_gen_ STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME heals_media_sort_gen_ 000100 flags_p heals_media_sort_gen_ 000102 work_p1 heals_media_sort_gen_ 000104 sortsw_p heals_media_sort_gen_ 000106 sort_data_p heals_media_sort_gen_ 000110 sort_desc_p heals_media_sort_gen_ 000116 inbuf_p heals_media_sort_gen_ 000120 insw_p heals_media_sort_gen_ 000122 outsw_p heals_media_sort_gen_ 000124 old_name heals_media_sort_gen_ 000125 inbuf heals_media_sort_gen_ 000125 rprt_from_time heals_media_sort_gen_ 000131 rprt_to_time heals_media_sort_gen_ 000136 old_date heals_media_sort_gen_ 000140 date heals_media_sort_gen_ 000142 time heals_media_sort_gen_ 000144 date_time heals_media_sort_gen_ 000150 ch_nr heals_media_sort_gen_ 000151 dev_nr heals_media_sort_gen_ 000152 version_date heals_media_sort_gen_ 000154 clock_time heals_media_sort_gen_ 000156 line_cnt heals_media_sort_gen_ 000157 max_line_cnt heals_media_sort_gen_ 000160 page_nb heals_media_sort_gen_ 000161 version_nb heals_media_sort_gen_ 000162 code heals_media_sort_gen_ 000163 inrec_len heals_media_sort_gen_ 000164 flags_word heals_media_sort_gen_ 000165 eof heals_media_sort_gen_ 000166 unused heals_media_sort_gen_ 000167 sort_file_size heals_media_sort_gen_ 000170 sort_out_file heals_media_sort_gen_ 000242 sort_temp_dir heals_media_sort_gen_ 000314 sort_user_out_sw heals_media_sort_gen_ 000324 sort_in_file heals_media_sort_gen_ 000376 keys heals_media_sort_gen_ 000404 heals_arg_info heals_media_sort_gen_ 000536 ioerr_rec_p heals_media_sort_gen_ 000540 io_msgp heals_media_sort_gen_ 000542 statp heals_media_sort_gen_ THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. alloc_cs cat_realloc_cs 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_ get_pdir_ ioa_ ioa_$ioa_switch iox_$attach_ioname iox_$close iox_$detach_iocb iox_$open iox_$read_record sort_ 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 000372 46 000403 47 000405 50 000406 51 000407 52 000410 53 000433 54 000434 55 000435 71 000436 82 000445 91 000447 102 000451 122 000452 150 000462 153 000504 154 000506 157 000511 158 000513 159 000517 160 000521 161 000523 162 000525 163 000527 166 000531 167 000532 168 000534 169 000541 173 000542 174 000543 175 000545 176 000546 177 000547 178 000554 179 000571 182 000611 183 000666 184 000731 185 000734 186 000736 187 000737 188 000741 189 000744 191 000747 193 000752 194 000755 195 000757 196 000760 197 000761 199 000763 200 000766 201 000770 202 000772 203 000773 206 000775 207 001000 208 001002 209 001004 210 001005 215 001007 216 001016 217 001033 218 001035 219 001040 225 001110 227 001152 232 001160 234 001163 236 001251 237 001260 238 001275 241 001303 242 001322 244 001332 245 001336 249 001341 251 001344 252 001347 253 001350 254 001352 258 001405 262 001425 266 001432 267 001434 268 001444 269 001447 270 001451 271 001453 275 001510 276 001525 279 001541 281 001551 283 001552 290 001700 291 001703 296 002042 297 002043 299 002044 305 002147 310 002245 313 002305 319 002360 321 002377 324 002407 328 002413 333 002426 335 002433 338 002434 341 002457 343 002477 344 002502 345 002513 346 002521 347 002532 349 002540 369 002541 352 002542 354 002544 355 002547 356 002553 357 002604 358 002610 361 002611 362 002617 363 002624 364 002634 366 002646 ----------------------------------------------------------- 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