COMPILATION LISTING OF SEGMENT tty_analyze Compiled by: Multics PL/I Compiler, Release 32f, of October 9, 1989 Compiled at: Bull HN, Phoenix AZ, System-M Compiled on: 10/25/89 1051.7 mst Wed Options: optimize map 1 /****^ *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Bull Inc., 1988 * 4* * * 5* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 6* * * 7* * Copyright (c) 1972 by Massachusetts Institute of * 8* * Technology and Honeywell Information Systems, Inc. * 9* * * 10* *********************************************************** */ 11 12 /* format: style4,delnl,insnl,^ifthendo */ 13 14 /* Procedure to analyze contents of tty_buf which has been extracted from a dump */ 15 16 /* Revised Oct. 1978 by Robert Coren for multiplexed channels */ 17 /* Revised Feb. 1980 by Robert Coren to start with any level-1 multiplexer and 18* to use copy_erf_seg_ instead of the extract command */ 19 /* Modified: 19 December 1981 by G. Palter to add formatting control arguments */ 20 /* Modified: 7 Sept 1984 by C Spitzer. correct format for call to dump_segment_ */ 21 /* Modified September 1984 by Robert Coren to use include file for delay queue entries */ 22 /* Modified: October 1984 by Greg Texada for new calling sequence for copy_erf_seg_ */ 23 /* Modified December 1984 by Robert Coren to report line_status_disabled flag */ 24 25 26 /****^ HISTORY COMMENTS: 27* 1) change(88-06-24,Parisek), approve(88-06-24,MCR7928), 28* audit(88-07-08,Beattie), install(88-07-19,MR12.2-1061): 29* Added support of the UNCP multiplexer. UNCP_MPX treated like MCS_MPX. 30* END HISTORY COMMENTS */ 31 32 33 tty_analyze: 34 procedure options (variable, separate_static); 35 36 dcl ttybuf_size fixed bin (19) unsigned; 37 dcl used_pattern bit (18) aligned int static options (constant) init ("111000111000111000"b); 38 dcl (i, buf, devx) fixed bin; 39 dcl flagarray char (200) varying; 40 dcl tty_areap ptr; 41 dcl chanx fixed bin; 42 dcl copy_pcb_ap ptr; 43 dcl chan_name char (32); 44 dcl analyze_entry_name char (32); 45 dcl erfno char (32); 46 dcl code fixed bin (35); 47 dcl longsw bit (1); 48 dcl q_count fixed bin; 49 dcl q_last fixed bin; 50 dcl q_off fixed bin; 51 dcl q_ptr ptr; 52 dcl block_orig fixed bin; 53 dcl input_cnt fixed bin; 54 dcl output_cnt fixed bin; 55 56 dcl 1 ds_format aligned, /* dump_segment_ control word */ 57 2 (address, offset, short, bcd, ascii, long, ebcdic9, ebcdic8, four_bit, hex8, hex9) bit (1) unaligned, 58 2 mbz bit (25) unaligned; 59 60 dcl q_entry_overlay (size (fnp_queue_entry)) bit (36) aligned based; 61 62 dcl 1 used_block aligned based, 63 2 used_marker bit (18) unal, /* filled in with used_pattern after checking */ 64 2 next fixed bin (18) unsigned unal; /* offset of next unused place */ 65 66 dcl argp pointer; 67 dcl arg char (argl) based (argp); 68 dcl argl fixed bin (21); 69 dcl n_arguments fixed binary; 70 71 dcl DCW_LIST_SIZE fixed bin int static options (constant) init (16); 72 dcl prog_name char (11) int static options (constant) init ("tty_analyze"); 73 dcl temp_segs (3) ptr int static; 74 dcl have_segs bit (1) int static init ("0"b); 75 76 dcl (addr, addrel, bin, fixed, hbound, index, length, mod, null, pointer, ptr, rel, rtrim, size, string, substr) builtin; 77 78 dcl ( 79 error_table_$badopt, 80 error_table_$too_many_args 81 ) fixed binary (35) external; 82 83 dcl ioa_ entry () options (variable); 84 dcl ( 85 com_err_, 86 com_err_$suppress_name 87 ) entry () options (variable); 88 dcl cu_$arg_ptr entry (fixed bin, ptr, fixed bin (21), fixed bin (35)); 89 dcl cu_$arg_count entry (fixed bin, fixed bin (35)); 90 dcl cv_entry_ entry (char (*), ptr, fixed bin (35)) returns (entry); 91 dcl analyze_entry entry (ptr, ptr, fixed bin, entry, bit (1)) variable; 92 dcl get_temp_segments_ entry (char (*), (*) pointer, fixed bin (35)); 93 dcl copy_erf_seg_$name entry (char (*), char (*), pointer, fixed bin (19) unsigned, fixed bin (35)); 94 dcl match_star_name_ entry (char (*), char (*), fixed bin (35)); 95 dcl tty_dump$print_chain entry (pointer, character (*), fixed binary, bit (1)); 96 dcl tty_dump$set_static_for_analyze entry (fixed binary (19) unsigned, 1 aligned like ds_format); 97 98 /* */ 99 100 call cu_$arg_count (n_arguments, code); 101 if code ^= 0 102 then do; 103 call com_err_ (code, prog_name); 104 return; 105 end; 106 107 if n_arguments = 0 108 then do; 109 USAGE: 110 call com_err_$suppress_name (0, prog_name, "Usage: ^a erf_number {-control_args}", prog_name); 111 return; 112 end; 113 114 erfno = "-1"; /* no ERF yet */ 115 longsw = "0"b; 116 string (ds_format) = ""b; /* defaults to no interpretation */ 117 118 do i = 1 to n_arguments; 119 120 call cu_$arg_ptr (i, argp, argl, code); 121 if code ^= 0 122 then do; 123 call com_err_ (code, prog_name, "Fetching argument #^d.", i); 124 return; 125 end; 126 127 if arg = "-long" | arg = "-lg" 128 then longsw = "1"b; 129 130 else if arg = "-brief" | arg = "-bf" 131 then longsw = "0"b; 132 133 else if arg = "-character" | arg = "-ch" | arg = "-ascii" 134 then do; 135 longsw, ds_format.ascii = "1"b; /* implies -long */ 136 ds_format.ebcdic8, ds_format.ebcdic9 = "0"b; 137 end; 138 139 else if arg = "-ebcdic8" 140 then do; 141 longsw, ds_format.ebcdic8 = "1"b; 142 ds_format.ascii, ds_format.ebcdic9 = "0"b; 143 end; 144 145 else if arg = "-ebcdic9" 146 then do; 147 longsw, ds_format.ebcdic9 = "1"b; 148 ds_format.ascii, ds_format.ebcdic8 = "0"b; 149 end; 150 151 else if arg = "-octal" 152 then do; 153 longsw = "1"b; /* implies -long */ 154 ds_format.hex8, ds_format.hex9 = "0"b; 155 end; 156 157 else if arg = "-hex8" 158 then do; 159 longsw, ds_format.hex8 = "1"b; 160 ds_format.hex9 = "0"b; 161 end; 162 163 else if arg = "-hex9" 164 then do; 165 longsw, ds_format.hex9 = "1"b; 166 ds_format.hex8 = "0"b; 167 end; 168 169 else if index (arg, "-") = 1 170 then do; 171 call com_err_ (error_table_$badopt, prog_name, """^a""", arg); 172 return; 173 end; 174 175 else do; /* must be the ERF number */ 176 if erfno ^= "-1" 177 then do; 178 call com_err_ (error_table_$too_many_args, prog_name, "Only one ERF number may be supplied. ^a", 179 arg); 180 return; 181 end; 182 erfno = arg; 183 end; 184 end; 185 186 if erfno = "-1" /* a dump must be supplied */ 187 then go to USAGE; 188 189 if ds_format.ascii | ds_format.ebcdic8 | ds_format.ebcdic9 190 then ds_format.long = "0"b; /* if interpreting only four words per line */ 191 else ds_format.long = "1"b; /* otherwise, eight will fit */ 192 193 if ^have_segs 194 then do; 195 call get_temp_segments_ (prog_name, temp_segs, code); 196 if code ^= 0 197 then do; 198 call com_err_ (code, prog_name, "Getting temporary segments."); 199 return; 200 end; 201 have_segs = "1"b; 202 end; 203 204 ttybp = temp_segs (1); 205 infop = temp_segs (2); 206 tty_areap = temp_segs (3); 207 208 call copy_erf_seg_$name (erfno, "tty_buf", ttybp, ttybuf_size, code); 209 if code ^= 0 210 then go to bad_copy; 211 212 call copy_erf_seg_$name (erfno, "dn355_data", infop, (0), code); 213 if code ^= 0 214 then go to bad_copy; 215 216 call copy_erf_seg_$name (erfno, "tty_area", tty_areap, (0), code); 217 if code ^= 0 218 then do; 219 bad_copy: 220 call com_err_ (code, prog_name, "Could not copy data from ERF ^a", erfno); 221 return; 222 end; 223 224 call tty_dump$set_static_for_analyze (ttybuf_size, ds_format); 225 226 call ioa_ ("Begin analysis of ERF ^a", erfno); 227 call ioa_ ("^/^/Header Values:^/^-bleft ^d, free ^o", bleft, fixed (free, 18)); 228 229 230 /* Find all physical FNP channels; for each one, analyze it and all its subchannels */ 231 232 lctp = ptr (ttybp, rel (tty_buf.lct_ptr)); 233 lcntp = ptr (tty_areap, rel (lct.lcnt_ptr)); 234 235 do i = 1 to lct.max_no_lctes; 236 lctep = addr (lcte_array (i)); 237 if lcte.entry_in_use 238 then if lcte.major_channel_devx = 0 239 then call walk_channel_tree (i, lcnt.names (i)); 240 /* track down all the subchannels */ 241 end; 242 243 do i = 1 to lct.max_no_lctes; /* track down all unmarked LCTEs */ 244 lctep = addr (lcte_array (i)); 245 if substr (lcte.lock, 1, 18) ^= used_pattern 246 then do; 247 if lcte.entry_in_use /* this shouldn't have happened */ 248 then call ioa_ ("^/LCTE at ^o marked in use, but has not been processed^/", bin (rel (lctep))); 249 call check_used (lctep, size (lcte)); /* mark it now in any case */ 250 end; 251 end; 252 253 call check_used (lctp, bin (rel (addr (lct.lcte_array (1)))) - bin (rel (lctp))); 254 /* mark lct header */ 255 256 257 call ioa_ ("^3/Begin free chain trace"); 258 259 buf = fixed (free, 18); /* get free pointer */ 260 if buf = 0 261 then if bleft ^= 0 262 then do; /* error */ 263 264 call ioa_ ("^2/FREE = 0 BUT BLEFT ^= 0"); 265 go to check_unstrung_buffers; /* can't check free chain obviously */ 266 end; 267 268 if buf = 0 269 then go to check_unstrung_buffers; /* nothing more to check */ 270 271 do while (buf ^= 0); 272 free_blockp = addrel (ttybp, buf); /* make pointer to next buffer */ 273 call ioa_ ("^o (^o words)", buf, free_block.size); 274 buf = bin (free_block.next); /* get addr of next buffer */ 275 call check_used (free_blockp, free_block.size); 276 /* check if buffer used - set it used */ 277 if buf ^= 0 278 then if buf < fixed (borig, 18) 279 then do; /* bad buffer addr */ 280 281 bad_free_chain: 282 call ioa_ ("^2/BAD BUFFER ADDR IN FREE CHAIN ^o -> ^o^2/", fixed (rel (blockp), 18), buf); 283 go to check_unstrung_buffers; 284 end; 285 286 if buf > ttybuf_size 287 then go to bad_free_chain; /* out of bounds addr - stop free chain search */ 288 bleft = bleft - free_block.size; /* decrement count of free buffers */ 289 end; 290 291 if bleft ^= 0 292 then /* bleft is screwed up */ 293 call ioa_ ("^2/BLEFT NOT EXHAUSTED (= ^o) AT END OF FREE CHAIN TRACE^2/", bleft); 294 295 check_unstrung_buffers: 296 call ioa_ ("^/Begin unthreaded space check"); /* see if any buffers not marked with used patern */ 297 298 blockp = ptr (ttybp, borig); /* get ptr to first buffer */ 299 do while (bin (rel (blockp)) < ttybuf_size); 300 if blockp -> used_block.used_marker ^= used_pattern 301 then do; 302 block_orig = bin (rel (blockp)); 303 do while (blockp -> used_block.used_marker ^= used_pattern & bin (rel (blockp)) < ttybuf_size); 304 blockp = addrel (blockp, 2); 305 end; 306 call ioa_ ("^o (^o words)", block_orig, bin (rel (blockp)) - block_orig); 307 end; 308 309 else blockp = ptr (ttybp, blockp -> used_block.next); 310 end; 311 312 return; 313 314 /* */ 315 316 walk_channel_tree: 317 proc (a_devx, a_chan_name); 318 319 /* internal procedure (called recursively) to find all subchannels of a 320* * given channel, print each one's LCT entry, and call the special-purpose entry to 321* * print its data bases 322**/ 323 324 dcl a_devx fixed bin; 325 dcl a_chan_name char (*); 326 dcl chan_name char (32); 327 dcl star_name char (32); 328 dcl local_lctep ptr; /* copy of lctep for this procedure */ 329 dcl i fixed bin; 330 dcl code fixed bin (35); 331 332 devx = a_devx; 333 chan_name = a_chan_name; 334 lctep, local_lctep = addr (lct.lcte_array (devx)); 335 if lcte.entry_in_use & lcte.initialized 336 then do; /* only if there's anything to look at */ 337 if lcte.queue_head 338 then call print_channel_queue; 339 340 if lcte.channel_type = TTY_MPX 341 then call analyze_wtcb (devx); /* this is the end of the chain */ 342 else if lcte.channel_type = MCS_MPX | lcte.channel_type = UNCP_MPX then do; 343 if lcte.channel_type = UNCP_MPX then 344 call ioa_ ("^/multiplexer type: ^a", mpx_types (lcte.channel_type)); 345 call analyze_fnp; 346 end; 347 else do; 348 call ioa_ ("^/multiplexer type: ^a", mpx_types (lcte.channel_type)); 349 call mpx_analyze_entry; 350 351 star_name = rtrim (chan_name) || ".*"; /* now hunt for subnames */ 352 do i = 1 to lct.max_no_lctes; 353 call match_star_name_ (lcnt.names (i), star_name, code); 354 if code = 0 /* this is one */ 355 then if lct.lcte_array (i).entry_in_use 356 then do; 357 call ioa_ ("^/Subchannel: ^a, devx ^o", lcnt.names (i), i); 358 call walk_channel_tree (i, lcnt.names (i)); 359 end; 360 end; 361 end; 362 end; 363 364 call check_used (local_lctep, size (lcte)); 365 return; 366 end walk_channel_tree; 367 368 /* */ 369 370 analyze_fnp: 371 proc; 372 373 dcl subchan_lctep ptr; 374 375 fnpp = ptr (infop, rel (lcte.data_base_ptr)); 376 if fnp_info.no_of_channels > 0 377 then do; 378 n_pcbs = fnp_info.no_of_channels; 379 copy_pcb_ap = ptr (ttybp, rel (fnp_info.pcb_array_ptr)); 380 do chanx = 1 to n_pcbs; 381 pcbp = addr (copy_pcb_ap -> pcb_array (chanx)); 382 devx = pcb.devx; 383 chan_name = lcnt.names (devx); 384 subchan_lctep = addr (lct.lcte_array (devx)); 385 386 call ioa_ ("^2/Physical channel ^a, ^d baud, devx ^o, pcb ^o, lcte ^o, line type ^a", chan_name, 387 pcb.baud_rate, devx, bin (rel (pcbp)), bin (rel (subchan_lctep)), line_types (pcb.line_type)); 388 call ioa_ ( 389 "flags: ^[listen ^;^]^[dialed ^;^]^[send_output ^;^]^[high_speed ^;^]^[sync_line ^;^]^[end_frame ^;^]^[hndlquit ^;^]^[output_mbx_pending ^;^]^[copied_meters_ready ^;^]^[get_meters_waiting ^;^]^[tandd_attached ^;^]" 390 , pcb.listen, pcb.dialed, pcb.send_output, pcb.high_speed, pcb.sync_line, pcb.end_frame, 391 pcb.hndlquit, pcb.output_mbx_pending, pcb.copied_meters_ready, pcb.get_meters_waiting, 392 pcb.tandd_attached); 393 394 input_cnt = subchan_lctep -> lcte.input_words; 395 output_cnt = subchan_lctep -> lcte.output_words; 396 397 if pcb.write_first >= bin (borig, 18) 398 then do; /* trace write chain */ 399 call ioa_ ("Write chain trace"); 400 call buffer_trace ((pcb.write_first), "WRITE_FIRST"); 401 /* trace write chain */ 402 end; 403 404 call walk_channel_tree (devx, chan_name); 405 /* do its subchannels now */ 406 if output_cnt ^= 0 407 then /* output count is goofed up */ 408 call ioa_ ("^2/OUTPUT COUNT RESIDUAL (^d) DOESN'T AGREE WITH BUFFER CHAIN TRACE^2/", output_cnt); 409 if input_cnt ^= 0 410 then /* input count is goofed up */ 411 call ioa_ ("^2/INPUT COUNT RESIDUAL (^d) DOESN'T AGREE WITH BUFFER CHAIN TRACE^2/", input_cnt); 412 413 call check_used (pcbp, size (pcb)); 414 end; 415 416 call check_used (ptr (ttybp, rel (fnp_info.dcw_list_array_ptr)), 8 * DCW_LIST_SIZE); 417 /* mark the DCW list area */ 418 end; 419 420 if fnp_info.running 421 then do; 422 if fnp_info.cur_ptr ^= 0 /* if there's a delay queue */ 423 then do; 424 q_count = fnp_info.count; 425 q_off = fnp_info.cur_ptr; 426 q_last = fnp_info.last_ptr; 427 428 call ioa_ ("^3/Delay queue for FNP ^a", fnp_info.fnp_tag); 429 do while (q_off ^= 0); 430 q_ptr = ptr (ttybp, q_off); 431 call ioa_ ("^o", q_off); 432 if longsw 433 then call ioa_ ("^(^8(^w ^)^/^)", q_ptr -> q_entry_overlay); 434 call check_used (q_ptr, size (fnp_queue_entry)); 435 q_off = q_ptr -> fnp_queue_entry.next; 436 q_count = q_count - 1; 437 end; 438 439 if bin (rel (q_ptr), 18) ^= q_last 440 then call ioa_ ("last_ptr (^o) does not point to last queue block (^o)", q_last, 441 bin (rel (q_ptr), 18)); 442 443 if q_count ^= 0 444 then call ioa_ ("^d queue entries unaccounted for", q_count); 445 end; 446 447 end; 448 return; 449 end analyze_fnp; 450 451 /* */ 452 453 analyze_wtcb: 454 proc (a_devx); 455 456 /* subroutine to interpret the contents of a wtcb */ 457 458 dcl a_devx fixed bin; 459 460 if bin (rel (lcte.data_base_ptr), 18) < bin (borig, 18) 461 then return; 462 wtcbp = ptr (ttybp, rel (lcte.data_base_ptr)); 463 flagarray = ""; /* make a string listing all flags that are on */ 464 if wtcb.flags.listen 465 then flagarray = flagarray || "listen,"; 466 if wtcb.flags.dialed 467 then flagarray = flagarray || "dialed,"; 468 if wtcb.flags.send_output 469 then flagarray = flagarray || "send_output,"; 470 if wtcb.flags.qenable 471 then flagarray = flagarray || "qenable,"; 472 if wtcb.flags.qflag 473 then flagarray = flagarray || "qflag,"; 474 if wtcb.flags.end_frame 475 then flagarray = flagarray || "end_frame,"; 476 if wtcb.flags.notify_reqd 477 then flagarray = flagarray || "notify_reqd,"; 478 if wtcb.flags.work_reqd 479 then flagarray = flagarray || "work_reqd,"; 480 if wtcb.flags.dialing 481 then flagarray = flagarray || "dialing,"; 482 if wtcb.flags.dial_status_valid 483 then flagarray = flagarray || "dial_status,"; 484 if wtcb.flags.line_status_present 485 then flagarray = flagarray || "line_status,"; 486 if wtcb.flags.wru 487 then flagarray = flagarray || "wru,"; 488 if wtcb.flags.hndlquit 489 then flagarray = flagarray || "hndlquit,"; 490 if wtcb.flags.count_lines 491 then flagarray = flagarray || "count_lines,"; 492 if wtcb.flags.sync_line 493 then flagarray = flagarray || "sync_line,"; 494 if wtcb.flags.breakall 495 then flagarray = flagarray || "breakall,"; 496 if wtcb.flags.scroll 497 then flagarray = flagarray || "scroll,"; 498 if wtcb.flags.negotiating_echo 499 then flagarray = flagarray || "negotiating_echo,"; 500 if wtcb.flags.wake_tbl 501 then flagarray = flagarray || "wake_tbl,"; 502 if wtcb.flags.allow_wakeup 503 then flagarray = flagarray || "allow_wakeup,"; 504 if wtcb.flags.receive_mode_device 505 then flagarray = flagarray || "receive_mode_device,"; 506 if length (flagarray) > 0 507 then substr (flagarray, length (flagarray), 1) = " "; 508 509 call ioa_ ("wtcb at ^o^/flags: ^a", bin (rel (wtcbp)), flagarray); 510 511 call ioa_ ("more_flags: ^[line_status_disabled^;^]", wtcb.line_status_disabled); 512 513 if wtcb.wflag 514 then call ioa_ ("blocked for output"); 515 if wtcb.rflag 516 then call ioa_ ("blocked for input"); 517 518 if wtcb.fblock ^= 0 519 then do; 520 call ioa_ ("Read chain trace"); 521 call buffer_trace ((wtcb.fblock), "FBLOCK"); /* go trace read chain */ 522 end; 523 524 if wtcb.write_first ^= 0 525 then do; 526 call ioa_ ("Write chain trace"); 527 call buffer_trace ((wtcb.write_first), "WRITE_FIRST"); 528 end; 529 530 if wtcb.echdp ^= "0"b 531 then call check_used (ptr (ttybp, wtcb.echdp), size (echo_data)); 532 533 if wtcb.waketp ^= "0"b 534 then call check_used (ptr (ttybp, wtcb.waketp), size (wakeup_table)); 535 536 call check_used (wtcbp, size (wtcb)); 537 return; 538 end analyze_wtcb; 539 540 /* */ 541 542 mpx_analyze_entry: 543 proc; 544 545 /* procedure to find and call entry for analyzing a particular channel type */ 546 547 analyze_entry_name = rtrim (mpx_types (lcte.channel_type)) || "_analyze_"; 548 analyze_entry = cv_entry_ (analyze_entry_name, null (), code); 549 if code ^= 0 550 then call com_err_ (code, "tty_analyze", "Cannot get pointer to ^a", analyze_entry_name); 551 else call analyze_entry (ttybp, tty_areap, devx, check_used, longsw); 552 return; 553 end mpx_analyze_entry; 554 555 556 print_channel_queue: 557 proc; 558 559 dcl next_queue bit (18); 560 dcl queue_ptr ptr; 561 dcl interrupt fixed bin; 562 563 dcl 1 channel_q aligned based (queue_ptr), 564 2 next bit (18) unal, 565 2 pad bit (18) unal, 566 2 int_type fixed bin, 567 2 data (2) fixed bin; 568 569 dcl interrupt_name (12) char (16) int static options (constant) 570 init ("DIALUP", "HANGUP", "CRASH", "SEND_OUTPUT", "INPUT_AVAILABLE", "ACCEPT_INPUT", "INPUT_REJECTED", "QUIT", 571 "LINE_STATUS", "DIAL_STATUS", "WRU_TIMEOUT", "SPACE_AVAILABLE"); 572 573 574 call ioa_ ("^/channel queue:"); 575 next_queue = lcte.queue_head; 576 577 do while (next_queue ^= "0"b); 578 queue_ptr = ptr (ttybp, next_queue); 579 interrupt = channel_q.int_type; 580 call ioa_ ("^-^6o^3x^[^a^s^;^s^d^]^13o^13o", bin (next_queue), 581 (interrupt > 0 & interrupt <= hbound (interrupt_name, 1)), interrupt_name (interrupt), interrupt, 582 channel_q.data); 583 next_queue = channel_q.next; 584 call check_used (queue_ptr, size (channel_q)); 585 end; 586 587 if rel (queue_ptr) ^= lcte.queue_tail 588 then call ioa_ ("End of queue (^o) differs from lcte.queue_tail (^o)", bin (rel (queue_ptr)), 589 bin (lcte.queue_tail)); 590 591 return; 592 end print_channel_queue; 593 594 /* */ 595 596 buffer_trace: 597 proc (buf_offset, name); 598 599 /* Subroutine to trace a buffer chain. */ 600 601 dcl buf_offset fixed bin; 602 dcl name char (*); 603 604 dcl buf_size fixed bin; 605 606 call tty_dump$print_chain (ttybp, name, buf_offset, ^longsw); 607 608 do while (buf_offset ^= 0); 609 if buf_offset < bin (tty_buf.borig, 18) 610 then do; 611 call ioa_ ("^2/^a (^o^) < borig^2/", name, buf_offset); 612 return; 613 end; 614 615 if buf_offset > ttybuf_size 616 then do; 617 call ioa_ ("^2/^a (^o) > tty_buf size", name, buf_offset); 618 return; 619 end; 620 621 blockp = pointer (ttybp, buf_offset); 622 buf_size = 16 * (bin (buffer.size_code, 3) + 1); 623 if name = "FBLOCK" 624 then input_cnt = input_cnt - buf_size; 625 else output_cnt = output_cnt - buf_size; 626 627 buf_offset = buffer.next; 628 call check_used (blockp, buf_size); 629 end; 630 631 return; 632 end buffer_trace; 633 634 635 /* Subroutine to see if buffer has used pattern in it - if not mark it used */ 636 637 check_used: 638 proc (buffp, nwords); 639 640 dcl buffp pointer; 641 dcl nwords fixed bin; 642 643 if buffp -> used_block.used_marker = used_pattern 644 then /* opps - already marked used */ 645 call ioa_ ("^2/BUFFER ^o ALREADY USED BY SOMEONE ELSE", fixed (rel (buffp), 18)); 646 buffp -> used_block.used_marker = used_pattern; /* mark buffer used */ 647 buffp -> used_block.next = bin (rel (buffp)) + nwords + mod (nwords, 2); 648 return; 649 end check_used; 650 651 /* */ 652 1 1 /* BEGIN INCLUDE FILE ... tty_buf.incl.pl1 */ 1 2 1 3 /* Date Last Modified and Reason 1 4* Created 04/19/77 by J. Stern (from part of tty.incl.pl1) 1 5* Modified January 1978 by Robert Coren and Larry Johnson for variable-size buffers 1 6* Modified 2/6/78 by Robert Coren to make circular_queue size settable 1 7* Modified Aug 78 by J. Nicholls to move the buffer block format to a file of its own 1 8* and wtcb to its own plus other modification for ring 0 multiplexing, tty_buffer_block.incl.pl1 1 9* Modified 7/17/79 by B. Greenberg for echo negotiation meters. 1 10* Modified November 1979 by C. Hornig for MCS tracing. 1 11* Modified December 1979 by Robert Coren to add FNP channel lock meter 1 12* Modified February 1980 by Robert Coren to remove all references to circular buffer 1 13* Modified March 1980 by Robert Coren to reorganize metering information 1 14* Modified December 1980 by Robert Coren to add FNP-specific events 1 15* Modified 24 March 1982, W. Olin Sibert, to add mcs_timer support, recoverable_error_severity 1 16* Modified November 1984 by Robert Coren to add tty_area_lock 1 17**/ 1 18 1 19 dcl ttybp ptr, 1 20 tty_buf$ ext static, /* tty buffer segment */ 1 21 tty_ev fixed bin int static options (constant) init (57), /* event used for wait and notify */ 1 22 abs_buf_limit fixed bin (18) static options (constant) init (64), /* minimum number of words we will leave free */ 1 23 input_bpart fixed bin (18) static options (constant) init (2), /* fraction of bleft we will allow for input */ 1 24 output_bpart fixed bin (18) static options (constant) init (4); /* fraction of bleft we will allow for output */ 1 25 1 26 1 27 dcl qblock_size fixed bin int static options (constant) init (16); /* size in words of a delay queue block */ 1 28 dcl bsizec fixed bin int static options (constant) init (60); /* number of characters in smallest buffer */ 1 29 dcl buf_per_second fixed bin int static options (constant) init (10); /* for figuring out max. buffer size based on speed */ 1 30 1 31 dcl FNP_DUMP_PATCH_EVENT fixed bin int static options (constant) init (58); 1 32 dcl FNP_METER_EVENT fixed bin int static options (constant) init (59); 1 33 dcl TTY_AREA_LOCK_EVENT bit (36) aligned int static options (constant) init ("74"b3); 1 34 1 35 dcl 1 tty_buf aligned based (ttybp), /* declaration of tty buffer seg */ 1 36 2 slock bit (36), /* per system lock */ 1 37 2 absorig fixed bin (24), /* abs address of this seg */ 1 38 2 borig bit (18), /* index of start of buffer area */ 1 39 2 bleft fixed bin (18), /* words left in pool */ 1 40 2 free bit (18), /* pointer to start of free pool */ 1 41 2 fnp_config_flags (8) bit (1) unal, /* flag(i) ON if fnp(i) configured */ 1 42 2 padb1 bit (28) unaligned, 1 43 2 lct_ptr ptr, /* pointer to logical channel table */ 1 44 1 45 2 nrawread fixed bin (35), /* number of raw chars input, total */ 1 46 2 nrawwrite fixed bin (35), /* number of raw characters output */ 1 47 2 ninchars fixed bin (35), /* total input chars after conversion */ 1 48 2 noutchars fixed bin (35), /* total output chars before conversion */ 1 49 2 readblocked fixed bin (35), /* number of times go input blocked */ 1 50 2 nblocked fixed bin (35), /* number of times process output blocked */ 1 51 2 minbuf fixed bin (18), /* min output buffer size */ 1 52 2 totbuf fixed bin (35), /* divide by nblocked to get ave buffer size */ 1 53 1 54 2 preconverted fixed bin (35), /* number of converted chars held in tty_buf */ 1 55 2 input_restart fixed bin, /* number of times tty_read had to start over */ 1 56 2 output_restart fixed bin, /* number of times tty_write has had to start over */ 1 57 2 output_buffer_overflow fixed bin, /* number of times tty_write has run out of buffers */ 1 58 2 read_time fixed bin (71), /* total time spent in tty_read */ 1 59 2 write_time fixed bin (71), /* total time spent in tty_write */ 1 60 1 61 2 read_calls fixed bin (35), /* number of calls to tty_read */ 1 62 2 write_calls fixed bin (35), /* number of calls to tty_write */ 1 63 2 bfx fixed bin, /* used in calls to iobm */ 1 64 2 nquits fixed bin (35), /* number of quits */ 1 65 2 space_needed_data, 1 66 3 space_needed bit (1) unal, /* space_needed bit on in at least 1 lcte */ 1 67 3 space_needed_calls fixed bin (34) unal, /* meter of uses of this facility */ 1 68 2 space_lock_count fixed bin (35), /* count of times tty_buf.slock locked */ 1 69 2 space_lock_wait_count fixed bin (35), /* count of times necessary to loop to lock it */ 1 70 2 space_lock_wait_time fixed bin (35), /* total time looped trying to lock it */ 1 71 1 72 2 alloc_calls fixed bin (35), /* total number of allocations performed in tty_buf */ 1 73 2 free_calls fixed bin (35), /* total number of freeings in tty_buf */ 1 74 2 alloc_time fixed bin (35), /* time spent masked in tty_space_man$get entries */ 1 75 2 free_time fixed bin (35), /* time spent masked in tty_space_man$free entries */ 1 76 2 total_alloc_steps fixed bin (35), /* number of steps thru free chain while doing above */ 1 77 2 alloc_failures fixed bin (35), /* number of unsuccessful attempts to allocate space */ 1 78 2 cumulative_input_space fixed bin (71), /* cumulative amount of space allocated for input */ 1 79 1 80 2 cumulative_output_space fixed bin (71), /* cumulative amount of space allocated for output */ 1 81 2 cumulative_control_space fixed bin (71), /* cumulative amount of space allocated by tty_space_man$get_space */ 1 82 2 input_space_updates fixed bin (35), /* number of increments to cumulative_input_space */ 1 83 2 output_space_updates fixed bin (35), /* number of increments to cumulative_output_space */ 1 84 2 control_space_updates fixed bin (35), /* number of increments to cumulative_control_space */ 1 85 2 minimum_free_space fixed bin (18), /* smallest amount of free space ever available */ 1 86 1 87 2 current_input_space fixed bin (18), /* amount of space currently allocated for input */ 1 88 2 current_output_space fixed bin (18), /* amount of space currently allocated for output */ 1 89 2 current_control_space fixed bin (18), /* amount of space currently allocated by get_space */ 1 90 2 tty_lock_calls fixed bin (35), /* number of calls to tty_lock$lock entries */ 1 91 2 found_channel_locked fixed bin (35), /* number of times tty_lock found channel already locked */ 1 92 2 max_wait_time fixed bin (35), /* longest time waited for any channel lock */ 1 93 2 total_wait_time fixed bin (71), /* total amount of time spent waiting for channel locks */ 1 94 1 95 2 echo_neg_time fixed bin (71), /* cumulative time spent doing echo negotiation */ 1 96 2 echo_neg_interrupts fixed bin (35), /* Echo-negotiated shipments */ 1 97 2 echo_neg_r0_chars fixed bin (35), /* Chars echoed by ring 0 */ 1 98 2 echo_neg_mux_chars fixed bin (35), /* Chars echoed by mux */ 1 99 2 echo_neg_sndopt_restarts fixed bin (35), /* Echo reinits */ 1 100 2 echo_neg_mux_nonecho fixed bin (35), 1 101 2 echo_neg_entries fixed bin (35), /* Entries into negotiate */ 1 102 1 103 2 echo_neg_mux_inhibit bit (1) aligned, /* For testing */ 1 104 2 n_queued_interrupts fixed bin (35), /* number of interrupts queued by tty_lock */ 1 105 2 trace unaligned, /* tracing information */ 1 106 3 flags, 1 107 4 enable bit, /* global tracing control */ 1 108 4 default_mode bit, /* whether to trace channels by default */ 1 109 4 read bit, /* read */ 1 110 4 write bit, /* write */ 1 111 4 data bit, /* buffers on reads and writes */ 1 112 4 control bit, /* control, priv_control, and hpriv_control */ 1 113 4 modes bit, /* (get set check)_modes */ 1 114 4 interrupt bit, /* interrupt, interrupt_later */ 1 115 4 init bit, /* init_multiplexer, terminate_multiplexer */ 1 116 4 start bit, /* start, stop */ 1 117 4 shutdown bit, /* shutdown */ 1 118 4 space_man bit, /* tty_space_man$* */ 1 119 4 pad_flags bit (6), 1 120 3 data_offset bit (18), /* offset of tracing data */ 1 121 1 122 2 recoverable_error_severity fixed bin, /* Syserr severity for recoverable MCS errors */ 1 123 1 124 2 timer_lock bit (36) aligned, /* Lock owned by mcs_timer */ 1 125 2 next_timer_offset bit (18) aligned, /* Offset of next timer to come due */ 1 126 2 timer_count fixed bin, /* Number of timers outstanding */ 1 127 2 timer_process bit (36) aligned, /* Who is doing timers? */ 1 128 1 129 2 timer_ev_chn fixed bin (71), /* How get get him */ 1 130 2 timer_lock_wait_time fixed bin (71), /* CPU time spent spinning on timer lock */ 1 131 1 132 2 timer_lock_count fixed bin (35), /* Number of times timer lock locked */ 1 133 2 timer_lock_wait_count fixed bin (35), /* Number of times imer lock waited on */ 1 134 2 timer_call_time fixed bin (71), /* CPU time spent in call side timer operations */ 1 135 1 136 2 timer_polling_time fixed bin (71), /* CPU time spent polling (including channel_manager) */ 1 137 2 timer_set_calls fixed bin (35), /* Number of calls to mcs_timer$set, set_wired */ 1 138 2 timer_reset_calls fixed bin (35), /* Number of calls to mcs_timer$reset, reset_wired */ 1 139 1 140 2 timer_change_calls fixed bin (35), /* Number of calls to mcs_timer$change, change_wired */ 1 141 2 timer_poll_calls fixed bin (35), /* Number of calls to mcs_timer$poll */ 1 142 2 timer_error_calls fixed bin (35), /* Number of mcs_timer calls ending with recoverable errors */ 1 143 2 timer_duplicate_pollings fixed bin (35), /* Number of timer polling found in progress on other CPU */ 1 144 1 145 2 tty_area_lock like hc_fast_lock, /* to prevent contention in allocating/freeing in tty_area */ 1 146 1 147 2 pad2 (13) fixed bin (35), 1 148 1 149 2 free_space fixed bin; /* start of free space region */ 1 150 1 151 2 1 /* BEGIN INCLUDE FILE...hc_fast_lock.incl.pl1 */ 2 2 2 3 /* Created November 1984 by Robert Coren to replace hc_lock.incl.pl1 */ 2 4 2 5 /* Lock format suitable for use with lock$lock_fast, unlock_fast */ 2 6 2 7 /* format: style3 */ 2 8 2 9 declare lock_ptr pointer; 2 10 declare 1 hc_fast_lock aligned based (lock_ptr), 2 11 2 pid bit (36) aligned, /* holder of lock */ 2 12 2 event bit (36) aligned, /* event associated with lock */ 2 13 2 flags aligned, 2 14 3 notify_sw bit (1) unaligned, 2 15 3 pad bit (35) unaligned; /* certain locks use this pad, like dirs */ 2 16 2 17 /* END INCLUDE FILE...hc_fast_lock.incl.pl1 */ 1 152 1 153 1 154 /* END INCLUDE FILE ... tty_buf.incl.pl1 */ 653 3 1 /* BEGIN dn355_data.incl.pl1 */ 3 2 3 3 3 4 3 5 /****^ HISTORY COMMENTS: 3 6* 1) change(88-06-15,Berno), approve(88-07-13,MCR7928), 3 7* audit(88-06-15,Parisek), install(88-07-19,MR12.2-1061): 3 8* Add data needed for the uncp multiplexer (DSA gateway) interface 3 9* implementation. 3 10* 2) change(89-03-20,Parisek), approve(89-06-06,MCR8110), 3 11* audit(89-10-09,Farley), install(89-10-25,MR12.3-1100): 3 12* Add support of protocol mpx. 3 13* END HISTORY COMMENTS */ 3 14 3 15 3 16 /* Date Last Modified and Reason 3 17* 3 18* Created 07/25/74 by R. B. Snyder for new ttydim. 3 19* Modified 06/23/77 by J. Stern to add channel_work_reqd and cwork_count 3 20* Modified 08/14/78 by Robert Coren to remove devx_tab and invent PCBs 3 21* Modified 79 May 14 by Art Beattie to add fnp_mem_size 3 22* Modified December 1979 by Robert Coren to add FNP queue lock 3 23* Modified January 1980 by Larry Johnson to increase max number of FNPs to 8 3 24* Modified 02/12/80 by Robert Coren to add dcw_list_array_ptr 3 25* Modified 03/06/80 by Robert Coren to add some metering info 3 26* Modified 12/10/80 by Robert Coren to add get_meters_waiting flag 3 27* Modified 83-12-16 BIM to use a chanid instead of iom/channel fb's. 3 28* Modified 1984-07-26 BIM for paged iom. 3 29* Modified in September 1985 for the DN7100 version interim. 3 30**/ 3 31 3 32 /* LOCKING RULES: A fnp is locked by its LCTE unless its LCTE is uninitialized. 3 33* In that case, the configuration_lock must be held. 3 34* if tty_lock$lock_lcte returns io_no_permission, then the caller must 3 35* lock$lock_fast the configuration lock and retry the LCTE lock. If 3 36* the lcte is now initialized, too bad. Otherwise, the config lock protects. 3 37* 3 38* Configuration locking is interesting to init_multiplexer and 3 39* all of fnp t&d and reconfiguration. The guts of the multiplexer 3 40* pay no attention to it. Thus, if the LCTE can be locked, it MUST be 3 41* locked before changing the io_manager_assigned flag. */ 3 42 3 43 /* format: style4,delnl,insnl,^ifthendo */ 3 44 3 45 dcl max_no_355s fixed bin int static init (8) options (constant); 3 46 /* max no of 355s we can handle (arbitrary) */ 3 47 dcl dn355_data$ external fixed bin; 3 48 3 49 dcl infop pointer; 3 50 dcl fnpp ptr; 3 51 3 52 dcl 1 datanet_info aligned based (infop), 3 53 2 configuration_lock aligned, 3 54 3 pid bit (36) aligned, 3 55 3 event bit (36) aligned, 3 56 3 flags aligned, 3 57 4 notify_sw bit (1) unaligned, 3 58 4 pad bit (35) aligned, 3 59 2 no_of_355s fixed bin, /* no. of FNP's */ 3 60 2 trace bit (1) aligned, /* watch events on console */ 3 61 2 debug_stop bit (1) aligned, /* crash on errors */ 3 62 2 uncp_bufp ptr, /* pointer to the circular buffer */ 3 63 2 protocol_datap ptr, /* pointer to protocol_mpx data */ 3 64 2 pad1 (6) bit (36) aligned, 3 65 2 per_datanet (max_no_355s) aligned like fnp_info; /* data per datanet */ 3 66 3 67 dcl 1 fnp_info aligned based (fnpp), /* structure for each FNP */ 3 68 2 mbx_pt pointer, /* pointer to mailbox NULL if not in config */ 3 69 2 pcb_array_ptr pointer, /* pointer to array of physical channel blocks */ 3 70 2 dcw_list_array_ptr pointer, /* pointer to array of space reserved for output DCW lists */ 3 71 2 no_of_channels fixed bin, /* number of channels on this FNP */ 3 72 2 fnp_id, 3 73 3 fnp_tag char (1) unaligned, /* letter identifying FNP */ 3 74 3 fnp_number fixed bin (9) unsigned unaligned, /* sequence number of FNP */ 3 75 3 padc bit (18) unaligned, 3 76 2 io_chanid char (8) aligned, 3 77 2 io_manager_chx fixed bin (35), /* devx for DIA on iom */ 3 78 2 lsla_idx (0:5) fixed bin aligned, /* index into PCB array for lsla lines */ 3 79 2 hsla_idx (0:2) fixed bin aligned, /* index into PCB array for hsla lines */ 3 80 2 count fixed bin, /* number of items in delay queue */ 3 81 2 cur_ptr fixed bin, /* offset in tty_buf of next delay queue element */ 3 82 2 last_ptr fixed bin, /* offset in tty_buf of last delay queue element */ 3 83 2 bleft_355 fixed bin, /* number of free buffers in this 355 */ 3 84 2 flags, 3 85 3 work_reqd bit (1) unaligned, /* mailbox messages queued up */ 3 86 3 bootloading bit (1) unaligned, /* currently being bootloaded */ 3 87 3 running bit (1) unaligned, /* this FNP is running */ 3 88 3 wired bit (1) unaligned, /* bootload buffer is wired */ 3 89 3 dump_patch_in_progress bit (1) unaligned, /* a dump or patch order is in progress */ 3 90 3 level_3_pending bit (1) unaligned, /* level 3 interrupt pending */ 3 91 3 level_7_pending bit (1) unaligned, /* level 7 interrupt pending */ 3 92 3 dump_patch_disabled bit (1) unaligned, /* dump & patch orders disabled because of timeout */ 3 93 3 t_and_d_in_progress bit (1) unaligned, /* T & D using FNP */ 3 94 3 t_and_d_lev_3_occurred bit (1) unaligned, /* A level 3 occurred */ 3 95 3 t_and_d_lev_7_occurred bit (1) unaligned, 3 96 3 t_and_d_notify_requested bit (1) unaligned, 3 97 3 t_and_d_assigned bit (1) unaligned, /* AS has given fnp to process */ 3 98 3 get_meters_waiting bit (1) unaligned, /* waiting for meter copy to complete */ 3 99 3 padb bit (7) unaligned, 3 100 3 active_dial unaligned, 3 101 4 active_bit (15) bit (1) unaligned, /* ON if the process is active */ 3 102 2 lcte_ptr ptr, /* pointer to this FNP's LCT entry */ 3 103 2 astep ptr, /* pointer to aste of wired bootload buffer */ 3 104 2 boot_ev_chan fixed bin (71), /* event channel over which to signal bootload completion */ 3 105 2 boot_process_id bit (36), /* process that initiated bootload */ 3 106 2 version char (4), /* version id of core image */ 3 107 2 fnp_mem_size fixed bin (18) unsigned, /* memory size of this FNP in 18-bit words */ 3 108 2 queue_lock bit (36) aligned, /* lock for interrupt queue */ 3 109 2 dump_patch_lock bit (36), /* lock for fnp_dump or _patch operation */ 3 110 2 q_entries_made fixed bin (35), /* count of delay queue entries made */ 3 111 2 input_reject_count fixed bin, /* number of times input rejected */ 3 112 2 processed_from_q fixed bin (35), /* number of interrupts processed from queue */ 3 113 2 fnp_channel_locked fixed bin (35), /* number of times dn355 found per-FNP lock locked */ 3 114 2 input_data_transactions fixed bin (35), /* number of mailbox transactions for input */ 3 115 2 output_data_transactions fixed bin (35), /* number of mailbox transactions for output */ 3 116 2 input_control_transactions fixed bin (35), /* number of mailbox transactions for inbound control info */ 3 117 2 output_control_transactions fixed bin (35), /* number of mailbox transactions for outbound control info */ 3 118 2 cumulative_mbx_in_use fixed bin (35), /* cumulative count of number of outbound mailboxes in use */ 3 119 2 max_mbx_in_use fixed bin, /* maximum number of mailboxes in use at any given time */ 3 120 2 mbx_in_use_updated fixed bin (35), /* number of increments to cumulative_mbx_in_use */ 3 121 2 mbx_unavailable fixed bin (35), /* number of times had to queue mailbox transaction because none available */ 3 122 2 free_size fixed bin (35), /* cumulative amount of bleft_355 */ 3 123 2 free_count fixed bin, /* number of adds to above */ 3 124 2 fnp_space_restricted_output fixed bin (35), /* number of times available FNP space restricted amount of output sent */ 3 125 2 tandd_pcbx fixed bin, /* index of PCB for COLTS channel */ 3 126 2 n_pages_wired fixed bin, /* pages wired for loading */ 3 127 2 config_flags aligned, 3 128 3 available bit (1) unaligned, /* reconfig says "yes" */ 3 129 3 io_manager_assigned bit (1) unaligned, /* We have channel assigned to us */ 3 130 3 pad bit (34) unaligned, 3 131 2 uncp_pcbx1 fixed bin (17) unaligned, /* For the DN7100 */ 3 132 2 uncp_pcbx2 fixed bin (17) unaligned, /* For the DN7100 */ 3 133 2 ptx fixed bin, /* page table index, used only at bootload */ 3 134 2 ptp pointer unaligned; /* page table for this FNP */ 3 135 3 136 /**** The following named constants are used to lay out the 3 137* iom page tables. Each FNP has to have its own page 3 138* table because there is not enough room to have eight different 3 139* bootload images of 32 K and > 64 K of tty_buf 3 140* 3 141* THE MAX TTY BUF LENGTH IS 192 K words. We could have another 16 K 3 142* easily, and then after that it would get hard. */ 3 143 3 144 /**** The layout 3 145* 3 146* Page I/O address Memory address Comments 3 147* ---- ------ -------------- -------- 3 148* 0 0 xxxxxx invalid PTW 3 149* 1 2000 2000 write-enabled (mailbox) 3 150* 2 4000 4000 write-enabled (mailbox) 3 151* 3 6000 6000 write-enabled (mailbox) 3 152* 4 10000 as needed bootload image segment page 0 3 153* .... .... .... .... 3 154* 35 110000 as needed bootload image segment page 31 3 155* 36 112000 xxxxxx invalid PTW 3 156* ... .... .... .... 3 157* 63 160000 .... invalid PTW 3 158* 64 200000 as needed tty_buf page 0 3 159* ... .... .... .... 3 160* 127 260000 as needed tty_buf page 63 3 161* 255 ...... ..... tty_buf page 191 3 162**/ 3 163 3 164 /**** We assume that the page table starts at all zeros. */ 3 165 3 166 declare FIRST_BOOTLOAD_PAGEX fixed bin init (4) int static options (constant); 3 167 declare FIRST_TTY_BUF_PAGEX fixed bin init (64) int static options (constant); 3 168 3 169 /* End include file dn355_data.incl.pl1 */ 654 4 1 /* BEGIN dn355_mailbox.incl.pl1 */ 4 2 4 3 /* Date Last Modified and Reason 4 4* Created 07/25/74 by R. B. Snyder for new ttydim. 4 5* Modified 08/20/75 by Mike Grady to prepare for multiple 355's 4 6* Modified 11/08/78 by Robert Coren to introduce FNP-controlled mailboxes 4 7* Modified 02/19/80 by Robert Coren to specify format of accept_input mailbox 4 8* Modified 04/23/80 by Robert Coren to replace lock with num_in_use 4 9* Modified 09/21/82 by Robert Coren to make subfields of crash_data be fixed bin (18) unsigned 4 10* */ 4 11 4 12 dcl 1 datanet_mbx aligned based (mbxp), /* declaration of 355 mailbox */ 4 13 2 dia_pcw aligned, /* Peripheral Control Word for DIA */ 4 14 3 zero bit (18) unaligned, 4 15 3 error bit (1) unaligned, /* set to "1"b if error on connect */ 4 16 3 pad1 bit (5) unaligned, 4 17 3 mbx_no bit (6) unaligned, /* number of submbx being sent to 355 */ 4 18 3 command bit (6) unaligned, /* always 71 (octal) */ 4 19 2 mailbox_requests fixed bin, /* 0 mod 256K cnt of mbx requests by 355 */ 4 20 2 term_inpt_mpx_wd bit (36) aligned, /* terminate interrupt multiplex word */ 4 21 2 last_mbx_req_count fixed bin, /* previous value of mailbox_requests */ 4 22 2 num_in_use fixed bin, /* number of submailboxes currently in use */ 4 23 2 mbx_used_flags, /* one bit for each mailbox */ 4 24 3 used (0:7) bit (1) unaligned, /* "1"b means this mbx is being used */ 4 25 3 pad2 bit (28) unaligned, 4 26 2 crash_data, /* data for 355 emergency interrupt */ 4 27 3 fault_code fixed bin (18) unal unsigned, 4 28 3 ic fixed bin (18) unal unsigned, 4 29 3 iom_fault_status fixed bin (18) unal unsigned, 4 30 3 fault_word fixed bin (18) unal unsigned, /* contains either faulting instruction or iomchannel no */ 4 31 2 dn355_sub_mbxes (0:7) aligned, /* 8 CS-initiated submailboxes */ 4 32 3 pad4 (8) fixed bin, /* eight words each */ 4 33 2 fnp_sub_mbxes (0:3) aligned, /* 4 FNP-initiated mailboxes */ 4 34 3 pad5 (28) fixed bin; /* 28 words each */ 4 35 4 36 dcl 1 sub_mbx aligned based (subp), /* declaration of a submailbox */ 4 37 2 dn355_no bit (3) unaligned, /* 355 number */ 4 38 2 pad1 bit (5) unaligned, 4 39 2 line_number unaligned, /* line number assigned by 355 */ 4 40 3 is_hsla bit (1) unaligned, /* on if hsla, off if lsla */ 4 41 3 la_no bit (3) unaligned, /* line adapter (high or low speed) number */ 4 42 3 slot_no bit (6) unaligned, /* physical slot/subchannel number */ 4 43 2 terminal_id bit (18) unaligned, /* not used */ 4 44 4 45 2 terminal_type bit (9) unaligned, /* unused */ 4 46 2 cmd_data_len fixed bin (8) unaligned, /* no. of 6 bit chars in command data */ 4 47 2 op_code fixed bin (8) unaligned, /* op code */ 4 48 2 io_cmd fixed bin (8) unaligned, /* i/o cmd */ 4 49 4 50 2 command_data (3) bit (36) unaligned, /* data associated with op code */ 4 51 4 52 2 address unal, /* dcw buffer or circular queue address */ 4 53 3 data_addr bit (18) unaligned, /* data address */ 4 54 3 word_cnt fixed bin (18) unsigned unaligned, /* data length */ 4 55 2 pad3 bit (72) unaligned; 4 56 4 57 /* The structure below defines the long form of submailbox used by the FNP. Note that 4 58* the declaration of command_data and input_data is that used for the input_in_mailbox 4 59* operation; other FNP-initiated operations use the command_data format described by 4 60* the above (short mailbox) structure 4 61**/ 4 62 4 63 dcl 1 fnp_sub_mbx aligned based (subp), /* format used for FNP-controlled mailbox */ 4 64 2 dn355_no bit (3) unaligned, /* as above */ 4 65 2 pad1 bit (5) unaligned, 4 66 2 line_number unaligned, /* as above */ 4 67 3 is_hsla bit (1) unaligned, 4 68 3 la_no bit (3) unaligned, 4 69 3 slot_no bit (6) unaligned, 4 70 2 n_free_buffers fixed bin (17) unaligned, /* number of free blocks in FNP at present */ 4 71 4 72 2 pad3 bit (9) unaligned, 4 73 2 n_chars fixed bin (9) unsigned unaligned, /* number of data characters (if input) */ 4 74 2 op_code fixed bin (9) unsigned unaligned, /* as above */ 4 75 2 io_cmd fixed bin (9) unsigned unaligned, /* as above */ 4 76 4 77 2 input_data char (100) unaligned, /* input characters for input_in_mailbox op */ 4 78 2 command_data bit (36) unaligned; /* shouldn't need more than one word */ 4 79 4 80 /* The structure below defines the format of a long submailbox used for an accept_input operation 4 81* when the data is too long to fit directly in the mailbox. command_data and n_chars occupy the same position as for input_in_mailbox, above. 4 82**/ 4 83 4 84 dcl 1 input_sub_mbx aligned based (subp), 4 85 2 pad1 bit (8) unaligned, 4 86 2 line_number unaligned like sub_mbx.line_number, 4 87 2 n_free_buffers fixed bin (17) unaligned, /* number of free blocks in FNP at present */ 4 88 4 89 2 n_chars fixed bin (17) unaligned, /* total number of data characters */ 4 90 2 op_code fixed bin (9) unsigned unaligned, 4 91 2 io_cmd fixed bin (9) unsigned unaligned, 4 92 4 93 2 n_buffers fixed bin, /* number of buffers in this input chain */ 4 94 2 dcw (24), /* "pseudo-DCWs" used to specify buffer addresses and tallies */ 4 95 3 abs_addr bit (24) unaligned, /* supplied by CS */ 4 96 3 tally fixed bin (12) unsigned unaligned, /* in characters, supplied by FNP */ 4 97 2 command_data bit (36) unaligned; /* as above */ 4 98 4 99 dcl subp pointer; 4 100 dcl mbxp pointer; 4 101 4 102 /* END dn355_mailbox.incl.pl1 */ 655 5 1 /* BEGIN INCLUDE FILE ... tty_buffer_block.incl.pl1 */ 5 2 5 3 5 4 5 5 /****^ HISTORY COMMENTS: 5 6* 1) change(88-06-15,Berno), approve(88-07-13,MCR7928), 5 7* audit(88-06-15,Parisek), install(88-07-19,MR12.2-1061): 5 8* Add data needed for the uncp multiplexer (DSA gateway) interface 5 9* implementation. 5 10* END HISTORY COMMENTS */ 5 11 5 12 5 13 /* 5 14* Separated from tty_buf.incl.pl1 aug 78 by J. Nicholls 5 15* Modified May 1979 by Larry Johnson to add max_buffer_tally array and to use unsigned variables. 5 16* Reported in February 1982 the modifications to add the "turn" bit in flags. 5 17**/ 5 18 5 19 dcl blockp ptr; /* pointer which block entry is based on */ 5 20 dcl free_blockp ptr; /* pointer to head of free space chain */ 5 21 5 22 5 23 dcl 1 free_block aligned based (free_blockp), /* format of start of free block */ 5 24 2 next bit (18), /* foward pointer to next free block */ 5 25 2 size fixed bin; /* number of words in this block */ 5 26 5 27 5 28 dcl 1 buffer based (blockp) aligned, /* buffer definition */ 5 29 2 next fixed bin (18) unal uns, /* addr of next buffer */ 5 30 2 flags unaligned, 5 31 3 end_of_page bit (1) unaligned, /* buffer contains end of page */ 5 32 3 converted bit (1) unaligned, /* buffer contains converted input */ 5 33 3 break bit (1) unaligned, /* buffer contains break character */ 5 34 3 mark bit (1) unaligned, /* buffer contains first character after "mark" */ 5 35 3 turn bit (1) unaligned, /* ON if the turn must be sent */ 5 36 3 pad bit (1) unaligned, 5 37 2 size_code fixed bin (3) unal uns, /* (nwords/16) - 1 */ 5 38 2 tally fixed bin (9) unal uns, /* number of characters in buffer */ 5 39 2 chars (0:59) char (1) unaligned; /* room for 60 data characters */ 5 40 5 41 /* the following array, if indexed by buffer.size_code will give maximum number of characters permitted in that buffer */ 5 42 5 43 dcl max_buffer_tally (0:7) fixed bin int static options (constant) init (60, 124, 188, 252, 316, 380, 444, 508); 5 44 5 45 /* END INCLUDE FILE ... tty_buffer_block.incl.pl1 */ 656 6 1 /* BEGIN INCLUDE FILE ... pcb.incl.pl1 */ 6 2 6 3 6 4 6 5 /****^ HISTORY COMMENTS: 6 6* 1) change(88-06-15,Berno), approve(88-07-13,MCR7928), 6 7* audit(88-06-15,Parisek), install(88-07-19,MR12.2-1061): 6 8* Add data needed for the uncp multiplexer (DSA gateway) interface 6 9* implementation. 6 10* END HISTORY COMMENTS */ 6 11 6 12 6 13 /* Created 08/14/78 by Robert S. Coren */ 6 14 /* Modified 02/19/80 by Robert S. Coren to add read_first & read_last */ 6 15 /* Modified 12/10/80 by Robert S. Coren to add metering stuff */ 6 16 /* Modified May 1981 by Robert S.Coren to add tandd_attached flag */ 6 17 /* Modified in February 1982 to add: dumpout, turn, enter_receive_pending, 6 18* connection_type, send_lf, extra_nl,lfecho flags for DN7100 */ 6 19 6 20 /* Describes physical channel blocks for FNP channels */ 6 21 6 22 dcl n_pcbs fixed bin; 6 23 dcl pcbp ptr; 6 24 6 25 dcl 1 pcb_array (n_pcbs) based aligned like pcb; 6 26 6 27 dcl 1 pcb aligned based (pcbp), /* physical channel block declaration */ 6 28 2 channel_desc unaligned, 6 29 3 devx fixed bin (17), /* index of LCT entry */ 6 30 3 subchan fixed bin (7) unaligned, /* logical subchannel/lsla slot # correspondence */ 6 31 3 line_number unal, /* regular line number */ 6 32 4 is_hsla bit (1) unaligned, /* on if hsla, off if lsla */ 6 33 4 la_no bit (3) unaligned, /* line adapter (high or low speed) number */ 6 34 4 slot_no bit (6) unaligned, /* physical slot or subchannel number */ 6 35 2 write_first fixed bin (17) unaligned, /* offset of first buffer in output chain */ 6 36 2 write_last fixed bin (17) unaligned, /* offset of last buffer in output chain */ 6 37 2 baud_rate fixed bin (17) unaligned, /* baud rate of channel */ 6 38 2 line_type fixed bin (17) unaligned, /* line type */ 6 39 2 max_buf_size fixed bin (17) unaligned, /* largest buffer to be allocated for output */ 6 40 2 write_cnt fixed bin (17) unaligned, /* number of characters in write chain */ 6 41 2 flags unaligned, 6 42 3 listen bit (1), /* channel is ready for dialup */ 6 43 3 dialed bit (1), /* channel is dialed up or connected */ 6 44 3 send_output bit (1), /* channel is ready for output */ 6 45 3 high_speed bit (1), /* needs large send_out threshold */ 6 46 3 sync_line bit (1), /* synchronous channel */ 6 47 3 end_frame bit (1), /* channel is waiting for formfeed */ 6 48 3 hndlquit bit (1), /* channel in hndlquit mode */ 6 49 3 breakall_enabled bit (1), /* breakall mode allowed for this channel */ 6 50 3 output_mbx_pending bit (1), /* A wtx mbx has been sent, but not relinquished */ 6 51 3 copied_meters_ready bit (1), /* copy_meters operation has completed */ 6 52 3 get_meters_waiting bit (1), /* waiting for get_meters operation to complete */ 6 53 3 tandd_attached bit (1), /* this channel is in use by T & D */ 6 54 3 enter_receive_pending bit (1), /* enter_receive is waiting for send */ 6 55 3 turn bit (1), /* Multics owns the turn */ 6 56 3 extra_nl bit (1), /* add NL at end of buffer (read) */ 6 57 3 send_lf bit (1), /* send lf after read */ 6 58 3 lfecho bit (1), /* Validate lfecho mode */ 6 59 3 dumpout bit (1), /* To purge first write after special dial */ 6 60 3 buffer_flag bit (1), /* Utilisation of a buffer in place of the circular buffer. */ 6 61 3 connection_type bit (2), /* For full-duplex */ 6 62 3 padb bit (6), 6 63 3 uncp_pcbx fixed bin (9) unal uns, /* To manage the full duplex with the datanet 7100 */ 6 64 2 read_first fixed bin (18) unsigned unaligned, /* head of read chain (while reading from FNP) */ 6 65 2 read_last fixed bin (18) unsigned unaligned, /* tail of read chain (likewise) */ 6 66 2 saved_meters_ptr pointer unaligned, /* pointer to (unwired) copy of meters at last dialup */ 6 67 2 copied_meters_offset fixed bin (18) unsigned; /* offset in tty_buf of buffer meters copied to */ 6 68 6 69 /* END INCLUDE FILE ... pcb.incl.pl1 */ 657 7 1 /* BEGIN INCLUDE FILE...fnp_queue_entry.incl.pl1 */ 7 2 7 3 7 4 7 5 /****^ HISTORY COMMENTS: 7 6* 1) change(86-04-23,Coren), approve(86-04-23,MCR7300), 7 7* audit(86-05-19,Beattie), install(86-07-08,MR12.0-1089): 7 8* To increase the size of cmd_data to allow for 8-word echo-break tables. 7 9* END HISTORY COMMENTS */ 7 10 7 11 7 12 /* This include file defines the delay queue entries used by dn355 when an outbound 7 13* mailbox is unavailable */ 7 14 7 15 /* Extracted from dn355.pl1 by Robert Coren, September 1984 */ 7 16 7 17 dcl fnp_qptr pointer; 7 18 7 19 dcl 1 fnp_queue_entry based (fnp_qptr) aligned, /* definition of delay queue entry */ 7 20 2 opcode fixed bin (8) unal, /* opcode */ 7 21 2 cmd_count fixed bin (8) unal, /* count of valid command data */ 7 22 2 pcb_offset bit (18) unal, /* PCB of channel */ 7 23 2 cmd_data bit (8 * 36) unal, /* 8 words of command data */ 7 24 2 next fixed bin; /* offset of next queue entry */ 7 25 7 26 /* END INCLUDE FILE...fnp_queue_entry.incl.pl1 */ 658 8 1 /* BEGIN INCLUDE FILE ... lct.incl.pl1 */ 8 2 8 3 /* Created by J. Stern 7/26/78 */ 8 4 /* Metering information added by C. Hornig, March 1980. */ 8 5 /* Unwired saved meters added by Robert Coren, December 1980 */ 8 6 8 7 dcl lctp ptr; /* ptr to logical channel table */ 8 8 dcl lctep ptr; /* ptr to logical channel table entry */ 8 9 dcl lct_size fixed bin; /* size of lcte_array when allocated */ 8 10 8 11 dcl 1 lct aligned based (lctp), /* logical channel table */ 8 12 2 max_no_lctes fixed bin, /* maximum number of lct entries */ 8 13 2 cur_no_lctes fixed bin, /* current number of lct entries used */ 8 14 2 lcnt_ptr ptr, /* ptr to logical channel name table */ 8 15 2 queue_lock bit (36), /* lock used to serialize queueing operations */ 8 16 2 pad (11) fixed bin, 8 17 2 lcte_array (lct_size refer (lct.max_no_lctes)) like lcte; /* lct entries */ 8 18 8 19 8 20 dcl 1 lcte aligned based (lctep), /* logical channel table entry */ 8 21 2 lock bit (36), /* channel lock */ 8 22 2 data_base_ptr ptr unal, /* ptr to channel data base */ 8 23 2 channel_type fixed bin (8) unal, /* identifies channel manager program */ 8 24 2 flags unal, 8 25 3 entry_in_use bit (1) unal, /* ON if this entry in use */ 8 26 3 initialized bit (1) unal, /* ON if this channel initialized */ 8 27 3 notify_reqd bit (1) unal, /* ON if must notify when unlocking this channel */ 8 28 3 locked_for_interrupt bit (1) unal, /* ON if lock set by interrupt handler */ 8 29 3 space_needed bit (1) unal, /* ON if this channel needs buffer space */ 8 30 3 special_lock bit (1) unal, /* ON if lock is managed by multiplexer */ 8 31 3 trace_force bit (1) unal, /* ON to trace based on next bit only */ 8 32 /* OFF to XOR next bit with tty_buf.default_tracing */ 8 33 3 trace bit (1) unal, /* ON to trace this channel */ 8 34 3 unused bit (1) unal, 8 35 2 physical_channel_devx fixed bin (17) unal, /* devx of physical chan from which logical chan is derived */ 8 36 2 major_channel_info, 8 37 3 major_channel_devx fixed bin unal, /* major channel device index */ 8 38 3 subchannel fixed bin (17) unal, /* subchannel id (or data ptr) wrt major channel */ 8 39 2 queue_entries, 8 40 3 queue_head bit (18) unal, /* ptr to first queue entry for this channel */ 8 41 3 queue_tail bit (18) unal, /* ptr to last queue entry for this channel */ 8 42 2 word_counts, 8 43 3 input_words fixed bin (17) unal, /* number of input words charged to this channel */ 8 44 3 output_words fixed bin (17) unal, /* number of output words charged to this channel */ 8 45 8 46 2 meters, 8 47 3 in_bytes fixed bin (35), 8 48 3 out_bytes fixed bin (35), 8 49 3 in, 8 50 4 calls fixed bin (35), 8 51 4 interrupts fixed bin (35), 8 52 4 call_time fixed bin (71), 8 53 4 interrupt_time fixed bin (71), 8 54 3 out like lcte.meters.in, 8 55 3 control like lcte.meters.in, 8 56 2 saved_meters_ptr ptr, /* pointer to unwired copy of meters saved at last dialup */ 8 57 8 58 2 timer_offset bit (18) aligned, /* Head of list of timers for this channel */ 8 59 8 60 2 pad (3) fixed bin (35); 8 61 8 62 8 63 dcl lcntp ptr; /* ptr to logical channel name table */ 8 64 8 65 dcl 1 lcnt aligned based (lcntp), /* logical channel name table */ 8 66 2 names (lct.max_no_lctes) char (32) unal; /* channel names */ 8 67 8 68 dcl 1 saved_meters aligned based like lcte.meters; /* meters saved at dialup, allocated in tty_area */ 8 69 8 70 8 71 /* END INCLUDE FILE ... lct.incl.pl1 */ 659 9 1 /* BEGIN INCLUDE FILE ... wtcb.incl.pl1 */ 9 2 9 3 9 4 /****^ HISTORY COMMENTS: 9 5* 1) change(88-06-15,Berno), approve(88-07-13,MCR7928), 9 6* audit(88-06-15,Parisek), install(88-07-19,MR12.2-1061): 9 7* Add data needed for the uncp multiplexer (DSA gateway) interface 9 8* implementation. 9 9* END HISTORY COMMENTS */ 9 10 9 11 9 12 /* 9 13* Moved from tty_buf.incl.pl1 Aug 78 by J. Nicholls plus changes for ring 0 demultiplexing 9 14* Error code added Nov. 1982 by Robert Coren 9 15* Modified December 1984 by Robert Coren to invent "more_flags" structure and 9 16* its first flag, line_status_disabled 9 17* Reported modifications for the DN7100 interim in August 85. 9 18**/ 9 19 9 20 dcl wtcbp ptr; /* pointer to head of wtcb */ 9 21 9 22 dcl 1 wtcb based (wtcbp) aligned, /* wired terminal control block */ 9 23 2 hevent fixed bin (71) aligned, /* event channel for hangup/dialup signal */ 9 24 2 event fixed bin (71) aligned, /* users event channel, for uproc */ 9 25 9 26 2 line_status bit (72) aligned, /* actual line status sent by fnp */ 9 27 9 28 2 tcb_ptr ptr unal, /* pointer to tcb */ 9 29 2 pad1 fixed bin (35), /* formerly time dialedup */ 9 30 9 31 2 hproc bit (36) aligned, /* boss processid */ 9 32 2 uproc bit (36) aligned, /* tty user processid */ 9 33 9 34 2 baud_rate fixed bin (18) unal uns, /* baud rate of this line */ 9 35 2 line_type fixed bin (18) unal uns, /* line type for line protocol */ 9 36 9 37 2 flags unaligned, 9 38 3 listen bit (1) unaligned, /* if on, listen for dialups */ 9 39 3 dialed bit (1) unaligned, /* if on, line is dialed up */ 9 40 3 send_output bit (1) unaligned, /* on if DN355 requested more output */ 9 41 9 42 3 qenable bit (1) unaligned, /* if on, signal quits */ 9 43 3 qflag bit (1) unaligned, /* on after quit, causes writes to be ignored */ 9 44 3 end_frame bit (1) unaligned, /* write chain fills ards frame */ 9 45 9 46 3 notify_reqd bit (1) unaligned, /* if on, do notify after unlocking lock */ 9 47 3 work_reqd bit (1) unaligned, /* if on, call dn355 before returning */ 9 48 3 dialing bit (1) unaligned, /* if on, 355 is dialing a phone number */ 9 49 9 50 3 dial_status_valid bit (1) unaligned, /* if on, dial_status_code is valid */ 9 51 3 input_available bit (1) unaligned, /* input for this device is waiting in wired space */ 9 52 3 tcb_initialized bit (1) unaligned, /* if on, tcb has been initialized */ 9 53 9 54 3 wflag bit (1) unaligned, /* process blocked on output */ 9 55 3 rflag bit (1) unaligned, /* process blocked on input */ 9 56 3 wru bit (1) unaligned, /* reading answerback */ 9 57 9 58 3 hndlquit bit (1) unaligned, /* on if in hndlquit mode */ 9 59 3 count_lines bit (1) unaligned, /* on if tcb.linemax > 0 */ 9 60 3 line_status_present bit (1) unaligned, /* fnp has sent line status */ 9 61 9 62 3 sync_line bit (1) unaligned, /* channel is synchronous line type */ 9 63 3 breakall bit (1) unaligned, /* channel is in breakall mode */ 9 64 3 scroll bit (1) unaligned, /* channel is in scroll mode */ 9 65 9 66 3 negotiating_echo bit (1) unaligned, /* ring zero to echo chars. */ 9 67 3 wake_tbl bit (1) unaligned, /* on if in wake_tbl mode */ 9 68 3 allow_wakeup bit (1) unaligned, /* on to allow input wakeup in wake_tbl mode */ 9 69 9 70 3 receive_mode_device bit (1) unaligned, /* device must be told to enter receive mode */ 9 71 3 mark_set bit (1) unal, /* write_with_mark call outstanding */ 9 72 3 masked bit (1) unal, /* channel masked by FNP */ 9 73 9 74 2 dial_status_code fixed bin (8) unaligned, /* code returned by 355 after dialing a phone number */ 9 75 9 76 2 fblock fixed bin (17) unaligned, /* oldest read pointer, block */ 9 77 2 lblock fixed bin (17) unaligned, /* newest read block */ 9 78 9 79 2 fchar fixed bin (9) unsigned unaligned, /* first block char index */ 9 80 2 actline fixed bin (9) unsigned unaligned, /* line number of current line */ 9 81 2 actcol fixed bin (9) unsigned unaligned, /* tty column position */ 9 82 2 nramsgs fixed bin (9) unsigned unaligned, /* current number of read-ahead msgs */ 9 83 9 84 2 write_first fixed bin (17) unaligned, /* first write block */ 9 85 2 write_last fixed bin (17) unaligned, /* last write block */ 9 86 2 write_cnt fixed bin (17) unaligned, /* count of chars in write chain */ 9 87 2 white_col fixed bin (17) unaligned, /* column position resulting from trailing white space */ 9 88 9 89 2 max_buf_size fixed bin (9) unal uns, /* maximum-size buffer to be allocated for this channel */ 9 90 2 buffer_pad fixed bin (9) unal uns, /* amount of pad to be left in output buffers */ 9 91 2 devx fixed bin (17) unaligned, /* index into lct of channel's entry */ 9 92 2 echdp bit (18) unaligned, /* echo negotiation data ptr */ 9 93 2 waketp bit (18) unaligned, /* wakeup table offset */ 9 94 2 prompt_len fixed bin (8) unaligned, /* number of chars in prompt string */ 9 95 2 prompt char (3) unaligned, /* text of prompt message */ 9 96 2 line_delimiter char (1) unal, /* line delimiter for tty_read parse */ 9 97 2 more_flags unaligned, /* in addition to flags (above) */ 9 98 3 line_status_disabled bit (1) unaligned, /* "1"b => don't relay line_status interrupts */ 9 99 2 send_turn bit (1) unal, /* For the Dn7100 interim */ 9 100 2 pad bit (25) unal, 9 101 2 error_code fixed bin (35), /* error code returned by channel_manager to tty_interrupt */ 9 102 2 pad2 bit (36); 9 103 9 104 /* Ends on doubleword boundary */ 9 105 9 106 /* END INCLUDE FILE ... wtcb.incl.pl1 */ 660 10 1 /* BEGIN INCLUDE FILE ... line_types.incl.pl1 */ 10 2 10 3 /* Written November 10 1975 by Paul Green */ 10 4 /* Modified October 1978 by Larry Johnson to include line_type_names */ 10 5 /* Modified 12/19/78 by J. Stern to add POLLED_VIP line type */ 10 6 /* Modified 9/27/79 by J. Stern to add X25LAP line type */ 10 7 /* Modified Spring 1981 by Charles Hornig to add HDLC line type */ 10 8 /* Modified May 1981 by Robert Coren to add COLTS line type */ 10 9 /* Modified September 1984 by Robert Coren to correctly count VIP as a synchronous line type */ 10 10 10 11 10 12 /****^ HISTORY COMMENTS: 10 13* 1) change(86-02-25,Negaret), approve(87-07-13,MCR7679), 10 14* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 10 15* Add a DSA line type. 10 16* 2) change(87-03-17,Beattie), approve(87-07-13,MCR7656), 10 17* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 10 18* Add HASP_OPR to identify HASP workstation consoles with login service. 10 19* END HISTORY COMMENTS */ 10 20 10 21 10 22 declare (LINE_MC initial (-2), 10 23 LINE_TELNET initial (-1), 10 24 LINE_UNKNOWN initial (0), 10 25 LINE_ASCII initial (1), 10 26 LINE_1050 initial (2), 10 27 LINE_2741 initial (3), 10 28 LINE_ARDS initial (4), 10 29 LINE_SYNCH initial (5), 10 30 LINE_G115 initial (6), 10 31 LINE_BSC initial (7), 10 32 LINE_ETX initial (8), 10 33 LINE_VIP initial (9), 10 34 LINE_ASYNC1 initial (10), 10 35 LINE_ASYNC2 initial (11), 10 36 LINE_ASYNC3 initial (12), 10 37 LINE_SYNC1 initial (13), 10 38 LINE_SYNC2 initial (14), 10 39 LINE_SYNC3 initial (15), 10 40 LINE_POLLED_VIP initial (16), 10 41 LINE_X25LAP initial (17), 10 42 LINE_HDLC initial (18), 10 43 LINE_COLTS initial (19), 10 44 LINE_DSA initial (20), 10 45 LINE_HASP_OPR initial (21) 10 46 ) fixed bin internal static options (constant); 10 47 10 48 dcl max_line_type fixed bin int static options (constant) init (21); 10 49 10 50 declare n_sync_line_types fixed bin int static options (constant) init (10); 10 51 10 52 declare sync_line_type (10) fixed bin int static options (constant) init (5, 6, 7, 9, 13, 14, 15, 16, 17, 18); 10 53 10 54 dcl line_types (-2:21) char (16) int static options (constant) init ( 10 55 "MC", /* -2 */ 10 56 "TELNET", /* -1 */ 10 57 "none", /* 0 */ 10 58 "ASCII", /* 1 */ 10 59 "1050", /* 2 */ 10 60 "2741", /* 3 */ 10 61 "ARDS", /* 4 */ 10 62 "Sync", /* 5 */ 10 63 "G115", /* 6 */ 10 64 "BSC", /* 7 */ 10 65 "202ETX", /* 8 */ 10 66 "VIP", /* 9 */ 10 67 "ASYNC1", /* 10 */ 10 68 "ASYNC2", /* 11 */ 10 69 "ASYNC3", /* 12 */ 10 70 "SYNC1", /* 13 */ 10 71 "SYNC2", /* 14 */ 10 72 "SYNC3", /* 15 */ 10 73 "POLLED_VIP", /* 16 */ 10 74 "X25LAP", /* 17 */ 10 75 "HDLC", /* 18 */ 10 76 "COLTS", /* 19 */ 10 77 "DSA", /* 20 */ 10 78 "HASP_OPR"); /* 21 */ 10 79 10 80 /* END INCLUDE FILE ... line_types.incl.pl1 */ 661 11 1 /* Begin include file ..... multiplexer_types.incl.pl1 */ 11 2 11 3 11 4 11 5 /****^ HISTORY COMMENTS: 11 6* 1) change(89-03-20,Parisek), approve(89-06-01,MCR8110), 11 7* audit(89-10-09,Farley), install(89-10-25,MR12.3-1100): 11 8* Add support of protocol mpx. 11 9* END HISTORY COMMENTS */ 11 10 11 11 11 12 /* This include file defines known multiplexer types */ 11 13 /* Prepared August 1978 by Larry Johnson */ 11 14 /* Changed April 1979 to rename the fnp multiplexer mcs */ 11 15 11 16 dcl (TTY_MPX init (0), /* nonmultiplexed channel */ 11 17 MCS_MPX init (1), /* FNP running MCS */ 11 18 USER1_MPX init (2), /* a range of values for user defined multiplexers */ 11 19 USER2_MPX init (3), 11 20 USER3_MPX init (4), 11 21 USER4_MPX init (5), 11 22 USER5_MPX init (6), 11 23 IBM3270_MPX init (7), /* IBM 3270 display terminal controller */ 11 24 VIP7760_MPX init (8), /* Honeywell VIP 7760 terminal controller */ 11 25 STY_MPX init (9), /* Software Terminal Facility */ 11 26 LAP_MPX init (10), /* Link Access Protocol (X.25 level 2) */ 11 27 X25_MPX init (11), /* CCITT X.25 level 3 */ 11 28 HASP_MPX init (12), /* HASP RJE protocol */ 11 29 UNCP_MPX init (13), /* DSA protocol */ 11 30 SYSTEM2_MPX init (14), 11 31 SYSTEM1_MPX init (15), 11 32 PROTOCOL_MPX init (16)) /* TCP/IP network X.25 protocol */ 11 33 int static options (constant); 11 34 11 35 dcl mpx_types (0:16) char (32) int static options (constant) init ( 11 36 "tty", "mcs", "user1", "user2", "user3", "user4", "user5", "ibm3270", 11 37 "vip7760", "sty", "lap", "x25", "hasp", "uncp", "system2", "system1", 11 38 "protocol"); 11 39 11 40 dcl mpx_special_lock (0:16) bit (1) int static options (constant) init ( 11 41 "0"b, "1"b, "0"b, "0"b, "0"b, "0"b, "0"b, "0"b, 11 42 "0"b, "0"b, "0"b, "0"b, "0"b, "1"b, "0"b, "0"b, "0"b); 11 43 11 44 /* End include file ..... multiplexer_types.incl.pl1 */ 662 12 1 /* BEGIN mailbox_ops.incl.pl1 12 2* 12 3* Created 8/15/74 by F. A. Canali 12 4* Modified 12/01/75 by J. Goldman for dial out 12 5* Modified 8/24/76 by Robert Coren to add dont_accept_calls and blast 12 6* Modified 7/28/77 by J. Stern to add set_delay_table 12 7* Modified 2/6/78 by Robert Coren to add sync_msg_size 12 8* Modified 6/29/79 by B. Greenberg for FNP echo negotiation 12 9* Modified Oct. 1979 by Robert Coren to add oflow & iflow modes 12 10* Modified 1/21/80 by Robert Coren to add parity controls 12 11* Modified 12/10/80 by Robert Coren to add report_meters 12 12* */ 12 13 12 14 dcl ( /* declaration of submailbox io commands */ 12 15 12 16 rcd init (1), /* read control data */ 12 17 rtx init (2), /* read text */ 12 18 wcd init (3), /* write control data */ 12 19 wtx init (4) /* write text */ 12 20 12 21 ) fixed bin (8) int static options (constant); 12 22 12 23 12 24 dcl ( /* declaration of submailbox op codes sent by 6180 to 355 */ 12 25 12 26 terminal_accepted init (0), /* a dialed terminal has been accepted */ 12 27 disconnect_this_line init (1), /* hang up a line */ 12 28 disconnect_all_lines init (2), /* hang up all lines */ 12 29 dont_accept_calls init (3), /* the 6180 is no longer accepting terminals */ 12 30 accept_calls init (4), /* the 6180 is ready to accept terminals */ 12 31 input_accepted init (5), /* the 6180 will accept input and has reserved 12 32* space in its circular buffer */ 12 33 set_line_type init (6), /* set the line type */ 12 34 enter_receive init (7), /* give the line to the terminal */ 12 35 set_framing_chars init (8), /* set characters for block transfer */ 12 36 blast init (9), /* BOS blast message */ 12 37 accept_direct_output init (10), /* the 6180 has an output request */ 12 38 accept_last_output init (11), /* same as above but the 355 may 12 39* unlock the keyboard and accept input 12 40* when the output transmission is through */ 12 41 dial init (12), /* use command data to dial a phone number */ 12 42 reject_request_temp init (14), /* an input request can not be serviced */ 12 43 terminal_rejected init (16), /* a dial up has been rejected */ 12 44 disconnect_accepted init (17), /* the 6180 recognizes a disconnection */ 12 45 init_complete init (18), /* 6180 system initialization is complete */ 12 46 dump_mem init (19), /* dump 355 memory */ 12 47 patch_mem init (20), /* patch 355 memory */ 12 48 fnp_break init (21), /* to control fnp break points */ 12 49 line_control init (22), /* line control order to fnp */ 12 50 sync_msg_size init (23), /* set message size for sync line */ 12 51 set_echnego_break_table init (24), /* send over echo negotiation break table */ 12 52 start_negotiated_echo init (25), /* attempt to start FNP echoing for ech. nego. */ 12 53 stop_negotiated_echo init (26), /* 6180 wants FNP to stop negotiated echo */ 12 54 init_echo_negotiation init (27), /* synchronize echo negotiation ctrs. */ 12 55 break_acknowledged init (29), /* the 6180 recognizes a break for a terminal */ 12 56 input_fc_chars init (30), /* set input flow control chars */ 12 57 output_fc_chars init (31), /* set output flow control chars */ 12 58 alter_parameters init (34), /* request to alter 355 parms for a terminal */ 12 59 checksum_error init (35), /* submailbox has a checksum error */ 12 60 report_meters init (36), /* get meters from FNP */ 12 61 set_delay_table init (37) /* tells 355 to set new delay table for channel */ 12 62 ) fixed bin (8) int static options (constant); 12 63 12 64 12 65 dcl ( /* submailbox op codes sent from 355 to 6180 */ 12 66 12 67 accept_new_terminal init (64), /* a terminal has dialed up */ 12 68 disconnected_line init (65), /* a terminal has been hung up */ 12 69 input_in_mailbox init (66), /* this mailbox contains input */ 12 70 line_masked init (67), /* channel was masked for excessive interrupts */ 12 71 s6180_params init (68), /* return bcount */ 12 72 send_output init (69), /* I am ready to send to a terminal */ 12 73 ack_echnego_init init (70), /* I have zeroed my ech. nego. ctr. */ 12 74 ack_echnego_stop init (71), /* I have sent all that I have echoed. */ 12 75 connect_to_slave init (73), /* a dialup sequence has been completed */ 12 76 accept_direct_input init (74), /* HEY! here's some input for you */ 12 77 break_condition init (75), /* a break has been hit for a terminl */ 12 78 wru_timeout init (76), /* no answerback */ 12 79 error_message init (77), /* error message from the 355 */ 12 80 first_acu_op_code init (80), 12 81 acu_no_power init (80), /* power indicator of auto-call unit is off */ 12 82 acu_line_occupied init (81), /* auto-call unit's line is being used */ 12 83 acu_dial_failure init (82), /* dial out failed */ 12 84 acu_no_good init (83), /* invalid dial out attempt */ 12 85 last_acu_op_code init (83), 12 86 line_status init (84) /* line status reported by fnp */ 12 87 ) fixed bin (8) int static options (constant); 12 88 12 89 dcl ( /* declaration of sub operations for alter parameters */ 12 90 12 91 Breakchar init (1), /* specifies break character */ 12 92 Nocontrol init (2), /* enter/leave nocontrol mode */ 12 93 Fullduplex init (3), /* perform character echoing */ 12 94 Break init (4), /* send line break to terminal */ 12 95 Errormsg init (5), /* indicates error detected by 355 */ 12 96 Meter init (6), /* read metering info */ 12 97 Sensepos init (7), /* sense position of carrier */ 12 98 Crecho init (8), /* enter/leave crecho mode */ 12 99 Lfecho init (9), /* enter/leave line feed echo mode */ 12 100 Lock init (10), /* lock keyboard */ 12 101 Msg init (11), /* precanned msg for dialing terminals */ 12 102 Upstate init (12), /* are you up? */ 12 103 Dumpoutput init (13), /* throw away output */ 12 104 Tabecho init (14), /* echo tabs */ 12 105 Setbusy init (15), /* force dataset busy */ 12 106 Listen init (16), /* answer the phone */ 12 107 Hndlquit init (17), /* send newline on receipt of quit */ 12 108 Chngstring init (18), /* printer addressing string definition */ 12 109 Wru init (19), /* read answerback */ 12 110 Echoplex init (20), /* enter/leave echoplex mode */ 12 111 Xmit_hold init (21), /* start/stop transmit hold */ 12 112 Dumpinput init (22), /* throw away input */ 12 113 Replay init (23), /* replay interrupted input */ 12 114 Polite init (24), /* write only if at left margin */ 12 115 Block_xfer init (25), /* block transfer or "frame" mode */ 12 116 Set_buffer_size init (26), /* set input buffer size */ 12 117 Breakall init (27), /* break on all characters */ 12 118 Prefixnl init (28), /* prefix output with newlines if input present */ 12 119 Input_flow_control init (29), /* iflow mode */ 12 120 Output_flow_control init (30), /* oflow mode */ 12 121 Odd_parity init (31), /* generate odd parity */ 12 122 Eight_bit_in init (32), /* 8bit mode */ 12 123 Eight_bit_out init (33) /* no_outp mode */ 12 124 ) fixed bin (8) int static options (constant); 12 125 12 126 dcl global_opcodes (9) fixed bin (8) int static options (constant) init ( 12 127 2, /* disconnect_all_lines */ 12 128 3, /* dont_accept_calls */ 12 129 4, /* accept_calls */ 12 130 9, /* blast */ 12 131 19, /* dump_mem */ 12 132 20, /* patch_mem */ 12 133 21, /* fnp_break */ 12 134 36, /* report_meters */ 12 135 77); /* error_message */ 12 136 12 137 /* END of mailbox_ops.incl.pl1 */ 663 13 1 /* BEGIN INCLUDE FILE mcs_echo_neg_sys.incl.pl1 Bernard Greenberg 1/20/79 */ 13 2 13 3 /* Modified 6/29/79 by BSG for FNP echo negotiation */ 13 4 13 5 13 6 /****^ HISTORY COMMENTS: 13 7* 1) change(86-04-23,Coren), approve(86-04-23,MCR7300), 13 8* audit(86-05-19,Beattie), install(86-07-08,MR12.0-1089): 13 9* To increase size of break table and to add named constants for the size. 13 10* END HISTORY COMMENTS */ 13 11 13 12 13 13 /* This include file defines the wired structure for MCS echo negotiation */ 13 14 13 15 dcl echo_datap ptr; /* Wired echo data ptr */ 13 16 dcl WIRED_ECHO_BREAK_SIZE fixed bin internal static options (constant) init (255); 13 17 dcl WORDS_IN_ECHO_BREAK_TABLE fixed bin internal static options (constant) init (8); 13 18 13 19 dcl 1 echo_data based (echo_datap) aligned, /* Wired echo data */ 13 20 2 break (0: 255) bit (1) unaligned, /* 1 = break on this character */ 13 21 2 synchronized bit (1) unal, /* Mux echo negotiation is synchronized */ 13 22 2 mux_will_echnego bit (1) unal, /* Multiplexer accepted start_neg_echnego */ 13 23 2 echo_start_pending_sndopt bit (1) unal, /* Send start_n_e when SEND_OUTPUT comes */ 13 24 2 awaiting_start_sync bit (1) unal, /* Awaiting mux reply ACK for start */ 13 25 2 awaiting_stop_sync bit (1) unal, /* Awaiting mux reply ACK for stop */ 13 26 2 pad bit (27) unaligned, 13 27 2 sync_ctr fixed bin (35), /* Protocol ctr for MUX echo neg */ 13 28 2 chars_echoed fixed bin (9) unsigned unaligned, /* Count of chars echoed */ 13 29 2 horiz_room_left fixed bin (9) unsigned unaligned, /* Room left on line */ 13 30 2 rubout_trigger_chars (2) unaligned, /* Characters that cause rubout action */ 13 31 3 char char (1) unaligned, 13 32 2 rubout_sequence_length fixed bin (4) unsigned unaligned, /* Length of rubout sequence, output */ 13 33 2 rubout_pad_count fixed bin (4) unsigned unaligned, /* Count of pads needed */ 13 34 2 buffer_rubouts bit (1) unaligned, /* 1 = put rubouts and rubbed out in buffer */ 13 35 2 rubout_sequence char (12) unaligned; /* Actual rubout sequence */ 13 36 13 37 /* END INCLUDE FILE mcs_echo_neg_sys.incl.pl1 */ 664 14 1 /* BEGIN INCLUDE FILE ... set_wakeup_table_info.incl.pl1 */ 14 2 14 3 /* Created 3/1/79 by J. Stern */ 14 4 14 5 14 6 dcl swt_infop ptr; 14 7 dcl swt_info_version_1 fixed bin static options (constant) init (1); 14 8 14 9 dcl 1 swt_info aligned based (swt_infop), /* info structure for set_wakeup_table control order */ 14 10 2 version fixed bin, /* version number of this structure */ 14 11 2 new_table like wakeup_table, /* wakeup table to set */ 14 12 2 old_table like wakeup_table; /* previous wakeup table */ 14 13 14 14 dcl wakeup_tablep ptr; 14 15 14 16 dcl 1 wakeup_table aligned based (wakeup_tablep), 14 17 2 wake_map (0:127) bit (1) unal, /* bit i ON if ith char is wakeup char */ 14 18 2 mbz bit (16) unal; 14 19 14 20 14 21 /* END INCLUDE FILE ... set_wakeup_table_info.incl.pl1 */ 665 666 667 end tty_analyze; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 10/25/89 1000.0 tty_analyze.pl1 >special_ldd>install>MR12.3-1100>tty_analyze.pl1 653 1 01/06/85 1422.1 tty_buf.incl.pl1 >ldd>include>tty_buf.incl.pl1 1-152 2 01/06/85 1422.1 hc_fast_lock.incl.pl1 >ldd>include>hc_fast_lock.incl.pl1 654 3 10/25/89 0959.9 dn355_data.incl.pl1 >special_ldd>install>MR12.3-1100>dn355_data.incl.pl1 655 4 10/20/82 0938.5 dn355_mailbox.incl.pl1 >ldd>include>dn355_mailbox.incl.pl1 656 5 07/21/88 2036.0 tty_buffer_block.incl.pl1 >ldd>include>tty_buffer_block.incl.pl1 657 6 07/21/88 2036.0 pcb.incl.pl1 >ldd>include>pcb.incl.pl1 658 7 07/10/86 2015.0 fnp_queue_entry.incl.pl1 >ldd>include>fnp_queue_entry.incl.pl1 659 8 11/08/82 1005.8 lct.incl.pl1 >ldd>include>lct.incl.pl1 660 9 07/21/88 2036.0 wtcb.incl.pl1 >ldd>include>wtcb.incl.pl1 661 10 08/06/87 0913.4 line_types.incl.pl1 >ldd>include>line_types.incl.pl1 662 11 10/25/89 0959.9 multiplexer_types.incl.pl1 >special_ldd>install>MR12.3-1100>multiplexer_types.incl.pl1 663 12 10/20/82 0938.6 mailbox_ops.incl.pl1 >ldd>include>mailbox_ops.incl.pl1 664 13 07/10/86 2015.0 mcs_echo_neg_sys.incl.pl1 >ldd>include>mcs_echo_neg_sys.incl.pl1 665 14 04/27/79 1615.0 set_wakeup_table_info.incl.pl1 >ldd>include>set_wakeup_table_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. DCW_LIST_SIZE constant fixed bin(17,0) initial dcl 71 ref 416 MCS_MPX constant fixed bin(17,0) initial dcl 11-16 ref 342 TTY_MPX constant fixed bin(17,0) initial dcl 11-16 ref 340 UNCP_MPX constant fixed bin(17,0) initial dcl 11-16 ref 342 343 a_chan_name parameter char packed unaligned dcl 325 ref 316 333 a_devx parameter fixed bin(17,0) dcl 324 in procedure "walk_channel_tree" ref 316 332 a_devx parameter fixed bin(17,0) dcl 458 in procedure "analyze_wtcb" ref 453 addr builtin function dcl 76 ref 236 244 253 334 381 384 addrel builtin function dcl 76 ref 272 304 allow_wakeup 13(23) based bit(1) level 3 packed packed unaligned dcl 9-22 ref 502 analyze_entry 000246 automatic entry variable dcl 91 set ref 548* 551 analyze_entry_name 000206 automatic char(32) packed unaligned dcl 44 set ref 547* 548* 549* arg based char packed unaligned dcl 67 set ref 127 127 130 130 133 133 133 139 145 151 157 163 169 171* 178* 182 argl 000244 automatic fixed bin(21,0) dcl 68 set ref 120* 127 127 130 130 133 133 133 139 145 151 157 163 169 171 171 178 178 182 argp 000242 automatic pointer dcl 66 set ref 120* 127 127 130 130 133 133 133 139 145 151 157 163 169 171 178 182 ascii 0(04) 000241 automatic bit(1) level 2 packed packed unaligned dcl 56 set ref 135* 142* 148* 189 baud_rate 2 based fixed bin(17,0) level 2 packed packed unaligned dcl 6-27 set ref 386* bin builtin function dcl 76 ref 247 247 253 253 274 299 302 303 306 386 386 386 386 397 439 439 439 460 460 509 509 580 580 587 587 587 587 609 622 647 bleft 3 based fixed bin(18,0) level 2 dcl 1-35 set ref 227* 260 288* 288 291 291* block_orig 000236 automatic fixed bin(17,0) dcl 52 set ref 302* 306* 306 blockp 000260 automatic pointer dcl 5-19 set ref 281 281 298* 299 300 302 303 303 304* 304 306 309* 309 621* 622 627 628* borig 2 based bit(18) level 2 dcl 1-35 ref 277 298 397 460 609 breakall 13(19) based bit(1) level 3 packed packed unaligned dcl 9-22 ref 494 buf 000102 automatic fixed bin(17,0) dcl 38 set ref 259* 260 268 271 272 273* 274* 277 277 281* 286 buf_offset parameter fixed bin(17,0) dcl 601 set ref 596 606* 608 609 611* 615 617* 621 627* buf_size 000176 automatic fixed bin(17,0) dcl 604 set ref 622* 623 625 628* buffer based structure level 1 dcl 5-28 buffp parameter pointer dcl 640 ref 637 643 643 643 646 647 647 chan_name 000176 automatic char(32) packed unaligned dcl 43 in procedure "tty_analyze" set ref 383* 386* 404* chan_name 000100 automatic char(32) packed unaligned dcl 326 in procedure "walk_channel_tree" set ref 333* 351 channel_desc based structure level 2 packed packed unaligned dcl 6-27 channel_q based structure level 1 dcl 563 set ref 584 584 channel_type 2 based fixed bin(8,0) level 2 packed packed unaligned dcl 8-20 ref 340 342 342 343 343 348 547 chanx 000172 automatic fixed bin(17,0) dcl 41 set ref 380* 381* code 000226 automatic fixed bin(35,0) dcl 46 in procedure "tty_analyze" set ref 100* 101 103* 120* 121 123* 195* 196 198* 208* 209 212* 213 216* 217 219* 548* 549 549* code 000123 automatic fixed bin(35,0) dcl 330 in procedure "walk_channel_tree" set ref 353* 354 com_err_ 000016 constant entry external dcl 84 ref 103 123 171 178 198 219 549 com_err_$suppress_name 000020 constant entry external dcl 84 ref 109 copied_meters_ready 4(09) based bit(1) level 3 packed packed unaligned dcl 6-27 set ref 388* copy_erf_seg_$name 000032 constant entry external dcl 93 ref 208 212 216 copy_pcb_ap 000174 automatic pointer dcl 42 set ref 379* 381 count 24 based fixed bin(17,0) level 2 dcl 3-67 ref 424 count_lines 13(16) based bit(1) level 3 packed packed unaligned dcl 9-22 ref 490 cu_$arg_count 000024 constant entry external dcl 89 ref 100 cu_$arg_ptr 000022 constant entry external dcl 88 ref 120 cur_ptr 25 based fixed bin(17,0) level 2 dcl 3-67 ref 422 425 cv_entry_ 000026 constant entry external dcl 90 ref 548 data 2 based fixed bin(17,0) array level 2 dcl 563 set ref 580* data_base_ptr 1 based pointer level 2 packed packed unaligned dcl 8-20 ref 375 460 462 dcw_list_array_ptr 4 based pointer level 2 dcl 3-67 ref 416 416 devx 000103 automatic fixed bin(17,0) dcl 38 in procedure "tty_analyze" set ref 332* 334 340* 382* 383 384 386* 404* 551* devx based fixed bin(17,0) level 3 in structure "pcb" packed packed unaligned dcl 6-27 in procedure "tty_analyze" ref 382 dial_status_valid 13(09) based bit(1) level 3 packed packed unaligned dcl 9-22 ref 482 dialed 4(01) based bit(1) level 3 in structure "pcb" packed packed unaligned dcl 6-27 in procedure "tty_analyze" set ref 388* dialed 13(01) based bit(1) level 3 in structure "wtcb" packed packed unaligned dcl 9-22 in procedure "tty_analyze" ref 466 dialing 13(08) based bit(1) level 3 packed packed unaligned dcl 9-22 ref 480 ds_format 000241 automatic structure level 1 dcl 56 set ref 116* 224* ebcdic8 0(07) 000241 automatic bit(1) level 2 packed packed unaligned dcl 56 set ref 136* 141* 148* 189 ebcdic9 0(06) 000241 automatic bit(1) level 2 packed packed unaligned dcl 56 set ref 136* 142* 147* 189 echdp 21 based bit(18) level 2 packed packed unaligned dcl 9-22 ref 530 530 530 echo_data based structure level 1 dcl 13-19 ref 530 530 echo_datap automatic pointer dcl 13-15 ref 530 530 end_frame 13(05) based bit(1) level 3 in structure "wtcb" packed packed unaligned dcl 9-22 in procedure "tty_analyze" ref 474 end_frame 4(05) based bit(1) level 3 in structure "pcb" packed packed unaligned dcl 6-27 in procedure "tty_analyze" set ref 388* entry_in_use 22(09) based bit(1) array level 4 in structure "lct" packed packed unaligned dcl 8-11 in procedure "tty_analyze" set ref 354 entry_in_use 2(09) based bit(1) level 3 in structure "lcte" packed packed unaligned dcl 8-20 in procedure "tty_analyze" ref 237 247 335 erfno 000216 automatic char(32) packed unaligned dcl 45 set ref 114* 176 182* 186 208* 212* 216* 219* 226* error_table_$badopt 000010 external static fixed bin(35,0) dcl 78 set ref 171* error_table_$too_many_args 000012 external static fixed bin(35,0) dcl 78 set ref 178* fblock 14 based fixed bin(17,0) level 2 packed packed unaligned dcl 9-22 ref 518 521 fixed builtin function dcl 76 ref 227 227 259 277 281 281 643 643 flagarray 000104 automatic varying char(200) dcl 39 set ref 463* 464* 464 466* 466 468* 468 470* 470 472* 472 474* 474 476* 476 478* 478 480* 480 482* 482 484* 484 486* 486 488* 488 490* 490 492* 492 494* 494 496* 496 498* 498 500* 500 502* 502 504* 504 506 506 506* 509* flags 30 based structure level 2 in structure "fnp_info" dcl 3-67 in procedure "tty_analyze" flags 4 based structure level 2 in structure "pcb" packed packed unaligned dcl 6-27 in procedure "tty_analyze" flags 22(09) based structure array level 3 in structure "lct" packed packed unaligned dcl 8-11 in procedure "tty_analyze" flags 2(09) based structure level 2 in structure "lcte" packed packed unaligned dcl 8-20 in procedure "tty_analyze" flags 13 based structure level 2 in structure "wtcb" packed packed unaligned dcl 9-22 in procedure "tty_analyze" fnp_id 7 based structure level 2 dcl 3-67 fnp_info based structure level 1 dcl 3-67 fnp_qptr automatic pointer dcl 7-17 ref 432 434 434 fnp_queue_entry based structure level 1 dcl 7-19 ref 432 434 434 fnp_tag 7 based char(1) level 3 packed packed unaligned dcl 3-67 set ref 428* fnpp 000256 automatic pointer dcl 3-50 set ref 375* 376 378 379 416 416 420 422 424 425 426 428 free 4 based bit(18) level 2 dcl 1-35 ref 227 227 259 free_block based structure level 1 dcl 5-23 free_blockp 000262 automatic pointer dcl 5-20 set ref 272* 273 274 275* 275 288 get_meters_waiting 4(10) based bit(1) level 3 packed packed unaligned dcl 6-27 set ref 388* get_temp_segments_ 000030 constant entry external dcl 92 ref 195 have_segs 000006 internal static bit(1) initial packed unaligned dcl 74 set ref 193 201* hbound builtin function dcl 76 ref 580 hc_fast_lock based structure level 1 dcl 2-10 hex8 0(09) 000241 automatic bit(1) level 2 packed packed unaligned dcl 56 set ref 154* 159* 166* hex9 0(10) 000241 automatic bit(1) level 2 packed packed unaligned dcl 56 set ref 154* 160* 165* high_speed 4(03) based bit(1) level 3 packed packed unaligned dcl 6-27 set ref 388* hndlquit 13(15) based bit(1) level 3 in structure "wtcb" packed packed unaligned dcl 9-22 in procedure "tty_analyze" ref 488 hndlquit 4(06) based bit(1) level 3 in structure "pcb" packed packed unaligned dcl 6-27 in procedure "tty_analyze" set ref 388* i 000122 automatic fixed bin(17,0) dcl 329 in procedure "walk_channel_tree" set ref 352* 353 354 357 357* 358* 358* i 000101 automatic fixed bin(17,0) dcl 38 in procedure "tty_analyze" set ref 118* 120* 123* 235* 236 237* 237* 243* 244* in 30 based structure array level 4 in structure "lct" dcl 8-11 in procedure "tty_analyze" in 10 based structure level 3 in structure "lcte" dcl 8-20 in procedure "tty_analyze" in 2 based structure level 2 in structure "saved_meters" dcl 8-68 in procedure "tty_analyze" index builtin function dcl 76 ref 169 infop 000254 automatic pointer dcl 3-49 set ref 205* 212* 375 initialized 2(10) based bit(1) level 3 packed packed unaligned dcl 8-20 ref 335 input_cnt 000237 automatic fixed bin(17,0) dcl 53 set ref 394* 409 409* 623* 623 input_words 5 based fixed bin(17,0) level 3 packed packed unaligned dcl 8-20 ref 394 int_type 1 based fixed bin(17,0) level 2 dcl 563 ref 579 interrupt 000166 automatic fixed bin(17,0) dcl 561 set ref 579* 580 580 580 580* interrupt_name 000000 constant char(16) initial array packed unaligned dcl 569 set ref 580 580* ioa_ 000014 constant entry external dcl 83 ref 226 227 247 257 264 273 281 291 295 306 343 348 357 386 388 399 406 409 428 431 432 439 443 509 511 513 515 520 526 574 580 587 611 617 643 last_ptr 26 based fixed bin(17,0) level 2 dcl 3-67 ref 426 lcnt based structure level 1 dcl 8-65 lcnt_ptr 2 based pointer level 2 dcl 8-11 ref 233 lcntp 000274 automatic pointer dcl 8-63 set ref 233* 237 353 357 358 383 lct based structure level 1 dcl 8-11 lct_ptr 6 based pointer level 2 dcl 1-35 ref 232 lcte based structure level 1 dcl 8-20 ref 249 249 364 364 lcte_array 20 based structure array level 2 dcl 8-11 set ref 236 244 253 334 384 lctep 000272 automatic pointer dcl 8-8 set ref 236* 237 237 244* 245 247 247 247 249* 249 249 334* 335 335 337 340 342 342 343 343 348 364 364 375 460 462 547 575 587 587 587 lctp 000270 automatic pointer dcl 8-7 set ref 232* 233 235 236 243 244 253* 253 253 334 352 354 384 length builtin function dcl 76 ref 506 506 line_number 0(08) based structure level 2 packed packed unaligned dcl 4-36 line_status_disabled 23(09) based bit(1) level 3 packed packed unaligned dcl 9-22 set ref 511* line_status_present 13(17) based bit(1) level 3 packed packed unaligned dcl 9-22 ref 484 line_type 2(18) based fixed bin(17,0) level 2 packed packed unaligned dcl 6-27 ref 386 line_types 000270 constant char(16) initial array packed unaligned dcl 10-54 set ref 386* listen 13 based bit(1) level 3 in structure "wtcb" packed packed unaligned dcl 9-22 in procedure "tty_analyze" ref 464 listen 4 based bit(1) level 3 in structure "pcb" packed packed unaligned dcl 6-27 in procedure "tty_analyze" set ref 388* local_lctep 000120 automatic pointer dcl 328 set ref 334* 364* lock based bit(36) level 2 dcl 8-20 ref 245 long 0(05) 000241 automatic bit(1) level 2 packed packed unaligned dcl 56 set ref 189* 191* longsw 000227 automatic bit(1) packed unaligned dcl 47 set ref 115* 127* 130* 135* 141* 147* 153* 159* 165* 432 551* 606 major_channel_devx 3 based fixed bin(17,0) level 3 packed packed unaligned dcl 8-20 ref 237 major_channel_info 3 based structure level 2 dcl 8-20 match_star_name_ 000034 constant entry external dcl 94 ref 353 max_no_355s internal static fixed bin(17,0) initial dcl 3-45 ref 3-52 max_no_lctes based fixed bin(17,0) level 2 dcl 8-11 ref 235 243 352 meters 6 based structure level 2 in structure "lcte" dcl 8-20 in procedure "tty_analyze" meters 26 based structure array level 3 in structure "lct" dcl 8-11 in procedure "tty_analyze" mod builtin function dcl 76 ref 647 more_flags 23(09) based structure level 2 packed packed unaligned dcl 9-22 mpx_types 000060 constant char(32) initial array packed unaligned dcl 11-35 set ref 343* 348* 547 n_arguments 000245 automatic fixed bin(17,0) dcl 69 set ref 100* 107 118 n_pcbs 000264 automatic fixed bin(17,0) dcl 6-22 set ref 378* 380 name parameter char packed unaligned dcl 602 set ref 596 606* 611* 617* 623 names based char(32) array level 2 packed packed unaligned dcl 8-65 set ref 237* 353* 357* 358* 383 negotiating_echo 13(21) based bit(1) level 3 packed packed unaligned dcl 9-22 ref 498 next based bit(18) level 2 in structure "free_block" dcl 5-23 in procedure "tty_analyze" ref 274 next 0(18) based fixed bin(18,0) level 2 in structure "used_block" packed packed unsigned unaligned dcl 62 in procedure "tty_analyze" set ref 309 647* next based bit(18) level 2 in structure "channel_q" packed packed unaligned dcl 563 in procedure "print_channel_queue" ref 583 next 11 based fixed bin(17,0) level 2 in structure "fnp_queue_entry" dcl 7-19 in procedure "tty_analyze" ref 435 next based fixed bin(18,0) level 2 in structure "buffer" packed packed unsigned unaligned dcl 5-28 in procedure "tty_analyze" ref 627 next_queue 000162 automatic bit(18) packed unaligned dcl 559 set ref 575* 577 578 580 580 583* no_of_channels 6 based fixed bin(17,0) level 2 dcl 3-67 ref 376 378 notify_reqd 13(06) based bit(1) level 3 packed packed unaligned dcl 9-22 ref 476 null builtin function dcl 76 ref 548 548 nwords parameter fixed bin(17,0) dcl 641 ref 637 647 647 output_cnt 000240 automatic fixed bin(17,0) dcl 54 set ref 395* 406 406* 625* 625 output_mbx_pending 4(08) based bit(1) level 3 packed packed unaligned dcl 6-27 set ref 388* output_words 5(18) based fixed bin(17,0) level 3 packed packed unaligned dcl 8-20 ref 395 pcb based structure level 1 dcl 6-27 set ref 413 413 pcb_array based structure array level 1 dcl 6-25 set ref 381 pcb_array_ptr 2 based pointer level 2 dcl 3-67 ref 379 pcbp 000266 automatic pointer dcl 6-23 set ref 381* 382 386 386 386 386 388 388 388 388 388 388 388 388 388 388 388 397 400 413* 413 413 pointer builtin function dcl 76 ref 621 prog_name 000430 constant char(11) initial packed unaligned dcl 72 set ref 103* 109* 109* 123* 171* 178* 195* 198* 219* ptr builtin function dcl 76 ref 232 233 298 309 375 379 416 416 430 462 530 530 533 533 578 q_count 000230 automatic fixed bin(17,0) dcl 48 set ref 424* 436* 436 443 443* q_entry_overlay based bit(36) array dcl 60 set ref 432* q_last 000231 automatic fixed bin(17,0) dcl 49 set ref 426* 439 439* q_off 000232 automatic fixed bin(17,0) dcl 50 set ref 425* 429 430 431* 435* q_ptr 000234 automatic pointer dcl 51 set ref 430* 432 434* 435 439 439 439 qenable 13(03) based bit(1) level 3 packed packed unaligned dcl 9-22 ref 470 qflag 13(04) based bit(1) level 3 packed packed unaligned dcl 9-22 ref 472 queue_entries 4 based structure level 2 dcl 8-20 queue_head 4 based bit(18) level 3 packed packed unaligned dcl 8-20 ref 337 575 queue_ptr 000164 automatic pointer dcl 560 set ref 578* 579 580 583 584* 584 584 587 587 587 queue_tail 4(18) based bit(18) level 3 packed packed unaligned dcl 8-20 ref 587 587 587 receive_mode_device 13(24) based bit(1) level 3 packed packed unaligned dcl 9-22 ref 504 rel builtin function dcl 76 ref 232 233 247 247 253 253 281 281 299 302 303 306 375 379 386 386 386 386 416 416 439 439 439 460 462 509 509 587 587 587 643 643 647 rflag 13(13) based bit(1) level 3 packed packed unaligned dcl 9-22 ref 515 rtrim builtin function dcl 76 ref 351 547 running 30(02) based bit(1) level 3 packed packed unaligned dcl 3-67 ref 420 scroll 13(20) based bit(1) level 3 packed packed unaligned dcl 9-22 ref 496 send_output 4(02) based bit(1) level 3 in structure "pcb" packed packed unaligned dcl 6-27 in procedure "tty_analyze" set ref 388* send_output 13(02) based bit(1) level 3 in structure "wtcb" packed packed unaligned dcl 9-22 in procedure "tty_analyze" ref 468 size 1 based fixed bin(17,0) level 2 in structure "free_block" dcl 5-23 in procedure "tty_analyze" set ref 273* 275* 288 size builtin function dcl 76 in procedure "tty_analyze" ref 249 249 364 364 413 413 432 434 434 530 530 533 533 536 536 584 584 size_code 0(24) based fixed bin(3,0) level 2 packed packed unsigned unaligned dcl 5-28 ref 622 star_name 000110 automatic char(32) packed unaligned dcl 327 set ref 351* 353* string builtin function dcl 76 set ref 116* sub_mbx based structure level 1 dcl 4-36 subchan_lctep 000134 automatic pointer dcl 373 set ref 384* 386 386 394 395 substr builtin function dcl 76 set ref 245 506* sync_line 4(04) based bit(1) level 3 in structure "pcb" packed packed unaligned dcl 6-27 in procedure "tty_analyze" set ref 388* sync_line 13(18) based bit(1) level 3 in structure "wtcb" packed packed unaligned dcl 9-22 in procedure "tty_analyze" ref 492 tandd_attached 4(11) based bit(1) level 3 packed packed unaligned dcl 6-27 set ref 388* temp_segs 000000 internal static pointer array dcl 73 set ref 195* 204 205 206 tty_areap 000170 automatic pointer dcl 40 set ref 206* 216* 233 551* tty_buf based structure level 1 dcl 1-35 tty_dump$print_chain 000036 constant entry external dcl 95 ref 606 tty_dump$set_static_for_analyze 000040 constant entry external dcl 96 ref 224 ttybp 000252 automatic pointer dcl 1-19 set ref 204* 208* 227 227 227 232 232 259 260 272 277 288 288 291 291 298 298 309 379 397 416 416 430 460 462 530 530 533 533 551* 578 606* 609 621 ttybuf_size 000100 automatic fixed bin(19,0) unsigned dcl 36 set ref 208* 224* 286 299 303 615 used_block based structure level 1 dcl 62 used_marker based bit(18) level 2 packed packed unaligned dcl 62 set ref 300 303 643 646* used_pattern constant bit(18) initial dcl 37 ref 245 300 303 643 646 wake_tbl 13(22) based bit(1) level 3 packed packed unaligned dcl 9-22 ref 500 waketp 21(18) based bit(18) level 2 packed packed unaligned dcl 9-22 ref 533 533 533 wakeup_table based structure level 1 dcl 14-16 ref 533 533 wakeup_tablep automatic pointer dcl 14-14 ref 533 533 wflag 13(12) based bit(1) level 3 packed packed unaligned dcl 9-22 ref 513 word_counts 5 based structure level 2 dcl 8-20 work_reqd 13(07) based bit(1) level 3 packed packed unaligned dcl 9-22 ref 478 write_first 1 based fixed bin(17,0) level 2 in structure "pcb" packed packed unaligned dcl 6-27 in procedure "tty_analyze" ref 397 400 write_first 16 based fixed bin(17,0) level 2 in structure "wtcb" packed packed unaligned dcl 9-22 in procedure "tty_analyze" ref 524 527 wru 13(14) based bit(1) level 3 packed packed unaligned dcl 9-22 ref 486 wtcb based structure level 1 dcl 9-22 set ref 536 536 wtcbp 000276 automatic pointer dcl 9-20 set ref 462* 464 466 468 470 472 474 476 478 480 482 484 486 488 490 492 494 496 498 500 502 504 509 509 511 513 515 518 521 524 527 530 530 530 533 533 533 536* 536 536 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. Block_xfer internal static fixed bin(8,0) initial dcl 12-89 Break internal static fixed bin(8,0) initial dcl 12-89 Breakall internal static fixed bin(8,0) initial dcl 12-89 Breakchar internal static fixed bin(8,0) initial dcl 12-89 Chngstring internal static fixed bin(8,0) initial dcl 12-89 Crecho internal static fixed bin(8,0) initial dcl 12-89 Dumpinput internal static fixed bin(8,0) initial dcl 12-89 Dumpoutput internal static fixed bin(8,0) initial dcl 12-89 Echoplex internal static fixed bin(8,0) initial dcl 12-89 Eight_bit_in internal static fixed bin(8,0) initial dcl 12-89 Eight_bit_out internal static fixed bin(8,0) initial dcl 12-89 Errormsg internal static fixed bin(8,0) initial dcl 12-89 FIRST_BOOTLOAD_PAGEX internal static fixed bin(17,0) initial dcl 3-166 FIRST_TTY_BUF_PAGEX internal static fixed bin(17,0) initial dcl 3-167 FNP_DUMP_PATCH_EVENT internal static fixed bin(17,0) initial dcl 1-31 FNP_METER_EVENT internal static fixed bin(17,0) initial dcl 1-32 Fullduplex internal static fixed bin(8,0) initial dcl 12-89 HASP_MPX internal static fixed bin(17,0) initial dcl 11-16 Hndlquit internal static fixed bin(8,0) initial dcl 12-89 IBM3270_MPX internal static fixed bin(17,0) initial dcl 11-16 Input_flow_control internal static fixed bin(8,0) initial dcl 12-89 LAP_MPX internal static fixed bin(17,0) initial dcl 11-16 LINE_1050 internal static fixed bin(17,0) initial dcl 10-22 LINE_2741 internal static fixed bin(17,0) initial dcl 10-22 LINE_ARDS internal static fixed bin(17,0) initial dcl 10-22 LINE_ASCII internal static fixed bin(17,0) initial dcl 10-22 LINE_ASYNC1 internal static fixed bin(17,0) initial dcl 10-22 LINE_ASYNC2 internal static fixed bin(17,0) initial dcl 10-22 LINE_ASYNC3 internal static fixed bin(17,0) initial dcl 10-22 LINE_BSC internal static fixed bin(17,0) initial dcl 10-22 LINE_COLTS internal static fixed bin(17,0) initial dcl 10-22 LINE_DSA internal static fixed bin(17,0) initial dcl 10-22 LINE_ETX internal static fixed bin(17,0) initial dcl 10-22 LINE_G115 internal static fixed bin(17,0) initial dcl 10-22 LINE_HASP_OPR internal static fixed bin(17,0) initial dcl 10-22 LINE_HDLC internal static fixed bin(17,0) initial dcl 10-22 LINE_MC internal static fixed bin(17,0) initial dcl 10-22 LINE_POLLED_VIP internal static fixed bin(17,0) initial dcl 10-22 LINE_SYNC1 internal static fixed bin(17,0) initial dcl 10-22 LINE_SYNC2 internal static fixed bin(17,0) initial dcl 10-22 LINE_SYNC3 internal static fixed bin(17,0) initial dcl 10-22 LINE_SYNCH internal static fixed bin(17,0) initial dcl 10-22 LINE_TELNET internal static fixed bin(17,0) initial dcl 10-22 LINE_UNKNOWN internal static fixed bin(17,0) initial dcl 10-22 LINE_VIP internal static fixed bin(17,0) initial dcl 10-22 LINE_X25LAP internal static fixed bin(17,0) initial dcl 10-22 Lfecho internal static fixed bin(8,0) initial dcl 12-89 Listen internal static fixed bin(8,0) initial dcl 12-89 Lock internal static fixed bin(8,0) initial dcl 12-89 Meter internal static fixed bin(8,0) initial dcl 12-89 Msg internal static fixed bin(8,0) initial dcl 12-89 Nocontrol internal static fixed bin(8,0) initial dcl 12-89 Odd_parity internal static fixed bin(8,0) initial dcl 12-89 Output_flow_control internal static fixed bin(8,0) initial dcl 12-89 PROTOCOL_MPX internal static fixed bin(17,0) initial dcl 11-16 Polite internal static fixed bin(8,0) initial dcl 12-89 Prefixnl internal static fixed bin(8,0) initial dcl 12-89 Replay internal static fixed bin(8,0) initial dcl 12-89 STY_MPX internal static fixed bin(17,0) initial dcl 11-16 SYSTEM1_MPX internal static fixed bin(17,0) initial dcl 11-16 SYSTEM2_MPX internal static fixed bin(17,0) initial dcl 11-16 Sensepos internal static fixed bin(8,0) initial dcl 12-89 Set_buffer_size internal static fixed bin(8,0) initial dcl 12-89 Setbusy internal static fixed bin(8,0) initial dcl 12-89 TTY_AREA_LOCK_EVENT internal static bit(36) initial dcl 1-33 Tabecho internal static fixed bin(8,0) initial dcl 12-89 USER1_MPX internal static fixed bin(17,0) initial dcl 11-16 USER2_MPX internal static fixed bin(17,0) initial dcl 11-16 USER3_MPX internal static fixed bin(17,0) initial dcl 11-16 USER4_MPX internal static fixed bin(17,0) initial dcl 11-16 USER5_MPX internal static fixed bin(17,0) initial dcl 11-16 Upstate internal static fixed bin(8,0) initial dcl 12-89 VIP7760_MPX internal static fixed bin(17,0) initial dcl 11-16 WIRED_ECHO_BREAK_SIZE internal static fixed bin(17,0) initial dcl 13-16 WORDS_IN_ECHO_BREAK_TABLE internal static fixed bin(17,0) initial dcl 13-17 Wru internal static fixed bin(8,0) initial dcl 12-89 X25_MPX internal static fixed bin(17,0) initial dcl 11-16 Xmit_hold internal static fixed bin(8,0) initial dcl 12-89 abs_buf_limit internal static fixed bin(18,0) initial dcl 1-19 accept_calls internal static fixed bin(8,0) initial dcl 12-24 accept_direct_input internal static fixed bin(8,0) initial dcl 12-65 accept_direct_output internal static fixed bin(8,0) initial dcl 12-24 accept_last_output internal static fixed bin(8,0) initial dcl 12-24 accept_new_terminal internal static fixed bin(8,0) initial dcl 12-65 ack_echnego_init internal static fixed bin(8,0) initial dcl 12-65 ack_echnego_stop internal static fixed bin(8,0) initial dcl 12-65 acu_dial_failure internal static fixed bin(8,0) initial dcl 12-65 acu_line_occupied internal static fixed bin(8,0) initial dcl 12-65 acu_no_good internal static fixed bin(8,0) initial dcl 12-65 acu_no_power internal static fixed bin(8,0) initial dcl 12-65 alter_parameters internal static fixed bin(8,0) initial dcl 12-24 blast internal static fixed bin(8,0) initial dcl 12-24 break_acknowledged internal static fixed bin(8,0) initial dcl 12-24 break_condition internal static fixed bin(8,0) initial dcl 12-65 bsizec internal static fixed bin(17,0) initial dcl 1-28 buf_per_second internal static fixed bin(17,0) initial dcl 1-29 checksum_error internal static fixed bin(8,0) initial dcl 12-24 connect_to_slave internal static fixed bin(8,0) initial dcl 12-65 datanet_info based structure level 1 dcl 3-52 datanet_mbx based structure level 1 dcl 4-12 dial internal static fixed bin(8,0) initial dcl 12-24 disconnect_accepted internal static fixed bin(8,0) initial dcl 12-24 disconnect_all_lines internal static fixed bin(8,0) initial dcl 12-24 disconnect_this_line internal static fixed bin(8,0) initial dcl 12-24 disconnected_line internal static fixed bin(8,0) initial dcl 12-65 dn355_data$ external static fixed bin(17,0) dcl 3-47 dont_accept_calls internal static fixed bin(8,0) initial dcl 12-24 dump_mem internal static fixed bin(8,0) initial dcl 12-24 enter_receive internal static fixed bin(8,0) initial dcl 12-24 error_message internal static fixed bin(8,0) initial dcl 12-65 first_acu_op_code internal static fixed bin(8,0) initial dcl 12-65 fnp_break internal static fixed bin(8,0) initial dcl 12-24 fnp_sub_mbx based structure level 1 dcl 4-63 global_opcodes internal static fixed bin(8,0) initial array dcl 12-126 init_complete internal static fixed bin(8,0) initial dcl 12-24 init_echo_negotiation internal static fixed bin(8,0) initial dcl 12-24 input_accepted internal static fixed bin(8,0) initial dcl 12-24 input_bpart internal static fixed bin(18,0) initial dcl 1-19 input_fc_chars internal static fixed bin(8,0) initial dcl 12-24 input_in_mailbox internal static fixed bin(8,0) initial dcl 12-65 input_sub_mbx based structure level 1 dcl 4-84 last_acu_op_code internal static fixed bin(8,0) initial dcl 12-65 lct_size automatic fixed bin(17,0) dcl 8-9 line_control internal static fixed bin(8,0) initial dcl 12-24 line_masked internal static fixed bin(8,0) initial dcl 12-65 line_status internal static fixed bin(8,0) initial dcl 12-65 lock_ptr automatic pointer dcl 2-9 max_buffer_tally internal static fixed bin(17,0) initial array dcl 5-43 max_line_type internal static fixed bin(17,0) initial dcl 10-48 mbxp automatic pointer dcl 4-100 mpx_special_lock internal static bit(1) initial array packed unaligned dcl 11-40 n_sync_line_types internal static fixed bin(17,0) initial dcl 10-50 output_bpart internal static fixed bin(18,0) initial dcl 1-19 output_fc_chars internal static fixed bin(8,0) initial dcl 12-24 patch_mem internal static fixed bin(8,0) initial dcl 12-24 qblock_size internal static fixed bin(17,0) initial dcl 1-27 rcd internal static fixed bin(8,0) initial dcl 12-14 reject_request_temp internal static fixed bin(8,0) initial dcl 12-24 report_meters internal static fixed bin(8,0) initial dcl 12-24 rtx internal static fixed bin(8,0) initial dcl 12-14 s6180_params internal static fixed bin(8,0) initial dcl 12-65 saved_meters based structure level 1 dcl 8-68 send_output internal static fixed bin(8,0) initial dcl 12-65 set_delay_table internal static fixed bin(8,0) initial dcl 12-24 set_echnego_break_table internal static fixed bin(8,0) initial dcl 12-24 set_framing_chars internal static fixed bin(8,0) initial dcl 12-24 set_line_type internal static fixed bin(8,0) initial dcl 12-24 start_negotiated_echo internal static fixed bin(8,0) initial dcl 12-24 stop_negotiated_echo internal static fixed bin(8,0) initial dcl 12-24 subp automatic pointer dcl 4-99 swt_info based structure level 1 dcl 14-9 swt_info_version_1 internal static fixed bin(17,0) initial dcl 14-7 swt_infop automatic pointer dcl 14-6 sync_line_type internal static fixed bin(17,0) initial array dcl 10-52 sync_msg_size internal static fixed bin(8,0) initial dcl 12-24 terminal_accepted internal static fixed bin(8,0) initial dcl 12-24 terminal_rejected internal static fixed bin(8,0) initial dcl 12-24 tty_buf$ external static fixed bin(17,0) dcl 1-19 tty_ev internal static fixed bin(17,0) initial dcl 1-19 wcd internal static fixed bin(8,0) initial dcl 12-14 wru_timeout internal static fixed bin(8,0) initial dcl 12-65 wtx internal static fixed bin(8,0) initial dcl 12-14 NAMES DECLARED BY EXPLICIT CONTEXT. USAGE 001516 constant label dcl 109 ref 186 analyze_fnp 003513 constant entry internal dcl 370 ref 345 analyze_wtcb 004371 constant entry internal dcl 453 ref 340 bad_copy 002350 constant label dcl 219 ref 209 213 bad_free_chain 002761 constant label dcl 281 ref 286 buffer_trace 005711 constant entry internal dcl 596 ref 400 521 527 check_unstrung_buffers 003044 constant label dcl 295 ref 265 268 283 check_used 006111 constant entry internal dcl 637 ref 249 253 275 364 413 416 434 530 533 536 551 551 584 628 mpx_analyze_entry 005343 constant entry internal dcl 542 ref 349 print_channel_queue 005521 constant entry internal dcl 556 ref 337 tty_analyze 001457 constant entry external dcl 33 walk_channel_tree 003165 constant entry internal dcl 316 ref 237 358 404 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 6440 6512 6236 6502 Length 7240 6236 42 512 201 7 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME tty_analyze 258 external procedure is an external procedure. walk_channel_tree 498 internal procedure calls itself recursively. analyze_fnp internal procedure shares stack frame of internal procedure walk_channel_tree. analyze_wtcb internal procedure shares stack frame of internal procedure walk_channel_tree. mpx_analyze_entry internal procedure shares stack frame of internal procedure walk_channel_tree. print_channel_queue internal procedure shares stack frame of internal procedure walk_channel_tree. buffer_trace internal procedure shares stack frame of internal procedure walk_channel_tree. check_used 86 internal procedure is assigned to an entry variable. STORAGE FOR INTERNAL STATIC VARIABLES. LOC IDENTIFIER BLOCK NAME 000000 temp_segs tty_analyze 000006 have_segs tty_analyze STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME tty_analyze 000100 ttybuf_size tty_analyze 000101 i tty_analyze 000102 buf tty_analyze 000103 devx tty_analyze 000104 flagarray tty_analyze 000170 tty_areap tty_analyze 000172 chanx tty_analyze 000174 copy_pcb_ap tty_analyze 000176 chan_name tty_analyze 000206 analyze_entry_name tty_analyze 000216 erfno tty_analyze 000226 code tty_analyze 000227 longsw tty_analyze 000230 q_count tty_analyze 000231 q_last tty_analyze 000232 q_off tty_analyze 000234 q_ptr tty_analyze 000236 block_orig tty_analyze 000237 input_cnt tty_analyze 000240 output_cnt tty_analyze 000241 ds_format tty_analyze 000242 argp tty_analyze 000244 argl tty_analyze 000245 n_arguments tty_analyze 000246 analyze_entry tty_analyze 000252 ttybp tty_analyze 000254 infop tty_analyze 000256 fnpp tty_analyze 000260 blockp tty_analyze 000262 free_blockp tty_analyze 000264 n_pcbs tty_analyze 000266 pcbp tty_analyze 000270 lctp tty_analyze 000272 lctep tty_analyze 000274 lcntp tty_analyze 000276 wtcbp tty_analyze walk_channel_tree 000100 chan_name walk_channel_tree 000110 star_name walk_channel_tree 000120 local_lctep walk_channel_tree 000122 i walk_channel_tree 000123 code walk_channel_tree 000134 subchan_lctep analyze_fnp 000162 next_queue print_channel_queue 000164 queue_ptr print_channel_queue 000166 interrupt print_channel_queue 000176 buf_size buffer_trace THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. r_g_a r_le_a alloc_char_temp call_ent_var call_ext_out_desc call_ext_out call_int_this_desc call_int_this call_int_other_desc call_int_other return_mac move_label_var make_label_var mdfx1 shorten_stack ss_ext_entry ss_int_entry ss_int_entry_desc THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. com_err_ com_err_$suppress_name copy_erf_seg_$name cu_$arg_count cu_$arg_ptr cv_entry_ get_temp_segments_ ioa_ match_star_name_ tty_dump$print_chain tty_dump$set_static_for_analyze THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$badopt error_table_$too_many_args LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 33 001456 100 001464 101 001474 103 001476 104 001513 107 001514 109 001516 111 001546 114 001547 115 001552 116 001553 118 001554 120 001563 121 001600 123 001602 124 001632 127 001633 130 001650 133 001663 135 001677 136 001703 137 001707 139 001710 141 001714 142 001720 143 001724 145 001725 147 001731 148 001735 149 001741 151 001742 153 001746 154 001750 155 001754 157 001755 159 001761 160 001765 161 001767 163 001770 165 001774 166 002000 167 002002 169 002003 171 002015 172 002047 176 002050 178 002054 180 002107 182 002110 184 002113 186 002115 189 002121 191 002127 193 002131 195 002134 196 002155 198 002157 199 002203 201 002204 204 002207 205 002211 206 002213 208 002215 209 002250 212 002252 213 002310 216 002312 217 002346 219 002350 221 002400 224 002401 226 002412 227 002432 232 002461 233 002466 235 002472 236 002501 237 002505 241 002534 243 002536 244 002545 245 002551 247 002555 249 002603 251 002615 253 002617 257 002641 259 002655 260 002661 264 002665 265 002701 268 002702 271 002704 272 002706 273 002711 274 002736 275 002741 277 002752 281 002761 283 003010 286 003011 288 003014 289 003020 291 003021 295 003044 298 003060 299 003065 300 003075 302 003101 303 003103 304 003117 305 003122 306 003123 307 003154 309 003155 310 003162 312 003163 316 003164 332 003200 333 003204 334 003211 335 003217 337 003224 340 003230 342 003245 343 003251 345 003275 346 003276 348 003277 349 003321 351 003322 352 003350 353 003361 354 003411 357 003422 358 003452 360 003475 364 003477 365 003512 370 003513 375 003514 376 003523 378 003525 379 003526 380 003532 381 003542 382 003546 383 003551 384 003557 386 003564 388 003641 394 003745 395 003752 397 003756 399 003767 400 004006 404 004023 406 004041 409 004064 413 004107 414 004123 416 004126 420 004146 422 004153 424 004155 425 004157 426 004161 428 004163 429 004203 430 004207 431 004212 432 004231 434 004266 435 004302 436 004306 437 004310 439 004311 443 004345 448 004370 453 004371 460 004373 462 004410 463 004414 464 004415 466 004432 468 004447 470 004464 472 004501 474 004516 476 004533 478 004550 480 004565 482 004602 484 004617 486 004634 488 004651 490 004666 492 004703 494 004720 496 004735 498 004752 500 004767 502 005004 504 005021 506 005036 509 005043 511 005072 513 005116 515 005137 518 005163 520 005170 521 005205 524 005217 526 005224 527 005243 530 005260 533 005303 536 005326 537 005342 542 005343 547 005344 548 005405 549 005435 551 005475 552 005520 556 005521 574 005522 575 005537 577 005544 578 005546 579 005552 580 005554 583 005630 584 005633 585 005646 587 005647 591 005710 596 005711 606 005722 608 005756 609 005761 611 005767 612 006014 615 006015 617 006020 618 006045 621 006046 622 006051 623 006057 625 006070 627 006072 628 006075 629 006106 631 006107 637 006110 643 006116 646 006146 647 006153 648 006165 ----------------------------------------------------------- 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