COMPILATION LISTING OF SEGMENT io_error_summary Compiled by: Multics PL/I Compiler, Release 33e, of October 6, 1992 Compiled at: ACTC Technologies Inc. Compiled on: 10/21/92 1553.2 mdt Wed Options: optimize map 1 /****^ *********************************************************** 2* * * 3* * Copyright, (C) BULL HN Information Systems Inc., 1992 * 4* * * 5* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 6* * * 7* * Copyright (c) 1972 by Massachusetts Institute of * 8* * Technology and Honeywell Information Systems, Inc. * 9* * * 10* *********************************************************** */ 11 12 13 /****^ HISTORY COMMENTS: 14* 1) change(85-09-11,Farley), approve(85-09-11,MCR6979), 15* audit(86-02-18,Coppola), install(92-10-21,MR12.5-1037): 16* Add support for FIPS disk and tape. 17* 2) change(85-12-18,Farley), approve(85-12-18,MCR7318), 18* audit(86-02-18,Coppola), install(92-10-21,MR12.5-1037): 19* bug fixes, plus one new arg. 20* 3) change(92-10-02,WAAnderson), approve(92-10-02,MCR8276), 21* audit(92-10-14,Vu), install(92-10-21,MR12.5-1037): 22* 1) Added support for fdisk_status_table_.alm 2) Added support for device 23* channels. (ie -channel control arg & new column) 3) Added sector number 24* for -cylinder argument. 4) Corrected problem with data bit error counts. 25* END HISTORY COMMENTS */ 26 /* IO_ERROR_SUMMARY: Command to summarize I/O errors from the syserr log */ 27 28 /* Coded January-February 1976 by Larry Johnson */ 29 /* Modified May 1976 by Larry Johnson for new config cards and disk and opc devices */ 30 /* Modified March 1977 by Larry Johnson to get device names from log instead of config deck */ 31 /* Modified November 1979 by Larry Johnson for detailed device status */ 32 /* Modified January 1980 by Larry Johnson to use hashing to improve performance */ 33 /* Modified October 1980 by Rich Coppola to reduce superflous output from detail status */ 34 /* Modified May 1981 by Rich Coppola to add interface to analyze_detail_stat_ 35* add -status (-st) arg and the -hex_detail_status (-hxdtst) arg. */ 36 /* Modified Apr 1982 by Rich Coppola to add support of PR54 printer and MPT Tape drives */ 37 /* Modified September 1982 by C. Hornig for PRPH TAP card change. */ 38 /* Modified Oct 1982 by Rich Coppola to use new calling sequence to 39* analyze_detail_stat_$rs/rsnnl and remove some superflous code for detail 40* status analysis that was better done in analyze_detail_stat_. 41**/ 42 /* Modified Jan. 28, 1983 by Paul Farley to add a "-io_command(-ioc)" arg to */ 43 /* allow for displaying the IO command executed prior to recieving the error. */ 44 /* Modified Nov 1983 by Paul Farley to fix TR 16222,16432 45* Modified Jan 1984 by Paul Farley to fix TR 14550 46* Modified Jan 1985 by Paul Farley to pack ascii formatted detailed status 47* from EURCs and UR-IPCs before printing in HEX or before analyzing. 48* Modified Feb 1985 by Paul Farley to check for null ptrs from config_. 49* Modified July 1985 by Paul Farley for FIPS disk/tape. 50**/ 51 52 /* format: style4,delnl,insnl,ifthenstmt,indnoniterend */ 53 54 io_error_summary: 55 proc; 56 57 dcl code fixed bin (35); /* Standard system status code */ 58 dcl open_status bit (36) aligned; /* Code from syserr_log_util_$open */ 59 dcl tab_cnt fixed bin init (0); /* Number of seperate status found */ 60 dcl indent fixed bin; /* The number of spaces to indent */ 61 dcl (i, j) fixed bin; 62 dcl mode fixed bin (5); 63 dcl stat_tablep ptr internal static; /* Pointer to device status table */ 64 dcl my_tape_analp ptr; /* Pointer to tape detail status analysis */ 65 dcl my_disk_analp ptr; 66 dcl my_prt_analp ptr; 67 dcl mask bit (36) aligned; /* Mask of significant bits in status word */ 68 dcl arg_ptr ptr; /* Pointer to an argument */ 69 dcl arg_len fixed bin; /* Length of an argument */ 70 dcl arg char (arg_len) based (arg_ptr); /* A command argument */ 71 dcl arg_count fixed bin; /* The number of arguments */ 72 dcl arg_list_ptr ptr; /* Pointer to commands argument list */ 73 dcl for_ptr ptr; /* Saved pointer to the -for argument */ 74 dcl for_len fixed bin; /* Saved length of -for argument */ 75 dcl for_arg char (for_len) based (for_ptr); /* This is the -for argument */ 76 dcl from_sw bit (1) init ("0"b); /* Set if -from used */ 77 dcl to_sw bit (1) init ("0"b); /* Set if -to used */ 78 dcl for_sw bit (1) init ("0"b); /* Set if -for used */ 79 dcl detailed_status_sw bit (1) init ("0"b); /* Set if -dtstat specified */ 80 dcl hex_detailed_status_sw bit (1) init ("0"b); /* Set if user want to see hex detail status */ 81 dcl chn_sw bit (1) init ("0"b); /* Set if user wants to see channel */ 82 dcl cyl_sw bit (1) init ("0"b); /* Set if user wants to see disk addresses */ 83 dcl tdbie_sw bit (1) init ("0"b); /* Set if user wants to see tape data bits in error */ 84 dcl io_cmd_sw bit (1) init ("0"b); /* Set if user wants to see the I/O commands */ 85 dcl fips_controller bit (1) init ("0"b); 86 dcl more_args bit (1); /* Set while there are more arguments to scan */ 87 dcl from_time fixed bin (71); /* Time specified on -from */ 88 dcl to_time fixed bin (71); /* Time specified on -to */ 89 dcl for_time fixed bin (71); /* Time specified on -for */ 90 dcl arg_no fixed bin init (1); /* For scanning argument list */ 91 dcl statentp ptr; /* Pointer to status table entry */ 92 dcl msg_time fixed bin (71); /* Time of syserr message */ 93 dcl msg_seq fixed bin (35); /* Sequence number */ 94 dcl dev_cnt fixed bin init (0); /* Number of devices requested */ 95 dcl stat_req_cnt fixed bin init (0); /* Number of stati requested */ 96 dcl stat_cnt fixed bin init (0); /* Entries in status table */ 97 dcl devreq (32) char (7) var; /* Table of requested devices */ 98 dcl 1 statreq (32), /* Table of requested stati */ 99 2 statreq_maj bit (4), /* major status */ 100 2 statreq_min bit (6); /* minor status */ 101 dcl 1 dev_pack_list (20) aligned, 102 2 valid bit (1) aligned, 103 2 device char (4) aligned, 104 2 pack bit (1) aligned; 105 dcl 1 dev_idx_list (20) aligned, 106 2 valid bit (1) aligned, 107 2 device_name char (8) aligned, 108 2 device_idx fixed bin aligned; 109 dcl 1 disk_list (20) aligned, 110 2 valid bit (1) aligned, 111 2 device_name char (8) aligned, 112 2 fips bit (1) aligned; 113 dcl stat_arg fixed bin (35); 114 dcl buffer (500) bit (36) aligned; /* Syserr messages are read here */ 115 dcl sortp ptr; /* Segment containing sort array */ 116 dcl areap ptr; /* Work area */ 117 dcl hashp ptr; 118 dcl chars_in_sort_info fixed bin; 119 dcl 1 auto_area_info aligned like area_info automatic; 120 121 dcl meter_sw bit (1) init ("0"b); /* Set if -meter used */ 122 dcl total_time fixed bin (71); 123 dcl open_time fixed bin (71); 124 dcl scan_time fixed bin (71); 125 dcl count_time fixed bin (71); 126 dcl sort_time fixed bin (71); 127 dcl start_count fixed bin (71); 128 dcl print_time fixed bin (71); 129 dcl n_counted fixed bin (35); 130 dcl n_statuses fixed bin (35); 131 dcl longest_chain fixed bin; 132 dcl buckets_used fixed bin; 133 dcl mpc_model fixed bin init (0); 134 dcl oct_char (0:7) char (1) int static options (constant) init ("0", "1", "2", "3", "4", "5", "6", "7"); 135 dcl analysis_char_count fixed bin; 136 dcl analysis_string char (256) var init (""); 137 dcl display_detail_count fixed bin; 138 dcl null_tape_tracks char (18) init ((18)"-"); 139 dcl dbie_counts (9) fixed bin; 140 dcl track_analysis char (256) var; 141 142 /* Constants */ 143 144 dcl name char (16) int static options (constant) init ("io_error_summary"); 145 /* Name of procedure */ 146 dcl n_buckets fixed bin int static options (constant) init (2047); 147 148 149 dcl mth500_mask bit (208) int static options (constant) init ("f3ffffffffffffffffffff000000002011002000000040000000"b4); 150 151 dcl mth600_mask bit (208) int static options (constant) init ("f3ffffffff00ffffff01000000000000ffffffffffffffffffff"b4); 152 153 dcl mth610_mask bit (208) int static options (constant) init ("f3ffffffff00ffff000000000a000400ffffffffffffffffffff"b4); 154 155 dcl mth640_mask bit (208) int static options (constant) init ("f3ffffffffe0ffe7ff17000000000000ffffffffffffffffffff"b4); 156 157 dcl mtc500_mask bit (208) int static options (constant) init ("ffffffffffffffffffffffffffffffff00000000000000000000"b4); 158 159 dcl mtp601_mask bit (208) int static options (constant) init ("fffffffffffffffffffffffffffffffffffffffffef200000000"b4); 160 161 dcl mtp610_mask bit (208) int static options (constant) init ("ffffffffffffffffffffffffffffffffffffffff7a820727003f"b4); 162 163 dcl fips_tape_mask bit (208) int static options (constant) 164 init ("fe85fffdf23640fd80f8950000000000000000000000ff000000"b4); 165 166 dcl pr71_mask bit (128) int static options (constant) init ("ffffffffffffffffffffff0000000000"b4); 167 168 dcl pr54_mask bit (128) int static options (constant) init ("800000c00000000000000000ff000080"b4); 169 170 dcl db_trk_str9 char (58) int static options (constant) 171 init ("Data Bit/Track 0/7 1/6 2/5 3/3 4/9 5/1 6/8 7/2 P/4"); 172 173 dcl db_trk_str7 char (49) int static options (constant) init ("Data Bit/Track 2/6 3/5 4/4 5/3 6/2 7/1 P/7"); 174 175 dcl DEV_LEN fixed bin int static options (constant) init (9); 176 dcl CHN_LEN fixed bin int static options (constant) init (4); 177 dcl IOC_LEN fixed bin int static options (constant) init (5); 178 179 /* Based */ 180 181 dcl 1 sort_list aligned based (sortp), 182 2 count fixed bin (35), 183 2 entryp (0 refer (sort_list.count)) ptr unal; 184 185 dcl hash_table (n_buckets) ptr unal based (hashp); 186 187 dcl 1 stat aligned based (statentp), /* Entry for each different status found */ 188 2 sort_info like stat_sort_info, 189 2 next ptr unal, /* Next in chain */ 190 2 count fixed bin (17) unal; /* Number of occurances of the status */ 191 192 dcl 1 stat_sort_info aligned based, 193 2 devname char (8), /* Name of device */ 194 2 chnname char (8), 195 2 time_out_sort char (1) unal, /* Make time outs sort before rest */ 196 2 sysfault_sort char (1) unal, /* Make system faults sort before rest */ 197 2 pad char (2) unal, 198 2 dsk_sect fixed bin (24), /* seek field fom dsk_ctl */ 199 2 pad1 fixed bin (12) unal, 200 2 dsk_mult_rec char (8), /* and the assoc record */ 201 2 status bit (36), /* The status */ 202 2 command char (2) unal, /* IO command */ 203 2 pad2 char (2) unal, 204 2 detailed_status bit (216); /* The detailed status */ 205 206 dcl work_area area based (areap); 207 208 /* External */ 209 210 dcl syserr_log_util_$open entry (bit (36) aligned, fixed bin (35)); 211 dcl print_syserr_msg_$open_err entry (bit (36) aligned, char (*), fixed bin (35)); 212 dcl com_err_ entry options (variable); 213 dcl get_temp_segment_ entry (char (*), ptr, fixed bin (35)); 214 dcl syserr_log_util_$read entry (ptr, fixed bin, fixed bin, fixed bin (35)); 215 dcl syserr_log_util_$close entry (fixed bin (35)); 216 dcl release_temp_segment_ entry (char (*), ptr, fixed bin (35)); 217 dcl ioa_ entry options (variable); 218 dcl ioa_$rsnnl entry () options (variable); 219 dcl ioa_$rs entry () options (variable); 220 dcl ioa_$rsnpnnl entry options (variable); 221 dcl syserr_log_util_$search entry (fixed bin (71), fixed bin (71), fixed bin (35), fixed bin (35)); 222 dcl analyze_device_stat_$rsnnl entry (char (*) var, ptr, bit (72) aligned, bit (18) aligned); 223 dcl analyze_detail_stat_$rsnnl entry (char (*), bit (36) aligned, bit (*) unal, char (*) var, bit (1), fixed bin (35)); 224 dcl analyze_detail_stat_ entry (char (*), bit (36) aligned, bit (*) unal, ptr, fixed bin (35)); 225 dcl date_time_ entry (fixed bin (71), char (*)); 226 dcl cu_$arg_list_ptr entry (ptr); 227 dcl cu_$arg_count entry (fixed bin); 228 dcl cu_$arg_ptr_rel entry (fixed bin, ptr, fixed bin, fixed bin (35), ptr); 229 dcl convert_date_to_binary_ entry (char (*), fixed bin (71), fixed bin (35)); 230 dcl convert_date_to_binary_$relative entry (char (*), fixed bin (71), fixed bin (71), fixed bin (35)); 231 dcl config_$find entry (char (4) aligned, ptr); 232 dcl config_$find_periph entry (char (4) aligned, ptr); 233 dcl config_$find_peripheral entry (char (4) aligned, fixed bin (3), fixed bin (8), bit (36) aligned, fixed bin (35)); 234 dcl cv_dec_check_ entry (char (*), fixed bin (35)) returns (fixed bin (35)); 235 dcl cv_oct_check_ entry (char (*), fixed bin (35)) returns (fixed bin (35)); 236 dcl define_area_ entry (ptr, fixed bin (35)); 237 dcl release_area_ entry (ptr); 238 dcl sort_items_$bit entry (ptr, fixed bin (24)); 239 dcl hash_index_ entry (ptr, fixed bin, fixed bin, fixed bin) returns (fixed bin); 240 dcl hcs_$fs_get_mode entry (ptr, fixed bin (5), fixed bin (35)); 241 dcl parse_io_channel_name_ entry (char (*), fixed bin (3), fixed bin (6), fixed bin (35)); 242 243 dcl error_table_$no_r_permission fixed bin (35) ext static; 244 dcl error_table_$end_of_info ext fixed bin (35); 245 dcl error_table_$badopt ext fixed bin (35); 246 dcl sys_info$max_seg_size fixed bin (35) ext static; 247 dcl disk_status_table_$disk_status_table_ ext; 248 dcl fdisk_status_table_$fdisk_status_table_ ext; 249 dcl opc_status_table_$opc_status_table_ ext; 250 dcl tape_status_table_$tape_status_table_ ext; 251 dcl prt_status_table_$prt_status_table_ ext; 252 dcl cpz_status_table_$cpz_status_table_ ext; 253 dcl crz_status_table_$crz_status_table_ ext; 254 dcl config_deck$ ext; 255 dcl cleanup condition; 256 257 dcl (addr, bin, divide, fixed, float, hbound, index, lbound, length, ltrim, max, mod, null, rtrim, size, substr, 258 subtract, unspec, vclock, bit) builtin; 259 260 /* Initialization */ 261 262 total_time = vclock (); 263 areap = null (); 264 sortp = null (); 265 unspec (dev_pack_list (*)) = ""b; 266 unspec (dev_idx_list (*)) = ""b; 267 on cleanup call clean_up; 268 269 call get_temp_segment_ (name, sortp, code); /* Get a work segment */ 270 if code ^= 0 then do; 271 call com_err_ (code, name, "Can't get temp segment"); 272 go to done; 273 end; 274 sort_list.count = 0; 275 276 area_infop = addr (auto_area_info); 277 unspec (area_info) = "0"b; 278 area_info.version = area_info_version_1; 279 area_info.owner = name; 280 area_info.size = sys_info$max_seg_size; 281 area_info.areap = null (); 282 area_info.control.extend = "1"b; 283 area_info.no_freeing = "1"b; 284 call define_area_ (area_infop, code); 285 if code ^= 0 then do; 286 call com_err_ (code, name, "Unable to setup area."); 287 go to done; 288 end; 289 290 areap = area_info.areap; 291 allocate stat_sort_info in (work_area) set (hashp); 292 /* Dummy, to get size */ 293 chars_in_sort_info = 4 * size (hashp -> stat_sort_info); 294 295 allocate hash_table in (work_area); 296 hash_table (*) = null (); 297 298 call cu_$arg_list_ptr (arg_list_ptr); /* Need pointer to argument list */ 299 call cu_$arg_count (arg_count); /* And the length */ 300 more_args = (arg_count > 0); /* Set if args to scan */ 301 call scan_args; /* Scan the argument list */ 302 303 open_time = vclock (); 304 call syserr_log_util_$open (open_status, code); /* Open the syserr log */ 305 if code ^= 0 | substr (open_status, 1, 2) ^= "11"b then do; 306 /* If error */ 307 call print_syserr_msg_$open_err (open_status, name, code); 308 if code ^= 0 then go to done; /* Not recoverable */ 309 end; 310 open_time = vclock () - open_time; 311 312 if ^from_sw then do; /* No -from, so start at beginning */ 313 call syserr_log_util_$search (0, msg_time, msg_seq, code); 314 if code ^= 0 then do; 315 call com_err_ (code, name, "Can't find first message in log."); 316 go to done; 317 end; 318 from_time = msg_time; /* Official starting time */ 319 end; 320 else do; /* -from used, find right message */ 321 call syserr_log_util_$search (from_time, msg_time, msg_seq, code); 322 if code ^= 0 then do; 323 call com_err_ (code, name, "Locating first message requested."); 324 go to done; 325 end; 326 end; 327 328 if for_sw then do; /* Now can compute -for limit */ 329 call convert_date_to_binary_$relative (for_arg, to_time, from_time, code); 330 if code ^= 0 then do; 331 call com_err_ (code, name, "-for ^a", for_arg); 332 go to done; 333 end; 334 to_sw = "1"b; /* Now, just as if -to was specified */ 335 end; 336 if ^to_sw then to_time = from_time; /* Initialize last message time */ 337 338 indent = 0; 339 340 if chn_sw 341 then indent = DEV_LEN + CHN_LEN; 342 else indent = DEV_LEN; 343 344 if io_cmd_sw then indent = indent + IOC_LEN; 345 346 syserr_msgp = addr (buffer); /* Read here */ 347 mask = "0"b; 348 statp = addr (mask); /* Initialize mask of important things in status word */ 349 status.t = "1"b; 350 status.power = "1"b; 351 status.major = "1111"b; 352 status.sub = "111111"b; 353 status.channel_stat = "111"b; 354 status.central_stat = "111"b; 355 356 if detailed_status_sw then do; /* check callers access to the config_deck, without it can do nothing for him */ 357 358 359 call hcs_$fs_get_mode (addr (config_deck$), mode, code); 360 if code ^= 0 then do; 361 no_cd_access: 362 call com_err_ (code, name, "Cannot decode detailed status."); 363 return; 364 end; 365 if (bit (mode) & bit (R_ACCESS_BIN)) ^= bit (R_ACCESS_BIN) then do; 366 code = error_table_$no_r_permission; 367 goto no_cd_access; 368 end; 369 end; 370 371 372 373 /* Loop thru the file */ 374 375 scan_time = vclock (); 376 count_time = 0; 377 n_counted, n_statuses = 0; 378 379 loop: 380 call syserr_log_util_$read (syserr_msgp, hbound (buffer, 1), (0), code); 381 if code ^= 0 then do; 382 if code = error_table_$end_of_info then go to print; 383 call com_err_ (code, name, "Reading syserr log"); 384 go to done; 385 end; 386 387 if to_sw then do; /* If time limit */ 388 if syserr_msg.time > to_time then go to print; 389 end; 390 else to_time = syserr_msg.time; /* Save last message time */ 391 392 if syserr_msg.data_code = SB_io_err | syserr_msg.data_code = SB_io_err_detail 393 | syserr_msg.data_code = SB_disk_err | syserr_msg.data_code = SB_ocdcm_err then do; 394 start_count = vclock (); 395 n_counted = n_counted + 1; 396 call count_it; 397 count_time = count_time + (vclock () - start_count); 398 end; 399 go to loop; 400 401 /* End of log reached */ 402 403 print: 404 scan_time = vclock () - scan_time - count_time; 405 406 sort_time = vclock (); 407 if sort_list.count > 0 then call sort_items_$bit (sortp, 9 * chars_in_sort_info); 408 sort_time = vclock () - sort_time; 409 410 print_time = vclock (); 411 call print_it; /* Print results */ 412 print_time = vclock () - print_time; 413 414 /* End of command */ 415 416 total_time = vclock () - total_time; 417 418 if meter_sw then do; 419 call ioa_ ("^2/"); 420 call ioa_ ("Total:^-^.1f", float (total_time) / 1.0e6); 421 call ioa_ ("Open:^-^.1f", float (open_time) / 1.0e6); 422 call ioa_ ("Scan:^-^.1f", float (scan_time) / 1.0e6); 423 call ioa_ ("Count:^-^.1f (^d records, ^d statuses)", float (count_time) / 1.0e6, n_counted, n_statuses); 424 call ioa_ ("Sort:^-^.1f (^d entries)", float (sort_time) / 1.0e6, sort_list.count); 425 call ioa_ ("Print:^-^.1f", float (print_time) / 1.0e6); 426 buckets_used = 0; 427 longest_chain = 0; 428 do i = 1 to hbound (hash_table, 1); 429 if hash_table (i) ^= null () then do; 430 buckets_used = buckets_used + 1; 431 j = 0; 432 do statentp = hash_table (i) repeat (stat.next) while (statentp ^= null ()); 433 j = j + 1; 434 end; 435 longest_chain = max (j, longest_chain); 436 end; 437 end; 438 call ioa_ ("^d of ^d buckets used, longest list was ^d", buckets_used, n_buckets, longest_chain); 439 end; 440 441 done: 442 call clean_up; 443 return; 444 445 /* Procedure to scan the argument list */ 446 447 scan_args: 448 proc; 449 450 do while (more_args); /* Do while thins to look at */ 451 call get_arg; 452 if arg = "-from" | arg = "-fm" then do; /* Start time */ 453 from_sw = "1"b; 454 call time_arg (from_time); 455 end; 456 else if arg = "-to" then do; /* Ending time */ 457 to_sw = "1"b; 458 call time_arg (to_time); 459 end; 460 else if arg = "-for" then do; /* Time limit */ 461 for_sw = "1"b; 462 call time_arg (for_time); /* For syntax checking only */ 463 for_len = arg_len; /* Save pointer to this argument */ 464 for_ptr = arg_ptr; 465 end; 466 else if arg = "-device" | arg = "-dv" then do; 467 /* List of devices */ 468 if ^more_args then do; /* Need more args */ 469 no_dev: 470 call com_err_ (0, name, "Argument missing after -device"); 471 go to done; 472 end; 473 call get_arg; 474 if substr (arg, 1, 1) = "-" then go to no_dev; 475 /* Shouldn't be control arg */ 476 new_dev: 477 dev_cnt = dev_cnt + 1; /* Count device found */ 478 devreq (dev_cnt) = arg; /* Save name */ 479 if more_args then do; /* If more to scan */ 480 call get_arg; 481 if substr (arg, 1, 1) ^= "-" then do; 482 /* Found another device */ 483 if dev_cnt < hbound (devreq, 1) 484 then go to new_dev; 485 else do; /* Too many */ 486 call com_err_ (0, name, "There were more than ^d devices specified.", 487 hbound (devreq, 1)); 488 go to done; 489 end; 490 end; 491 else call put_arg; /* Went too far, back up 1 */ 492 end; 493 end; 494 495 else if arg = "-status" | arg = "-st" then do; 496 /* List of statuses */ 497 if ^more_args then do; /* Need more args */ 498 no_stat: 499 call com_err_ (0, name, "Argument missing after -status"); 500 go to done; 501 end; 502 call get_arg; 503 if substr (arg, 1, 1) = "-" then go to no_stat; 504 /* Shouldn't be control arg */ 505 new_stat: 506 stat_req_cnt = stat_req_cnt + 1; /* Count status found */ 507 stat_arg = cv_oct_check_ (arg, code); 508 if code ^= 0 then do; 509 510 call com_err_ (code, name, "Status must be octal."); 511 go to done; 512 end; 513 statreq.statreq_maj (stat_req_cnt) = substr (unspec (stat_arg), 27, 4); 514 statreq.statreq_min (stat_req_cnt) = substr (unspec (stat_arg), 31, 6); 515 if more_args then do; /* If more to scan */ 516 call get_arg; 517 if substr (arg, 1, 1) ^= "-" then do; 518 /* Found another status */ 519 if stat_req_cnt < hbound (statreq, 1) 520 then go to new_stat; 521 else do; /* Too many */ 522 call com_err_ (0, name, "There were more than ^d statuses specified.", 523 hbound (statreq, 1)); 524 go to done; 525 end; 526 end; 527 else call put_arg; /* Went too far, back up 1 */ 528 end; 529 end; 530 531 532 else if arg = "-detailed_status" | arg = "-dtstat" | arg = "-dtst" then detailed_status_sw = "1"b; 533 534 else if arg = "-hex_detailed_status" | arg = "-hxdtstat" | arg = "-hxdtst" 535 then hex_detailed_status_sw = "1"b; 536 else if arg = "-meter" then meter_sw = "1"b; 537 538 else if arg = "-cylinders" | arg = "-cyl" then cyl_sw = "1"b; 539 540 else if arg = "-tape_data_bit_in_error" | arg = "-tdbie" then tdbie_sw = "1"b; 541 542 else if arg = "-io_command" | arg = "-ioc" then io_cmd_sw = "1"b; 543 else if arg = "-channel" | arg = "-chn" then chn_sw = "1"b; 544 545 else do; /* Bad arg */ 546 call com_err_ (error_table_$badopt, name, "^a", arg); 547 go to done; 548 end; 549 end; 550 551 552 if to_sw & for_sw then do; /* Conflict */ 553 call com_err_ (0, name, "Conflicting arguments: -to and -for"); 554 go to done; 555 end; 556 557 if hex_detailed_status_sw & detailed_status_sw then do; 558 /* ditto */ 559 call com_err_ (0, name, "Conflicting arguments: -hex_detailed_status and -detailed_status."); 560 go to done; 561 end; 562 563 564 return; 565 566 end scan_args; 567 568 /* Procedure to return the next argument from command line */ 569 570 get_arg: 571 proc; 572 573 call cu_$arg_ptr_rel (arg_no, arg_ptr, arg_len, code, arg_list_ptr); 574 if code ^= 0 then do; /* Should never happen */ 575 call com_err_ (code, name, "Arg ^d", arg_no); 576 go to done; 577 end; 578 arg_no = arg_no + 1; /* For next call */ 579 more_args = (arg_no <= arg_count); 580 return; 581 582 put_arg: 583 entry; /* Entry to return argument after scanning too far */ 584 arg_no = arg_no - 1; 585 more_args = (arg_no <= arg_count); 586 return; 587 588 end get_arg; 589 590 /* Procedure to convert a time argument */ 591 592 time_arg: 593 proc (t); 594 595 dcl t fixed bin (71); /* The time to ouput */ 596 dcl arg_copy char (10) var; /* Save copy of arg here */ 597 598 arg_copy = arg; 599 if ^more_args then do; /* Must be more */ 600 call com_err_ (0, name, "Argument required after ^a.", arg_copy); 601 go to done; 602 end; 603 call get_arg; 604 call convert_date_to_binary_ (arg, t, code); 605 if code ^= 0 then do; 606 call com_err_ (code, name, "^a ^a", arg_copy, arg); 607 go to done; 608 end; 609 610 return; 611 612 end time_arg; 613 614 /* Procedure to count a status */ 615 616 count_it: 617 proc; 618 619 dcl ntimes fixed bin; /* Number of times status occured */ 620 dcl dev_edit picture "99"; 621 dcl dev_name char (3); 622 dcl detail_temp char (71); /* 24 bytes */ 623 dcl (start_char, start_pos) fixed bin; 624 dcl 1 temp_stat like stat aligned automatic; 625 dcl bucket_no fixed bin; 626 dcl i fixed bin; 627 dcl p ptr; 628 dcl temp_char char (8); 629 630 631 if syserr_msg.data_size < 5 632 then /* not enough info to do aanything */ 633 return; 634 635 unspec (temp_stat) = "0"b; 636 statentp = addr (temp_stat); 637 stat.dsk_sect = 0; 638 stat.dsk_mult_rec = ""; 639 stat.next = null (); 640 641 io_msgp = addr (syserr_msg.data); /* Point at data portion */ 642 643 ntimes = bin (io_msg.count) + 1; 644 n_statuses = n_statuses + ntimes; 645 stat.devname = io_msg.devname; /* Pick up name of device */ 646 if chn_sw 647 then stat.chnname = io_msg.channel; /* Pick up name of channel */ 648 else stat.chnname = ""; 649 650 if substr (stat.devname, 1, 3) = "dsk" | substr (stat.devname, 1, 3) = "tap" then do; 651 substr (stat.devname, 5, 1) = "_"; 652 dev_edit = bin (io_msg.device); 653 substr (stat.devname, 6, 2) = dev_edit; 654 end; 655 656 if dev_cnt > 0 then do; /* Only doing certain devices */ 657 do i = 1 to dev_cnt; 658 if substr (stat.devname, 1, length (devreq (i))) = devreq (i) then go to dev_wanted; 659 end; 660 return; /* Not wanted */ 661 dev_wanted: 662 end; 663 664 if stat_req_cnt > 0 then do; /* Only doing certain stati */ 665 do i = 1 to stat_req_cnt; 666 if substr (io_msg.status, 3, 4) = statreq.statreq_maj (i) then do; 667 /* special case 00 status */ 668 if statreq.statreq_min (i) = "00"b3 then do; 669 if substr (io_msg.status, 7, 6) = statreq.statreq_min (i) then go to stat_wanted; 670 end; 671 672 else if substr (io_msg.status, 7, 6) & statreq.statreq_min (i) then go to stat_wanted; 673 end; 674 end; 675 return; /* Not wanted */ 676 stat_wanted: 677 end; 678 679 680 stat.time_out_sort = "1"; /* 1 means not timeout */ 681 stat.sysfault_sort = "1"; 682 if io_cmd_sw 683 then stat.command = 684 oct_char (bin (substr (io_msg.command, 1, 3))) || oct_char (bin (substr (io_msg.command, 4, 3))); 685 else stat.command = ""; 686 687 if io_msg.level = "001"b then do; /* System fault */ 688 stat.status = io_msg.status; /* Use all status */ 689 stat.sysfault_sort = "0"; /* To sort before other status */ 690 end; 691 692 else if io_msg.level = "011"b then do; /* If terminate */ 693 if io_msg.time_out then do; 694 stat.time_out_sort = "0"; /* To sort before others */ 695 stat.status = "0"b; /* No status if time out */ 696 end; 697 698 else stat.status = io_msg.status & mask; /* Keep just good part of rest */ 699 if cyl_sw = "1"b 700 then /* only if he wants 'em */ 701 if index (syserr_msg.text, "disk_control:") ^= 0 then do; 702 stat.dsk_mult_rec = ""; 703 start_char = index (syserr_msg.text, "rec "); 704 if start_char > 0 705 then stat.dsk_mult_rec = 706 substr (syserr_msg.text, start_char + 4, 707 (index (substr (syserr_msg.text, start_char + 4), ",") - 1)); 708 709 start_char = index (syserr_msg.text, ", sect "); 710 if start_char > 0 711 then temp_char = 712 substr (syserr_msg.text, start_char + 7, 713 (index (substr (syserr_msg.text, start_char + 7), ",") - 1)); 714 715 stat.dsk_sect = cv_oct_check_ (temp_char, code); 716 end; 717 718 if (detailed_status_sw | hex_detailed_status_sw) then do; 719 if syserr_msg.data_size = 11 then do; 720 dev_name = substr (stat.devname, 1, 3); 721 722 if dev_name = "prt" | dev_name = "rdr" | dev_name = "pun" then call pack_detail; 723 724 if dev_name = "dsk" then do; 725 if fips_disk (stat.devname) 726 then stat.detailed_status = substr (io_msg.detailed_status, 1, 192); 727 /* fips disks have 24 bytes */ 728 else stat.detailed_status = substr (io_msg.detailed_status, 1, 112); 729 /* others have 14 bytes */ 730 end; 731 732 else if dev_name = "tap" then do; 733 stat.detailed_status = substr (io_msg.detailed_status, 1, 208); 734 /* Only want 26 bytes */ 735 if stat.detailed_status = "0"b then go to sort_it; 736 if detailed_status_sw then call process_tape_status; 737 738 end; 739 740 741 else if dev_name = "prt" then do; 742 stat.detailed_status = substr (io_msg.detailed_status, 1, 128); 743 /* Only want 16 bytes */ 744 745 if stat.detailed_status = "0"b then go to sort_it; 746 if detailed_status_sw then call process_prt_status ((stat.devname)); 747 end; 748 749 else if dev_name = "rdr" | dev_name = "pun" 750 then stat.detailed_status = substr (io_msg.detailed_status, 1, 72); 751 /* Only want 9 bytes */ 752 753 else stat.detailed_status = io_msg.detailed_status; 754 /* If none of the above give it all */ 755 end; 756 757 else if index (syserr_msg.text, "disk_control:") ^= 0 758 & index (syserr_msg.text, "detailed status:") ^= 0 then do; 759 start_pos = index (syserr_msg.text, "detailed status:") + 17; 760 if start_pos > 0 then do; 761 detail_temp = 762 substr (syserr_msg.text, start_pos, (syserr_msg.text_len - 1) - (start_pos - 1)); 763 if fips_disk (stat.devname) 764 then stat.detailed_status = cv_detail (detail_temp, 24); 765 else stat.detailed_status = cv_detail (detail_temp, 14); 766 end; 767 768 end; 769 end; 770 771 end; 772 773 else return; 774 775 sort_it: 776 bucket_no = hash_index_ (addr (stat.sort_info), chars_in_sort_info, 13, n_buckets) + 1; 777 778 do p = hash_table (bucket_no) repeat (p -> stat.next) while (p ^= null ()); 779 if unspec (p -> stat.sort_info) = unspec (stat.sort_info) then do; 780 p -> stat.count = p -> stat.count + ntimes; 781 return; 782 end; 783 end; 784 785 allocate stat in (work_area) set (p); 786 p -> stat = stat; 787 p -> stat.count = ntimes; 788 p -> stat.next = hash_table (bucket_no); 789 hash_table (bucket_no) = p; 790 791 sort_list.count = sort_list.count + 1; 792 sort_list.entryp (sort_list.count) = p; 793 return; 794 795 cv_detail: 796 proc (detail_string, bytes_wanted) returns (bit (216)); 797 dcl detail_string char (*); 798 dcl bytes_wanted fixed bin; 799 dcl (det_idx, bit_idx, hex_idx) fixed bin; 800 dcl detailed_bits bit (216) init (""b); 801 802 det_idx = 1; 803 do bit_idx = 1 to bytes_wanted * 8 by 4; /* index thru bit string */ 804 find_hex_idx: 805 hex_idx = index ("0123456789ABCDEF", substr (detail_string, det_idx, 1)); 806 if hex_idx = 0 then do; /* skip spaces or other bad things */ 807 det_idx = det_idx + 1; 808 goto find_hex_idx; 809 end; 810 substr (detailed_bits, bit_idx, 4) = bit (subtract (hex_idx, 1, 4), 4); 811 det_idx = det_idx + 1; 812 end; 813 return (detailed_bits); 814 end cv_detail; 815 816 pack_detail: 817 proc; 818 dcl temp_detail bit (216); 819 dcl 1 unpacked (24) based (unpack_ptr), 820 2 unused bit (1) unaligned, 821 2 data bit (8) unaligned; 822 dcl packed (27) bit (8) unaligned based (pack_ptr); 823 dcl (pack_ptr, unpack_ptr) ptr; 824 dcl periph char (4) aligned; 825 dcl (dev_idx, byte_idx) fixed bin; 826 dcl do_pack bit (1); 827 dcl iom_no fixed bin (3); 828 dcl chan_no fixed bin (8); 829 periph = substr (stat.devname, 1, 4); 830 do dev_idx = 1 to hbound (dev_pack_list, 1) while (dev_pack_list (dev_idx).valid); 831 if dev_pack_list (dev_idx).device = periph then goto pack_it; 832 end; 833 call config_$find_peripheral (periph, iom_no, chan_no, ""b, code); 834 if code ^= 0 then do; 835 do_pack = "0"b; 836 goto save_info; 837 end; 838 mpc_cardp = null (); 839 do while ("1"b); 840 call config_$find ("mpc", mpc_cardp); 841 if mpc_cardp = null () then do; 842 do_pack = "1"b; 843 goto save_info; 844 end; 845 do i = 1 to hbound (mpc_card.port, 1) while (mpc_card.port (i).iom ^= -1); 846 if (iom_no = mpc_card.port (i).iom) & (chan_no >= mpc_card.port (i).chan) 847 & (chan_no < mpc_card.port (i).chan + mpc_card.port (i).nchan) then do; 848 if mpc_card.model = 2 | mpc_card.model = 600 849 then do_pack = "0"b; 850 else do_pack = "1"b; 851 goto save_info; 852 end; 853 end; 854 end; 855 save_info: 856 if dev_idx > hbound (dev_pack_list, 1) then dev_idx = hbound (dev_pack_list, 1); 857 dev_pack_list (dev_idx).valid = "1"b; 858 dev_pack_list (dev_idx).device = periph; 859 dev_pack_list (dev_idx).pack = do_pack; 860 pack_it: 861 if ^dev_pack_list (dev_idx).pack then return; 862 unpack_ptr = addr (io_msg.detailed_status); 863 pack_ptr = addr (temp_detail); 864 temp_detail = ""b; /* clear it out */ 865 do byte_idx = 1 to hbound (unpacked, 1); /* Pack it up */ 866 packed (byte_idx) = unpacked (byte_idx).data; 867 end; 868 io_msg.detailed_status = temp_detail; /* copy back */ 869 return; 870 end pack_detail; 871 end count_it; 872 873 /* Procedure to print results */ 874 875 print_it: 876 proc; 877 878 dcl (tm1, tm2) char (24); /* For editing times */ 879 dcl msg char (256) var; /* Build status message here */ 880 dcl (break, is_interesting) bit (1); /* Flags */ 881 dcl prev_dev char (8) init (""); 882 dcl (i, j, k) fixed bin; 883 dcl p ptr; 884 dcl name_ck char (3); 885 dcl total_status fixed bin; 886 dcl ndtstats fixed bin; 887 dcl dtstat (1:27) bit (8) unal based (addr (stat.detailed_status)); 888 dcl temp_detailed_status bit (208) unal based (addr (stat.detailed_status)); 889 dcl (cyl, head, isect) fixed bin (24); 890 891 892 call date_time_ (from_time, tm1); /* Edit start */ 893 call date_time_ (to_time, tm2); 894 call ioa_ ("^/Summary from ^a to ^a^/^/", tm1, tm2); 895 call ioa_ ("DEVICE^3x^[CHN^x^;^]^[CMD^2x^;^]COUNT^xIOM STATUS^[/DETAILED STATUS^]", chn_sw, io_cmd_sw, 896 (detailed_status_sw | hex_detailed_status_sw)); 897 898 stat_tablep = null (); 899 do i = 1 to sort_list.count; 900 statentp = sort_list.entryp (i); 901 break = (prev_dev ^= stat.devname); 902 prev_dev = stat.devname; 903 total_status = stat.count; 904 if break then call pick_status_table; 905 ndtstats = 0; 906 display_detail_count = 0; 907 analysis_string = ""; 908 dbie_counts (*) = 0; 909 910 if (detailed_status_sw | hex_detailed_status_sw) then do; 911 do j = i + 1 to sort_list.count; 912 p = sort_list.entryp (j); 913 if p -> stat.devname ^= stat.devname then go to end_dup_scan; 914 if p -> stat.sysfault_sort ^= stat.sysfault_sort then go to end_dup_scan; 915 if p -> stat.time_out_sort ^= stat.time_out_sort then go to end_dup_scan; 916 if p -> stat.status ^= stat.status then go to end_dup_scan; 917 if p -> stat.command ^= stat.command then go to end_dup_scan; 918 if p -> stat.dsk_mult_rec ^= stat.dsk_mult_rec then go to end_dup_scan; 919 920 total_status = total_status + p -> stat.count; 921 ndtstats = ndtstats + 1; 922 end; 923 end_dup_scan: 924 end; 925 926 if stat.time_out_sort = "0" then msg = "Channel timed out."; 927 else if stat.sysfault_sort = "0" then call ioa_$rsnpnnl ("System fault: ^w", msg, (0), stat.status); 928 else call analyze_device_stat_$rsnnl (msg, stat_tablep, (stat.status), ("0"b)); 929 call ioa_ ("^[^/^8a^x^;^9x^s^]^[^3a^x^;^s^]^[(^2a)^x^;^s^]^5d^x^a", break, stat.devname, chn_sw, 930 stat.chnname, io_cmd_sw, stat.command, total_status, msg); 931 932 if stat.dsk_mult_rec ^= "" then do; 933 call convert_seek_addr (stat.dsk_sect, stat.devname, stat.chnname, cyl, head, isect); 934 call ioa_ ("^vx^6xCylinder ^[???^s^;^3d^] Head ^[??^s^;^2d^] Sector ^[???^s^;^3d^] Record ^a", indent, 935 (cyl = -1), cyl, (head = -1), head, (isect = -1), isect, stat.dsk_mult_rec); 936 end; 937 938 if hex_detailed_status_sw then do; 939 do j = i to i + ndtstats; 940 statentp = sort_list.entryp (j); 941 if stat.detailed_status ^= "0"b then do; 942 name_ck = substr (stat.devname, 1, 3); 943 if name_ck = "dsk" then do; 944 if fips_disk (stat.devname) 945 then k = 24; /* 24 bytes for fips */ 946 else k = 11; /* 11 bytes for others */ 947 end; 948 else if name_ck = "tap" then k = 26; 949 /* print 26 bytes */ 950 else if name_ck = "prt" then k = 16; 951 /* print 15 bytes */ 952 else if name_ck = "rdr" | name_ck = "pun" then k = 9; 953 /* print 9 bytes */ 954 else do k = hbound (dtstat, 1) to lbound (dtstat, 1) + 1 by -1 while (dtstat (k) = "0"b); 955 end; 956 call ioa_ ("^vx^5d^3x^v( ^.4b^)", indent, stat.count, k, dtstat); 957 end; 958 end; 959 i = i + ndtstats; 960 end; 961 962 else if detailed_status_sw then do; 963 do j = i to i + ndtstats; 964 statentp = sort_list.entryp (j); 965 if stat.detailed_status ^= "0"b then do; 966 if substr (stat.devname, 1, 3) = "tap" then do; 967 call analyze_detail_stat_ ((stat.devname), stat.status, temp_detailed_status, 968 my_tape_analp, code); 969 if code ^= 0 then go to end_anal_display; 970 971 tape_analp = my_tape_analp; 972 973 if tape_analysis.num_analyzed = 0 974 then if tdbie_sw = "0"b then go to end_anal_display; 975 976 if tape_analysis.num_analyzed = 0 977 then if (tdbie_sw = "1"b & tape_analysis.tracks_in_error = null_tape_tracks) 978 then go to end_anal_display; 979 980 call tally_details_tape_; 981 if j = i + ndtstats then do; 982 call ioa_ ("^vx^5d^3x^a", indent, display_detail_count, analysis_string); 983 if tdbie_sw = "1"b then call ioa_ ("^vx^6x^a", indent, rtrim (track_analysis)); 984 end; 985 go to end_anal_display; 986 end; /* end tape display */ 987 988 else if substr (stat.devname, 1, 3) = "dsk" then do; 989 990 call analyze_detail_stat_ ((stat.devname), stat.status, (stat.detailed_status), 991 my_disk_analp, code); 992 if code ^= 0 then go to end_anal_display; 993 994 disk_analp = my_disk_analp; 995 996 call tally_details_disk_; 997 if j = i + ndtstats 998 then call ioa_ ("^vx^5d^3x^a", indent, display_detail_count, ltrim (analysis_string)); 999 go to end_anal_display; 1000 end; /* end disk display */ 1001 1002 1003 else if substr (stat.devname, 1, 3) = "prt" then do; 1004 1005 call analyze_detail_stat_ ((stat.devname), stat.status, (stat.detailed_status), 1006 my_prt_analp, code); 1007 if code ^= 0 then go to end_anal_display; 1008 1009 prt_analp = my_prt_analp; 1010 if prt_analysis.num_analyzed = 0 then go to end_anal_display; 1011 1012 call tally_details_prt_; 1013 1014 if j = i + ndtstats 1015 then call ioa_ ("^vx^5d^3x^a", indent, display_detail_count, ltrim (analysis_string)); 1016 go to end_anal_display; 1017 end; /* end prt display */ 1018 1019 else if substr (stat.devname, 1, 3) = "rdr" | substr (stat.devname, 1, 3) = "pun" then do; 1020 call analyze_detail_stat_$rsnnl ((stat.devname), stat.status, (stat.detailed_status), 1021 msg, is_interesting, code); 1022 if is_interesting then call ioa_ ("^vx^5d^3x^a", indent, stat.count, msg); 1023 1024 go to end_anal_display; 1025 end; /* end rdr_pun display */ 1026 1027 end_anal_display: 1028 end; 1029 end; 1030 i = i + ndtstats; 1031 end; 1032 end; 1033 call ioa_ (""); 1034 return; 1035 1036 end print_it; 1037 1038 1039 1040 convert_seek_addr: 1041 proc (sector, disk_name, chn_name, cyl_, hd_, sec_); 1042 1043 /* ********************************************************************** 1044* * given a seek address, this routine returns the sector, head and * 1045* * cylinder information from that address. High efficiency format * 1046* * is assumed. * 1047* ********************************************************************** */ 1048 1049 dcl (sector, sec_, sa, cyl_, hd_) fixed bin (24); 1050 dcl disk_name char (8) aligned; 1051 dcl chn_name char (8) aligned; 1052 dcl (dev_idx, i, j) fixed bin; 1053 dcl (dev_model, dev_no_index, dev_no) fixed bin; 1054 dcl iom_number fixed bin (3); 1055 dcl chn_number fixed bin (6); 1056 1057 cyl_ = -1; 1058 hd_ = -1; 1059 sec_ = -1; 1060 1061 do i = 1 to hbound (dev_idx_list, 1) while (dev_idx_list (i).valid); 1062 if dev_idx_list (i).device_name = disk_name then goto calc; 1063 end; 1064 1065 if i > hbound (dev_idx_list, 1) then i = hbound (dev_idx_list, 1); 1066 dev_idx_list (i).valid = "1"b; 1067 dev_idx_list (i).device_name = disk_name; 1068 dev_idx_list (i).device_idx = 0; 1069 1070 /* Determine the model of the drive */ 1071 1072 dev_no_index, dev_model = 0; 1073 dev_no = cv_dec_check_ (substr (disk_name, 6, 2), code); 1074 1075 call config_$find_periph (substr (disk_name, 1, 4), prph_dsk_cardp); 1076 /* will need drive no. later */ 1077 if prph_dsk_cardp = null () then return; 1078 1079 if chn_sw then do; 1080 call parse_io_channel_name_ ((chn_name), iom_number, chn_number, code); 1081 call find_controller (iom_number, (chn_number)); 1082 end; 1083 else call find_controller (prph_dsk_card.iom, prph_dsk_card.chan); 1084 1085 if mpc_cardp = null () & ^fips_controller then return; 1086 1087 do j = 1 to 5 while (dev_model = 0); 1088 dev_no_index = dev_no_index + prph_dsk_card.ndrives (j); 1089 if dev_no < dev_no_index | (^fips_controller & dev_no = dev_no_index) 1090 then dev_model = prph_dsk_card.model (j); 1091 end; 1092 if dev_model = 0 then goto calc; /* device not found */ 1093 1094 do j = 1 to hbound (MODEL, 1) while (dev_idx_list (i).device_idx = 0); 1095 if dev_model = MODEL (j) then dev_idx_list (i).device_idx = MODELX (j); 1096 end; 1097 1098 calc: 1099 dev_idx = dev_idx_list (i).device_idx; 1100 if dev_idx < 2 then return; 1101 1102 sa = divide (sector, sect_per_track (dev_idx), 24, 0); 1103 sec_ = mod (sector, sect_per_track (dev_idx)); 1104 cyl_ = divide (sa, tracks_per_cyl (dev_idx), 24, 0); 1105 hd_ = mod (sa, tracks_per_cyl (dev_idx)); 1106 1107 return; 1108 end convert_seek_addr; 1109 1110 /* Cleanup handler */ 1111 1112 clean_up: 1113 proc; 1114 1115 call syserr_log_util_$close (code); 1116 1117 if sortp ^= null () then call release_temp_segment_ (name, sortp, code); 1118 if areap ^= null () then call release_area_ (areap); 1119 1120 return; 1121 1122 end clean_up; 1123 1124 pick_status_table: 1125 proc; 1126 1127 if substr (stat.devname, 1, 3) = "tap" then stat_tablep = addr (tape_status_table_$tape_status_table_); 1128 else if substr (stat.devname, 1, 3) = "prt" then stat_tablep = addr (prt_status_table_$prt_status_table_); 1129 else if substr (stat.devname, 1, 3) = "rdr" then stat_tablep = addr (crz_status_table_$crz_status_table_); 1130 else if substr (stat.devname, 1, 3) = "pun" then stat_tablep = addr (cpz_status_table_$cpz_status_table_); 1131 else if substr (stat.devname, 1, 3) = "dsk" then do; 1132 if fips_disk (stat.devname) 1133 then stat_tablep = addr (fdisk_status_table_$fdisk_status_table_); 1134 else stat_tablep = addr (disk_status_table_$disk_status_table_); 1135 end; 1136 else if substr (stat.devname, 1, 3) = "opc" then stat_tablep = addr (opc_status_table_$opc_status_table_); 1137 else stat_tablep = null; 1138 1139 return; 1140 1141 end pick_status_table; 1142 1143 1144 /* This routine will determine the type of MPC and MTH we are dealing with, 1145* and then it will mask off meaningless certain bits in the detailed status 1146* depending on the type of IO error so that the detail status can be sorted 1147* properly. */ 1148 1149 process_tape_status: 1150 proc; 1151 1152 dcl mth_type fixed bin; 1153 dcl iom_number fixed bin (3); 1154 dcl chn_number fixed bin (6); 1155 1156 call config_$find_periph (substr (stat.devname, 1, 4), prph_tap_cardp); 1157 if prph_tap_cardp = null () then return; 1158 1159 if chn_sw then do; 1160 call parse_io_channel_name_ ((stat.chnname), iom_number, chn_number, code); 1161 call find_controller (iom_number, (chn_number)); 1162 end; 1163 else call find_controller (prph_tap_card.iom, (prph_tap_card.chan)); 1164 1165 if fips_controller then do; 1166 stat.detailed_status = stat.detailed_status & fips_tape_mask; 1167 return; 1168 end; 1169 1170 if mpc_cardp = null () then return; 1171 mpc_model = mpc_card.model; 1172 1173 /* Now determine the MTH type */ 1174 1175 if substr (stat.detailed_status, 27, 1) = "0"b then mth_type = 500; 1176 else if substr (stat.detailed_status, 53, 4) = "4"b4 then mth_type = 600; 1177 else if substr (stat.detailed_status, 53, 4) = "8"b4 then mth_type = 610; 1178 else if substr (stat.detailed_status, 53, 4) = "6"b4 then mth_type = 640; 1179 1180 1181 if mpc_model = 501 | mpc_model = 502 | mpc_model = 600 1182 then stat.detailed_status = stat.detailed_status & mtc500_mask; 1183 1184 else if mpc_model = 601 | mpc_model = 602 then stat.detailed_status = stat.detailed_status & mtp601_mask; 1185 1186 else if mpc_model = 610 | mpc_model = 611 then do; 1187 stat.detailed_status = stat.detailed_status & mtp610_mask; 1188 1189 if substr (stat.detailed_status, 17, 1) = "1"b 1190 then /* If NRZI then.. */ 1191 stat.detailed_status = 1192 stat.detailed_status & "ffffffffffffffffffffffffffffffffff80ffff008264ff0000"b4; 1193 1194 else if substr (stat.detailed_status, 17, 3) = "0"b 1195 then /* if PE (1600) */ 1196 stat.detailed_status = 1197 stat.detailed_status & "ffffffffffffffffffffffffffffffffff800000008267ff0000"b4; 1198 else if substr (stat.detailed_status, 17, 3) = "001"b then do; 1199 /* if GCR (6250) */ 1200 stat.detailed_status = 1201 stat.detailed_status & "ffffffffffffffffffffffffffffffffff8000fff20000ff00ff"b4; 1202 if substr (stat.detailed_status, 10, 1) = "1"b 1203 then /* if write op */ 1204 substr (stat.detailed_status, 158, 1) = "0"b; 1205 1206 else if substr (stat.detailed_status, 10, 1) = "0"b 1207 then /* if read op */ 1208 substr (stat.detailed_status, 156, 2) = "0"b; 1209 end; 1210 end; 1211 1212 if mth_type = 500 then stat.detailed_status = stat.detailed_status & mth500_mask; 1213 1214 else if mth_type = 600 then stat.detailed_status = stat.detailed_status & mth600_mask; 1215 1216 else if mth_type = 610 then stat.detailed_status = stat.detailed_status & mth610_mask; 1217 1218 else if mth_type = 640 then stat.detailed_status = stat.detailed_status & mth640_mask; 1219 1220 if tdbie_sw = "0"b 1221 then /* mask off data bit in err data */ 1222 stat.detailed_status = stat.detailed_status & "ffffffffffffffffffffffffffffffff001fffffffffffffffff"b4; 1223 1224 1225 return; 1226 end process_tape_status; 1227 1228 1229 process_prt_status: 1230 proc (prt_name); 1231 1232 dcl prt_name char (8); 1233 dcl ptr_model fixed bin; 1234 1235 1236 1237 if substr (stat.status, 1, 12) = "4201"b3 then do;/* Paper out ? */ 1238 stat.detailed_status = "0"b; 1239 return; 1240 end; 1241 1242 1243 /* Scan the config deck to determine the type of prt we are working on */ 1244 1245 1246 call config_$find_periph (substr (prt_name, 1, 4), prph_cardp); 1247 if prph_cardp = null () then return; 1248 ptr_model = prph_card.model; 1249 1250 if substr (stat.status, 1, 12) = "4310"b3 then do;/* Paper low ? */ 1251 if ptr_model = 1200 | ptr_model = 1600 1252 then if substr (stat.detailed_status, 61, 1) = "1"b then do; 1253 stat.detailed_status = "0"b; 1254 return; 1255 end; 1256 1257 if ptr_model = 901 | ptr_model = 1000 | ptr_model = 1201 1258 then if substr (stat.detailed_status, 97, 8) = "09"b4 then do; 1259 stat.detailed_status = "0"b; 1260 return; 1261 end; 1262 end; 1263 1264 if ptr_model = 1200 | ptr_model = 1600 then do; 1265 if substr (stat.status, 1, 12) = "4302"b3 | /* if alrt bef/aftr print */ 1266 substr (stat.status, 1, 12) = "4304"b3 then do; 1267 /* see if we need to mask off echo ck data */ 1268 /* ECHO CHECK ?? */ 1269 if fixed (substr (stat.detailed_status, 41, 2), 2) > 0 1270 then /* no mask */ 1271 return; 1272 1273 /* SHORT CKT */ 1274 if fixed (substr (stat.detailed_status, 81, 2), 2) > 0 1275 then /* no mask */ 1276 return; 1277 1278 end; /* mask off echo check short ckt ctrs */ 1279 1280 stat.detailed_status = stat.detailed_status & pr71_mask; 1281 end; 1282 1283 else if ptr_model = 901 | ptr_model = 1000 | ptr_model = 1201 1284 then stat.detailed_status = stat.detailed_status & pr54_mask; 1285 return; 1286 end process_prt_status; 1287 1288 1289 tally_details_disk_: 1290 proc; 1291 dcl temp1 char (256) var init (""); 1292 dcl cur_analysis char (256) var; 1293 dcl ca_port_str char (50) var init (""); 1294 dcl ret_str_len fixed bin; 1295 1296 call ioa_$rsnnl ("^[^2s^;CA ^1o, Port ^2d^/^]", ca_port_str, ret_str_len, disk_analysis.fips_controller, 1297 disk_analysis.CA, disk_analysis.PORT); 1298 1299 if analysis_string = "" then do; /* first time here for this status */ 1300 display_detail_count = display_detail_count + stat.count; 1301 if disk_analysis.is_interesting_disk 1302 then call ioa_$rs ("^vx^8x^v(^a ^)", temp1, analysis_char_count, indent, disk_analysis.num_analyzed, 1303 disk_analysis.analyses); 1304 analysis_string = ca_port_str || rtrim (temp1); 1305 1306 return; 1307 end; 1308 1309 if disk_analysis.is_interesting_disk 1310 then call ioa_$rs ("^vx^8x^v(^a ^)", temp1, analysis_char_count, indent, disk_analysis.num_analyzed, 1311 disk_analysis.analyses); 1312 1313 cur_analysis = ca_port_str || rtrim (temp1); 1314 1315 if unspec (analysis_string) ^= unspec (cur_analysis) then do; 1316 call ioa_ ("^vx^5d^3x^a", indent, display_detail_count, ltrim (analysis_string)); 1317 analysis_string = cur_analysis; 1318 display_detail_count = stat.count; 1319 unspec (cur_analysis) = "0"b; 1320 return; 1321 end; 1322 else display_detail_count = display_detail_count + stat.count; 1323 1324 return; 1325 end tally_details_disk_; 1326 1327 1328 tally_details_prt_: 1329 proc; 1330 dcl temp1 char (50) var init (""); 1331 dcl temp2 char (256) var init (""); 1332 dcl cur_analysis char (256) var; 1333 1334 1335 if analysis_string = "" then do; /* first time here for this status */ 1336 display_detail_count = display_detail_count + stat.count; 1337 1338 if prt_analysis.density ^= "" 1339 then call ioa_$rs ("^vx^8x^a", temp1, analysis_char_count, indent, prt_analysis.density); 1340 call ioa_$rs ("^vx^8x^v(^a ^)", temp2, analysis_char_count, indent, prt_analysis.num_analyzed, 1341 prt_analysis.analyses); 1342 1343 analysis_string = rtrim (temp1) || rtrim (temp2); 1344 1345 return; 1346 end; 1347 1348 if prt_analysis.density ^= "" 1349 then call ioa_$rs ("^vx^8x^a", temp1, analysis_char_count, indent, prt_analysis.density); 1350 call ioa_$rs ("^vx^8x^v(^a ^)", temp2, analysis_char_count, indent, prt_analysis.num_analyzed, 1351 prt_analysis.analyses); 1352 1353 cur_analysis = rtrim (temp1) || rtrim (temp2); 1354 1355 if unspec (analysis_string) ^= unspec (cur_analysis) then do; 1356 call ioa_ ("^vx^5d^3x^a", indent, display_detail_count, ltrim (analysis_string)); 1357 analysis_string = cur_analysis; 1358 display_detail_count = stat.count; 1359 unspec (cur_analysis) = "0"b; 1360 return; 1361 end; 1362 else display_detail_count = display_detail_count + stat.count; 1363 1364 return; 1365 end tally_details_prt_; 1366 1367 1368 tally_details_tape_: 1369 proc; 1370 dcl (temp1, tracks_hdr, tracks_str) char (150) var init (""); 1371 dcl temp2 char (256) var init (""); 1372 dcl cur_analysis char (256) var; 1373 dcl (i, tracks) fixed bin; 1374 dcl dbie_7track (7) fixed bin; 1375 1376 if analysis_string = "" then do; /* first time here for this status */ 1377 call ioa_$rs ("Operation: ^a, Density: ^d Tracks: ^d", temp1, analysis_char_count, tape_analysis.operation, 1378 tape_analysis.density, tape_analysis.num_tracks); 1379 1380 if tdbie_sw then do; 1381 if null_tape_tracks ^= tape_analysis.tracks_in_error then do; 1382 tracks = tape_analysis.num_tracks; 1383 call ioa_$rs ("^[^a^;^s^]^[^a^;^s^]", tracks_hdr, analysis_char_count, (tracks = 9), db_trk_str9, 1384 (tracks = 7), db_trk_str7); 1385 do i = 1 to 9; 1386 if tape_analysis.dbie_array (i) ^= 0 1387 then dbie_counts (i) = tape_analysis.dbie_array (i) * stat.count; 1388 end; 1389 if tracks = 9 1390 then call ioa_$rs ("^vx^6xError Count: ^v(^4d ^)", tracks_str, analysis_char_count, indent, 9, 1391 dbie_counts); 1392 1393 else do; /* convert array */ 1394 do i = 3 to 9; 1395 dbie_7track (i - 3) = dbie_counts (i); 1396 end; 1397 call ioa_$rs ("^vx^6xError Count: ^v(^4d ^)", tracks_str, analysis_char_count, indent, 7, 1398 dbie_7track); 1399 end; 1400 1401 end; 1402 end; 1403 1404 if tape_analysis.num_analyzed > 0 1405 then call ioa_$rsnnl ("^vx^8x^v(^a ^)", temp2, analysis_char_count, indent, tape_analysis.num_analyzed, 1406 tape_analysis.analyses); 1407 1408 analysis_string = rtrim (temp1) || rtrim (temp2); 1409 track_analysis = rtrim (tracks_hdr) || rtrim (tracks_str); 1410 display_detail_count = stat.count; 1411 return; 1412 end; 1413 1414 call ioa_$rs ("Operation: ^a, Density: ^d Tracks: ^d", temp1, analysis_char_count, tape_analysis.operation, 1415 tape_analysis.density, tape_analysis.num_tracks); 1416 1417 if tdbie_sw then do; 1418 if null_tape_tracks ^= tape_analysis.tracks_in_error then do; 1419 1420 tracks = tape_analysis.num_tracks; 1421 call ioa_$rs ("^[^a^;^s^]^[^a^;^s^]", tracks_hdr, analysis_char_count, (tracks = 9), db_trk_str9, 1422 (tracks = 7), db_trk_str7); 1423 do i = 1 to 9; 1424 if tape_analysis.dbie_array (i) ^= 0 1425 then dbie_counts (i) = dbie_counts (i) + (tape_analysis.dbie_array (i) * stat.count); 1426 end; 1427 if tracks = 9 1428 then call ioa_$rs ("^vx^6xError Count: ^v(^4d ^)", tracks_str, analysis_char_count, indent, 9, 1429 dbie_counts); 1430 1431 else do; /* convert array */ 1432 do i = 3 to 9; 1433 dbie_7track (i - 3) = dbie_counts (i); 1434 end; 1435 call ioa_$rs ("^vx^6xError Count: ^v(^4d ^)", tracks_str, analysis_char_count, indent, 7, 1436 dbie_7track); 1437 end; 1438 1439 end; 1440 end; 1441 1442 if tape_analysis.num_analyzed > 0 1443 then call ioa_$rsnnl ("^vx^8x^v(^a ^)", temp2, analysis_char_count, indent, tape_analysis.num_analyzed, 1444 tape_analysis.analyses); 1445 1446 cur_analysis = rtrim (temp1) || rtrim (temp2); 1447 track_analysis = rtrim (tracks_hdr) || rtrim (tracks_str); 1448 if unspec (analysis_string) ^= unspec (cur_analysis) then do; 1449 call ioa_ ("^vx^5d^3x^a", indent, display_detail_count, analysis_string); 1450 analysis_string = cur_analysis; 1451 display_detail_count = stat.count; 1452 return; 1453 end; 1454 else display_detail_count = display_detail_count + stat.count; 1455 1456 return; 1457 end tally_details_tape_; 1458 1459 find_controller: 1460 proc (a_iom, a_chan); 1461 dcl a_iom fixed bin (3); 1462 dcl a_chan fixed bin (8); 1463 1464 fips_controller = "0"b; 1465 ipc_cardp = null (); 1466 mpc_cardp = null (); 1467 do while ("1"b); 1468 call config_$find ("mpc", mpc_cardp); 1469 if mpc_cardp = null () then goto check_for_fips; 1470 do i = 1 to hbound (mpc_card.port, 1) while (mpc_card.port (i).iom ^= -1); 1471 if (a_iom = mpc_card.port (i).iom) & (a_chan >= mpc_card.port (i).chan) 1472 & (a_chan < mpc_card.port (i).chan + mpc_card.port (i).nchan) 1473 then return; 1474 end; 1475 end; 1476 1477 check_for_fips: 1478 do while ("1"b); 1479 call config_$find ("ipc", ipc_cardp); 1480 if ipc_cardp = null () then return; 1481 if (a_iom = ipc_card.iom) & (a_chan >= ipc_card.chan) & (a_chan < ipc_card.chan + ipc_card.nchan) then do; 1482 fips_controller = (ipc_card.type = "fips"); 1483 return; 1484 end; 1485 end; 1486 end find_controller; 1487 1488 fips_disk: 1489 proc (disk_name) returns (bit (1)); 1490 1491 dcl disk_name char (8) aligned; 1492 dcl i fixed bin; 1493 1494 1495 do i = 1 to hbound (disk_list, 1) while (disk_list (i).valid); 1496 if disk_list (i).device_name = disk_name then return (disk_list (i).fips); 1497 end; 1498 1499 if i > hbound (disk_list, 1) then i = hbound (disk_list, 1); 1500 disk_list (i).valid = "1"b; 1501 disk_list (i).device_name = disk_name; 1502 disk_list (i).fips = ""b; 1503 1504 call config_$find_periph (substr (disk_name, 1, 4), prph_dsk_cardp); 1505 if prph_dsk_cardp = null () then return (""b); 1506 1507 call find_controller (prph_dsk_card.iom, prph_dsk_card.chan); 1508 1509 disk_list (i).fips = fips_controller; 1510 return (fips_controller); 1511 end fips_disk; 1512 1 1 /* Begin include file ..... syserr_message.incl.pl1 */ 1 2 1 3 /* Format of a syserr message */ 1 4 1 5 /* Created October 1975 by Larry Johnson */ 1 6 1 7 dcl syserr_msgp ptr; /* Base for include file */ 1 8 1 9 dcl 1 syserr_msg based (syserr_msgp) aligned, 1 10 2 seq_num fixed bin (35), /* Sequence number of this message. */ 1 11 2 time fixed bin (71) unal, /* Time message logged at */ 1 12 2 code fixed bin (11) unal, /* Syserr code associated with this message. */ 1 13 2 text_len fixed bin (11) unal, /* Length of message text in ASCII characters. */ 1 14 2 data_size fixed bin (11) unal, /* Size of binary data */ 1 15 2 data_code fixed bin (11) unal, /* Code identifying message type. */ 1 16 2 pad bit (60) unal, /* RESERVED! */ 1 17 2 text char (0 refer (syserr_msg.text_len)), /* Text of expanded message - kept in ASCII. */ 1 18 2 data (0 refer (syserr_msg.data_size)) bit (36); /* Binary data area */ 1 19 1 20 1 21 /* End include file ..... syserr_message.incl.pl1 */ 1513 1514 2 1 /* Begin include file ..... io_syserr_msg.incl.pl1 */ 2 2 2 3 /* Created October 1975 by Larry Johnson */ 2 4 /* Modified 11/11/76 by Noel I. Morris */ 2 5 /* Modified November 1979 by Larry Johnson for detailed status */ 2 6 /* Modified February 1981 by Chris Jones to use channel names */ 2 7 2 8 /* This include file defines the format of the syserr message generated for I/O errors. */ 2 9 /* This message is also defined (size and type) by the "io_msg" and "io_msg_detail" 2 10* constants in syserr_binary_def.incl.pl1 */ 2 11 2 12 dcl io_msgp ptr; /* Pointer to syserr message structure */ 2 13 2 14 dcl 1 io_msg aligned based (io_msgp), 2 15 ( 2 16 2 level bit (3), /* Level of interrupt being logged */ 2 17 2 fill1 bit (9), 2 18 2 device bit (6), /* Device which caused error */ 2 19 2 time_out bit (1), /* Set if error caused by channel timeout */ 2 20 2 type bit (2), /* Type of last DCW */ 2 21 2 command bit (6), /* Command being executed by device */ 2 22 2 fill2 bit (3), 2 23 2 count bit (6) 2 24 ) unal, /* Count of message repetitions */ 2 25 2 channel char (8), /* Channel over which interrupt came */ 2 26 2 status bit (36), /* First word of IOM status */ 2 27 2 devname char (4), /* Device name */ 2 28 2 detailed_status bit (216) unaligned; /* Optional detailed device status */ 2 29 2 30 /* End include file ..... io_syserr_msg.incl.pl1 */ 1515 1516 3 1 3 2 /* Begin include file ...... iom_stat.incl.pl1 */ 3 3 /* Last modified on 10/31/74 by Noel I. Morris */ 3 4 3 5 dcl statp ptr; /* pointer to status */ 3 6 3 7 dcl 1 status based (statp) aligned, /* IOM status information */ 3 8 (2 t bit (1), /* set to "1"b by IOM */ 3 9 2 power bit (1), /* non-zero if peripheral absent or power off */ 3 10 2 major bit (4), /* major status */ 3 11 2 sub bit (6), /* substatus */ 3 12 2 eo bit (1), /* even/odd bit */ 3 13 2 marker bit (1), /* non-zero if marker status */ 3 14 2 soft bit (2), /* software status */ 3 15 2 initiate bit (1), /* initiate bit */ 3 16 2 abort bit (1), /* software abort bit */ 3 17 2 channel_stat bit (3), /* IOM channel status */ 3 18 2 central_stat bit (3), /* IOM central status */ 3 19 2 mbz bit (6), 3 20 2 rcount bit (6), /* record count residue */ 3 21 2 address bit (18), /* DCW address residue */ 3 22 2 char_pos bit (3), /* character position residue */ 3 23 2 r bit (1), /* non-zero if reading */ 3 24 2 type bit (2), /* type of last DCW */ 3 25 2 tally bit (12)) unal; /* DCW tally residue */ 3 26 3 27 dcl 1 faultword based (statp) aligned, /* system fault word */ 3 28 (2 mbz1 bit (9), 3 29 2 channel bit (9), /* channel number */ 3 30 2 serv_req bit (5), /* service request */ 3 31 2 mbz2 bit (3), 3 32 2 controller_fault bit (4), /* system controller fault code */ 3 33 2 io_fault bit (6)) unal; /* I/O fault code */ 3 34 3 35 dcl 1 special_status based (statp) aligned, /* special status from PSIA */ 3 36 (2 t bit (1), /* entry present bit */ 3 37 2 channel bit (8), /* channel number */ 3 38 2 pad1 bit (3), 3 39 2 device bit (6), /* device address */ 3 40 2 pad2 bit (1), 3 41 2 byte2 bit (8), /* device dependent information */ 3 42 2 pad3 bit (1), 3 43 2 byte3 bit (8)) unal; /* device dependent information */ 3 44 3 45 /* End of include file iom_stat.incl.pl1 */ 3 46 1517 1518 4 1 /* BEGIN INCLUDE FILE .. syserr_binary_def.incl.pl1 */ 4 2 4 3 /* This include file has an ALM version, keep 'em in sync. */ 4 4 4 5 /* format: off */ 4 6 4 7 /* Modified January 1984 by Paul Farley to add an array of entry values 4 8* to be examined by display_cpu_error. */ 4 9 /* Modified October 1984 by EJ Sharpe to include SB_audit_message */ 4 10 /* Modified January 1985 by EJ Sharpe for SB_char_data_classes */ 4 11 /* Modified 1985-01-25, BIM: added ring alarm audit support. */ 4 12 /* Modified 1985-02-20, EJ Sharpe: added SB_ibm3270_mde, syserr_binary_(seg vol)damage_class, 4 13* also changed some codes to "SB_unused_NN" - see line comments */ 4 14 4 15 /* In the future, these will be the only constants needed in this include 4 16*file. They are the binary data class strings for messages in the new format 4 17*syserr logs. The names are all of the form SB_ZZZZZZZ_data_class where 4 18*ZZZZZZZ is the value of the data class string. Message expanders are named 4 19*expand_ZZZZZZZ_msg_ and are referenced by the log perusal tools. */ 4 20 4 21 dcl ( /* include file name */ 4 22 SB_io_status_data_class init ("io_status"), /* io_syserr_msg */ 4 23 SB_hwfault_data_class init ("hwfault"), /* syserr_fault_msg */ 4 24 SB_mos_data_class init ("mos"), /* scr */ 4 25 SB_segdamage_data_class init ("segdamage"), /* segdamage_msg */ 4 26 SB_voldamage_data_class init ("voldamage"), /* segdamage_msg (first two words) */ 4 27 SB_mdc_del_uidpath_data_class init ("mdc_del_uidpath"), /* none - 16 word UID path */ 4 28 SB_mmdam_data_class init ("mmdam"), /* syserr_mmdam_msg */ 4 29 SB_mpc_poll_data_class init ("mpc_poll"), /* poll_mpc_data */ 4 30 SB_fnp_poll_data_class init ("fnp_poll"), /* poll_fnp_data */ 4 31 SB_config_deck_data_class init ("config_deck"), /* config_deck */ 4 32 SB_vtoce_data_class init ("vtoce"), /* vtoce */ 4 33 SB_access_audit_data_class init ("access_audit"), /* access_audit_bin_header */ 4 34 SB_ibm3270_mde_data_class init ("ibm3270_mde") /* ibm3270_mpx_data */ 4 35 ) static internal char (16) varying options (constant); 4 36 4 37 4 38 /************************ 4 39*Once the syserr$binary is replaced with something that takes real data classes 4 40*and all system modules and tools are upgraded to use the new interface, the 4 41*rest of this include file may be discarded. 4 42*************************/ 4 43 4 44 /* The limit of 36 is arbitrary- there is no reason that it can not be 4 45* extended at any time. */ 4 46 4 47 dcl ( 4 48 SB_disk_err init (1), SBL_disk_err init (5), 4 49 SB_hw_fault init (2), SBL_hw_fault init (176), 4 50 SB_io_err init (3), SBL_io_err init (5), 4 51 SB_unused_4 init (4), SBL_unused_4 init (1), /* was "mos_poll" (mos poll time) */ 4 52 SB_mos_err init (5), SBL_mos_err init (2), /* mos memory error data */ 4 53 SB_unused_6 init (6), SBL_unused_6 init (1), /* was "bulk_status" (bulk dcb status) */ 4 54 SB_unused_7 init (7), SBL_unused_7 init (1), /* was "bulk_csb" (bulk csb status) */ 4 55 SB_unused_8 init (8), SBL_unused_8 init (3), /* was "free_st_1" */ 4 56 SB_unused_9 init (9), SBL_unused_9 init (2), /* was "free_st_2" */ 4 57 SB_unused_10 init (10), SBL_unused_10 init (21), /* was "unpr_add" */ 4 58 SB_zerpag init (11), SBL_zerpag init (20), 4 59 SB_unused_12 init (12), SBL_unused_12 init (20), /* was "unpr_add" */ 4 60 SB_vtoc_salv_dam init (13), SBL_vtoc_salv_dam init (20), 4 61 SB_unused_14 init (14), SBL_unused_14 init (20), /* was "page_rw_err" */ 4 62 SB_unused_15 init (15), SBL_unused_15 init (3), /* was "ruad" */ 4 63 SB_random_segdamage init (16), SBL_random_segdamage init (20), 4 64 SB_read_nc init (17), SBL_read_nc init (2), 4 65 SB_unused_18 init (18), SBL_unused_18 init (2), /* was "vtoc_err" */ 4 66 SB_mdc_del_uidpath init (19), SBL_mdc_del_uidpath init (16), 4 67 SB_ocdcm_err init (20), SBL_ocdcm_err init (5), 4 68 SB_mmdam init (21), SBL_mmdam init (2), 4 69 SB_verify_lock init (22), SBL_verify_lock init (176), 4 70 SB_io_err_detail init (23), SBL_io_err_detail init (11), 4 71 SB_mpc_poll init (24), SBL_mpc_poll init (256) /* max */, 4 72 SB_fnp_poll init (25), SBL_fnp_poll init (256) /* max */, 4 73 SB_config_deck init (26), SBL_config_deck init (256) /* 16 cards at 16 words */, 4 74 SB_vtoce init (27), SBL_vtoce init (192), /* 1 VTOCE */ 4 75 SB_access_audit init (28), SBL_access_audit init (256), /* max */ 4 76 SB_ibm3270_mde init (35), SBL_ibm3270_mde init (256), /* max */ 4 77 SB_end_of_table init (36), SBL_end_of_table init (1) 4 78 ) internal static options (constant) fixed bin; 4 79 4 80 4 81 /* The following array is a mapping of the old syserr$binary codes into the 4 82*new data classes for MR11. It is primarily used by syserr_copy to translate 4 83*the binary data codes stored in the wired syserr log (see above) into the data 4 84*classes needed by the ring-0 paged syserr log which is a new format log. It 4 85*is also used by syserr_log_util_ to translate the data classes back into the 4 86*corresponding binary code (for tools not yet upgraded to deal with the new 4 87*format log messages). */ 4 88 4 89 dcl SB_char_data_classes (36) char (16) varying internal static options (constant) 4 90 init ( "io_status", /* 1 */ 4 91 "hwfault", /* 2 */ 4 92 "io_status", /* 3 */ 4 93 "unused_4", /* 4 */ 4 94 "mos", /* 5 */ 4 95 4 96 "unused_6", /* 6 */ 4 97 "unused_7", /* 7 */ 4 98 "unused_8", /* 8 */ 4 99 "unused_9", /* 9 */ 4 100 "unused_10", /* 10 */ 4 101 4 102 "segdamage", /* 11 */ 4 103 "unused_12", /* 12 */ 4 104 "segdamage", /* 13 */ 4 105 "unused_14", /* 14 */ 4 106 "unused_15", /* 15 */ 4 107 4 108 "segdamage", /* 16 */ 4 109 "voldamage", /* 17 */ 4 110 "unused_18", /* 18 */ 4 111 "mdc_del_uidpath", /* 19 */ 4 112 "io_status", /* 20 */ 4 113 4 114 "mmdam", /* 21 */ 4 115 "hwfault", /* 22 */ 4 116 "io_status", /* 23 */ 4 117 "mpc_poll", /* 24 */ 4 118 "fnp_poll", /* 25 */ 4 119 4 120 "config_deck", /* 26 */ 4 121 "vtoce", /* 27 */ 4 122 "access_audit", /* 28 */ 4 123 "unused_29", /* 29 */ 4 124 "unused_30", /* 30 */ 4 125 "unused_31", /* 31 */ 4 126 "unused_32", /* 32 */ 4 127 "unused_33", /* 33 */ 4 128 "unused_34", /* 34 */ 4 129 "ibm3270_mde", /* 35 */ 4 130 "unused_36" /* 36 */ 4 131 ); 4 132 4 133 4 134 /* format: on */ 4 135 4 136 /* These constants are used by various tools which analyze syserr messages and 4 137*still call the old interface "syserr_log_util_". */ 4 138 4 139 dcl syserr_binary_mos_mask init ("060000000000"b3) bit (36) static options (constant); 4 140 dcl syserr_binary_seg_damage_mask init ("000374000000"b3) bit (36) static options (constant); 4 141 dcl syserr_binary_vol_damage_mask init ("003413000000"b3) bit (36) static options (constant); 4 142 dcl syserr_binary_address_damage_mask init ("002010000000"b3) bit (36) static options (constant); 4 143 4 144 dcl display_cpu_error_binary_defs (2) init ( 4 145 2, /** SB_hw_fault */ 4 146 22 /** SB_verify_lock */ 4 147 ) internal static options (constant) fixed bin; 4 148 4 149 /* END INCLUDE FILE syserr_binary_def.incl.pl1 */ 1519 1520 5 1 /* BEGIN INCLUDE FILE area_info.incl.pl1 12/75 */ 5 2 5 3 dcl area_info_version_1 fixed bin static init (1) options (constant); 5 4 5 5 dcl area_infop ptr; 5 6 5 7 dcl 1 area_info aligned based (area_infop), 5 8 2 version fixed bin, /* version number for this structure is 1 */ 5 9 2 control aligned like area_control, /* control bits for the area */ 5 10 2 owner char (32) unal, /* creator of the area */ 5 11 2 n_components fixed bin, /* number of components in the area (returned only) */ 5 12 2 size fixed bin (18), /* size of the area in words */ 5 13 2 version_of_area fixed bin, /* version of area (returned only) */ 5 14 2 areap ptr, /* pointer to the area (first component on multisegment area) */ 5 15 2 allocated_blocks fixed bin, /* number of blocks allocated */ 5 16 2 free_blocks fixed bin, /* number of free blocks not in virgin */ 5 17 2 allocated_words fixed bin (30), /* number of words allocated in the area */ 5 18 2 free_words fixed bin (30); /* number of words free in area not in virgin */ 5 19 5 20 dcl 1 area_control aligned based, 5 21 2 extend bit (1) unal, /* says area is extensible */ 5 22 2 zero_on_alloc bit (1) unal, /* says block gets zerod at allocation time */ 5 23 2 zero_on_free bit (1) unal, /* says block gets zerod at free time */ 5 24 2 dont_free bit (1) unal, /* debugging aid, turns off free requests */ 5 25 2 no_freeing bit (1) unal, /* for allocation method without freeing */ 5 26 2 system bit (1) unal, /* says area is managed by system */ 5 27 2 pad bit (30) unal; 5 28 5 29 /* END INCLUDE FILE area_info.incl.pl1 */ 1521 1522 6 1 /* Begin include file ..... analyze_det_stat_info.incl.pl1 */ 6 2 6 3 6 4 /****^ HISTORY COMMENTS: 6 5* 1) change(85-09-09,Farley), approve(85-09-09,MCR6979), 6 6* audit(86-03-05,Coppola), install(86-03-21,MR12.0-1033): 6 7* Add support of FIPS 6 8* disk and tape. 6 9* END HISTORY COMMENTS */ 6 10 6 11 /* Describes format of structures returned by analyze_detail_stat_ */ 6 12 /* Prepared Jan 29, 1981 by Rich Coppola */ 6 13 /* Modified July 1985 by Paul Farley for FIPS disk/tape.. */ 6 14 6 15 dcl analyze_det_stat_info_version_1 fixed bin static init (1) options (constant); 6 16 dcl analyze_det_stat_info_version_2 fixed bin static init (2) options (constant); 6 17 6 18 dcl tape_analp ptr; /* ptr to analyzed tape detail stats */ 6 19 dcl prt_analp ptr; /* ptr to printer analysis */ 6 20 dcl disk_analp ptr; /* ptr to disk analysis */ 6 21 dcl rdr_pun_analp ptr; /* ptr to rdr/pun analysis */ 6 22 6 23 6 24 dcl 1 tape_analysis based (tape_analp), 6 25 2 tape_analysis_version fixed bin, /* Version Number 2 */ 6 26 2 num_analyzed fixed bin, 6 27 2 is_interesting_tape bit (1) unal, 6 28 2 fips_controller bit (1) unal, 6 29 2 pad bit (34) unal, 6 30 2 mth_model char (8), /* MTH Model Number */ 6 31 2 num_tracks fixed bin, 6 32 2 tracks_in_error char (18), /* defines the data bit in error 6 33* for data alert stati */ 6 34 2 dbie_array (9) fixed bin, /* array to denote data bit in error cnt */ 6 35 2 modes, 6 36 3 density fixed bin, /* 800, 1600, 6250 bpi */ 6 37 3 operation char (7) var, /* reading/writing/rewinding */ 6 38 2 analyses (number_analyzed refer (tape_analysis.num_analyzed)) char (65) var; 6 39 6 40 6 41 dcl 1 disk_analysis based (disk_analp), 6 42 2 disk_analysis_version fixed bin, /* Version Number 2 */ 6 43 2 num_analyzed fixed bin, 6 44 2 is_interesting_disk bit (1) unal, 6 45 2 fips_controller bit (1) unal, 6 46 2 pad bit (34) unal, 6 47 2 dsk_model char (7) var, 6 48 2 CA fixed bin, 6 49 2 PORT fixed bin, 6 50 2 analyses (number_analyzed refer (disk_analysis.num_analyzed)) char (50) var; 6 51 6 52 dcl 1 prt_analysis based (prt_analp), 6 53 2 prt_analysis_version fixed bin, /* Version Number 1 */ 6 54 2 num_analyzed fixed bin, 6 55 2 is_interesting_prt bit (1), 6 56 2 prt_model char (7) var, 6 57 2 density char (6), /* 6 or 8 lpi */ 6 58 2 analyses (number_analyzed refer (prt_analysis.num_analyzed)) char (40) var; 6 59 6 60 dcl 1 rdr_pun_analysis based (rdr_pun_analp), 6 61 2 rdr_pun_analysis_version fixed bin, /* Version Number 1 */ 6 62 2 num_analyzed fixed bin, 6 63 2 is_interesting_rdr_pun bit (1), 6 64 2 rdr_pun_model char (6), 6 65 2 analyses (number_analyzed refer (rdr_pun_analysis.num_analyzed)) char (40) var; 6 66 6 67 6 68 /* End include file analyze_det_stat_info.incl.pl1 */ 1523 1524 7 1 /* BEGIN INCLUDE FILE ... config_prph_tap_card.incl.pl1 */ 7 2 7 3 dcl prph_tap_cardp ptr; /* Pointer to a PRPH TAPx card. */ 7 4 7 5 dcl 1 prph_tap_card based (prph_tap_cardp) aligned, /* PRPH TAPx card declaration */ 7 6 2 word char (4), /* "prph" */ 7 7 2 name char (4), /* "tapX" */ 7 8 2 iom fixed bin (3), /* IOM number */ 7 9 2 chan fixed bin (8), /* channel number */ 7 10 2 nchan fixed bin, /* number of channels */ 7 11 7 12 2 group (5), 7 13 3 model fixed bin, /* model number */ 7 14 3 ndrives fixed bin, /* number of drives */ 7 15 7 16 2 type_word aligned, 7 17 3 field_type (14) bit (2) unaligned, /* type of each field; see config_deck.incl.pl1 */ 7 18 3 pad1 bit (4) unaligned, 7 19 3 n_fields fixed bin (4) unsigned unaligned; /* number of fields used on card */ 7 20 7 21 dcl 1 prph_tap_card_array aligned based (prph_tap_cardp), /* Overlay for drive group array */ 7 22 2 pad1 (5) bit (36) aligned, 7 23 2 group (divide (max (0, (prph_tap_card.n_fields - 4)), 2, 17, 0)), 7 24 3 model fixed bin, /* model number */ 7 25 3 ndrives fixed bin; /* number of drives */ 7 26 7 27 /* END INCLUDE FILE ... config_prph_tap_card.incl.pl1 */ 1525 1526 8 1 /* BEGIN INCLUDE FILE ... config_prph_dsk_card.incl.pl1 ... 11/27/80 W. Olin Sibert */ 8 2 8 3 dcl prph_dsk_cardp ptr; /* Pointer to a PRPH DSKx card. */ 8 4 8 5 dcl 1 prph_dsk_card based (prph_dsk_cardp) aligned, /* PRPH DSKx card declaration */ 8 6 2 word char (4), /* "prph" */ 8 7 2 name char (4), /* "dskX" */ 8 8 2 iom fixed bin (3), /* IOM number */ 8 9 2 chan fixed bin (8), /* channel number */ 8 10 2 nchan fixed bin, /* number of channels */ 8 11 8 12 2 group (5), 8 13 3 model fixed bin, /* model number */ 8 14 3 ndrives fixed bin, /* number of drives */ 8 15 8 16 2 type_word aligned, 8 17 3 field_type (14) bit (2) unaligned, /* type of each field; see config_deck.incl.pl1 */ 8 18 3 pad1 bit (4) unaligned, 8 19 3 n_fields fixed bin (4) unsigned unaligned; /* number of fields used on card */ 8 20 8 21 dcl 1 prph_dsk_card_array aligned based (prph_dsk_cardp), /* Overlay for drive group array */ 8 22 2 pad1 (5) bit (36) aligned, 8 23 2 group (divide (max (0, (prph_dsk_card.n_fields - 4)), 2, 17, 0)), 8 24 3 model fixed bin, /* model number */ 8 25 3 ndrives fixed bin; /* number of drives */ 8 26 8 27 /* END INCLUDE FILE ... config_prph_dsk_card.incl.pl1 */ 1527 1528 9 1 /* BEGIN INCLUDE FILE ... config_prph_card.incl.pl1 ... 11/27/80 W. Olin Sibert */ 9 2 9 3 dcl prph_cardp ptr; /* Pointer to a PRPH card. */ 9 4 9 5 dcl 1 prph_card based (prph_cardp) aligned, /* PRPH card declaration */ 9 6 2 word char (4), /* "prph" */ 9 7 2 name char (4), /* subsystem name */ 9 8 2 iom fixed bin (3), /* IOM number */ 9 9 2 chan fixed bin (8), /* channel number */ 9 10 2 model fixed bin, /* model number */ 9 11 2 state char (4), /* ON/OFF state */ 9 12 2 pad (9) bit (36) aligned, /* pad to 15 fields */ 9 13 9 14 2 type_word aligned, 9 15 3 field_type (14) bit (2) unaligned, /* type of each field; see config_deck.incl.pl1 */ 9 16 3 pad1 bit (4) unaligned, 9 17 3 n_fields fixed bin (4) unsigned unaligned; /* number of fields used on card */ 9 18 9 19 dcl PRPH_CARD_WORD char (4) aligned internal static options (constant) init ("prph"); 9 20 9 21 /* END INCLUDE FILE ... config_prph_card.incl.pl1 */ 1529 1530 10 1 /* Begin include file ...... fs_dev_types.incl.pl1 */ 10 2 10 3 /****^ HISTORY COMMENTS: 10 4* 1) change(85-09-09,Farley), approve(85-09-09,MCR6979), 10 5* audit(86-01-17,CLJones), install(86-03-21,MR12.0-1033): 10 6* Add support for FIPS 10 7* 3380. 10 8* 2) change(86-04-21,Fawcett), approve(86-04-21,MCR7383), 10 9* audit(86-05-15,Coppola), install(86-07-18,MR12.0-1098): 10 10* Add the support for subvolumes for the MSU3380 and MSU3390. 10 11* 3) change(86-10-02,Fawcett), approve(86-10-02,PBF7383), 10 12* audit(86-10-23,Farley), install(86-10-28,MR12.0-1200): 10 13* Changed 3390 to 3381, "d338" to "3380" & "d339" to "3381". 10 14* END HISTORY COMMENTS */ 10 15 10 16 /* Modified 5/19/76 by N. I. Morris */ 10 17 /* Modified 12/27/78 by Michael R. Jordan to correct MSS0500 information */ 10 18 /* Modified 4/79 by R.J.C. Kissel to add msu0501 information. */ 10 19 /* Modified '82 by BIM for needs_alt_part */ 10 20 /* Modified 4/84 by Chris Jones for FIPS disks */ 10 21 /* Modified 12/84 by Paul Farley for FIPS disks formatted for 512wd sectors */ 10 22 /* Modified 1/85 by Paul Farley to decrease the size of the 3380, until the 10 23* volmap and record stock can be expanded. */ 10 24 10 25 /* 10 26******************************************************************************** 10 27** * 10 28** WARNING: * 10 29** * 10 30** There exists fs_dev_types.incl.alm that must me updated when a new device * 10 31** type is added. * 10 32** * 10 33** There are other include files that contain arrays indexed by the device * 10 34** index obtained by references to MODELX or MODELN in this include file. * 10 35** These must be modified when a new device type is added: * 10 36** disk_pack.incl.pl1 * 10 37** fs_dev_types_sector.incl.pl1 (included in this include) * 10 38** * 10 39******************************************************************************** 10 40**/ 10 41 10 42 10 43 dcl (maxdevt init (9), /* maximum legal devt */ 10 44 bulkdevt init (1), /* bulk store devt */ 10 45 msu0500devt init (2), /* MSU0500 device type */ 10 46 msu0451devt init (3), /* MSU0451 device type */ 10 47 msu0450devt init (3), /* MSU0450 device type */ 10 48 msu0400devt init (4), /* MSU0400 device type */ 10 49 dsu191devt init (4), /* DSU191 device type */ 10 50 dsu190devt init (5), /* DSU190 device type */ 10 51 dsu181devt init (6), /* DSU181 device type */ 10 52 msu0501devt init (7), /* MSU0501 device type */ 10 53 fips3380devt init (8), /* 3380D FIPS device type */ 10 54 fips3381devt init (9) /* 3380E FIPS device type */ 10 55 ) fixed bin (4) static options (constant); 10 56 10 57 dcl MODEL (12) fixed bin static options (constant) init /* Known device model numbers */ 10 58 (0, 500, 451, 450, 400, 402, 191, 190, 181, 501, 3380, 3381); 10 59 10 60 dcl MODELX (12) fixed bin static options (constant) init /* translation from model number to device type */ 10 61 (1, 2, 3, 3, 4, 4, 4, 5, 6, 7, 8, 9); 10 62 10 63 dcl MODELN (9) fixed bin static options (constant) init /* translation from device type to model number */ 10 64 (0, 500, 451, 400, 190, 181, 501, 3380, 3381); 10 65 10 66 dcl device_names (9) char (4) aligned static options (constant) init /* device names indexed by device type */ 10 67 ("bulk", "d500", "d451", "d400", "d190", "d181", "d501", "3380", "3381"); 10 68 10 69 dcl first_dev_number (9) fixed bin (17) static options (constant) init /* First valid device_number */ 10 70 (1, 1, 1, 1, 1, 1, 1, 0, 0); 10 71 10 72 dcl fips_type_disk (9) bit (1) unal static options (constant) init /* ON => FIPS disk */ 10 73 ("0"b,"0"b,"0"b,"0"b,"0"b,"0"b,"0"b,"1"b,"1"b); 10 74 10 75 dcl media_removable (9) bit (1) static options (constant) init /* ON => demountable pack on device */ 10 76 ("0"b, "0"b, "1"b, "1"b, "1"b, "1"b, "0"b, "0"b, "0"b); 10 77 10 78 dcl shared_spindle (9) bit (1) static options (constant) init /* ON => 2 devices per spindle */ 10 79 ("0"b, "1"b, "0"b, "0"b, "0"b, "0"b, "1"b, "0"b, "0"b); 10 80 10 81 dcl needs_alt_part (9) bit (1) static options (constant) init /* ON => needs alternate partition to run alternate tracks */ 10 82 ("0"b, "0"b, "1"b, "1"b, "1"b, "1"b, "0"b, "0"b, "0"b); 10 83 10 84 dcl seek_command (9) bit (6) init /* Seek command: 00 => N/A, 30 => Seek_512, 34 => seek_64 */ 10 85 ("00"b3,"34"b3,"34"b3,"34"b3,"34"b3,"34"b3,"34"b3,"30"b3, "30"b3); 10 86 10 87 dcl rec_per_dev (9) fixed bin (21) static options (constant) init /* table of # of records on each device */ 10 88 (0, 38258, 38258, 19270, 14760, 4444, 67200, 112395, 224790); 10 89 10 90 dcl rec_per_sv (9) fixed bin static options (constant) init /* table of # of records on each subvol */ 10 91 (0, 38258, 38258, 19270, 14760, 4444, 67200, 56134, 74930); 10 92 10 93 dcl number_of_sv (9) fixed bin static options (constant) init /* table of subvolumes */ 10 94 (0, 0, 0, 0, 0, 0, 0, 2, 3); 10 95 10 96 dcl valid_sv_string char (3) static options (constant) init /* string of valid subvolume names */ 10 97 ("abc"); 10 98 10 99 dcl valid_sv_array (0:2) char (1) static options (constant) /* array of valid subvolume names */ 10 100 init ("a","b","c"); 10 101 10 102 dcl cyl_per_dev (9) fixed bin static options (constant) init /* table of # of cylinders on each device */ 10 103 (0, 814, 814, 410, 410, 202, 840, 885, 1770); 10 104 10 105 dcl cyl_per_sv (9) fixed bin static options (constant) init /* table of # of cylinders on each subvolume */ 10 106 (0, 814, 814, 410, 410, 202, 840, 442, 590); 10 107 10 108 dcl rec_per_cyl (9) fixed bin static options (constant) init /* table of # of records per cylinder on each device */ 10 109 (0, 47, 47, 47, 36, 22, 80, 127, 127); 10 110 10 111 dcl tracks_per_cyl (9) fixed bin static options (constant) init /* table of # of tracks per cylinder on each device */ 10 112 (0, 19, 19, 19, 19, 20, 20, 15, 15); 10 113 10 114 10 115 dcl first_rec_num (9) fixed bin static options (constant) init /* table of # of first record on each device */ 10 116 (0, 0, 0, 0, 0, 0, 0, 0, 0); 10 117 10 118 dcl last_rec_num (9) fixed bin (18) static options (constant) init /* table of # of last record on each device */ 10 119 (0, 38257, 38116, 19128, 14651, 4399, 67199, 112394, 224789); 10 120 10 121 dcl last_sv_rec_num (9) fixed bin (18) static options (constant) init /* table of # of last record on each subvolume */ 10 122 (0, 38257, 38116, 19128, 14651, 4399, 67199, 56133, 74929); 10 123 10 124 dcl first_sect_num (9) fixed bin (24) static options (constant) init /* table of # of first sector for each device */ 10 125 (0, 0, 0, 0, 0, 0, 0, 0, 0); 10 126 10 127 dcl last_sect_num (9) fixed bin (24) static options (constant) init /* table of # last sector number for each device */ 10 128 (0, 618639, 616359, 309319, 239722, 71999, 1075199, 225674, 451349); 10 129 10 130 dcl first_alt_sect_num (9) fixed bin (24) static options (constant) init /* table of # of first sector of alt partition */ 10 131 (0, 638400, 616360, 309320, 239723, 72000, 1075200, 225675, 451350); 10 132 10 133 dcl last_alt_sect_num (9) fixed bin (24) static options (constant) init /* table of # of last sector of alt partition */ 10 134 (0, 639919, 618639, 311599, 241489, 72719, 1077759, 225930, 451605); 10 135 10 136 dcl last_physical_sect_num (9) fixed bin (24) static options (constant) init /* table of # of last sector on device (includes T&D cylinders) */ 10 137 (0, 639919, 619399, 312359, 242249, 72359, 1077759, 225674, 451859); 10 138 10 139 dcl dev_time (9) float bin (27) static options (constant) init /* table of average access times for each device */ 10 140 (384e0, 33187e0, 33187e0, 34722e0, 46935e0, 52631e0, 33187e0, 26260e0, 26260e0); 10 141 11 1 /* Begin fs_dev_types_sector.incl.pl1 */ 11 2 11 3 11 4 /****^ HISTORY COMMENTS: 11 5* 1) change(86-04-21,Fawcett), approve(86-04-21,MCR7383), 11 6* audit(86-05-12,Coppola), install(86-07-18,MR12.0-1098): 11 7* Add the sector differance for devices that do 64 word IO and devices that 11 8* do 512 word IO. 11 9* END HISTORY COMMENTS */ 11 10 11 11 /* Created by R. A. Fawcett for 512 word IO. for procedures that do not 11 12* need all the data in fs_dev_types. This is also included in 11 13* fs_dev_types.incl.pl1 */ 11 14 11 15 dcl sect_per_cyl (9) fixed bin static options (constant) init /* table of # of sectors per cylinder on each device */ 11 16 (0, 760, 760, 760, 589, 360, 1280, 255, 255); 11 17 11 18 dcl sect_per_sv (9) fixed bin (24) static options (constant) init /* table of # of sectors per cylinder on each subvolume */ 11 19 (0, 0, 0, 0, 0, 0, 0, 112710, 150450); 11 20 11 21 dcl sect_per_rec (9) fixed bin static options (constant) init 11 22 /* table of # of sectors per record on each device */ 11 23 /* coresponding array in disk_pack.incl.pl1 called SECTORS_PER_RECORD */ 11 24 (0, 16, 16, 16, 16, 16, 16, 2, 2); 11 25 11 26 dcl sect_per_vtoc (9) fixed bin static options (constant) init 11 27 (0, 3, 3, 3, 3, 3, 3, 1, 1); 11 28 11 29 dcl vtoc_per_rec (9) fixed bin static options (constant) init 11 30 /* corespending array in disk_pack.incl.pl1 named VTOCES_PER_RECORD */ 11 31 (0, 5, 5, 5, 5, 5, 5, 2, 2); 11 32 11 33 dcl sect_per_track (9) fixed bin static options (constant) init /* table of # of sectors per track on each device */ 11 34 (0, 40, 40, 40, 31, 18, 64, 17, 17); 11 35 11 36 dcl words_per_sect (9) fixed bin static options (constant) init /* table of # of words per sector on each device */ 11 37 (0, 64, 64, 64, 64, 64, 64, 512, 512); 11 38 11 39 /* End fs_dev_types_sector.incl.pl1 */ 11 40 10 142 10 143 10 144 /* End of include file ...... fs_dev_types.incl.pl1 */ 1531 1532 12 1 /* BEGIN INCLUDE FILE ... config_ipc_card.incl.pl1 ... */ 12 2 /****^ HISTORY COMMENTS: 12 3* 1) change(85-09-09,Farley), approve(85-09-09,MCR6979), 12 4* audit(86-03-08,CLJones), install(86-03-21,MR12.0-1033): 12 5* Create IPC card. 12 6* END HISTORY COMMENTS */ 12 7 12 8 /* format: style4,delnl,insnl,indattr,ifthen,declareind10,dclind10 */ 12 9 12 10 dcl ipc_cardp ptr; /* card pointer */ 12 11 12 12 dcl 1 ipc_card aligned based (ipc_cardp), 12 13 2 word char (4), /* "ipc" */ 12 14 2 type char (4), /* Type of this IPC - e.g., "fips" */ 12 15 2 iom fixed bin (3), /* IOM number */ 12 16 2 chan fixed bin (8), /* Channel number. */ 12 17 2 nchan fixed bin, /* Number of logical channels on this channel. */ 12 18 2 pad (10) bit (36) aligned, /* Pad to 15 fields */ 12 19 2 type_word aligned, 12 20 3 field_type (14) bit (2) unaligned, /* type of each field; see config_deck.incl.pl1 */ 12 21 3 pad1 bit (4) unaligned, 12 22 3 n_fields fixed bin (4) unsigned unaligned; 12 23 /* number of fields used on card */ 12 24 12 25 dcl IPC_CARD_WORD char (4) aligned internal static options (constant) init ("ipc"); 12 26 dcl IPC_FIPS char (4) aligned internal static options (constant) init ("fips"); 12 27 12 28 /* END INCLUDE FILE ... config_ipc_card.incl.pl1 */ 1533 1534 13 1 /* BEGIN INCLUDE FILE ... config_mpc_card.incl.pl1 ... 11/27/80 W. Olin Sibert */ 13 2 13 3 dcl mpc_cardp ptr; /* Pointer to an MPC card. */ 13 4 13 5 dcl 1 mpc_card aligned based (mpc_cardp), 13 6 2 word char (4), /* "mpc" */ 13 7 2 name char (4), /* Name of this MPC - e.g., "mspa" */ 13 8 2 model fixed bin, /* Model of this MPC - e.g., 601. */ 13 9 2 port (4), /* Per port information. 12 fields total */ 13 10 3 iom fixed bin (3), /* IOM number */ 13 11 3 chan fixed bin (8), /* Channel number. */ 13 12 3 nchan fixed bin, /* Number of logical channels on this channel. */ 13 13 13 14 2 type_word aligned, 13 15 3 field_type (14) bit (2) unaligned, /* type of each field; see config_deck.incl.pl1 */ 13 16 3 pad1 bit (4) unaligned, 13 17 3 n_fields fixed bin (4) unsigned unaligned; /* number of fields used on card */ 13 18 13 19 dcl 1 mpc_card_array aligned based (mpc_cardp), /* Overlay for MPC port array */ 13 20 2 pad1 (3) bit (36) aligned, 13 21 2 port (divide (max (0, (mpc_card.n_fields - 2)), 3, 17, 0)), 13 22 3 iom fixed bin (3), /* IOM number */ 13 23 3 chan fixed bin (8), /* Channel number. */ 13 24 3 nchan fixed bin; /* Number of logical channels on this channel. */ 13 25 13 26 dcl MPC_CARD_WORD char (4) aligned internal static options (constant) init ("mpc"); 13 27 13 28 /* END INCLUDE FILE ... config_mpc_card.incl.pl1 */ 1535 1536 14 1 /* BEGIN INCLUDE FILE ... access_mode_values.incl.pl1 14 2* 14 3* Values for the "access mode" argument so often used in hardcore 14 4* James R. Davis 26 Jan 81 MCR 4844 14 5* Added constants for SM access 4/28/82 Jay Pattin 14 6* Added text strings 03/19/85 Chris Jones 14 7**/ 14 8 14 9 14 10 /* format: style4,delnl,insnl,indattr,ifthen,dclind10 */ 14 11 dcl ( 14 12 N_ACCESS init ("000"b), 14 13 R_ACCESS init ("100"b), 14 14 E_ACCESS init ("010"b), 14 15 W_ACCESS init ("001"b), 14 16 RE_ACCESS init ("110"b), 14 17 REW_ACCESS init ("111"b), 14 18 RW_ACCESS init ("101"b), 14 19 S_ACCESS init ("100"b), 14 20 M_ACCESS init ("010"b), 14 21 A_ACCESS init ("001"b), 14 22 SA_ACCESS init ("101"b), 14 23 SM_ACCESS init ("110"b), 14 24 SMA_ACCESS init ("111"b) 14 25 ) bit (3) internal static options (constant); 14 26 14 27 /* The following arrays are meant to be accessed by doing either 1) bin (bit_value) or 14 28* 2) divide (bin_value, 2) to come up with an index into the array. */ 14 29 14 30 dcl SEG_ACCESS_MODE_NAMES (0:7) init ("null", "W", "E", "EW", "R", "RW", "RE", "REW") char (4) internal 14 31 static options (constant); 14 32 14 33 dcl DIR_ACCESS_MODE_NAMES (0:7) init ("null", "A", "M", "MA", "S", "SA", "SM", "SMA") char (4) internal 14 34 static options (constant); 14 35 14 36 dcl ( 14 37 N_ACCESS_BIN init (00000b), 14 38 R_ACCESS_BIN init (01000b), 14 39 E_ACCESS_BIN init (00100b), 14 40 W_ACCESS_BIN init (00010b), 14 41 RW_ACCESS_BIN init (01010b), 14 42 RE_ACCESS_BIN init (01100b), 14 43 REW_ACCESS_BIN init (01110b), 14 44 S_ACCESS_BIN init (01000b), 14 45 M_ACCESS_BIN init (00010b), 14 46 A_ACCESS_BIN init (00001b), 14 47 SA_ACCESS_BIN init (01001b), 14 48 SM_ACCESS_BIN init (01010b), 14 49 SMA_ACCESS_BIN init (01011b) 14 50 ) fixed bin (5) internal static options (constant); 14 51 14 52 /* END INCLUDE FILE ... access_mode_values.incl.pl1 */ 1537 1538 1539 1540 end io_error_summary; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 10/21/92 1551.0 io_error_summary.pl1 >special_ldd>install>MR12.5-1037>io_error_summary.pl1 1513 1 08/18/77 1218.1 syserr_message.incl.pl1 >ldd>include>syserr_message.incl.pl1 1515 2 01/18/85 1053.2 io_syserr_msg.incl.pl1 >ldd>include>io_syserr_msg.incl.pl1 1517 3 01/10/75 1443.6 iom_stat.incl.pl1 >ldd>include>iom_stat.incl.pl1 1519 4 03/15/85 1053.1 syserr_binary_def.incl.pl1 >ldd>include>syserr_binary_def.incl.pl1 1521 5 06/11/76 1143.4 area_info.incl.pl1 >ldd>include>area_info.incl.pl1 1523 6 03/27/86 1219.9 analyze_det_stat_info.incl.pl1 >ldd>include>analyze_det_stat_info.incl.pl1 1525 7 11/08/82 1105.8 config_prph_tap_card.incl.pl1 >ldd>include>config_prph_tap_card.incl.pl1 1527 8 05/08/81 1953.7 config_prph_dsk_card.incl.pl1 >ldd>include>config_prph_dsk_card.incl.pl1 1529 9 10/31/84 1415.5 config_prph_card.incl.pl1 >ldd>include>config_prph_card.incl.pl1 1531 10 10/30/86 2110.5 fs_dev_types.incl.pl1 >ldd>include>fs_dev_types.incl.pl1 10-142 11 07/24/86 2151.8 fs_dev_types_sector.incl.pl1 >ldd>include>fs_dev_types_sector.incl.pl1 1533 12 03/27/86 1220.0 config_ipc_card.incl.pl1 >ldd>include>config_ipc_card.incl.pl1 1535 13 05/08/81 1953.6 config_mpc_card.incl.pl1 >ldd>include>config_mpc_card.incl.pl1 1537 14 04/11/85 1552.6 access_mode_values.incl.pl1 >ldd>include>access_mode_values.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. CA 6 based fixed bin(17,0) level 2 dcl 6-41 set ref 1296* CHN_LEN constant fixed bin(17,0) initial dcl 176 ref 340 DEV_LEN constant fixed bin(17,0) initial dcl 175 ref 340 342 IOC_LEN constant fixed bin(17,0) initial dcl 177 ref 344 MODEL 000036 constant fixed bin(17,0) initial array dcl 10-57 ref 1094 1095 MODELX 000022 constant fixed bin(17,0) initial array dcl 10-60 ref 1095 PORT 7 based fixed bin(17,0) level 2 dcl 6-41 set ref 1296* R_ACCESS_BIN constant fixed bin(5,0) initial dcl 14-36 ref 365 365 SB_disk_err constant fixed bin(17,0) initial dcl 4-47 ref 392 SB_io_err constant fixed bin(17,0) initial dcl 4-47 ref 392 SB_io_err_detail constant fixed bin(17,0) initial dcl 4-47 ref 392 SB_ocdcm_err constant fixed bin(17,0) initial dcl 4-47 ref 392 a_chan parameter fixed bin(8,0) dcl 1462 ref 1459 1471 1471 1481 1481 a_iom parameter fixed bin(3,0) dcl 1461 ref 1459 1471 1481 addr builtin function dcl 257 ref 276 346 348 359 359 636 641 775 775 862 863 954 954 954 956 967 1127 1128 1129 1130 1132 1134 1136 analyses 10 based varying char(40) array level 2 in structure "prt_analysis" dcl 6-52 in procedure "io_error_summary" set ref 1340* 1350* analyses 10 based varying char(50) array level 2 in structure "disk_analysis" dcl 6-41 in procedure "io_error_summary" set ref 1301* 1309* analyses 30 based varying char(65) array level 2 in structure "tape_analysis" dcl 6-24 in procedure "io_error_summary" set ref 1404* 1442* analysis_char_count 001737 automatic fixed bin(17,0) dcl 135 set ref 1301* 1309* 1338* 1340* 1348* 1350* 1377* 1383* 1389* 1397* 1404* 1414* 1421* 1427* 1435* 1442* analysis_string 001740 automatic varying char(256) initial dcl 136 set ref 136* 907* 982* 997 997 1014 1014 1299 1304* 1315 1316 1316 1317* 1335 1343* 1355 1356 1356 1357* 1376 1408* 1448 1449* 1450* analyze_detail_stat_ 000046 constant entry external dcl 224 ref 967 990 1005 analyze_detail_stat_$rsnnl 000044 constant entry external dcl 223 ref 1020 analyze_device_stat_$rsnnl 000042 constant entry external dcl 222 ref 928 area_control based structure level 1 dcl 5-20 area_info based structure level 1 dcl 5-7 set ref 277* area_info_version_1 constant fixed bin(17,0) initial dcl 5-3 ref 278 area_infop 002176 automatic pointer dcl 5-5 set ref 276* 277 278 279 280 281 282 283 284* 290 areap 16 based pointer level 2 in structure "area_info" dcl 5-7 in procedure "io_error_summary" set ref 281* 290 areap 001660 automatic pointer dcl 116 in procedure "io_error_summary" set ref 263* 290* 291 295 785 1118 1118* arg based char packed unaligned dcl 70 set ref 452 452 456 460 466 466 474 478 481 495 495 503 507* 517 532 532 532 534 534 534 536 538 538 540 540 542 542 543 543 546* 598 604* 606* arg_copy 002246 automatic varying char(10) dcl 596 set ref 598* 600* 606* arg_count 000123 automatic fixed bin(17,0) dcl 71 set ref 299* 300 579 585 arg_len 000122 automatic fixed bin(17,0) dcl 69 set ref 452 452 456 460 463 466 466 474 478 481 495 495 503 507 507 517 532 532 532 534 534 534 536 538 538 540 540 542 542 543 543 546 546 573* 598 604 604 606 606 arg_list_ptr 000124 automatic pointer dcl 72 set ref 298* 573* arg_no 000152 automatic fixed bin(17,0) initial dcl 90 set ref 90* 573* 575* 578* 578 579 584* 584 585 arg_ptr 000120 automatic pointer dcl 68 set ref 452 452 456 460 464 466 466 474 478 481 495 495 503 507 517 532 532 532 534 534 534 536 538 538 540 540 542 542 543 543 546 573* 598 604 606 auto_area_info 001666 automatic structure level 1 dcl 119 set ref 276 bin builtin function dcl 257 ref 643 652 682 682 bit builtin function dcl 257 ref 365 365 365 810 bit_idx 002351 automatic fixed bin(17,0) dcl 799 set ref 803* 810* break 002533 automatic bit(1) packed unaligned dcl 880 set ref 901* 904 929* bucket_no 002332 automatic fixed bin(17,0) dcl 625 set ref 775* 778 788 789 buckets_used 001735 automatic fixed bin(17,0) dcl 132 set ref 426* 430* 430 438* buffer 000672 automatic bit(36) array dcl 114 set ref 346 379 379 byte_idx 002404 automatic fixed bin(17,0) dcl 825 set ref 865* 866 866* bytes_wanted parameter fixed bin(17,0) dcl 798 ref 795 803 ca_port_str 003042 automatic varying char(50) initial dcl 1293 set ref 1293* 1296* 1304 1313 central_stat 0(21) based bit(3) level 2 packed packed unaligned dcl 3-7 set ref 354* chan 3 based fixed bin(8,0) level 2 in structure "prph_tap_card" dcl 7-5 in procedure "io_error_summary" ref 1163 chan 4 based fixed bin(8,0) array level 3 in structure "mpc_card" dcl 13-5 in procedure "io_error_summary" ref 846 846 1471 1471 chan 3 based fixed bin(8,0) level 2 in structure "ipc_card" dcl 12-12 in procedure "io_error_summary" ref 1481 1481 chan 3 based fixed bin(8,0) level 2 in structure "prph_dsk_card" dcl 8-5 in procedure "io_error_summary" set ref 1083* 1507* chan_no 002407 automatic fixed bin(8,0) dcl 828 set ref 833* 846 846 channel 1 based char(8) level 2 dcl 2-14 ref 646 channel_stat 0(18) based bit(3) level 2 packed packed unaligned dcl 3-7 set ref 353* chars_in_sort_info 001664 automatic fixed bin(17,0) dcl 118 set ref 293* 407 775* chn_name parameter char(8) dcl 1051 ref 1040 1080 chn_number 002620 automatic fixed bin(6,0) dcl 1154 in procedure "process_tape_status" set ref 1160* 1161 chn_number 002600 automatic fixed bin(6,0) dcl 1055 in procedure "convert_seek_addr" set ref 1080* 1081 chn_sw 000136 automatic bit(1) initial packed unaligned dcl 81 set ref 81* 340 543* 646 895* 929* 1079 1159 chnname 2 based char(8) level 3 dcl 187 set ref 646* 648* 929* 933* 1160 cleanup 002162 stack reference condition dcl 255 ref 267 code 000100 automatic fixed bin(35,0) dcl 57 set ref 269* 270 271* 284* 285 286* 304* 305 307* 308 313* 314 315* 321* 322 323* 329* 330 331* 359* 360 361* 366* 379* 381 382 383* 507* 508 510* 573* 574 575* 604* 605 606* 715* 833* 834 967* 969 990* 992 1005* 1007 1020* 1073* 1080* 1115* 1117* 1160* com_err_ 000016 constant entry external dcl 212 ref 271 286 315 323 331 361 383 469 486 498 510 522 546 553 559 575 600 606 command 0(21) based bit(6) level 2 in structure "io_msg" packed packed unaligned dcl 2-14 in procedure "io_error_summary" ref 682 682 command 12 based char(2) level 3 in structure "stat" packed packed unaligned dcl 187 in procedure "io_error_summary" set ref 682* 685* 917 917 929* config_$find 000064 constant entry external dcl 231 ref 840 1468 1479 config_$find_periph 000066 constant entry external dcl 232 ref 1075 1156 1246 1504 config_$find_peripheral 000070 constant entry external dcl 233 ref 833 config_deck$ 000140 external static fixed bin(17,0) dcl 254 set ref 359 359 control 1 based structure level 2 dcl 5-7 convert_date_to_binary_ 000060 constant entry external dcl 229 ref 604 convert_date_to_binary_$relative 000062 constant entry external dcl 230 ref 329 count 0(30) based bit(6) level 2 in structure "io_msg" packed packed unaligned dcl 2-14 in procedure "io_error_summary" ref 643 count based fixed bin(35,0) level 2 in structure "sort_list" dcl 181 in procedure "io_error_summary" set ref 274* 407 424* 791* 791 792 899 911 count 22 based fixed bin(17,0) level 2 in structure "stat" packed packed unaligned dcl 187 in procedure "io_error_summary" set ref 780* 780 787* 903 920 956* 1022* 1300 1318 1322 1336 1358 1362 1386 1410 1424 1451 1454 count_time 001722 automatic fixed bin(71,0) dcl 125 set ref 376* 397* 397 403 423 cpz_status_table_$cpz_status_table_ 000134 external static fixed bin(17,0) dcl 252 set ref 1130 crz_status_table_$crz_status_table_ 000136 external static fixed bin(17,0) dcl 253 set ref 1129 cu_$arg_count 000054 constant entry external dcl 227 ref 299 cu_$arg_list_ptr 000052 constant entry external dcl 226 ref 298 cu_$arg_ptr_rel 000056 constant entry external dcl 228 ref 573 cur_analysis 003207 automatic varying char(256) dcl 1332 in procedure "tally_details_prt_" set ref 1353* 1355 1357 1359* cur_analysis 003604 automatic varying char(256) dcl 1372 in procedure "tally_details_tape_" set ref 1446* 1448 1450 cur_analysis 002741 automatic varying char(256) dcl 1292 in procedure "tally_details_disk_" set ref 1313* 1315 1317 1319* cv_dec_check_ 000072 constant entry external dcl 234 ref 1073 cv_oct_check_ 000074 constant entry external dcl 235 ref 507 715 cyl 002551 automatic fixed bin(24,0) dcl 889 set ref 933* 934 934* cyl_ parameter fixed bin(24,0) dcl 1049 set ref 1040 1057* 1104* cyl_sw 000137 automatic bit(1) initial packed unaligned dcl 82 set ref 82* 538* 699 data based bit(36) array level 2 in structure "syserr_msg" dcl 1-9 in procedure "io_error_summary" set ref 641 data 0(01) based bit(8) array level 2 in structure "unpacked" packed packed unaligned dcl 819 in procedure "pack_detail" ref 866 data_code 4 based fixed bin(11,0) level 2 packed packed unaligned dcl 1-9 ref 392 392 392 392 data_size 3(24) based fixed bin(11,0) level 2 packed packed unaligned dcl 1-9 ref 631 719 date_time_ 000050 constant entry external dcl 225 ref 892 893 db_trk_str7 000052 constant char(49) initial packed unaligned dcl 173 set ref 1383* 1421* db_trk_str9 000067 constant char(58) initial packed unaligned dcl 170 set ref 1383* 1421* dbie_7track 003707 automatic fixed bin(17,0) array dcl 1374 set ref 1395* 1397* 1433* 1435* dbie_array 13 based fixed bin(17,0) array level 2 dcl 6-24 ref 1386 1386 1424 1424 dbie_counts 002047 automatic fixed bin(17,0) array dcl 139 set ref 908* 1386* 1389* 1395 1424* 1424 1427* 1433 define_area_ 000076 constant entry external dcl 236 ref 284 density 24 based fixed bin(17,0) level 3 in structure "tape_analysis" dcl 6-24 in procedure "io_error_summary" set ref 1377* 1414* density 6 based char(6) level 2 in structure "prt_analysis" packed packed unaligned dcl 6-52 in procedure "io_error_summary" set ref 1338 1338* 1348 1348* det_idx 002350 automatic fixed bin(17,0) dcl 799 set ref 802* 804 807* 807 811* 811 detail_string parameter char packed unaligned dcl 797 ref 795 804 detail_temp 002263 automatic char(71) packed unaligned dcl 622 set ref 761* 763* 765* detailed_bits 002353 automatic bit(216) initial packed unaligned dcl 800 set ref 800* 810* 813 detailed_status 13 based bit(216) level 3 in structure "stat" dcl 187 in procedure "io_error_summary" set ref 725* 728* 733* 735 742* 745 749* 753* 763* 765* 941 954 954 954 956 965 967 990 1005 1020 1166* 1166 1175 1176 1177 1178 1181* 1181 1184* 1184 1187* 1187 1189 1189* 1189 1194 1194* 1194 1198 1200* 1200 1202 1202* 1206 1206* 1212* 1212 1214* 1214 1216* 1216 1218* 1218 1220* 1220 1238* 1251 1253* 1257 1259* 1269 1274 1280* 1280 1283* 1283 detailed_status 5 based bit(216) level 2 in structure "io_msg" packed packed unaligned dcl 2-14 in procedure "io_error_summary" set ref 725 728 733 742 749 753 862 868* detailed_status_sw 000134 automatic bit(1) initial packed unaligned dcl 79 set ref 79* 356 532* 557 718 736 746 895 910 962 dev_cnt 000161 automatic fixed bin(17,0) initial dcl 94 set ref 94* 476* 476 478 483 656 657 dev_edit 002261 automatic picture(2) packed unaligned dcl 620 set ref 652* 653 dev_idx 002571 automatic fixed bin(17,0) dcl 1052 in procedure "convert_seek_addr" set ref 1098* 1100 1102 1103 1104 1105 dev_idx 002403 automatic fixed bin(17,0) dcl 825 in procedure "pack_detail" set ref 830* 830* 831* 855 855* 857 858 859 860 dev_idx_list 000431 automatic structure array level 1 dcl 105 set ref 266* 1061 1065 1065 dev_model 002574 automatic fixed bin(17,0) dcl 1053 set ref 1072* 1087 1089* 1092 1095 dev_name 002262 automatic char(3) packed unaligned dcl 621 set ref 720* 722 722 722 724 732 741 749 749 dev_no 002576 automatic fixed bin(17,0) dcl 1053 set ref 1073* 1089 1089 dev_no_index 002575 automatic fixed bin(17,0) dcl 1053 set ref 1072* 1088* 1088 1089 1089 dev_pack_list 000335 automatic structure array level 1 dcl 101 set ref 265* 830 855 855 device 1 000335 automatic char(4) array level 2 in structure "dev_pack_list" dcl 101 in procedure "io_error_summary" set ref 831 858* device 0(12) based bit(6) level 2 in structure "io_msg" packed packed unaligned dcl 2-14 in procedure "io_error_summary" ref 652 device_idx 3 000431 automatic fixed bin(17,0) array level 2 dcl 105 set ref 1068* 1094 1095* 1098 device_name 1 000431 automatic char(8) array level 2 in structure "dev_idx_list" dcl 105 in procedure "io_error_summary" set ref 1062 1067* device_name 1 000551 automatic char(8) array level 2 in structure "disk_list" dcl 109 in procedure "io_error_summary" set ref 1496 1501* devname 4 based char(4) level 2 in structure "io_msg" dcl 2-14 in procedure "io_error_summary" ref 645 devname based char(8) level 3 in structure "stat" dcl 187 in procedure "io_error_summary" set ref 645* 650 650 651* 653* 658 720 725* 746 763* 829 901 902 913 913 929* 933* 942 944* 966 967 988 990 1003 1005 1019 1019 1020 1127 1128 1129 1130 1131 1132* 1136 1156 1156 devreq 000164 automatic varying char(7) array dcl 97 set ref 478* 483 486 486 658 658 disk_analp 002204 automatic pointer dcl 6-20 set ref 994* 1296 1296 1296 1301 1301 1301 1309 1309 1309 disk_analysis based structure level 1 unaligned dcl 6-41 disk_list 000551 automatic structure array level 1 dcl 109 set ref 1495 1499 1499 disk_name parameter char(8) dcl 1491 in procedure "fips_disk" ref 1488 1496 1501 1504 1504 disk_name parameter char(8) dcl 1050 in procedure "convert_seek_addr" ref 1040 1062 1067 1073 1073 1075 1075 disk_status_table_$disk_status_table_ 000122 external static fixed bin(17,0) dcl 247 set ref 1134 display_detail_count 002041 automatic fixed bin(17,0) dcl 137 set ref 906* 982* 997* 1014* 1300* 1300 1316* 1318* 1322* 1322 1336* 1336 1356* 1358* 1362* 1362 1410* 1449* 1451* 1454* 1454 divide builtin function dcl 257 ref 1102 1104 do_pack 002405 automatic bit(1) packed unaligned dcl 826 set ref 835* 842* 848* 850* 859 dsk_mult_rec 7 based char(8) level 3 dcl 187 set ref 638* 702* 704* 918 918 932 934* dsk_sect 5 based fixed bin(24,0) level 3 dcl 187 set ref 637* 715* 933* dtstat based bit(8) array packed unaligned dcl 887 set ref 954 954 954 956* entryp 1 based pointer array level 2 packed packed unaligned dcl 181 set ref 792* 900 912 940 964 error_table_$badopt 000116 external static fixed bin(35,0) dcl 245 set ref 546* error_table_$end_of_info 000114 external static fixed bin(35,0) dcl 244 ref 382 error_table_$no_r_permission 000112 external static fixed bin(35,0) dcl 243 ref 366 extend 1 based bit(1) level 3 packed packed unaligned dcl 5-7 set ref 282* fdisk_status_table_$fdisk_status_table_ 000124 external static fixed bin(17,0) dcl 248 set ref 1132 fips 3 000551 automatic bit(1) array level 2 dcl 109 set ref 1496 1502* 1509* fips_controller 2(01) based bit(1) level 2 in structure "disk_analysis" packed packed unaligned dcl 6-41 in procedure "io_error_summary" set ref 1296* fips_controller 000142 automatic bit(1) initial packed unaligned dcl 85 in procedure "io_error_summary" set ref 85* 1085 1089 1165 1464* 1482* 1509 1510 fips_tape_mask 000116 constant bit(208) initial packed unaligned dcl 163 ref 1166 fixed builtin function dcl 257 ref 1269 1274 float builtin function dcl 257 ref 420 421 422 423 424 425 for_arg based char packed unaligned dcl 75 set ref 329* 331* for_len 000130 automatic fixed bin(17,0) dcl 74 set ref 329 329 331 331 463* for_ptr 000126 automatic pointer dcl 73 set ref 329 331 464* for_sw 000133 automatic bit(1) initial packed unaligned dcl 78 set ref 78* 328 461* 552 for_time 000150 automatic fixed bin(71,0) dcl 89 set ref 462* from_sw 000131 automatic bit(1) initial packed unaligned dcl 76 set ref 76* 312 453* from_time 000144 automatic fixed bin(71,0) dcl 87 set ref 318* 321* 329* 336 454* 892* get_temp_segment_ 000020 constant entry external dcl 213 ref 269 group 5 based structure array level 2 dcl 8-5 hash_index_ 000104 constant entry external dcl 239 ref 775 hash_table based pointer array packed unaligned dcl 185 set ref 295 296* 428 429 432 778 788 789* hashp 001662 automatic pointer dcl 117 set ref 291* 293 295* 296 428 429 432 778 788 789 hbound builtin function dcl 257 ref 379 379 428 483 486 486 519 522 522 830 845 855 855 865 954 1061 1065 1065 1094 1470 1495 1499 1499 hcs_$fs_get_mode 000106 constant entry external dcl 240 ref 359 hd_ parameter fixed bin(24,0) dcl 1049 set ref 1040 1058* 1105* head 002552 automatic fixed bin(24,0) dcl 889 set ref 933* 934 934* hex_detailed_status_sw 000135 automatic bit(1) initial packed unaligned dcl 80 set ref 80* 534* 557 718 895 910 938 hex_idx 002352 automatic fixed bin(17,0) dcl 799 set ref 804* 806 810 i 000104 automatic fixed bin(17,0) dcl 61 in procedure "io_error_summary" set ref 428* 429 432* 1470* 1470* 1471 1471 1471 1471* i 003732 automatic fixed bin(17,0) dcl 1492 in procedure "fips_disk" set ref 1495* 1495* 1496 1496* 1499 1499* 1500 1501 1502 1509 i 002333 automatic fixed bin(17,0) dcl 626 in procedure "count_it" set ref 657* 658 658* 665* 666 668 669 672* 845* 845* 846 846 846 846* i 002540 automatic fixed bin(17,0) dcl 882 in procedure "print_it" set ref 899* 900 911 939 939 959* 959 963 963 981 997 1014 1030* 1030* i 002572 automatic fixed bin(17,0) dcl 1052 in procedure "convert_seek_addr" set ref 1061* 1061* 1062* 1065 1065* 1066 1067 1068 1094 1095 1098 i 003705 automatic fixed bin(17,0) dcl 1373 in procedure "tally_details_tape_" set ref 1385* 1386 1386 1386* 1394* 1395 1395* 1423* 1424 1424 1424 1424* 1432* 1433 1433* indent 000103 automatic fixed bin(17,0) dcl 60 set ref 338* 340* 342* 344* 344 934* 956* 982* 983* 997* 1014* 1022* 1301* 1309* 1316* 1338* 1340* 1348* 1350* 1356* 1389* 1397* 1404* 1427* 1435* 1442* 1449* index builtin function dcl 257 ref 699 703 704 709 710 757 757 759 804 io_cmd_sw 000141 automatic bit(1) initial packed unaligned dcl 84 set ref 84* 344 542* 682 895* 929* io_msg based structure level 1 dcl 2-14 io_msgp 002172 automatic pointer dcl 2-12 set ref 641* 643 645 646 652 666 669 672 682 682 687 688 692 693 698 725 728 733 742 749 753 862 868 ioa_ 000030 constant entry external dcl 217 ref 419 420 421 422 423 424 425 438 894 895 929 934 956 982 983 997 1014 1022 1033 1316 1356 1449 ioa_$rs 000034 constant entry external dcl 219 ref 1301 1309 1338 1340 1348 1350 1377 1383 1389 1397 1414 1421 1427 1435 ioa_$rsnnl 000032 constant entry external dcl 218 ref 1296 1404 1442 ioa_$rsnpnnl 000036 constant entry external dcl 220 ref 927 iom 3 based fixed bin(3,0) array level 3 in structure "mpc_card" dcl 13-5 in procedure "io_error_summary" ref 845 846 1470 1471 iom 2 based fixed bin(3,0) level 2 in structure "prph_tap_card" dcl 7-5 in procedure "io_error_summary" set ref 1163* iom 2 based fixed bin(3,0) level 2 in structure "prph_dsk_card" dcl 8-5 in procedure "io_error_summary" set ref 1083* 1507* iom 2 based fixed bin(3,0) level 2 in structure "ipc_card" dcl 12-12 in procedure "io_error_summary" ref 1481 iom_no 002406 automatic fixed bin(3,0) dcl 827 set ref 833* 846 iom_number 002617 automatic fixed bin(3,0) dcl 1153 in procedure "process_tape_status" set ref 1160* 1161* iom_number 002577 automatic fixed bin(3,0) dcl 1054 in procedure "convert_seek_addr" set ref 1080* 1081* ipc_card based structure level 1 dcl 12-12 ipc_cardp 002216 automatic pointer dcl 12-10 set ref 1465* 1479* 1480 1481 1481 1481 1481 1482 is_interesting 002534 automatic bit(1) packed unaligned dcl 880 set ref 1020* 1022 is_interesting_disk 2 based bit(1) level 2 packed packed unaligned dcl 6-41 ref 1301 1309 isect 002553 automatic fixed bin(24,0) dcl 889 set ref 933* 934 934* j 000105 automatic fixed bin(17,0) dcl 61 in procedure "io_error_summary" set ref 431* 433* 433 435 j 002541 automatic fixed bin(17,0) dcl 882 in procedure "print_it" set ref 911* 912* 939* 940* 963* 964 981 997 1014* j 002573 automatic fixed bin(17,0) dcl 1052 in procedure "convert_seek_addr" set ref 1087* 1088 1089* 1094* 1095 1095* k 002542 automatic fixed bin(17,0) dcl 882 set ref 944* 946* 948* 950* 952* 954* 954* 956* lbound builtin function dcl 257 ref 954 length builtin function dcl 257 ref 658 level based bit(3) level 2 packed packed unaligned dcl 2-14 ref 687 692 longest_chain 001734 automatic fixed bin(17,0) dcl 131 set ref 427* 435* 435 438* ltrim builtin function dcl 257 ref 997 997 1014 1014 1316 1316 1356 1356 major 0(02) based bit(4) level 2 packed packed unaligned dcl 3-7 set ref 351* mask 000116 automatic bit(36) dcl 67 set ref 347* 348 698 max builtin function dcl 257 ref 435 meter_sw 001712 automatic bit(1) initial packed unaligned dcl 121 set ref 121* 418 536* mod builtin function dcl 257 ref 1103 1105 mode 000106 automatic fixed bin(5,0) dcl 62 set ref 359* 365 model 5 based fixed bin(17,0) array level 3 in structure "prph_dsk_card" dcl 8-5 in procedure "io_error_summary" ref 1089 model 2 based fixed bin(17,0) level 2 in structure "mpc_card" dcl 13-5 in procedure "io_error_summary" ref 848 848 1171 model 4 based fixed bin(17,0) level 2 in structure "prph_card" dcl 9-5 in procedure "io_error_summary" ref 1248 modes 24 based structure level 2 unaligned dcl 6-24 more_args 000143 automatic bit(1) packed unaligned dcl 86 set ref 300* 450 468 479 497 515 579* 585* 599 mpc_card based structure level 1 dcl 13-5 mpc_cardp 002220 automatic pointer dcl 13-3 set ref 838* 840* 841 845 845 846 846 846 846 848 848 1085 1170 1171 1466* 1468* 1469 1470 1470 1471 1471 1471 1471 mpc_model 001736 automatic fixed bin(17,0) initial dcl 133 set ref 133* 1171* 1181 1181 1181 1184 1184 1186 1186 msg 002432 automatic varying char(256) dcl 879 set ref 926* 927* 928* 929* 1020* 1022* msg_seq 000160 automatic fixed bin(35,0) dcl 93 set ref 313* 321* msg_time 000156 automatic fixed bin(71,0) dcl 92 set ref 313* 318 321* mtc500_mask 000140 constant bit(208) initial packed unaligned dcl 157 ref 1181 mth500_mask 000170 constant bit(208) initial packed unaligned dcl 149 ref 1212 mth600_mask 000162 constant bit(208) initial packed unaligned dcl 151 ref 1214 mth610_mask 000154 constant bit(208) initial packed unaligned dcl 153 ref 1216 mth640_mask 000146 constant bit(208) initial packed unaligned dcl 155 ref 1218 mth_type 002616 automatic fixed bin(17,0) dcl 1152 set ref 1175* 1176* 1177* 1178* 1212 1214 1216 1218 mtp601_mask 000132 constant bit(208) initial packed unaligned dcl 159 ref 1184 mtp610_mask 000124 constant bit(208) initial packed unaligned dcl 161 ref 1187 my_disk_analp 000112 automatic pointer dcl 65 set ref 990* 994 my_prt_analp 000114 automatic pointer dcl 66 set ref 1005* 1009 my_tape_analp 000110 automatic pointer dcl 64 set ref 967* 971 n_buckets 000323 constant fixed bin(17,0) initial dcl 146 set ref 185 438* 775* n_counted 001732 automatic fixed bin(35,0) dcl 129 set ref 377* 395* 395 423* n_statuses 001733 automatic fixed bin(35,0) dcl 130 set ref 377* 423* 644* 644 name 000176 constant char(16) initial packed unaligned dcl 144 set ref 269* 271* 279 286* 307* 315* 323* 331* 361* 383* 469* 486* 498* 510* 522* 546* 553* 559* 575* 600* 606* 1117* name_ck 002546 automatic char(3) packed unaligned dcl 884 set ref 942* 943 948 950 952 952 nchan 5 based fixed bin(17,0) array level 3 in structure "mpc_card" dcl 13-5 in procedure "io_error_summary" ref 846 1471 nchan 4 based fixed bin(17,0) level 2 in structure "ipc_card" dcl 12-12 in procedure "io_error_summary" ref 1481 ndrives 6 based fixed bin(17,0) array level 3 dcl 8-5 ref 1088 ndtstats 002550 automatic fixed bin(17,0) dcl 886 set ref 905* 921* 921 939 959 963 981 997 1014 1030 next 21 based pointer level 2 packed packed unaligned dcl 187 set ref 434 639* 783 788* no_freeing 1(04) based bit(1) level 3 packed packed unaligned dcl 5-7 set ref 283* ntimes 002260 automatic fixed bin(17,0) dcl 619 set ref 643* 644 780 787 null builtin function dcl 257 ref 263 264 281 296 429 432 639 778 838 841 898 1077 1085 1117 1118 1137 1157 1170 1247 1465 1466 1469 1480 1505 null_tape_tracks 002042 automatic char(18) initial packed unaligned dcl 138 set ref 138* 976 1381 1418 num_analyzed 1 based fixed bin(17,0) level 2 in structure "prt_analysis" dcl 6-52 in procedure "io_error_summary" set ref 1010 1340* 1340 1350* 1350 num_analyzed 1 based fixed bin(17,0) level 2 in structure "disk_analysis" dcl 6-41 in procedure "io_error_summary" set ref 1301* 1301 1309* 1309 num_analyzed 1 based fixed bin(17,0) level 2 in structure "tape_analysis" dcl 6-24 in procedure "io_error_summary" set ref 973 976 1404 1404* 1404 1442 1442* 1442 num_tracks 5 based fixed bin(17,0) level 2 dcl 6-24 set ref 1377* 1382 1414* 1420 oct_char 000202 constant char(1) initial array packed unaligned dcl 134 ref 682 682 opc_status_table_$opc_status_table_ 000126 external static fixed bin(17,0) dcl 249 set ref 1136 open_status 000101 automatic bit(36) dcl 58 set ref 304* 305 307* open_time 001716 automatic fixed bin(71,0) dcl 123 set ref 303* 310* 310 421 operation 25 based varying char(7) level 3 dcl 6-24 set ref 1377* 1414* owner 2 based char(32) level 2 packed packed unaligned dcl 5-7 set ref 279* p 002544 automatic pointer dcl 883 in procedure "print_it" set ref 912* 913 914 915 916 917 918 920 p 002334 automatic pointer dcl 627 in procedure "count_it" set ref 778* 778* 779 780 780* 783 785* 786 787 788 789 792 pack 2 000335 automatic bit(1) array level 2 dcl 101 set ref 859* 860 pack_ptr 002376 automatic pointer dcl 823 set ref 863* 866 packed based bit(8) array packed unaligned dcl 822 set ref 866* parse_io_channel_name_ 000110 constant entry external dcl 241 ref 1080 1160 periph 002402 automatic char(4) dcl 824 set ref 829* 831 833* 858 port 3 based structure array level 2 dcl 13-5 ref 845 1470 power 0(01) based bit(1) level 2 packed packed unaligned dcl 3-7 set ref 350* pr54_mask 000106 constant bit(128) initial packed unaligned dcl 168 ref 1283 pr71_mask 000112 constant bit(128) initial packed unaligned dcl 166 ref 1280 prev_dev 002536 automatic char(8) initial packed unaligned dcl 881 set ref 881* 901 902* print_syserr_msg_$open_err 000014 constant entry external dcl 211 ref 307 print_time 001730 automatic fixed bin(71,0) dcl 128 set ref 410* 412* 412 425 prph_card based structure level 1 dcl 9-5 prph_cardp 002212 automatic pointer dcl 9-3 set ref 1246* 1247 1248 prph_dsk_card based structure level 1 dcl 8-5 prph_dsk_cardp 002210 automatic pointer dcl 8-3 set ref 1075* 1077 1083 1083 1088 1089 1504* 1505 1507 1507 prph_tap_card based structure level 1 dcl 7-5 prph_tap_cardp 002206 automatic pointer dcl 7-3 set ref 1156* 1157 1163 1163 prt_analp 002202 automatic pointer dcl 6-19 set ref 1009* 1010 1338 1338 1340 1340 1348 1348 1350 1350 prt_analysis based structure level 1 unaligned dcl 6-52 prt_name parameter char(8) packed unaligned dcl 1232 ref 1229 1246 1246 prt_status_table_$prt_status_table_ 000132 external static fixed bin(17,0) dcl 251 set ref 1128 ptr_model 002630 automatic fixed bin(17,0) dcl 1233 set ref 1248* 1251 1251 1257 1257 1257 1264 1264 1283 1283 1283 release_area_ 000100 constant entry external dcl 237 ref 1118 release_temp_segment_ 000026 constant entry external dcl 216 ref 1117 ret_str_len 003060 automatic fixed bin(17,0) dcl 1294 set ref 1296* rtrim builtin function dcl 257 ref 983 983 1304 1313 1343 1343 1353 1353 1408 1408 1409 1409 1446 1446 1447 1447 sa 002570 automatic fixed bin(24,0) dcl 1049 set ref 1102* 1104 1105 scan_time 001720 automatic fixed bin(71,0) dcl 124 set ref 375* 403* 403 422 sec_ parameter fixed bin(24,0) dcl 1049 set ref 1040 1059* 1103* sect_per_track 000000 constant fixed bin(17,0) initial array dcl 11-33 ref 1102 1103 sector parameter fixed bin(24,0) dcl 1049 ref 1040 1102 1103 seek_command 002214 automatic bit(6) initial array packed unaligned dcl 10-84 set ref 10-84* 10-84* 10-84* 10-84* 10-84* 10-84* 10-84* 10-84* 10-84* size builtin function dcl 257 in procedure "io_error_summary" ref 293 size 13 based fixed bin(18,0) level 2 in structure "area_info" dcl 5-7 in procedure "io_error_summary" set ref 280* sort_info based structure level 2 dcl 187 set ref 775 775 779 779 sort_items_$bit 000102 constant entry external dcl 238 ref 407 sort_list based structure level 1 dcl 181 sort_time 001724 automatic fixed bin(71,0) dcl 126 set ref 406* 408* 408 424 sortp 001656 automatic pointer dcl 115 set ref 264* 269* 274 407 407* 424 791 791 792 792 899 900 911 912 940 964 1117 1117* start_char 002305 automatic fixed bin(17,0) dcl 623 set ref 703* 704 704 704 709* 710 710 710 start_count 001726 automatic fixed bin(71,0) dcl 127 set ref 394* 397 start_pos 002306 automatic fixed bin(17,0) dcl 623 set ref 759* 760 761 761 stat based structure level 1 dcl 187 set ref 785 786* 786 stat_arg 000671 automatic fixed bin(35,0) dcl 113 set ref 507* 513 514 stat_cnt 000163 automatic fixed bin(17,0) initial dcl 96 set ref 96* stat_req_cnt 000162 automatic fixed bin(17,0) initial dcl 95 set ref 95* 505* 505 513 514 519 664 665 stat_sort_info based structure level 1 dcl 192 ref 291 293 stat_tablep 000010 internal static pointer dcl 63 set ref 898* 928* 1127* 1128* 1129* 1130* 1132* 1134* 1136* 1137* statentp 000154 automatic pointer dcl 91 set ref 432* 432* 434 636* 637 638 639 645 646 648 650 650 651 653 658 680 681 682 685 688 689 694 695 698 702 704 715 720 725 725 728 733 735 742 745 746 749 753 763 763 765 775 775 779 786 829 900* 901 902 903 913 914 915 916 917 918 926 927 927 928 929 929 929 932 933 933 933 934 940* 941 942 944 954 954 954 956 956 964* 965 966 967 967 967 988 990 990 990 1003 1005 1005 1005 1019 1019 1020 1020 1020 1022 1127 1128 1129 1130 1131 1132 1136 1156 1156 1160 1166 1166 1175 1176 1177 1178 1181 1181 1184 1184 1187 1187 1189 1189 1189 1194 1194 1194 1198 1200 1200 1202 1202 1206 1206 1212 1212 1214 1214 1216 1216 1218 1218 1220 1220 1237 1238 1250 1251 1253 1257 1259 1265 1265 1269 1274 1280 1280 1283 1283 1300 1318 1322 1336 1358 1362 1386 1410 1424 1451 1454 statp 002174 automatic pointer dcl 3-5 set ref 348* 349 350 351 352 353 354 statreq 000324 automatic structure array level 1 packed packed unaligned dcl 98 set ref 519 522 522 statreq_maj 000324 automatic bit(4) array level 2 packed packed unaligned dcl 98 set ref 513* 666 statreq_min 0(04) 000324 automatic bit(6) array level 2 packed packed unaligned dcl 98 set ref 514* 668 669 672 status 3 based bit(36) level 2 in structure "io_msg" dcl 2-14 in procedure "io_error_summary" ref 666 669 672 688 698 status based structure level 1 dcl 3-7 in procedure "io_error_summary" status 11 based bit(36) level 3 in structure "stat" dcl 187 in procedure "io_error_summary" set ref 688* 695* 698* 916 916 927* 928 967* 990* 1005* 1020* 1237 1250 1265 1265 sub 0(06) based bit(6) level 2 packed packed unaligned dcl 3-7 set ref 352* substr builtin function dcl 257 set ref 305 474 481 503 513 514 517 650 650 651* 653* 658 666 669 672 682 682 704 704 710 710 720 725 728 733 742 749 761 804 810* 829 942 966 988 1003 1019 1019 1073 1073 1075 1075 1127 1128 1129 1130 1131 1136 1156 1156 1175 1176 1177 1178 1189 1194 1198 1202 1202* 1206 1206* 1237 1246 1246 1250 1251 1257 1265 1265 1269 1274 1504 1504 subtract builtin function dcl 257 ref 810 sys_info$max_seg_size 000120 external static fixed bin(35,0) dcl 246 ref 280 syserr_log_util_$close 000024 constant entry external dcl 215 ref 1115 syserr_log_util_$open 000012 constant entry external dcl 210 ref 304 syserr_log_util_$read 000022 constant entry external dcl 214 ref 379 syserr_log_util_$search 000040 constant entry external dcl 221 ref 313 321 syserr_msg based structure level 1 dcl 1-9 syserr_msgp 002170 automatic pointer dcl 1-7 set ref 346* 379* 388 390 392 392 392 392 631 641 699 703 704 704 709 710 710 719 757 757 759 761 761 sysfault_sort 4(09) based char(1) level 3 packed packed unaligned dcl 187 set ref 681* 689* 914 914 927 t based bit(1) level 2 in structure "status" packed packed unaligned dcl 3-7 in procedure "io_error_summary" set ref 349* t parameter fixed bin(71,0) dcl 595 in procedure "time_arg" set ref 592 604* tab_cnt 000102 automatic fixed bin(17,0) initial dcl 59 set ref 59* tape_analp 002200 automatic pointer dcl 6-18 set ref 971* 973 976 976 1377 1377 1377 1381 1382 1386 1386 1404 1404 1404 1414 1414 1414 1418 1420 1424 1424 1442 1442 1442 tape_analysis based structure level 1 unaligned dcl 6-24 tape_status_table_$tape_status_table_ 000130 external static fixed bin(17,0) dcl 250 set ref 1127 tdbie_sw 000140 automatic bit(1) initial packed unaligned dcl 83 set ref 83* 540* 973 976 983 1220 1380 1417 temp1 003316 automatic varying char(150) initial dcl 1370 in procedure "tally_details_tape_" set ref 1370* 1377* 1408 1414* 1446 temp1 003070 automatic varying char(50) initial dcl 1330 in procedure "tally_details_prt_" set ref 1330* 1338* 1343 1348* 1353 temp1 002640 automatic varying char(256) initial dcl 1291 in procedure "tally_details_disk_" set ref 1291* 1301* 1304 1309* 1313 temp2 003106 automatic varying char(256) initial dcl 1331 in procedure "tally_details_prt_" set ref 1331* 1340* 1343 1350* 1353 temp2 003503 automatic varying char(256) initial dcl 1371 in procedure "tally_details_tape_" set ref 1371* 1404* 1408 1442* 1446 temp_char 002336 automatic char(8) packed unaligned dcl 628 set ref 710* 715* temp_detail 002370 automatic bit(216) packed unaligned dcl 818 set ref 863 864* 868 temp_detailed_status based bit(208) packed unaligned dcl 888 set ref 967* temp_stat 002307 automatic structure level 1 dcl 624 set ref 635* 636 text 6 based char level 2 dcl 1-9 ref 699 703 704 704 709 710 710 757 757 759 761 text_len 3(12) based fixed bin(11,0) level 2 packed packed unaligned dcl 1-9 ref 641 699 703 704 704 709 710 710 757 757 759 761 761 time 1 based fixed bin(71,0) level 2 packed packed unaligned dcl 1-9 ref 388 390 time_out 0(18) based bit(1) level 2 packed packed unaligned dcl 2-14 ref 693 time_out_sort 4 based char(1) level 3 packed packed unaligned dcl 187 set ref 680* 694* 915 915 926 tm1 002416 automatic char(24) packed unaligned dcl 878 set ref 892* 894* tm2 002424 automatic char(24) packed unaligned dcl 878 set ref 893* 894* to_sw 000132 automatic bit(1) initial packed unaligned dcl 77 set ref 77* 334* 336 387 457* 552 to_time 000146 automatic fixed bin(71,0) dcl 88 set ref 329* 336* 388 390* 458* 893* total_status 002547 automatic fixed bin(17,0) dcl 885 set ref 903* 920* 920 929* total_time 001714 automatic fixed bin(71,0) dcl 122 set ref 262* 416* 416 420 track_analysis 002060 automatic varying char(256) dcl 140 set ref 983 983 1409* 1447* tracks 003706 automatic fixed bin(17,0) dcl 1373 set ref 1382* 1383 1383 1389 1420* 1421 1421 1427 tracks_hdr 003365 automatic varying char(150) initial dcl 1370 set ref 1370* 1383* 1409 1421* 1447 tracks_in_error 6 based char(18) level 2 packed packed unaligned dcl 6-24 ref 976 1381 1418 tracks_per_cyl 000011 constant fixed bin(17,0) initial array dcl 10-111 ref 1104 1105 tracks_str 003434 automatic varying char(150) initial dcl 1370 set ref 1370* 1389* 1397* 1409 1427* 1435* 1447 type 1 based char(4) level 2 dcl 12-12 ref 1482 unpack_ptr 002400 automatic pointer dcl 823 set ref 862* 865 866 unpacked based structure array level 1 packed packed unaligned dcl 819 ref 865 unspec builtin function dcl 257 set ref 265* 266* 277* 513 514 635* 779 779 1315 1315 1319* 1355 1355 1359* 1448 1448 valid 000551 automatic bit(1) array level 2 in structure "disk_list" dcl 109 in procedure "io_error_summary" set ref 1495 1500* valid 000431 automatic bit(1) array level 2 in structure "dev_idx_list" dcl 105 in procedure "io_error_summary" set ref 1061 1066* valid 000335 automatic bit(1) array level 2 in structure "dev_pack_list" dcl 101 in procedure "io_error_summary" set ref 830 857* vclock builtin function dcl 257 ref 262 303 310 375 394 397 403 406 408 410 412 416 version based fixed bin(17,0) level 2 dcl 5-7 set ref 278* work_area based area(1024) dcl 206 ref 291 295 785 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. A_ACCESS internal static bit(3) initial packed unaligned dcl 14-11 A_ACCESS_BIN internal static fixed bin(5,0) initial dcl 14-36 DIR_ACCESS_MODE_NAMES internal static char(4) initial array packed unaligned dcl 14-33 E_ACCESS internal static bit(3) initial packed unaligned dcl 14-11 E_ACCESS_BIN internal static fixed bin(5,0) initial dcl 14-36 IPC_CARD_WORD internal static char(4) initial dcl 12-25 IPC_FIPS internal static char(4) initial dcl 12-26 MODELN internal static fixed bin(17,0) initial array dcl 10-63 MPC_CARD_WORD internal static char(4) initial dcl 13-26 M_ACCESS internal static bit(3) initial packed unaligned dcl 14-11 M_ACCESS_BIN internal static fixed bin(5,0) initial dcl 14-36 N_ACCESS internal static bit(3) initial packed unaligned dcl 14-11 N_ACCESS_BIN internal static fixed bin(5,0) initial dcl 14-36 PRPH_CARD_WORD internal static char(4) initial dcl 9-19 REW_ACCESS internal static bit(3) initial packed unaligned dcl 14-11 REW_ACCESS_BIN internal static fixed bin(5,0) initial dcl 14-36 RE_ACCESS internal static bit(3) initial packed unaligned dcl 14-11 RE_ACCESS_BIN internal static fixed bin(5,0) initial dcl 14-36 RW_ACCESS internal static bit(3) initial packed unaligned dcl 14-11 RW_ACCESS_BIN internal static fixed bin(5,0) initial dcl 14-36 R_ACCESS internal static bit(3) initial packed unaligned dcl 14-11 SA_ACCESS internal static bit(3) initial packed unaligned dcl 14-11 SA_ACCESS_BIN internal static fixed bin(5,0) initial dcl 14-36 SBL_access_audit internal static fixed bin(17,0) initial dcl 4-47 SBL_config_deck internal static fixed bin(17,0) initial dcl 4-47 SBL_disk_err internal static fixed bin(17,0) initial dcl 4-47 SBL_end_of_table internal static fixed bin(17,0) initial dcl 4-47 SBL_fnp_poll internal static fixed bin(17,0) initial dcl 4-47 SBL_hw_fault internal static fixed bin(17,0) initial dcl 4-47 SBL_ibm3270_mde internal static fixed bin(17,0) initial dcl 4-47 SBL_io_err internal static fixed bin(17,0) initial dcl 4-47 SBL_io_err_detail internal static fixed bin(17,0) initial dcl 4-47 SBL_mdc_del_uidpath internal static fixed bin(17,0) initial dcl 4-47 SBL_mmdam internal static fixed bin(17,0) initial dcl 4-47 SBL_mos_err internal static fixed bin(17,0) initial dcl 4-47 SBL_mpc_poll internal static fixed bin(17,0) initial dcl 4-47 SBL_ocdcm_err internal static fixed bin(17,0) initial dcl 4-47 SBL_random_segdamage internal static fixed bin(17,0) initial dcl 4-47 SBL_read_nc internal static fixed bin(17,0) initial dcl 4-47 SBL_unused_10 internal static fixed bin(17,0) initial dcl 4-47 SBL_unused_12 internal static fixed bin(17,0) initial dcl 4-47 SBL_unused_14 internal static fixed bin(17,0) initial dcl 4-47 SBL_unused_15 internal static fixed bin(17,0) initial dcl 4-47 SBL_unused_18 internal static fixed bin(17,0) initial dcl 4-47 SBL_unused_4 internal static fixed bin(17,0) initial dcl 4-47 SBL_unused_6 internal static fixed bin(17,0) initial dcl 4-47 SBL_unused_7 internal static fixed bin(17,0) initial dcl 4-47 SBL_unused_8 internal static fixed bin(17,0) initial dcl 4-47 SBL_unused_9 internal static fixed bin(17,0) initial dcl 4-47 SBL_verify_lock internal static fixed bin(17,0) initial dcl 4-47 SBL_vtoc_salv_dam internal static fixed bin(17,0) initial dcl 4-47 SBL_vtoce internal static fixed bin(17,0) initial dcl 4-47 SBL_zerpag internal static fixed bin(17,0) initial dcl 4-47 SB_access_audit internal static fixed bin(17,0) initial dcl 4-47 SB_access_audit_data_class internal static varying char(16) initial dcl 4-21 SB_char_data_classes internal static varying char(16) initial array dcl 4-89 SB_config_deck internal static fixed bin(17,0) initial dcl 4-47 SB_config_deck_data_class internal static varying char(16) initial dcl 4-21 SB_end_of_table internal static fixed bin(17,0) initial dcl 4-47 SB_fnp_poll internal static fixed bin(17,0) initial dcl 4-47 SB_fnp_poll_data_class internal static varying char(16) initial dcl 4-21 SB_hw_fault internal static fixed bin(17,0) initial dcl 4-47 SB_hwfault_data_class internal static varying char(16) initial dcl 4-21 SB_ibm3270_mde internal static fixed bin(17,0) initial dcl 4-47 SB_ibm3270_mde_data_class internal static varying char(16) initial dcl 4-21 SB_io_status_data_class internal static varying char(16) initial dcl 4-21 SB_mdc_del_uidpath internal static fixed bin(17,0) initial dcl 4-47 SB_mdc_del_uidpath_data_class internal static varying char(16) initial dcl 4-21 SB_mmdam internal static fixed bin(17,0) initial dcl 4-47 SB_mmdam_data_class internal static varying char(16) initial dcl 4-21 SB_mos_data_class internal static varying char(16) initial dcl 4-21 SB_mos_err internal static fixed bin(17,0) initial dcl 4-47 SB_mpc_poll internal static fixed bin(17,0) initial dcl 4-47 SB_mpc_poll_data_class internal static varying char(16) initial dcl 4-21 SB_random_segdamage internal static fixed bin(17,0) initial dcl 4-47 SB_read_nc internal static fixed bin(17,0) initial dcl 4-47 SB_segdamage_data_class internal static varying char(16) initial dcl 4-21 SB_unused_10 internal static fixed bin(17,0) initial dcl 4-47 SB_unused_12 internal static fixed bin(17,0) initial dcl 4-47 SB_unused_14 internal static fixed bin(17,0) initial dcl 4-47 SB_unused_15 internal static fixed bin(17,0) initial dcl 4-47 SB_unused_18 internal static fixed bin(17,0) initial dcl 4-47 SB_unused_4 internal static fixed bin(17,0) initial dcl 4-47 SB_unused_6 internal static fixed bin(17,0) initial dcl 4-47 SB_unused_7 internal static fixed bin(17,0) initial dcl 4-47 SB_unused_8 internal static fixed bin(17,0) initial dcl 4-47 SB_unused_9 internal static fixed bin(17,0) initial dcl 4-47 SB_verify_lock internal static fixed bin(17,0) initial dcl 4-47 SB_voldamage_data_class internal static varying char(16) initial dcl 4-21 SB_vtoc_salv_dam internal static fixed bin(17,0) initial dcl 4-47 SB_vtoce internal static fixed bin(17,0) initial dcl 4-47 SB_vtoce_data_class internal static varying char(16) initial dcl 4-21 SB_zerpag internal static fixed bin(17,0) initial dcl 4-47 SEG_ACCESS_MODE_NAMES internal static char(4) initial array packed unaligned dcl 14-30 SMA_ACCESS internal static bit(3) initial packed unaligned dcl 14-11 SMA_ACCESS_BIN internal static fixed bin(5,0) initial dcl 14-36 SM_ACCESS internal static bit(3) initial packed unaligned dcl 14-11 SM_ACCESS_BIN internal static fixed bin(5,0) initial dcl 14-36 S_ACCESS internal static bit(3) initial packed unaligned dcl 14-11 S_ACCESS_BIN internal static fixed bin(5,0) initial dcl 14-36 W_ACCESS internal static bit(3) initial packed unaligned dcl 14-11 W_ACCESS_BIN internal static fixed bin(5,0) initial dcl 14-36 analyze_det_stat_info_version_1 internal static fixed bin(17,0) initial dcl 6-15 analyze_det_stat_info_version_2 internal static fixed bin(17,0) initial dcl 6-16 bulkdevt internal static fixed bin(4,0) initial dcl 10-43 cyl_per_dev internal static fixed bin(17,0) initial array dcl 10-102 cyl_per_sv internal static fixed bin(17,0) initial array dcl 10-105 dev_time internal static float bin(27) initial array dcl 10-139 device_names internal static char(4) initial array dcl 10-66 display_cpu_error_binary_defs internal static fixed bin(17,0) initial array dcl 4-144 dsu181devt internal static fixed bin(4,0) initial dcl 10-43 dsu190devt internal static fixed bin(4,0) initial dcl 10-43 dsu191devt internal static fixed bin(4,0) initial dcl 10-43 faultword based structure level 1 dcl 3-27 fips3380devt internal static fixed bin(4,0) initial dcl 10-43 fips3381devt internal static fixed bin(4,0) initial dcl 10-43 fips_type_disk internal static bit(1) initial array packed unaligned dcl 10-72 first_alt_sect_num internal static fixed bin(24,0) initial array dcl 10-130 first_dev_number internal static fixed bin(17,0) initial array dcl 10-69 first_rec_num internal static fixed bin(17,0) initial array dcl 10-115 first_sect_num internal static fixed bin(24,0) initial array dcl 10-124 last_alt_sect_num internal static fixed bin(24,0) initial array dcl 10-133 last_physical_sect_num internal static fixed bin(24,0) initial array dcl 10-136 last_rec_num internal static fixed bin(18,0) initial array dcl 10-118 last_sect_num internal static fixed bin(24,0) initial array dcl 10-127 last_sv_rec_num internal static fixed bin(18,0) initial array dcl 10-121 maxdevt internal static fixed bin(4,0) initial dcl 10-43 media_removable internal static bit(1) initial array packed unaligned dcl 10-75 mpc_card_array based structure level 1 dcl 13-19 msu0400devt internal static fixed bin(4,0) initial dcl 10-43 msu0450devt internal static fixed bin(4,0) initial dcl 10-43 msu0451devt internal static fixed bin(4,0) initial dcl 10-43 msu0500devt internal static fixed bin(4,0) initial dcl 10-43 msu0501devt internal static fixed bin(4,0) initial dcl 10-43 needs_alt_part internal static bit(1) initial array packed unaligned dcl 10-81 number_of_sv internal static fixed bin(17,0) initial array dcl 10-93 prph_dsk_card_array based structure level 1 dcl 8-21 prph_tap_card_array based structure level 1 dcl 7-21 rdr_pun_analp automatic pointer dcl 6-21 rdr_pun_analysis based structure level 1 unaligned dcl 6-60 rec_per_cyl internal static fixed bin(17,0) initial array dcl 10-108 rec_per_dev internal static fixed bin(21,0) initial array dcl 10-87 rec_per_sv internal static fixed bin(17,0) initial array dcl 10-90 sect_per_cyl internal static fixed bin(17,0) initial array dcl 11-15 sect_per_rec internal static fixed bin(17,0) initial array dcl 11-21 sect_per_sv internal static fixed bin(24,0) initial array dcl 11-18 sect_per_vtoc internal static fixed bin(17,0) initial array dcl 11-26 shared_spindle internal static bit(1) initial array packed unaligned dcl 10-78 special_status based structure level 1 dcl 3-35 syserr_binary_address_damage_mask internal static bit(36) initial packed unaligned dcl 4-142 syserr_binary_mos_mask internal static bit(36) initial packed unaligned dcl 4-139 syserr_binary_seg_damage_mask internal static bit(36) initial packed unaligned dcl 4-140 syserr_binary_vol_damage_mask internal static bit(36) initial packed unaligned dcl 4-141 valid_sv_array internal static char(1) initial array packed unaligned dcl 10-99 valid_sv_string internal static char(3) initial packed unaligned dcl 10-96 vtoc_per_rec internal static fixed bin(17,0) initial array dcl 11-29 words_per_sect internal static fixed bin(17,0) initial array dcl 11-36 NAMES DECLARED BY EXPLICIT CONTEXT. calc 007307 constant label dcl 1098 ref 1062 1092 check_for_fips 012636 constant label dcl 1477 ref 1469 clean_up 007340 constant entry internal dcl 1112 ref 267 441 convert_seek_addr 007024 constant entry internal dcl 1040 ref 933 count_it 003766 constant entry internal dcl 616 ref 396 cv_detail 004762 constant entry internal dcl 795 ref 763 765 dev_wanted 004126 constant label dcl 661 ref 658 done 002660 constant label dcl 441 ref 272 287 308 316 324 332 384 471 488 500 511 524 547 554 560 576 601 607 end_anal_display 007004 constant label dcl 1027 ref 969 973 976 985 992 999 1007 1010 1016 1024 end_dup_scan 005544 constant label dcl 923 ref 913 914 915 916 917 918 find_controller 012555 constant entry internal dcl 1459 ref 1081 1083 1161 1163 1507 find_hex_idx 005011 constant label dcl 804 ref 808 fips_disk 012701 constant entry internal dcl 1488 ref 725 763 944 1132 get_arg 003537 constant entry internal dcl 570 ref 451 473 480 502 516 603 io_error_summary 001127 constant entry external dcl 54 loop 002135 constant label dcl 379 ref 399 new_dev 003004 constant label dcl 476 ref 483 new_stat 003141 constant label dcl 505 ref 519 no_cd_access 002062 constant label dcl 361 ref 367 no_dev 002750 constant label dcl 469 ref 474 no_stat 003105 constant label dcl 498 ref 503 pack_detail 005054 constant entry internal dcl 816 ref 722 pack_it 005224 constant label dcl 860 ref 831 pick_status_table 007417 constant entry internal dcl 1124 ref 904 print 002256 constant label dcl 403 ref 382 388 print_it 005267 constant entry internal dcl 875 ref 411 process_prt_status 010013 constant entry internal dcl 1229 ref 746 process_tape_status 007512 constant entry internal dcl 1149 ref 736 put_arg 003617 constant entry internal dcl 582 ref 491 527 save_info 005210 constant label dcl 855 ref 836 843 851 scan_args 002665 constant entry internal dcl 447 ref 301 sort_it 004640 constant label dcl 775 ref 735 745 stat_wanted 004171 constant label dcl 676 ref 669 672 tally_details_disk_ 010161 constant entry internal dcl 1289 ref 996 tally_details_prt_ 010574 constant entry internal dcl 1328 ref 1012 tally_details_tape_ 011300 constant entry internal dcl 1368 ref 980 time_arg 003627 constant entry internal dcl 592 ref 454 458 462 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 13650 14012 13116 13660 Length 14646 13116 142 617 532 2 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME io_error_summary 2666 external procedure is an external procedure. on unit on line 267 64 on unit scan_args internal procedure shares stack frame of external procedure io_error_summary. get_arg internal procedure shares stack frame of external procedure io_error_summary. time_arg internal procedure shares stack frame of external procedure io_error_summary. count_it internal procedure shares stack frame of external procedure io_error_summary. cv_detail internal procedure shares stack frame of external procedure io_error_summary. pack_detail internal procedure shares stack frame of external procedure io_error_summary. print_it internal procedure shares stack frame of external procedure io_error_summary. convert_seek_addr internal procedure shares stack frame of external procedure io_error_summary. clean_up 82 internal procedure is called by several nonquick procedures. pick_status_table internal procedure shares stack frame of external procedure io_error_summary. process_tape_status internal procedure shares stack frame of external procedure io_error_summary. process_prt_status internal procedure shares stack frame of external procedure io_error_summary. tally_details_disk_ internal procedure shares stack frame of external procedure io_error_summary. tally_details_prt_ internal procedure shares stack frame of external procedure io_error_summary. tally_details_tape_ internal procedure shares stack frame of external procedure io_error_summary. find_controller internal procedure shares stack frame of external procedure io_error_summary. fips_disk internal procedure shares stack frame of external procedure io_error_summary. STORAGE FOR INTERNAL STATIC VARIABLES. LOC IDENTIFIER BLOCK NAME 000010 stat_tablep io_error_summary STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME io_error_summary 000100 code io_error_summary 000101 open_status io_error_summary 000102 tab_cnt io_error_summary 000103 indent io_error_summary 000104 i io_error_summary 000105 j io_error_summary 000106 mode io_error_summary 000110 my_tape_analp io_error_summary 000112 my_disk_analp io_error_summary 000114 my_prt_analp io_error_summary 000116 mask io_error_summary 000120 arg_ptr io_error_summary 000122 arg_len io_error_summary 000123 arg_count io_error_summary 000124 arg_list_ptr io_error_summary 000126 for_ptr io_error_summary 000130 for_len io_error_summary 000131 from_sw io_error_summary 000132 to_sw io_error_summary 000133 for_sw io_error_summary 000134 detailed_status_sw io_error_summary 000135 hex_detailed_status_sw io_error_summary 000136 chn_sw io_error_summary 000137 cyl_sw io_error_summary 000140 tdbie_sw io_error_summary 000141 io_cmd_sw io_error_summary 000142 fips_controller io_error_summary 000143 more_args io_error_summary 000144 from_time io_error_summary 000146 to_time io_error_summary 000150 for_time io_error_summary 000152 arg_no io_error_summary 000154 statentp io_error_summary 000156 msg_time io_error_summary 000160 msg_seq io_error_summary 000161 dev_cnt io_error_summary 000162 stat_req_cnt io_error_summary 000163 stat_cnt io_error_summary 000164 devreq io_error_summary 000324 statreq io_error_summary 000335 dev_pack_list io_error_summary 000431 dev_idx_list io_error_summary 000551 disk_list io_error_summary 000671 stat_arg io_error_summary 000672 buffer io_error_summary 001656 sortp io_error_summary 001660 areap io_error_summary 001662 hashp io_error_summary 001664 chars_in_sort_info io_error_summary 001666 auto_area_info io_error_summary 001712 meter_sw io_error_summary 001714 total_time io_error_summary 001716 open_time io_error_summary 001720 scan_time io_error_summary 001722 count_time io_error_summary 001724 sort_time io_error_summary 001726 start_count io_error_summary 001730 print_time io_error_summary 001732 n_counted io_error_summary 001733 n_statuses io_error_summary 001734 longest_chain io_error_summary 001735 buckets_used io_error_summary 001736 mpc_model io_error_summary 001737 analysis_char_count io_error_summary 001740 analysis_string io_error_summary 002041 display_detail_count io_error_summary 002042 null_tape_tracks io_error_summary 002047 dbie_counts io_error_summary 002060 track_analysis io_error_summary 002170 syserr_msgp io_error_summary 002172 io_msgp io_error_summary 002174 statp io_error_summary 002176 area_infop io_error_summary 002200 tape_analp io_error_summary 002202 prt_analp io_error_summary 002204 disk_analp io_error_summary 002206 prph_tap_cardp io_error_summary 002210 prph_dsk_cardp io_error_summary 002212 prph_cardp io_error_summary 002214 seek_command io_error_summary 002216 ipc_cardp io_error_summary 002220 mpc_cardp io_error_summary 002246 arg_copy time_arg 002260 ntimes count_it 002261 dev_edit count_it 002262 dev_name count_it 002263 detail_temp count_it 002305 start_char count_it 002306 start_pos count_it 002307 temp_stat count_it 002332 bucket_no count_it 002333 i count_it 002334 p count_it 002336 temp_char count_it 002350 det_idx cv_detail 002351 bit_idx cv_detail 002352 hex_idx cv_detail 002353 detailed_bits cv_detail 002370 temp_detail pack_detail 002376 pack_ptr pack_detail 002400 unpack_ptr pack_detail 002402 periph pack_detail 002403 dev_idx pack_detail 002404 byte_idx pack_detail 002405 do_pack pack_detail 002406 iom_no pack_detail 002407 chan_no pack_detail 002416 tm1 print_it 002424 tm2 print_it 002432 msg print_it 002533 break print_it 002534 is_interesting print_it 002536 prev_dev print_it 002540 i print_it 002541 j print_it 002542 k print_it 002544 p print_it 002546 name_ck print_it 002547 total_status print_it 002550 ndtstats print_it 002551 cyl print_it 002552 head print_it 002553 isect print_it 002570 sa convert_seek_addr 002571 dev_idx convert_seek_addr 002572 i convert_seek_addr 002573 j convert_seek_addr 002574 dev_model convert_seek_addr 002575 dev_no_index convert_seek_addr 002576 dev_no convert_seek_addr 002577 iom_number convert_seek_addr 002600 chn_number convert_seek_addr 002616 mth_type process_tape_status 002617 iom_number process_tape_status 002620 chn_number process_tape_status 002630 ptr_model process_prt_status 002640 temp1 tally_details_disk_ 002741 cur_analysis tally_details_disk_ 003042 ca_port_str tally_details_disk_ 003060 ret_str_len tally_details_disk_ 003070 temp1 tally_details_prt_ 003106 temp2 tally_details_prt_ 003207 cur_analysis tally_details_prt_ 003316 temp1 tally_details_tape_ 003365 tracks_hdr tally_details_tape_ 003434 tracks_str tally_details_tape_ 003503 temp2 tally_details_tape_ 003604 cur_analysis tally_details_tape_ 003705 i tally_details_tape_ 003706 tracks tally_details_tape_ 003707 dbie_7track tally_details_tape_ 003732 i fips_disk THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. r_g_a r_e_as r_ne_as r_le_a alloc_char_temp call_ext_out_desc call_ext_out call_int_this call_int_other return_mac mdfx1 enable_op shorten_stack ext_entry int_entry set_chars_eis index_chars_eis op_alloc_ vclock_mac THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. analyze_detail_stat_ analyze_detail_stat_$rsnnl analyze_device_stat_$rsnnl com_err_ config_$find config_$find_periph config_$find_peripheral convert_date_to_binary_ convert_date_to_binary_$relative cu_$arg_count cu_$arg_list_ptr cu_$arg_ptr_rel cv_dec_check_ cv_oct_check_ date_time_ define_area_ get_temp_segment_ hash_index_ hcs_$fs_get_mode ioa_ ioa_$rs ioa_$rsnnl ioa_$rsnpnnl parse_io_channel_name_ print_syserr_msg_$open_err release_area_ release_temp_segment_ sort_items_$bit syserr_log_util_$close syserr_log_util_$open syserr_log_util_$read syserr_log_util_$search THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. config_deck$ cpz_status_table_$cpz_status_table_ crz_status_table_$crz_status_table_ disk_status_table_$disk_status_table_ error_table_$badopt error_table_$end_of_info error_table_$no_r_permission fdisk_status_table_$fdisk_status_table_ opc_status_table_$opc_status_table_ prt_status_table_$prt_status_table_ sys_info$max_seg_size tape_status_table_$tape_status_table_ LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 54 001126 59 001134 76 001135 77 001136 78 001137 79 001140 80 001141 81 001142 82 001143 83 001144 84 001145 85 001146 90 001147 94 001151 95 001152 96 001153 121 001154 133 001155 136 001156 138 001157 10 84 001162 262 001251 263 001253 264 001255 265 001256 266 001261 267 001264 269 001306 270 001327 271 001331 272 001355 274 001356 276 001357 277 001361 278 001364 279 001366 280 001371 281 001374 282 001376 283 001400 284 001402 285 001412 286 001414 287 001440 290 001441 291 001444 293 001451 295 001453 296 001460 298 001476 299 001505 300 001514 301 001517 303 001520 304 001522 305 001533 307 001541 308 001562 310 001564 312 001567 313 001571 314 001610 315 001612 316 001636 318 001637 319 001641 321 001642 322 001657 323 001661 324 001705 328 001706 329 001710 330 001737 331 001741 332 001773 334 001774 336 001776 338 002002 340 002003 342 002011 344 002013 346 002020 347 002022 348 002023 349 002025 350 002027 351 002031 352 002033 353 002035 354 002037 356 002041 359 002043 360 002060 361 002062 363 002106 365 002107 366 002123 367 002126 375 002127 376 002131 377 002133 379 002135 381 002155 382 002157 383 002162 384 002210 387 002211 388 002213 389 002221 390 002222 392 002227 394 002242 395 002244 396 002250 397 002251 399 002255 403 002256 406 002262 407 002264 408 002302 410 002305 411 002307 412 002310 416 002313 418 002316 419 002320 420 002333 421 002364 422 002414 423 002445 424 002503 425 002536 426 002566 427 002567 428 002570 429 002575 430 002606 431 002607 432 002610 433 002616 434 002617 435 002623 437 002630 438 002632 441 002660 443 002664 447 002665 450 002666 451 002670 452 002671 453 002703 454 002705 455 002707 456 002710 457 002714 458 002716 459 002720 460 002721 461 002725 462 002727 463 002731 464 002733 465 002735 466 002736 468 002746 469 002750 471 002775 473 002776 474 002777 476 003004 478 003005 479 003022 480 003024 481 003025 483 003032 486 003035 488 003070 491 003071 493 003072 495 003073 497 003103 498 003105 500 003132 502 003133 503 003134 505 003141 507 003142 508 003165 510 003167 511 003213 513 003214 514 003221 515 003224 516 003226 517 003227 519 003234 522 003237 524 003272 527 003273 529 003274 532 003275 534 003314 536 003333 538 003342 540 003355 542 003370 543 003403 546 003416 547 003450 549 003451 552 003452 553 003456 554 003503 557 003504 559 003510 560 003535 564 003536 570 003537 573 003540 574 003557 575 003561 576 003610 578 003611 579 003612 580 003616 582 003617 584 003620 585 003622 586 003626 592 003627 598 003631 599 003642 600 003644 601 003675 603 003676 604 003677 605 003724 606 003726 607 003764 610 003765 616 003766 631 003767 635 003776 636 004001 637 004003 638 004004 639 004007 641 004011 643 004020 644 004024 645 004030 646 004035 648 004045 650 004050 651 004057 652 004061 653 004075 656 004100 657 004102 658 004111 659 004123 660 004125 664 004126 665 004130 666 004137 668 004146 669 004153 670 004160 672 004161 674 004166 675 004170 680 004171 681 004174 682 004176 685 004224 687 004226 688 004233 689 004236 690 004240 692 004241 693 004243 694 004246 695 004250 696 004251 698 004252 699 004256 702 004274 703 004277 704 004306 709 004326 710 004335 715 004355 718 004400 719 004404 720 004412 722 004415 724 004424 725 004427 728 004450 730 004455 732 004456 733 004460 735 004465 736 004471 738 004474 741 004475 742 004477 745 004504 746 004510 747 004517 749 004520 753 004532 755 004537 757 004540 759 004564 760 004566 761 004567 763 004600 765 004625 771 004636 773 004637 775 004640 778 004666 779 004702 780 004710 781 004715 783 004716 785 004721 786 004726 787 004732 788 004735 789 004746 791 004754 792 004760 793 004761 795 004762 800 004773 802 004776 803 005000 804 005011 806 005025 807 005026 808 005027 810 005030 811 005042 812 005043 813 005046 816 005054 829 005055 830 005057 831 005070 832 005073 833 005075 834 005116 835 005120 836 005121 838 005122 840 005124 841 005137 842 005143 843 005145 845 005146 846 005160 848 005173 850 005202 851 005204 853 005205 854 005207 855 005210 857 005215 858 005220 859 005222 860 005224 862 005232 863 005235 864 005237 865 005242 866 005247 867 005260 868 005262 869 005266 875 005267 881 005270 892 005272 893 005307 894 005324 895 005347 898 005401 899 005404 900 005413 901 005415 902 005423 903 005426 904 005431 905 005435 906 005436 907 005437 908 005440 910 005450 911 005454 912 005465 913 005467 914 005476 915 005507 916 005516 917 005521 918 005530 920 005536 921 005541 922 005542 926 005544 927 005557 928 005617 929 005651 932 005723 933 005732 934 005752 938 006037 939 006041 940 006051 941 006053 942 006057 943 006062 944 006064 946 006102 947 006104 948 006105 950 006112 952 006117 954 006126 955 006143 956 006146 958 006202 959 006204 960 006206 962 006207 963 006211 964 006221 965 006223 966 006227 967 006234 969 006270 971 006272 973 006274 976 006301 980 006312 981 006313 982 006317 983 006347 984 006416 985 006417 988 006420 990 006422 992 006461 994 006463 996 006465 997 006466 999 006544 1003 006546 1005 006550 1007 006607 1009 006611 1010 006613 1012 006616 1014 006617 1016 006675 1019 006677 1020 006703 1022 006746 1024 007003 1029 007004 1030 007006 1032 007010 1033 007012 1034 007023 1040 007024 1057 007026 1058 007030 1059 007031 1061 007032 1062 007042 1063 007052 1065 007054 1066 007061 1067 007064 1068 007073 1072 007074 1073 007076 1075 007124 1077 007140 1079 007145 1080 007150 1081 007202 1082 007206 1083 007207 1085 007220 1087 007227 1088 007237 1089 007245 1091 007257 1092 007261 1094 007263 1095 007276 1096 007305 1098 007307 1100 007313 1102 007316 1103 007323 1104 007327 1105 007332 1107 007336 1112 007337 1115 007345 1117 007354 1118 007402 1120 007416 1124 007417 1127 007420 1128 007431 1129 007437 1130 007445 1131 007453 1132 007455 1134 007474 1135 007477 1136 007500 1137 007506 1139 007511 1149 007512 1156 007513 1157 007526 1159 007533 1160 007536 1161 007567 1162 007573 1163 007574 1165 007607 1166 007611 1167 007615 1170 007616 1171 007623 1175 007626 1176 007635 1177 007646 1178 007653 1181 007657 1184 007672 1186 007702 1187 007706 1189 007711 1194 007722 1198 007733 1200 007735 1202 007740 1206 007751 1212 007755 1214 007764 1216 007772 1218 010000 1220 010005 1225 010012 1229 010013 1237 010015 1238 010022 1239 010025 1246 010026 1247 010043 1248 010050 1250 010053 1251 010061 1253 010073 1254 010076 1257 010077 1259 010113 1260 010116 1264 010117 1265 010124 1269 010131 1274 010136 1280 010143 1281 010146 1283 010147 1285 010160 1289 010161 1291 010162 1293 010163 1296 010164 1299 010225 1300 010232 1301 010236 1304 010311 1306 010346 1309 010350 1313 010423 1315 010460 1316 010474 1317 010546 1318 010554 1319 010560 1320 010566 1322 010567 1324 010573 1328 010574 1330 010575 1331 010576 1335 010577 1336 010604 1338 010610 1340 010654 1343 010724 1345 010775 1348 010777 1350 011043 1353 011113 1355 011164 1356 011200 1357 011252 1358 011260 1359 011264 1360 011272 1362 011273 1364 011277 1368 011300 1370 011301 1371 011304 1376 011305 1377 011312 1380 011351 1381 011353 1382 011360 1383 011362 1385 011437 1386 011445 1388 011456 1389 011460 1394 011525 1395 011533 1396 011536 1397 011540 1404 011601 1408 011653 1409 011724 1410 011776 1411 012003 1414 012004 1417 012043 1418 012045 1420 012052 1421 012054 1423 012131 1424 012137 1426 012153 1427 012155 1432 012222 1433 012227 1434 012232 1435 012234 1442 012275 1446 012347 1447 012420 1448 012472 1449 012506 1450 012536 1451 012543 1452 012547 1454 012550 1456 012554 1459 012555 1464 012557 1465 012560 1466 012562 1467 012563 1468 012564 1469 012577 1470 012603 1471 012616 1474 012633 1475 012635 1479 012636 1480 012651 1481 012656 1482 012672 1483 012676 1485 012677 1486 012700 1488 012701 1495 012703 1496 012714 1497 012734 1499 012736 1500 012743 1501 012746 1502 012755 1504 012756 1505 012771 1507 013003 1509 013014 1510 013020 ----------------------------------------------------------- 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