COMPILATION LISTING OF SEGMENT fnp_data_summary Compiled by: Multics PL/I Compiler, Release 29, of July 28, 1986 Compiled at: Honeywell Bull, Phx. Az., Sys-M Compiled on: 08/04/87 1626.0 mst Tue Options: optimize map 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 4* * * 5* * Copyright (c) 1972 by Massachusetts Institute of * 6* * Technology and Honeywell Information Systems, Inc. * 7* * * 8* *********************************************************** */ 9 10 11 /* FNP_DATA_SUMMARY: Command to summarize fnp data from the syserr log collected by poll_fnp */ 12 13 /* Written July 1981 by Robert Coren */ 14 /* Most of this program was borrowed from the mpc_data_summary command. */ 15 16 /* format: style4,delnl,insnl,^ifthendo */ 17 fnp_data_summary: 18 proc; 19 20 dcl i fixed bin; 21 dcl name char (17) int static options (constant) init ("fnp_data_summary"); 22 /* Name of procedure */ 23 dcl check_fnp fixed bin; 24 dcl code fixed bin (35); /* Standard system status code */ 25 dcl open_status bit (36) aligned; /* Code from syserr_log_util_$open */ 26 dcl ptr_array (2) ptr; /* An array of pointers as required by get_temp_segment_ */ 27 dcl tab_cnt fixed bin init (0); /* Number of seperate status found */ 28 dcl mask bit (36) aligned init ("0"b); /* Mask of significant bits in status word */ 29 dcl arg_ptr ptr; /* Pointer to an argument */ 30 dcl arg_len fixed bin; /* Length of an argument */ 31 dcl arg char (arg_len) based (arg_ptr); /* A command argument */ 32 dcl arg_count fixed bin; /* The number of arguments */ 33 dcl arg_list_ptr ptr; /* Pointer to commands argument list */ 34 dcl for_ptr ptr; /* Saved pointer to the -for argument */ 35 dcl for_len fixed bin; /* Saved length of -for argument */ 36 dcl for_arg char (for_len) based (for_ptr); /* This is the -for argument */ 37 dcl from_sw bit (1) init ("0"b); /* Set if -from used */ 38 dcl to_sw bit (1) init ("0"b); /* Set if -to used */ 39 dcl for_sw bit (1) init ("0"b); /* Set if -for used */ 40 dcl more_args bit (1); /* Set while there are more arguments to scan */ 41 dcl short_display_sw bit (1) init ("1"b); 42 dcl short_arg bit (1) init ("0"b); 43 dcl top_of_page_req bit (1) init ("0"b); 44 dcl fnp_only bit (1) init ("0"b); 45 dcl bf_sw bit (1) init ("0"b); 46 dcl all_fnps bit (1) init ("0"b); /* all fnp's that we find will be summarized if no fnp name are in put this will set set */ 47 dcl (output_file, of_file_att, of_file_open) bit (1) init ("0"b); 48 /* output file to be used and if it is attached and open */ 49 dcl ext_file bit (1) init ("0"b); /* set if the output file is to be extended */ 50 dcl expand_sw bit (1) init ("0"b); /* set if each entry found is the syserr_log is to also be printed */ 51 dcl segs_allocated bit (1) init ("0"b); /* Set after work segments created */ 52 53 54 dcl from_time fixed bin (71); /* Time specified on -from */ 55 dcl to_time fixed bin (71); /* Time specified on -to */ 56 dcl for_time fixed bin (71); /* Time specified on -for */ 57 dcl count_limit fixed bin init (0); /* Results for -limit arg */ 58 dcl day_limit fixed bin init (0); /* Results for -day_limit arg */ 59 dcl workp ptr; /* Pointer to work segment */ 60 dcl arg_no fixed bin init (1); /* For scanning argument list */ 61 dcl msg_time fixed bin (71); /* Time of syserrmessage */ 62 dcl msg_seq fixed bin (35); /* Sequence number */ 63 dcl fnp_cnt fixed bin init (0); /* Number of FNPs requested */ 64 dcl temp fixed bin; 65 dcl output_iocbp ptr; /* pointer to the output iocb */ 66 dcl of_path char (168); /* path name used for output file */ 67 dcl attach_desc char (180); /* variable used to build description used for output file when attached */ 68 dcl (F_TIME, L_TIME) char (24); 69 dcl fnp_statp ptr; 70 dcl fnp_chan_statp ptr; 71 72 73 /* BASED */ 74 75 dcl 1 work aligned based (workp), /* Declaration of work segment */ 76 2 fnpreq (8) char (4), /* Table of requested FNPs */ 77 2 buffer (500) bit (36) aligned, /* Syserr messages are read here */ 78 2 entries_found fixed bin, /* number of syserr_log entries */ 79 2 first_time fixed bin (71), /* time fo the first syserr_log entry found fo this fnp */ 80 2 last_time fixed bin (71); /* time of the last syserr_log entry found for this fnp */ 81 82 83 dcl 1 fnp_stats aligned based (fnp_statp), 84 2 n_channels fixed bin, 85 2 chan_stats (100) like fnp_chan_stats; 86 87 dcl 1 fnp_chan_stats aligned based (fnp_chan_statp), 88 2 chan_name char (6) unal, 89 2 line_type fixed bin (17) unaligned, 90 2 stats (9) fixed bin (35); 91 92 93 /* entries for syserr_log */ 94 95 dcl syserr_log_util_$open entry (bit (36) aligned, fixed bin (35)); 96 dcl print_syserr_msg_$open_err entry (bit (36) aligned, char (*), fixed bin (35)); 97 dcl syserr_log_util_$read entry (ptr, fixed bin, fixed bin, fixed bin (35)); 98 dcl syserr_log_util_$close entry (fixed bin (35)); 99 dcl syserr_log_util_$search entry (fixed bin (71), fixed bin (71), fixed bin (35), fixed bin (35)); 100 101 /* io type entries */ 102 103 dcl ( 104 ioa_, 105 ioa_$ioa_switch 106 ) entry options (variable); 107 dcl iox_$attach_ioname entry (char (*), ptr, char (*), fixed bin (35)); 108 dcl iox_$open entry (ptr, fixed bin, bit (1) aligned, fixed bin (35)); 109 dcl iox_$close entry (ptr, fixed bin (35)); 110 dcl iox_$detach_iocb entry (ptr, fixed bin (35)); 111 dcl iox_$user_output ext ptr; 112 113 /* misc entries */ 114 115 dcl com_err_ entry options (variable); 116 dcl get_temp_segments_ entry (char (*), dim (*) ptr, fixed bin (35)); 117 dcl release_temp_segments_ entry (char (*), dim (*) ptr, fixed bin (35)); 118 dcl date_time_ entry (fixed bin (71), char (*)); 119 dcl cu_$arg_list_ptr entry (ptr); 120 dcl cu_$arg_count entry (fixed bin, fixed bin (35)); 121 dcl cu_$arg_ptr_rel entry (fixed bin, ptr, fixed bin, fixed bin (35), ptr); 122 dcl convert_date_to_binary_ entry (char (*), fixed bin (71), fixed bin (35)); 123 dcl convert_date_to_binary_$relative entry (char (*), fixed bin (71), fixed bin (71), fixed bin (35)); 124 dcl get_line_length_$switch entry (ptr, fixed bin (35)) returns (fixed bin); 125 dcl sys_info_$time_delta ext fixed bin (35); 126 dcl parse_tty_name_ entry (char (*), fixed bin, bit (1), fixed bin, fixed bin); 127 dcl meter_format_$picture entry (fixed bin (35), fixed bin) returns (char (15) var); 128 129 /* error_table_ */ 130 131 dcl error_table_$end_of_info ext fixed bin (35); 132 dcl error_table_$badopt ext fixed bin (35); 133 dcl error_table_$inconsistent ext fixed bin (35); 134 135 dcl (cleanup, conversion) condition; 136 137 dcl (addr, bin, divide, hbound, index, substr) builtin; 138 139 /* Initialization */ 140 141 on cleanup call clean_up; 142 output_iocbp = iox_$user_output; 143 call get_temp_segments_ (name, ptr_array, code); /* Get a work segment */ 144 if code ^= 0 145 then do; 146 call com_err_ (code, name, "Can't get temp segment"); 147 go to done; 148 end; 149 segs_allocated = "1"b; /* Remember that they are allocated */ 150 workp = ptr_array (1); /* Copy pointer to my segment */ 151 fnp_statp = ptr_array (2); 152 fnp_stats.n_channels = 0; 153 154 call cu_$arg_list_ptr (arg_list_ptr); /* Need pointer to argument list */ 155 call cu_$arg_count (arg_count, code); /* And the length */ 156 if code ^= 0 157 then do; 158 call com_err_ (code, name); 159 return; 160 end; 161 162 more_args = (arg_count > 0); /* Set if args to scan */ 163 call scan_args; /* Scan the argument list */ 164 165 if fnp_cnt = 0 166 then all_fnps = "1"b; 167 168 169 if output_file 170 then do; 171 if short_arg 172 then short_display_sw = "1"b; 173 else short_display_sw = "0"b; 174 attach_desc = "vfile_ " || rtrim (of_path); 175 if ext_file 176 then attach_desc = rtrim (attach_desc) || " -extend"; 177 call iox_$attach_ioname ("fnp_sum_sw", output_iocbp, attach_desc, code); 178 if code ^= 0 179 then do; 180 call com_err_ (code, name, "attaching ^a", rtrim (of_path)); 181 goto done; 182 end; 183 of_file_att = "1"b; 184 call iox_$open (output_iocbp, 2, "0"b, code);/* open for stream output */ 185 if code ^= 0 186 then do; 187 call com_err_ (code, name, "opening ^a", rtrim (of_path)); 188 goto done; 189 end; 190 of_file_open = "1"b; 191 end; 192 temp = get_line_length_$switch (output_iocbp, code); 193 if ^short_arg 194 then do; 195 if code ^= 0 | temp > 80 196 then short_display_sw = "0"b; 197 else short_display_sw = "1"b; 198 end; 199 else short_display_sw = "1"b; 200 if code ^= 0 | output_file 201 then top_of_page_req = "1"b; 202 else top_of_page_req = "0"b; 203 204 205 call syserr_log_util_$open (open_status, code); /* Open the syserr log */ 206 if code ^= 0 | substr (open_status, 1, 2) ^= "11"b 207 then do; /* If error */ 208 call print_syserr_msg_$open_err (open_status, name, code); 209 if code ^= 0 210 then go to done; /* Not recoverable */ 211 end; 212 213 if ^from_sw 214 then do; /* No -from, so start at beginning */ 215 call syserr_log_util_$search (0, msg_time, msg_seq, code); 216 if code ^= 0 217 then do; 218 call com_err_ (code, name, "Can't find firstmessage in log."); 219 go to done; 220 end; 221 from_time = msg_time; /* Official starting time */ 222 end; 223 else do; /* -from used, find rightmessage */ 224 call syserr_log_util_$search (from_time, msg_time, msg_seq, code); 225 if code ^= 0 226 then do; 227 call com_err_ (code, name, "Locating firstmessage requested."); 228 go to done; 229 end; 230 end; 231 232 if for_sw 233 then do; /* Now can compute -for limit */ 234 call convert_date_to_binary_$relative (for_arg, to_time, from_time, code); 235 if code ^= 0 236 then do; 237 call com_err_ (code, name, "-for ^a", for_arg); 238 go to done; 239 end; 240 to_sw = "1"b; /* Now, just as if -to was specified */ 241 end; 242 if ^to_sw 243 then to_time = from_time; /* Initialize lastmessage time */ 244 245 syserr_msgp = addr (work.buffer); /* Read here */ 246 247 /* Loop thru the file */ 248 249 loop: 250 call syserr_log_util_$read (syserr_msgp, hbound (buffer, 1), (0), code); 251 if code ^= 0 252 then do; 253 if code = error_table_$end_of_info 254 then go to print; 255 call com_err_ (code, name, "Reading syserr log"); 256 go to done; 257 end; 258 259 if to_sw 260 then do; /* If time limit */ 261 if syserr_msg.time > to_time 262 then go to print; 263 end; 264 else to_time = syserr_msg.time; /* Save lastmessage time */ 265 266 if syserr_msg.data_code = SB_fnp_poll & syserr_msg.data_size > 0 267 then do; 268 poll_fnp_datap = addr (syserr_msg.data); 269 if look_for (poll_fnp_data.name) 270 then call count_it; 271 end; 272 273 go to loop; 274 275 /* End of log reached */ 276 277 print: 278 call print_it; /* Print results */ 279 280 /* End of command */ 281 282 done: 283 call clean_up; 284 return; 285 286 287 288 289 count_it: 290 proc; 291 292 /* This proc will take the syserr entry in poll_fnp_data format and 293* interpret it so as to record the maximum value of every statistic for 294* each channel in the fnp_stats array. */ 295 296 dcl i fixed bin; 297 dcl statx fixed bin; 298 dcl chanx fixed bin; 299 dcl found bit (1); 300 dcl stat_type fixed bin; 301 302 if work.entries_found = 0 303 then work.first_time = syserr_msg.time; 304 work.entries_found = work.entries_found + 1; 305 work.last_time = syserr_msg.time; 306 307 if expand_sw 308 then call expand_syserr_entry; /* user wants each entry expanded */ 309 310 do statx = 1 to poll_fnp_data.n_stats; 311 chanx = poll_fnp_data.stat_info (statx).chan_index; 312 stat_type = poll_fnp_data.stat_info (statx).stat_index; 313 314 found = "0"b; 315 do i = 1 to fnp_stats.n_channels; 316 fnp_chan_statp = addr (fnp_stats.chan_stats (i)); 317 if fnp_chan_stats.chan_name = poll_fnp_data (chanx).chan_name 318 then do; 319 found = "1"b; 320 if poll_fnp_data.stat_info (statx).value > fnp_chan_stats.stats (stat_type) 321 then fnp_chan_stats.stats (stat_type) = poll_fnp_data.stat_info (statx).value; 322 end; 323 end; 324 325 if ^found /* first message for this channel */ 326 then do; 327 fnp_stats.n_channels = fnp_stats.n_channels + 1; 328 fnp_chan_statp = addr (fnp_stats.chan_stats (fnp_stats.n_channels)); 329 fnp_chan_stats.chan_name = poll_fnp_data (chanx).chan_name; 330 fnp_chan_stats.line_type = poll_fnp_data (chanx).line_type; 331 fnp_chan_stats.stats (*) = 0; 332 fnp_chan_stats.stats (stat_type) = poll_fnp_data.stat_info (statx).value; 333 end; 334 end; 335 end count_it; 336 337 338 look_for: 339 proc (fnp_name) returns (bit (1)); 340 341 /* This proc will return a bit = "1"b then we want to count this data */ 342 343 dcl fnp_name char (4) aligned; 344 dcl i fixed bin; 345 346 if poll_fnp_data.n_stats = 0 347 then return ("0"b); 348 349 do i = 1 to fnp_cnt; 350 if fnp_name = work.fnpreq (i) 351 then return ("1"b); 352 end; 353 if all_fnps 354 then do; /* count all we find */ 355 fnp_cnt = fnp_cnt + 1; 356 work.fnpreq (fnp_cnt) = fnp_name; 357 return ("1"b); 358 end; 359 return ("0"b); 360 end look_for; 361 362 /* Procedure to print results */ 363 364 print_it: 365 proc; 366 dcl i fixed bin; 367 dcl chanx fixed bin; 368 dcl fnp_no fixed bin; 369 dcl hsla_flag bit (1); 370 dcl la_no fixed bin; 371 dcl subchan fixed bin; 372 373 if fnp_stats.n_channels > 0 374 then do; 375 call date_time_ (work.first_time, F_TIME); 376 call date_time_ (work.last_time, L_TIME); 377 if top_of_page_req 378 then call ioa_$ioa_switch (output_iocbp, "^|"); 379 else call ioa_$ioa_switch (output_iocbp, "^2/"); 380 call ioa_$ioa_switch (output_iocbp, "^10x^d syserr log entries^/^10xfrom: ^a^/^12xto: ^a", 381 work.entries_found, F_TIME, L_TIME); 382 383 do chanx = 1 to fnp_stats.n_channels; 384 fnp_chan_statp = addr (fnp_stats.chan_stats (chanx)); 385 call parse_tty_name_ (fnp_chan_stats.chan_name, fnp_no, hsla_flag, la_no, subchan); 386 call ioa_$ioa_switch (output_iocbp, 387 "^/Channel ^a (FNP ^a, ^[H^;L^]SLA ^d, subchannel ^2d), line type ^a", fnp_chan_stats.chan_name, 388 substr ("ABCDEFGH", fnp_no, 1), hsla_flag, la_no, subchan, line_types (fnp_chan_stats.line_type)) 389 ; 390 391 if fnp_chan_stats.stats (9) > 0 392 then call ioa_$ioa_switch (output_iocbp, "^10xParity errors: ^a", 393 meter_format_$picture (fnp_chan_stats.stats (9), 11)); 394 395 do i = 1 to 8; 396 if fnp_chan_stats.stats (i) > 0 397 then call ioa_$ioa_switch (output_iocbp, "^10xCounter (^d):^2x^a", 398 i, meter_format_$picture (fnp_chan_stats.stats (i), 11)); 399 end; 400 end; 401 end; 402 403 else do; 404 call date_time_ (from_time, F_TIME); 405 call date_time_ (to_time, L_TIME); 406 call ioa_$ioa_switch (output_iocbp, 407 "No syserr_log entries found for specified FNP(s)^/from: ^a^/^2xto: ^a", F_TIME, L_TIME); 408 end; 409 410 end print_it; 411 412 /* expand each entry */ 413 414 expand_syserr_entry: 415 proc; 416 417 dcl last_chanx fixed bin; 418 dcl chanx fixed bin; 419 dcl statx fixed bin; 420 421 call date_time_ (work.last_time, F_TIME); 422 call ioa_$ioa_switch (output_iocbp, "^Entry number ^d at ^a", work.entries_found, F_TIME); 423 424 425 if poll_fnp_data.n_stats = 0 426 then call ioa_$ioa_switch (output_iocbp, "No statistics."); 427 428 else do; 429 last_chanx = 0; 430 do statx = 1 to poll_fnp_data.n_stats; 431 chanx = poll_fnp_data.stat_info (statx).chan_index; 432 if chanx ^= last_chanx /* new channel */ 433 then do; 434 call ioa_$ioa_switch (output_iocbp, "Channel ^a:", poll_fnp_data.chan_info (chanx).chan_name); 435 last_chanx = chanx; 436 end; 437 438 call ioa_$ioa_switch (output_iocbp, "^5x^[Parity^s^;Counter (^d)^]: ^a", 439 poll_fnp_data.stat_info (statx).stat_index = 9, poll_fnp_data.stat_info (statx).stat_index, 440 meter_format_$picture (poll_fnp_data.stat_info (statx).value, 11)); 441 end; 442 end; 443 444 end expand_syserr_entry; 445 446 447 /* Cleanup handler */ 448 449 clean_up: 450 proc; 451 452 call syserr_log_util_$close (code); 453 if output_file 454 then do; 455 if of_file_open 456 then call iox_$close (output_iocbp, code); 457 if of_file_att 458 then call iox_$detach_iocb (output_iocbp, code); 459 end; 460 461 462 if segs_allocated 463 then do; 464 segs_allocated = "0"b; 465 call release_temp_segments_ (name, ptr_array, code); 466 end; 467 return; 468 469 end clean_up; 470 471 /* Procedure to scan the argument list */ 472 scan_args: 473 proc; 474 475 dcl fnp_no fixed bin; 476 dcl parse_fnp_name_ entry (char (*), fixed bin); 477 478 do while (more_args); /* Do while thins to look at */ 479 call get_arg; 480 481 482 if arg = "-from" | arg = "-fm" 483 then do; /* Start time */ 484 from_sw = "1"b; 485 call time_arg (from_time); 486 end; 487 488 else if arg = "-to" 489 then do; /* Ending time */ 490 to_sw = "1"b; 491 call time_arg (to_time); 492 end; 493 494 else if arg = "-for" 495 then do; /* Time limit */ 496 for_sw = "1"b; 497 call time_arg (for_time); /* For syntax checking only */ 498 for_len = arg_len; /* Save pointer to this argument */ 499 for_ptr = arg_ptr; 500 end; 501 502 else if arg = "-expand" 503 then expand_sw = "1"b; 504 505 else if arg = "-of" | arg = "output_file" 506 then do; 507 if more_args 508 then do; 509 call get_arg; 510 511 if index (arg, "-") ^= 1 512 then of_path = arg; 513 else do; 514 of_path = rtrim (name) || ".output"; 515 call put_arg; 516 end; 517 end; 518 else of_path = rtrim (name) || ".output"; 519 short_display_sw = "0"b; 520 output_file = "1"b; 521 end; 522 523 else if arg = "-ext" | arg = "-extend" 524 then ext_file = "1"b; 525 526 else if index (arg, "-") ^= 1 527 then do; 528 call parse_fnp_name_ (arg, fnp_no); 529 if fnp_no < 0 530 then do; 531 call com_err_ (0, name, "Invalid FNP name: ^a", arg); 532 go to done; 533 end; 534 do check_fnp = 1 to fnp_cnt; 535 if arg = work.fnpreq (check_fnp) 536 then goto skip; 537 end; 538 539 if fnp_cnt = hbound (work.fnpreq, 1) 540 then do; 541 call com_err_ (0, name, "There were more than ^d FNPs specified.", hbound (work.fnpreq, 1)); 542 go to done; 543 end; 544 545 fnp_cnt = fnp_cnt + 1; /* Count FNP found */ 546 all_fnps = "0"b; 547 work.fnpreq (fnp_cnt) = arg; /* Save name */ 548 skip: 549 end; 550 551 else do; /* Bad arg */ 552 call com_err_ (error_table_$badopt, name, "^a", arg); 553 go to done; 554 end; 555 end; 556 557 if to_sw & for_sw 558 then do; /* Conflict */ 559 call com_err_ (error_table_$inconsistent, name, "-to and -for"); 560 go to done; 561 end; 562 if ext_file & ^output_file 563 then do; 564 call com_err_ (error_table_$inconsistent, name, "-extend without -output_file"); 565 go to done; 566 end; 567 568 569 return; 570 571 end scan_args; 572 573 /* Procedure to return the next argument from command line */ 574 575 get_arg: 576 proc; 577 578 call cu_$arg_ptr_rel (arg_no, arg_ptr, arg_len, code, arg_list_ptr); 579 if code ^= 0 580 then do; /* Should never happen */ 581 call com_err_ (code, name, "Arg ^d", arg_no); 582 go to done; 583 end; 584 arg_no = arg_no + 1; /* For next call */ 585 more_args = (arg_no <= arg_count); 586 return; 587 588 put_arg: 589 entry; /* Entry to return argument after scanning too far */ 590 arg_no = arg_no - 1; 591 more_args = (arg_no <= arg_count); 592 return; 593 594 end get_arg; 595 596 /* Procedure to convert a time argument */ 597 598 time_arg: 599 proc (t); 600 601 dcl t fixed bin (71); /* The time to ouput */ 602 dcl arg_copy char (10) var; /* Save copy of arg here */ 603 604 arg_copy = arg; 605 if ^more_args 606 then do; /* Must be more */ 607 call com_err_ (0, name, "Argument required after ^a.", arg_copy); 608 go to done; 609 end; 610 call get_arg; 611 call convert_date_to_binary_ (arg, t, code); 612 if code ^= 0 613 then do; 614 call com_err_ (code, name, "^a ^a", arg_copy, arg); 615 go to done; 616 end; 617 618 return; 619 620 end time_arg; 621 622 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 */ 623 2 1 /* Begin include file . . . . . poll_fnp_data.incl.pl1 */ 2 2 2 3 /* Describes format of syserr binary data logged with fnp polling */ 2 4 /* Prepared July 1981 by Robert Coren */ 2 5 2 6 dcl poll_fnp_datap ptr; 2 7 dcl poll_fnp_data_version_1 fixed bin int static options (constant) init (1); 2 8 dcl poll_fnp_data_n_channels fixed bin; 2 9 dcl poll_fnp_data_n_stats fixed bin; 2 10 2 11 dcl 1 poll_fnp_data aligned based (poll_fnp_datap), 2 12 2 version fixed bin, 2 13 2 name char (4), /* Name of FNP */ 2 14 2 model fixed bin, 2 15 2 n_channels fixed bin, /* Number of channels with statistics */ 2 16 2 n_stats fixed bin, /* Number of non-zero statistics actually logged */ 2 17 2 chan_info (poll_fnp_data_n_channels refer (poll_fnp_data.n_channels)), 2 18 3 chan_name char (6) unal, 2 19 3 line_type fixed bin (17) unaligned, 2 20 2 stat_info (poll_fnp_data_n_stats refer (poll_fnp_data.n_stats)), 2 21 3 chan_index fixed bin (18) uns unal, /* Index in chan_info, above */ 2 22 3 stat_index fixed bin (18) uns unal, /* Which statistic for that channel (1 to 9) */ 2 23 3 value fixed bin (35); /* Actual value of that stat */ 2 24 2 25 /* Note: only non-zero statistics are logged. An entry is made in the stat_info 2 26* array for each non-zero statistics noting which channel, and which of the 2 27* counters was non-zero */ 2 28 2 29 /* End include file . . . . . poll_fnp_data.incl.pl1 */ 624 3 1 /* BEGIN INCLUDE FILE ... line_types.incl.pl1 */ 3 2 3 3 /* Written November 10 1975 by Paul Green */ 3 4 /* Modified October 1978 by Larry Johnson to include line_type_names */ 3 5 /* Modified 12/19/78 by J. Stern to add POLLED_VIP line type */ 3 6 /* Modified 9/27/79 by J. Stern to add X25LAP line type */ 3 7 /* Modified Spring 1981 by Charles Hornig to add HDLC line type */ 3 8 /* Modified May 1981 by Robert Coren to add COLTS line type */ 3 9 /* Modified September 1984 by Robert Coren to correctly count VIP as a synchronous line type */ 3 10 3 11 3 12 /****^ HISTORY COMMENTS: 3 13* 1) change(86-02-25,Negaret), approve(87-07-13,MCR7679), 3 14* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 3 15* Add a DSA line type. 3 16* 2) change(87-03-17,Beattie), approve(87-07-13,MCR7656), 3 17* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 3 18* Add HASP_OPR to identify HASP workstation consoles with login service. 3 19* END HISTORY COMMENTS */ 3 20 3 21 3 22 declare (LINE_MC initial (-2), 3 23 LINE_TELNET initial (-1), 3 24 LINE_UNKNOWN initial (0), 3 25 LINE_ASCII initial (1), 3 26 LINE_1050 initial (2), 3 27 LINE_2741 initial (3), 3 28 LINE_ARDS initial (4), 3 29 LINE_SYNCH initial (5), 3 30 LINE_G115 initial (6), 3 31 LINE_BSC initial (7), 3 32 LINE_ETX initial (8), 3 33 LINE_VIP initial (9), 3 34 LINE_ASYNC1 initial (10), 3 35 LINE_ASYNC2 initial (11), 3 36 LINE_ASYNC3 initial (12), 3 37 LINE_SYNC1 initial (13), 3 38 LINE_SYNC2 initial (14), 3 39 LINE_SYNC3 initial (15), 3 40 LINE_POLLED_VIP initial (16), 3 41 LINE_X25LAP initial (17), 3 42 LINE_HDLC initial (18), 3 43 LINE_COLTS initial (19), 3 44 LINE_DSA initial (20), 3 45 LINE_HASP_OPR initial (21) 3 46 ) fixed bin internal static options (constant); 3 47 3 48 dcl max_line_type fixed bin int static options (constant) init (21); 3 49 3 50 declare n_sync_line_types fixed bin int static options (constant) init (10); 3 51 3 52 declare sync_line_type (10) fixed bin int static options (constant) init (5, 6, 7, 9, 13, 14, 15, 16, 17, 18); 3 53 3 54 dcl line_types (-2:21) char (16) int static options (constant) init ( 3 55 "MC", /* -2 */ 3 56 "TELNET", /* -1 */ 3 57 "none", /* 0 */ 3 58 "ASCII", /* 1 */ 3 59 "1050", /* 2 */ 3 60 "2741", /* 3 */ 3 61 "ARDS", /* 4 */ 3 62 "Sync", /* 5 */ 3 63 "G115", /* 6 */ 3 64 "BSC", /* 7 */ 3 65 "202ETX", /* 8 */ 3 66 "VIP", /* 9 */ 3 67 "ASYNC1", /* 10 */ 3 68 "ASYNC2", /* 11 */ 3 69 "ASYNC3", /* 12 */ 3 70 "SYNC1", /* 13 */ 3 71 "SYNC2", /* 14 */ 3 72 "SYNC3", /* 15 */ 3 73 "POLLED_VIP", /* 16 */ 3 74 "X25LAP", /* 17 */ 3 75 "HDLC", /* 18 */ 3 76 "COLTS", /* 19 */ 3 77 "DSA", /* 20 */ 3 78 "HASP_OPR"); /* 21 */ 3 79 3 80 /* END INCLUDE FILE ... line_types.incl.pl1 */ 625 626 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 */ 627 628 629 end fnp_data_summary; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 08/04/87 1540.8 fnp_data_summary.pl1 >special_ldd>install>MR12.1-1054>fnp_data_summary.pl1 623 1 08/18/77 1118.1 syserr_message.incl.pl1 >ldd>include>syserr_message.incl.pl1 624 2 03/27/82 0429.7 poll_fnp_data.incl.pl1 >ldd>include>poll_fnp_data.incl.pl1 625 3 08/04/87 1140.0 line_types.incl.pl1 >spec>install>1056>line_types.incl.pl1 627 4 03/15/85 0953.1 syserr_binary_def.incl.pl1 >ldd>include>syserr_binary_def.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. F_TIME 000317 automatic char(24) unaligned dcl 68 set ref 375* 380* 404* 406* 421* 422* L_TIME 000325 automatic char(24) unaligned dcl 68 set ref 376* 380* 405* 406* SB_fnp_poll constant fixed bin(17,0) initial dcl 4-47 ref 266 addr builtin function dcl 137 ref 245 268 316 328 384 all_fnps 000134 automatic bit(1) initial unaligned dcl 46 set ref 46* 165* 353 546* arg based char unaligned dcl 31 set ref 482 482 488 494 502 505 505 511 511 523 523 526 528* 531* 535 547 552* 604 611* 614* arg_copy 000454 automatic varying char(10) dcl 602 set ref 604* 607* 614* arg_count 000115 automatic fixed bin(17,0) dcl 32 set ref 155* 162 585 591 arg_len 000114 automatic fixed bin(17,0) dcl 30 set ref 482 482 488 494 498 502 505 505 511 511 523 523 526 528 528 531 531 535 547 552 552 578* 604 611 611 614 614 arg_list_ptr 000116 automatic pointer dcl 33 set ref 154* 578* arg_no 000156 automatic fixed bin(17,0) initial dcl 60 set ref 60* 578* 581* 584* 584 585 590* 590 591 arg_ptr 000112 automatic pointer dcl 29 set ref 482 482 488 494 499 502 505 505 511 511 523 523 526 528 531 535 547 552 578* 604 611 614 attach_desc 000242 automatic char(180) unaligned dcl 67 set ref 174* 175* 175 177* bf_sw 000133 automatic bit(1) initial unaligned dcl 45 set ref 45* buffer 10 based bit(36) array level 2 dcl 75 set ref 245 249 249 chan_index based fixed bin(18,0) array level 3 packed unsigned unaligned dcl 2-11 ref 311 431 chan_info 5 based structure array level 2 dcl 2-11 chan_name 5 based char(6) array level 3 in structure "poll_fnp_data" packed unaligned dcl 2-11 in procedure "fnp_data_summary" set ref 317 329 434* chan_name based char(6) level 2 in structure "fnp_chan_stats" packed unaligned dcl 87 in procedure "fnp_data_summary" set ref 317 329* 385* 386* chan_stats 1 based structure array level 2 dcl 83 set ref 316 328 384 chanx 000425 automatic fixed bin(17,0) dcl 418 in procedure "expand_syserr_entry" set ref 431* 432 434 435 chanx 000362 automatic fixed bin(17,0) dcl 298 in procedure "count_it" set ref 311* 317 329 330 chanx 000407 automatic fixed bin(17,0) dcl 367 in procedure "print_it" set ref 383* 384* check_fnp 000100 automatic fixed bin(17,0) dcl 23 set ref 534* 535* cleanup 000340 stack reference condition dcl 135 ref 141 code 000101 automatic fixed bin(35,0) dcl 24 set ref 143* 144 146* 155* 156 158* 177* 178 180* 184* 185 187* 192* 195 200 205* 206 208* 209 215* 216 218* 224* 225 227* 234* 235 237* 249* 251 253 255* 452* 455* 457* 465* 578* 579 581* 611* 612 614* com_err_ 000036 constant entry external dcl 115 ref 146 158 180 187 218 227 237 255 531 541 552 559 564 581 607 614 convert_date_to_binary_ 000054 constant entry external dcl 122 ref 611 convert_date_to_binary_$relative 000056 constant entry external dcl 123 ref 234 count_limit 000152 automatic fixed bin(17,0) initial dcl 57 set ref 57* cu_$arg_count 000050 constant entry external dcl 120 ref 155 cu_$arg_list_ptr 000046 constant entry external dcl 119 ref 154 cu_$arg_ptr_rel 000052 constant entry external dcl 121 ref 578 data based bit(36) array level 2 dcl 1-9 set ref 268 data_code 4 based fixed bin(11,0) level 2 packed unaligned dcl 1-9 ref 266 data_size 3(24) based fixed bin(11,0) level 2 packed unaligned dcl 1-9 ref 266 date_time_ 000044 constant entry external dcl 118 ref 375 376 404 405 421 day_limit 000153 automatic fixed bin(17,0) initial dcl 58 set ref 58* entries_found 774 based fixed bin(17,0) level 2 dcl 75 set ref 302 304* 304 380* 422* error_table_$badopt 000070 external static fixed bin(35,0) dcl 132 set ref 552* error_table_$end_of_info 000066 external static fixed bin(35,0) dcl 131 ref 253 error_table_$inconsistent 000072 external static fixed bin(35,0) dcl 133 set ref 559* 564* expand_sw 000141 automatic bit(1) initial unaligned dcl 50 set ref 50* 307 502* ext_file 000140 automatic bit(1) initial unaligned dcl 49 set ref 49* 175 523* 562 first_time 776 based fixed bin(71,0) level 2 dcl 75 set ref 302* 375* fnp_chan_statp 000336 automatic pointer dcl 70 set ref 316* 317 320 320 328* 329 330 331 332 384* 385 386 386 391 391 396 396 fnp_chan_stats based structure level 1 dcl 87 fnp_cnt 000163 automatic fixed bin(17,0) initial dcl 63 set ref 63* 165 349 355* 355 356 534 539 545* 545 547 fnp_name parameter char(4) dcl 343 ref 338 350 356 fnp_no 000436 automatic fixed bin(17,0) dcl 475 in procedure "scan_args" set ref 528* 529 fnp_no 000410 automatic fixed bin(17,0) dcl 368 in procedure "print_it" set ref 385* 386 386 fnp_only 000132 automatic bit(1) initial unaligned dcl 44 set ref 44* fnp_statp 000334 automatic pointer dcl 69 set ref 151* 152 315 316 327 327 328 328 373 383 384 fnp_stats based structure level 1 dcl 83 fnpreq based char(4) array level 2 dcl 75 set ref 350 356* 535 539 541 541 547* for_arg based char unaligned dcl 36 set ref 234* 237* for_len 000122 automatic fixed bin(17,0) dcl 35 set ref 234 234 237 237 498* for_ptr 000120 automatic pointer dcl 34 set ref 234 237 499* for_sw 000125 automatic bit(1) initial unaligned dcl 39 set ref 39* 232 496* 557 for_time 000150 automatic fixed bin(71,0) dcl 56 set ref 497* found 000363 automatic bit(1) unaligned dcl 299 set ref 314* 319* 325 from_sw 000123 automatic bit(1) initial unaligned dcl 37 set ref 37* 213 484* from_time 000144 automatic fixed bin(71,0) dcl 54 set ref 221* 224* 234* 242 404* 485* get_line_length_$switch 000060 constant entry external dcl 124 ref 192 get_temp_segments_ 000040 constant entry external dcl 116 ref 143 hbound builtin function dcl 137 ref 249 249 539 541 541 hsla_flag 000411 automatic bit(1) unaligned dcl 369 set ref 385* 386* i 000360 automatic fixed bin(17,0) dcl 296 in procedure "count_it" set ref 315* 316* i 000406 automatic fixed bin(17,0) dcl 366 in procedure "print_it" set ref 395* 396 396* 396* i 000376 automatic fixed bin(17,0) dcl 344 in procedure "look_for" set ref 349* 350* index builtin function dcl 137 ref 511 526 ioa_$ioa_switch 000022 constant entry external dcl 103 ref 377 379 380 386 391 396 406 422 425 434 438 iox_$attach_ioname 000024 constant entry external dcl 107 ref 177 iox_$close 000030 constant entry external dcl 109 ref 455 iox_$detach_iocb 000032 constant entry external dcl 110 ref 457 iox_$open 000026 constant entry external dcl 108 ref 184 iox_$user_output 000034 external static pointer dcl 111 ref 142 la_no 000412 automatic fixed bin(17,0) dcl 370 set ref 385* 386* last_chanx 000424 automatic fixed bin(17,0) dcl 417 set ref 429* 432 435* last_time 1000 based fixed bin(71,0) level 2 dcl 75 set ref 305* 376* 421* line_type 6(18) based fixed bin(17,0) array level 3 in structure "poll_fnp_data" packed unaligned dcl 2-11 in procedure "fnp_data_summary" ref 330 line_type 1(18) based fixed bin(17,0) level 2 in structure "fnp_chan_stats" packed unaligned dcl 87 in procedure "fnp_data_summary" set ref 330* 386 line_types 000000 constant char(16) initial array unaligned dcl 3-54 set ref 386* mask 000111 automatic bit(36) initial dcl 28 set ref 28* meter_format_$picture 000064 constant entry external dcl 127 ref 391 396 438 more_args 000126 automatic bit(1) unaligned dcl 40 set ref 162* 478 507 585* 591* 605 msg_seq 000162 automatic fixed bin(35,0) dcl 62 set ref 215* 224* msg_time 000160 automatic fixed bin(71,0) dcl 61 set ref 215* 221 224* n_channels based fixed bin(17,0) level 2 in structure "fnp_stats" dcl 83 in procedure "fnp_data_summary" set ref 152* 315 327* 327 328 373 383 n_channels 3 based fixed bin(17,0) level 2 in structure "poll_fnp_data" dcl 2-11 in procedure "fnp_data_summary" ref 311 312 320 320 332 431 438 438 438 n_stats 4 based fixed bin(17,0) level 2 dcl 2-11 ref 310 346 425 430 name 1 based char(4) level 2 in structure "poll_fnp_data" dcl 2-11 in procedure "fnp_data_summary" set ref 269* name 000140 constant char(17) initial unaligned dcl 21 in procedure "fnp_data_summary" set ref 143* 146* 158* 180* 187* 208* 218* 227* 237* 255* 465* 514 518 531* 541* 552* 559* 564* 581* 607* 614* of_file_att 000136 automatic bit(1) initial unaligned dcl 47 set ref 47* 183* 457 of_file_open 000137 automatic bit(1) initial unaligned dcl 47 set ref 47* 190* 455 of_path 000170 automatic char(168) unaligned dcl 66 set ref 174 180 180 187 187 511* 514* 518* open_status 000102 automatic bit(36) dcl 25 set ref 205* 206 208* output_file 000135 automatic bit(1) initial unaligned dcl 47 set ref 47* 169 200 453 520* 562 output_iocbp 000166 automatic pointer dcl 65 set ref 142* 177* 184* 192* 377* 379* 380* 386* 391* 396* 406* 422* 425* 434* 438* 455* 457* parse_fnp_name_ 000074 constant entry external dcl 476 ref 528 parse_tty_name_ 000062 constant entry external dcl 126 ref 385 poll_fnp_data based structure level 1 dcl 2-11 poll_fnp_datap 000350 automatic pointer dcl 2-6 set ref 268* 269 310 311 312 317 320 320 329 330 332 346 425 430 431 434 438 438 438 print_syserr_msg_$open_err 000012 constant entry external dcl 96 ref 208 ptr_array 000104 automatic pointer array dcl 26 set ref 143* 150 151 465* release_temp_segments_ 000042 constant entry external dcl 117 ref 465 segs_allocated 000142 automatic bit(1) initial unaligned dcl 51 set ref 51* 149* 462 464* short_arg 000130 automatic bit(1) initial unaligned dcl 42 set ref 42* 171 193 short_display_sw 000127 automatic bit(1) initial unaligned dcl 41 set ref 41* 171* 173* 195* 197* 199* 519* stat_index based fixed bin(18,0) array level 3 packed unsigned unaligned dcl 2-11 set ref 312 438 438* stat_info based structure array level 2 dcl 2-11 stat_type 000364 automatic fixed bin(17,0) dcl 300 set ref 312* 320 320 332 stats 2 based fixed bin(35,0) array level 2 dcl 87 set ref 320 320* 331* 332* 391 391* 396 396* statx 000361 automatic fixed bin(17,0) dcl 297 in procedure "count_it" set ref 310* 311 312 320 320 332* statx 000426 automatic fixed bin(17,0) dcl 419 in procedure "expand_syserr_entry" set ref 430* 431 438 438 438* subchan 000413 automatic fixed bin(17,0) dcl 371 set ref 385* 386* substr builtin function dcl 137 ref 206 386 386 syserr_log_util_$close 000016 constant entry external dcl 98 ref 452 syserr_log_util_$open 000010 constant entry external dcl 95 ref 205 syserr_log_util_$read 000014 constant entry external dcl 97 ref 249 syserr_log_util_$search 000020 constant entry external dcl 99 ref 215 224 syserr_msg based structure level 1 dcl 1-9 syserr_msgp 000346 automatic pointer dcl 1-7 set ref 245* 249* 261 264 266 266 268 302 305 t parameter fixed bin(71,0) dcl 601 set ref 598 611* tab_cnt 000110 automatic fixed bin(17,0) initial dcl 27 set ref 27* temp 000164 automatic fixed bin(17,0) dcl 64 set ref 192* 195 text_len 3(12) based fixed bin(11,0) level 2 packed unaligned dcl 1-9 ref 268 time 1 based fixed bin(71,0) level 2 packed unaligned dcl 1-9 ref 261 264 302 305 to_sw 000124 automatic bit(1) initial unaligned dcl 38 set ref 38* 240* 242 259 490* 557 to_time 000146 automatic fixed bin(71,0) dcl 55 set ref 234* 242* 261 264* 405* 491* top_of_page_req 000131 automatic bit(1) initial unaligned dcl 43 set ref 43* 200* 202* 377 value based fixed bin(35,0) array level 3 dcl 2-11 set ref 320 320 332 438* work based structure level 1 dcl 75 workp 000154 automatic pointer dcl 59 set ref 150* 245 249 249 302 302 304 304 305 350 356 375 376 380 421 422 535 539 541 541 547 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. LINE_1050 internal static fixed bin(17,0) initial dcl 3-22 LINE_2741 internal static fixed bin(17,0) initial dcl 3-22 LINE_ARDS internal static fixed bin(17,0) initial dcl 3-22 LINE_ASCII internal static fixed bin(17,0) initial dcl 3-22 LINE_ASYNC1 internal static fixed bin(17,0) initial dcl 3-22 LINE_ASYNC2 internal static fixed bin(17,0) initial dcl 3-22 LINE_ASYNC3 internal static fixed bin(17,0) initial dcl 3-22 LINE_BSC internal static fixed bin(17,0) initial dcl 3-22 LINE_COLTS internal static fixed bin(17,0) initial dcl 3-22 LINE_DSA internal static fixed bin(17,0) initial dcl 3-22 LINE_ETX internal static fixed bin(17,0) initial dcl 3-22 LINE_G115 internal static fixed bin(17,0) initial dcl 3-22 LINE_HASP_OPR internal static fixed bin(17,0) initial dcl 3-22 LINE_HDLC internal static fixed bin(17,0) initial dcl 3-22 LINE_MC internal static fixed bin(17,0) initial dcl 3-22 LINE_POLLED_VIP internal static fixed bin(17,0) initial dcl 3-22 LINE_SYNC1 internal static fixed bin(17,0) initial dcl 3-22 LINE_SYNC2 internal static fixed bin(17,0) initial dcl 3-22 LINE_SYNC3 internal static fixed bin(17,0) initial dcl 3-22 LINE_SYNCH internal static fixed bin(17,0) initial dcl 3-22 LINE_TELNET internal static fixed bin(17,0) initial dcl 3-22 LINE_UNKNOWN internal static fixed bin(17,0) initial dcl 3-22 LINE_VIP internal static fixed bin(17,0) initial dcl 3-22 LINE_X25LAP internal static fixed bin(17,0) initial dcl 3-22 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_disk_err internal static fixed bin(17,0) initial dcl 4-47 SB_end_of_table 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_err internal static fixed bin(17,0) initial dcl 4-47 SB_io_err_detail internal static fixed bin(17,0) initial dcl 4-47 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_ocdcm_err internal static fixed bin(17,0) initial dcl 4-47 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 bin builtin function dcl 137 conversion 000000 stack reference condition dcl 135 display_cpu_error_binary_defs internal static fixed bin(17,0) initial array dcl 4-144 divide builtin function dcl 137 i automatic fixed bin(17,0) dcl 20 ioa_ 000000 constant entry external dcl 103 max_line_type internal static fixed bin(17,0) initial dcl 3-48 n_sync_line_types internal static fixed bin(17,0) initial dcl 3-50 poll_fnp_data_n_channels automatic fixed bin(17,0) dcl 2-8 poll_fnp_data_n_stats automatic fixed bin(17,0) dcl 2-9 poll_fnp_data_version_1 internal static fixed bin(17,0) initial dcl 2-7 sync_line_type internal static fixed bin(17,0) initial array dcl 3-52 sys_info_$time_delta external static fixed bin(35,0) dcl 125 syserr_binary_address_damage_mask internal static bit(36) initial unaligned dcl 4-142 syserr_binary_mos_mask internal static bit(36) initial unaligned dcl 4-139 syserr_binary_seg_damage_mask internal static bit(36) initial unaligned dcl 4-140 syserr_binary_vol_damage_mask internal static bit(36) initial unaligned dcl 4-141 NAMES DECLARED BY EXPLICIT CONTEXT. clean_up 003157 constant entry internal dcl 449 ref 141 282 count_it 001706 constant entry internal dcl 289 ref 269 done 001701 constant label dcl 282 ref 147 181 188 209 219 228 238 256 532 542 553 560 565 582 608 615 expand_syserr_entry 002667 constant entry internal dcl 414 ref 307 fnp_data_summary 000517 constant entry external dcl 17 get_arg 003771 constant entry internal dcl 575 ref 479 509 610 look_for 002115 constant entry internal dcl 338 ref 269 loop 001552 constant label dcl 249 ref 273 print 001700 constant label dcl 277 ref 253 261 print_it 002176 constant entry internal dcl 364 ref 277 put_arg 004051 constant entry internal dcl 588 ref 515 scan_args 003253 constant entry internal dcl 472 ref 163 skip 003650 constant label dcl 548 ref 535 time_arg 004061 constant entry internal dcl 598 ref 485 491 497 NAME DECLARED BY CONTEXT OR IMPLICATION. rtrim builtin function ref 174 175 180 180 187 187 514 518 STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 4574 4672 4234 4604 Length 5230 4234 76 321 340 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME fnp_data_summary 618 external procedure is an external procedure. on unit on line 141 64 on unit count_it internal procedure shares stack frame of external procedure fnp_data_summary. look_for internal procedure shares stack frame of external procedure fnp_data_summary. print_it internal procedure shares stack frame of external procedure fnp_data_summary. expand_syserr_entry internal procedure shares stack frame of external procedure fnp_data_summary. clean_up 88 internal procedure is called by several nonquick procedures. scan_args internal procedure shares stack frame of external procedure fnp_data_summary. get_arg internal procedure shares stack frame of external procedure fnp_data_summary. time_arg internal procedure shares stack frame of external procedure fnp_data_summary. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME fnp_data_summary 000100 check_fnp fnp_data_summary 000101 code fnp_data_summary 000102 open_status fnp_data_summary 000104 ptr_array fnp_data_summary 000110 tab_cnt fnp_data_summary 000111 mask fnp_data_summary 000112 arg_ptr fnp_data_summary 000114 arg_len fnp_data_summary 000115 arg_count fnp_data_summary 000116 arg_list_ptr fnp_data_summary 000120 for_ptr fnp_data_summary 000122 for_len fnp_data_summary 000123 from_sw fnp_data_summary 000124 to_sw fnp_data_summary 000125 for_sw fnp_data_summary 000126 more_args fnp_data_summary 000127 short_display_sw fnp_data_summary 000130 short_arg fnp_data_summary 000131 top_of_page_req fnp_data_summary 000132 fnp_only fnp_data_summary 000133 bf_sw fnp_data_summary 000134 all_fnps fnp_data_summary 000135 output_file fnp_data_summary 000136 of_file_att fnp_data_summary 000137 of_file_open fnp_data_summary 000140 ext_file fnp_data_summary 000141 expand_sw fnp_data_summary 000142 segs_allocated fnp_data_summary 000144 from_time fnp_data_summary 000146 to_time fnp_data_summary 000150 for_time fnp_data_summary 000152 count_limit fnp_data_summary 000153 day_limit fnp_data_summary 000154 workp fnp_data_summary 000156 arg_no fnp_data_summary 000160 msg_time fnp_data_summary 000162 msg_seq fnp_data_summary 000163 fnp_cnt fnp_data_summary 000164 temp fnp_data_summary 000166 output_iocbp fnp_data_summary 000170 of_path fnp_data_summary 000242 attach_desc fnp_data_summary 000317 F_TIME fnp_data_summary 000325 L_TIME fnp_data_summary 000334 fnp_statp fnp_data_summary 000336 fnp_chan_statp fnp_data_summary 000346 syserr_msgp fnp_data_summary 000350 poll_fnp_datap fnp_data_summary 000360 i count_it 000361 statx count_it 000362 chanx count_it 000363 found count_it 000364 stat_type count_it 000376 i look_for 000406 i print_it 000407 chanx print_it 000410 fnp_no print_it 000411 hsla_flag print_it 000412 la_no print_it 000413 subchan print_it 000424 last_chanx expand_syserr_entry 000425 chanx expand_syserr_entry 000426 statx expand_syserr_entry 000436 fnp_no scan_args 000454 arg_copy time_arg THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. r_g_a r_e_as r_le_a alloc_char_temp call_ext_out_desc call_ext_out call_int_this call_int_other return_mac enable_op shorten_stack ext_entry int_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. com_err_ convert_date_to_binary_ convert_date_to_binary_$relative cu_$arg_count cu_$arg_list_ptr cu_$arg_ptr_rel date_time_ get_line_length_$switch get_temp_segments_ ioa_$ioa_switch iox_$attach_ioname iox_$close iox_$detach_iocb iox_$open meter_format_$picture parse_fnp_name_ parse_tty_name_ print_syserr_msg_$open_err release_temp_segments_ 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. error_table_$badopt error_table_$end_of_info error_table_$inconsistent iox_$user_output LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 17 000516 27 000524 28 000525 37 000526 38 000527 39 000530 41 000531 42 000533 43 000534 44 000535 45 000536 46 000537 47 000540 49 000543 50 000544 51 000545 57 000546 58 000547 60 000550 63 000552 141 000553 142 000575 143 000601 144 000621 146 000623 147 000647 149 000650 150 000652 151 000654 152 000656 154 000657 155 000666 156 000677 158 000701 159 000716 162 000717 163 000722 165 000723 169 000727 171 000731 173 000736 174 000737 175 000765 177 001016 178 001051 180 001053 181 001124 183 001126 184 001130 185 001151 187 001153 188 001225 190 001227 192 001231 193 001244 195 001246 197 001255 198 001257 199 001260 200 001262 202 001271 205 001272 206 001303 208 001311 209 001332 213 001334 215 001336 216 001355 218 001357 219 001403 221 001404 222 001406 224 001407 225 001424 227 001426 228 001452 232 001453 234 001455 235 001504 237 001506 238 001540 240 001541 242 001543 245 001547 249 001552 251 001572 253 001574 255 001577 256 001625 259 001626 261 001630 263 001636 264 001637 266 001644 268 001654 269 001663 273 001677 277 001700 282 001701 284 001705 289 001706 302 001707 304 001717 305 001720 307 001725 310 001730 311 001741 312 001753 314 001773 315 001774 316 002003 317 002007 319 002023 320 002025 323 002042 325 002044 327 002046 328 002047 329 002054 330 002064 331 002066 332 002077 334 002112 335 002114 338 002115 346 002117 349 002127 350 002137 352 002151 353 002153 355 002155 356 002156 357 002163 359 002170 364 002176 373 002177 375 002201 376 002217 377 002235 379 002257 380 002276 383 002332 384 002341 385 002345 386 002374 391 002455 395 002521 396 002527 399 002600 400 002602 401 002604 404 002605 405 002622 406 002637 410 002666 414 002667 421 002670 422 002706 425 002737 429 002766 430 002767 431 002775 432 003007 434 003011 435 003042 438 003044 441 003153 444 003155 449 003156 452 003164 453 003173 455 003176 457 003211 462 003225 464 003230 465 003231 467 003252 472 003253 478 003254 479 003256 482 003257 484 003271 485 003273 486 003275 488 003276 490 003302 491 003304 492 003306 494 003307 496 003313 497 003315 498 003317 499 003321 500 003323 502 003324 505 003333 507 003343 509 003345 511 003346 514 003366 515 003414 517 003416 518 003417 519 003445 520 003447 521 003451 523 003452 526 003465 528 003477 529 003517 531 003521 532 003555 534 003556 535 003565 537 003575 539 003577 541 003602 542 003635 545 003636 546 003637 547 003640 548 003650 552 003651 553 003703 555 003704 557 003705 559 003711 560 003736 562 003737 564 003743 565 003767 569 003770 575 003771 578 003772 579 004011 581 004013 582 004042 584 004043 585 004044 586 004050 588 004051 590 004052 591 004054 592 004060 598 004061 604 004063 605 004074 607 004076 608 004127 610 004130 611 004131 612 004156 614 004160 615 004216 618 004217 ----------------------------------------------------------- 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