COMPILATION LISTING OF SEGMENT tty_dump 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 1052.0 mst Wed Options: optimize map 1 /****^ *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Bull Inc., 1987 * 4* * * 5* * Copyright, (C) Honeywell Information Systems Inc., 1984 * 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 /* To dump info about a communications channel */ 15 16 /* Modified: December 1984 by Robert Coren to report line_status_disabled flag */ 17 /* Modified: October 1984 by Greg Texada to use new calling sequence to copy_erf_seg_ */ 18 /* Modified: 7 Sept 1984 by C Spitzer. correct format for call to dump_segment_ */ 19 /* Modified: 16 August 1983 by Robert Coren to print a message if the channel is not up, and 20* not to fault if the database pointer is 0. */ 21 /* Modified: 5 January 1982 by G. Palter to allow the channel name to be a starname */ 22 /* Modified: 29 December 1981 by G. Palter to use dump_segment_, accept format control arguments (-ascii, -ebcdic9), and 23* add an entrypoint for tty_analyze to set static needed to allow multiplexer analyzers call print_chain */ 24 /* Modified: November 1981 by E. N. Kittlitz for user_table_entry conversion */ 25 /* Modified: 12 November 1980 by G. Palter to support can_type */ 26 /* Modified January 1980 by C. Hornig for MCM tracing */ 27 /* modified 10/20/78 by Robert Coren to work on dumps as well as live systems */ 28 /* largely rewritten 10/16/78 by Robert S. Coren for new formats associated with demultiplexing */ 29 /* modified 3/10/78 by Robert S. Coren for variable-size buffers */ 30 /* modified 5/3/77 by J. Stern to introduce WTCBs and TCBs */ 31 32 /****^ HISTORY COMMENTS: 33* 1) change(86-04-23,Coren), approve(86-04-23,MCR7300), 34* audit(86-05-19,Beattie), install(86-07-08,MR12.0-1089): 35* To know about 256-bit echo break tables. 36* 2) change(87-04-26,GDixon), approve(87-07-13,MCR7741), 37* audit(87-07-24,Hartogs), install(87-08-04,MR12.1-1055): 38* Upgraded for change to answer_table.incl.pl1 and user_table_entry.incl.pl1 39* 3) change(87-07-24,GDixon), approve(87-07-24,MCR7741), 40* audit(87-07-24,Hartogs), install(87-08-04,MR12.1-1055): 41* A) Correct several stringsize conditions. 42* 4) change(88-06-24,Parisek), approve(88-06-24,MCR7928), 43* audit(88-07-08,Beattie), install(88-07-19,MR12.2-1061): 44* Added support of the UNCP multiplexer. UNCP_MPX treated like MCS_MPX. 45* END HISTORY COMMENTS */ 46 47 48 tty_dump: 49 td: 50 procedure options (separate_static, variable); 51 52 dcl name char (32); 53 dcl (i, tablex, idx, devx, childs_devx, subchan) fixed bin; 54 dcl code fixed bin (35); 55 dcl last_erf char (32) int static init ("-1"); 56 dcl have_segs bit aligned static init ("0"b); 57 dcl temp_segs (3) pointer static init ((3) null ()); 58 dcl ttyb_len fixed bin (19) unsigned int static init (0); 59 dcl n_args fixed bin; 60 dcl iarg fixed bin; 61 dcl argp ptr; 62 dcl argl fixed bin; 63 dcl arg char (argl) based (argp); 64 dcl erfno char (32); 65 dcl areap ptr; 66 dcl found bit (1); 67 dcl (brief_sw, all_sw, subchan_sw, saved_subchan_sw, lcte_sw) bit (1); 68 dcl person char (24); 69 dcl project char (12); 70 dcl group_id char (32); 71 dcl short_message char (8) aligned; 72 dcl long_message char (100) aligned; 73 dcl print_entry entry (ptr, ptr, ptr, fixed bin, bit (1)) variable; 74 dcl system_area area based (get_system_free_area_ ()); 75 76 dcl 1 ds_format aligned internal static, /* dump_segment_ control word */ 77 2 (address, offset, short, bcd, ascii, long, ebcdic9, ebcdic8, four_bit, hex8, hex9) bit (1) unaligned; 78 79 dcl 1 flags (lct.max_no_lctes) aligned based (flags_ptr), 80 2 printed_lcte bit (1) unaligned, 81 2 printed_subchan bit (1) unaligned, 82 2 printed_major bit (1) unaligned, 83 2 pad bit (35) unaligned; 84 dcl flags_ptr pointer; 85 86 dcl prog_name char (8) int static options (constant) init ("tty_dump"); 87 88 dcl ( 89 error_table_$badopt, 90 error_table_$inconsistent, 91 error_table_$noarg, 92 error_table_$nomatch, 93 error_table_$too_many_args 94 ) external fixed binary (35); 95 96 dcl iox_$user_output pointer external; 97 98 dcl (addr, bin, codeptr, fixed, hbound, index, lbound, length, 99 null, pointer, ptr, rel, rtrim, string, substr, unspec) builtin; 100 101 dcl cu_$arg_count entry (fixed bin, fixed bin (35)); 102 dcl cu_$arg_ptr entry (fixed bin, ptr, fixed bin, fixed bin (35)); 103 dcl cv_entry_ entry (char (*), ptr, fixed bin (35)) returns (entry); 104 dcl copy_erf_seg_$name entry (char (*), char (*), ptr, fixed bin (19) uns, fixed bin (35)); 105 dcl dump_segment_ entry (ptr, ptr, fixed bin, fixed bin (18), fixed bin (18), bit (*)); 106 dcl get_system_free_area_ entry () returns (pointer); 107 dcl get_temp_segments_ entry (char (*), (*) ptr, fixed bin (35)); 108 dcl release_temp_segments_ entry (char (*), (*) ptr, fixed bin (35)); 109 dcl hcs_$initiate entry (char (*), char (*), char (*), fixed bin, fixed bin, ptr, fixed bin (35)); 110 dcl hcs_$terminate_noname entry (pointer, fixed binary (35)); 111 dcl ( 112 com_err_, 113 com_err_$suppress_name, 114 ioa_ 115 ) entry () options (variable); 116 dcl get_userid_ entry (bit (36) aligned, char (*), char (*), fixed bin, fixed bin, fixed bin (35)); 117 dcl check_star_name_$entry entry (char (*), fixed bin (35)); 118 dcl match_star_name_ entry (char (*), char (*), fixed bin (35)); 119 dcl convert_status_code_ entry (fixed bin (35), char (8) aligned, char (100) aligned); 120 121 dcl cleanup condition; 122 123 /* */ 124 125 call cu_$arg_count (n_args, code); 126 if code ^= 0 127 then do; /* doesn't work as an active function */ 128 call com_err_ (code, prog_name); 129 return; 130 end; 131 132 if n_args < 1 133 then do; /* should be at least 1 arg */ 134 call com_err_$suppress_name (0, prog_name, "Usage: ^a channel_name {-control_args}", prog_name); 135 return; 136 end; 137 138 brief_sw, all_sw, subchan_sw, lcte_sw = "0"b; 139 string (ds_format) = ""b; /* default is -octal */ 140 erfno = "-1"; 141 name, group_id = ""; /* so we can tell after if arguments were supplied */ 142 do iarg = 1 to n_args; 143 call cu_$arg_ptr (iarg, argp, argl, code); 144 if code ^= 0 145 then do; 146 CANT_GET_ARGUMENT: 147 call com_err_ (code, prog_name, "Fetching argument #^d", iarg); 148 return; 149 end; 150 151 if arg = "-dump" | arg = "-erf" 152 then do; /* wants to look at a dump */ 153 if erfno ^= "-1" 154 then do; /* but already said so */ 155 call com_err_ (error_table_$too_many_args, prog_name, 156 "More than one ERF number given. ^a and ^a", erfno, arg); 157 return; 158 end; 159 iarg = iarg + 1; /* next arg should be ERF number */ 160 if iarg > n_args 161 then do; 162 call com_err_ (error_table_$noarg, prog_name, "ERF number after ""^a"".", arg); 163 return; 164 end; 165 call cu_$arg_ptr (iarg, argp, argl, code); 166 if code ^= 0 167 then go to CANT_GET_ARGUMENT; 168 erfno = arg; 169 170 end; 171 172 else if arg = "-user" 173 then do; 174 if group_id ^= "" 175 then do; 176 call com_err_ (error_table_$too_many_args, prog_name, 177 "More than one use of ""-user"". ""^a"" and ""^a""", group_id, arg); 178 return; 179 end; 180 iarg = iarg + 1; 181 if iarg > n_args 182 then do; 183 call com_err_ (error_table_$noarg, prog_name, "User name after ""^a"".", arg); 184 return; 185 end; 186 call cu_$arg_ptr (iarg, argp, argl, code); 187 if code ^= 0 188 then go to CANT_GET_ARGUMENT; 189 group_id = arg; 190 if index (group_id, ".") = 0 191 then group_id = rtrim (group_id) || ".*"; 192 call check_star_name_$entry (group_id, code); 193 if (code ^= 0) & (code ^= 1) & (code ^= 2) 194 then do; /* invalid starname */ 195 call com_err_ (code, prog_name, "^a", arg); 196 return; 197 end; 198 end; 199 200 else if arg = "-bf" | arg = "-brief" 201 then brief_sw = "1"b; 202 203 else if arg = "-long" | arg = "-lg" 204 then brief_sw = "0"b; 205 206 else if arg = "-all" | arg = "-a" 207 then all_sw = "1"b; 208 209 else if arg = "-subchan" | arg = "-sbc" | arg = "-sc" 210 then subchan_sw = "1"b; 211 212 else if arg = "-lcte" 213 then lcte_sw = "1"b; 214 215 else if arg = "-character" | arg = "-ch" | arg = "-ascii" 216 then do; 217 ds_format.ascii = "1"b; /* implies -long */ 218 brief_sw, ds_format.ebcdic8, ds_format.ebcdic9 = "0"b; 219 end; 220 221 else if arg = "-ebcdic8" 222 then do; 223 ds_format.ebcdic8 = "1"b; 224 brief_sw, ds_format.ascii, ds_format.ebcdic9 = "0"b; 225 end; 226 227 else if arg = "-ebcdic9" 228 then do; 229 ds_format.ebcdic9 = "1"b; 230 brief_sw, ds_format.ascii, ds_format.ebcdic8 = "0"b; 231 end; 232 233 else if arg = "-octal" /* implies -long */ 234 then brief_sw, ds_format.hex8, ds_format.hex9 = "0"b; 235 236 else if arg = "-hex8" 237 then do; 238 ds_format.hex8 = "1"b; 239 brief_sw, ds_format.hex9 = "0"b; 240 end; 241 242 else if arg = "-hex9" 243 then do; 244 ds_format.hex9 = "1"b; 245 brief_sw, ds_format.hex8 = "0"b; 246 end; 247 248 else if index (arg, "-") = 1 249 then do; 250 call com_err_ (error_table_$badopt, prog_name, "^a", arg); 251 return; 252 end; 253 254 else if name ^= "" /* already specified name */ 255 then do; 256 call com_err_ (error_table_$too_many_args, prog_name, 257 "More than one channel name given. ""^a"" and ""^a""", name, arg); 258 return; 259 end; 260 261 else do; /* not control argument, must be channel name */ 262 name = arg; 263 call check_star_name_$entry (name, code); 264 if (code ^= 0) & (code ^= 1) & (code ^= 2) 265 then do; /* illegal starname */ 266 call com_err_ (code, prog_name, "^a", arg); 267 return; 268 end; 269 end; 270 end; 271 272 if (group_id = "") & (name = "") 273 then do; /* never specified channel name at all */ 274 call com_err_ (error_table_$noarg, prog_name, "No channel name suppplied."); 275 return; 276 end; 277 278 if group_id ^= "" 279 then do; 280 if name ^= "" 281 then do; 282 call com_err_ (error_table_$inconsistent, prog_name, "Channel name (""^a"") and ""-user ^a"".", name, 283 group_id); 284 return; 285 end; 286 if erfno ^= "-1" 287 then do; 288 call com_err_ (error_table_$inconsistent, prog_name, """-user"" and ""-erf"""); 289 return; 290 end; 291 end; 292 293 if ds_format.ascii | ds_format.ebcdic8 | ds_format.ebcdic9 294 then ds_format.long = "0"b; /* if interpreting only four words per line */ 295 else ds_format.long = "1"b; /* otherwise, eight will fit */ 296 297 flags_ptr, ansp, cdtp = null (); /* for cleanup handler */ 298 299 on condition (cleanup) 300 begin; 301 if flags_ptr ^= null () 302 then free flags in (system_area); 303 if ansp ^= null () 304 then call hcs_$terminate_noname (ansp, (0)); 305 if cdtp ^= null () 306 then call hcs_$terminate_noname (cdtp, (0)); 307 end; 308 309 if ^have_segs 310 then do; /* get some temp segs */ 311 call get_temp_segments_ (prog_name, temp_segs, code); 312 if code ^= 0 313 then do; 314 call com_err_ (code, prog_name, "Getting temporary segments."); 315 return; 316 end; 317 have_segs = "1"b; 318 end; 319 ttybp = temp_segs (1); 320 areap = temp_segs (2); 321 infop = temp_segs (3); 322 323 if erfno = "-1" | last_erf ^= erfno 324 then do; /* copy data if necessary */ 325 call copy_erf_seg_$name (erfno, "tty_area", areap, (0), code); 326 if code ^= 0 327 then goto bad_copy; 328 call copy_erf_seg_$name (erfno, "tty_buf", ttybp, ttyb_len, code); 329 if code ^= 0 330 then goto bad_copy; 331 call copy_erf_seg_$name (erfno, "dn355_data", infop, (0), code); 332 if code ^= 0 333 then do; 334 bad_copy: 335 call com_err_ (code, prog_name, "Unable to copy information."); 336 return; 337 end; 338 last_erf = erfno; 339 end; 340 341 lctp = ptr (ttybp, rel (tty_buf.lct_ptr)); 342 lcntp = ptr (areap, rel (lct.lcnt_ptr)); 343 344 allocate flags in (system_area) set (flags_ptr); 345 unspec (flags) = ""b; 346 347 348 /* Search the logical channel name table for matching channels */ 349 350 if name ^= "" 351 then do; 352 found = "0"b; 353 do tablex = 1 to lct.max_no_lctes; 354 call match_star_name_ (lcnt.names (tablex), name, code); 355 if code = 0 356 then if lct.lcte_array (tablex).entry_in_use 357 then do; 358 found = "1"b; 359 devx = tablex; 360 saved_subchan_sw = subchan_sw; 361 call print_info; 362 subchan_sw = saved_subchan_sw; 363 end; 364 end; 365 if ^found 366 then call com_err_ (error_table_$nomatch, prog_name, "^a in the LCT", name); 367 end; 368 369 if group_id ^= "" 370 then do; 371 call hcs_$initiate (">system_control_dir", "cdt", "", 0, 0, cdtp, code); 372 if cdtp = null () 373 then do; 374 call com_err_ (code, prog_name, "Unable to initiate CDT."); 375 goto RETURN_FROM_TTY_DUMP; 376 end; 377 call hcs_$initiate (">system_control_dir", "answer_table", "", 0, 0, ansp, code); 378 if ansp = null () 379 then do; 380 call com_err_ (code, prog_name, "Unable to initiate answer table.."); 381 goto RETURN_FROM_TTY_DUMP; 382 end; 383 384 do tablex = 1 to cdt.current_size; 385 cdtep = addr (cdt.cdt_entry (tablex)); 386 if cdte.state = TTY_DIALED 387 then do; 388 if cdte.process ^= null () 389 then do; 390 utep = pointer (ansp, rel (cdte.process)); 391 person = ute.person; 392 project = ute.project; 393 end; 394 else do; 395 call get_userid_ (cdte.dialed_to_procid, person, project, 0, 0, code); 396 if code ^= 0 397 then person, project = ""; 398 end; 399 call match_star_name_ (rtrim (person) || "." || rtrim (project), group_id, code); 400 if code = 0 401 then do; 402 devx = cdte.twx; 403 saved_subchan_sw = subchan_sw; 404 call print_info; 405 subchan_sw = saved_subchan_sw; 406 end; 407 end; 408 end; 409 end; 410 411 RETURN_FROM_TTY_DUMP: 412 if flags_ptr ^= null () 413 then free flags in (system_area); 414 415 if ansp ^= null () 416 then call hcs_$terminate_noname (ansp, (0)); 417 418 if cdtp ^= null () 419 then call hcs_$terminate_noname (cdtp, (0)); 420 421 if erfno = "-1" 422 then do; /* nothing useful in them now */ 423 have_segs = "0"b; 424 call release_temp_segments_ (prog_name, temp_segs, code); 425 end; 426 427 return; 428 429 /* */ 430 431 /* Print all information for a channel */ 432 433 print_info: 434 procedure (); 435 436 lctep = addr (lct.lcte_array (devx)); 437 subchan = -1; /* if starting chan is multiplexed, print all subchans */ 438 439 do while (devx ^= 0); 440 if ^subchan_sw 441 then do; 442 if lcte_sw 443 then call print_lcte; 444 call find_entry_type; 445 end; 446 childs_devx = devx; 447 subchan = lcte.subchannel; 448 devx = lcte.major_channel_devx; /* go up one level */ 449 if devx ^= 0 450 then lctep = addr (lct.lcte_array (devx)); /* get new LCTE pointer */ 451 if ^all_sw & ^subchan_sw 452 then devx = 0; 453 subchan_sw = "0"b; 454 end; 455 456 return; 457 458 end print_info; 459 460 /* */ 461 462 /* Finds the appropriate procedure to print data about a channel and invokes it */ 463 464 find_entry_type: 465 procedure (); 466 467 dcl print_entry_name char (32); /* name of the procedure that prints contents of a data base */ 468 469 if lcte.channel_type < lbound (mpx_types, 1) | lcte.channel_type > hbound (mpx_types, 1) 470 then do; 471 call com_err_ (0, prog_name, "Invalid channel type for channel ^a (devx = ^d). ^d", lcnt.names (devx), 472 devx, lcte.channel_type); 473 go to RETURN_FROM_TTY_DUMP; 474 end; 475 476 if (subchan = -1) & flags (devx).printed_major /* do not make the same call more than once */ 477 then return; 478 if (subchan ^= -1) 479 then if flags (childs_devx).printed_subchan 480 then return; 481 482 if lcte.data_base_ptr = null | rel (lcte.data_base_ptr) = "0"b 483 then do; 484 call ioa_ ("No data base for ^a .", lcnt.names (devx)); 485 return; 486 end; 487 488 if lcte.channel_type = 0 489 then call print_wtcb; 490 491 else if lcte.channel_type = MCS_MPX | lcte.channel_type = UNCP_MPX 492 then call print_pcb; 493 494 else do; 495 print_entry_name = rtrim (mpx_types (lcte.channel_type)) || "_dump_"; 496 print_entry = cv_entry_ (print_entry_name, codeptr (tty_dump), code); 497 if code ^= 0 498 then call com_err_ (code, prog_name, "Cannot get pointer to ^a", print_entry_name); 499 else call print_entry (ttybp, areap, ptr (ttybp, rel (lcte.data_base_ptr)), subchan, brief_sw); 500 end; 501 502 if subchan = -1 503 then flags (devx).printed_major = "1"b; 504 else flags (childs_devx).printed_subchan = "1"b; 505 506 return; 507 508 end find_entry_type; 509 510 /* */ 511 512 /* Prints contents of an LCTE */ 513 514 print_lcte: 515 procedure (); 516 517 if flags (devx).printed_lcte /* only once per call, please */ 518 then return; 519 520 call ioa_ ("^/LCTE at ^o, channel ^a, devx ^o", bin (rel (lctep)), lcnt.names (devx), devx); 521 call ioa_ ( 522 "channel type: ^a (^d)^/flags: ^[in_use ^]^[initialized ^]^[notify_reqd ^]^[locked_for_interrupt ^]^[space_needed ^]^[special_lock ^]^/physical channel devx ^o, major channel devx ^o, subchannel ^o" 523 , mpx_types (lcte.channel_type), lcte.channel_type, lcte.entry_in_use, lcte.initialized, lcte.notify_reqd, 524 lcte.locked_for_interrupt, lcte.space_needed, lcte.special_lock, lcte.physical_channel_devx, 525 lcte.major_channel_devx, lcte.subchannel); 526 527 call ioa_ ("^[queue_head ^o, queue_tail ^o^/^;^2s^]input_words ^d, output_words ^d", lcte.queue_head ^= ""b, 528 bin (lcte.queue_head), bin (lcte.queue_tail), lcte.input_words, lcte.output_words); 529 530 if lcte.data_base_ptr = null 531 then call ioa_ ("No data base allocated."); 532 else call ioa_ ("data base at ^o", bin (rel (lcte.data_base_ptr))); 533 534 flags (devx).printed_lcte = "1"b; 535 536 return; 537 538 end print_lcte; 539 540 /* */ 541 542 /* Displays the contents of the WTCB */ 543 544 print_wtcb: 545 procedure (); 546 547 dcl two_words (2) fixed bin (35) based; 548 dcl break_table_words (WORDS_IN_ECHO_BREAK_TABLE) bit (36) aligned based; 549 dcl mode char (256); 550 dcl flag_array char (128) varying; 551 dcl mode_bits bit (36) aligned; 552 dcl tablep ptr; 553 dcl 1 table_arrays aligned based (tablep), 554 2 table (6) fixed bin (17) unal, 555 2 default_table (6) fixed bin (17) unal; 556 557 dcl table_names (6) char (18) int static options (constant) 558 init ("input_translation", "output_translation", "input_conversion", "output_conversion", "special", "delay"); 559 560 wtcbp = ptr (ttybp, rel (lcte.data_base_ptr)); 561 562 call ioa_ ("^/WTCB at ^o, channel ^a, devx ^o^/line type = ^a, baud rate = ^d", bin (rel (wtcbp)), 563 lcnt.names (devx), devx, line_types (wtcb.line_type), wtcb.baud_rate); 564 565 flag_array = ""; /* init flag string */ 566 567 if wtcb.flags.listen 568 then flag_array = flag_array || "listen,"; 569 if wtcb.flags.dialed 570 then flag_array = flag_array || "dialed,"; 571 if wtcb.flags.send_output 572 then flag_array = flag_array || "send_output,"; 573 if wtcb.flags.qenable 574 then flag_array = flag_array || "qenable,"; 575 if wtcb.flags.qflag 576 then flag_array = flag_array || "qflag,"; 577 if wtcb.flags.end_frame 578 then flag_array = flag_array || "end_frame,"; 579 if wtcb.flags.notify_reqd 580 then flag_array = flag_array || "notify_reqd,"; 581 if wtcb.flags.work_reqd 582 then flag_array = flag_array || "work_reqd,"; 583 if wtcb.flags.dialing 584 then flag_array = flag_array || "dialing,"; 585 if wtcb.flags.dial_status_valid 586 then flag_array = flag_array || "dial_status,"; 587 if wtcb.flags.line_status_present 588 then flag_array = flag_array || "line_status,"; 589 if wtcb.flags.input_available 590 then flag_array = flag_array || "input_available,"; 591 if wtcb.flags.tcb_initialized 592 then flag_array = flag_array || "tcb_initialized,"; 593 if wtcb.flags.hndlquit 594 then flag_array = flag_array || "hndlquit,"; 595 if wtcb.flags.count_lines 596 then flag_array = flag_array || "count_lines,"; 597 if wtcb.flags.sync_line 598 then flag_array = flag_array || "sync_line,"; 599 if wtcb.flags.breakall 600 then flag_array = flag_array || "breakall,"; 601 if wtcb.flags.negotiating_echo 602 then flag_array = flag_array || "negotiating_echo,"; 603 if wtcb.flags.wake_tbl 604 then flag_array = flag_array || "wake_tbl,"; 605 if wtcb.flags.allow_wakeup 606 then flag_array = flag_array || "allow_wakeup,"; 607 if wtcb.flags.receive_mode_device 608 then flag_array = flag_array || "receive_mode_device,"; 609 if wtcb.flags.mark_set 610 then flag_array = flag_array || "mark_set,"; 611 if wtcb.flags.masked 612 then flag_array = flag_array || "masked,"; 613 614 if length (flag_array) ^= 0 615 then substr (flag_array, length (flag_array), 1) = " "; 616 /* zap last comma */ 617 618 call ioa_ ("flags: ^a", flag_array); 619 620 call ioa_ ("more_flags: ^[line_status_disabled^;^]", wtcb.line_status_disabled); 621 622 if wtcb.uproc ^= ""b 623 then do; 624 call get_userid_ ((wtcb.uproc), person, project, 0, 0, code); 625 if code = 0 626 then call ioa_ ("User name = ^a.^a", person, project); 627 end; 628 629 call ioa_ ("hevent = ^w ^w, event = ^w ^w", addr (wtcb.hevent) -> two_words, addr (wtcb.event) -> two_words); 630 631 if wtcb.wflag 632 then call ioa_ ("process blocked on output"); 633 if wtcb.rflag 634 then call ioa_ ("process blocked on input"); 635 if wtcb.wru 636 then call ioa_ ("reading answerback"); 637 638 call ioa_ ( 639 "^[dial_status_code = ^o^/^;^s^]fblock = ^o, lblock = ^o, fchar = ^o^/at line ^d, column ^d, white_col = ^d^/^d read-ahead messages^/write_first = ^o, write_last = ^o^/maximum buffer size = ^d, buffer pad = ^d" 640 , wtcb.dial_status_valid, wtcb.dial_status_code, wtcb.fblock, wtcb.lblock, wtcb.fchar, wtcb.actline, 641 wtcb.actcol, wtcb.white_col, wtcb.nramsgs, wtcb.write_first, wtcb.write_last, wtcb.max_buf_size, 642 wtcb.buffer_pad); 643 644 if wtcb.error_code ^= 0 645 then do; 646 call convert_status_code_ (wtcb.error_code, short_message, long_message); 647 call ioa_ ("error code = ^w (^a)", wtcb.error_code, long_message); 648 end; 649 650 call ioa_ ("^[echo negotiation data at ^o^/^;^s^]^[wakeup table at ^o^/^;^s^]^[prompt string: ^va^;^]", 651 (wtcb.echdp ^= "0"b), wtcb.echdp, (wtcb.waketp ^= "0"b), wtcb.waketp, (wtcb.prompt_len > 0), 652 wtcb.prompt_len, substr (wtcb.prompt, 1, wtcb.prompt_len)); 653 654 call ioa_ ("line delimiter = ""^a""", wtcb.line_delimiter); 655 656 if wtcb.devx ^= devx 657 then call ioa_ ("wtcb.devx = ^o (differs from index in LCT)", wtcb.devx); 658 659 if ^wtcb.flags.tcb_initialized /* if a control block */ 660 then return; 661 662 tcbp = ptr (areap, rel (wtcb.tcb_ptr)); 663 call ioa_ ("^/TCB at ^o", bin (rel (tcbp))); 664 665 call ioa_ ("terminal type = ^a, old type = ^d", tcb.terminal_type, tcb.old_type); 666 667 mode = ""; /* init mode string */ 668 idx = 1; 669 670 mode_bits = string (tcb.modes); 671 do i = 1 to n_modes; /* get all the mode bits */ 672 if substr (mode_bits, i, 1) 673 then do; 674 substr (mode, idx) = modestr (i); 675 idx = index (mode, " ") + 1; /* replace first blank with comma */ 676 substr (mode, idx - 1, 1) = ","; 677 end; 678 end; 679 680 if (tcb.can_type < lbound (CAN_TYPE_NAMES, 1)) | (tcb.can_type > hbound (CAN_TYPE_NAMES, 1)) 681 then substr (mode, idx) = "can_type=unknown"; 682 else substr (mode, idx) = CAN_TYPE_NAMES (tcb.can_type); 683 684 call ioa_ ("modes: ^a", mode); 685 686 call ioa_ ( 687 "flags: ^[breakall_enabled ^;^]^[dont_count_next ^;^]^[keyboard_locking ^;^]^[no_printer_off ^;^]^[break_char_pending ^;^]^[uproc_attached ^;^]^[block_acknowledge ^;^]" 688 , tcb.breakall_enabled, tcb.dont_count_next, tcb.keyboard_locking, tcb.no_printer_off, 689 tcb.break_char_pending, tcb.uproc_attached, tcb.block_acknowledge); 690 call ioa_ ( 691 "shift state = ^b (^[none^;lower^;upper^;unknown^]) ll = ^d, pl = ^d^/answerback id = ^a^/erase ^a, kill ^a, frame_begin ^a, frame_end ^a^/input message size ^d characters" 692 , tcb.actshift, bin (tcb.actshift) + 1, tcb.colmax, tcb.linemax, tcb.id, tcb.erase, tcb.kill, 693 tcb.frame_begin, tcb.frame_end, tcb.input_msg_size); 694 695 if tcb.input_suspend_seq.count > 0 696 then call ioa_ ("input_suspend: ^a", substr (tcb.input_suspend_seq.chars, 1, tcb.input_suspend_seq.count)); 697 698 if tcb.input_resume_seq.count > 0 699 then call ioa_ ("input_resume: ^a", substr (tcb.input_resume_seq.chars, 1, tcb.input_resume_seq.count)); 700 701 if tcb.output_suspend_etb_seq.count > 0 702 then call ioa_ ("output_^[end_of_block^;suspend^]: ^a", tcb.block_acknowledge, 703 substr (tcb.output_suspend_etb_seq.chars, 1, tcb.output_suspend_etb_seq.count)); 704 705 if tcb.output_resume_ack_seq.count > 0 706 then call ioa_ ("output_^[acknowledge^;resume^]: ^a", tcb.block_acknowledge, 707 substr (tcb.output_resume_ack_seq.chars, 1, tcb.output_resume_ack_seq.count)); 708 709 if tcb.max_output_block ^= 0 710 then call ioa_ ("maximum output block size = ^d characters", tcb.max_output_block); 711 712 tablep = addr (tcb.tables); 713 do i = 1 to 6; 714 call ioa_ ("^a ^o ^[default ^o;^s^]", table_names (i), table_arrays.table (i), 715 table_arrays.default_table (i)); 716 end; 717 718 if wtcb.echdp ^= "000000"b3 719 then do; 720 echo_datap = ptr (wtcbp, wtcb.echdp); 721 call ioa_ ("^/Echo Negotiation Data at ^o:^/", bin (rel (echo_datap))); 722 call ioa_ ("Line length left = ^d, ^d chars r0 echoed.", echo_data.horiz_room_left, echo_data.chars_echoed) 723 ; 724 call ioa_ ("Flags:^[ synchronized^]^[ mux_will_echnego^]^[ esps^] ^[ start_wait^]^[ stop_wait^]", 725 echo_data.synchronized, echo_data.mux_will_echnego, echo_data.echo_start_pending_sndopt, 726 echo_data.awaiting_start_sync, echo_data.awaiting_stop_sync); 727 call ioa_ ("Mux sync ctr = ^d dec, ^o octal.", echo_data.sync_ctr, echo_data.sync_ctr); 728 call ioa_ ("Break table^( ^w^)^/", addr (echo_data.break) -> break_table_words); 729 end; 730 call ptchain ("read", (wtcb.fblock)); /* print read chain */ 731 call ptchain ("WTCB write", (wtcb.write_first)); 732 733 return; 734 735 end print_wtcb; 736 737 /* */ 738 739 /* Displays the contents of a PCB */ 740 741 print_pcb: 742 procedure (); 743 744 dcl dn355_no fixed bin; 745 dcl line_no bit (12); 746 747 dn355_no = index ("abcdefgh", substr (lcnt.names (devx), 1, 1)); 748 fnpp = addr (datanet_info.per_datanet (dn355_no)); 749 n_pcbs = fnp_info.no_of_channels; 750 751 if subchan < 0 752 then do; 753 call ioa_ ("FNP ^a: ^d subchannels.", fnp_info.fnp_tag, n_pcbs); 754 end; 755 756 else do; 757 pcbp = addr (ptr (ttybp, rel (fnp_info.pcb_array_ptr)) -> pcb_array (subchan)); 758 line_no = "00"b || string (pcb.line_number); 759 call ioa_ ( 760 "^/PCB at ^o, channel ^a, devx ^o^/line number ^4.3b, logical subchannel ^o^/write_first ^o, write_last ^o, write_cnt ^d^/baud rate ^d, line type ^a, max_buf_size ^d" 761 , bin (rel (pcbp)), lcnt.names (pcb.devx), pcb.devx, line_no, pcb.subchan, pcb.write_first, 762 pcb.write_last, pcb.write_cnt, pcb.baud_rate, line_types (pcb.line_type), pcb.max_buf_size); 763 call ioa_ ( 764 "flags: ^[listen ^;^]^[dialed ^;^]^[send_output ^;^]^[high_speed ^;^]^[sync_line ^;^]^[end_frame ^;^]^[hndlquit ^;^]^[breakall_enabled ^;^]^[output_mbx_pending ^;^]^[copied_meters_ready ^;^]^[get_meters_waiting ^;^]^[tandd_attached ^;^]" 765 , pcb.listen, pcb.dialed, pcb.send_output, pcb.high_speed, pcb.sync_line, pcb.end_frame, pcb.hndlquit, 766 pcb.breakall_enabled, pcb.output_mbx_pending, pcb.copied_meters_ready, pcb.get_meters_waiting, 767 pcb.tandd_attached); 768 call ptchain ("PCB write", (pcb.write_first)); 769 end; 770 771 return; 772 773 end print_pcb; 774 775 /* */ 776 777 /* Prints a buffer chain optionally calling dump_segment_ to display the contents */ 778 779 ptchain: 780 proc (chname, chst); 781 782 dcl or fixed bin (18), 783 chst fixed bin, 784 chname char (*); 785 dcl bsize fixed bin (18); 786 787 or = fixed (chst, 18); 788 if or = 0 /* if no chain */ 789 then return; 790 791 call ioa_ ("^a", chname); /* print header */ 792 do while (or ^= 0); /* loop through chain */ 793 if or < bin (tty_buf.borig, 18) | or > ttyb_len 794 then do; 795 call ioa_ ("bad block offset: ^6o", or); 796 return; 797 end; 798 799 blockp = ptr (ttybp, or); 800 bsize = (bin (buffer.size_code, 3) + 1) * 16; 801 call ioa_ ("^6o size = ^d, tally = ^d, flags:^[ eop^]^[ conv^]^[ break^]", or, bsize, 802 bin (buffer.tally, 9), buffer.end_of_page, buffer.converted, buffer.break); 803 if ^brief_sw 804 then call dump_segment_ (iox_$user_output, blockp, 0, or, bsize, string (ds_format)); 805 or = buffer.next; 806 end; 807 808 return; 809 810 end ptchain; 811 812 813 814 /* Special entry called by multiplexer dump routines to print a buffer chain */ 815 816 print_chain: 817 entry (pm_ttybp, pm_chname, pm_chst, pm_brief_sw); 818 819 dcl pm_ttybp ptr; 820 dcl pm_chname char (*); 821 dcl pm_chst fixed bin; 822 dcl pm_brief_sw bit (1); 823 824 ttybp = pm_ttybp; 825 brief_sw = pm_brief_sw; 826 call ptchain (pm_chname, pm_chst); 827 return; 828 829 830 831 /* Called by tty_analyze to allow multiplexer analyzer entries to call print_chain properly */ 832 833 set_static_for_analyze: 834 entry (pm_tty_buf_len, pm_ds_format); 835 836 dcl pm_tty_buf_len fixed binary (19) unsigned parameter; 837 dcl 1 pm_ds_format aligned parameter like ds_format; 838 839 ttyb_len = pm_tty_buf_len; 840 ds_format = pm_ds_format; 841 return; 842 843 /* BEGIN INCLUDE FILE ... answer_table.incl.pl1 */ 1 2 1 3 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 1 4 /* */ 1 5 /* The answer table has one entry per "login instance" whether completed or */ 1 6 /* not. It is connected to the Channel Definition Table by the pointer */ 1 7 /* "channel". The header is used mostly by dialup_. */ 1 8 /* */ 1 9 /* Programs which use this file must also include user_table_header.incl.pl1 */ 1 10 /* */ 1 11 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 1 12 1 13 /****^ HISTORY COMMENTS: 1 14* 1) change(81-09-10,Kittlitz), approve(), audit(), install(): 1 15* Replace anstbl.incl.pl1. 1 16* 2) change(85-01-15,Swenson), approve(), audit(), install(): 1 17* Add anstbl.session_uid_counter. 1 18* 3) change(85-08-21,Coren), approve(), audit(), install(): 1 19* Add anstbl.message_update_time and named constants for values of 1 20* anstbl.session, and to make all padding explicit. 1 21* 4) change(85-08-23,Coren), approve(), audit(), install(): 1 22* Change "entry" to a placeholder so as not to require 1 23* user_table_entry.incl.pl1. 1 24* 5) change(86-06-29,Swenson), approve(87-07-13,MCR7741), 1 25* audit(87-04-14,GDixon), install(87-08-04,MR12.1-1056): 1 26* Added the flag login_server_present which indicates whether a login 1 27* server request has been received. This is used to determine whether 1 28* dial_ctl_ should call uc_cleanup_network_dials_ (and thus 1 29* hpriv_connection_list_, which only exists with the MNA RPQ software). 1 30* 6) change(87-04-14,GDixon), approve(87-07-13,MCR7741), 1 31* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 1 32* A) Moved constants for ute.pw_flags.mask_ctl into 1 33* user_table_entry.incl.pl1. 1 34* B) Added common table header to all user tables. 1 35* END HISTORY COMMENTS */ 1 36 1 37 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 1 38 /* */ 1 39 /* The anstbl structure below is divided into sections. Each section begins */ 1 40 /* with a comment describing the elements in the section. Elements are */ 1 41 /* placed within a section, based upon their function or the programs that */ 1 42 /* use them. Each section begins on a double word and is an even number of */ 1 43 /* words long. */ 1 44 /* */ 1 45 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 1 46 1 47 1 48 1 49 /* format: style4 */ 1 50 1 51 dcl ANSTBL_version_4 static options (constant) init (4); /* version of this declaration */ 1 52 1 53 dcl ansp ptr automatic init (null); 1 54 1 55 dcl 1 anstbl based (ansp) aligned, /* Structure of answer table */ 1 56 2 header like ut_header, /* Header common to all user tables. */ 1 57 1 58 /* Counter elements. */ 1 59 2 nlin fixed bin, /* number of active lines */ 1 60 2 mxlin fixed bin, /* maximum number of active lines */ 1 61 2 n_users fixed bin, /* number of logged-in users */ 1 62 2 max_users fixed bin, /* maximum number of users allowed */ 1 63 2 n_units fixed bin, /* number of logged in units */ 1 64 2 max_units fixed bin, /* maximum number of units */ 1 65 2 n_sessions fixed bin, /* number of Multics sessions */ 1 66 2 n_pad fixed bin, 1 67 1 68 /* Name elements. */ 1 69 2 sysdir char (64) unal, /* name of main system control directory */ 1 70 2 as_tty char (8) unal, /* name of main answering service device. */ 1 71 1 72 /* Login elements. */ 1 73 2 login_word char (8) unal, /* login word if special_session=1 */ 1 74 2 session char (8) unal, /* session indicator */ 1 75 2 special_message char (128) unal, /* message to be printed for special session */ 1 76 2 message_update_time fixed bin (71), /* time at which special_message was last updated */ 1 77 2 message_lng fixed bin, /* length of special message */ 1 78 2 login_pad fixed bin, 1 79 1 80 /* Table update elements. */ 1 81 2 lock_count fixed bin, /* global lock for all system control tables */ 1 82 2 update_pending bit (1) aligned, /* flag indicating that update is required */ 1 83 2 update_channel fixed binary (71), /* event channel of update procedure */ 1 84 2 acct_update_chn fixed bin (71) aligned, /* Timer IPC channel */ 1 85 2 acct_last_update_time fixed bin (71) aligned, /* Time of last accounting update */ 1 86 2 acct_alarm_fail fixed bin, /* non-zero if alarm has failed */ 1 87 2 update_pad fixed bin, 1 88 1 89 /* dialup_ data values. */ 1 90 2 current_time fixed bin (71), /* Time of last transaction */ 1 91 2 processid_index fixed bin (18), /* unique index for process id generation */ 1 92 2 session_uid_counter fixed bin (35), /* current session_uid */ 1 93 1 94 /* load_ctl_ elements. */ 1 95 2 shift fixed bin, /* Shift, set by act_ctl_ */ 1 96 2 auto_maxu fixed bin, /* 0 = manual, 1 = config, 2 = load-level */ 1 97 2 extra_units fixed bin, /* Total daemon and abs units. */ 1 98 /* load_ctl_ load leveling desired response range: */ 1 99 2 response_high fixed bin, /* bad if user response time slower than this */ 1 100 2 response_low fixed bin, /* bad if user response time faster than this */ 1 101 2 load_ctl_pad fixed bin, 1 102 1 103 /* Login server request server data. */ 1 104 2 ls_request_server_event_channel fixed bin (71), /* channel for login server requests */ 1 105 2 ls_request_server_process_id bit (36) aligned, /* process serving login server requests */ 1 106 2 login_server_present bit (1) aligned, /* On IFF a login server request has been processed */ 1 107 1 108 2 entry_pad (28) fixed bin, /* pad to 128 words */ 1 109 2 entry (0 refer (anstbl.current_size)), /* user entries */ 1 110 3 contents (UTE_SIZE) fixed bin; 1 111 1 112 /* constants */ 1 113 1 114 /* values for anstbl.session */ 1 115 1 116 dcl (AT_NORMAL init ("normal "), 1 117 AT_SPECIAL init ("special "), 1 118 AT_SHUTDOWN init ("shutdown")) char (8) internal static options (constant); 1 119 1 120 dcl UTE_SIZE fixed bin internal static initial (300); 1 121 1 122 /* END INCLUDE FILE ... answer_table.incl.pl1 */ 843 844 /* BEGIN INCLUDE FILE ... author_dcl.incl.pl1 */ 2 2 2 3 /* This include file declares the "author" substructure 2 4* in a form suitable for using the PL/I "like" attribute. 2 5* 2 6* Written 750304 by PG 2 7**/ 2 8 2 9 dcl 1 author_dcl aligned based, 3 1 /* BEGIN INCLUDE FILE author.incl.pl1 */ 3 2 3 3 /* the "author" items must always be the first ones in the table. The 3 4* module which moves the converted table to the System Control process 3 5* fills in these data items and assumes them to be at the head of the segment 3 6* regardless of the specific table's actual declaration. The variables 3 7* "lock" and "last_install_time" used to be "process_id" and "ev_channel" 3 8* respectively. For tables installed in multiple processes, these 3 9* are to be used to lock out multiple installations. */ 3 10 3 11 /* Lock should be used as a modification lock. Since, in general, 3 12* entries may not be moved in system tables, even by installations, 3 13* it is sufficient for only installers and programs that change threads 3 14* to set or respect the lock. Simply updating data in an entry 3 15* requires no such protection. 3 16* 3 17* Last_install_time is used by readers of system tables to detect 3 18* installations or other serious modifications. By checking it before 3 19* and after copying a block of data, they can be protected against 3 20* modifications. 3 21* 3 22* Modules that set the lock should save proc_group_id, and then 3 23* put their group id there for the time they hold the lock. 3 24* if they do not actually install the, they should restore the group id. 3 25**/ 3 26 3 27 2 author aligned, /* validation data about table's author */ 3 28 3 proc_group_id char (32), /* process-group-id (personid.projectid.tag) */ 3 29 3 lock bit (36), /* installation lock */ 3 30 3 update_attributes bit (1) unal, /* update/add/delete attributes */ 3 31 3 update_authorization bit (1) unal, /* update only authorizations */ 3 32 3 deferral_notified bit (1) unal, /* installer notified of deferral of installation */ 3 33 3 pad bit (33) unaligned, 3 34 3 last_install_time fixed bin (71), 3 35 3 table char (4), /* name of table, e.g., SAT MGT TTT RTDT PDT etc. */ 3 36 3 w_dir char (64), /* author's working directory */ 3 37 3 38 /* END INCLUDE FILE author.incl.pl1 */ 2 10 2 11 2 pad; 2 12 2 13 /* END INCLUDE FILE ... author_dcl.incl.pl1 */ 844 845 /* BEGIN INCLUDE FILE ... cdt.incl.pl1 */ 4 2 4 3 /* format: style3,idind25,indcomtxt */ 4 4 4 5 /* Channel Definition Table. 4 6* This table lists all of the hardware channels (ports) connected 4 7* to the system, and maintains the attributes of each one. 4 8* 4 9* PG 741230 4 10* Modified by Mike Grady 5/6/76 to add FNP info. 4 11* Modified by Tom Casey 7/29/76 to add more FNP info and a few other things. 4 12* Modified by Robert Coren 6/13/77 to make terminal types be character strings. 4 13* Modified July 1979 by T. Casey to add several variables for MR8.0 process preservation facility. 4 14* Modified December 1980 by E. N. Kittlitz to eliminate cdte.phone_no. 4 15* Modified March 1981 by Robert Coren to add "listening" flag for multiplexers and to add TANDD_SERVICE service_type. 4 16* Modified April 1981 by E. N. Kittlitz to add cdte.dial_ev_chn, cdte.recent_wakeup_time, cdte.recent_wakeup_count. 4 17* Modified July 1981 by T. Casey for MR9.0 to add dialup_flags.detach_after_hangup 4 18* Modified December 1981 by E. N. Kittlitz for cdte.leave_edited, cdte.hold_arg, 4 19* Modified September 1981 by Benson I. Margulies for cdt_mgr_'s tree of multiplexer's. 4 20* Modified August 1982 by E. N. Kittlitz for check_acs. 4 21* Modified January 1983 by Keith Loepere for generic_destination. 4 22* Modified August 1983 by Robert Coren to add mpxe.check and mpxe.retry_load. 4 23* Modified 831216 by E. N. Kittlitz for required_access_class. 4 24* Modified 84-04-01 by BIM to finish communications AIM: 4 25* access class ranges, 4 26* access_control flags. 4 27**/ 4 28 4 29 4 30 /****^ HISTORY COMMENTS: 4 31* 1) change(87-03-17,Beattie), approve(87-04-06,MCR7656), 4 32* audit(87-07-13,Parisek), install(87-08-04,MR12.1-1056): 4 33* Add support for answering service to use IOCBs when tty_ cannot be 4 34* used to service login channels. 4 35* END HISTORY COMMENTS */ 4 36 4 37 4 38 dcl CDT_version_5 fixed bin internal static initial (5) options (constant); 4 39 dcl CDT_version fixed bin internal static initial (6) options (constant); 4 40 4 41 dcl (cdtp, cdtep, fnpep, mpxep) 4 42 ptr; 4 43 4 44 dcl 1 cdt based (cdtp) aligned, /* all of the system channels */ 4 45 2 author like author_dcl.author, /* standard header */ 4 46 2 max_size fixed bin, /* maximum number of cdte's in 255K */ 4 47 2 current_size fixed bin, /* number of last cdte. */ 4 48 2 version fixed bin, 4 49 2 freep fixed bin, /* chain of free cdte's */ 4 50 2 n_cdtes fixed bin, /* number of used cdte's */ 4 51 2 meters_last_reset fixed bin (71), /* clock time dialup meters were reset */ 4 52 2 realtime_in_dialup fixed bin (71), /* Dialup meter */ 4 53 2 cpu_in_dialup fixed bin (71), /* .. */ 4 54 2 pf_in_dialup fixed bin, /* .. */ 4 55 2 pp_in_dialup fixed bin, /* .. */ 4 56 2 entries_to_dialup fixed bin, /* .. */ 4 57 2 flags, 4 58 3 go bit (1) unal, /* ans. serv. said "go ahead and answer the phones" */ 4 59 3 cdt_is_live bit (1) unal, /* cdt is active */ 4 60 3 mux_mgr_system_init 4 61 bit (1) unal, /* mux mgr has loaded top-levels */ 4 62 3 pad1 bit (33) unal, 4 63 2 acceptable_fnp_tbf fixed bin, /* acceptable minutes between FNP crashes */ 4 64 2 spare_channel_count fixed bin, /* number of extra channels to leave room for in ring0 */ 4 65 2 threads aligned like channel_threads, 4 66 /* root of non-fnp-top-level-multiplexers */ 4 67 2 pad2 (31) bit (36) aligned, /* pad header to 80 words */ 4 68 2 fnp_entry dim (8) like fnpe, /* max of 8 FNPs for now */ 4 69 2 cdt_entry dim (2500) like cdte; /* # of cdte's in 255K */ 4 70 4 71 4 72 dcl 1 cdte based (cdtep) aligned, /* a channel */ 4 73 2 in_use fixed bin, /* see dialup_values. 0=NOW_FREE */ 4 74 /**** * These variables are filled in when the CDTE is created by cv_cmf. They are not dynamic. */ 4 75 2 pad1 bit (36) aligned, 4 76 2 name char (32), /* ASCII name of channel */ 4 77 2 access_class (2) bit (72) aligned, /* access class range */ 4 78 2 comment char (48), /* printable message about channel */ 4 79 2 charge_type fixed bin (17) unal, /* billing group */ 4 80 2 service_type fixed bin (17) unal, /* service group (AS, ftp, mc) */ 4 81 2 line_type fixed bin (17) unal, /* tty line type (protocol) */ 4 82 2 baud_rate fixed bin (17) unal, /* 110, 133, 150, etc. */ 4 83 2 modem_type fixed bin (17) unal, /* type of modem on this channel */ 4 84 2 pad2 bit (18) unaligned, 4 85 2 answerback char (8), /* answerback string expected */ 4 86 2 initial_terminal_type 4 87 char (32) unal, /* as specified in the CMF */ 4 88 2 mpx_data unal, /* data used only for multiplexed channels */ 4 89 3 mpx_type fixed bin (17), /* type of multiplexing used */ 4 90 3 mpx_service fixed bin (17), /* service type, active or inactive */ 4 91 2 flags, 4 92 ( 3 attributes, 4 93 4 ck_answerback bit (1), /* ON means that ansbk must equal our records */ 4 94 4 audit_access_error 4 95 bit (1), /* ON means ck that person auth is inside access class range */ 4 96 /* this implies that the access_class describes a range of 4 97* legitimate user auths. */ 4 98 4 hardwired bit (1), /* ON means it is */ 4 99 4 set_modes bit (1), /* ON means to set initial modes at dialup */ 4 100 4 dont_read_answerback 4 101 bit (1), /* ON means don't try to read answerback */ 4 102 4 pada bit (4), 4 103 3 access_control unaligned, /* As below */ 4 104 4 dial_out bit (1), /* dialing user must be on ACS */ 4 105 4 priv_attach bit (1), /* PA_ user must be on ACS */ 4 106 4 dial_server bit (1), /* accept_dials process must be on acs */ 4 107 4 login bit (1), /* logging in user must be on acs */ 4 108 4 slave_dial bit (1), /* dialing user must give -user and be on acs */ 4 109 4 pado bit (3), 4 110 3 options, 4 111 4 execute_initial_command 4 112 bit (1), /* ON means to do it */ 4 113 4 attached_by_operator 4 114 bit (1), /* ON means temporary attachment. */ 4 115 4 private_line bit (1), /* ON means private_line sync modem in use */ 4 116 4 bsc_ebcdic bit (1), /* ON means bsc would like to use ebcdic code set */ 4 117 4 bsc_transparent bit (1), /* ON means bsc is in transparent mode */ 4 118 4 vip_pollselect bit (1), /* ON means VIP line is multidrop */ 4 119 4 autobaud bit (1), /* ON means auto baud detection this channel */ 4 120 4 generic_destination_present 4 121 bit (1), /* ON means that the initial_command field contains 4 122* a generic destination to match on dial_out or priv attach */ 4 123 4 use_iocb bit (1), /* ON means to use IOCB operations to support channel */ 4 124 4 pado bit (9) 4 125 ) unaligned, 4 126 2 initial_command char (64), /* pseudo first input line */ 4 127 /**** The following variables represent dynamic control info, and 4 128* are used mostly by dialup_ and asu_ */ 4 129 2 event fixed bin (71), /* event call channel for channel events */ 4 130 2 current_service_type fixed bin (17) unal, /* Current usage of line. */ 4 131 2 tra_vec fixed bin (17) unal, /* which section of dialup_ to do next */ 4 132 2 count fixed bin (17) unal, /* How many login tries he's had. */ 4 133 2 dialup_flags unal, /* flag bits for dialup to maintain */ 4 134 3 ppm bit (1) unal, /* print preaccess message for IBM terminals */ 4 135 3 cpo bit (1) unal, /* conditional printer-off (depends on answerback */ 4 136 3 wakeup_handler bit (1) unal, /* says who is wakeup handler for this channel */ 4 137 /* 0 = dialup_, 1 = mc_tty_ */ 4 138 3 save_arg bit (1) unal, /* -save login arg given */ 4 139 3 nosave_arg bit (1) unal, /* -nosave login arg given */ 4 140 3 detach_after_hangup 4 141 bit (1) unal, /* remember WAIT_DETACH when setting WAIT_BEFORE_HANGUP */ 4 142 3 leave_edited bit (1) unal, /* user control of edited mode */ 4 143 3 hold_arg bit (1) unal, /* -hold arg given */ 4 144 3 no_hold_arg bit (1) unal, /* -no_hold arg given */ 4 145 3 immediate_arg bit (1) unal, /* -immediate arg given */ 4 146 3 current_access_class_valid 4 147 bit (1) unal, /* dialup_ or lg_ctl_ has determined the current_access_class */ 4 148 3 pad bit (7) unal, 4 149 2 twx fixed bin, /* channel device index */ 4 150 2 state fixed bin, /* channel state */ 4 151 2 tty_id_code char (4), /* channel id (answerback) */ 4 152 2 current_terminal_type 4 153 char (32) unal, /* most recently-set terminal type */ 4 154 2 process ptr unal, /* ptr to ATE owning this channel */ 4 155 2 dialed_to_procid bit (36), /* Dialed channels remember owner's proc id */ 4 156 2 next_channel fixed bin (17) unal, /* cdte index of next channel for this process */ 4 157 2 cur_line_type fixed bin (17) unal, /* line type of currently dialed terminal */ 4 158 2 current_access_class (2) bit (72) aligned, /* This is a range, but at this time it must be a null range. 4 159* We do not yet define multi-class connections, but we will someday. */ 4 160 2 disconnected_ate_index 4 161 fixed bin (17) unal, /* index of ate of disconnected process */ 4 162 2 dial_ctl_ring fixed bin (3) unsigned unaligned, 4 163 /* used by dial_ctl_ to record ring of priv_attach or dial_out attachments */ 4 164 2 dial_rq_privileged bit (1) unaligned, /* used by dial ctl to record comm priv from priv_attach or dial_out request */ 4 165 2 pad3 bit (14) unaligned, 4 166 /**** The following variables are kept for metering purposes. */ 4 167 2 n_dialups fixed bin, /* number of times channel has been dialed up */ 4 168 2 n_logins fixed bin, /* number of login sessions on this channel */ 4 169 2 dialed_up_time fixed bin (35), /* total time channel was dialed up (seconds) */ 4 170 2 dialup_time fixed bin (71), /* time of present dialup */ 4 171 2 disconnected_proc_command 4 172 fixed bin (12) unsigned unal, 4 173 /* 1 to 5 for -list,-create,-connect,-new_proc,-destroy */ 4 174 2 disconnected_proc_number 4 175 fixed bin (12) unsigned unal, 4 176 /* {N} in -connect {N}, -new_proc {N}, -destroy {N} */ 4 177 2 n_disconnected_procs fixed bin (12) unsigned unal, 4 178 /* number of disconnected processes that user has */ 4 179 2 recent_wakeup_count fixed bin, /* counter to detect channel wakeup loop */ 4 180 2 recent_wakeup_time fixed bin (71), /* time of first wakeup in suspected channel wakeup loop */ 4 181 2 dial_ev_chn fixed bin (71), /* Dialed channels remember master's IPC channel */ 4 182 /**** cdt_mgr_ uses these to maintain the tree of channels. They ****/ 4 183 /**** really belong in the mpxe, but it is full up, and the cdte ****/ 4 184 /**** had the space. */ 4 185 2 threads aligned like channel_threads, 4 186 /**** The use name is that of the user who gave the dial or slave ****/ 4 187 /**** preaccess request. ****/ 4 188 2 user_name unaligned, 4 189 3 person char (20) unaligned, 4 190 3 project char (9) unaligned, 4 191 3 pad char (3) unaligned, /* no tag */ 4 192 2 iocbp ptr unaligned; /* 104 words */ 4 193 4 194 4 195 dcl generic_destination based char (32); /* used to match destinations on dial_out and priv_attach, 4 196* overlays initial_command field for slave and autocall lines */ 4 197 4 198 4 199 4 200 dcl 1 fnpe based (fnpep) aligned, /* an FNP */ 4 201 /* These variables are filled in from the CMF */ 4 202 2 type fixed bin, /* type of this FNP, DN355, DN6670, etc. */ 4 203 2 memory fixed bin, /* amount of memory on this FNP */ 4 204 2 nlslas fixed bin, /* number of lslas on this FNP */ 4 205 2 nhslas fixed bin, /* number of hslas on this FNP */ 4 206 2 service_type fixed bin, /* service type */ 4 207 2 mpx_type fixed bin, /* type of multiplexer on this fnp */ 4 208 2 coreimage char (168), /* pathname of image, maybe in >sl1 */ 4 209 /**** The following are used during system operation to remember the state of the FNP */ 4 210 2 boot_segp ptr, /* ptr to seg used for bootload */ 4 211 2 boot_ev_chan fixed bin (71), /* for ring0 to report crashes and bootload complete */ 4 212 2 mpxe like mpxe, /* standard multiplexer data */ 4 213 2 threads aligned like channel_threads, 4 214 /* same mpx threads as channel */ 4 215 2 pad3 (25) fixed bin; /* pad to 96 words per entry */ 4 216 4 217 /* This structure describes the data necessary to control a multiplexer. 4 218* For FNP's., a copy appears in the fnpe. For communications lines, it 4 219* overlays the initial_command field in the cdte. */ 4 220 4 221 dcl 1 mpxe based (mpxep) aligned, 4 222 2 state fixed bin, /* current state, up, down, loading */ 4 223 2 current_service_type fixed bin, /* usually = service type, unless cdt installation changes it */ 4 224 2 current_mpx_type fixed bin, /* type of multiplexer currently running */ 4 225 2 n_bootloads fixed bin, /* count of load attempts */ 4 226 2 time_initial_load fixed bin (71), /* time this MPX first completed a load */ 4 227 2 time_last_load fixed bin (71), /* time MPX last completed a bootload */ 4 228 2 time_last_crash fixed bin (71), /* time MPX last crashed */ 4 229 2 time_load_start fixed bin (71), /* time current load started */ 4 230 2 last_tbf fixed bin, /* number of minutes this MPX was up last bootload */ 4 231 2 flags unal, 4 232 3 go bit (1), /* start MPX after it loads */ 4 233 3 listening bit (1), /* listen has been done on subchannels */ 4 234 3 check bit (1), /* loaded with check option */ 4 235 3 retry_load bit (1), /* reload if load fails */ 4 236 3 pad1 bit (32), 4 237 2 pad2 (2) fixed bin; /* pad to 16 words */ 4 238 4 239 /* These threads define the tree of multiplexers in the cdt. */ 4 240 /* next_sister and prev_sister link nodes at the same level, ordered */ 4 241 /* by alpha sort order of the channel name. Daughter points to the */ 4 242 /* first child of this node, if any. Daughter count is the number */ 4 243 /* of children, as a consistency check. Mother is a back pointer to */ 4 244 /* the parent, present in all the children, not just the first. */ 4 245 /* threads are cdt indexes. If positive, they index the cdt_entry array */ 4 246 /* in cdt, if negative, they are the negative of an index into the fnp_entry */ 4 247 /* array. If zero, they refer to the top of the non-fnp mpx tree. */ 4 248 4 249 dcl 1 channel_threads aligned based, 4 250 2 next_sister fixed bin unaligned, 4 251 2 prev_sister fixed bin unaligned, 4 252 2 daughter fixed bin unaligned, 4 253 2 mother fixed bin unaligned, /* negative is a fnpx, positive a cdtx */ 4 254 2 pad bit (18) unaligned, 4 255 2 daughter_count fixed bin unaligned; 4 256 4 257 /* Values for cdte.service_type field */ 4 258 4 259 dcl ( 4 260 ANS_SERVICE init (1), /* login or dial */ 4 261 FTP_SERVICE init (2), /* file transfer service */ 4 262 MC_SERVICE init (3), /* message coordinator */ 4 263 SLAVE_SERVICE init (4), /* special channel */ 4 264 DIAL_SERVICE init (5), /* transient state */ 4 265 DIAL_OUT_SERVICE init (6), /* auto call line */ 4 266 MPX_SERVICE init (8), /* ring0 demultiplexed line */ 4 267 TANDD_SERVICE init (9) /* transient state, attached for T & D */ 4 268 ) fixed bin internal static options (constant); 4 269 4 270 /* Values for service type in both cdte and fnpe */ 4 271 4 272 dcl ( 4 273 INACTIVE init (7), /* not to be used, even though configured */ 4 274 ACTIVE init (1) 4 275 ) /* for FNP only, configured and to be used */ 4 276 fixed bin internal static options (constant); 4 277 4 278 /* Value for both cdte.in_use and fnpe.state */ 4 279 4 280 dcl NOT_CONFIGURED fixed bin int static init (-1) options (constant); 4 281 /* was not configured at Multics bootload time */ 4 282 4 283 /* NOTE: an INACTIVE channel can be made active by operator command or CDT installation, 4 284* but a NOT_CONFIGURED channel can not be used until its multiplexer is reloaded */ 4 285 4 286 /* Value for cdte.in_use */ 4 287 4 288 dcl CHANNEL_DELETED fixed bin int static init (-2); 4 289 /* channel deleted by CDT installation */ 4 290 4 291 /* NOTE: a configured channel being deleted by a CDT installation is set to CHANNEL_DELETED. 4 292* multiplexer_mgr_ sets cdte.in_use to NOW_FREE at the next reload of its multiplexer. 4 293* A NOT_CONFIGURED channel is set to NOW_FREE immediately when deleted by a CDT installation. */ 4 294 4 295 4 296 /* Values for mpxe.state field */ 4 297 4 298 dcl ( 4 299 FNP_FREE init (0), /* this fnpe is not used */ 4 300 FNP_UNKNOWN init (1), /* FNP is in some unknown state */ 4 301 FNP_DOWN init (2), /* FNP crashed, not yet reloaded */ 4 302 FNP_BOOT init (3), /* FNP has been booted, but no response yet */ 4 303 FNP_UP init (4) /* FNP is up and running fine */ 4 304 ) fixed bin internal static options (constant); 4 305 4 306 dcl ( 4 307 MPX_FREE init (0), /* this mpxe is not used */ 4 308 MPX_UNKNOWN init (1), /* MPX is in some unknown state */ 4 309 MPX_DOWN init (2), /* MPX crashed, not yet reloaded */ 4 310 MPX_BOOT init (3), /* MPX has been booted, but no response yet */ 4 311 MPX_UP init (4) /* MPX is up and running fine */ 4 312 ) fixed bin internal static options (constant); 4 313 5 1 /* BEGIN INCLUDE FILE ... fnp_types.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 /* Values for fnpe.type field */ 5 14 /* 5 15* Created 79 May 14 by Art Beattie by splitting information out from cdt.incl.pl1 5 16* Added in March 1982 - DN7100.fd. 5 17**/ 5 18 5 19 dcl (DN355 init (1), /* a DataNet 355 FNP */ 5 20 DN6600 init (2), /* a DataNet 6600 FNP */ 5 21 DN6670 init (3), /* a Honeywell Bull Network Processor (18x) */ 5 22 DN7100 init (4) /* The DSA Datanet architecture (DN7) */ 5 23 ) fixed bin internal static options (constant); 5 24 5 25 dcl fnp_types (4) char (8) int static options (constant) 5 26 init ("DN355", "DN6600", "DN6670", "DN7100"); 5 27 5 28 dcl fnp_models (4) fixed bin (17) int static options (constant) 5 29 init (355, 6600, 6670, 7100); 5 30 5 31 dcl supported_fnp (4) bit (1) int static options (constant) 5 32 init ("0"b, "0"b, "1"b, "1"b); 5 33 5 34 5 35 /* END INCLUDE FILE ... fnp_types.incl.pl1 */ 4 314 4 315 4 316 /* END INCLUDE FILE ... cdt.incl.pl1 */ 845 846 /* BEGIN INCLUDE FILE ... dialup_values.incl.pl1 */ 6 2 6 3 /* format: style4 */ 6 4 6 5 /* Values for "cdte.tra_vec" used by dialup_ and others. */ 6 6 6 7 /* Modified by T. Casey April 1976 to add WAIT_NEW_PASSWORD 6 8* - in 1977 and 1978 to add WAIT_(GREETING_MSG DELETE_CHANNEL) 6 9* - and in October 1979 to add WAIT_CONNECT_REQUEST 6 10* Modified by Robert Coren in May 1981 to add TANDD_ATTACH values and 6 11* WAIT_DISCARD_WAKEUP 6 12* Modified by T. Casey, July 1981, for MR9.0, to add WAIT_BEFORE_HANGUP. 6 13* Modified by E. N. Kittlitz, July 1982, to add TTY_MASKED. 6 14**/ 6 15 6 16 /****^ HISTORY COMMENTS: 6 17* 1) change(87-04-20,GDixon), approve(87-07-13,MCR7741), 6 18* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 6 19* Add constant arrays naming cdte.state, cdte.tra_vec and ute.active values. 6 20* 2) change(87-05-11,GDixon), approve(87-07-13,MCR7741), 6 21* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 6 22* Add named constants for instance tags. 6 23* END HISTORY COMMENTS */ 6 24 6 25 dcl (WAIT_DIALUP init (1), /* Channel waiting for dialup. */ 6 26 WAIT_ANSWERBACK initial (2), /* WRU sent, waiting for reply */ 6 27 WAIT_LOGIN_LINE init (3), /* Greeting typed, wait for login command. */ 6 28 WAIT_LOGIN_ARGS init (4), /* Want rest of login line */ 6 29 WAIT_OLD_PASSWORD init (5), /* "-cpw" was specified. Wait for old password. */ 6 30 WAIT_PASSWORD init (6), /* Waiting for password. (If "-cpw", repeat of new one.) */ 6 31 WAIT_NEW_PASSWORD init (7), /* "-cpw" was specified. Wait for new password */ 6 32 WAIT_LOGOUT_SIG init (8), /* Channel is hooked up. Wait for logout. */ 6 33 WAIT_LOGOUT init (9), /* A logout has been requested. Wait for process to die */ 6 34 WAIT_LOGOUT_HOLD init (10), /* As above but don't hang up when it dies. */ 6 35 WAIT_DETACH init (11), /* As above but ignore channel afterwards. */ 6 36 WAIT_NEW_PROC init (12), /* As above but make new process and continue. */ 6 37 WAIT_REMOVE init (13), /* As above but completely expunge channel. */ 6 38 WAIT_FIN_PRIV_ATTACH init (14), /* When channel dials up, connect it to user */ 6 39 WAIT_DIAL_RELEASE init (15), /* Waiting for master process to release. */ 6 40 WAIT_DIAL_OUT init (16), /* Waiting for auto call to complete */ 6 41 WAIT_HANGUP init (17), /* Wait for the hangup event to occur for a channel */ 6 42 WAIT_SLAVE_REQUEST init (18), /* Ignore line until someone asks */ 6 43 WAIT_GREETING_MSG init (19), /* Print greeting message and wait for login line */ 6 44 WAIT_DELETE_CHANNEL init (20), /* Channel deleted - mark cdte after process is destroyed */ 6 45 WAIT_CONNECT_REQUEST init (21), /* logged in; awaiting request re disconnected processes */ 6 46 WAIT_TANDD_HANGUP init (22), /* when channel hangs up, proceed with t & d attachment */ 6 47 WAIT_FIN_TANDD_ATTACH init (23), /* when channel dials up, finish t & d attachment */ 6 48 WAIT_DISCARD_WAKEUPS init (24), /* disregard all wakeups on channel */ 6 49 WAIT_BEFORE_HANGUP init (25), /* allow output to print before hanging up */ 6 50 WAIT_DESTROY_REQUEST init (26), /* waiting to continue with destroy request after process has destroyed itself */ 6 51 WAIT_NEW_PROC_REQUEST init (27) /* waiting to continue with new_proc request after process has destroyed itself */ 6 52 ) fixed bin internal static options (constant); 6 53 6 54 dcl TRA_VEC_VALUES (0:13) char (32) aligned int static options (constant) init 6 55 /* names of ute.destroy_flag values */ 6 56 ("", "wait dialup", "wait answerback", "wait login line", /* 0-3 */ 6 57 "wait login args", "wait old password", "wait password", /* 4-6 */ 6 58 "wait new password", "wait logout signal", "wait logout", /* 7-9 */ 6 59 "wait logout hold", "wait detach", "wait new proc", /* 10-12 */ 6 60 "wait remove"); /* -13 */ 6 61 6 62 /* Values for "cdte.state", typewriter state. */ 6 63 6 64 dcl (TTY_MASKED init (-1), /* Terminal channel is there, but masked by MCS */ 6 65 TTY_HUNG init (1), /* Terminal channel is there, but dead. */ 6 66 TTY_KNOWN init (2), /* Channel being "listened" to, awaiting dialup. */ 6 67 TTY_DIALED init (5) /* Channel is dialed up. This is normal state. */ 6 68 ) fixed bin internal static options (constant); 6 69 6 70 dcl STATE_VALUES (-1:5) char (15) aligned int static options (constant) init 6 71 /* names of cdte.state values */ 6 72 ("masked", "dead", "hung up", "listening", "", "", "dialed up"); 6 73 6 74 /* Values for "cdte.in_use" and "ate.active" */ 6 75 6 76 dcl (NOW_FREE init (0), /* Entry is empty. */ 6 77 NOW_HUNG_UP init (1), /* Entry is usable but tty is hung up. */ 6 78 NOW_LISTENING init (2), /* Entry is waiting for phone call. */ 6 79 NOW_DIALED init (3), /* Entry is connected but login not complete. */ 6 80 NOW_LOGGED_IN init (4), /* Entry is logged in but no process. */ 6 81 NOW_HAS_PROCESS init (5), /* Entry has a valid process. */ 6 82 NOW_DIALING init (6), /* Entry (auto_call line) is dialing */ 6 83 NOW_DIALED_OUT init (7) /* Entry (auto_call line) is in use */ 6 84 ) fixed bin internal static options (constant); 6 85 6 86 dcl ACTIVE_VALUES (0:5) char (18) aligned int static options (constant) init 6 87 /* names of ute.active values */ 6 88 ("free", "hung-up", "listening", "dialed", "logged in, no proc", "logged in & proc"); 6 89 6 90 6 91 /**** Values for ute.tag */ 6 92 6 93 dcl (TAG_INTERACTIVE init("a"), 6 94 TAG_UFT init("f"), 6 95 TAG_ABSENTEE init("m"), 6 96 TAG_PROXY init("p"), 6 97 TAG_DAEMON init("z") 6 98 ) char(1) int static options(constant); 6 99 6 100 6 101 /**** Following are constants used to indicate to the process termination 6 102* handler the reason for the process termination. They are used by 6 103* uc_proc_term_handler_, as well as uc_ls_new_proc_request_ and 6 104* uc_ls_destroy_request_. */ 6 105 6 106 dcl ( 6 107 PT_FPE initial (1), 6 108 PT_LOGOUT initial (4), 6 109 PT_NEW_PROC_AUTH initial (13), 6 110 PT_HANGUP initial (20), 6 111 PT_SHUTDOWN initial (21), 6 112 PT_BUMP initial (22), 6 113 PT_ALARM initial (23), 6 114 PT_DETACH initial (24), 6 115 PT_UNBUMP initial (25), 6 116 PT_OPERATOR_TERMINATE initial (27), 6 117 PT_DESTROY_REQUEST initial (30), 6 118 PT_NEW_PROC_REQUEST initial (31) 6 119 ) fixed bin (17) internal static options (constant); 6 120 6 121 /**** Values for ute.preempted: 6 122* -1 user unbumped after term signal sent 6 123* 0 user unbumped; ignore alarm___ 6 124* 1 value internally used in load_ctl_ 6 125* 2 user bumped; when alarm___ comes in, send term signal 6 126* 3 term signal sent; destroy process if termsgnl, alarm___, or cpulimit 6 127* signals come in 6 128* 4 user bumped; process sick, so destroy without sending term signal 6 129* 5 trm_ signal sent, termsgnl received; (if still 3, we never got the 6 130* termsgnl). */ 6 131 6 132 dcl ( 6 133 PREEMPT_UNBUMP initial (-1), 6 134 PREEMPT_UNBUMP_IGNORE_ALARM initial (0), 6 135 PREEMPT_LOAD_CTL initial (1), 6 136 PREEMPT_BUMPED initial (2), 6 137 PREEMPT_TERM_SENT initial (3), 6 138 PREEMPT_BUMPED_NO_TERM initial (4), 6 139 PREEMPT_TERMSGNL_RECEIVED initial (5) 6 140 ) fixed bin (17) internal static options(constant); 6 141 6 142 dcl PREEMPT_VALUES (-1:5) char(28) varying int static options(constant) init( 6 143 "unbumped", 6 144 "not bumped, ignore alarm___", 6 145 "load_ctl_", 6 146 "bumped", 6 147 "bumped, trm_ sent", 6 148 "bumped without trm_", 6 149 "bumped, termsgnl received"); 6 150 6 151 /* END INCLUDE FILE ... dialup_values.incl.pl1 */ 846 847 /* BEGIN dn355_data.incl.pl1 */ 7 2 7 3 7 4 7 5 /****^ HISTORY COMMENTS: 7 6* 1) change(88-06-15,Berno), approve(88-07-13,MCR7928), 7 7* audit(88-06-15,Parisek), install(88-07-19,MR12.2-1061): 7 8* Add data needed for the uncp multiplexer (DSA gateway) interface 7 9* implementation. 7 10* 2) change(89-03-20,Parisek), approve(89-06-06,MCR8110), 7 11* audit(89-10-09,Farley), install(89-10-25,MR12.3-1100): 7 12* Add support of protocol mpx. 7 13* END HISTORY COMMENTS */ 7 14 7 15 7 16 /* Date Last Modified and Reason 7 17* 7 18* Created 07/25/74 by R. B. Snyder for new ttydim. 7 19* Modified 06/23/77 by J. Stern to add channel_work_reqd and cwork_count 7 20* Modified 08/14/78 by Robert Coren to remove devx_tab and invent PCBs 7 21* Modified 79 May 14 by Art Beattie to add fnp_mem_size 7 22* Modified December 1979 by Robert Coren to add FNP queue lock 7 23* Modified January 1980 by Larry Johnson to increase max number of FNPs to 8 7 24* Modified 02/12/80 by Robert Coren to add dcw_list_array_ptr 7 25* Modified 03/06/80 by Robert Coren to add some metering info 7 26* Modified 12/10/80 by Robert Coren to add get_meters_waiting flag 7 27* Modified 83-12-16 BIM to use a chanid instead of iom/channel fb's. 7 28* Modified 1984-07-26 BIM for paged iom. 7 29* Modified in September 1985 for the DN7100 version interim. 7 30**/ 7 31 7 32 /* LOCKING RULES: A fnp is locked by its LCTE unless its LCTE is uninitialized. 7 33* In that case, the configuration_lock must be held. 7 34* if tty_lock$lock_lcte returns io_no_permission, then the caller must 7 35* lock$lock_fast the configuration lock and retry the LCTE lock. If 7 36* the lcte is now initialized, too bad. Otherwise, the config lock protects. 7 37* 7 38* Configuration locking is interesting to init_multiplexer and 7 39* all of fnp t&d and reconfiguration. The guts of the multiplexer 7 40* pay no attention to it. Thus, if the LCTE can be locked, it MUST be 7 41* locked before changing the io_manager_assigned flag. */ 7 42 7 43 /* format: style4,delnl,insnl,^ifthendo */ 7 44 7 45 dcl max_no_355s fixed bin int static init (8) options (constant); 7 46 /* max no of 355s we can handle (arbitrary) */ 7 47 dcl dn355_data$ external fixed bin; 7 48 7 49 dcl infop pointer; 7 50 dcl fnpp ptr; 7 51 7 52 dcl 1 datanet_info aligned based (infop), 7 53 2 configuration_lock aligned, 7 54 3 pid bit (36) aligned, 7 55 3 event bit (36) aligned, 7 56 3 flags aligned, 7 57 4 notify_sw bit (1) unaligned, 7 58 4 pad bit (35) aligned, 7 59 2 no_of_355s fixed bin, /* no. of FNP's */ 7 60 2 trace bit (1) aligned, /* watch events on console */ 7 61 2 debug_stop bit (1) aligned, /* crash on errors */ 7 62 2 uncp_bufp ptr, /* pointer to the circular buffer */ 7 63 2 protocol_datap ptr, /* pointer to protocol_mpx data */ 7 64 2 pad1 (6) bit (36) aligned, 7 65 2 per_datanet (max_no_355s) aligned like fnp_info; /* data per datanet */ 7 66 7 67 dcl 1 fnp_info aligned based (fnpp), /* structure for each FNP */ 7 68 2 mbx_pt pointer, /* pointer to mailbox NULL if not in config */ 7 69 2 pcb_array_ptr pointer, /* pointer to array of physical channel blocks */ 7 70 2 dcw_list_array_ptr pointer, /* pointer to array of space reserved for output DCW lists */ 7 71 2 no_of_channels fixed bin, /* number of channels on this FNP */ 7 72 2 fnp_id, 7 73 3 fnp_tag char (1) unaligned, /* letter identifying FNP */ 7 74 3 fnp_number fixed bin (9) unsigned unaligned, /* sequence number of FNP */ 7 75 3 padc bit (18) unaligned, 7 76 2 io_chanid char (8) aligned, 7 77 2 io_manager_chx fixed bin (35), /* devx for DIA on iom */ 7 78 2 lsla_idx (0:5) fixed bin aligned, /* index into PCB array for lsla lines */ 7 79 2 hsla_idx (0:2) fixed bin aligned, /* index into PCB array for hsla lines */ 7 80 2 count fixed bin, /* number of items in delay queue */ 7 81 2 cur_ptr fixed bin, /* offset in tty_buf of next delay queue element */ 7 82 2 last_ptr fixed bin, /* offset in tty_buf of last delay queue element */ 7 83 2 bleft_355 fixed bin, /* number of free buffers in this 355 */ 7 84 2 flags, 7 85 3 work_reqd bit (1) unaligned, /* mailbox messages queued up */ 7 86 3 bootloading bit (1) unaligned, /* currently being bootloaded */ 7 87 3 running bit (1) unaligned, /* this FNP is running */ 7 88 3 wired bit (1) unaligned, /* bootload buffer is wired */ 7 89 3 dump_patch_in_progress bit (1) unaligned, /* a dump or patch order is in progress */ 7 90 3 level_3_pending bit (1) unaligned, /* level 3 interrupt pending */ 7 91 3 level_7_pending bit (1) unaligned, /* level 7 interrupt pending */ 7 92 3 dump_patch_disabled bit (1) unaligned, /* dump & patch orders disabled because of timeout */ 7 93 3 t_and_d_in_progress bit (1) unaligned, /* T & D using FNP */ 7 94 3 t_and_d_lev_3_occurred bit (1) unaligned, /* A level 3 occurred */ 7 95 3 t_and_d_lev_7_occurred bit (1) unaligned, 7 96 3 t_and_d_notify_requested bit (1) unaligned, 7 97 3 t_and_d_assigned bit (1) unaligned, /* AS has given fnp to process */ 7 98 3 get_meters_waiting bit (1) unaligned, /* waiting for meter copy to complete */ 7 99 3 padb bit (7) unaligned, 7 100 3 active_dial unaligned, 7 101 4 active_bit (15) bit (1) unaligned, /* ON if the process is active */ 7 102 2 lcte_ptr ptr, /* pointer to this FNP's LCT entry */ 7 103 2 astep ptr, /* pointer to aste of wired bootload buffer */ 7 104 2 boot_ev_chan fixed bin (71), /* event channel over which to signal bootload completion */ 7 105 2 boot_process_id bit (36), /* process that initiated bootload */ 7 106 2 version char (4), /* version id of core image */ 7 107 2 fnp_mem_size fixed bin (18) unsigned, /* memory size of this FNP in 18-bit words */ 7 108 2 queue_lock bit (36) aligned, /* lock for interrupt queue */ 7 109 2 dump_patch_lock bit (36), /* lock for fnp_dump or _patch operation */ 7 110 2 q_entries_made fixed bin (35), /* count of delay queue entries made */ 7 111 2 input_reject_count fixed bin, /* number of times input rejected */ 7 112 2 processed_from_q fixed bin (35), /* number of interrupts processed from queue */ 7 113 2 fnp_channel_locked fixed bin (35), /* number of times dn355 found per-FNP lock locked */ 7 114 2 input_data_transactions fixed bin (35), /* number of mailbox transactions for input */ 7 115 2 output_data_transactions fixed bin (35), /* number of mailbox transactions for output */ 7 116 2 input_control_transactions fixed bin (35), /* number of mailbox transactions for inbound control info */ 7 117 2 output_control_transactions fixed bin (35), /* number of mailbox transactions for outbound control info */ 7 118 2 cumulative_mbx_in_use fixed bin (35), /* cumulative count of number of outbound mailboxes in use */ 7 119 2 max_mbx_in_use fixed bin, /* maximum number of mailboxes in use at any given time */ 7 120 2 mbx_in_use_updated fixed bin (35), /* number of increments to cumulative_mbx_in_use */ 7 121 2 mbx_unavailable fixed bin (35), /* number of times had to queue mailbox transaction because none available */ 7 122 2 free_size fixed bin (35), /* cumulative amount of bleft_355 */ 7 123 2 free_count fixed bin, /* number of adds to above */ 7 124 2 fnp_space_restricted_output fixed bin (35), /* number of times available FNP space restricted amount of output sent */ 7 125 2 tandd_pcbx fixed bin, /* index of PCB for COLTS channel */ 7 126 2 n_pages_wired fixed bin, /* pages wired for loading */ 7 127 2 config_flags aligned, 7 128 3 available bit (1) unaligned, /* reconfig says "yes" */ 7 129 3 io_manager_assigned bit (1) unaligned, /* We have channel assigned to us */ 7 130 3 pad bit (34) unaligned, 7 131 2 uncp_pcbx1 fixed bin (17) unaligned, /* For the DN7100 */ 7 132 2 uncp_pcbx2 fixed bin (17) unaligned, /* For the DN7100 */ 7 133 2 ptx fixed bin, /* page table index, used only at bootload */ 7 134 2 ptp pointer unaligned; /* page table for this FNP */ 7 135 7 136 /**** The following named constants are used to lay out the 7 137* iom page tables. Each FNP has to have its own page 7 138* table because there is not enough room to have eight different 7 139* bootload images of 32 K and > 64 K of tty_buf 7 140* 7 141* THE MAX TTY BUF LENGTH IS 192 K words. We could have another 16 K 7 142* easily, and then after that it would get hard. */ 7 143 7 144 /**** The layout 7 145* 7 146* Page I/O address Memory address Comments 7 147* ---- ------ -------------- -------- 7 148* 0 0 xxxxxx invalid PTW 7 149* 1 2000 2000 write-enabled (mailbox) 7 150* 2 4000 4000 write-enabled (mailbox) 7 151* 3 6000 6000 write-enabled (mailbox) 7 152* 4 10000 as needed bootload image segment page 0 7 153* .... .... .... .... 7 154* 35 110000 as needed bootload image segment page 31 7 155* 36 112000 xxxxxx invalid PTW 7 156* ... .... .... .... 7 157* 63 160000 .... invalid PTW 7 158* 64 200000 as needed tty_buf page 0 7 159* ... .... .... .... 7 160* 127 260000 as needed tty_buf page 63 7 161* 255 ...... ..... tty_buf page 191 7 162**/ 7 163 7 164 /**** We assume that the page table starts at all zeros. */ 7 165 7 166 declare FIRST_BOOTLOAD_PAGEX fixed bin init (4) int static options (constant); 7 167 declare FIRST_TTY_BUF_PAGEX fixed bin init (64) int static options (constant); 7 168 7 169 /* End include file dn355_data.incl.pl1 */ 847 848 /* 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 */ 848 849 /* BEGIN INCLUDE FILE ... line_types.incl.pl1 */ 9 2 9 3 /* Written November 10 1975 by Paul Green */ 9 4 /* Modified October 1978 by Larry Johnson to include line_type_names */ 9 5 /* Modified 12/19/78 by J. Stern to add POLLED_VIP line type */ 9 6 /* Modified 9/27/79 by J. Stern to add X25LAP line type */ 9 7 /* Modified Spring 1981 by Charles Hornig to add HDLC line type */ 9 8 /* Modified May 1981 by Robert Coren to add COLTS line type */ 9 9 /* Modified September 1984 by Robert Coren to correctly count VIP as a synchronous line type */ 9 10 9 11 9 12 /****^ HISTORY COMMENTS: 9 13* 1) change(86-02-25,Negaret), approve(87-07-13,MCR7679), 9 14* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 9 15* Add a DSA line type. 9 16* 2) change(87-03-17,Beattie), approve(87-07-13,MCR7656), 9 17* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 9 18* Add HASP_OPR to identify HASP workstation consoles with login service. 9 19* END HISTORY COMMENTS */ 9 20 9 21 9 22 declare (LINE_MC initial (-2), 9 23 LINE_TELNET initial (-1), 9 24 LINE_UNKNOWN initial (0), 9 25 LINE_ASCII initial (1), 9 26 LINE_1050 initial (2), 9 27 LINE_2741 initial (3), 9 28 LINE_ARDS initial (4), 9 29 LINE_SYNCH initial (5), 9 30 LINE_G115 initial (6), 9 31 LINE_BSC initial (7), 9 32 LINE_ETX initial (8), 9 33 LINE_VIP initial (9), 9 34 LINE_ASYNC1 initial (10), 9 35 LINE_ASYNC2 initial (11), 9 36 LINE_ASYNC3 initial (12), 9 37 LINE_SYNC1 initial (13), 9 38 LINE_SYNC2 initial (14), 9 39 LINE_SYNC3 initial (15), 9 40 LINE_POLLED_VIP initial (16), 9 41 LINE_X25LAP initial (17), 9 42 LINE_HDLC initial (18), 9 43 LINE_COLTS initial (19), 9 44 LINE_DSA initial (20), 9 45 LINE_HASP_OPR initial (21) 9 46 ) fixed bin internal static options (constant); 9 47 9 48 dcl max_line_type fixed bin int static options (constant) init (21); 9 49 9 50 declare n_sync_line_types fixed bin int static options (constant) init (10); 9 51 9 52 declare sync_line_type (10) fixed bin int static options (constant) init (5, 6, 7, 9, 13, 14, 15, 16, 17, 18); 9 53 9 54 dcl line_types (-2:21) char (16) int static options (constant) init ( 9 55 "MC", /* -2 */ 9 56 "TELNET", /* -1 */ 9 57 "none", /* 0 */ 9 58 "ASCII", /* 1 */ 9 59 "1050", /* 2 */ 9 60 "2741", /* 3 */ 9 61 "ARDS", /* 4 */ 9 62 "Sync", /* 5 */ 9 63 "G115", /* 6 */ 9 64 "BSC", /* 7 */ 9 65 "202ETX", /* 8 */ 9 66 "VIP", /* 9 */ 9 67 "ASYNC1", /* 10 */ 9 68 "ASYNC2", /* 11 */ 9 69 "ASYNC3", /* 12 */ 9 70 "SYNC1", /* 13 */ 9 71 "SYNC2", /* 14 */ 9 72 "SYNC3", /* 15 */ 9 73 "POLLED_VIP", /* 16 */ 9 74 "X25LAP", /* 17 */ 9 75 "HDLC", /* 18 */ 9 76 "COLTS", /* 19 */ 9 77 "DSA", /* 20 */ 9 78 "HASP_OPR"); /* 21 */ 9 79 9 80 /* END INCLUDE FILE ... line_types.incl.pl1 */ 849 850 /* BEGIN INCLUDE FILE mcs_echo_neg_sys.incl.pl1 Bernard Greenberg 1/20/79 */ 10 2 10 3 /* Modified 6/29/79 by BSG for FNP echo negotiation */ 10 4 10 5 10 6 /****^ HISTORY COMMENTS: 10 7* 1) change(86-04-23,Coren), approve(86-04-23,MCR7300), 10 8* audit(86-05-19,Beattie), install(86-07-08,MR12.0-1089): 10 9* To increase size of break table and to add named constants for the size. 10 10* END HISTORY COMMENTS */ 10 11 10 12 10 13 /* This include file defines the wired structure for MCS echo negotiation */ 10 14 10 15 dcl echo_datap ptr; /* Wired echo data ptr */ 10 16 dcl WIRED_ECHO_BREAK_SIZE fixed bin internal static options (constant) init (255); 10 17 dcl WORDS_IN_ECHO_BREAK_TABLE fixed bin internal static options (constant) init (8); 10 18 10 19 dcl 1 echo_data based (echo_datap) aligned, /* Wired echo data */ 10 20 2 break (0: 255) bit (1) unaligned, /* 1 = break on this character */ 10 21 2 synchronized bit (1) unal, /* Mux echo negotiation is synchronized */ 10 22 2 mux_will_echnego bit (1) unal, /* Multiplexer accepted start_neg_echnego */ 10 23 2 echo_start_pending_sndopt bit (1) unal, /* Send start_n_e when SEND_OUTPUT comes */ 10 24 2 awaiting_start_sync bit (1) unal, /* Awaiting mux reply ACK for start */ 10 25 2 awaiting_stop_sync bit (1) unal, /* Awaiting mux reply ACK for stop */ 10 26 2 pad bit (27) unaligned, 10 27 2 sync_ctr fixed bin (35), /* Protocol ctr for MUX echo neg */ 10 28 2 chars_echoed fixed bin (9) unsigned unaligned, /* Count of chars echoed */ 10 29 2 horiz_room_left fixed bin (9) unsigned unaligned, /* Room left on line */ 10 30 2 rubout_trigger_chars (2) unaligned, /* Characters that cause rubout action */ 10 31 3 char char (1) unaligned, 10 32 2 rubout_sequence_length fixed bin (4) unsigned unaligned, /* Length of rubout sequence, output */ 10 33 2 rubout_pad_count fixed bin (4) unsigned unaligned, /* Count of pads needed */ 10 34 2 buffer_rubouts bit (1) unaligned, /* 1 = put rubouts and rubbed out in buffer */ 10 35 2 rubout_sequence char (12) unaligned; /* Actual rubout sequence */ 10 36 10 37 /* END INCLUDE FILE mcs_echo_neg_sys.incl.pl1 */ 850 851 /* 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 */ 851 852 /* BEGIN INCLUDE FILE ... pcb.incl.pl1 */ 12 2 12 3 12 4 12 5 /****^ HISTORY COMMENTS: 12 6* 1) change(88-06-15,Berno), approve(88-07-13,MCR7928), 12 7* audit(88-06-15,Parisek), install(88-07-19,MR12.2-1061): 12 8* Add data needed for the uncp multiplexer (DSA gateway) interface 12 9* implementation. 12 10* END HISTORY COMMENTS */ 12 11 12 12 12 13 /* Created 08/14/78 by Robert S. Coren */ 12 14 /* Modified 02/19/80 by Robert S. Coren to add read_first & read_last */ 12 15 /* Modified 12/10/80 by Robert S. Coren to add metering stuff */ 12 16 /* Modified May 1981 by Robert S.Coren to add tandd_attached flag */ 12 17 /* Modified in February 1982 to add: dumpout, turn, enter_receive_pending, 12 18* connection_type, send_lf, extra_nl,lfecho flags for DN7100 */ 12 19 12 20 /* Describes physical channel blocks for FNP channels */ 12 21 12 22 dcl n_pcbs fixed bin; 12 23 dcl pcbp ptr; 12 24 12 25 dcl 1 pcb_array (n_pcbs) based aligned like pcb; 12 26 12 27 dcl 1 pcb aligned based (pcbp), /* physical channel block declaration */ 12 28 2 channel_desc unaligned, 12 29 3 devx fixed bin (17), /* index of LCT entry */ 12 30 3 subchan fixed bin (7) unaligned, /* logical subchannel/lsla slot # correspondence */ 12 31 3 line_number unal, /* regular line number */ 12 32 4 is_hsla bit (1) unaligned, /* on if hsla, off if lsla */ 12 33 4 la_no bit (3) unaligned, /* line adapter (high or low speed) number */ 12 34 4 slot_no bit (6) unaligned, /* physical slot or subchannel number */ 12 35 2 write_first fixed bin (17) unaligned, /* offset of first buffer in output chain */ 12 36 2 write_last fixed bin (17) unaligned, /* offset of last buffer in output chain */ 12 37 2 baud_rate fixed bin (17) unaligned, /* baud rate of channel */ 12 38 2 line_type fixed bin (17) unaligned, /* line type */ 12 39 2 max_buf_size fixed bin (17) unaligned, /* largest buffer to be allocated for output */ 12 40 2 write_cnt fixed bin (17) unaligned, /* number of characters in write chain */ 12 41 2 flags unaligned, 12 42 3 listen bit (1), /* channel is ready for dialup */ 12 43 3 dialed bit (1), /* channel is dialed up or connected */ 12 44 3 send_output bit (1), /* channel is ready for output */ 12 45 3 high_speed bit (1), /* needs large send_out threshold */ 12 46 3 sync_line bit (1), /* synchronous channel */ 12 47 3 end_frame bit (1), /* channel is waiting for formfeed */ 12 48 3 hndlquit bit (1), /* channel in hndlquit mode */ 12 49 3 breakall_enabled bit (1), /* breakall mode allowed for this channel */ 12 50 3 output_mbx_pending bit (1), /* A wtx mbx has been sent, but not relinquished */ 12 51 3 copied_meters_ready bit (1), /* copy_meters operation has completed */ 12 52 3 get_meters_waiting bit (1), /* waiting for get_meters operation to complete */ 12 53 3 tandd_attached bit (1), /* this channel is in use by T & D */ 12 54 3 enter_receive_pending bit (1), /* enter_receive is waiting for send */ 12 55 3 turn bit (1), /* Multics owns the turn */ 12 56 3 extra_nl bit (1), /* add NL at end of buffer (read) */ 12 57 3 send_lf bit (1), /* send lf after read */ 12 58 3 lfecho bit (1), /* Validate lfecho mode */ 12 59 3 dumpout bit (1), /* To purge first write after special dial */ 12 60 3 buffer_flag bit (1), /* Utilisation of a buffer in place of the circular buffer. */ 12 61 3 connection_type bit (2), /* For full-duplex */ 12 62 3 padb bit (6), 12 63 3 uncp_pcbx fixed bin (9) unal uns, /* To manage the full duplex with the datanet 7100 */ 12 64 2 read_first fixed bin (18) unsigned unaligned, /* head of read chain (while reading from FNP) */ 12 65 2 read_last fixed bin (18) unsigned unaligned, /* tail of read chain (likewise) */ 12 66 2 saved_meters_ptr pointer unaligned, /* pointer to (unwired) copy of meters at last dialup */ 12 67 2 copied_meters_offset fixed bin (18) unsigned; /* offset in tty_buf of buffer meters copied to */ 12 68 12 69 /* END INCLUDE FILE ... pcb.incl.pl1 */ 852 853 /* BEGIN INCLUDE FILE ... tcb.incl.pl1 */ 13 2 13 3 /* Date Last Modified and Reason 13 4* Created 04/19/77 by J. Stern (from part of tty.incl.pl1) 13 5* Modified 2/6/78 by Robert Coren to add input_msg_size 13 6* Modified 4/18/78 by Robert Coren to add framing_chars 13 7* Modified 8/31/78 by J. Nicholls to add scroll mode 13 8* Extracted 9/12/78 by J. Stern from tty_data.incl.pl1 13 9* Modified Oct.1979 by Robert Coren to expand to 36 possible modes 13 10* Modified 1/21/80 by Robert Coren to add no_outp, oddp, & eight_bit modes 13 11* Modified 10/08/80 by Robert Coren to add meters for tty_read & tty_write 13 12* Modified: 10 November 1980 by G. Palter to add can_type and explicit padding 13 13* Modified 12/04/80 by Robert Coren to add saved copy of meters 13 14* Modified 2/24/81 by Robert Coren to add time spent in tty_read and _write 13 15* Modified April 1981 by Robert Coren to add time last dialed up 13 16**/ 13 17 13 18 dcl tcbp ptr; 13 19 13 20 dcl 1 tcb based (tcbp) aligned, /* declaration of per terminal control block */ 13 21 13 22 2 terminal_type char (32) unaligned, /* terminal type name */ 13 23 2 tables, 13 24 3 input_mvtrp bit (18) unaligned, /* rel pointer to current input mvt table */ 13 25 3 output_mvtrp bit (18) unaligned, /* rel pointer to current output mvt table */ 13 26 3 input_tctrp bit (18) unaligned, /* rel pointer to current input tct table */ 13 27 3 output_tctrp bit (18) unaligned, /* rel pointer to current output tct table */ 13 28 3 specialrp bit (18) unaligned, /* rel pointer to current special chars table */ 13 29 3 delayrp bit (18) unaligned, /* rel pointer to current delay table */ 13 30 2 default_tables, 13 31 3 df_input_mvtrp bit (18) unaligned, /* rel pointer to default input mvt table */ 13 32 3 df_output_mvtrp bit (18) unaligned, /* rel pointer to default output mvt table */ 13 33 3 df_input_tctrp bit (18) unaligned, /* rel pointer to default input tct table */ 13 34 3 df_output_tctrp bit (18) unaligned, /* rel pointer to default output tct table */ 13 35 3 df_specialrp bit (18) unaligned, /* rel pointer to default special chars table */ 13 36 3 df_delayrp bit (18) unaligned, /* rel pointer to default delay table */ 13 37 2 special_input_chars unaligned, 13 38 3 erase char (1) unaligned, /* erase character */ 13 39 3 kill char (1) unaligned, /* kill character */ 13 40 2 old_type fixed bin (17) unaligned, /* old terminal type number */ 13 41 13 42 2 modes unaligned, /* modes set by order call */ 13 43 3 edited bit (1) unaligned, /* edited output mode */ 13 44 3 tabm bit (1) unaligned, /* insert output tabs mode */ 13 45 3 canm bit (1) unaligned, /* do canonical form conversion */ 13 46 13 47 3 escm bit (1) unaligned, /* do input escape conversions */ 13 48 3 erklm bit (1) unaligned, /* do erase kill processing */ 13 49 3 rawim bit (1) unaligned, /* don't convert input */ 13 50 13 51 3 rawom bit (1) unaligned, /* don't convert output */ 13 52 3 redm bit (1) unaligned, /* has red-shift function */ 13 53 3 vertsp bit (1) unaligned, /* send real ff's and vt's if on, else escape them */ 13 54 13 55 3 echo_cr bit (1) unaligned, /* echo carriage returns */ 13 56 3 echo_lf bit (1) unaligned, /* echo line feeds */ 13 57 3 echo_tab bit (1) unaligned, /* echo tabs */ 13 58 13 59 3 hndlquit bit (1) unaligned, /* cr's on quit */ 13 60 3 full_duplex bit (1) unaligned, /* xmit and receive simultaneously */ 13 61 3 echoplex bit (1) unaligned, /* echo input characters on terminal */ 13 62 13 63 3 upper_case bit (1) unaligned, /* map lower-case output into upper-case */ 13 64 3 replay bit (1) unaligned, /* replay interrupted input */ 13 65 3 polite bit (1) unaligned, /* output must start at left margin */ 13 66 13 67 3 control bit (1) unaligned, /* accept control characters */ 13 68 3 blk_xfer bit (1) unaligned, /* block transfer or "frame" mode */ 13 69 3 breakall bit (1) unaligned, /* break on all characters */ 13 70 13 71 3 scroll bit (1) unaligned, /* scroll mode for crt terminals */ 13 72 3 prefixnl bit (1) unaligned, /* prefix output iwth nl when input interrupted */ 13 73 3 wake_tbl bit (1) unaligned, /* input wakeups determined by wakeup table */ 13 74 13 75 3 iflow bit (1) unaligned, /* input flow control */ 13 76 3 oflow bit (1) unaligned, /* output flow control */ 13 77 3 no_outp bit (1) unaligned, /* don't generate output parity */ 13 78 13 79 3 eight_bit bit (1) unaligned, /* don't strip input parity */ 13 80 3 odd_parity bit (1) unaligned, /* generate odd parity (if any) */ 13 81 13 82 3 modes_pad bit (7) unaligned, 13 83 13 84 2 id char (4) unaligned, /* terminal id */ 13 85 13 86 2 colmax fixed bin (8) unaligned, /* current maximum number of columns */ 13 87 2 linemax fixed bin (8) unaligned, /* current maximum number of lines/frame */ 13 88 2 wrt_lchar fixed bin (17) unaligned, /* char within last write block */ 13 89 13 90 2 input_msg_size fixed bin, /* maximum input message size in chars */ 13 91 2 framing_chars unaligned, 13 92 3 frame_begin char (1) unaligned, /* frame-begin character */ 13 93 3 frame_end char (1) unaligned, /* frame-end character */ 13 94 2 max_output_block fixed bin (18) unsigned unaligned, /* maximum size of output block in block_acknowledge */ 13 95 13 96 2 input_suspend_seq unaligned, /* sequence for input suspension */ 13 97 3 count fixed bin (9) unsigned, 13 98 3 chars char (3), 13 99 2 input_resume_seq unaligned, /* likewise for input resumption */ 13 100 3 count fixed bin (9) unsigned, 13 101 3 chars char (3), 13 102 13 103 2 output_suspend_etb_seq unaligned, /* sequence for output suspension or end_of_block */ 13 104 3 count fixed bin (9) unsigned, 13 105 3 chars char (3), 13 106 2 output_resume_ack_seq unaligned, /* likewise for resumption or ack */ 13 107 3 count fixed bin (9) unsigned, 13 108 3 chars char (3), 13 109 13 110 2 flags unaligned, /* tty dim flag bits */ 13 111 3 breakall_enabled bit (1) unaligned, /* channel is permitted to use breakall mode */ 13 112 3 dont_count_next bit (1) unaligned, /* next output character is escaped */ 13 113 3 keyboard_locking bit (1) unaligned, /* ON if doing keybd locking for ASCIi line type */ 13 114 3 no_printer_off bit (1) unaligned, /* reject printer_off/printer_on orders */ 13 115 3 break_char_pending bit (1) unaligned, /* break character is in preconverted buffer */ 13 116 3 uproc_attached bit (1) unaligned, /* user process has attached device */ 13 117 3 block_acknowledge bit (1) unaligned, /* block acknowledgement output protocol */ 13 118 3 flags_pad bit (27) unaligned, 13 119 13 120 2 actshift bit (2) unaligned, /* tty shift, 00 none, 01 lower, 10 upper, 11 unknown */ 13 121 13 122 2 cumulative_meters, /* continuously running meters */ 13 123 3 read_calls fixed bin (35), /* number of calls to tty_read */ 13 124 3 write_calls fixed bin (35), /* number of calls to tty_write */ 13 125 3 read_chars fixed bin (35), /* after conversion */ 13 126 3 write_chars fixed bin (35), /* before conversion */ 13 127 3 read_time fixed bin (71), /* total time spent in tty_read */ 13 128 3 write_time fixed bin (71), /* total time spent in tty_write */ 13 129 2 saved_meters like tcb.cumulative_meters, /* meters saved at last dialup */ 13 130 13 131 2 can_type fixed binary (9) unaligned unsigned, /* type of canonicalization to use on this channel */ 13 132 2 pad1 bit (27) unaligned, /* to word boundary */ 13 133 2 time_dialed fixed bin (71); /* clock time of last copy_meters order */ 13 134 13 135 /* END INCLUDE FILE ... tcb.incl.pl1 */ 853 854 /* BEGIN INCLUDE FILE ... tty_buf.incl.pl1 */ 14 2 14 3 /* Date Last Modified and Reason 14 4* Created 04/19/77 by J. Stern (from part of tty.incl.pl1) 14 5* Modified January 1978 by Robert Coren and Larry Johnson for variable-size buffers 14 6* Modified 2/6/78 by Robert Coren to make circular_queue size settable 14 7* Modified Aug 78 by J. Nicholls to move the buffer block format to a file of its own 14 8* and wtcb to its own plus other modification for ring 0 multiplexing, tty_buffer_block.incl.pl1 14 9* Modified 7/17/79 by B. Greenberg for echo negotiation meters. 14 10* Modified November 1979 by C. Hornig for MCS tracing. 14 11* Modified December 1979 by Robert Coren to add FNP channel lock meter 14 12* Modified February 1980 by Robert Coren to remove all references to circular buffer 14 13* Modified March 1980 by Robert Coren to reorganize metering information 14 14* Modified December 1980 by Robert Coren to add FNP-specific events 14 15* Modified 24 March 1982, W. Olin Sibert, to add mcs_timer support, recoverable_error_severity 14 16* Modified November 1984 by Robert Coren to add tty_area_lock 14 17**/ 14 18 14 19 dcl ttybp ptr, 14 20 tty_buf$ ext static, /* tty buffer segment */ 14 21 tty_ev fixed bin int static options (constant) init (57), /* event used for wait and notify */ 14 22 abs_buf_limit fixed bin (18) static options (constant) init (64), /* minimum number of words we will leave free */ 14 23 input_bpart fixed bin (18) static options (constant) init (2), /* fraction of bleft we will allow for input */ 14 24 output_bpart fixed bin (18) static options (constant) init (4); /* fraction of bleft we will allow for output */ 14 25 14 26 14 27 dcl qblock_size fixed bin int static options (constant) init (16); /* size in words of a delay queue block */ 14 28 dcl bsizec fixed bin int static options (constant) init (60); /* number of characters in smallest buffer */ 14 29 dcl buf_per_second fixed bin int static options (constant) init (10); /* for figuring out max. buffer size based on speed */ 14 30 14 31 dcl FNP_DUMP_PATCH_EVENT fixed bin int static options (constant) init (58); 14 32 dcl FNP_METER_EVENT fixed bin int static options (constant) init (59); 14 33 dcl TTY_AREA_LOCK_EVENT bit (36) aligned int static options (constant) init ("74"b3); 14 34 14 35 dcl 1 tty_buf aligned based (ttybp), /* declaration of tty buffer seg */ 14 36 2 slock bit (36), /* per system lock */ 14 37 2 absorig fixed bin (24), /* abs address of this seg */ 14 38 2 borig bit (18), /* index of start of buffer area */ 14 39 2 bleft fixed bin (18), /* words left in pool */ 14 40 2 free bit (18), /* pointer to start of free pool */ 14 41 2 fnp_config_flags (8) bit (1) unal, /* flag(i) ON if fnp(i) configured */ 14 42 2 padb1 bit (28) unaligned, 14 43 2 lct_ptr ptr, /* pointer to logical channel table */ 14 44 14 45 2 nrawread fixed bin (35), /* number of raw chars input, total */ 14 46 2 nrawwrite fixed bin (35), /* number of raw characters output */ 14 47 2 ninchars fixed bin (35), /* total input chars after conversion */ 14 48 2 noutchars fixed bin (35), /* total output chars before conversion */ 14 49 2 readblocked fixed bin (35), /* number of times go input blocked */ 14 50 2 nblocked fixed bin (35), /* number of times process output blocked */ 14 51 2 minbuf fixed bin (18), /* min output buffer size */ 14 52 2 totbuf fixed bin (35), /* divide by nblocked to get ave buffer size */ 14 53 14 54 2 preconverted fixed bin (35), /* number of converted chars held in tty_buf */ 14 55 2 input_restart fixed bin, /* number of times tty_read had to start over */ 14 56 2 output_restart fixed bin, /* number of times tty_write has had to start over */ 14 57 2 output_buffer_overflow fixed bin, /* number of times tty_write has run out of buffers */ 14 58 2 read_time fixed bin (71), /* total time spent in tty_read */ 14 59 2 write_time fixed bin (71), /* total time spent in tty_write */ 14 60 14 61 2 read_calls fixed bin (35), /* number of calls to tty_read */ 14 62 2 write_calls fixed bin (35), /* number of calls to tty_write */ 14 63 2 bfx fixed bin, /* used in calls to iobm */ 14 64 2 nquits fixed bin (35), /* number of quits */ 14 65 2 space_needed_data, 14 66 3 space_needed bit (1) unal, /* space_needed bit on in at least 1 lcte */ 14 67 3 space_needed_calls fixed bin (34) unal, /* meter of uses of this facility */ 14 68 2 space_lock_count fixed bin (35), /* count of times tty_buf.slock locked */ 14 69 2 space_lock_wait_count fixed bin (35), /* count of times necessary to loop to lock it */ 14 70 2 space_lock_wait_time fixed bin (35), /* total time looped trying to lock it */ 14 71 14 72 2 alloc_calls fixed bin (35), /* total number of allocations performed in tty_buf */ 14 73 2 free_calls fixed bin (35), /* total number of freeings in tty_buf */ 14 74 2 alloc_time fixed bin (35), /* time spent masked in tty_space_man$get entries */ 14 75 2 free_time fixed bin (35), /* time spent masked in tty_space_man$free entries */ 14 76 2 total_alloc_steps fixed bin (35), /* number of steps thru free chain while doing above */ 14 77 2 alloc_failures fixed bin (35), /* number of unsuccessful attempts to allocate space */ 14 78 2 cumulative_input_space fixed bin (71), /* cumulative amount of space allocated for input */ 14 79 14 80 2 cumulative_output_space fixed bin (71), /* cumulative amount of space allocated for output */ 14 81 2 cumulative_control_space fixed bin (71), /* cumulative amount of space allocated by tty_space_man$get_space */ 14 82 2 input_space_updates fixed bin (35), /* number of increments to cumulative_input_space */ 14 83 2 output_space_updates fixed bin (35), /* number of increments to cumulative_output_space */ 14 84 2 control_space_updates fixed bin (35), /* number of increments to cumulative_control_space */ 14 85 2 minimum_free_space fixed bin (18), /* smallest amount of free space ever available */ 14 86 14 87 2 current_input_space fixed bin (18), /* amount of space currently allocated for input */ 14 88 2 current_output_space fixed bin (18), /* amount of space currently allocated for output */ 14 89 2 current_control_space fixed bin (18), /* amount of space currently allocated by get_space */ 14 90 2 tty_lock_calls fixed bin (35), /* number of calls to tty_lock$lock entries */ 14 91 2 found_channel_locked fixed bin (35), /* number of times tty_lock found channel already locked */ 14 92 2 max_wait_time fixed bin (35), /* longest time waited for any channel lock */ 14 93 2 total_wait_time fixed bin (71), /* total amount of time spent waiting for channel locks */ 14 94 14 95 2 echo_neg_time fixed bin (71), /* cumulative time spent doing echo negotiation */ 14 96 2 echo_neg_interrupts fixed bin (35), /* Echo-negotiated shipments */ 14 97 2 echo_neg_r0_chars fixed bin (35), /* Chars echoed by ring 0 */ 14 98 2 echo_neg_mux_chars fixed bin (35), /* Chars echoed by mux */ 14 99 2 echo_neg_sndopt_restarts fixed bin (35), /* Echo reinits */ 14 100 2 echo_neg_mux_nonecho fixed bin (35), 14 101 2 echo_neg_entries fixed bin (35), /* Entries into negotiate */ 14 102 14 103 2 echo_neg_mux_inhibit bit (1) aligned, /* For testing */ 14 104 2 n_queued_interrupts fixed bin (35), /* number of interrupts queued by tty_lock */ 14 105 2 trace unaligned, /* tracing information */ 14 106 3 flags, 14 107 4 enable bit, /* global tracing control */ 14 108 4 default_mode bit, /* whether to trace channels by default */ 14 109 4 read bit, /* read */ 14 110 4 write bit, /* write */ 14 111 4 data bit, /* buffers on reads and writes */ 14 112 4 control bit, /* control, priv_control, and hpriv_control */ 14 113 4 modes bit, /* (get set check)_modes */ 14 114 4 interrupt bit, /* interrupt, interrupt_later */ 14 115 4 init bit, /* init_multiplexer, terminate_multiplexer */ 14 116 4 start bit, /* start, stop */ 14 117 4 shutdown bit, /* shutdown */ 14 118 4 space_man bit, /* tty_space_man$* */ 14 119 4 pad_flags bit (6), 14 120 3 data_offset bit (18), /* offset of tracing data */ 14 121 14 122 2 recoverable_error_severity fixed bin, /* Syserr severity for recoverable MCS errors */ 14 123 14 124 2 timer_lock bit (36) aligned, /* Lock owned by mcs_timer */ 14 125 2 next_timer_offset bit (18) aligned, /* Offset of next timer to come due */ 14 126 2 timer_count fixed bin, /* Number of timers outstanding */ 14 127 2 timer_process bit (36) aligned, /* Who is doing timers? */ 14 128 14 129 2 timer_ev_chn fixed bin (71), /* How get get him */ 14 130 2 timer_lock_wait_time fixed bin (71), /* CPU time spent spinning on timer lock */ 14 131 14 132 2 timer_lock_count fixed bin (35), /* Number of times timer lock locked */ 14 133 2 timer_lock_wait_count fixed bin (35), /* Number of times imer lock waited on */ 14 134 2 timer_call_time fixed bin (71), /* CPU time spent in call side timer operations */ 14 135 14 136 2 timer_polling_time fixed bin (71), /* CPU time spent polling (including channel_manager) */ 14 137 2 timer_set_calls fixed bin (35), /* Number of calls to mcs_timer$set, set_wired */ 14 138 2 timer_reset_calls fixed bin (35), /* Number of calls to mcs_timer$reset, reset_wired */ 14 139 14 140 2 timer_change_calls fixed bin (35), /* Number of calls to mcs_timer$change, change_wired */ 14 141 2 timer_poll_calls fixed bin (35), /* Number of calls to mcs_timer$poll */ 14 142 2 timer_error_calls fixed bin (35), /* Number of mcs_timer calls ending with recoverable errors */ 14 143 2 timer_duplicate_pollings fixed bin (35), /* Number of timer polling found in progress on other CPU */ 14 144 14 145 2 tty_area_lock like hc_fast_lock, /* to prevent contention in allocating/freeing in tty_area */ 14 146 14 147 2 pad2 (13) fixed bin (35), 14 148 14 149 2 free_space fixed bin; /* start of free space region */ 14 150 14 151 15 1 /* BEGIN INCLUDE FILE...hc_fast_lock.incl.pl1 */ 15 2 15 3 /* Created November 1984 by Robert Coren to replace hc_lock.incl.pl1 */ 15 4 15 5 /* Lock format suitable for use with lock$lock_fast, unlock_fast */ 15 6 15 7 /* format: style3 */ 15 8 15 9 declare lock_ptr pointer; 15 10 declare 1 hc_fast_lock aligned based (lock_ptr), 15 11 2 pid bit (36) aligned, /* holder of lock */ 15 12 2 event bit (36) aligned, /* event associated with lock */ 15 13 2 flags aligned, 15 14 3 notify_sw bit (1) unaligned, 15 15 3 pad bit (35) unaligned; /* certain locks use this pad, like dirs */ 15 16 15 17 /* END INCLUDE FILE...hc_fast_lock.incl.pl1 */ 14 152 14 153 14 154 /* END INCLUDE FILE ... tty_buf.incl.pl1 */ 854 855 /* BEGIN INCLUDE FILE ... tty_buffer_block.incl.pl1 */ 16 2 16 3 16 4 16 5 /****^ HISTORY COMMENTS: 16 6* 1) change(88-06-15,Berno), approve(88-07-13,MCR7928), 16 7* audit(88-06-15,Parisek), install(88-07-19,MR12.2-1061): 16 8* Add data needed for the uncp multiplexer (DSA gateway) interface 16 9* implementation. 16 10* END HISTORY COMMENTS */ 16 11 16 12 16 13 /* 16 14* Separated from tty_buf.incl.pl1 aug 78 by J. Nicholls 16 15* Modified May 1979 by Larry Johnson to add max_buffer_tally array and to use unsigned variables. 16 16* Reported in February 1982 the modifications to add the "turn" bit in flags. 16 17**/ 16 18 16 19 dcl blockp ptr; /* pointer which block entry is based on */ 16 20 dcl free_blockp ptr; /* pointer to head of free space chain */ 16 21 16 22 16 23 dcl 1 free_block aligned based (free_blockp), /* format of start of free block */ 16 24 2 next bit (18), /* foward pointer to next free block */ 16 25 2 size fixed bin; /* number of words in this block */ 16 26 16 27 16 28 dcl 1 buffer based (blockp) aligned, /* buffer definition */ 16 29 2 next fixed bin (18) unal uns, /* addr of next buffer */ 16 30 2 flags unaligned, 16 31 3 end_of_page bit (1) unaligned, /* buffer contains end of page */ 16 32 3 converted bit (1) unaligned, /* buffer contains converted input */ 16 33 3 break bit (1) unaligned, /* buffer contains break character */ 16 34 3 mark bit (1) unaligned, /* buffer contains first character after "mark" */ 16 35 3 turn bit (1) unaligned, /* ON if the turn must be sent */ 16 36 3 pad bit (1) unaligned, 16 37 2 size_code fixed bin (3) unal uns, /* (nwords/16) - 1 */ 16 38 2 tally fixed bin (9) unal uns, /* number of characters in buffer */ 16 39 2 chars (0:59) char (1) unaligned; /* room for 60 data characters */ 16 40 16 41 /* the following array, if indexed by buffer.size_code will give maximum number of characters permitted in that buffer */ 16 42 16 43 dcl max_buffer_tally (0:7) fixed bin int static options (constant) init (60, 124, 188, 252, 316, 380, 444, 508); 16 44 16 45 /* END INCLUDE FILE ... tty_buffer_block.incl.pl1 */ 855 856 /* BEGIN INCLUDE FILE ... tty_can_types.incl.pl1 */ 17 2 /* Created: 10 November 1980 by G. Palter */ 17 3 17 4 dcl (CAN_TYPE_OVERSTRIKE initial (1), 17 5 CAN_TYPE_REPLACE initial (2)) 17 6 fixed binary static options (constant); 17 7 17 8 dcl CAN_TYPE_NAMES (2) character (32) aligned static options (constant) initial 17 9 ("can_type=overstrike", "can_type=replace"); 17 10 17 11 /* END INCLUDE FILE ... tty_can_types.incl.pl1 */ 856 857 /* BEGIN INCLUDE FILE ... tty_mode_names.incl.pl1 */ 18 2 18 3 /* Defines internal static character strings for all legal tty modes */ 18 4 /* Created 6/17/75 by Robert Coren */ 18 5 /* modified 4/10/79 by J. Stern to add MPX_MODES */ 18 6 /* modified 8/13/79 by Robert Coren to add iflow & oflow */ 18 7 /* modified 1/21/80 by Robert Coren to add no_outp, oddp, & 8bit */ 18 8 /* modified 03/30/82 by Richard Lamson to add "ll", "pl", and "can_type" 18 9* and to reorganize modestr to be defined on MODE_NAME */ 18 10 18 11 18 12 /****^ HISTORY COMMENTS: 18 13* 1) change(88-07-05,Parisek), approve(88-07-05,MCR7928), 18 14* audit(88-07-08,Beattie), install(88-07-19,MR12.2-1061): 18 15* Changed declaration of modestr to use the "simple defining" technique 18 16* thus fixing compilation errors resulting from the use of the "isub" 18 17* value within a "isub defining" technique (defining techniques as 18 18* described in Multics PL/I Reference Manual - AM83). 18 19* END HISTORY COMMENTS */ 18 20 18 21 18 22 dcl n_modes fixed bin int static init (29); /* number of valid modes */ 18 23 18 24 declare MODE_NAME (-2:29) character (8) internal static options (constant) initial 18 25 ("ll", "pl", "can_type", /* -2 : 0 */ 18 26 "edited", "tabs", "can", "esc", /* 1 : 4 */ 18 27 "erkl", "rawi", "rawo", "red", /* 5 : 8 */ 18 28 "vertsp", "crecho", "lfecho", "tabecho", /* 9 : 12 */ 18 29 "hndlquit", "fulldpx", "echoplex", "capo", /* 13 : 16 */ 18 30 "replay", "polite", "ctl_char", "blk_xfer", /* 17 : 20 */ 18 31 "breakall", "scroll", "prefixnl", "wake_tbl", /* 21 : 24 */ 18 32 "iflow", "oflow", "no_outp", "8bit", /* 25 : 28 */ 18 33 "oddp"); /* 29 : 29 */ 18 34 18 35 18 36 declare modestr (1:29) character (8) unaligned defined (MODE_NAME (1)); 18 37 18 38 /* MPX_MODES (i) = "1"b => modestr (i) must be implemented by a multiplexer */ 18 39 18 40 dcl MPX_MODES (29) bit (1) int static options (constant) init 18 41 ("0"b, "0"b, "0"b, "0"b, "0"b, "0"b, "0"b, "0"b, /* edited -> red */ 18 42 "0"b, "1"b, "1"b, "1"b, "0"b, "1"b, "1"b, "0"b, /* vertsp -> capo */ 18 43 "1"b, "1"b, "0"b, "1"b, "1"b, "0"b, "1"b, "0"b, /* replay -> wake_tbl */ 18 44 "1"b, "1"b, "1"b, "1"b, "1"b); /* iflow -> oddp */ 18 45 18 46 18 47 /* END INCLUDE FILE ... tty_mode_names.incl.pl1 */ 857 858 /* BEGIN INCLUDE FILE ... user_attributes.incl.pl1 TAC 10/79 */ 19 2 19 3 19 4 /****^ HISTORY COMMENTS: 19 5* 1) change(86-12-11,Brunelle), approve(87-07-13,MCR7741), 19 6* audit(87-04-19,GDixon), install(87-08-04,MR12.1-1056): 19 7* Add incl for abs_attributes.incl.pl1 to automatically include absentee 19 8* attribute switches. 19 9* 2) change(87-04-19,GDixon), approve(87-07-13,MCR7741), 19 10* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 19 11* A) Add USER_ATTRIBUTE_NAMES arrays. attribute_names.incl.pl1 can thereby 19 12* be deleted. 19 13* B) Add constants identifying attributes that can be changed by user at 19 14* login, etc. 19 15* END HISTORY COMMENTS */ 19 16 19 17 19 18 /* Modified 82-01-03 E. N. Kittlitz. to declare a complete level-1 structure */ 19 19 19 20 /* format: style4 */ 19 21 dcl 1 user_attributes aligned based, /* the user user_attributes */ 19 22 (2 administrator bit (1), /* 1 system administrator privileges */ 19 23 2 primary_line bit (1), /* 2 user has primary-line privileges */ 19 24 2 nobump bit (1), /* 2 user cannot be bumped */ 19 25 2 guaranteed_login bit (1), /* 4 user has guaranteed login privileges */ 19 26 2 anonymous bit (1), /* 5 used only in SAT. project may have anon.users */ 19 27 2 nopreempt bit (1), /* 6 used only in PDT. user not preemptable by others 19 28* . of same project (distinct from "nobump") */ 19 29 2 nolist bit (1), /* 7 don't list user on "who" */ 19 30 2 dialok bit (1), /* 8 user may have multiple consoles */ 19 31 2 multip bit (1), /* 9 user may have several processes */ 19 32 2 bumping bit (1), /* 10 in SAT. Can users in project bump each other? */ 19 33 2 brief bit (1), /* 11 no login or logout message */ 19 34 2 vinitproc bit (1), /* 12 user may change initial procedure */ 19 35 2 vhomedir bit (1), /* 13 user may change homedir */ 19 36 2 nostartup bit (1), /* 14 user does not want start_up.ec */ 19 37 2 sb_ok bit (1), /* 15 user may be standby */ 19 38 2 pm_ok bit (1), /* 16 user may be primary */ 19 39 2 eo_ok bit (1), /* 17 user may be edit_only */ 19 40 2 daemon bit (1), /* 18 user may login as daemon */ 19 41 2 vdim bit (1), /* 19 * OBSOLETE * user may change outer mdle */ 19 42 2 no_warning bit (1), /* 20 no warning message */ 19 43 2 igroup bit (1), /* 21 in SAT: this project may give its users individual groups 19 44* . in PDT: this user has an individual load control group */ 19 45 2 save_pdir bit (1), /* 22 save pdir after fatal process error */ 19 46 2 disconnect_ok bit (1), /* 23 ok to save user's disconnected processes */ 19 47 2 save_on_disconnect bit (1), /* 24 save them unless -nosave login arg is given */ 19 48 2 pad bit (12)) unaligned; 19 49 19 50 dcl USER_ATTRIBUTE_NAMES (0:24) char (20) int static options (constant) init 19 51 ("none", /* 0 */ 19 52 "administrator", /* 1 */ 19 53 "primary_line", /* 2 */ 19 54 "nobump", /* 3 */ 19 55 "guaranteed_login", /* 4 */ 19 56 "anonymous", /* 5 */ 19 57 "nopreempt", /* 6 */ 19 58 "nolist", /* 7 */ 19 59 "dialok", /* 8 */ 19 60 "multip", /* 9 */ 19 61 "bumping", /* 10 */ 19 62 "brief", /* 11 */ 19 63 "vinitproc", /* 12 */ 19 64 "vhomedir", /* 13 */ 19 65 "nostartup", /* 14 */ 19 66 "no_secondary", /* 15 */ 19 67 "no_prime", /* 16 */ 19 68 "no_eo", /* 17 */ 19 69 "daemon", /* 18 */ 19 70 "", /* 19 vdim OBSOLETE */ 19 71 "no_warning", /* 20 */ 19 72 "igroup", /* 21 */ 19 73 "save_pdir", /* 22 */ 19 74 "disconnect_ok", /* 23 */ 19 75 "save_on_disconnect"); /* 24 */ 19 76 19 77 dcl ALT_USER_ATTRIBUTE_NAMES (0:24) char (20) int static options (constant) init 19 78 ("null", /* 0 */ 19 79 "admin", /* 1 */ 19 80 "", "", /* 2 - 3 */ 19 81 "guar", /* 4 */ 19 82 "anon", /* 5 */ 19 83 "", "", /* 6 - 7 */ 19 84 "dial", /* 8 */ 19 85 "multi_login", /* 9 */ 19 86 "preempting", /* 10 */ 19 87 "", /* 11 */ 19 88 "v_process_overseer", /* 12 */ 19 89 "v_home_dir", /* 13 */ 19 90 "no_start_up", /* 14 */ 19 91 "no_sec", /* 15 */ 19 92 "no_primary", /* 16 */ 19 93 "no_edit_only", /* 17 */ 19 94 "op_login", /* 18 */ 19 95 "", /* 19 */ 19 96 "nowarn", /* 20 */ 19 97 "", "", "", /* 21 - 23 */ 19 98 "save"); /* 24 */ 19 99 19 100 dcl USER_ATTRIBUTES_always_allowed bit (36) aligned int static 19 101 options(constant) init("000000000010000000010000000000000000"b); 19 102 /* SAT/PDT attributes not needed for user to give (brief, no_warning) */ 19 103 19 104 dcl USER_ATTRIBUTES_default_in_pdt bit (36) aligned int static 19 105 options(constant) init("000000000010000000010000000000000000"b); 19 106 /* PDT value for (brief, no_warning) is default */ 19 107 19 108 dcl USER_ATTRIBUTES_settable_by_user bit (36) aligned int static 19 109 options(constant) init("000100000110010000010000000000000000"b); 19 110 /* user MIGHT set (bump, ns, brief, guar, no_warning) */ 19 111 20 1 /* BEGIN INCLUDE FILE ... user_abs_attributes.incl.pl1 */ 20 2 20 3 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 20 4 /* */ 20 5 /* This include file describes the attributes of an absentee job. It is */ 20 6 /* used by user_table_entry.incl.pl1, abs_message_format.incl.pl1 */ 20 7 /* and PIT.incl.pl1. */ 20 8 /* */ 20 9 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 20 10 20 11 /****^ HISTORY COMMENTS: 20 12* 1) change(86-12-08,GDixon), approve(87-07-13,MCR7741), 20 13* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 20 14* Separated abs_attributes from the request structure 20 15* (abs_message_format.incl.pl1) so that the identical structure could be 20 16* used in the ute structure (user_table_entry.incl.pl1). 20 17* 2) change(87-04-19,GDixon), approve(87-07-13,MCR7741), 20 18* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 20 19* Added ABS_ATTRIBUTE_NAMES array. 20 20* 3) change(87-11-11,Parisek), approve(88-02-11,MCR7849), 20 21* audit(88-03-22,Lippard), install(88-07-13,MR12.2-1047): 20 22* Added the no_start_up flag. SCP6367 20 23* END HISTORY COMMENTS */ 20 24 20 25 dcl 1 user_abs_attributes aligned based, 20 26 2 restartable bit (1) unaligned, /* 1 if request may be started over from the beginning */ 20 27 2 user_deferred_until_time bit (1) unaligned, /* 1 if request was specified as deferred */ 20 28 2 proxy bit (1) unaligned, /* 1 if request submitted for someone else */ 20 29 2 set_bit_cnt bit (1) unaligned, /* 1 if should set bit count after every write call */ 20 30 2 time_in_gmt bit (1) unaligned, /* 1 if deferred_time is in GMT */ 20 31 2 user_deferred_indefinitely bit (1) unaligned, /* 1 if operator is to say when to run it */ 20 32 2 secondary_ok bit (1) unaligned, /* 1 if ok to log in as secondary foreground user */ 20 33 2 truncate_absout bit (1) unaligned, /* 1 if .absout is to be truncated */ 20 34 2 restarted bit (1) unaligned, /* 1 if job is restarted */ 20 35 2 no_start_up bit (1) unaligned, /* 1 if requested -ns */ 20 36 2 attributes_pad bit (26) unaligned; 20 37 20 38 dcl ABS_ATTRIBUTE_NAMES (10) char (28) varying int static options(constant) init( 20 39 "restartable", 20 40 "user_deferred_until_time", 20 41 "proxy", 20 42 "set_bit_cnt", 20 43 "time_in_gmt", 20 44 "user_deferred_indefinitely", 20 45 "secondary_ok", 20 46 "truncate_absout", 20 47 "restarted", 20 48 "no_start_up"); 20 49 20 50 /* END INCLUDE FILE ... user_abs_attributes.incl.pl1 */ 20 51 19 112 19 113 19 114 /* END INCLUDE FILE ... user_attributes.incl.pl1 */ 858 859 /* BEGIN INCLUDE FILE ... user_table_entry.incl.pl1 */ 21 2 21 3 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 21 4 /* */ 21 5 /* This include file requires that the user include */ 21 6 /* user_attributes.incl.pl1 as well. It also includes */ 21 7 /* abs_attributes.incl.pl1 itself. */ 21 8 /* */ 21 9 /* This include file must be included to use absentee_user_table.incl.pl1, */ 21 10 /* answer_table.incl.pl1, and daemon_user_table.incl.pl1. */ 21 11 /* */ 21 12 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 21 13 21 14 /****^ HISTORY COMMENTS: 21 15* 1) change(81-12-21,Gilcrease), approve(86-03-27,MCR7370), 21 16* audit(86-06-23,Lippard), install(86-06-30,MR12.0-1082): 21 17* This comment for hcom. 21 18* 81-12-21 E. N. Kittlitz. derived from abs_user_tab.incl.pl1, 21 19* anstbl.incl.pl1, and dutbl.incl.pl1. 21 20* 82-01-02 E. N. Kittlitz. user_attributes.incl.pl1 changes 21 21* 84-04-04 BIM added privileged_dial_server and dial_server_ring 21 22* 84-07-12 BIM added min_process_authorization 21 23* 84-12-31 Keith Loepere added pdir_dir_quota 21 24* 85-01-16 by E. Swenson to add ute.session_uid 21 25* 2) change(85-11-16,Swenson), approve(87-07-13,MCR7737), 21 26* audit(87-04-14,GDixon), install(87-08-04,MR12.1-1056): 21 27* Added fields for DSA login server support. 21 28* 3) change(86-03-27,Gilcrease), approve(86-03-27,MCR7370), 21 29* audit(86-06-23,Lippard), install(86-06-30,MR12.0-1082): 21 30* Add truncate_absout and restarted bit for -truncate absout, SCP6297. 21 31* 4) change(86-04-09,Herbst), approve(87-07-13,MCR7697), 21 32* audit(87-04-14,GDixon), install(87-08-04,MR12.1-1056): 21 33* Added disconnection_rel_minutes. 21 34* 5) change(86-12-08,GDixon), approve(87-07-13,MCR7741), 21 35* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 21 36* Changed structure under ute.abs_attributes to use like structure in 21 37* abs_attributes.incl.pl1. This allows the same attributes to be used 21 38* in abs_message_format.incl.pl1 and pit.incl.pl1 as well as this include 21 39* file. 21 40* 6) change(87-04-14,GDixon), approve(87-07-13,MCR7741), 21 41* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 21 42* Move constants for ute.pw_flags.mask_ctl from answer_table.incl.pl1. 21 43* 7) change(87-04-16,GDixon), approve(87-07-13,MCR7741), 21 44* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 21 45* A) Global reorganization to locate things by type of data. 21 46* B) Eliminate ute.uflags.logged_in. 21 47* 8) change(87-05-10,GDixon), approve(87-07-13,MCR7741), 21 48* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 21 49* A) Reduced overlength person and project fields to proper length. 21 50* B) Adjusted dialed-console section to begin on even word boundary. 21 51* 9) change(87-05-13,GDixon), approve(87-07-13,MCR7741), 21 52* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 21 53* Add ute.line_type. 21 54* 10) change(87-11-19,Parisek), approve(88-02-11,MCR7849), 21 55* audit(88-02-23,Lippard), install(88-07-13,MR12.2-1047): 21 56* Added the lowest_ring element. Used the upper half of ute.highest_ring 21 57* for the storage. SCP6367 21 58* END HISTORY COMMENTS */ 21 59 21 60 /* format: style4 */ 21 61 21 62 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 21 63 /* */ 21 64 /* Each of the named sections below defines a type of data. Typing comes */ 21 65 /* from data associated with the ute entry itself, with the person, with */ 21 66 /* login argument data, from the main user of the data (eg, dialup_, */ 21 67 /* load_ctl_, login server). Each section begins on a double-word boundary */ 21 68 /* and is an even number of words long. The total structure is 300 decimal */ 21 69 /* words long. */ 21 70 /* */ 21 71 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 21 72 21 73 21 74 dcl UTE_version_4 fixed bin internal static options (constant) init (4); 21 75 21 76 dcl utep pointer automatic init (null); 21 77 21 78 dcl 1 ute based (utep) aligned, /* individual entry in one of the user control tables */ 21 79 21 80 /* Variables which give state of this entry */ 21 81 2 active fixed bin, /* state of entry. 0=>free. see dialup_values.incl.pl1 */ 21 82 2 process_type fixed bin, /* 1=interactive, 2=absentee, 3=daemon */ 21 83 2 ute_index fixed bin, /* index of ute in (anstbl autbl dutbl).entry array */ 21 84 2 next_free fixed bin, /* points to previous free entry */ 21 85 21 86 /* Information user gave about person_id associated with this entry. */ 21 87 2 person char (24) unal, /* user's name */ 21 88 2 project char (12) unal, /* project of absentee user */ 21 89 2 tag char (1) unal, /* instance tag - someday will be generated */ 21 90 2 tag_pad bit (27) unal, 21 91 2 anonymous fixed bin, /* 1 if anonymous, otherwise 0 */ 21 92 2 login_flags, /* flags for login data */ 21 93 3 cpw bit (1) unal, /* flag for wish to change password */ 21 94 3 generate_pw bit (1) unal, /* flag meaning -generate_pw (-gpw) was used. */ 21 95 3 special_pw unal, /* dial or slave */ 21 96 4 dial_pw bit (1) unal, /* true if dial -user */ 21 97 4 slave_pw bit (1) unal, /* true if slave -user */ 21 98 3 cdp bit (1) unal, /* flag for wish to change default project */ 21 99 3 cda bit (1) unal, /* flag to change default authorization */ 21 100 3 auth_given bit (1) unal, /* flag to mean -authorization was used. */ 21 101 3 noprint bit (1) unal, /* used at logout. inhibits printing. */ 21 102 3 operator bit (1) unaligned, /* user specified -operator on login command line */ 21 103 3 pw_pad bit (25) unal, /* spare parts */ 21 104 3 mask_ctl bit (2) unal, /* bits controlling pw mask. See constants, below */ 21 105 /* Must remain last in pw_flags so it does not */ 21 106 /* appear in PW_FLAG_VALUES array below. */ 21 107 2 generated_pw char (8) unal, /* user must type this as new password */ 21 108 2 old_password char (8) unal, /* must match user's previous password (value scrambled) */ 21 109 2 process_authorization bit (72), /* access_authorization of this process */ 21 110 21 111 /* Information user gave about process associated with this entry. */ 21 112 2 outer_module char (32) unal, /* Name of console dim */ 21 113 2 home_dir char (64) unal, /* initial home directory */ 21 114 2 init_proc char (64) unal, /* name of login responder */ 21 115 2 ip_len fixed bin (17) unal, /* length of initproc string */ 21 116 2 ss_len fixed bin (17) unal, /* length of subsystem string */ 21 117 2 ur_at like user_attributes aligned, /* bits on means attributes given by user */ 21 118 2 at like user_attributes aligned, /* bits on means attribute is on */ 21 119 2 initial_ring fixed bin, /* ring process will be started in */ 21 120 2 arg_count fixed bin, /* number of arguments to absentee control segment */ 21 121 2 ln_args fixed bin, /* length of string containing arguments */ 21 122 2 arg_lengths_ptr ptr, /* pointer to array of argument lengths */ 21 123 2 args_ptr ptr, /* pointer to arguments to absentee control segment */ 21 124 21 125 /* Most of the following information is relevant only to absentee processes */ 21 126 2 input_seg char (168) unal, /* pathname of absentee control segment */ 21 127 2 output_seg char (168) unal, /* pathname of absentee output file */ 21 128 2 request_id fixed bin (71), /* time request was entered - used as uid of request */ 21 129 2 reservation_id fixed bin (71), /* nonzero if job has a resource reservation */ 21 130 2 message_id bit (72), /* message segment id assoc with absentee request */ 21 131 2 deferred_time fixed bin (71), /* time at which absentee process should be created */ 21 132 2 max_cpu_time fixed bin (35), /* maximum number of seconds this process can run */ 21 133 2 queue fixed bin, /* -1=daemon;0=interactive or foreground;>0=queue no. 21 134* (but see uflags.adjust_abs_q_no). */ 21 135 2 real_queue fixed bin, /* real queue number; ute.queue gets fudged sometimes */ 21 136 2 abs_attributes aligned like user_abs_attributes, /* include abs_attributes.incl.pl1 */ 21 137 2 abs_flags, 21 138 3 abs_run bit (1) unal, /* on if job was started by abs run command */ 21 139 3 notify bit (1) unal, /* on if user wants notification at login and logout */ 21 140 3 abs_flags_pad bit (34) unal, 21 141 2 abs_group char (8) unal, /* original group before load_ctl_ moves it to absentee group */ 21 142 2 sender char (32) unal, /* name of RJE station that job is from */ 21 143 2 proxy_person char (28) unal, /* name of user who actually entered the request, if proxy */ 21 144 2 proxy_project char (9) unal, 21 145 2 proxy_project_pad char (3) unal, 21 146 2 abs_pad fixed bin, 21 147 21 148 /* Information about process actually created */ 21 149 2 proc_id bit (36), /* process id of absentee process */ 21 150 2 session_uid fixed bin (35), /* Unique authentication session id */ 21 151 2 process_authorization_range (2) bit (72) aligned, 21 152 2 audit bit (36), /* audit flags for user */ 21 153 2 lot_size fixed bin, /* Size of linkage offset table */ 21 154 2 kst_size fixed bin, /* Size of process known segment table */ 21 155 2 cls_size fixed bin, /* Size of process combined linkage */ 21 156 2 sus_channel fixed bin (71), /* event channel on which suspended process is blocked */ 21 157 2 lowest_ring fixed bin (17) unal, /* lowest ring permitted */ 21 158 2 highest_ring fixed bin (17) unal, /* highest ring permitted */ 21 159 2 pdir_lvix fixed bin (17) unal, /* index in disk table of lv where pdir is */ 21 160 2 pdir_quota fixed bin (17) unal, /* process directory quota */ 21 161 2 pdir_dir_quota fixed bin (17) unal, /* process directory quota for dirs */ 21 162 2 pdir_pad fixed bin(17) unal, 21 163 2 process_pad fixed bin, 21 164 21 165 /* Information about primary terminal associated with this entry */ 21 166 2 tty_name char (32) unal, /* absentee=>"abs1", etc. daemon=>"bk", etc. */ 21 167 2 terminal_type char (32) unaligned, /* terminal type */ 21 168 2 line_type fixed bin, /* line type */ 21 169 2 tty_id_code char (4) unal, /* "none" for absentee */ 21 170 2 network_connection_type fixed bin, /* see net_event_message.incl.pl1 */ 21 171 2 channel ptr unal, /* points to CDT entry for user, if any */ 21 172 21 173 /* Variables useful for dialed terminals */ 21 174 2 ndialed_consoles fixed bin, /* if master, number of slaves */ 21 175 2 dial_qualifier char (22) unal, /* first argument to dial command */ 21 176 2 dial_server_ring fixed bin (3) unsigned unaligned, /* dial server intends to attach dialing in channels at this ring. */ 21 177 2 dial_server_flags, 21 178 3 registered_dial_server bit (1) unal, /* process is a registered dial server */ 21 179 3 privileged_dial_server bit (1) unal, /* "1"b -> serves range of AIM classes */ 21 180 3 dial_server_flags_pad bit (13) unal, /* fill out the word */ 21 181 2 dial_ev_chn fixed bin (71), /* if master, control event channel */ 21 182 21 183 /* Information about usage/accounting. Device usage meters are in a 21 184* separate segment, "devtab" */ 21 185 2 pdtep ptr, /* ptr to user's pdt entry, where usage meters live */ 21 186 2 cpu_this_process fixed bin (71), /* cpu used so far this process */ 21 187 2 cpu_usage fixed bin (71), /* total cpu time used in this session */ 21 188 2 mem_usage fixed bin (71), /* memory usage for previous processes in session */ 21 189 2 mem_this_process fixed bin (71), /* memory usage at last update */ 21 190 2 last_update_time fixed bin (71), /* time of last account update */ 21 191 2 session_cost float bin, /* dollar cost of session, for printing in logout messages */ 21 192 2 ndevices fixed bin, /* Count of attached devices */ 21 193 2 device_head fixed bin, /* Table index of head of device chain */ 21 194 2 device_tail fixed bin, /* Table index of tail of device chain */ 21 195 2 rs_number fixed bin (6) unsigned unal, /* rate structure number */ 21 196 2 rs_number_pad bit(30) unal, 21 197 2 usage_pad fixed bin, 21 198 21 199 /* Information for dialup_ (control variables). */ 21 200 2 event fixed bin (71), /* event associated with channel or user manager */ 21 201 2 uprojp ptr, /* ptr to user project sat entry */ 21 202 2 login_time fixed bin (71), /* time when absentee user approved by lg_ctl_ */ 21 203 2 cant_bump_until fixed bin (71), /* bump-protection clock */ 21 204 2 recent_fatal_error_time fixed bin (71), /* time of first error in the suspected loop */ 21 205 2 recent_fatal_error_count fixed bin, /* counter to detect fatal process error loops */ 21 206 2 failure_reason fixed bin, /* why login refused 1=lg_ctl, 2=act_ctl, 3=load_ctl */ 21 207 2 count fixed bin, /* counter for logins and dialups */ 21 208 2 n_processes fixed bin, /* number of processes created in this session */ 21 209 2 lock_value fixed bin, /* number of locks set for this entry */ 21 210 2 login_result fixed bin, /* 0=logged in;1=hopeless,hang him up;2=allow another attempt */ 21 211 2 login_code char (8) unal, /* login command from LOGIN line */ 21 212 2 preempted fixed bin, /* if ^= 0 user preempted (never for abs) */ 21 213 2 destroy_flag fixed bin, /* >8 when awaiting destroy */ 21 214 2 logout_type char (4) unal, /* type of logout */ 21 215 2 logout_index fixed bin, /* to save logout handler index while waiting for termsgnl */ 21 216 2 disconnection_rel_minutes fixed bin (17) unal, /* disconnected this many minutes after login_time */ 21 217 2 next_disconnected_ate_index fixed bin (17) unal, /* thread of list of user's disconnected processes */ 21 218 2 work_class fixed bin, /* work class used by priority scheduler */ 21 219 2 group char (8) unal, /* party group identifier */ 21 220 2 whotabx fixed bin, /* index of user's entry in whotab */ 21 221 21 222 2 uflags, /* Miscellaneous flags */ 21 223 3 dont_call_init_admin bit (1) unal, /* Call overseer directly */ 21 224 3 ip_given bit (1) unal, /* user gave an initproc arg on login line */ 21 225 3 ss_given bit (1) unal, /* initial_procedure contains a subsystem name */ 21 226 3 lvs_attached bit (1) unal, /* set and used by the lv_request_ procedure */ 21 227 3 send_initial_string bit (1) unal, /* initial string should be sent after login line read */ 21 228 3 adjust_abs_q_no bit (1) unal, /* this is an absentee job; user_profile.queue is NOT true Q # */ 21 229 3 foreground_secondary_ok bit (1) unal, /* ok to login foreground absentee job as secondary */ 21 230 3 foreground_job bit (1) unal, /* job was originally from foreground queue */ 21 231 3 sus_sent bit (1) unal, /* sus_ ips signal has been sent to process */ 21 232 3 suspended bit (1) unal, /* process has responded to sus_ signal */ 21 233 3 ignore_cpulimit bit (1) unal, /* process is released, but timer can't be turned off */ 21 234 3 deferral_logged bit (1) unal, /* abs job deferral has already been logged once */ 21 235 3 save_if_disconnected bit (1) unal, /* user wants process preserved across hangups */ 21 236 3 disconnected bit (1) unal, /* process is disconnected from terminal */ 21 237 3 disconnected_list bit (1) unal, /* this ate is on a list of disconnected processes */ 21 238 3 proc_create_ok bit (1) unal, /* lg_ctl_ has set the process creation variables */ 21 239 3 activity_can_unbump bit (1) unal, /* only bump pending is for inactivity */ 21 240 3 fpe_causes_logout bit (1) unal, /* "1"b means don't try to new_proc after fatal process error */ 21 241 3 user_specified_immediate bit (1) unal, /* "1"b -> don't wait around for process destruction. */ 21 242 3 uflags_pad bit (17) unal, 21 243 21 244 /* Information used by load_ctl_ for the process */ 21 245 2 user_weight fixed bin, /* usually 10 - used in load control */ 21 246 2 standby_line fixed bin, /* 0=user has primary line, 1=standby user */ 21 247 2 bump_grace fixed bin (71), /* bump grace in microseconds */ 21 248 21 249 21 250 /* Information for login server */ 21 251 2 login_server_info, 21 252 3 our_handle bit (72) aligned, /* how LS refers to us. */ 21 253 3 his_handle bit (72) aligned, /* how we talk to LS */ 21 254 3 termination_event_channel fixed bin (71), /* for process termination notifications to the LS */ 21 255 3 response_event_channel fixed bin (71), /* for other communications with the LS */ 21 256 3 process_id bit (36) aligned, /* process_id of login server */ 21 257 2 ls_pad (5) fixed bin; /* pad to 300 decimal words */ 21 258 21 259 /* values for ute.process_type */ 21 260 21 261 dcl (PT_INTERACTIVE initial (1), 21 262 PT_ABSENTEE initial (2), 21 263 PT_DAEMON initial (3)) fixed bin internal static options (constant); 21 264 21 265 dcl PROCESS_TYPE_NAMES (0:3) char(12) varying int static options(constant) init( 21 266 "INVALID-TYPE", 21 267 "interactive", 21 268 "absentee", 21 269 "daemon"); 21 270 21 271 dcl TABLE_NAMES (0:3) char(20) int static options(constant) init( 21 272 "UNKNOWN-TABLE", 21 273 "answer_table", 21 274 "absentee_user_table", 21 275 "daemon_user_table"); 21 276 21 277 21 278 /* values for ute.pw_flags.mask_ctl */ 21 279 21 280 dcl (DO_MASK init ("00"b), 21 281 DONT_MASK init ("01"b), 21 282 DERIVE_MASK init ("10"b)) bit (2) internal static options (constant); 21 283 21 284 dcl MASK_CTL_NAMES (0:3) char(12) varying int static options(constant) init( 21 285 "do_mask", "dont_mask", "derive_mask", ""); 21 286 21 287 21 288 /* names for ute.pw_flags */ 21 289 21 290 dcl PW_FLAG_NAMES (9) char (12) varying int static options(constant) init( 21 291 "cpw", 21 292 "generate_pw", 21 293 "dial_pw", 21 294 "slave_pw", 21 295 "cdp", 21 296 "cda", 21 297 "auth_given", 21 298 "noprint", 21 299 "operator"); 21 300 21 301 /* names for ute.uflags */ 21 302 21 303 dcl UFLAG_NAMES (19) char (24) varying int static options (constant) init ( 21 304 "dont_call_init_admin", 21 305 "ip_given", 21 306 "ss_given", 21 307 "lvs_attached", 21 308 "send_initial_string", 21 309 "adjust_abs_q_no", 21 310 "foreground_secondary_ok", 21 311 "foreground_job", 21 312 "sus_sent", 21 313 "suspended", 21 314 "ignore_cpulimit", 21 315 "deferral_logged", 21 316 "save_if_disconnected", 21 317 "disconnected", 21 318 "disconnected_list", 21 319 "proc_create_ok", 21 320 "activity_can_unbump", 21 321 "fpe_causes_logout", 21 322 "user_specified_immediate"); 21 323 21 324 /* names for ute.abs_flags */ 21 325 21 326 dcl ABS_FLAG_NAMES (2) char (8) varying int static options (constant) init ( 21 327 "abs_run", 21 328 "notify"); 21 329 21 330 /* names of ute.dial_server_flags */ 21 331 21 332 dcl DIAL_SERVER_FLAG_NAMES (2) char (12) varying int static options (constant) init ( 21 333 "registered", 21 334 "privileged"); 21 335 21 336 /* values of ute.login_result */ 21 337 21 338 dcl LOGIN_RESULT_VALUES (0:2) char(24) varying int static options(constant) init( 21 339 "logged in", 21 340 "login failed, hangup", 21 341 "login failed, try again"); 21 342 21 343 /* END INCLUDE FILE ... user_table_entry.incl.pl1 */ 859 860 /* BEGIN INCLUDE FILE ... user_table_header.incl.pl1 */ 22 2 22 3 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 22 4 /* */ 22 5 /* This include file declares the header shared by the answer_table, */ 22 6 /* absentee_user_table and daemon_user_table include files. */ 22 7 /* */ 22 8 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 22 9 22 10 /****^ HISTORY COMMENTS: 22 11* 1) change(87-04-26,GDixon), approve(87-07-13,MCR7741), 22 12* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 22 13* Initial coding. 22 14* END HISTORY COMMENTS */ 22 15 22 16 dcl 1 ut_header aligned based, /* header shared by all user control tables. */ 22 17 2 header_version fixed bin, /* version of the header (3) */ 22 18 2 entry_version fixed bin, /* version of user table entries */ 22 19 2 user_table_type fixed bin, /* 1 interactive, 2 absentee, 3 daemon */ 22 20 2 header_length fixed bin, /* length of the header */ 22 21 2 max_size fixed bin, /* max number of entries in this table */ 22 22 2 current_size fixed bin, /* actual size of table (in entries) */ 22 23 2 number_free fixed bin, /* number of free entries in the table. */ 22 24 2 first_free fixed bin, /* index of first entry in the free list. */ 22 25 2 as_procid bit (36), /* process ID of user table manager process */ 22 26 2 ut_header_pad fixed bin; 22 27 22 28 /* END INCLUDE FILE ... user_table_header.incl.pl1 */ 860 861 /* BEGIN INCLUDE FILE ... wtcb.incl.pl1 */ 23 2 23 3 23 4 /****^ HISTORY COMMENTS: 23 5* 1) change(88-06-15,Berno), approve(88-07-13,MCR7928), 23 6* audit(88-06-15,Parisek), install(88-07-19,MR12.2-1061): 23 7* Add data needed for the uncp multiplexer (DSA gateway) interface 23 8* implementation. 23 9* END HISTORY COMMENTS */ 23 10 23 11 23 12 /* 23 13* Moved from tty_buf.incl.pl1 Aug 78 by J. Nicholls plus changes for ring 0 demultiplexing 23 14* Error code added Nov. 1982 by Robert Coren 23 15* Modified December 1984 by Robert Coren to invent "more_flags" structure and 23 16* its first flag, line_status_disabled 23 17* Reported modifications for the DN7100 interim in August 85. 23 18**/ 23 19 23 20 dcl wtcbp ptr; /* pointer to head of wtcb */ 23 21 23 22 dcl 1 wtcb based (wtcbp) aligned, /* wired terminal control block */ 23 23 2 hevent fixed bin (71) aligned, /* event channel for hangup/dialup signal */ 23 24 2 event fixed bin (71) aligned, /* users event channel, for uproc */ 23 25 23 26 2 line_status bit (72) aligned, /* actual line status sent by fnp */ 23 27 23 28 2 tcb_ptr ptr unal, /* pointer to tcb */ 23 29 2 pad1 fixed bin (35), /* formerly time dialedup */ 23 30 23 31 2 hproc bit (36) aligned, /* boss processid */ 23 32 2 uproc bit (36) aligned, /* tty user processid */ 23 33 23 34 2 baud_rate fixed bin (18) unal uns, /* baud rate of this line */ 23 35 2 line_type fixed bin (18) unal uns, /* line type for line protocol */ 23 36 23 37 2 flags unaligned, 23 38 3 listen bit (1) unaligned, /* if on, listen for dialups */ 23 39 3 dialed bit (1) unaligned, /* if on, line is dialed up */ 23 40 3 send_output bit (1) unaligned, /* on if DN355 requested more output */ 23 41 23 42 3 qenable bit (1) unaligned, /* if on, signal quits */ 23 43 3 qflag bit (1) unaligned, /* on after quit, causes writes to be ignored */ 23 44 3 end_frame bit (1) unaligned, /* write chain fills ards frame */ 23 45 23 46 3 notify_reqd bit (1) unaligned, /* if on, do notify after unlocking lock */ 23 47 3 work_reqd bit (1) unaligned, /* if on, call dn355 before returning */ 23 48 3 dialing bit (1) unaligned, /* if on, 355 is dialing a phone number */ 23 49 23 50 3 dial_status_valid bit (1) unaligned, /* if on, dial_status_code is valid */ 23 51 3 input_available bit (1) unaligned, /* input for this device is waiting in wired space */ 23 52 3 tcb_initialized bit (1) unaligned, /* if on, tcb has been initialized */ 23 53 23 54 3 wflag bit (1) unaligned, /* process blocked on output */ 23 55 3 rflag bit (1) unaligned, /* process blocked on input */ 23 56 3 wru bit (1) unaligned, /* reading answerback */ 23 57 23 58 3 hndlquit bit (1) unaligned, /* on if in hndlquit mode */ 23 59 3 count_lines bit (1) unaligned, /* on if tcb.linemax > 0 */ 23 60 3 line_status_present bit (1) unaligned, /* fnp has sent line status */ 23 61 23 62 3 sync_line bit (1) unaligned, /* channel is synchronous line type */ 23 63 3 breakall bit (1) unaligned, /* channel is in breakall mode */ 23 64 3 scroll bit (1) unaligned, /* channel is in scroll mode */ 23 65 23 66 3 negotiating_echo bit (1) unaligned, /* ring zero to echo chars. */ 23 67 3 wake_tbl bit (1) unaligned, /* on if in wake_tbl mode */ 23 68 3 allow_wakeup bit (1) unaligned, /* on to allow input wakeup in wake_tbl mode */ 23 69 23 70 3 receive_mode_device bit (1) unaligned, /* device must be told to enter receive mode */ 23 71 3 mark_set bit (1) unal, /* write_with_mark call outstanding */ 23 72 3 masked bit (1) unal, /* channel masked by FNP */ 23 73 23 74 2 dial_status_code fixed bin (8) unaligned, /* code returned by 355 after dialing a phone number */ 23 75 23 76 2 fblock fixed bin (17) unaligned, /* oldest read pointer, block */ 23 77 2 lblock fixed bin (17) unaligned, /* newest read block */ 23 78 23 79 2 fchar fixed bin (9) unsigned unaligned, /* first block char index */ 23 80 2 actline fixed bin (9) unsigned unaligned, /* line number of current line */ 23 81 2 actcol fixed bin (9) unsigned unaligned, /* tty column position */ 23 82 2 nramsgs fixed bin (9) unsigned unaligned, /* current number of read-ahead msgs */ 23 83 23 84 2 write_first fixed bin (17) unaligned, /* first write block */ 23 85 2 write_last fixed bin (17) unaligned, /* last write block */ 23 86 2 write_cnt fixed bin (17) unaligned, /* count of chars in write chain */ 23 87 2 white_col fixed bin (17) unaligned, /* column position resulting from trailing white space */ 23 88 23 89 2 max_buf_size fixed bin (9) unal uns, /* maximum-size buffer to be allocated for this channel */ 23 90 2 buffer_pad fixed bin (9) unal uns, /* amount of pad to be left in output buffers */ 23 91 2 devx fixed bin (17) unaligned, /* index into lct of channel's entry */ 23 92 2 echdp bit (18) unaligned, /* echo negotiation data ptr */ 23 93 2 waketp bit (18) unaligned, /* wakeup table offset */ 23 94 2 prompt_len fixed bin (8) unaligned, /* number of chars in prompt string */ 23 95 2 prompt char (3) unaligned, /* text of prompt message */ 23 96 2 line_delimiter char (1) unal, /* line delimiter for tty_read parse */ 23 97 2 more_flags unaligned, /* in addition to flags (above) */ 23 98 3 line_status_disabled bit (1) unaligned, /* "1"b => don't relay line_status interrupts */ 23 99 2 send_turn bit (1) unal, /* For the Dn7100 interim */ 23 100 2 pad bit (25) unal, 23 101 2 error_code fixed bin (35), /* error code returned by channel_manager to tty_interrupt */ 23 102 2 pad2 bit (36); 23 103 23 104 /* Ends on doubleword boundary */ 23 105 23 106 /* END INCLUDE FILE ... wtcb.incl.pl1 */ 861 862 863 end tty_dump; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 10/25/89 1000.0 tty_dump.pl1 >special_ldd>install>MR12.3-1100>tty_dump.pl1 843 1 08/06/87 0913.0 answer_table.incl.pl1 >ldd>include>answer_table.incl.pl1 844 2 09/09/75 2007.3 author_dcl.incl.pl1 >ldd>include>author_dcl.incl.pl1 2-10 3 04/21/82 1211.8 author.incl.pl1 >ldd>include>author.incl.pl1 845 4 08/06/87 0913.0 cdt.incl.pl1 >ldd>include>cdt.incl.pl1 4-314 5 07/21/88 2036.0 fnp_types.incl.pl1 >ldd>include>fnp_types.incl.pl1 846 6 08/06/87 0913.4 dialup_values.incl.pl1 >ldd>include>dialup_values.incl.pl1 847 7 10/25/89 0959.9 dn355_data.incl.pl1 >special_ldd>install>MR12.3-1100>dn355_data.incl.pl1 848 8 11/08/82 1005.8 lct.incl.pl1 >ldd>include>lct.incl.pl1 849 9 08/06/87 0913.4 line_types.incl.pl1 >ldd>include>line_types.incl.pl1 850 10 07/10/86 2015.0 mcs_echo_neg_sys.incl.pl1 >ldd>include>mcs_echo_neg_sys.incl.pl1 851 11 10/25/89 0959.9 multiplexer_types.incl.pl1 >special_ldd>install>MR12.3-1100>multiplexer_types.incl.pl1 852 12 07/21/88 2036.0 pcb.incl.pl1 >ldd>include>pcb.incl.pl1 853 13 06/18/81 0900.8 tcb.incl.pl1 >ldd>include>tcb.incl.pl1 854 14 01/06/85 1422.1 tty_buf.incl.pl1 >ldd>include>tty_buf.incl.pl1 14-152 15 01/06/85 1422.1 hc_fast_lock.incl.pl1 >ldd>include>hc_fast_lock.incl.pl1 855 16 07/21/88 2036.0 tty_buffer_block.incl.pl1 >ldd>include>tty_buffer_block.incl.pl1 856 17 03/19/81 1206.8 tty_can_types.incl.pl1 >ldd>include>tty_can_types.incl.pl1 857 18 07/21/88 2036.0 tty_mode_names.incl.pl1 >ldd>include>tty_mode_names.incl.pl1 858 19 08/06/87 0913.6 user_attributes.incl.pl1 >ldd>include>user_attributes.incl.pl1 19-112 20 07/14/88 2015.0 user_abs_attributes.incl.pl1 >ldd>include>user_abs_attributes.incl.pl1 859 21 07/14/88 2015.0 user_table_entry.incl.pl1 >ldd>include>user_table_entry.incl.pl1 860 22 08/06/87 0913.6 user_table_header.incl.pl1 >ldd>include>user_table_header.incl.pl1 861 23 07/21/88 2036.0 wtcb.incl.pl1 >ldd>include>wtcb.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. CAN_TYPE_NAMES 000133 constant char(32) initial array dcl 17-8 ref 680 680 682 MCS_MPX constant fixed bin(17,0) initial dcl 11-16 ref 491 MODE_NAME 000033 constant char(8) initial array packed unaligned dcl 18-24 ref 674 674 TTY_DIALED constant fixed bin(17,0) initial dcl 6-64 ref 386 UNCP_MPX constant fixed bin(17,0) initial dcl 11-16 ref 491 WORDS_IN_ECHO_BREAK_TABLE constant fixed bin(17,0) initial dcl 10-17 ref 728 actcol 15(18) based fixed bin(9,0) level 2 packed packed unsigned unaligned dcl 23-22 set ref 638* actline 15(09) based fixed bin(9,0) level 2 packed packed unsigned unaligned dcl 23-22 set ref 638* actshift 30(34) based bit(2) level 2 packed packed unaligned dcl 13-20 set ref 690* 690 addr builtin function dcl 98 ref 385 436 449 629 629 712 728 748 757 all_sw 000142 automatic bit(1) packed unaligned dcl 67 set ref 138* 206* 451 allow_wakeup 13(23) based bit(1) level 3 packed packed unaligned dcl 23-22 ref 605 ansp 000240 automatic pointer initial dcl 1-53 set ref 297* 377* 378 390 415 415* 1-53* 303 303* areap 000136 automatic pointer dcl 65 set ref 320* 325* 342 499* 662 arg based char packed unaligned dcl 63 set ref 151 151 155* 162* 168 172 176* 183* 189 195* 200 200 203 203 206 206 209 209 209 212 215 215 215 221 227 233 236 242 248 250* 256* 262 266* argl 000124 automatic fixed bin(17,0) dcl 62 set ref 143* 151 151 155 155 162 162 165* 168 172 176 176 183 183 186* 189 195 195 200 200 203 203 206 206 209 209 209 212 215 215 215 221 227 233 236 242 248 250 250 256 256 262 266 266 argp 000122 automatic pointer dcl 61 set ref 143* 151 151 155 162 165* 168 172 176 183 186* 189 195 200 200 203 203 206 206 209 209 209 212 215 215 215 221 227 233 236 242 248 250 256 262 266 ascii 0(04) 000021 internal static bit(1) level 2 packed packed unaligned dcl 76 set ref 217* 224* 230* 293 author based structure level 2 dcl 2-9 author_dcl based structure level 1 dcl 2-9 awaiting_start_sync 7(07) based bit(1) level 2 packed packed unaligned dcl 10-19 set ref 724* awaiting_stop_sync 7(08) based bit(1) level 2 packed packed unaligned dcl 10-19 set ref 724* baud_rate 2 based fixed bin(17,0) level 2 in structure "pcb" packed packed unaligned dcl 12-27 in procedure "td" set ref 759* baud_rate 12 based fixed bin(18,0) level 2 in structure "wtcb" packed packed unsigned unaligned dcl 23-22 in procedure "td" set ref 562* bin builtin function dcl 98 ref 520 520 527 527 527 527 532 532 562 562 663 663 690 721 721 759 759 793 800 801 801 block_acknowledge 30(06) based bit(1) level 3 packed packed unaligned dcl 13-20 set ref 686* 701* 705* blockp 000272 automatic pointer dcl 16-19 set ref 799* 800 801 801 801 801 801 803* 805 borig 2 based bit(18) level 2 dcl 14-35 ref 793 break based bit(1) array level 2 in structure "echo_data" packed packed unaligned dcl 10-19 in procedure "td" set ref 728 break 0(20) based bit(1) level 3 in structure "buffer" packed packed unaligned dcl 16-28 in procedure "td" set ref 801* break_char_pending 30(04) based bit(1) level 3 packed packed unaligned dcl 13-20 set ref 686* break_table_words based bit(36) array dcl 548 set ref 728* breakall 13(19) based bit(1) level 3 packed packed unaligned dcl 23-22 ref 599 breakall_enabled 30 based bit(1) level 3 in structure "tcb" packed packed unaligned dcl 13-20 in procedure "td" set ref 686* breakall_enabled 4(07) based bit(1) level 3 in structure "pcb" packed packed unaligned dcl 12-27 in procedure "td" set ref 763* brief_sw 000141 automatic bit(1) packed unaligned dcl 67 set ref 138* 200* 203* 218* 224* 230* 233* 239* 245* 499* 803 825* bsize 000531 automatic fixed bin(18,0) dcl 785 set ref 800* 801* 803* buffer based structure level 1 dcl 16-28 buffer_pad 20(09) based fixed bin(9,0) level 2 packed packed unsigned unaligned dcl 23-22 set ref 638* can_type 52 based fixed bin(9,0) level 2 packed packed unsigned unaligned dcl 13-20 ref 680 680 682 cdt based structure level 1 dcl 4-44 cdt_entry 1520 based structure array level 2 dcl 4-44 set ref 385 cdte based structure level 1 dcl 4-72 cdtep 000244 automatic pointer dcl 4-41 set ref 385* 386 388 390 395 402 cdtp 000242 automatic pointer dcl 4-41 set ref 297* 305 305* 371* 372 384 385 418 418* channel_desc based structure level 2 packed packed unaligned dcl 12-27 channel_threads based structure level 1 dcl 4-249 channel_type 2 based fixed bin(8,0) level 2 packed packed unaligned dcl 8-20 set ref 469 469 471* 488 491 491 495 521 521* chars 24(09) based char(3) level 3 in structure "tcb" packed packed unaligned dcl 13-20 in procedure "td" ref 695 695 chars 26(09) based char(3) level 3 in structure "tcb" packed packed unaligned dcl 13-20 in procedure "td" ref 701 701 chars 25(09) based char(3) level 3 in structure "tcb" packed packed unaligned dcl 13-20 in procedure "td" ref 698 698 chars 27(09) based char(3) level 3 in structure "tcb" packed packed unaligned dcl 13-20 in procedure "td" ref 705 705 chars_echoed 11 based fixed bin(9,0) level 2 packed packed unsigned unaligned dcl 10-19 set ref 722* check_star_name_$entry 000060 constant entry external dcl 117 ref 192 263 childs_devx 000114 automatic fixed bin(17,0) dcl 53 set ref 446* 478 504 chname parameter char packed unaligned dcl 782 set ref 779 791* chst parameter fixed bin(17,0) dcl 782 ref 779 787 cleanup 000232 stack reference condition dcl 121 ref 299 code 000116 automatic fixed bin(35,0) dcl 54 set ref 125* 126 128* 143* 144 146* 165* 166 186* 187 192* 193 193 193 195* 263* 264 264 264 266* 311* 312 314* 325* 326 328* 329 331* 332 334* 354* 355 371* 374* 377* 380* 395* 396 399* 400 424* 496* 497 497* 624* 625 codeptr builtin function dcl 98 ref 496 496 colmax 21 based fixed bin(8,0) level 2 packed packed unaligned dcl 13-20 set ref 690* com_err_ 000050 constant entry external dcl 111 ref 128 146 155 162 176 183 195 250 256 266 274 282 288 314 334 365 374 380 471 497 com_err_$suppress_name 000052 constant entry external dcl 111 ref 134 convert_status_code_ 000064 constant entry external dcl 119 ref 646 converted 0(19) based bit(1) level 3 packed packed unaligned dcl 16-28 set ref 801* copied_meters_ready 4(09) based bit(1) level 3 packed packed unaligned dcl 12-27 set ref 763* copy_erf_seg_$name 000032 constant entry external dcl 104 ref 325 328 331 count 24 based fixed bin(9,0) level 3 in structure "tcb" packed packed unsigned unaligned dcl 13-20 in procedure "td" ref 695 695 695 count 26 based fixed bin(9,0) level 3 in structure "tcb" packed packed unsigned unaligned dcl 13-20 in procedure "td" ref 701 701 701 count 25 based fixed bin(9,0) level 3 in structure "tcb" packed packed unsigned unaligned dcl 13-20 in procedure "td" ref 698 698 698 count 27 based fixed bin(9,0) level 3 in structure "tcb" packed packed unsigned unaligned dcl 13-20 in procedure "td" ref 705 705 705 count_lines 13(16) based bit(1) level 3 packed packed unaligned dcl 23-22 ref 595 cu_$arg_count 000024 constant entry external dcl 101 ref 125 cu_$arg_ptr 000026 constant entry external dcl 102 ref 143 165 186 cumulative_meters 32 based structure level 2 dcl 13-20 current_size 36 based fixed bin(17,0) level 2 dcl 4-44 ref 384 cv_entry_ 000030 constant entry external dcl 103 ref 496 data_base_ptr 1 based pointer level 2 packed packed unaligned dcl 8-20 ref 482 482 499 499 530 532 532 560 datanet_info based structure level 1 dcl 7-52 default_table 3 based fixed bin(17,0) array level 2 packed packed unaligned dcl 553 set ref 714* devx 000113 automatic fixed bin(17,0) dcl 53 in procedure "td" set ref 359* 402* 436 439 446 448* 449 449 451* 471 471* 476 484 502 517 520 520* 534 562 562* 656 747 devx based fixed bin(17,0) level 3 in structure "pcb" packed packed unaligned dcl 12-27 in procedure "td" set ref 759 759* devx 20(18) based fixed bin(17,0) level 2 in structure "wtcb" packed packed unaligned dcl 23-22 in procedure "td" set ref 656 656* dial_status_code 13(27) based fixed bin(8,0) level 2 packed packed unaligned dcl 23-22 set ref 638* dial_status_valid 13(09) based bit(1) level 3 packed packed unaligned dcl 23-22 set ref 585 638* dialed 4(01) based bit(1) level 3 in structure "pcb" packed packed unaligned dcl 12-27 in procedure "td" set ref 763* dialed 13(01) based bit(1) level 3 in structure "wtcb" packed packed unaligned dcl 23-22 in procedure "td" ref 569 dialed_to_procid 112 based bit(36) level 2 dcl 4-72 set ref 395* dialing 13(08) based bit(1) level 3 packed packed unaligned dcl 23-22 ref 583 dn355_no 000520 automatic fixed bin(17,0) dcl 744 set ref 747* 748 dont_count_next 30(01) based bit(1) level 3 packed packed unaligned dcl 13-20 set ref 686* ds_format 000021 internal static structure level 1 dcl 76 set ref 139* 803 803 840* dump_segment_ 000034 constant entry external dcl 105 ref 803 ebcdic8 0(07) 000021 internal static bit(1) level 2 packed packed unaligned dcl 76 set ref 218* 223* 230* 293 ebcdic9 0(06) 000021 internal static bit(1) level 2 packed packed unaligned dcl 76 set ref 218* 224* 229* 293 echdp 21 based bit(18) level 2 packed packed unaligned dcl 23-22 set ref 650 650* 718 720 echo_data based structure level 1 dcl 10-19 echo_datap 000260 automatic pointer dcl 10-15 set ref 720* 721 721 722 722 724 724 724 724 724 727 727 728 echo_start_pending_sndopt 7(06) based bit(1) level 2 packed packed unaligned dcl 10-19 set ref 724* end_frame 13(05) based bit(1) level 3 in structure "wtcb" packed packed unaligned dcl 23-22 in procedure "td" ref 577 end_frame 4(05) based bit(1) level 3 in structure "pcb" packed packed unaligned dcl 12-27 in procedure "td" set ref 763* end_of_page 0(18) based bit(1) level 3 packed packed unaligned dcl 16-28 set ref 801* entry_in_use 22(09) based bit(1) array level 4 in structure "lct" packed packed unaligned dcl 8-11 in procedure "td" set ref 355 entry_in_use 2(09) based bit(1) level 3 in structure "lcte" packed packed unaligned dcl 8-20 in procedure "td" set ref 521* erase 16 based char(1) level 3 packed packed unaligned dcl 13-20 set ref 690* erfno 000125 automatic char(32) packed unaligned dcl 64 set ref 140* 153 155* 168* 286 323 323 325* 328* 331* 338 421 error_code 24 based fixed bin(35,0) level 2 dcl 23-22 set ref 644 646* 647* error_table_$badopt 000010 external static fixed bin(35,0) dcl 88 set ref 250* error_table_$inconsistent 000012 external static fixed bin(35,0) dcl 88 set ref 282* 288* error_table_$noarg 000014 external static fixed bin(35,0) dcl 88 set ref 162* 183* 274* error_table_$nomatch 000016 external static fixed bin(35,0) dcl 88 set ref 365* error_table_$too_many_args 000020 external static fixed bin(35,0) dcl 88 set ref 155* 176* 256* event 2 based fixed bin(71,0) level 2 dcl 23-22 set ref 629 fblock 14 based fixed bin(17,0) level 2 packed packed unaligned dcl 23-22 set ref 638* 730 fchar 15 based fixed bin(9,0) level 2 packed packed unsigned unaligned dcl 23-22 set ref 638* fixed builtin function dcl 98 ref 787 flag_array 000444 automatic varying char(128) dcl 550 set ref 565* 567* 567 569* 569 571* 571 573* 573 575* 575 577* 577 579* 579 581* 581 583* 583 585* 585 587* 587 589* 589 591* 591 593* 593 595* 595 597* 597 599* 599 601* 601 603* 603 605* 605 607* 607 609* 609 611* 611 614 614 614* 618* flags 0(18) based structure level 2 in structure "buffer" packed packed unaligned dcl 16-28 in procedure "td" flags 30 based structure level 2 in structure "tcb" packed packed unaligned dcl 13-20 in procedure "td" flags based structure array level 1 dcl 79 in procedure "td" set ref 301 344 345* 411 flags 4 based structure level 2 in structure "pcb" packed packed unaligned dcl 12-27 in procedure "td" flags 22(09) based structure array level 3 in structure "lct" packed packed unaligned dcl 8-11 in procedure "td" flags 2(09) based structure level 2 in structure "lcte" packed packed unaligned dcl 8-20 in procedure "td" flags 13 based structure level 2 in structure "wtcb" packed packed unaligned dcl 23-22 in procedure "td" flags_ptr 000230 automatic pointer dcl 84 set ref 297* 301 301 344* 345 411 411 476 478 502 504 517 534 fnp_id 7 based structure level 2 dcl 7-67 fnp_info based structure level 1 dcl 7-67 fnp_tag 7 based char(1) level 3 packed packed unaligned dcl 7-67 set ref 753* fnpe based structure level 1 dcl 4-200 fnpp 000250 automatic pointer dcl 7-50 set ref 748* 749 753 757 found 000140 automatic bit(1) packed unaligned dcl 66 set ref 352* 358* 365 frame_begin 23 based char(1) level 3 packed packed unaligned dcl 13-20 set ref 690* frame_end 23(09) based char(1) level 3 packed packed unaligned dcl 13-20 set ref 690* framing_chars 23 based structure level 2 packed packed unaligned dcl 13-20 get_meters_waiting 4(10) based bit(1) level 3 packed packed unaligned dcl 12-27 set ref 763* get_system_free_area_ 000036 constant entry external dcl 106 ref 301 344 411 get_temp_segments_ 000040 constant entry external dcl 107 ref 311 get_userid_ 000056 constant entry external dcl 116 ref 395 624 group_id 000157 automatic char(32) packed unaligned dcl 70 set ref 141* 174 176* 189* 190 190* 190 192* 272 278 282* 369 399* have_segs 000010 internal static bit(1) initial dcl 56 set ref 309 317* 423* hbound builtin function dcl 98 ref 469 680 hc_fast_lock based structure level 1 dcl 15-10 hcs_$initiate 000044 constant entry external dcl 109 ref 371 377 hcs_$terminate_noname 000046 constant entry external dcl 110 ref 303 305 415 418 hevent based fixed bin(71,0) level 2 dcl 23-22 set ref 629 hex8 0(09) 000021 internal static bit(1) level 2 packed packed unaligned dcl 76 set ref 233* 238* 245* hex9 0(10) 000021 internal static bit(1) level 2 packed packed unaligned dcl 76 set ref 233* 239* 244* high_speed 4(03) based bit(1) level 3 packed packed unaligned dcl 12-27 set ref 763* hndlquit 4(06) based bit(1) level 3 in structure "pcb" packed packed unaligned dcl 12-27 in procedure "td" set ref 763* hndlquit 13(15) based bit(1) level 3 in structure "wtcb" packed packed unaligned dcl 23-22 in procedure "td" ref 593 horiz_room_left 11(09) based fixed bin(9,0) level 2 packed packed unsigned unaligned dcl 10-19 set ref 722* i 000110 automatic fixed bin(17,0) dcl 53 set ref 671* 672 674* 713* 714 714 714* iarg 000120 automatic fixed bin(17,0) dcl 60 set ref 142* 143* 146* 159* 159 160 165* 180* 180 181 186* id 20 based char(4) level 2 packed packed unaligned dcl 13-20 set ref 690* idx 000112 automatic fixed bin(17,0) dcl 53 set ref 668* 674 675* 676 680 682 in 30 based structure array level 4 in structure "lct" dcl 8-11 in procedure "td" in 10 based structure level 3 in structure "lcte" dcl 8-20 in procedure "td" in 2 based structure level 2 in structure "saved_meters" dcl 8-68 in procedure "td" index builtin function dcl 98 ref 190 248 675 747 infop 000246 automatic pointer dcl 7-49 set ref 321* 331* 748 initialized 2(10) based bit(1) level 3 packed packed unaligned dcl 8-20 set ref 521* input_available 13(10) based bit(1) level 3 packed packed unaligned dcl 23-22 ref 589 input_msg_size 22 based fixed bin(17,0) level 2 dcl 13-20 set ref 690* input_resume_seq 25 based structure level 2 packed packed unaligned dcl 13-20 input_suspend_seq 24 based structure level 2 packed packed unaligned dcl 13-20 input_words 5 based fixed bin(17,0) level 3 packed packed unaligned dcl 8-20 set ref 527* ioa_ 000054 constant entry external dcl 111 ref 484 520 521 527 530 532 562 618 620 625 629 631 633 635 638 647 650 654 656 663 665 684 686 690 695 698 701 705 709 714 721 722 724 727 728 753 759 763 791 795 801 iox_$user_output 000022 external static pointer dcl 96 set ref 803* keyboard_locking 30(02) based bit(1) level 3 packed packed unaligned dcl 13-20 set ref 686* kill 16(09) based char(1) level 3 packed packed unaligned dcl 13-20 set ref 690* last_erf 000000 internal static char(32) initial packed unaligned dcl 55 set ref 323 338* lblock 14(18) based fixed bin(17,0) level 2 packed packed unaligned dcl 23-22 set ref 638* lbound builtin function dcl 98 ref 469 680 lcnt based structure level 1 dcl 8-65 lcnt_ptr 2 based pointer level 2 dcl 8-11 ref 342 lcntp 000256 automatic pointer dcl 8-63 set ref 342* 354 471 484 520 562 747 759 lct based structure level 1 dcl 8-11 lct_ptr 6 based pointer level 2 dcl 14-35 ref 341 lcte based structure level 1 dcl 8-20 lcte_array 20 based structure array level 2 dcl 8-11 set ref 436 449 lcte_sw 000145 automatic bit(1) packed unaligned dcl 67 set ref 138* 212* 442 lctep 000254 automatic pointer dcl 8-8 set ref 436* 447 448 449* 469 469 471 482 482 488 491 491 495 499 499 520 520 521 521 521 521 521 521 521 521 521 521 521 527 527 527 527 527 527 527 530 532 532 560 lctp 000252 automatic pointer dcl 8-7 set ref 301 341* 342 344 345 353 355 411 436 449 length builtin function dcl 98 ref 614 614 line_delimiter 23 based char(1) level 2 packed packed unaligned dcl 23-22 set ref 654* line_no 000521 automatic bit(12) packed unaligned dcl 745 set ref 758* 759* line_number 0(26) based structure level 3 packed packed unaligned dcl 12-27 ref 758 line_status_disabled 23(09) based bit(1) level 3 packed packed unaligned dcl 23-22 set ref 620* line_status_present 13(17) based bit(1) level 3 packed packed unaligned dcl 23-22 ref 587 line_type 12(18) based fixed bin(18,0) level 2 in structure "wtcb" packed packed unsigned unaligned dcl 23-22 in procedure "td" ref 562 line_type 2(18) based fixed bin(17,0) level 2 in structure "pcb" packed packed unaligned dcl 12-27 in procedure "td" ref 759 line_types 000363 constant char(16) initial array packed unaligned dcl 9-54 set ref 562* 759* linemax 21(09) based fixed bin(8,0) level 2 packed packed unaligned dcl 13-20 set ref 690* listen 4 based bit(1) level 3 in structure "pcb" packed packed unaligned dcl 12-27 in procedure "td" set ref 763* listen 13 based bit(1) level 3 in structure "wtcb" packed packed unaligned dcl 23-22 in procedure "td" ref 567 locked_for_interrupt 2(12) based bit(1) level 3 packed packed unaligned dcl 8-20 set ref 521* long 0(05) 000021 internal static bit(1) level 2 packed packed unaligned dcl 76 set ref 293* 295* long_message 000172 automatic char(100) dcl 72 set ref 646* 647* major_channel_devx 3 based fixed bin(17,0) level 3 packed packed unaligned dcl 8-20 set ref 448 521* major_channel_info 3 based structure level 2 dcl 8-20 mark_set 13(25) based bit(1) level 3 packed packed unaligned dcl 23-22 ref 609 masked 13(26) based bit(1) level 3 packed packed unaligned dcl 23-22 ref 611 match_star_name_ 000062 constant entry external dcl 118 ref 354 399 max_buf_size 20 based fixed bin(9,0) level 2 in structure "wtcb" packed packed unsigned unaligned dcl 23-22 in procedure "td" set ref 638* max_buf_size 3 based fixed bin(17,0) level 2 in structure "pcb" packed packed unaligned dcl 12-27 in procedure "td" set ref 759* max_no_355s internal static fixed bin(17,0) initial dcl 7-45 ref 7-52 max_no_lctes based fixed bin(17,0) level 2 dcl 8-11 ref 301 344 345 353 411 max_output_block 23(18) based fixed bin(18,0) level 2 packed packed unsigned unaligned dcl 13-20 set ref 709 709* meters 26 based structure array level 3 in structure "lct" dcl 8-11 in procedure "td" meters 6 based structure level 2 in structure "lcte" dcl 8-20 in procedure "td" mode 000344 automatic char(256) packed unaligned dcl 549 set ref 667* 674* 675 676* 680* 682* 684* mode_bits 000505 automatic bit(36) dcl 551 set ref 670* 672 modes 17 based structure level 2 packed packed unaligned dcl 13-20 ref 670 modestr defined char(8) array packed unaligned dcl 18-36 ref 674 more_flags 23(09) based structure level 2 packed packed unaligned dcl 23-22 mpx_types 000153 constant char(32) initial array packed unaligned dcl 11-35 set ref 469 469 495 521* mpxe based structure level 1 dcl 4-221 mux_will_echnego 7(05) based bit(1) level 2 packed packed unaligned dcl 10-19 set ref 724* n_args 000117 automatic fixed bin(17,0) dcl 59 set ref 125* 132 142 160 181 n_modes constant fixed bin(17,0) initial dcl 18-22 ref 671 n_pcbs 000262 automatic fixed bin(17,0) dcl 12-22 set ref 749* 753* name 000100 automatic char(32) packed unaligned dcl 52 set ref 141* 254 256* 262* 263* 272 280 282* 350 354* 365* names based char(32) array level 2 packed packed unaligned dcl 8-65 set ref 354* 471* 484* 520* 562* 747 759* negotiating_echo 13(21) based bit(1) level 3 packed packed unaligned dcl 23-22 ref 601 next based fixed bin(18,0) level 2 packed packed unsigned unaligned dcl 16-28 ref 805 no_of_channels 6 based fixed bin(17,0) level 2 dcl 7-67 ref 749 no_printer_off 30(03) based bit(1) level 3 packed packed unaligned dcl 13-20 set ref 686* notify_reqd 2(11) based bit(1) level 3 in structure "lcte" packed packed unaligned dcl 8-20 in procedure "td" set ref 521* notify_reqd 13(06) based bit(1) level 3 in structure "wtcb" packed packed unaligned dcl 23-22 in procedure "td" ref 579 nramsgs 15(27) based fixed bin(9,0) level 2 packed packed unsigned unaligned dcl 23-22 set ref 638* null builtin function dcl 98 ref 297 372 378 388 411 415 418 1-53 21-76 301 303 305 482 530 old_type 16(18) based fixed bin(17,0) level 2 packed packed unaligned dcl 13-20 set ref 665* or 000530 automatic fixed bin(18,0) dcl 782 set ref 787* 788 792 793 793 795* 799 801* 803* 805* output_mbx_pending 4(08) based bit(1) level 3 packed packed unaligned dcl 12-27 set ref 763* output_resume_ack_seq 27 based structure level 2 packed packed unaligned dcl 13-20 output_suspend_etb_seq 26 based structure level 2 packed packed unaligned dcl 13-20 output_words 5(18) based fixed bin(17,0) level 3 packed packed unaligned dcl 8-20 set ref 527* pcb based structure level 1 dcl 12-27 pcb_array based structure array level 1 dcl 12-25 set ref 757 pcb_array_ptr 2 based pointer level 2 dcl 7-67 ref 757 pcbp 000264 automatic pointer dcl 12-23 set ref 757* 758 759 759 759 759 759 759 759 759 759 759 759 763 763 763 763 763 763 763 763 763 763 763 763 768 per_datanet 22 based structure array level 2 dcl 7-52 set ref 748 person 000146 automatic char(24) packed unaligned dcl 68 in procedure "td" set ref 391* 395* 396* 399 624* 625* person 4 based char(24) level 2 in structure "ute" packed packed unaligned dcl 21-78 in procedure "td" ref 391 physical_channel_devx 2(18) based fixed bin(17,0) level 2 packed packed unaligned dcl 8-20 set ref 521* pm_brief_sw parameter bit(1) packed unaligned dcl 822 ref 816 825 pm_chname parameter char packed unaligned dcl 820 set ref 816 826* pm_chst parameter fixed bin(17,0) dcl 821 set ref 816 826* pm_ds_format parameter structure level 1 dcl 837 ref 833 840 pm_tty_buf_len parameter fixed bin(19,0) unsigned dcl 836 ref 833 839 pm_ttybp parameter pointer dcl 819 ref 816 824 pointer builtin function dcl 98 ref 390 print_entry 000224 automatic entry variable dcl 73 set ref 496* 499 print_entry_name 000320 automatic char(32) packed unaligned dcl 467 set ref 495* 496* 497* printed_lcte based bit(1) array level 2 packed packed unaligned dcl 79 set ref 517 534* printed_major 0(02) based bit(1) array level 2 packed packed unaligned dcl 79 set ref 476 502* printed_subchan 0(01) based bit(1) array level 2 packed packed unaligned dcl 79 set ref 478 504* process 111 based pointer level 2 packed packed unaligned dcl 4-72 ref 388 390 prog_name 000524 constant char(8) initial packed unaligned dcl 86 set ref 128* 134* 134* 146* 155* 162* 176* 183* 195* 250* 256* 266* 274* 282* 288* 311* 314* 334* 365* 374* 380* 424* 471* 497* project 12 based char(12) level 2 in structure "ute" packed packed unaligned dcl 21-78 in procedure "td" ref 392 project 000154 automatic char(12) packed unaligned dcl 69 in procedure "td" set ref 392* 395* 396* 399 624* 625* prompt 22(09) based char(3) level 2 packed packed unaligned dcl 23-22 ref 650 650 prompt_len 22 based fixed bin(8,0) level 2 packed packed unaligned dcl 23-22 set ref 650 650* 650 650 ptr builtin function dcl 98 ref 341 342 499 499 560 662 720 757 799 qenable 13(03) based bit(1) level 3 packed packed unaligned dcl 23-22 ref 573 qflag 13(04) based bit(1) level 3 packed packed unaligned dcl 23-22 ref 575 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 527 527 527 queue_tail 4(18) based bit(18) level 3 packed packed unaligned dcl 8-20 ref 527 527 receive_mode_device 13(24) based bit(1) level 3 packed packed unaligned dcl 23-22 ref 607 rel builtin function dcl 98 ref 341 342 390 482 499 499 520 520 532 532 560 562 562 662 663 663 721 721 757 759 759 release_temp_segments_ 000042 constant entry external dcl 108 ref 424 rflag 13(13) based bit(1) level 3 packed packed unaligned dcl 23-22 ref 633 rtrim builtin function dcl 98 ref 190 399 399 495 saved_subchan_sw 000144 automatic bit(1) packed unaligned dcl 67 set ref 360* 362 403* 405 send_output 4(02) based bit(1) level 3 in structure "pcb" packed packed unaligned dcl 12-27 in procedure "td" set ref 763* send_output 13(02) based bit(1) level 3 in structure "wtcb" packed packed unaligned dcl 23-22 in procedure "td" ref 571 short_message 000170 automatic char(8) dcl 71 set ref 646* size_code 0(24) based fixed bin(3,0) level 2 packed packed unsigned unaligned dcl 16-28 ref 800 space_needed 2(13) based bit(1) level 3 packed packed unaligned dcl 8-20 set ref 521* special_input_chars 16 based structure level 2 packed packed unaligned dcl 13-20 special_lock 2(14) based bit(1) level 3 packed packed unaligned dcl 8-20 set ref 521* state 77 based fixed bin(17,0) level 2 dcl 4-72 ref 386 string builtin function dcl 98 set ref 139* 670 758 803 803 subchan 0(18) based fixed bin(7,0) level 3 in structure "pcb" packed packed unaligned dcl 12-27 in procedure "td" set ref 759* subchan 000115 automatic fixed bin(17,0) dcl 53 in procedure "td" set ref 437* 447* 476 478 499* 502 751 757 subchan_sw 000143 automatic bit(1) packed unaligned dcl 67 set ref 138* 209* 360 362* 403 405* 440 451 453* subchannel 3(18) based fixed bin(17,0) level 3 packed packed unaligned dcl 8-20 set ref 447 521* substr builtin function dcl 98 set ref 614* 650 650 672 674* 676* 680* 682* 695 695 698 698 701 701 705 705 747 sync_ctr 10 based fixed bin(35,0) level 2 dcl 10-19 set ref 727* 727* sync_line 13(18) based bit(1) level 3 in structure "wtcb" packed packed unaligned dcl 23-22 in procedure "td" ref 597 sync_line 4(04) based bit(1) level 3 in structure "pcb" packed packed unaligned dcl 12-27 in procedure "td" set ref 763* synchronized 7(04) based bit(1) level 2 packed packed unaligned dcl 10-19 set ref 724* system_area based area(1024) dcl 74 ref 301 344 411 table based fixed bin(17,0) array level 2 packed packed unaligned dcl 553 set ref 714* table_arrays based structure level 1 dcl 553 table_names 000000 constant char(18) initial array packed unaligned dcl 557 set ref 714* tablep 000506 automatic pointer dcl 552 set ref 712* 714 714 tables 10 based structure level 2 dcl 13-20 set ref 712 tablex 000111 automatic fixed bin(17,0) dcl 53 set ref 353* 354 355 359* 384* 385* tally 0(27) based fixed bin(9,0) level 2 packed packed unsigned unaligned dcl 16-28 ref 801 801 tandd_attached 4(11) based bit(1) level 3 packed packed unaligned dcl 12-27 set ref 763* tcb based structure level 1 dcl 13-20 tcb_initialized 13(11) based bit(1) level 3 packed packed unaligned dcl 23-22 ref 591 659 tcb_ptr 6 based pointer level 2 packed packed unaligned dcl 23-22 ref 662 tcbp 000266 automatic pointer dcl 13-18 set ref 662* 663 663 665 665 670 680 680 682 686 686 686 686 686 686 686 690 690 690 690 690 690 690 690 690 690 695 695 695 695 695 698 698 698 698 698 701 701 701 701 701 701 705 705 705 705 705 705 709 709 712 temp_segs 000012 internal static pointer initial array dcl 57 set ref 311* 319 320 321 424* terminal_type based char(32) level 2 packed packed unaligned dcl 13-20 set ref 665* tty_buf based structure level 1 dcl 14-35 ttyb_len 000020 internal static fixed bin(19,0) initial unsigned dcl 58 set ref 328* 793 839* ttybp 000270 automatic pointer dcl 14-19 set ref 319* 328* 341 341 499* 499 499 560 757 793 799 824* two_words based fixed bin(35,0) array dcl 547 set ref 629* 629* twx 76 based fixed bin(17,0) level 2 dcl 4-72 ref 402 unspec builtin function dcl 98 set ref 345* uproc 11 based bit(36) level 2 dcl 23-22 ref 622 624 uproc_attached 30(05) based bit(1) level 3 packed packed unaligned dcl 13-20 set ref 686* user_abs_attributes based structure level 1 dcl 20-25 user_attributes based structure level 1 dcl 19-21 ut_header based structure level 1 dcl 22-16 ute based structure level 1 dcl 21-78 utep 000274 automatic pointer initial dcl 21-76 set ref 390* 391 392 21-76* wake_tbl 13(22) based bit(1) level 3 packed packed unaligned dcl 23-22 ref 603 waketp 21(18) based bit(18) level 2 packed packed unaligned dcl 23-22 set ref 650 650* wflag 13(12) based bit(1) level 3 packed packed unaligned dcl 23-22 ref 631 white_col 17(18) based fixed bin(17,0) level 2 packed packed unaligned dcl 23-22 set ref 638* word_counts 5 based structure level 2 dcl 8-20 work_reqd 13(07) based bit(1) level 3 packed packed unaligned dcl 23-22 ref 581 write_cnt 3(18) based fixed bin(17,0) level 2 packed packed unaligned dcl 12-27 set ref 759* write_first 1 based fixed bin(17,0) level 2 in structure "pcb" packed packed unaligned dcl 12-27 in procedure "td" set ref 759* 768 write_first 16 based fixed bin(17,0) level 2 in structure "wtcb" packed packed unaligned dcl 23-22 in procedure "td" set ref 638* 731 write_last 1(18) based fixed bin(17,0) level 2 in structure "pcb" packed packed unaligned dcl 12-27 in procedure "td" set ref 759* write_last 16(18) based fixed bin(17,0) level 2 in structure "wtcb" packed packed unaligned dcl 23-22 in procedure "td" set ref 638* wru 13(14) based bit(1) level 3 packed packed unaligned dcl 23-22 ref 635 wtcb based structure level 1 dcl 23-22 wtcbp 000276 automatic pointer dcl 23-20 set ref 560* 562 562 562 562 567 569 571 573 575 577 579 581 583 585 587 589 591 593 595 597 599 601 603 605 607 609 611 620 622 624 629 629 631 633 635 638 638 638 638 638 638 638 638 638 638 638 638 638 644 646 647 650 650 650 650 650 650 650 650 650 650 654 656 656 659 662 718 720 720 730 731 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. ABS_ATTRIBUTE_NAMES internal static varying char(28) initial array dcl 20-38 ABS_FLAG_NAMES internal static varying char(8) initial array dcl 21-326 ACTIVE internal static fixed bin(17,0) initial dcl 4-272 ACTIVE_VALUES internal static char(18) initial array dcl 6-86 ALT_USER_ATTRIBUTE_NAMES internal static char(20) initial array packed unaligned dcl 19-77 ANSTBL_version_4 internal static fixed bin(17,0) initial dcl 1-51 ANS_SERVICE internal static fixed bin(17,0) initial dcl 4-259 AT_NORMAL internal static char(8) initial packed unaligned dcl 1-116 AT_SHUTDOWN internal static char(8) initial packed unaligned dcl 1-116 AT_SPECIAL internal static char(8) initial packed unaligned dcl 1-116 CAN_TYPE_OVERSTRIKE internal static fixed bin(17,0) initial dcl 17-4 CAN_TYPE_REPLACE internal static fixed bin(17,0) initial dcl 17-4 CDT_version internal static fixed bin(17,0) initial dcl 4-39 CDT_version_5 internal static fixed bin(17,0) initial dcl 4-38 CHANNEL_DELETED internal static fixed bin(17,0) initial dcl 4-288 DERIVE_MASK internal static bit(2) initial packed unaligned dcl 21-280 DIAL_OUT_SERVICE internal static fixed bin(17,0) initial dcl 4-259 DIAL_SERVER_FLAG_NAMES internal static varying char(12) initial array dcl 21-332 DIAL_SERVICE internal static fixed bin(17,0) initial dcl 4-259 DN355 internal static fixed bin(17,0) initial dcl 5-19 DN6600 internal static fixed bin(17,0) initial dcl 5-19 DN6670 internal static fixed bin(17,0) initial dcl 5-19 DN7100 internal static fixed bin(17,0) initial dcl 5-19 DONT_MASK internal static bit(2) initial packed unaligned dcl 21-280 DO_MASK internal static bit(2) initial packed unaligned dcl 21-280 FIRST_BOOTLOAD_PAGEX internal static fixed bin(17,0) initial dcl 7-166 FIRST_TTY_BUF_PAGEX internal static fixed bin(17,0) initial dcl 7-167 FNP_BOOT internal static fixed bin(17,0) initial dcl 4-298 FNP_DOWN internal static fixed bin(17,0) initial dcl 4-298 FNP_DUMP_PATCH_EVENT internal static fixed bin(17,0) initial dcl 14-31 FNP_FREE internal static fixed bin(17,0) initial dcl 4-298 FNP_METER_EVENT internal static fixed bin(17,0) initial dcl 14-32 FNP_UNKNOWN internal static fixed bin(17,0) initial dcl 4-298 FNP_UP internal static fixed bin(17,0) initial dcl 4-298 FTP_SERVICE internal static fixed bin(17,0) initial dcl 4-259 HASP_MPX internal static fixed bin(17,0) initial dcl 11-16 IBM3270_MPX internal static fixed bin(17,0) initial dcl 11-16 INACTIVE internal static fixed bin(17,0) initial dcl 4-272 LAP_MPX internal static fixed bin(17,0) initial dcl 11-16 LINE_1050 internal static fixed bin(17,0) initial dcl 9-22 LINE_2741 internal static fixed bin(17,0) initial dcl 9-22 LINE_ARDS internal static fixed bin(17,0) initial dcl 9-22 LINE_ASCII internal static fixed bin(17,0) initial dcl 9-22 LINE_ASYNC1 internal static fixed bin(17,0) initial dcl 9-22 LINE_ASYNC2 internal static fixed bin(17,0) initial dcl 9-22 LINE_ASYNC3 internal static fixed bin(17,0) initial dcl 9-22 LINE_BSC internal static fixed bin(17,0) initial dcl 9-22 LINE_COLTS internal static fixed bin(17,0) initial dcl 9-22 LINE_DSA internal static fixed bin(17,0) initial dcl 9-22 LINE_ETX internal static fixed bin(17,0) initial dcl 9-22 LINE_G115 internal static fixed bin(17,0) initial dcl 9-22 LINE_HASP_OPR internal static fixed bin(17,0) initial dcl 9-22 LINE_HDLC internal static fixed bin(17,0) initial dcl 9-22 LINE_MC internal static fixed bin(17,0) initial dcl 9-22 LINE_POLLED_VIP internal static fixed bin(17,0) initial dcl 9-22 LINE_SYNC1 internal static fixed bin(17,0) initial dcl 9-22 LINE_SYNC2 internal static fixed bin(17,0) initial dcl 9-22 LINE_SYNC3 internal static fixed bin(17,0) initial dcl 9-22 LINE_SYNCH internal static fixed bin(17,0) initial dcl 9-22 LINE_TELNET internal static fixed bin(17,0) initial dcl 9-22 LINE_UNKNOWN internal static fixed bin(17,0) initial dcl 9-22 LINE_VIP internal static fixed bin(17,0) initial dcl 9-22 LINE_X25LAP internal static fixed bin(17,0) initial dcl 9-22 LOGIN_RESULT_VALUES internal static varying char(24) initial array dcl 21-338 MASK_CTL_NAMES internal static varying char(12) initial array dcl 21-284 MC_SERVICE internal static fixed bin(17,0) initial dcl 4-259 MPX_BOOT internal static fixed bin(17,0) initial dcl 4-306 MPX_DOWN internal static fixed bin(17,0) initial dcl 4-306 MPX_FREE internal static fixed bin(17,0) initial dcl 4-306 MPX_MODES internal static bit(1) initial array packed unaligned dcl 18-40 MPX_SERVICE internal static fixed bin(17,0) initial dcl 4-259 MPX_UNKNOWN internal static fixed bin(17,0) initial dcl 4-306 MPX_UP internal static fixed bin(17,0) initial dcl 4-306 NOT_CONFIGURED internal static fixed bin(17,0) initial dcl 4-280 NOW_DIALED internal static fixed bin(17,0) initial dcl 6-76 NOW_DIALED_OUT internal static fixed bin(17,0) initial dcl 6-76 NOW_DIALING internal static fixed bin(17,0) initial dcl 6-76 NOW_FREE internal static fixed bin(17,0) initial dcl 6-76 NOW_HAS_PROCESS internal static fixed bin(17,0) initial dcl 6-76 NOW_HUNG_UP internal static fixed bin(17,0) initial dcl 6-76 NOW_LISTENING internal static fixed bin(17,0) initial dcl 6-76 NOW_LOGGED_IN internal static fixed bin(17,0) initial dcl 6-76 PREEMPT_BUMPED internal static fixed bin(17,0) initial dcl 6-132 PREEMPT_BUMPED_NO_TERM internal static fixed bin(17,0) initial dcl 6-132 PREEMPT_LOAD_CTL internal static fixed bin(17,0) initial dcl 6-132 PREEMPT_TERMSGNL_RECEIVED internal static fixed bin(17,0) initial dcl 6-132 PREEMPT_TERM_SENT internal static fixed bin(17,0) initial dcl 6-132 PREEMPT_UNBUMP internal static fixed bin(17,0) initial dcl 6-132 PREEMPT_UNBUMP_IGNORE_ALARM internal static fixed bin(17,0) initial dcl 6-132 PREEMPT_VALUES internal static varying char(28) initial array dcl 6-142 PROCESS_TYPE_NAMES internal static varying char(12) initial array dcl 21-265 PROTOCOL_MPX internal static fixed bin(17,0) initial dcl 11-16 PT_ABSENTEE internal static fixed bin(17,0) initial dcl 21-261 PT_ALARM internal static fixed bin(17,0) initial dcl 6-106 PT_BUMP internal static fixed bin(17,0) initial dcl 6-106 PT_DAEMON internal static fixed bin(17,0) initial dcl 21-261 PT_DESTROY_REQUEST internal static fixed bin(17,0) initial dcl 6-106 PT_DETACH internal static fixed bin(17,0) initial dcl 6-106 PT_FPE internal static fixed bin(17,0) initial dcl 6-106 PT_HANGUP internal static fixed bin(17,0) initial dcl 6-106 PT_INTERACTIVE internal static fixed bin(17,0) initial dcl 21-261 PT_LOGOUT internal static fixed bin(17,0) initial dcl 6-106 PT_NEW_PROC_AUTH internal static fixed bin(17,0) initial dcl 6-106 PT_NEW_PROC_REQUEST internal static fixed bin(17,0) initial dcl 6-106 PT_OPERATOR_TERMINATE internal static fixed bin(17,0) initial dcl 6-106 PT_SHUTDOWN internal static fixed bin(17,0) initial dcl 6-106 PT_UNBUMP internal static fixed bin(17,0) initial dcl 6-106 PW_FLAG_NAMES internal static varying char(12) initial array dcl 21-290 SLAVE_SERVICE internal static fixed bin(17,0) initial dcl 4-259 STATE_VALUES internal static char(15) initial array dcl 6-70 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 TABLE_NAMES internal static char(20) initial array packed unaligned dcl 21-271 TAG_ABSENTEE internal static char(1) initial packed unaligned dcl 6-93 TAG_DAEMON internal static char(1) initial packed unaligned dcl 6-93 TAG_INTERACTIVE internal static char(1) initial packed unaligned dcl 6-93 TAG_PROXY internal static char(1) initial packed unaligned dcl 6-93 TAG_UFT internal static char(1) initial packed unaligned dcl 6-93 TANDD_SERVICE internal static fixed bin(17,0) initial dcl 4-259 TRA_VEC_VALUES internal static char(32) initial array dcl 6-54 TTY_AREA_LOCK_EVENT internal static bit(36) initial dcl 14-33 TTY_HUNG internal static fixed bin(17,0) initial dcl 6-64 TTY_KNOWN internal static fixed bin(17,0) initial dcl 6-64 TTY_MASKED internal static fixed bin(17,0) initial dcl 6-64 TTY_MPX internal static fixed bin(17,0) initial dcl 11-16 UFLAG_NAMES internal static varying char(24) initial array dcl 21-303 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 USER_ATTRIBUTES_always_allowed internal static bit(36) initial dcl 19-100 USER_ATTRIBUTES_default_in_pdt internal static bit(36) initial dcl 19-104 USER_ATTRIBUTES_settable_by_user internal static bit(36) initial dcl 19-108 USER_ATTRIBUTE_NAMES internal static char(20) initial array packed unaligned dcl 19-50 UTE_SIZE internal static fixed bin(17,0) initial dcl 1-120 UTE_version_4 internal static fixed bin(17,0) initial dcl 21-74 VIP7760_MPX internal static fixed bin(17,0) initial dcl 11-16 WAIT_ANSWERBACK internal static fixed bin(17,0) initial dcl 6-25 WAIT_BEFORE_HANGUP internal static fixed bin(17,0) initial dcl 6-25 WAIT_CONNECT_REQUEST internal static fixed bin(17,0) initial dcl 6-25 WAIT_DELETE_CHANNEL internal static fixed bin(17,0) initial dcl 6-25 WAIT_DESTROY_REQUEST internal static fixed bin(17,0) initial dcl 6-25 WAIT_DETACH internal static fixed bin(17,0) initial dcl 6-25 WAIT_DIALUP internal static fixed bin(17,0) initial dcl 6-25 WAIT_DIAL_OUT internal static fixed bin(17,0) initial dcl 6-25 WAIT_DIAL_RELEASE internal static fixed bin(17,0) initial dcl 6-25 WAIT_DISCARD_WAKEUPS internal static fixed bin(17,0) initial dcl 6-25 WAIT_FIN_PRIV_ATTACH internal static fixed bin(17,0) initial dcl 6-25 WAIT_FIN_TANDD_ATTACH internal static fixed bin(17,0) initial dcl 6-25 WAIT_GREETING_MSG internal static fixed bin(17,0) initial dcl 6-25 WAIT_HANGUP internal static fixed bin(17,0) initial dcl 6-25 WAIT_LOGIN_ARGS internal static fixed bin(17,0) initial dcl 6-25 WAIT_LOGIN_LINE internal static fixed bin(17,0) initial dcl 6-25 WAIT_LOGOUT internal static fixed bin(17,0) initial dcl 6-25 WAIT_LOGOUT_HOLD internal static fixed bin(17,0) initial dcl 6-25 WAIT_LOGOUT_SIG internal static fixed bin(17,0) initial dcl 6-25 WAIT_NEW_PASSWORD internal static fixed bin(17,0) initial dcl 6-25 WAIT_NEW_PROC internal static fixed bin(17,0) initial dcl 6-25 WAIT_NEW_PROC_REQUEST internal static fixed bin(17,0) initial dcl 6-25 WAIT_OLD_PASSWORD internal static fixed bin(17,0) initial dcl 6-25 WAIT_PASSWORD internal static fixed bin(17,0) initial dcl 6-25 WAIT_REMOVE internal static fixed bin(17,0) initial dcl 6-25 WAIT_SLAVE_REQUEST internal static fixed bin(17,0) initial dcl 6-25 WAIT_TANDD_HANGUP internal static fixed bin(17,0) initial dcl 6-25 WIRED_ECHO_BREAK_SIZE internal static fixed bin(17,0) initial dcl 10-16 X25_MPX internal static fixed bin(17,0) initial dcl 11-16 abs_buf_limit internal static fixed bin(18,0) initial dcl 14-19 anstbl based structure level 1 dcl 1-55 bsizec internal static fixed bin(17,0) initial dcl 14-28 buf_per_second internal static fixed bin(17,0) initial dcl 14-29 dn355_data$ external static fixed bin(17,0) dcl 7-47 fnp_models internal static fixed bin(17,0) initial array dcl 5-28 fnp_types internal static char(8) initial array packed unaligned dcl 5-25 fnpep automatic pointer dcl 4-41 free_block based structure level 1 dcl 16-23 free_blockp automatic pointer dcl 16-20 generic_destination based char(32) packed unaligned dcl 4-195 input_bpart internal static fixed bin(18,0) initial dcl 14-19 lct_size automatic fixed bin(17,0) dcl 8-9 lock_ptr automatic pointer dcl 15-9 max_buffer_tally internal static fixed bin(17,0) initial array dcl 16-43 max_line_type internal static fixed bin(17,0) initial dcl 9-48 mpx_special_lock internal static bit(1) initial array packed unaligned dcl 11-40 mpxep automatic pointer dcl 4-41 n_sync_line_types internal static fixed bin(17,0) initial dcl 9-50 output_bpart internal static fixed bin(18,0) initial dcl 14-19 qblock_size internal static fixed bin(17,0) initial dcl 14-27 saved_meters based structure level 1 dcl 8-68 supported_fnp internal static bit(1) initial array packed unaligned dcl 5-31 sync_line_type internal static fixed bin(17,0) initial array dcl 9-52 tty_buf$ external static fixed bin(17,0) dcl 14-19 tty_ev internal static fixed bin(17,0) initial dcl 14-19 NAMES DECLARED BY EXPLICIT CONTEXT. CANT_GET_ARGUMENT 002574 constant label dcl 146 ref 166 187 RETURN_FROM_TTY_DUMP 005206 constant label dcl 411 ref 375 381 473 bad_copy 004351 constant label dcl 334 ref 326 329 find_entry_type 005451 constant entry internal dcl 464 ref 444 print_chain 005316 constant entry external dcl 816 print_info 005401 constant entry internal dcl 433 ref 361 404 print_lcte 006007 constant entry internal dcl 514 ref 442 print_pcb 010776 constant entry internal dcl 741 ref 491 print_wtcb 006313 constant entry internal dcl 544 ref 488 ptchain 011314 constant entry internal dcl 779 ref 730 731 768 826 set_static_for_analyze 005364 constant entry external dcl 833 td 002425 constant entry external dcl 48 tty_dump 002435 constant entry external dcl 48 ref 496 496 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 12142 12252 11615 12230 Length 13244 11615 66 755 325 22 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME td 1079 external procedure is an external procedure. on unit on line 299 78 on unit print_info internal procedure shares stack frame of external procedure td. find_entry_type internal procedure shares stack frame of external procedure td. print_lcte internal procedure shares stack frame of external procedure td. print_wtcb internal procedure shares stack frame of external procedure td. print_pcb internal procedure shares stack frame of external procedure td. ptchain internal procedure shares stack frame of external procedure td. STORAGE FOR INTERNAL STATIC VARIABLES. LOC IDENTIFIER BLOCK NAME 000000 last_erf td 000010 have_segs td 000012 temp_segs td 000020 ttyb_len td 000021 ds_format td STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME td 000100 name td 000110 i td 000111 tablex td 000112 idx td 000113 devx td 000114 childs_devx td 000115 subchan td 000116 code td 000117 n_args td 000120 iarg td 000122 argp td 000124 argl td 000125 erfno td 000136 areap td 000140 found td 000141 brief_sw td 000142 all_sw td 000143 subchan_sw td 000144 saved_subchan_sw td 000145 lcte_sw td 000146 person td 000154 project td 000157 group_id td 000170 short_message td 000172 long_message td 000224 print_entry td 000230 flags_ptr td 000240 ansp td 000242 cdtp td 000244 cdtep td 000246 infop td 000250 fnpp td 000252 lctp td 000254 lctep td 000256 lcntp td 000260 echo_datap td 000262 n_pcbs td 000264 pcbp td 000266 tcbp td 000270 ttybp td 000272 blockp td 000274 utep td 000276 wtcbp td 000320 print_entry_name find_entry_type 000344 mode print_wtcb 000444 flag_array print_wtcb 000505 mode_bits print_wtcb 000506 tablep print_wtcb 000520 dn355_no print_pcb 000521 line_no print_pcb 000530 or ptchain 000531 bsize ptchain THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. r_g_a r_ne_as alloc_char_temp cat_realloc_chars call_ent_var call_ext_out_desc call_ext_out return_mac enable_op shorten_stack ss_ext_entry ss_ext_entry_desc ss_int_entry op_alloc_ op_freen_ THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. check_star_name_$entry com_err_ com_err_$suppress_name convert_status_code_ copy_erf_seg_$name cu_$arg_count cu_$arg_ptr cv_entry_ dump_segment_ get_system_free_area_ get_temp_segments_ get_userid_ hcs_$initiate hcs_$terminate_noname ioa_ match_star_name_ release_temp_segments_ THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$badopt error_table_$inconsistent error_table_$noarg error_table_$nomatch error_table_$too_many_args iox_$user_output LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 1 53 002417 21 76 002421 48 002424 125 002443 126 002454 128 002456 129 002473 132 002474 134 002477 135 002527 138 002530 139 002534 140 002536 141 002541 142 002547 143 002555 144 002572 146 002574 148 002624 151 002625 153 002637 155 002643 157 002702 159 002703 160 002704 162 002707 163 002742 165 002743 166 002760 168 002762 170 002767 172 002770 174 002774 176 003000 178 003037 180 003040 181 003041 183 003044 184 003077 186 003100 187 003115 189 003117 190 003124 192 003163 193 003201 195 003207 196 003241 198 003242 200 003243 203 003256 206 003271 209 003304 212 003323 215 003332 217 003346 218 003351 219 003357 221 003360 223 003364 224 003367 225 003375 227 003376 229 003402 230 003405 231 003413 233 003414 236 003430 238 003434 239 003437 240 003443 242 003444 244 003450 245 003453 246 003457 248 003460 250 003472 251 003524 254 003525 256 003531 258 003570 262 003571 263 003574 264 003611 266 003617 267 003651 270 003652 272 003654 274 003664 275 003710 278 003711 280 003715 282 003721 284 003754 286 003755 288 003761 289 004010 293 004011 295 004020 297 004022 299 004026 301 004042 303 004062 305 004101 307 004120 309 004121 311 004124 312 004145 314 004147 315 004173 317 004174 319 004177 320 004201 321 004203 323 004205 325 004215 326 004251 328 004253 329 004307 331 004311 332 004347 334 004351 336 004375 338 004376 341 004402 342 004407 344 004413 345 004430 350 004440 352 004444 353 004445 354 004455 355 004503 358 004513 359 004515 360 004517 361 004521 362 004522 364 004524 365 004526 369 004561 371 004565 372 004634 374 004640 375 004664 377 004665 378 004737 380 004743 381 004767 384 004770 385 005001 386 005005 388 005010 390 005013 391 005020 392 005023 393 005030 395 005031 396 005067 399 005077 400 005171 402 005174 403 005177 404 005201 405 005202 408 005204 411 005206 415 005225 418 005243 421 005261 423 005265 424 005267 427 005310 816 005311 824 005332 825 005336 826 005342 827 005357 833 005360 839 005372 840 005376 841 005400 433 005401 436 005402 437 005407 439 005411 440 005414 442 005416 444 005421 446 005422 447 005424 448 005431 449 005434 451 005441 453 005446 454 005447 456 005450 464 005451 469 005452 471 005461 473 005527 476 005530 478 005543 482 005556 484 005564 485 005611 488 005612 491 005616 495 005624 496 005661 497 005711 499 005744 502 005770 504 006001 506 006006 514 006007 517 006010 520 006020 521 006060 527 006164 530 006240 532 006261 534 006305 536 006312 544 006313 560 006314 562 006322 565 006400 567 006401 569 006417 571 006434 573 006451 575 006466 577 006503 579 006520 581 006535 583 006552 585 006567 587 006604 589 006621 591 006636 593 006653 595 006670 597 006705 599 006722 601 006737 603 006754 605 006771 607 007006 609 007023 611 007040 614 007055 618 007062 620 007103 622 007126 624 007131 625 007170 629 007221 631 007245 633 007265 635 007305 638 007325 644 007431 646 007434 647 007447 650 007477 654 007574 656 007616 659 007646 662 007653 663 007660 665 007705 667 007734 668 007737 670 007741 671 007744 672 007753 674 007757 675 007774 676 010005 678 010010 680 010012 682 010034 684 010051 686 010072 690 010151 695 010245 698 010300 701 010335 705 010377 709 010441 712 010470 713 010473 714 010501 716 010540 718 010542 720 010546 721 010551 722 010574 724 010622 727 010671 728 010715 730 010750 731 010761 733 010775 741 010776 747 010777 748 011014 749 011020 751 011022 753 011024 754 011050 757 011051 758 011057 759 011063 763 011170 768 011300 771 011313 779 011314 787 011325 788 011330 791 011332 792 011352 793 011354 795 011365 796 011405 799 011406 800 011411 801 011417 803 011471 805 011534 806 011537 808 011540 ----------------------------------------------------------- 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