COMPILATION LISTING OF SEGMENT poll_fnp Compiled by: Multics PL/I Compiler, Release 30, of February 16, 1988 Compiled at: Honeywell Bull, Phoenix AZ, SysM Compiled on: 07/20/88 1040.2 mst Wed 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 /* POLL_FNP - Command to periodically log the statistics for FNPs */ 12 /* Written July 1981 by Robert Coren, in imitation of poll_mpc */ 13 /* Modified October 1982 by C. Hornig for new config tools. */ 14 /* Modified 83-12-15 BIM for prph fnp cards */ 15 16 /* format: style4,delnl,insnl,^ifthendo */ 17 poll_fnp: 18 proc; 19 20 /* Parameters */ 21 22 dcl arg_event_call_info_ptr ptr; 23 24 /* Automatic */ 25 26 dcl code fixed bin (35); 27 dcl argp ptr; 28 dcl argl fixed bin; 29 dcl log_fnp_entryp ptr; 30 dcl log_fnp_data_n_fnps fixed bin; 31 dcl time_sw bit (1); 32 dcl output_file_sw bit (1); 33 dcl log_sw bit (1); 34 dcl off_sw bit (1); 35 dcl on_sw bit (1); 36 dcl finish_sw bit (1); 37 dcl debug_sw bit (1); 38 dcl fnp_cnt fixed bin; 39 dcl time_int fixed bin; 40 dcl fnp_list (8) char (4); 41 dcl argno fixed bin; 42 dcl n_args fixed bin; 43 dcl more_args bit (1); 44 dcl arg_list_ptr ptr; 45 dcl output_file char (201); 46 dcl log_fnp_datap ptr; 47 dcl (i, j) fixed bin; 48 dcl char8 char (8) aligned; 49 dcl event_message fixed bin (71); 50 dcl fnp_x fixed bin; 51 dcl fnp_name char (4); 52 dcl starname (1) char (32); 53 dcl meter_areap ptr; 54 dcl orig_chan_meterp ptr; 55 dcl meterp ptr; 56 dcl n_channels fixed bin; 57 dcl chanx fixed bin; 58 dcl n_stats fixed bin; 59 60 61 /* Constants */ 62 63 dcl name char (8) int static options (constant) init ("poll_fnp"); 64 65 /* Static */ 66 67 dcl static_log_fnp_datap ptr int static init (null); 68 69 /* Based */ 70 71 dcl arg char (argl) based (argp); 72 73 dcl 1 log_fnp_data aligned based (log_fnp_datap), 74 2 n_fnps fixed bin, /* Number of fnps configured */ 75 2 overrun_count fixed bin, /* Consecutive polling cycles missed because previous one slow */ 76 2 timer_event fixed bin (71), /* Event channel for driving polling */ 77 2 next_cycle_sched fixed bin (71), /* Time of next scheduled run */ 78 2 interval fixed bin (71), /* Time (in microseconds) between scheduled runs */ 79 2 iocbp ptr, 80 2 flags unal, 81 3 debug bit (1), 82 3 log bit (1), 83 3 output_file bit (1), 84 3 finish bit (1), 85 3 pad bit (32), 86 2 attach_desc char (256) varying, 87 2 fnp_entry (log_fnp_data_n_fnps refer (log_fnp_data.n_fnps)) like log_fnp_entry; 88 89 dcl 1 log_fnp_entry aligned based (log_fnp_entryp), 90 2 fnp_name char (4), 91 2 model fixed bin, 92 2 times_dumped fixed bin (35), 93 2 times_failed fixed bin (35), 94 2 on bit (1); 95 96 97 /* External */ 98 99 dcl config_$find_2 entry (character (4) aligned, character (4) aligned, pointer); 100 dcl com_err_ entry options (variable); 101 dcl cu_$arg_count entry (fixed bin, fixed bin (35)); 102 dcl absolute_pathname_ entry (char (*), char (*), fixed bin (35)); 103 dcl cu_$arg_list_ptr entry (ptr); 104 dcl cu_$arg_ptr_rel entry (fixed bin, ptr, fixed bin, fixed bin (35), ptr); 105 dcl get_process_id_ entry () returns (bit (36)); 106 dcl get_system_free_area_ entry (ptr); 107 dcl get_fnp_name_ entry (fixed bin) returns (char (32)); 108 dcl hcs_$initiate entry (char (*), char (*), char (*), fixed bin (1), fixed bin (2), ptr, fixed bin (35)); 109 dcl hcs_$wakeup entry (bit (*), fixed bin (71), fixed bin (71), fixed bin (35)); 110 dcl ( 111 ioa_, 112 ioa_$nnl 113 ) entry options (variable); 114 dcl ipc_$create_ev_chn entry (fixed bin (71), fixed bin (35)); 115 dcl ipc_$decl_ev_call_chn entry (fixed bin (71), ptr, ptr, fixed bin, fixed bin (35)); 116 dcl timer_manager_$reset_alarm_wakeup entry (fixed bin (71)); 117 dcl ipc_$drain_chn entry (fixed bin (71), fixed bin (35)); 118 dcl timer_manager_$alarm_wakeup entry (fixed bin (71), bit (2), fixed bin (71)); 119 dcl ipc_$delete_ev_chn entry (fixed bin (71), fixed bin (35)); 120 dcl iox_$attach_name entry (char (*), ptr, char (*), ptr, fixed bin (35)); 121 dcl iox_$open entry (ptr, fixed bin, bit (1) aligned, fixed bin (35)); 122 dcl iox_$close entry (ptr, fixed bin (35)); 123 dcl iox_$detach_iocb entry (ptr, fixed bin (35)); 124 dcl iox_$put_chars entry (ptr, ptr, fixed bin (21), fixed bin (35)); 125 dcl hphcs_$syserr_binary entry options (variable); 126 dcl comm_meters_ entry ((*) char (*), fixed bin, ptr, fixed bin, ptr, fixed bin (35)); 127 dcl comm_meters_$free entry (ptr, ptr, fixed bin (35)); 128 dcl find_condition_info_ entry (ptr, ptr, fixed bin (35)); 129 dcl continue_to_signal_ entry (fixed bin (35)); 130 131 dcl error_table_$too_many_args ext fixed bin (35); 132 dcl error_table_$noarg ext fixed bin (35); 133 dcl error_table_$badopt ext fixed bin (35); 134 dcl error_table_$inconsistent ext fixed bin (35); 135 136 /* Internal static */ 137 138 dcl SYS_CONTROL_DIR char (17) internal static options (constant) init (">system_control_1"); 139 140 /* Conditions & builtins */ 141 142 dcl (cleanup, conversion, sub_error_) condition; 143 144 dcl (addr, bin, clock, codeptr, currentsize, hbound, index, null, rtrim, sum, unspec) builtin; 145 146 /* Command entry to setup the command */ 147 148 call cu_$arg_count (n_args, code); 149 if code ^= 0 150 then do; 151 call com_err_ (code, name); 152 return; 153 end; 154 call cu_$arg_list_ptr (arg_list_ptr); 155 argno = 1; 156 more_args = (argno <= n_args); 157 158 time_sw = "0"b; 159 output_file_sw = "0"b; 160 log_sw = "0"b; 161 off_sw = "0"b; 162 on_sw = "0"b; 163 finish_sw = "0"b; 164 debug_sw = "0"b; 165 fnp_cnt = 0; 166 log_fnp_datap = null (); 167 168 do while (more_args); 169 call get_arg; 170 if index (arg, "-") ^= 1 171 then do; /* Must be fnp name */ 172 if fnp_cnt >= hbound (fnp_list, 1) 173 then do; 174 call com_err_ (error_table_$too_many_args, name, "More than ^d FNPs listed.", 175 hbound (fnp_list, 1)); 176 go to error_return; 177 end; 178 fnp_cnt = fnp_cnt + 1; 179 fnp_list (fnp_cnt) = arg; 180 end; 181 else if arg = "-time" | arg = "-tm" 182 then do; 183 if ^more_args 184 then do; 185 missing: 186 call com_err_ (error_table_$noarg, name, "After ^a.", arg); 187 go to error_return; 188 end; 189 call get_arg; 190 on conversion go to bad_time; 191 time_int = bin (arg); 192 revert conversion; 193 if time_int <= 0 194 then do; 195 bad_time: 196 call com_err_ (0, name, "Invalid time specified: ^a", arg); 197 go to error_return; 198 end; 199 time_sw = "1"b; 200 end; 201 else if arg = "-output_file" | arg = "-of" 202 then do; 203 if ^more_args 204 then go to missing; 205 call get_arg; 206 call absolute_pathname_ (arg, output_file, code); 207 if code ^= 0 208 then do; 209 call com_err_ (code, name, "^a", arg); 210 go to error_return; 211 end; 212 output_file_sw = "1"b; 213 end; 214 else if arg = "-log" 215 then log_sw = "1"b; 216 else if arg = "-stop" | arg = "-sp" 217 then do; 218 off_sw = "1"b; 219 on_sw = "0"b; 220 end; 221 else if arg = "-start" | arg = "-sr" 222 then do; 223 on_sw = "1"b; 224 off_sw = "0"b; 225 end; 226 else if arg = "-finish" 227 then finish_sw = "1"b; 228 else if arg = "-debug" | arg = "-db" 229 then debug_sw = "1"b; 230 else do; 231 call com_err_ (error_table_$badopt, name, "^a", arg); 232 go to error_return; 233 end; 234 end; 235 236 /* This code handles modifications to running polling */ 237 238 if static_log_fnp_datap ^= null () 239 then do; 240 log_fnp_datap = static_log_fnp_datap; 241 if log_fnp_data.finish 242 then do; 243 call com_err_ (0, name, "Finish operation in progress. Requests not accepted until it completes."); 244 go to error_return; 245 end; 246 if n_args = 0 247 then do; /* Some argument required to adjust polling */ 248 call com_err_ (error_table_$noarg, name, "Polling already in progress."); 249 go to error_return; 250 end; 251 if time_sw 252 then log_fnp_data.interval = 60 * 1000000 * time_int; 253 if debug_sw 254 then log_fnp_data.debug = "1"b; 255 if output_file_sw 256 then do; 257 log_fnp_data.attach_desc = "vfile_ " || rtrim (output_file) || " -extend"; 258 log_fnp_data.output_file = "1"b; 259 end; 260 if log_sw 261 then log_fnp_data.log = "1"b; 262 if on_sw | off_sw | (fnp_cnt > 0) 263 then do; 264 if fnp_cnt > 0 265 then call validate_fnp_list; 266 if ^(on_sw | off_sw) 267 then on_sw = "1"b; 268 do i = 1 to log_fnp_data.n_fnps; 269 log_fnp_entryp = addr (log_fnp_data.fnp_entry (i)); 270 if listed_fnp () 271 then log_fnp_entry.on = on_sw; 272 end; 273 end; 274 if finish_sw 275 then do; 276 call timer_manager_$reset_alarm_wakeup (log_fnp_data.timer_event); 277 call ipc_$drain_chn (log_fnp_data.timer_event, code); 278 char8 = "finish"; 279 unspec (event_message) = unspec (char8); 280 call hcs_$wakeup (get_process_id_ (), log_fnp_data.timer_event, event_message, code); 281 if code ^= 0 282 then do; 283 call com_err_ (code, name, "Unable to send finish wakeup."); 284 end; 285 log_fnp_data.finish = "1"b; 286 end; 287 go to done; 288 end; 289 290 /* This code handles starting polling for the first time */ 291 292 if on_sw | off_sw | finish_sw 293 then do; 294 call com_err_ (error_table_$inconsistent, name, 295 "Args -on, -off, -finish not permitted before polling started."); 296 go to error_return; 297 end; 298 if ^(log_sw | output_file_sw) 299 then log_sw = "1"b; 300 301 on cleanup call command_cleanup; 302 303 call setup_static_data; 304 305 log_fnp_data.iocbp = null (); 306 log_fnp_data.debug = debug_sw; 307 308 if fnp_cnt > 0 309 then call validate_fnp_list; 310 311 do i = 1 to log_fnp_data.n_fnps; 312 log_fnp_entryp = addr (log_fnp_data.fnp_entry (i)); 313 if listed_fnp () 314 then log_fnp_entry.on = "1"b; 315 end; 316 317 log_fnp_data.log = log_sw; 318 if output_file_sw 319 then do; 320 log_fnp_data.attach_desc = "vfile_ " || rtrim (output_file) || " -extend"; 321 log_fnp_data.output_file = "1"b; 322 end; 323 324 if ^time_sw 325 then time_int = 15; 326 log_fnp_data.interval = time_int * 60 * 1000000; 327 328 call ipc_$create_ev_chn (log_fnp_data.timer_event, code); 329 if code ^= 0 330 then do; 331 call com_err_ (code, name, "Unable to create event channel."); 332 go to error_return; 333 end; 334 call ipc_$decl_ev_call_chn (log_fnp_data.timer_event, codeptr (timer_wakeup), log_fnp_datap, 30, code); 335 /* Priority = 30 appropriate in Initializer */ 336 if code ^= 0 337 then do; 338 call com_err_ (code, name, "Unable to setup event call channel."); 339 go to error_return; 340 end; 341 342 char8 = "start"; 343 unspec (event_message) = unspec (char8); 344 log_fnp_data.next_cycle_sched = clock (); 345 call hcs_$wakeup (get_process_id_ (), log_fnp_data.timer_event, event_message, code); 346 if code ^= 0 347 then do; 348 call com_err_ (code, name, "Unable to send first wakeup."); 349 go to error_return; 350 end; 351 static_log_fnp_datap = log_fnp_datap; 352 353 done: 354 return; 355 356 error_return: 357 call command_cleanup; 358 return; 359 360 /* Timer wakeup to start polling operation */ 361 362 timer_wakeup: 363 entry (arg_event_call_info_ptr); 364 365 event_call_info_ptr = arg_event_call_info_ptr; 366 log_fnp_datap = event_call_info.data_ptr; 367 368 if log_fnp_datap ^= static_log_fnp_datap 369 then return; /* Spurious */ 370 if event_call_info.channel_id ^= log_fnp_data.timer_event 371 then return; /* Likewise */ 372 373 unspec (char8) = unspec (event_call_info.message); 374 if log_fnp_data.debug 375 then do; 376 call ioa_$nnl ("Timer wakeup: ^a. Processing:", char8); 377 do i = 1 to log_fnp_data.n_fnps; 378 log_fnp_entryp = addr (log_fnp_data.fnp_entry (i)); 379 if log_fnp_entry.on 380 then call ioa_$nnl (" ^a", log_fnp_entry.fnp_name); 381 end; 382 call ioa_ (""); 383 end; 384 385 386 387 if ^log_fnp_data.finish 388 then do; 389 log_fnp_data.next_cycle_sched = log_fnp_data.next_cycle_sched + log_fnp_data.interval; 390 if log_fnp_data.next_cycle_sched <= clock () 391 then do; 392 call com_err_ (0, name, "Polling overrun. Previous cycle still in progress."); 393 log_fnp_data.overrun_count = log_fnp_data.overrun_count + 1; 394 if log_fnp_data.overrun_count >= 3 395 then do; 396 log_fnp_data.finish = "1"b; 397 call com_err_ (0, name, "Polling abandoned. Too many polling overruns occured."); 398 end; 399 400 else do while (log_fnp_data.next_cycle_sched <= clock ()); 401 log_fnp_data.next_cycle_sched = log_fnp_data.next_cycle_sched + log_fnp_data.interval; 402 end; 403 end; 404 else log_fnp_data.overrun_count = 0; /* Keeping up ok */ 405 406 if ^log_fnp_data.finish 407 then call timer_manager_$alarm_wakeup (log_fnp_data.next_cycle_sched, "00"b, log_fnp_data.timer_event); 408 end; 409 410 /* Attach output file if specified */ 411 412 if log_fnp_data.output_file 413 then do; 414 call iox_$attach_name ("poll_fnp", log_fnp_data.iocbp, (log_fnp_data.attach_desc), null (), code); 415 if code ^= 0 416 then do; 417 call com_err_ (code, name, "Unable to attach output file."); 418 log_fnp_data.iocbp = null (); 419 go to wrapup; 420 end; 421 call iox_$open (log_fnp_data.iocbp, Stream_output, "0"b, code); 422 if code ^= 0 423 then do; 424 call com_err_ (code, name, "Unable to open output file."); 425 call iox_$detach_iocb (log_fnp_data.iocbp, code); 426 log_fnp_data.iocbp = null (); 427 end; 428 end; 429 430 on sub_error_ 431 begin; 432 433 dcl code fixed bin (35); 434 dcl pass_on bit (1); 435 dcl 1 auto_cond_info aligned like condition_info; 436 437 pass_on = "0"b; 438 condition_info_ptr = addr (auto_cond_info); 439 call find_condition_info_ (null (), condition_info_ptr, code); 440 if code ^= 0 /* rather unlikely */ 441 then pass_on = "1"b; /* but we'll let someone else worry about it */ 442 443 else if condition_info.info_ptr = null () | condition_info.condition_name ^= "sub_error_" 444 /* we're not about to deal with this */ 445 then pass_on = "1"b; 446 447 else do; 448 sub_error_info_ptr = condition_info.info_ptr; 449 if sub_error_info.name ^= "comm_meters_" 450 /* not someone we know */ 451 then pass_on = "1"b; 452 end; 453 454 if pass_on 455 then call continue_to_signal_ (code); 456 end; 457 458 call get_system_free_area_ (meter_areap); 459 do fnp_x = 1 to log_fnp_data.n_fnps; 460 log_fnp_entryp = addr (log_fnp_data.fnp_entry (fnp_x)); 461 if log_fnp_entry.on 462 then do; 463 fnp_name = log_fnp_entry.fnp_name; 464 starname (1) = rtrim (fnp_name) || ".*";/* all immediate subchannels of this FNP */ 465 log_fnp_entry.times_dumped = log_fnp_entry.times_dumped + 1; 466 call comm_meters_ (starname, CHANNEL_METERS_VERSION_1, meter_areap, n_channels, orig_chan_meterp, 467 code); 468 if code ^= 0 469 then do; 470 log_fnp_entry.times_failed = log_fnp_entry.times_failed + 1; 471 call com_err_ (code, name, "Unable to get statistics for FNP ^a", fnp_name); 472 go to next_fnp; 473 end; 474 475 chan_meterp = orig_chan_meterp; 476 poll_fnp_data_n_channels = n_channels; 477 poll_fnp_data_n_stats = 9 * n_channels; /* we'll allocate space for all of them and fre unneeded ones later */ 478 allocate poll_fnp_data; 479 chanx = 0; 480 n_stats = 0; 481 482 poll_fnp_data.version = poll_fnp_data_version_1; 483 poll_fnp_data.name = log_fnp_entry.fnp_name; 484 poll_fnp_data.model = log_fnp_entry.model; 485 486 do while (chan_meterp ^= null ()); 487 fnp_chan_meterp = channel_meters.parent_meterp; 488 meterp = addr (fnp_chan_meter_struc.current_meters); 489 if meterp -> fnp_channel_meters.parity_errors ^= 0 490 | fnp_chan_meter_struc.synchronous & sum (meterp -> fnp_sync_meters.counters) ^= 0 491 then do; 492 chanx = chanx + 1; 493 poll_fnp_data.chan_info (chanx).chan_name = channel_meters.channel_name; 494 poll_fnp_data.chan_info (chanx).line_type = channel_meters.line_type; 495 496 if fnp_chan_meter_struc.synchronous 497 then do i = 1 to hbound (meterp -> fnp_sync_meters.counters, 1); 498 if meterp -> fnp_sync_meters.counters (i) > 0 499 then do; 500 n_stats = n_stats + 1; 501 poll_fnp_data.stat_info (n_stats).chan_index = chanx; 502 poll_fnp_data.stat_info (n_stats).stat_index = i; 503 poll_fnp_data.stat_info (n_stats).value = meterp -> fnp_sync_meters.counters (i); 504 end; 505 end; 506 507 if meterp -> fnp_channel_meters.parity_errors > 0 508 then do; 509 n_stats = n_stats + 1; 510 poll_fnp_data.stat_info (n_stats).chan_index = chanx; 511 poll_fnp_data.stat_info (n_stats).stat_index = 9; 512 poll_fnp_data.stat_info (n_stats).value = meterp -> fnp_channel_meters.parity_errors; 513 end; 514 end; 515 516 chan_meterp = channel_meters.next_channelp; 517 end; 518 519 poll_fnp_data.n_stats = n_stats; 520 poll_fnp_data.n_channels = n_channels; 521 522 if log_fnp_data.log 523 then call hphcs_$syserr_binary (5, poll_fnp_datap, SB_fnp_poll, currentsize (poll_fnp_data), 524 "poll_fnp: polled ^a", log_fnp_entry.fnp_name); 525 else if log_fnp_data.iocbp ^= null () 526 then call iox_$put_chars (log_fnp_data.iocbp, poll_fnp_datap, 4 * currentsize (poll_fnp_data), code); 527 528 poll_fnp_data.n_stats = poll_fnp_data_n_stats; 529 free poll_fnp_data; 530 call comm_meters_$free (meter_areap, orig_chan_meterp, code); 531 end; 532 next_fnp: 533 end; 534 535 /* Finished with this cycle */ 536 537 wrapup: 538 if log_fnp_data.iocbp ^= null () 539 then do; 540 call iox_$close (log_fnp_data.iocbp, code); 541 call iox_$detach_iocb (log_fnp_data.iocbp, code); 542 log_fnp_data.iocbp = null (); 543 end; 544 if log_fnp_data.finish 545 then do; /* This is last cycle */ 546 call ioa_ ("^a: Finished.", name); 547 call ipc_$delete_ev_chn (log_fnp_data.timer_event, code); 548 static_log_fnp_datap = null (); 549 log_fnp_data_n_fnps = log_fnp_data.n_fnps; 550 free log_fnp_data; 551 end; 552 return; 553 554 get_arg: 555 proc; 556 557 call cu_$arg_ptr_rel (argno, argp, argl, code, arg_list_ptr); 558 if code ^= 0 559 then do; 560 call com_err_ (code, name, "Can't happen."); 561 go to error_return; 562 end; 563 argno = argno + 1; 564 more_args = (argno <= n_args); 565 return; 566 567 put_arg: 568 entry; 569 570 argno = argno - 1; 571 more_args = (argno <= n_args); 572 return; 573 574 end get_arg; 575 576 /* Routine to setup static data-base */ 577 578 setup_static_data: 579 proc; 580 581 dcl i fixed bin; 582 dcl fnpx fixed bin; 583 584 /* First, count fnp's */ 585 586 log_fnp_data_n_fnps = 0; 587 do i = 1 to 8; 588 prph_fnp_cardp = null (); 589 call config_$find_2 ("prph", "fnp" || get_fnp_name_ (i), prph_fnp_cardp); 590 log_fnp_data_n_fnps = log_fnp_data_n_fnps + bin (prph_fnp_cardp ^= null (), 1); 591 end; 592 if log_fnp_data_n_fnps = 0 593 then do; 594 call com_err_ (0, name, "No FNPs configured. Polling not initiated."); 595 go to error_return; 596 end; 597 598 allocate log_fnp_data; 599 unspec (log_fnp_data) = ""b; 600 log_fnp_data.n_fnps = log_fnp_data_n_fnps; 601 602 call hcs_$initiate (SYS_CONTROL_DIR, "cdt", "", 0, 1, cdtp, code); 603 if cdtp = null () 604 then call com_err_ (code, name, "Could not initiate CDT. Models of FNPs will not be recorded."); 605 prph_fnp_cardp = null (); 606 fnpx = 1; 607 do i = 1 to 8; /* loop through all the possibilities */ 608 prph_fnp_cardp = null (); 609 call config_$find_2 ("prph", "fnp" || get_fnp_name_ (i), prph_fnp_cardp); 610 if prph_fnp_cardp ^= null () 611 then do; 612 log_fnp_entryp = addr (log_fnp_data.fnp_entry (fnpx)); 613 log_fnp_entry.fnp_name = get_fnp_name_ (i); 614 if cdtp ^= null () 615 then do; 616 fnpep = addr (cdt.fnp_entry (fnpx)); 617 if fnpe.mpxe.state ^= FNP_FREE 618 then log_fnp_entry.model = fnpe.type; 619 end; 620 fnpx = fnpx + 1; 621 end; 622 end; 623 return; 624 625 end setup_static_data; 626 627 /* Be sure all fnp's given on comnmand line are configured. */ 628 629 validate_fnp_list: 630 proc; 631 632 dcl (i, j) fixed bin; 633 634 do i = 1 to fnp_cnt; 635 do j = 1 to log_fnp_data.n_fnps; 636 log_fnp_entryp = addr (log_fnp_data.fnp_entry (j)); 637 if fnp_list (i) = log_fnp_entry.fnp_name 638 then go to fnp_ok; 639 end; 640 call com_err_ (0, name, "FNP ^a is not configured.", fnp_list (i)); 641 go to error_return; 642 fnp_ok: 643 end; 644 return; 645 646 end validate_fnp_list; 647 648 /* Function to return 1 if fnp was listed in command line. If none were listed, 1 is returned for all fnp's */ 649 650 listed_fnp: 651 proc returns (bit (1)); 652 653 dcl i fixed bin; 654 655 if fnp_cnt = 0 656 then return ("1"b); 657 do i = 1 to fnp_cnt; 658 if log_fnp_entry.fnp_name = fnp_list (i) 659 then return ("1"b); 660 end; 661 return ("0"b); 662 663 end listed_fnp; 664 665 /* Cleanup handler for command interface */ 666 667 command_cleanup: 668 proc; 669 670 if static_log_fnp_datap = null () & log_fnp_datap ^= null () 671 then free log_fnp_data; 672 return; 673 674 end command_cleanup; 675 1 1 /* BEGIN INCLUDE FILE event_call_info.incl.pl1 */ 1 2 1 3 /* T. Casey, May 1978 */ 1 4 1 5 dcl event_call_info_ptr ptr; 1 6 1 7 dcl 1 event_call_info aligned based (event_call_info_ptr), /* argument structure passed to event call procedure */ 1 8 2 channel_id fixed bin (71), /* event channel on which wakeup occurred */ 1 9 2 message fixed bin (71), /* 72 bits of information passed by sender of wakeup */ 1 10 2 sender bit (36), /* process id of sender */ 1 11 2 origin, 1 12 3 dev_signal bit (18) unaligned, /* "1"b if device signal */ 1 13 3 ring fixed bin (17) unaligned, /* ring from which sent */ 1 14 2 data_ptr ptr; /* ptr given to dcl_event_call_channel */ 1 15 1 16 /* END INCLUDE FILE event_call_info.incl.pl1 */ 676 2 1 /* Begin include file ..... iox_modes.incl.pl1 */ 2 2 2 3 /* Written by C. D. Tavares, 03/17/75 */ 2 4 /* Updated 10/31/77 by CDT to include short iox mode strings */ 2 5 2 6 dcl iox_modes (13) char (24) int static options (constant) aligned initial 2 7 ("stream_input", "stream_output", "stream_input_output", 2 8 "sequential_input", "sequential_output", "sequential_input_output", "sequential_update", 2 9 "keyed_sequential_input", "keyed_sequential_output", "keyed_sequential_update", 2 10 "direct_input", "direct_output", "direct_update"); 2 11 2 12 dcl short_iox_modes (13) char (4) int static options (constant) aligned initial 2 13 ("si", "so", "sio", "sqi", "sqo", "sqio", "squ", "ksqi", "ksqo", "ksqu", "di", "do", "du"); 2 14 2 15 dcl (Stream_input initial (1), 2 16 Stream_output initial (2), 2 17 Stream_input_output initial (3), 2 18 Sequential_input initial (4), 2 19 Sequential_output initial (5), 2 20 Sequential_input_output initial (6), 2 21 Sequential_update initial (7), 2 22 Keyed_sequential_input initial (8), 2 23 Keyed_sequential_output initial (9), 2 24 Keyed_sequential_update initial (10), 2 25 Direct_input initial (11), 2 26 Direct_output initial (12), 2 27 Direct_update initial (13)) fixed bin int static options (constant); 2 28 2 29 /* End include file ..... iox_modes.incl.pl1 */ 677 3 1 /* Begin include file . . . . . poll_fnp_data.incl.pl1 */ 3 2 3 3 /* Describes format of syserr binary data logged with fnp polling */ 3 4 /* Prepared July 1981 by Robert Coren */ 3 5 3 6 dcl poll_fnp_datap ptr; 3 7 dcl poll_fnp_data_version_1 fixed bin int static options (constant) init (1); 3 8 dcl poll_fnp_data_n_channels fixed bin; 3 9 dcl poll_fnp_data_n_stats fixed bin; 3 10 3 11 dcl 1 poll_fnp_data aligned based (poll_fnp_datap), 3 12 2 version fixed bin, 3 13 2 name char (4), /* Name of FNP */ 3 14 2 model fixed bin, 3 15 2 n_channels fixed bin, /* Number of channels with statistics */ 3 16 2 n_stats fixed bin, /* Number of non-zero statistics actually logged */ 3 17 2 chan_info (poll_fnp_data_n_channels refer (poll_fnp_data.n_channels)), 3 18 3 chan_name char (6) unal, 3 19 3 line_type fixed bin (17) unaligned, 3 20 2 stat_info (poll_fnp_data_n_stats refer (poll_fnp_data.n_stats)), 3 21 3 chan_index fixed bin (18) uns unal, /* Index in chan_info, above */ 3 22 3 stat_index fixed bin (18) uns unal, /* Which statistic for that channel (1 to 9) */ 3 23 3 value fixed bin (35); /* Actual value of that stat */ 3 24 3 25 /* Note: only non-zero statistics are logged. An entry is made in the stat_info 3 26* array for each non-zero statistics noting which channel, and which of the 3 27* counters was non-zero */ 3 28 3 29 /* End include file . . . . . poll_fnp_data.incl.pl1 */ 678 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 */ 679 5 1 /* BEGIN INCLUDE FILE ... config_prph_fnp_card.incl.pl1 BIM 1983 */ 5 2 /* format: style3 */ 5 3 5 4 dcl prph_fnp_cardp ptr; /* Pointer to a PRPH fnpx card. */ 5 5 5 6 dcl 1 prph_fnp_card based (prph_fnp_cardp) aligned, 5 7 /* PRPH fnpx card declaration */ 5 8 2 word char (4), /* "prph" */ 5 9 2 name char (4), /* "fnpX" */ 5 10 2 iom fixed bin (3), /* IOM number */ 5 11 2 chan fixed bin (8), /* channel number */ 5 12 2 model fixed bin, /* model number */ 5 13 2 state char (4) aligned, /* ON/OFF */ 5 14 2 pad (9) bit (36) aligned, 5 15 2 type_word aligned, 5 16 3 field_type (14) bit (2) unaligned, /* type of each field; see config_deck.incl.pl1 */ 5 17 3 pad1 bit (4) unaligned, 5 18 3 n_fields fixed bin (4) unsigned unaligned; 5 19 /* number of fields used on card */ 5 20 5 21 /* END INCLUDE FILE ... config_prph_fnp_card.incl.pl1 */ 680 6 1 /* BEGIN INCLUDE FILE...channel_meters.incl.pl1 */ 6 2 6 3 /* Include file to define meters reported by comm_meters_ for all channels */ 6 4 6 5 /* Created February 1981 by Robert Coren */ 6 6 6 7 dcl chan_meterp pointer; 6 8 6 9 dcl CHANNEL_METERS_VERSION_1 fixed bin int static options (constant) init (1); 6 10 6 11 dcl 1 channel_meters aligned based (chan_meterp), 6 12 2 version fixed bin, 6 13 2 multiplexer_type fixed bin, /* of this channel */ 6 14 2 parent_type fixed bin, /* multiplexer type of parent (or -1 if this is level 1 */ 6 15 2 line_type fixed bin, /* line type of this channel */ 6 16 2 flags, 6 17 3 reserved bit (36) unaligned, 6 18 2 pad1 fixed bin, 6 19 2 channel_name char (32), 6 20 2 mpx_specific_meterp pointer, /* pointer to meters for this channel's multiplexer type */ 6 21 2 parent_meterp pointer, /* pointer to meters kept for channel by its parent */ 6 22 2 next_channelp pointer, /* pointer to structure for next channel in list */ 6 23 2 cumulative, /* meters accumulated since last load of parent */ 6 24 3 unconverted_input_chars fixed bin (35), /* characters input (before conversion) */ 6 25 3 converted_output_chars fixed bin (35), /* characters output (after conversion) */ 6 26 3 read_calls fixed bin, /* calls to channel_manager$read */ 6 27 3 write_calls fixed bin, /* calls to channel_manager$write */ 6 28 3 control_calls fixed bin, /* calls to channel_manager$control */ 6 29 3 software_interrupts fixed bin, /* calls to channel$manager$interrupt on behalf of this channel */ 6 30 3 read_call_time fixed bin (71), /* time accumulated in channel_manager$read */ 6 31 3 write_call_time fixed bin (71), /* time accumulated in channel_manager$write */ 6 32 3 control_call_time fixed bin (71), /* time accumulated in channel_manager$control */ 6 33 3 interrupt_time fixed bin (71), /* time spent handling software interrupts */ 6 34 3 pad (4) fixed bin, 6 35 2 saved like channel_meters.cumulative; /* meters saved when channel last dialed up */ 6 36 6 37 /* END INCLUDE FILE...channel_meters.incl.pl1 */ 681 7 1 /* BEGIN INCLUDE FILE...fnp_channel_meters.incl.pl1 */ 7 2 7 3 /* This include file defines meters returned for subchannels of an FNP. */ 7 4 7 5 /* Created February 1981 by Robert Coren from fnp_meters.incl.pl1. */ 7 6 7 7 dcl fnp_chan_meterp pointer; 7 8 dcl FNP_CHANNEL_METERS_VERSION_1 fixed bin int static options (constant) init (1); 7 9 7 10 dcl 1 fnp_chan_meter_struc based (fnp_chan_meterp) aligned, 7 11 2 version fixed bin, 7 12 2 flags, 7 13 3 synchronous bit (1) unaligned, 7 14 3 reserved bit (35) unaligned, 7 15 2 current_meters like fnp_channel_meters, 7 16 2 saved_meters like fnp_channel_meters; 7 17 7 18 dcl 1 fnp_channel_meters based aligned, 7 19 2 header, 7 20 3 dia_request_q_len fixed bin (35), /* cumulative */ 7 21 3 dia_rql_updates fixed bin (35), /* updates to above */ 7 22 3 pending_status fixed bin (35), /* cumulative */ 7 23 3 pending_status_updates fixed bin (35), /* updates to above */ 7 24 3 output_overlaps fixed bin (18) unsigned unaligned, /* output chained to already-existing chain */ 7 25 3 parity_errors fixed bin (18) unsigned unaligned, /* parity on the channel */ 7 26 3 software_status_overflows fixed bin (18) unsigned unaligned, 7 27 3 hardware_status_overflows fixed bin (18) unsigned unaligned, 7 28 3 input_alloc_failures fixed bin (18) unsigned unaligned, 7 29 3 dia_current_q_len fixed bin (18) unsigned unaligned, /* current length of dia request queue */ 7 30 3 exhaust fixed bin (35), 7 31 3 software_xte fixed bin (18) unsigned unaligned, 7 32 3 pad bit (18) unaligned, 7 33 2 sync_or_async (17) fixed bin; /* placeholder for meters for sync or async channels */ 7 34 7 35 dcl 1 fnp_sync_meters based aligned, 7 36 2 header like fnp_channel_meters.header, 7 37 2 input, 7 38 3 message_count fixed bin (35), /* total number of messages */ 7 39 3 cum_length fixed bin (35), /* total cumulative length in characters */ 7 40 3 min_length fixed bin (18) unsigned unaligned, /* length of shortest message */ 7 41 3 max_length fixed bin (18) unsigned unaligned, /* length of longest message */ 7 42 2 output like fnp_sync_meters.input, 7 43 2 counters (8) fixed bin (35), 7 44 2 pad (3) fixed bin; 7 45 7 46 dcl 1 fnp_async_meters based aligned, 7 47 2 header like fnp_channel_meters.header, 7 48 2 pre_exhaust fixed bin (35), 7 49 2 echo_buf_overflow fixed bin (35), /* number of times echo buffer has overflowed */ 7 50 2 bell_quits fixed bin (18) unsigned unaligned, 7 51 2 padb bit (18) unaligned, 7 52 2 pad (14) fixed bin; 7 53 7 54 /* END INCLUDE FILE...fnp_channel_meters.incl.pl1 */ 682 8 1 /* BEGIN INCLUDE FILE ... cdt.incl.pl1 */ 8 2 8 3 /* format: style3,idind25,indcomtxt */ 8 4 8 5 /* Channel Definition Table. 8 6* This table lists all of the hardware channels (ports) connected 8 7* to the system, and maintains the attributes of each one. 8 8* 8 9* PG 741230 8 10* Modified by Mike Grady 5/6/76 to add FNP info. 8 11* Modified by Tom Casey 7/29/76 to add more FNP info and a few other things. 8 12* Modified by Robert Coren 6/13/77 to make terminal types be character strings. 8 13* Modified July 1979 by T. Casey to add several variables for MR8.0 process preservation facility. 8 14* Modified December 1980 by E. N. Kittlitz to eliminate cdte.phone_no. 8 15* Modified March 1981 by Robert Coren to add "listening" flag for multiplexers and to add TANDD_SERVICE service_type. 8 16* Modified April 1981 by E. N. Kittlitz to add cdte.dial_ev_chn, cdte.recent_wakeup_time, cdte.recent_wakeup_count. 8 17* Modified July 1981 by T. Casey for MR9.0 to add dialup_flags.detach_after_hangup 8 18* Modified December 1981 by E. N. Kittlitz for cdte.leave_edited, cdte.hold_arg, 8 19* Modified September 1981 by Benson I. Margulies for cdt_mgr_'s tree of multiplexer's. 8 20* Modified August 1982 by E. N. Kittlitz for check_acs. 8 21* Modified January 1983 by Keith Loepere for generic_destination. 8 22* Modified August 1983 by Robert Coren to add mpxe.check and mpxe.retry_load. 8 23* Modified 831216 by E. N. Kittlitz for required_access_class. 8 24* Modified 84-04-01 by BIM to finish communications AIM: 8 25* access class ranges, 8 26* access_control flags. 8 27**/ 8 28 8 29 8 30 /****^ HISTORY COMMENTS: 8 31* 1) change(87-03-17,Beattie), approve(87-04-06,MCR7656), 8 32* audit(87-07-13,Parisek), install(87-08-04,MR12.1-1056): 8 33* Add support for answering service to use IOCBs when tty_ cannot be 8 34* used to service login channels. 8 35* END HISTORY COMMENTS */ 8 36 8 37 8 38 dcl CDT_version_5 fixed bin internal static initial (5) options (constant); 8 39 dcl CDT_version fixed bin internal static initial (6) options (constant); 8 40 8 41 dcl (cdtp, cdtep, fnpep, mpxep) 8 42 ptr; 8 43 8 44 dcl 1 cdt based (cdtp) aligned, /* all of the system channels */ 8 45 2 author like author_dcl.author, /* standard header */ 8 46 2 max_size fixed bin, /* maximum number of cdte's in 255K */ 8 47 2 current_size fixed bin, /* number of last cdte. */ 8 48 2 version fixed bin, 8 49 2 freep fixed bin, /* chain of free cdte's */ 8 50 2 n_cdtes fixed bin, /* number of used cdte's */ 8 51 2 meters_last_reset fixed bin (71), /* clock time dialup meters were reset */ 8 52 2 realtime_in_dialup fixed bin (71), /* Dialup meter */ 8 53 2 cpu_in_dialup fixed bin (71), /* .. */ 8 54 2 pf_in_dialup fixed bin, /* .. */ 8 55 2 pp_in_dialup fixed bin, /* .. */ 8 56 2 entries_to_dialup fixed bin, /* .. */ 8 57 2 flags, 8 58 3 go bit (1) unal, /* ans. serv. said "go ahead and answer the phones" */ 8 59 3 cdt_is_live bit (1) unal, /* cdt is active */ 8 60 3 mux_mgr_system_init 8 61 bit (1) unal, /* mux mgr has loaded top-levels */ 8 62 3 pad1 bit (33) unal, 8 63 2 acceptable_fnp_tbf fixed bin, /* acceptable minutes between FNP crashes */ 8 64 2 spare_channel_count fixed bin, /* number of extra channels to leave room for in ring0 */ 8 65 2 threads aligned like channel_threads, 8 66 /* root of non-fnp-top-level-multiplexers */ 8 67 2 pad2 (31) bit (36) aligned, /* pad header to 80 words */ 8 68 2 fnp_entry dim (8) like fnpe, /* max of 8 FNPs for now */ 8 69 2 cdt_entry dim (2500) like cdte; /* # of cdte's in 255K */ 8 70 8 71 8 72 dcl 1 cdte based (cdtep) aligned, /* a channel */ 8 73 2 in_use fixed bin, /* see dialup_values. 0=NOW_FREE */ 8 74 /**** * These variables are filled in when the CDTE is created by cv_cmf. They are not dynamic. */ 8 75 2 pad1 bit (36) aligned, 8 76 2 name char (32), /* ASCII name of channel */ 8 77 2 access_class (2) bit (72) aligned, /* access class range */ 8 78 2 comment char (48), /* printable message about channel */ 8 79 2 charge_type fixed bin (17) unal, /* billing group */ 8 80 2 service_type fixed bin (17) unal, /* service group (AS, ftp, mc) */ 8 81 2 line_type fixed bin (17) unal, /* tty line type (protocol) */ 8 82 2 baud_rate fixed bin (17) unal, /* 110, 133, 150, etc. */ 8 83 2 modem_type fixed bin (17) unal, /* type of modem on this channel */ 8 84 2 pad2 bit (18) unaligned, 8 85 2 answerback char (8), /* answerback string expected */ 8 86 2 initial_terminal_type 8 87 char (32) unal, /* as specified in the CMF */ 8 88 2 mpx_data unal, /* data used only for multiplexed channels */ 8 89 3 mpx_type fixed bin (17), /* type of multiplexing used */ 8 90 3 mpx_service fixed bin (17), /* service type, active or inactive */ 8 91 2 flags, 8 92 ( 3 attributes, 8 93 4 ck_answerback bit (1), /* ON means that ansbk must equal our records */ 8 94 4 audit_access_error 8 95 bit (1), /* ON means ck that person auth is inside access class range */ 8 96 /* this implies that the access_class describes a range of 8 97* legitimate user auths. */ 8 98 4 hardwired bit (1), /* ON means it is */ 8 99 4 set_modes bit (1), /* ON means to set initial modes at dialup */ 8 100 4 dont_read_answerback 8 101 bit (1), /* ON means don't try to read answerback */ 8 102 4 pada bit (4), 8 103 3 access_control unaligned, /* As below */ 8 104 4 dial_out bit (1), /* dialing user must be on ACS */ 8 105 4 priv_attach bit (1), /* PA_ user must be on ACS */ 8 106 4 dial_server bit (1), /* accept_dials process must be on acs */ 8 107 4 login bit (1), /* logging in user must be on acs */ 8 108 4 slave_dial bit (1), /* dialing user must give -user and be on acs */ 8 109 4 pado bit (3), 8 110 3 options, 8 111 4 execute_initial_command 8 112 bit (1), /* ON means to do it */ 8 113 4 attached_by_operator 8 114 bit (1), /* ON means temporary attachment. */ 8 115 4 private_line bit (1), /* ON means private_line sync modem in use */ 8 116 4 bsc_ebcdic bit (1), /* ON means bsc would like to use ebcdic code set */ 8 117 4 bsc_transparent bit (1), /* ON means bsc is in transparent mode */ 8 118 4 vip_pollselect bit (1), /* ON means VIP line is multidrop */ 8 119 4 autobaud bit (1), /* ON means auto baud detection this channel */ 8 120 4 generic_destination_present 8 121 bit (1), /* ON means that the initial_command field contains 8 122* a generic destination to match on dial_out or priv attach */ 8 123 4 use_iocb bit (1), /* ON means to use IOCB operations to support channel */ 8 124 4 pado bit (9) 8 125 ) unaligned, 8 126 2 initial_command char (64), /* pseudo first input line */ 8 127 /**** The following variables represent dynamic control info, and 8 128* are used mostly by dialup_ and asu_ */ 8 129 2 event fixed bin (71), /* event call channel for channel events */ 8 130 2 current_service_type fixed bin (17) unal, /* Current usage of line. */ 8 131 2 tra_vec fixed bin (17) unal, /* which section of dialup_ to do next */ 8 132 2 count fixed bin (17) unal, /* How many login tries he's had. */ 8 133 2 dialup_flags unal, /* flag bits for dialup to maintain */ 8 134 3 ppm bit (1) unal, /* print preaccess message for IBM terminals */ 8 135 3 cpo bit (1) unal, /* conditional printer-off (depends on answerback */ 8 136 3 wakeup_handler bit (1) unal, /* says who is wakeup handler for this channel */ 8 137 /* 0 = dialup_, 1 = mc_tty_ */ 8 138 3 save_arg bit (1) unal, /* -save login arg given */ 8 139 3 nosave_arg bit (1) unal, /* -nosave login arg given */ 8 140 3 detach_after_hangup 8 141 bit (1) unal, /* remember WAIT_DETACH when setting WAIT_BEFORE_HANGUP */ 8 142 3 leave_edited bit (1) unal, /* user control of edited mode */ 8 143 3 hold_arg bit (1) unal, /* -hold arg given */ 8 144 3 no_hold_arg bit (1) unal, /* -no_hold arg given */ 8 145 3 immediate_arg bit (1) unal, /* -immediate arg given */ 8 146 3 current_access_class_valid 8 147 bit (1) unal, /* dialup_ or lg_ctl_ has determined the current_access_class */ 8 148 3 pad bit (7) unal, 8 149 2 twx fixed bin, /* channel device index */ 8 150 2 state fixed bin, /* channel state */ 8 151 2 tty_id_code char (4), /* channel id (answerback) */ 8 152 2 current_terminal_type 8 153 char (32) unal, /* most recently-set terminal type */ 8 154 2 process ptr unal, /* ptr to ATE owning this channel */ 8 155 2 dialed_to_procid bit (36), /* Dialed channels remember owner's proc id */ 8 156 2 next_channel fixed bin (17) unal, /* cdte index of next channel for this process */ 8 157 2 cur_line_type fixed bin (17) unal, /* line type of currently dialed terminal */ 8 158 2 current_access_class (2) bit (72) aligned, /* This is a range, but at this time it must be a null range. 8 159* We do not yet define multi-class connections, but we will someday. */ 8 160 2 disconnected_ate_index 8 161 fixed bin (17) unal, /* index of ate of disconnected process */ 8 162 2 dial_ctl_ring fixed bin (3) unsigned unaligned, 8 163 /* used by dial_ctl_ to record ring of priv_attach or dial_out attachments */ 8 164 2 dial_rq_privileged bit (1) unaligned, /* used by dial ctl to record comm priv from priv_attach or dial_out request */ 8 165 2 pad3 bit (14) unaligned, 8 166 /**** The following variables are kept for metering purposes. */ 8 167 2 n_dialups fixed bin, /* number of times channel has been dialed up */ 8 168 2 n_logins fixed bin, /* number of login sessions on this channel */ 8 169 2 dialed_up_time fixed bin (35), /* total time channel was dialed up (seconds) */ 8 170 2 dialup_time fixed bin (71), /* time of present dialup */ 8 171 2 disconnected_proc_command 8 172 fixed bin (12) unsigned unal, 8 173 /* 1 to 5 for -list,-create,-connect,-new_proc,-destroy */ 8 174 2 disconnected_proc_number 8 175 fixed bin (12) unsigned unal, 8 176 /* {N} in -connect {N}, -new_proc {N}, -destroy {N} */ 8 177 2 n_disconnected_procs fixed bin (12) unsigned unal, 8 178 /* number of disconnected processes that user has */ 8 179 2 recent_wakeup_count fixed bin, /* counter to detect channel wakeup loop */ 8 180 2 recent_wakeup_time fixed bin (71), /* time of first wakeup in suspected channel wakeup loop */ 8 181 2 dial_ev_chn fixed bin (71), /* Dialed channels remember master's IPC channel */ 8 182 /**** cdt_mgr_ uses these to maintain the tree of channels. They ****/ 8 183 /**** really belong in the mpxe, but it is full up, and the cdte ****/ 8 184 /**** had the space. */ 8 185 2 threads aligned like channel_threads, 8 186 /**** The use name is that of the user who gave the dial or slave ****/ 8 187 /**** preaccess request. ****/ 8 188 2 user_name unaligned, 8 189 3 person char (20) unaligned, 8 190 3 project char (9) unaligned, 8 191 3 pad char (3) unaligned, /* no tag */ 8 192 2 iocbp ptr unaligned; /* 104 words */ 8 193 8 194 8 195 dcl generic_destination based char (32); /* used to match destinations on dial_out and priv_attach, 8 196* overlays initial_command field for slave and autocall lines */ 8 197 8 198 8 199 8 200 dcl 1 fnpe based (fnpep) aligned, /* an FNP */ 8 201 /* These variables are filled in from the CMF */ 8 202 2 type fixed bin, /* type of this FNP, DN355, DN6670, etc. */ 8 203 2 memory fixed bin, /* amount of memory on this FNP */ 8 204 2 nlslas fixed bin, /* number of lslas on this FNP */ 8 205 2 nhslas fixed bin, /* number of hslas on this FNP */ 8 206 2 service_type fixed bin, /* service type */ 8 207 2 mpx_type fixed bin, /* type of multiplexer on this fnp */ 8 208 2 coreimage char (168), /* pathname of image, maybe in >sl1 */ 8 209 /**** The following are used during system operation to remember the state of the FNP */ 8 210 2 boot_segp ptr, /* ptr to seg used for bootload */ 8 211 2 boot_ev_chan fixed bin (71), /* for ring0 to report crashes and bootload complete */ 8 212 2 mpxe like mpxe, /* standard multiplexer data */ 8 213 2 threads aligned like channel_threads, 8 214 /* same mpx threads as channel */ 8 215 2 pad3 (25) fixed bin; /* pad to 96 words per entry */ 8 216 8 217 /* This structure describes the data necessary to control a multiplexer. 8 218* For FNP's., a copy appears in the fnpe. For communications lines, it 8 219* overlays the initial_command field in the cdte. */ 8 220 8 221 dcl 1 mpxe based (mpxep) aligned, 8 222 2 state fixed bin, /* current state, up, down, loading */ 8 223 2 current_service_type fixed bin, /* usually = service type, unless cdt installation changes it */ 8 224 2 current_mpx_type fixed bin, /* type of multiplexer currently running */ 8 225 2 n_bootloads fixed bin, /* count of load attempts */ 8 226 2 time_initial_load fixed bin (71), /* time this MPX first completed a load */ 8 227 2 time_last_load fixed bin (71), /* time MPX last completed a bootload */ 8 228 2 time_last_crash fixed bin (71), /* time MPX last crashed */ 8 229 2 time_load_start fixed bin (71), /* time current load started */ 8 230 2 last_tbf fixed bin, /* number of minutes this MPX was up last bootload */ 8 231 2 flags unal, 8 232 3 go bit (1), /* start MPX after it loads */ 8 233 3 listening bit (1), /* listen has been done on subchannels */ 8 234 3 check bit (1), /* loaded with check option */ 8 235 3 retry_load bit (1), /* reload if load fails */ 8 236 3 pad1 bit (32), 8 237 2 pad2 (2) fixed bin; /* pad to 16 words */ 8 238 8 239 /* These threads define the tree of multiplexers in the cdt. */ 8 240 /* next_sister and prev_sister link nodes at the same level, ordered */ 8 241 /* by alpha sort order of the channel name. Daughter points to the */ 8 242 /* first child of this node, if any. Daughter count is the number */ 8 243 /* of children, as a consistency check. Mother is a back pointer to */ 8 244 /* the parent, present in all the children, not just the first. */ 8 245 /* threads are cdt indexes. If positive, they index the cdt_entry array */ 8 246 /* in cdt, if negative, they are the negative of an index into the fnp_entry */ 8 247 /* array. If zero, they refer to the top of the non-fnp mpx tree. */ 8 248 8 249 dcl 1 channel_threads aligned based, 8 250 2 next_sister fixed bin unaligned, 8 251 2 prev_sister fixed bin unaligned, 8 252 2 daughter fixed bin unaligned, 8 253 2 mother fixed bin unaligned, /* negative is a fnpx, positive a cdtx */ 8 254 2 pad bit (18) unaligned, 8 255 2 daughter_count fixed bin unaligned; 8 256 8 257 /* Values for cdte.service_type field */ 8 258 8 259 dcl ( 8 260 ANS_SERVICE init (1), /* login or dial */ 8 261 FTP_SERVICE init (2), /* file transfer service */ 8 262 MC_SERVICE init (3), /* message coordinator */ 8 263 SLAVE_SERVICE init (4), /* special channel */ 8 264 DIAL_SERVICE init (5), /* transient state */ 8 265 DIAL_OUT_SERVICE init (6), /* auto call line */ 8 266 MPX_SERVICE init (8), /* ring0 demultiplexed line */ 8 267 TANDD_SERVICE init (9) /* transient state, attached for T & D */ 8 268 ) fixed bin internal static options (constant); 8 269 8 270 /* Values for service type in both cdte and fnpe */ 8 271 8 272 dcl ( 8 273 INACTIVE init (7), /* not to be used, even though configured */ 8 274 ACTIVE init (1) 8 275 ) /* for FNP only, configured and to be used */ 8 276 fixed bin internal static options (constant); 8 277 8 278 /* Value for both cdte.in_use and fnpe.state */ 8 279 8 280 dcl NOT_CONFIGURED fixed bin int static init (-1) options (constant); 8 281 /* was not configured at Multics bootload time */ 8 282 8 283 /* NOTE: an INACTIVE channel can be made active by operator command or CDT installation, 8 284* but a NOT_CONFIGURED channel can not be used until its multiplexer is reloaded */ 8 285 8 286 /* Value for cdte.in_use */ 8 287 8 288 dcl CHANNEL_DELETED fixed bin int static init (-2); 8 289 /* channel deleted by CDT installation */ 8 290 8 291 /* NOTE: a configured channel being deleted by a CDT installation is set to CHANNEL_DELETED. 8 292* multiplexer_mgr_ sets cdte.in_use to NOW_FREE at the next reload of its multiplexer. 8 293* A NOT_CONFIGURED channel is set to NOW_FREE immediately when deleted by a CDT installation. */ 8 294 8 295 8 296 /* Values for mpxe.state field */ 8 297 8 298 dcl ( 8 299 FNP_FREE init (0), /* this fnpe is not used */ 8 300 FNP_UNKNOWN init (1), /* FNP is in some unknown state */ 8 301 FNP_DOWN init (2), /* FNP crashed, not yet reloaded */ 8 302 FNP_BOOT init (3), /* FNP has been booted, but no response yet */ 8 303 FNP_UP init (4) /* FNP is up and running fine */ 8 304 ) fixed bin internal static options (constant); 8 305 8 306 dcl ( 8 307 MPX_FREE init (0), /* this mpxe is not used */ 8 308 MPX_UNKNOWN init (1), /* MPX is in some unknown state */ 8 309 MPX_DOWN init (2), /* MPX crashed, not yet reloaded */ 8 310 MPX_BOOT init (3), /* MPX has been booted, but no response yet */ 8 311 MPX_UP init (4) /* MPX is up and running fine */ 8 312 ) fixed bin internal static options (constant); 8 313 9 1 /* BEGIN INCLUDE FILE ... fnp_types.incl.pl1 */ 9 2 9 3 9 4 9 5 /****^ HISTORY COMMENTS: 9 6* 1) change(88-06-15,Berno), approve(88-07-13,MCR7928), 9 7* audit(88-06-15,Parisek), install(88-07-19,MR12.2-1061): 9 8* Add data needed for the uncp multiplexer (DSA gateway) interface 9 9* implementation. 9 10* END HISTORY COMMENTS */ 9 11 9 12 9 13 /* Values for fnpe.type field */ 9 14 /* 9 15* Created 79 May 14 by Art Beattie by splitting information out from cdt.incl.pl1 9 16* Added in March 1982 - DN7100.fd. 9 17**/ 9 18 9 19 dcl (DN355 init (1), /* a DataNet 355 FNP */ 9 20 DN6600 init (2), /* a DataNet 6600 FNP */ 9 21 DN6670 init (3), /* a Honeywell Bull Network Processor (18x) */ 9 22 DN7100 init (4) /* The DSA Datanet architecture (DN7) */ 9 23 ) fixed bin internal static options (constant); 9 24 9 25 dcl fnp_types (4) char (8) int static options (constant) 9 26 init ("DN355", "DN6600", "DN6670", "DN7100"); 9 27 9 28 dcl fnp_models (4) fixed bin (17) int static options (constant) 9 29 init (355, 6600, 6670, 7100); 9 30 9 31 dcl supported_fnp (4) bit (1) int static options (constant) 9 32 init ("0"b, "0"b, "1"b, "1"b); 9 33 9 34 9 35 /* END INCLUDE FILE ... fnp_types.incl.pl1 */ 8 314 8 315 8 316 /* END INCLUDE FILE ... cdt.incl.pl1 */ 683 10 1 /* BEGIN INCLUDE FILE ... author_dcl.incl.pl1 */ 10 2 10 3 /* This include file declares the "author" substructure 10 4* in a form suitable for using the PL/I "like" attribute. 10 5* 10 6* Written 750304 by PG 10 7**/ 10 8 10 9 dcl 1 author_dcl aligned based, 11 1 /* BEGIN INCLUDE FILE author.incl.pl1 */ 11 2 11 3 /* the "author" items must always be the first ones in the table. The 11 4* module which moves the converted table to the System Control process 11 5* fills in these data items and assumes them to be at the head of the segment 11 6* regardless of the specific table's actual declaration. The variables 11 7* "lock" and "last_install_time" used to be "process_id" and "ev_channel" 11 8* respectively. For tables installed in multiple processes, these 11 9* are to be used to lock out multiple installations. */ 11 10 11 11 /* Lock should be used as a modification lock. Since, in general, 11 12* entries may not be moved in system tables, even by installations, 11 13* it is sufficient for only installers and programs that change threads 11 14* to set or respect the lock. Simply updating data in an entry 11 15* requires no such protection. 11 16* 11 17* Last_install_time is used by readers of system tables to detect 11 18* installations or other serious modifications. By checking it before 11 19* and after copying a block of data, they can be protected against 11 20* modifications. 11 21* 11 22* Modules that set the lock should save proc_group_id, and then 11 23* put their group id there for the time they hold the lock. 11 24* if they do not actually install the, they should restore the group id. 11 25**/ 11 26 11 27 2 author aligned, /* validation data about table's author */ 11 28 3 proc_group_id char (32), /* process-group-id (personid.projectid.tag) */ 11 29 3 lock bit (36), /* installation lock */ 11 30 3 update_attributes bit (1) unal, /* update/add/delete attributes */ 11 31 3 update_authorization bit (1) unal, /* update only authorizations */ 11 32 3 deferral_notified bit (1) unal, /* installer notified of deferral of installation */ 11 33 3 pad bit (33) unaligned, 11 34 3 last_install_time fixed bin (71), 11 35 3 table char (4), /* name of table, e.g., SAT MGT TTT RTDT PDT etc. */ 11 36 3 w_dir char (64), /* author's working directory */ 11 37 11 38 /* END INCLUDE FILE author.incl.pl1 */ 10 10 10 11 2 pad; 10 12 10 13 /* END INCLUDE FILE ... author_dcl.incl.pl1 */ 684 12 1 /* BEGIN INCLUDE FILE ... condition_info.incl.pl1 */ 12 2 12 3 /* Structure for find_condition_info_. 12 4* 12 5* Written 1-Mar-79 by M. N. Davidoff. 12 6**/ 12 7 12 8 /* automatic */ 12 9 12 10 declare condition_info_ptr pointer; 12 11 12 12 /* based */ 12 13 12 14 declare 1 condition_info aligned based (condition_info_ptr), 12 15 2 mc_ptr pointer, /* pointer to machine conditions at fault time */ 12 16 2 version fixed binary, /* Must be 1 */ 12 17 2 condition_name char (32) varying, /* name of condition */ 12 18 2 info_ptr pointer, /* pointer to the condition data structure */ 12 19 2 wc_ptr pointer, /* pointer to wall crossing machine conditions */ 12 20 2 loc_ptr pointer, /* pointer to location where condition occured */ 12 21 2 flags unaligned, 12 22 3 crawlout bit (1), /* on if condition occured in lower ring */ 12 23 3 pad1 bit (35), 12 24 2 pad2 bit (36), 12 25 2 user_loc_ptr pointer, /* ptr to most recent nonsupport loc before condition occurred */ 12 26 2 pad3 (4) bit (36); 12 27 12 28 /* internal static */ 12 29 12 30 declare condition_info_version_1 12 31 fixed binary internal static options (constant) initial (1); 12 32 12 33 /* END INCLUDE FILE ... condition_info.incl.pl1 */ 685 13 1 /* BEGIN INCLUDE FILE condition_info_header.incl.pl1 BIM 1981 */ 13 2 /* format: style2 */ 13 3 13 4 declare condition_info_header_ptr 13 5 pointer; 13 6 declare 1 condition_info_header 13 7 aligned based (condition_info_header_ptr), 13 8 2 length fixed bin, /* length in words of this structure */ 13 9 2 version fixed bin, /* version number of this structure */ 13 10 2 action_flags aligned, /* tell handler how to proceed */ 13 11 3 cant_restart bit (1) unaligned, /* caller doesn't ever want to be returned to */ 13 12 3 default_restart bit (1) unaligned, /* caller can be returned to with no further action */ 13 13 3 quiet_restart bit (1) unaligned, /* return, and print no message */ 13 14 3 support_signal bit (1) unaligned, /* treat this signal as if the signalling procedure had the support bit set */ 13 15 /* if the signalling procedure had the support bit set, do the same for its caller */ 13 16 3 pad bit (32) unaligned, 13 17 2 info_string char (256) varying, /* may contain printable message */ 13 18 2 status_code fixed bin (35); /* if^=0, code interpretable by com_err_ */ 13 19 13 20 /* END INCLUDE FILE condition_info_header.incl.pl1 */ 686 14 1 /* BEGIN INCLUDE FILE sub_error_info.incl.pl1 */ 14 2 /* format: style2 */ 14 3 14 4 /* The include file condition_info_header must be used with this file */ 14 5 14 6 declare sub_error_info_ptr pointer; 14 7 declare 1 sub_error_info aligned based (sub_error_info_ptr), 14 8 2 header aligned like condition_info_header, 14 9 2 retval fixed bin (35), /* return value */ 14 10 2 name char (32), /* module name */ 14 11 2 info_ptr ptr; 14 12 14 13 declare sub_error_info_version_1 14 14 internal static options (constant) fixed bin init (1); 14 15 14 16 /* END INCLUDE FILE sub_error_info.incl.pl1 */ 687 688 689 end poll_fnp; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 07/19/88 1537.0 poll_fnp.pl1 >special_ldd>install>MR12.2-1061>poll_fnp.pl1 676 1 06/29/79 1728.0 event_call_info.incl.pl1 >ldd>include>event_call_info.incl.pl1 677 2 02/02/78 1229.7 iox_modes.incl.pl1 >ldd>include>iox_modes.incl.pl1 678 3 03/27/82 0429.7 poll_fnp_data.incl.pl1 >ldd>include>poll_fnp_data.incl.pl1 679 4 03/15/85 0953.1 syserr_binary_def.incl.pl1 >ldd>include>syserr_binary_def.incl.pl1 680 5 10/31/84 1315.5 config_prph_fnp_card.incl.pl1 >ldd>include>config_prph_fnp_card.incl.pl1 681 6 06/19/81 2115.0 channel_meters.incl.pl1 >ldd>include>channel_meters.incl.pl1 682 7 08/10/81 1843.6 fnp_channel_meters.incl.pl1 >ldd>include>fnp_channel_meters.incl.pl1 683 8 08/06/87 0913.0 cdt.incl.pl1 >ldd>include>cdt.incl.pl1 8-314 9 07/19/88 1524.1 fnp_types.incl.pl1 >special_ldd>install>MR12.2-1061>fnp_types.incl.pl1 684 10 09/09/75 2007.3 author_dcl.incl.pl1 >ldd>include>author_dcl.incl.pl1 10-10 11 04/21/82 1211.8 author.incl.pl1 >ldd>include>author.incl.pl1 685 12 06/28/79 1204.8 condition_info.incl.pl1 >ldd>include>condition_info.incl.pl1 686 13 03/24/82 1347.2 condition_info_header.incl.pl1 >ldd>include>condition_info_header.incl.pl1 687 14 07/18/81 1100.0 sub_error_info.incl.pl1 >ldd>include>sub_error_info.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. CHANNEL_METERS_VERSION_1 000072 constant fixed bin(17,0) initial dcl 6-9 set ref 466* FNP_FREE constant fixed bin(17,0) initial dcl 8-298 ref 617 SB_fnp_poll 000000 constant fixed bin(17,0) initial dcl 4-47 set ref 522* SYS_CONTROL_DIR 000001 constant char(17) initial packed unaligned dcl 138 set ref 602* Stream_output 000066 constant fixed bin(17,0) initial dcl 2-15 set ref 421* absolute_pathname_ 000020 constant entry external dcl 102 ref 206 addr builtin function dcl 144 ref 269 312 378 438 460 488 612 616 636 arg based char packed unaligned dcl 71 set ref 170 179 181 181 185* 191 195* 201 201 206* 209* 214 216 216 221 221 226 228 228 231* arg_event_call_info_ptr parameter pointer dcl 22 ref 362 365 arg_list_ptr 000136 automatic pointer dcl 44 set ref 154* 557* argl 000104 automatic fixed bin(17,0) dcl 28 set ref 170 179 181 181 185 185 191 195 195 201 201 206 206 209 209 214 216 216 221 221 226 228 228 231 231 557* argno 000132 automatic fixed bin(17,0) dcl 41 set ref 155* 156 557* 563* 563 564 570* 570 571 argp 000102 automatic pointer dcl 27 set ref 170 179 181 181 185 191 195 201 201 206 209 214 216 216 221 221 226 228 228 231 557* attach_desc 13 based varying char(256) level 2 dcl 73 set ref 257* 320* 414 author based structure level 2 dcl 10-9 author_dcl based structure level 1 dcl 10-9 auto_cond_info 000102 automatic structure level 1 dcl 435 set ref 438 bin builtin function dcl 144 ref 191 590 cdt based structure level 1 dcl 8-44 cdte based structure level 1 dcl 8-72 cdtp 000316 automatic pointer dcl 8-41 set ref 602* 603 614 616 chan_index based fixed bin(18,0) array level 3 packed packed unsigned unaligned dcl 3-11 set ref 501* 510* chan_info 5 based structure array level 2 dcl 3-11 chan_meterp 000312 automatic pointer dcl 6-7 set ref 475* 486 487 493 494 516* 516 chan_name 5 based char(6) array level 3 packed packed unaligned dcl 3-11 set ref 493* channel_id based fixed bin(71,0) level 2 dcl 1-7 ref 370 channel_meters based structure level 1 dcl 6-11 channel_name 6 based char(32) level 2 dcl 6-11 ref 493 channel_threads based structure level 1 dcl 8-249 chanx 000255 automatic fixed bin(17,0) dcl 57 set ref 479* 492* 492 493 494 501 510 char8 000230 automatic char(8) dcl 48 set ref 278* 279 342* 343 373* 376* cleanup 000260 stack reference condition dcl 142 ref 301 clock builtin function dcl 144 ref 344 390 400 code 000100 automatic fixed bin(35,0) dcl 26 in procedure "poll_fnp" set ref 148* 149 151* 206* 207 209* 277* 280* 281 283* 328* 329 331* 334* 336 338* 345* 346 348* 414* 415 417* 421* 422 424* 425* 466* 468 471* 525* 530* 540* 541* 547* 557* 558 560* 602* 603* code 000100 automatic fixed bin(35,0) dcl 433 in on unit on line 430 set ref 439* 440 454* codeptr builtin function dcl 144 ref 334 334 com_err_ 000014 constant entry external dcl 100 ref 151 174 185 195 209 231 243 248 283 294 331 338 348 392 397 417 424 471 560 594 603 640 comm_meters_ 000074 constant entry external dcl 126 ref 466 comm_meters_$free 000076 constant entry external dcl 127 ref 530 condition_info based structure level 1 dcl 12-14 condition_info_header based structure level 1 dcl 13-6 condition_info_ptr 000322 automatic pointer dcl 12-10 set ref 438* 439* 443 443 448 condition_name 3 based varying char(32) level 2 dcl 12-14 ref 443 config_$find_2 000012 constant entry external dcl 99 ref 589 609 continue_to_signal_ 000102 constant entry external dcl 129 ref 454 conversion 000266 stack reference condition dcl 142 ref 190 192 counters 17 based fixed bin(35,0) array level 2 dcl 7-35 ref 489 496 498 503 cu_$arg_count 000016 constant entry external dcl 101 ref 148 cu_$arg_list_ptr 000022 constant entry external dcl 103 ref 154 cu_$arg_ptr_rel 000024 constant entry external dcl 104 ref 557 cumulative 24 based structure level 2 dcl 6-11 current_meters 2 based structure level 2 dcl 7-10 set ref 488 currentsize builtin function dcl 144 ref 522 522 525 data_ptr 6 based pointer level 2 dcl 1-7 ref 366 debug 12 based bit(1) level 3 packed packed unaligned dcl 73 set ref 253* 306* 374 debug_sw 000117 automatic bit(1) packed unaligned dcl 37 set ref 164* 228* 253 306 error_table_$badopt 000110 external static fixed bin(35,0) dcl 133 set ref 231* error_table_$inconsistent 000112 external static fixed bin(35,0) dcl 134 set ref 294* error_table_$noarg 000106 external static fixed bin(35,0) dcl 132 set ref 185* 248* error_table_$too_many_args 000104 external static fixed bin(35,0) dcl 131 set ref 174* event_call_info based structure level 1 dcl 1-7 event_call_info_ptr 000302 automatic pointer dcl 1-5 set ref 365* 366 370 373 event_message 000232 automatic fixed bin(71,0) dcl 49 set ref 279* 280* 343* 345* find_condition_info_ 000100 constant entry external dcl 128 ref 439 finish 12(03) based bit(1) level 3 packed packed unaligned dcl 73 set ref 241 285* 387 396* 406 544 finish_sw 000116 automatic bit(1) packed unaligned dcl 36 set ref 163* 226* 274 292 flags 12 based structure level 2 in structure "log_fnp_data" packed packed unaligned dcl 73 in procedure "poll_fnp" flags 1 based structure level 2 in structure "fnp_chan_meter_struc" dcl 7-10 in procedure "poll_fnp" fnp_chan_meter_struc based structure level 1 dcl 7-10 fnp_chan_meterp 000314 automatic pointer dcl 7-7 set ref 487* 488 489 496 fnp_channel_meters based structure level 1 dcl 7-18 fnp_cnt 000120 automatic fixed bin(17,0) dcl 38 set ref 165* 172 178* 178 179 262 264 308 634 655 657 fnp_entry 114 based structure array level 2 in structure "log_fnp_data" dcl 73 in procedure "poll_fnp" set ref 269 312 378 460 612 636 fnp_entry 120 based structure array level 2 in structure "cdt" dcl 8-44 in procedure "poll_fnp" set ref 616 fnp_list 000122 automatic char(4) array packed unaligned dcl 40 set ref 172 174 174 179* 637 640* 658 fnp_name 000235 automatic char(4) packed unaligned dcl 51 in procedure "poll_fnp" set ref 463* 464 471* fnp_name based char(4) level 2 in structure "log_fnp_entry" dcl 89 in procedure "poll_fnp" set ref 379* 463 483 522* 613* 637 658 fnp_sync_meters based structure level 1 dcl 7-35 fnp_x 000234 automatic fixed bin(17,0) dcl 50 set ref 459* 460* fnpe based structure level 1 dcl 8-200 fnpep 000320 automatic pointer dcl 8-41 set ref 616* 617 617 fnpx 000353 automatic fixed bin(17,0) dcl 582 set ref 606* 612 616 620* 620 get_fnp_name_ 000032 constant entry external dcl 107 ref 589 609 613 get_process_id_ 000026 constant entry external dcl 105 ref 280 280 345 345 get_system_free_area_ 000030 constant entry external dcl 106 ref 458 hbound builtin function dcl 144 ref 172 174 174 496 hcs_$initiate 000034 constant entry external dcl 108 ref 602 hcs_$wakeup 000036 constant entry external dcl 109 ref 280 345 header based structure level 2 in structure "fnp_channel_meters" dcl 7-18 in procedure "poll_fnp" header 34 based structure level 3 in structure "fnp_chan_meter_struc" dcl 7-10 in procedure "poll_fnp" header 2 based structure level 3 in structure "fnp_chan_meter_struc" dcl 7-10 in procedure "poll_fnp" hphcs_$syserr_binary 000072 constant entry external dcl 125 ref 522 i 000362 automatic fixed bin(17,0) dcl 632 in procedure "validate_fnp_list" set ref 634* 637 640* i 000352 automatic fixed bin(17,0) dcl 581 in procedure "setup_static_data" set ref 587* 589* 607* 609* 613* i 000226 automatic fixed bin(17,0) dcl 47 in procedure "poll_fnp" set ref 268* 269* 311* 312* 377* 378* 496* 498 502 503* i 000374 automatic fixed bin(17,0) dcl 653 in procedure "listed_fnp" set ref 657* 658* index builtin function dcl 144 ref 170 info_ptr 14 based pointer level 2 dcl 12-14 ref 443 448 input 11 based structure level 2 dcl 7-35 interval 6 based fixed bin(71,0) level 2 dcl 73 set ref 251* 326* 389 401 ioa_ 000040 constant entry external dcl 110 ref 382 546 ioa_$nnl 000042 constant entry external dcl 110 ref 376 379 iocbp 10 based pointer level 2 dcl 73 set ref 305* 414* 418* 421* 425* 426* 525 525* 537 540* 541* 542* iox_$attach_name 000060 constant entry external dcl 120 ref 414 iox_$close 000064 constant entry external dcl 122 ref 540 iox_$detach_iocb 000066 constant entry external dcl 123 ref 425 541 iox_$open 000062 constant entry external dcl 121 ref 421 iox_$put_chars 000070 constant entry external dcl 124 ref 525 ipc_$create_ev_chn 000044 constant entry external dcl 114 ref 328 ipc_$decl_ev_call_chn 000046 constant entry external dcl 115 ref 334 ipc_$delete_ev_chn 000056 constant entry external dcl 119 ref 547 ipc_$drain_chn 000052 constant entry external dcl 117 ref 277 j 000363 automatic fixed bin(17,0) dcl 632 set ref 635* 636* line_type 6(18) based fixed bin(17,0) array level 3 in structure "poll_fnp_data" packed packed unaligned dcl 3-11 in procedure "poll_fnp" set ref 494* line_type 3 based fixed bin(17,0) level 2 in structure "channel_meters" dcl 6-11 in procedure "poll_fnp" ref 494 log 12(01) based bit(1) level 3 packed packed unaligned dcl 73 set ref 260* 317* 522 log_fnp_data based structure level 1 dcl 73 set ref 550 598 599* 670 log_fnp_data_n_fnps 000110 automatic fixed bin(17,0) dcl 30 set ref 549* 586* 590* 590 592 598 598 600 log_fnp_datap 000224 automatic pointer dcl 46 set ref 166* 240* 241 251 253 257 258 260 268 269 276 277 280 285 305 306 311 312 317 320 321 326 328 334 334* 344 345 351 366* 368 370 374 377 378 387 389 389 389 390 393 393 394 396 400 401 401 401 404 406 406 406 412 414 414 418 421 425 426 459 460 522 525 525 537 540 541 542 544 547 549 550 598* 599 600 612 635 636 670 670 log_fnp_entry based structure level 1 dcl 89 log_fnp_entryp 000106 automatic pointer dcl 29 set ref 269* 270 312* 313 378* 379 379 460* 461 463 465 465 470 470 483 484 522 612* 613 617 636* 637 658 log_sw 000113 automatic bit(1) packed unaligned dcl 33 set ref 160* 214* 260 298 298* 317 message 2 based fixed bin(71,0) level 2 dcl 1-7 ref 373 meter_areap 000246 automatic pointer dcl 53 set ref 458* 466* 530* meterp 000252 automatic pointer dcl 55 set ref 488* 489 489 496 498 503 507 512 model 1 based fixed bin(17,0) level 2 in structure "log_fnp_entry" dcl 89 in procedure "poll_fnp" set ref 484 617* model 2 based fixed bin(17,0) level 2 in structure "poll_fnp_data" dcl 3-11 in procedure "poll_fnp" set ref 484* more_args 000134 automatic bit(1) packed unaligned dcl 43 set ref 156* 168 183 203 564* 571* mpxe based structure level 1 dcl 8-221 in procedure "poll_fnp" mpxe 64 based structure level 2 in structure "fnpe" dcl 8-200 in procedure "poll_fnp" n_args 000133 automatic fixed bin(17,0) dcl 42 set ref 148* 156 246 564 571 n_channels 000254 automatic fixed bin(17,0) dcl 56 in procedure "poll_fnp" set ref 466* 476 477 520 n_channels 3 based fixed bin(17,0) level 2 in structure "poll_fnp_data" dcl 3-11 in procedure "poll_fnp" set ref 478* 501 502 503 510 511 512 520* 522 522 525 529 n_fnps based fixed bin(17,0) level 2 dcl 73 set ref 268 311 377 459 549 550 598* 599 600* 635 670 n_stats 000256 automatic fixed bin(17,0) dcl 58 in procedure "poll_fnp" set ref 480* 500* 500 501 502 503 509* 509 510 511 512 519 n_stats 4 based fixed bin(17,0) level 2 in structure "poll_fnp_data" dcl 3-11 in procedure "poll_fnp" set ref 478* 519* 522 522 525 528* 529 name 1 based char(4) level 2 in structure "poll_fnp_data" dcl 3-11 in procedure "poll_fnp" set ref 483* name 106 based char(32) level 2 in structure "sub_error_info" dcl 14-7 in procedure "poll_fnp" ref 449 name 000006 constant char(8) initial packed unaligned dcl 63 in procedure "poll_fnp" set ref 151* 174* 185* 195* 209* 231* 243* 248* 283* 294* 331* 338* 348* 392* 397* 417* 424* 471* 546* 560* 594* 603* 640* next_channelp 22 based pointer level 2 dcl 6-11 ref 516 next_cycle_sched 4 based fixed bin(71,0) level 2 dcl 73 set ref 344* 389* 389 390 400 401* 401 406* null builtin function dcl 144 ref 166 238 305 414 414 418 426 439 439 443 486 525 537 542 548 588 590 603 605 608 610 614 670 670 off_sw 000114 automatic bit(1) packed unaligned dcl 34 set ref 161* 218* 224* 262 266 292 on 4 based bit(1) level 2 dcl 89 set ref 270* 313* 379 461 on_sw 000115 automatic bit(1) packed unaligned dcl 35 set ref 162* 219* 223* 262 266 266* 270 292 orig_chan_meterp 000250 automatic pointer dcl 54 set ref 466* 475 530* output_file 12(02) based bit(1) level 3 in structure "log_fnp_data" packed packed unaligned dcl 73 in procedure "poll_fnp" set ref 258* 321* 412 output_file 000140 automatic char(201) packed unaligned dcl 45 in procedure "poll_fnp" set ref 206* 257 320 output_file_sw 000112 automatic bit(1) packed unaligned dcl 32 set ref 159* 212* 255 298 318 overrun_count 1 based fixed bin(17,0) level 2 dcl 73 set ref 393* 393 394 404* parent_meterp 20 based pointer level 2 dcl 6-11 ref 487 parity_errors 4(18) based fixed bin(18,0) level 3 packed packed unsigned unaligned dcl 7-18 ref 489 507 512 pass_on 000101 automatic bit(1) packed unaligned dcl 434 set ref 437* 440* 443* 449* 454 poll_fnp_data based structure level 1 dcl 3-11 set ref 478 522 522 525 529 poll_fnp_data_n_channels 000306 automatic fixed bin(17,0) dcl 3-8 set ref 476* 478 478 poll_fnp_data_n_stats 000307 automatic fixed bin(17,0) dcl 3-9 set ref 477* 478 478 528 poll_fnp_data_version_1 constant fixed bin(17,0) initial dcl 3-7 ref 482 poll_fnp_datap 000304 automatic pointer dcl 3-6 set ref 478* 482 483 484 493 494 501 502 503 510 511 512 519 520 522* 522 522 525* 525 528 529 prph_fnp_cardp 000310 automatic pointer dcl 5-4 set ref 588* 589* 590 605* 608* 609* 610 rtrim builtin function dcl 144 ref 257 320 464 starname 000236 automatic char(32) array packed unaligned dcl 52 set ref 464* 466* stat_index based fixed bin(18,0) array level 3 packed packed unsigned unaligned dcl 3-11 set ref 502* 511* stat_info based structure array level 2 dcl 3-11 state 64 based fixed bin(17,0) level 3 dcl 8-200 ref 617 static_log_fnp_datap 000010 internal static pointer initial dcl 67 set ref 238 240 351* 368 548* 670 sub_error_ 000274 stack reference condition dcl 142 ref 430 sub_error_info based structure level 1 dcl 14-7 sub_error_info_ptr 000324 automatic pointer dcl 14-6 set ref 448* 449 sum builtin function dcl 144 ref 489 synchronous 1 based bit(1) level 3 packed packed unaligned dcl 7-10 ref 489 496 time_int 000121 automatic fixed bin(17,0) dcl 39 set ref 191* 193 251 324* 326 time_sw 000111 automatic bit(1) packed unaligned dcl 31 set ref 158* 199* 251 324 timer_event 2 based fixed bin(71,0) level 2 dcl 73 set ref 276* 277* 280* 328* 334* 345* 370 406* 547* timer_manager_$alarm_wakeup 000054 constant entry external dcl 118 ref 406 timer_manager_$reset_alarm_wakeup 000050 constant entry external dcl 116 ref 276 times_dumped 2 based fixed bin(35,0) level 2 dcl 89 set ref 465* 465 times_failed 3 based fixed bin(35,0) level 2 dcl 89 set ref 470* 470 type based fixed bin(17,0) level 2 dcl 8-200 ref 617 unspec builtin function dcl 144 set ref 279* 279 343* 343 373* 373 599* value based fixed bin(35,0) array level 3 dcl 3-11 set ref 503* 512* version based fixed bin(17,0) level 2 dcl 3-11 set ref 482* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. ACTIVE internal static fixed bin(17,0) initial dcl 8-272 ANS_SERVICE internal static fixed bin(17,0) initial dcl 8-259 CDT_version internal static fixed bin(17,0) initial dcl 8-39 CDT_version_5 internal static fixed bin(17,0) initial dcl 8-38 CHANNEL_DELETED internal static fixed bin(17,0) initial dcl 8-288 DIAL_OUT_SERVICE internal static fixed bin(17,0) initial dcl 8-259 DIAL_SERVICE internal static fixed bin(17,0) initial dcl 8-259 DN355 internal static fixed bin(17,0) initial dcl 9-19 DN6600 internal static fixed bin(17,0) initial dcl 9-19 DN6670 internal static fixed bin(17,0) initial dcl 9-19 DN7100 internal static fixed bin(17,0) initial dcl 9-19 Direct_input internal static fixed bin(17,0) initial dcl 2-15 Direct_output internal static fixed bin(17,0) initial dcl 2-15 Direct_update internal static fixed bin(17,0) initial dcl 2-15 FNP_BOOT internal static fixed bin(17,0) initial dcl 8-298 FNP_CHANNEL_METERS_VERSION_1 internal static fixed bin(17,0) initial dcl 7-8 FNP_DOWN internal static fixed bin(17,0) initial dcl 8-298 FNP_UNKNOWN internal static fixed bin(17,0) initial dcl 8-298 FNP_UP internal static fixed bin(17,0) initial dcl 8-298 FTP_SERVICE internal static fixed bin(17,0) initial dcl 8-259 INACTIVE internal static fixed bin(17,0) initial dcl 8-272 Keyed_sequential_input internal static fixed bin(17,0) initial dcl 2-15 Keyed_sequential_output internal static fixed bin(17,0) initial dcl 2-15 Keyed_sequential_update internal static fixed bin(17,0) initial dcl 2-15 MC_SERVICE internal static fixed bin(17,0) initial dcl 8-259 MPX_BOOT internal static fixed bin(17,0) initial dcl 8-306 MPX_DOWN internal static fixed bin(17,0) initial dcl 8-306 MPX_FREE internal static fixed bin(17,0) initial dcl 8-306 MPX_SERVICE internal static fixed bin(17,0) initial dcl 8-259 MPX_UNKNOWN internal static fixed bin(17,0) initial dcl 8-306 MPX_UP internal static fixed bin(17,0) initial dcl 8-306 NOT_CONFIGURED internal static fixed bin(17,0) initial dcl 8-280 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 SLAVE_SERVICE internal static fixed bin(17,0) initial dcl 8-259 Sequential_input internal static fixed bin(17,0) initial dcl 2-15 Sequential_input_output internal static fixed bin(17,0) initial dcl 2-15 Sequential_output internal static fixed bin(17,0) initial dcl 2-15 Sequential_update internal static fixed bin(17,0) initial dcl 2-15 Stream_input internal static fixed bin(17,0) initial dcl 2-15 Stream_input_output internal static fixed bin(17,0) initial dcl 2-15 TANDD_SERVICE internal static fixed bin(17,0) initial dcl 8-259 cdtep automatic pointer dcl 8-41 condition_info_header_ptr automatic pointer dcl 13-4 condition_info_version_1 internal static fixed bin(17,0) initial dcl 12-30 display_cpu_error_binary_defs internal static fixed bin(17,0) initial array dcl 4-144 fnp_async_meters based structure level 1 dcl 7-46 fnp_models internal static fixed bin(17,0) initial array dcl 9-28 fnp_types internal static char(8) initial array packed unaligned dcl 9-25 generic_destination based char(32) packed unaligned dcl 8-195 iox_modes internal static char(24) initial array dcl 2-6 j automatic fixed bin(17,0) dcl 47 mpxep automatic pointer dcl 8-41 prph_fnp_card based structure level 1 dcl 5-6 short_iox_modes internal static char(4) initial array dcl 2-12 sub_error_info_version_1 internal static fixed bin(17,0) initial dcl 14-13 supported_fnp internal static bit(1) initial array packed unaligned dcl 9-31 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 NAMES DECLARED BY EXPLICIT CONTEXT. bad_time 000725 constant label dcl 195 ref 190 command_cleanup 004433 constant entry internal dcl 667 ref 301 356 done 002157 constant label dcl 353 ref 287 error_return 002160 constant label dcl 356 ref 176 187 197 210 232 244 249 296 332 339 349 561 595 641 fnp_ok 004366 constant label dcl 642 ref 637 get_arg 003633 constant entry internal dcl 554 ref 169 189 205 listed_fnp 004371 constant entry internal dcl 650 ref 270 313 missing 000634 constant label dcl 185 ref 203 next_fnp 003524 constant label dcl 532 ref 472 poll_fnp 000452 constant entry external dcl 17 put_arg 003713 constant entry internal dcl 567 setup_static_data 003723 constant entry internal dcl 578 ref 303 timer_wakeup 002170 constant entry external dcl 362 ref 334 334 validate_fnp_list 004300 constant entry internal dcl 629 ref 264 308 wrapup 003526 constant label dcl 537 ref 419 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 5124 5240 4466 5134 Length 6014 4466 114 540 435 2 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME poll_fnp 586 external procedure is an external procedure. on unit on line 190 64 on unit on unit on line 301 64 on unit on unit on line 430 102 on unit get_arg internal procedure shares stack frame of external procedure poll_fnp. setup_static_data internal procedure shares stack frame of external procedure poll_fnp. validate_fnp_list internal procedure shares stack frame of external procedure poll_fnp. listed_fnp internal procedure shares stack frame of external procedure poll_fnp. command_cleanup 64 internal procedure is called by several nonquick procedures. STORAGE FOR INTERNAL STATIC VARIABLES. LOC IDENTIFIER BLOCK NAME 000010 static_log_fnp_datap poll_fnp STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME on unit on line 430 000100 code on unit on line 430 000101 pass_on on unit on line 430 000102 auto_cond_info on unit on line 430 poll_fnp 000100 code poll_fnp 000102 argp poll_fnp 000104 argl poll_fnp 000106 log_fnp_entryp poll_fnp 000110 log_fnp_data_n_fnps poll_fnp 000111 time_sw poll_fnp 000112 output_file_sw poll_fnp 000113 log_sw poll_fnp 000114 off_sw poll_fnp 000115 on_sw poll_fnp 000116 finish_sw poll_fnp 000117 debug_sw poll_fnp 000120 fnp_cnt poll_fnp 000121 time_int poll_fnp 000122 fnp_list poll_fnp 000132 argno poll_fnp 000133 n_args poll_fnp 000134 more_args poll_fnp 000136 arg_list_ptr poll_fnp 000140 output_file poll_fnp 000224 log_fnp_datap poll_fnp 000226 i poll_fnp 000230 char8 poll_fnp 000232 event_message poll_fnp 000234 fnp_x poll_fnp 000235 fnp_name poll_fnp 000236 starname poll_fnp 000246 meter_areap poll_fnp 000250 orig_chan_meterp poll_fnp 000252 meterp poll_fnp 000254 n_channels poll_fnp 000255 chanx poll_fnp 000256 n_stats poll_fnp 000302 event_call_info_ptr poll_fnp 000304 poll_fnp_datap poll_fnp 000306 poll_fnp_data_n_channels poll_fnp 000307 poll_fnp_data_n_stats poll_fnp 000310 prph_fnp_cardp poll_fnp 000312 chan_meterp poll_fnp 000314 fnp_chan_meterp poll_fnp 000316 cdtp poll_fnp 000320 fnpep poll_fnp 000322 condition_info_ptr poll_fnp 000324 sub_error_info_ptr poll_fnp 000352 i setup_static_data 000353 fnpx setup_static_data 000362 i validate_fnp_list 000363 j validate_fnp_list 000374 i listed_fnp THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. r_ne_as r_le_a alloc_char_temp cat_realloc_chars call_ext_out_desc call_ext_out call_int_this call_int_other return_mac tra_ext_1 enable_op shorten_stack ext_entry int_entry any_to_any_truncate_alloc_storage op_freen_ clock_mac THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. absolute_pathname_ com_err_ comm_meters_ comm_meters_$free config_$find_2 continue_to_signal_ cu_$arg_count cu_$arg_list_ptr cu_$arg_ptr_rel find_condition_info_ get_fnp_name_ get_process_id_ get_system_free_area_ hcs_$initiate hcs_$wakeup hphcs_$syserr_binary ioa_ ioa_$nnl iox_$attach_name iox_$close iox_$detach_iocb iox_$open iox_$put_chars ipc_$create_ev_chn ipc_$decl_ev_call_chn ipc_$delete_ev_chn ipc_$drain_chn timer_manager_$alarm_wakeup timer_manager_$reset_alarm_wakeup THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$badopt error_table_$inconsistent error_table_$noarg error_table_$too_many_args LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 17 000451 148 000457 149 000467 151 000471 152 000506 154 000507 155 000516 156 000520 158 000523 159 000524 160 000525 161 000526 162 000527 163 000530 164 000531 165 000532 166 000533 168 000535 169 000540 170 000541 172 000555 174 000560 176 000612 178 000613 179 000614 180 000621 181 000622 183 000632 185 000634 187 000670 189 000671 190 000672 191 000711 192 000723 193 000724 195 000725 197 000761 199 000762 200 000764 201 000765 203 000775 205 000777 206 001000 207 001024 209 001026 210 001060 212 001061 213 001063 214 001064 216 001073 218 001103 219 001105 220 001106 221 001107 223 001117 224 001121 225 001122 226 001123 228 001132 231 001145 232 001177 234 001200 238 001201 240 001206 241 001210 243 001214 244 001240 246 001241 248 001243 249 001266 251 001267 253 001274 255 001300 257 001302 258 001345 260 001350 262 001354 264 001362 266 001365 268 001373 269 001403 270 001407 272 001417 274 001421 276 001423 277 001433 278 001445 279 001447 280 001451 281 001505 283 001507 285 001533 287 001536 292 001537 294 001545 296 001570 298 001571 301 001577 303 001621 305 001622 306 001625 308 001631 311 001634 312 001643 313 001647 315 001657 317 001661 318 001667 320 001671 321 001734 324 001737 326 001743 328 001747 329 001760 331 001762 332 002006 334 002007 336 002033 338 002035 339 002061 342 002062 343 002064 344 002066 345 002071 346 002125 348 002127 349 002153 351 002154 353 002157 356 002160 358 002164 362 002165 365 002175 366 002201 368 002203 370 002210 373 002213 374 002216 376 002221 377 002240 378 002247 379 002253 381 002274 382 002276 387 002307 389 002313 390 002316 392 002322 393 002347 394 002351 396 002354 397 002356 398 002403 400 002404 401 002410 402 002413 403 002414 404 002415 406 002416 412 002437 414 002443 415 002507 417 002512 418 002536 419 002541 421 002542 422 002562 424 002564 425 002610 426 002622 430 002625 437 002641 438 002642 439 002645 440 002661 443 002666 448 002704 449 002706 454 002714 456 002725 458 002726 459 002735 460 002745 461 002751 463 002753 464 002755 465 003003 466 003010 468 003043 470 003045 471 003052 472 003102 475 003103 476 003105 477 003107 478 003111 479 003127 480 003130 482 003131 483 003133 484 003135 486 003140 487 003144 488 003147 489 003151 492 003202 493 003203 494 003215 496 003220 498 003227 500 003232 501 003233 502 003251 503 003273 505 003302 507 003304 509 003310 510 003311 511 003327 512 003344 516 003354 517 003357 519 003360 520 003363 522 003365 525 003444 528 003476 529 003501 530 003511 532 003524 537 003526 540 003533 541 003544 542 003556 544 003561 546 003564 547 003607 548 003621 549 003624 550 003626 552 003632 554 003633 557 003634 558 003653 560 003655 561 003704 563 003705 564 003706 565 003712 567 003713 570 003714 571 003716 572 003722 578 003723 586 003724 587 003725 588 003733 589 003735 590 003775 591 004004 592 004006 594 004010 595 004035 598 004036 599 004046 600 004056 602 004060 603 004126 605 004156 606 004160 607 004162 608 004167 609 004171 610 004231 612 004236 613 004243 614 004256 616 004262 617 004267 620 004274 622 004275 623 004277 629 004300 634 004301 635 004311 636 004321 637 004325 639 004331 640 004333 641 004365 642 004366 644 004370 650 004371 655 004373 657 004402 658 004411 660 004422 661 004424 667 004432 670 004440 672 004456 ----------------------------------------------------------- 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