COMPILATION LISTING OF SEGMENT as_x25_mpx_ Compiled by: Multics PL/I Compiler, Release 30, of February 16, 1988 Compiled at: Honeywell Bull, Phoenix AZ, SysM Compiled on: 07/20/88 1018.8 mst Wed Options: optimize map 1 /****^ *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 4* * * 5* *********************************************************** */ 6 7 8 9 10 /****^ HISTORY COMMENTS: 11* 1) change(86-05-13,GJohnson), approve(86-05-13,MCR7387), 12* audit(86-05-13,Martinson), install(86-05-14,MR12.0-1055): 13* Correct error message documentation. 14* END HISTORY COMMENTS */ 15 16 17 /* AS_X25_MPX_ - Anserwing service piece of x25 multiplexer */ 18 19 /* Written October 1978 by Larry Johnson (as as_user1_mpx_) */ 20 /* Converted to as_vip7760_mpx_ 1/5/78 by J. Stern */ 21 /* Modified 7/31/79 by B.Westcott to support x25 instead */ 22 /* Modified November 1979 by C. Hornig for installation */ 23 /* Modified May 1982 by D. W. Cousins for direct interface to x25_tables in the fnp */ 24 /* Modified August 1982 by Robert Coren for additional argument to multiplexer_mgr_$mpx_crashed. */ 25 /* Modified July 1983 by Robert Coren to support "packet_threshold" parameter */ 26 /* Modified August 1983 by Jeff Schiller to implement the "reverse charging" facility. */ 27 /* Modified 1984-08-28 BIM for better error messages/tracing */ 28 /* Modified October 1984 by R.J.C. Kissel to set the error code for bad parameters, */ 29 /* and to do some better error checking on parameters, and to not allow packet sizes */ 30 /* of less than 55 (x25 error list #7). */ 31 /* Modified October 1984 by R.J.C. Kissel to support the "breakall_idle_timer" parameter. */ 32 33 /* format: style4,delnl,insnl,^ifthendo */ 34 as_x25_mpx_: 35 procedure; 36 37 /* Parameters */ 38 39 dcl arg_mpx_chan char (*); /* Name of the multiplexed channel */ 40 dcl arg_cdtp ptr; /* Address of the cdt */ 41 dcl arg_cdtep ptr; 42 dcl arg_chan_listp ptr; /* Pointer to a structure of channels to init */ 43 dcl arg_check_sw bit (1) aligned; /* Says whether or not to check configuration */ 44 dcl arg_event_infop ptr; 45 dcl arg_code fixed bin (35); 46 dcl arg_error_proc entry variable; 47 48 /* Automatic */ 49 50 dcl code fixed bin (35); 51 dcl add_info varying char (512); 52 dcl parm char (32); 53 dcl msg char (64); 54 dcl mpx_chan char (32); 55 dcl chan_listp ptr; 56 dcl 1 boot_info aligned like x25_load_info; 57 dcl error_proc entry (fixed bin, fixed bin, char (*), char (*), char (*), char (*)) variable; 58 59 /* Constants */ 60 61 dcl name char (15) int static options (constant) init ("as_x25_mpx_"); 62 63 /* External */ 64 65 dcl hphcs_$tty_control entry (char (*), char (*), ptr, fixed bin (35)); 66 dcl ioa_$rsnnl entry () options (variable); 67 dcl ipc_$delete_ev_chn entry (fixed bin (71), fixed bin (35)); 68 dcl ipc_$create_ev_chn entry (fixed bin (71), fixed bin (35)); 69 dcl ipc_$decl_ev_call_chn entry (fixed bin (71), entry, ptr, fixed bin, fixed bin (35)); 70 dcl cv_dec_check_ entry (char (*), fixed bin (35)) returns (fixed bin (35)); 71 dcl cv_float_ entry (char (*), fixed bin (35)) returns (float bin); 72 dcl sys_log_ entry options (variable); 73 dcl sys_log_$error_log entry options (variable); 74 dcl get_process_id_ entry returns (bit (36) aligned); 75 dcl multiplexer_mgr_$mpx_load_failed entry (char (*), fixed bin (35)); 76 dcl multiplexer_mgr_$mpx_loaded entry (char (*), fixed bin (35)); 77 dcl multiplexer_mgr_$mpx_crashed entry (char (*), bit (1) aligned, fixed bin (35)); 78 dcl ttt_info_$additional_info entry (char (*), char (*) var, fixed bin (35)); 79 80 dcl error_table_$action_not_performed ext fixed bin (35); 81 dcl error_table_$bad_conversion fixed bin (35) ext static; 82 83 dcl (addr, before, length, low, substr, unspec, index) builtin; 84 85 /* Based */ 86 87 dcl 1 chan_list aligned based (chan_listp), /* List of cdte entries of channels to boot */ 88 2 count fixed bin, 89 2 cdte_ptr (0 refer (chan_list.count)) ptr unal; 90 91 /* Entry to load a multiplexer */ 92 93 x25_load: 94 entry (arg_mpx_chan, arg_cdtp, arg_cdtep, arg_chan_listp, arg_check_sw, arg_code); 95 96 mpx_chan = arg_mpx_chan; 97 cdtp = arg_cdtp; 98 cdtep = arg_cdtep; 99 chan_listp = arg_chan_listp; 100 mpxep = addr (cdte.initial_command); 101 102 arg_code = 0; /* Start clean. */ 103 104 if cdte.event ^= 0 105 then call ipc_$delete_ev_chn (cdte.event, code); 106 call ipc_$create_ev_chn (cdte.event, code); 107 if code ^= 0 108 then do; 109 ev_chan_err: 110 call sys_log_$error_log (1, code, name, "Creating event channel for multiplexer ^a", mpx_chan); 111 arg_code = error_table_$action_not_performed; 112 return; 113 end; 114 call ipc_$decl_ev_call_chn (cdte.event, x25_wakeup_handler, cdtep, (20), code); 115 if code ^= 0 116 then go to ev_chan_err; 117 118 boot_info.version = X25_LOAD_INFO_VERSION_1; 119 boot_info.ev_chan = cdte.event; 120 boot_info.pid = get_process_id_ (); 121 boot_info.max_packet_size = 128; 122 boot_info.window_size = 2; 123 boot_info.breakall_idle_timer = 2; /* Default is 1/10 sec. */ 124 boot_info.net_type = ""; 125 boot_info.my_address = ""; 126 string (boot_info.flags) = ""b; 127 string (boot_info.frame_level_data.flags) = ""b; 128 boot_info.frame_size = 1064; 129 boot_info.k = 7; 130 boot_info.n2 = 20; 131 boot_info.t1 = 3; 132 boot_info.t3 = 3; 133 134 add_info = ""; 135 if (cdte.initial_terminal_type ^= low (length (cdte.initial_terminal_type))) 136 & (cdte.initial_terminal_type ^= "") 137 then do; 138 call ttt_info_$additional_info (cdte.initial_terminal_type, add_info, code); 139 if code ^= 0 140 then do; 141 call sys_log_$error_log (1, code, name, 142 "Cannot get additional info for terminal type ^a for multiplexer ^a.", 143 cdte.initial_terminal_type, mpx_chan); 144 add_info = ""; 145 end; 146 end; 147 148 if get_parm ("n_lc=", parm) 149 then do; 150 boot_info.n_lc = cv_dec_check_ (parm, code); 151 if (code ^= 0) | (boot_info.n_lc < 1) 152 then call bad_conv ("n_lc"); 153 end; 154 else do; 155 call sys_log_$error_log (1, 0, name, "^a: n_lc must be specified", mpx_chan); 156 arg_code = error_table_$action_not_performed; 157 return; 158 end; 159 160 if get_parm ("window_size=", parm) 161 then do; 162 boot_info.window_size = cv_dec_check_ (parm, code); 163 if code ^= 0 164 then call bad_conv ("window_size"); 165 166 if boot_info.window_size < 1 | boot_info.window_size > 7 167 then call bad_range ("window_size", "1", "7", parm); 168 end; 169 170 if get_parm ("packet_size=", parm) 171 then do; 172 boot_info.max_packet_size = cv_dec_check_ (parm, code); 173 if code ^= 0 174 then call bad_conv ("packet_size"); 175 176 if boot_info.max_packet_size < bsizec | boot_info.max_packet_size > 1024 177 then call bad_range ("packet_size", "60", "1024", parm); 178 /* bsizec = #chars in smallest tty buffer (= 60). */ 179 end; 180 181 if get_parm ("network=", parm) 182 then boot_info.net_type = substr (parm, 1, maxlength (boot_info.net_type)); 183 184 if get_parm ("address=", parm) 185 then boot_info.my_address = rtrim (ltrim (parm)); 186 187 if get_parm ("type=", parm) 188 then do; /* DCE or DTE options */ 189 if parm = "DCE" 190 then boot_info.flags.dce = "1"b; 191 else if parm = "DTE" 192 then boot_info.flags.dce = "0"b; 193 else call bad_choice ("type", "DCE", "DTE", parm); 194 end; 195 196 if get_parm ("link_protocol=", parm) 197 then do; /* LAP or LAPB options */ 198 if parm = "LAP" 199 then boot_info.flags.abm = "0"b; 200 else if parm = "LAPB" 201 then boot_info.flags.abm = "1"b; 202 else call bad_choice ("link_protocol", "LAP", "LAPB", parm); 203 end; 204 205 if get_parm ("frame_size=", parm) 206 then do; /* Make sure this code stays after the packet_size code. */ 207 boot_info.frame_size = cv_dec_check_ (parm, code); 208 if code ^= 0 209 then call bad_conv ("frame_size"); 210 211 if (boot_info.frame_size < 8) | (boot_info.frame_size > 8232) | (mod (boot_info.frame_size, 8) ^= 0) 212 | ((boot_info.frame_size - 40) < (8 * boot_info.max_packet_size)) 213 then call bad_range ("frame_size", "(8 * packet_size + 40)", "8232", parm); 214 end; 215 216 if get_parm ("K=", parm) 217 then do; 218 boot_info.k = cv_dec_check_ (parm, code); 219 if code ^= 0 220 then call bad_conv ("K"); 221 if (boot_info.k < 1) | (boot_info.k > 7) 222 then call bad_range ("K", "1", "7", parm); 223 end; 224 225 if get_parm ("T1=", parm) 226 then do; 227 boot_info.t1 = cv_float_ (parm, code); 228 if code ^= 0 229 then call bad_conv ("T1"); 230 if (boot_info.t1 < .1e0) | (boot_info.t1 > 50e0) 231 then call bad_range ("T1", ".1e0", "50e0", parm); 232 end; 233 234 if get_parm ("T3=", parm) 235 then do; 236 boot_info.t3 = cv_float_ (parm, code); 237 if code ^= 0 238 then call bad_conv ("T3"); 239 if (boot_info.t3 < .1e0) | (boot_info.t3 > 50e0) 240 then call bad_range ("T3", ".1e0", "50e0", parm); 241 end; 242 243 if get_parm ("N2=", parm) 244 then do; 245 boot_info.n2 = cv_dec_check_ (parm, code); 246 if code ^= 0 247 then call bad_conv ("N2"); 248 if (boot_info.n2 < 1) | (boot_info.n2 > 511) 249 then call bad_range ("N2", "1", "511", parm); 250 end; 251 252 if get_parm ("disc_first=", parm) 253 then do; /* disc_first yes or no */ 254 if parm = "yes" 255 then boot_info.flags.disc_first = "1"b; 256 else if parm = "no" 257 then boot_info.flags.disc_first = "0"b; 258 else call bad_choice ("disc_first", "yes", "no", parm); 259 end; 260 261 if get_parm ("bypass_restart=", parm) 262 then do; /* bypass_restart yes or no */ 263 if parm = "yes" 264 then boot_info.flags.bypass_restart = "1"b; 265 else if parm = "no" 266 then boot_info.flags.bypass_restart = "0"b; 267 else call bad_choice ("bypass_restart", "yes", "no", parm); 268 end; 269 270 if get_parm ("d_bit=", parm) 271 then do; /* d_bit yes or no */ 272 if parm = "yes" 273 then boot_info.flags.no_d = "0"b; 274 else if parm = "no" 275 then boot_info.flags.no_d = "1"b; 276 else call bad_choice ("d_bit", "yes", "no", parm); 277 end; 278 279 if get_parm ("trace_off=", parm) 280 then do; /* trace_off yes or no */ 281 if parm = "yes" 282 then boot_info.flags.trace_off = "1"b; 283 else if parm = "no" 284 then boot_info.flags.trace_off = "0"b; 285 else call bad_choice ("trace_off", "yes", "no", parm); 286 end; 287 288 if get_parm ("packet_threshold=", parm) 289 then do; 290 boot_info.long_packet_size = cv_dec_check_ (parm, code); 291 if code ^= 0 292 then call bad_conv ("packet_threshold"); 293 if boot_info.long_packet_size < 2 294 then call bad_range ("packet_threshold", "2", "Infinity", parm); 295 end; 296 297 else boot_info.long_packet_size = boot_info.max_packet_size + 1; 298 299 if get_parm ("collect=", parm) 300 then do; /* Whether outgoing calls are made collect */ 301 if parm = "yes" 302 then boot_info.flags.out_calls_collect = "1"b; 303 else if parm = "no" 304 then boot_info.flags.out_calls_collect = "0"b; 305 else call bad_choice ("collect", "yes", "no", parm); 306 end; 307 308 if get_parm ("breakall_idle_timer=", parm) 309 then do; /* Timer is in 1/20 sec. */ 310 boot_info.breakall_idle_timer = cv_dec_check_ (parm, code); 311 if code ^= 0 312 then call bad_conv ("breakall_idle_timer"); 313 if boot_info.breakall_idle_timer < 1 | boot_info.breakall_idle_timer > 255 314 then call bad_range ("breakall_idle_timer", "1", "255", parm); 315 end; 316 317 call hphcs_$tty_control (mpx_chan, "load_mpx", addr (boot_info), arg_code); 318 return_to_caller: 319 return; 320 321 bad_conv: 322 procedure (String); 323 dcl String char (*) parameter; 324 325 call sys_log_$error_log (1, error_table_$bad_conversion, name, 326 "Converting ^a ^a to a number for multiplexer ^a.", String, parm, mpx_chan); 327 arg_code = error_table_$bad_conversion; 328 goto return_to_caller; 329 end bad_conv; 330 331 get_parm: 332 procedure (Parm, Value) returns (bit (1) aligned); 333 dcl (Parm, Value) char (*); 334 dcl i fixed bin; 335 336 i = index (add_info, Parm); 337 if i = 0 338 then return ("0"b); 339 else do; 340 Value = before (substr (add_info, i + length (Parm)), " "); 341 return ("1"b); 342 end; 343 end get_parm; 344 345 bad_choice: 346 proc (type, choice1, choice2, actual_choice); 347 dcl (type, choice1, choice2, actual_choice) char (*) parameter; 348 349 call sys_log_$error_log (1, 0, name, 350 "Bad argument to parm ^a, should be ^a or ^a, but was ^a for multiplexer ^a.", type, choice1, choice2, 351 actual_choice, mpx_chan); 352 arg_code = error_table_$action_not_performed; /* Set the return code. */ 353 goto return_to_caller; /* it bad enought to go back */ 354 end bad_choice; 355 356 bad_range: 357 proc (type, lower_bound, upper_bound, actual_value); 358 dcl (type, lower_bound, upper_bound, actual_value) char (*) parameter; 359 360 call sys_log_$error_log (1, 0, name, 361 "Bad argument to parm ^a. Must have: ^a <= value <= ^a, but value = ^a, for multiplexer ^a.", type, 362 lower_bound, upper_bound, actual_value, mpx_chan); 363 arg_code = error_table_$action_not_performed; 364 goto return_to_caller; 365 end bad_range; 366 367 /* Wakeup handler for wakeups on the bootload event channel */ 368 369 x25_wakeup_handler: 370 entry (arg_event_infop); 371 372 event_call_info_ptr = arg_event_infop; 373 cdtep = event_call_info.data_ptr; 374 mpxep = addr (cdte.initial_command); 375 376 if event_call_info.ring ^= 0 /* If not ring-0 */ 377 then if event_call_info.sender ^= get_process_id_ () 378 then do; /* Trust only myself */ 379 call sys_log_ (1, "^a: Unexpected wakeup (^72.3b) from process ^w.", name, 380 unspec (event_call_info.message), event_call_info.sender); 381 return; 382 end; 383 384 mpx_chan = cdte.name; 385 386 if (event_call_info.message < 1) | (event_call_info.message > 3) 387 then do; 388 call sys_log_ (1, "^a: Wakeup for multiplexer ^a has invalid state code: ^d.", name, mpx_chan, 389 event_call_info.message); 390 return; 391 end; 392 393 msg = ""; 394 call ioa_$rsnnl ("Unexpected signal ^d in state ^a", msg, (0), event_call_info.message, 395 MPXE_STATE_NAMES (mpxe.state)); 396 if mpxe.state = MPX_BOOT 397 then if event_call_info.message ^= 1 398 then do; 399 msg = "Load failed"; 400 call multiplexer_mgr_$mpx_load_failed (mpx_chan, code); 401 end; 402 else do; 403 msg = "Load signalled"; 404 call multiplexer_mgr_$mpx_loaded (mpx_chan, code); 405 end; 406 else if mpxe.state = MPX_UP 407 then if event_call_info.message ^= 1 408 then do; 409 msg = "Crash signalled"; 410 call multiplexer_mgr_$mpx_crashed (mpx_chan, (event_call_info.message = 2), code); 411 end; 412 call sys_log_ (1, "^a: ^a for multiplexer ^a.", name, msg, mpx_chan); 413 return; 414 415 /* Entry to dump a multiplexer. */ 416 417 x25_dump: 418 entry (arg_mpx_chan, arg_cdtp, arg_cdtep, arg_code); 419 420 arg_code = 0; /* nothing to do really */ 421 return; 422 423 /* Entry called by cv_cmf to validate X25 multiplexers */ 424 425 x25_cv_cmf: 426 entry (arg_cdtp, arg_cdtep, arg_mpx_chan, arg_chan_listp, arg_error_proc); 427 428 cdtp = arg_cdtp; 429 cdtep = arg_cdtep; 430 mpx_chan = arg_mpx_chan; 431 chan_listp = arg_chan_listp; 432 error_proc = arg_error_proc; 433 434 /* Make sure this channel is not an FNP */ 435 436 if index (mpx_chan, ".") = 0 /* single component name => FNP */ 437 then call error_proc (1, 2, "A X.25 multiplexer cannot be configured as an FNP. ^a", "^a", mpx_chan, ""); 438 439 /* Validate subchannel names */ 440 441 if chan_list.count > 512 442 then call error_proc (3, 2, "More than 512 subchannels specified for X25 multiplexer ^a.", "^a", mpx_chan, ""); 443 444 return; 445 1 1 /* Begin include file as_mpx_state_names_.incl.pl1 */ 1 2 /* format: style3 */ 1 3 1 4 declare MPXE_STATE_NAMES (0:4) char (32) int static options (constant) 1 5 init ("free", "unknown", "down", "booting", "up"); 1 6 1 7 /* End include file as_mpx_state_names_.incl.pl1 */ 446 2 1 /* BEGIN INCLUDE FILE ... x25_load_info.incl.pl1 */ 2 2 /* Created 12/21/78 by J. Stern */ 2 3 /* Modified July 1983 by Robert Coren to add long_packet_size */ 2 4 /* Modified August 1983 by Jeff Schiller to implement the "reverse charging" facility. */ 2 5 /* Modified October 1984 by R.J.C. Kissel to a value for the idle timer in breakall mode. */ 2 6 2 7 dcl X25_LOAD_INFO_VERSION_1 char (8) aligned static options (constant) init ("x25load1"); 2 8 2 9 dcl x25_load_infop ptr; 2 10 dcl 1 x25_load_info aligned based (x25_load_infop), /* info for "load_mpx" control order */ 2 11 2 version char (8), /* version of this structure */ 2 12 2 ev_chan fixed bin (71), /* event channel to signal load completion */ 2 13 2 pid bit (36) aligned, /* process to which to signal events */ 2 14 2 n_lc fixed bin, /* number of VC's */ 2 15 2 max_packet_size fixed bin, /* largest packet we will send */ 2 16 2 window_size fixed bin, /* our send window */ 2 17 2 net_type char (8), /* type of national facilities */ 2 18 2 flags, 2 19 3 bypass_restart bit (1) unaligned, 2 20 3 no_d bit (1) unaligned, /* network does not support D bit */ 2 21 3 out_calls_collect bit (1) unaligned, 2 22 3 pad1 bit (33) unaligned, 2 23 2 my_address varying char (15), /* local address */ 2 24 2 frame_level_data, 2 25 3 flags, 2 26 4 dce bit (1) unaligned, 2 27 4 abm bit (1) unaligned, 2 28 4 disc_first bit (1) unaligned, 2 29 4 trace_off bit (1) unaligned, 2 30 3 frame_size fixed bin, 2 31 3 k fixed bin, 2 32 3 n2 fixed bin, 2 33 3 t1 float bin, 2 34 3 t3 float bin, 2 35 2 long_packet_size fixed bin, /* minimum size of long packet */ 2 36 2 breakall_idle_timer fixed bin; /* value of idle timer in 1/20 sec. for breakall mode. */ 2 37 2 38 /* END INCLUDE FILE ... x25_load_info.incl.pl1 */ 447 3 1 /* BEGIN INCLUDE FILE ... cdt.incl.pl1 */ 3 2 3 3 /* format: style3,idind25,indcomtxt */ 3 4 3 5 /* Channel Definition Table. 3 6* This table lists all of the hardware channels (ports) connected 3 7* to the system, and maintains the attributes of each one. 3 8* 3 9* PG 741230 3 10* Modified by Mike Grady 5/6/76 to add FNP info. 3 11* Modified by Tom Casey 7/29/76 to add more FNP info and a few other things. 3 12* Modified by Robert Coren 6/13/77 to make terminal types be character strings. 3 13* Modified July 1979 by T. Casey to add several variables for MR8.0 process preservation facility. 3 14* Modified December 1980 by E. N. Kittlitz to eliminate cdte.phone_no. 3 15* Modified March 1981 by Robert Coren to add "listening" flag for multiplexers and to add TANDD_SERVICE service_type. 3 16* Modified April 1981 by E. N. Kittlitz to add cdte.dial_ev_chn, cdte.recent_wakeup_time, cdte.recent_wakeup_count. 3 17* Modified July 1981 by T. Casey for MR9.0 to add dialup_flags.detach_after_hangup 3 18* Modified December 1981 by E. N. Kittlitz for cdte.leave_edited, cdte.hold_arg, 3 19* Modified September 1981 by Benson I. Margulies for cdt_mgr_'s tree of multiplexer's. 3 20* Modified August 1982 by E. N. Kittlitz for check_acs. 3 21* Modified January 1983 by Keith Loepere for generic_destination. 3 22* Modified August 1983 by Robert Coren to add mpxe.check and mpxe.retry_load. 3 23* Modified 831216 by E. N. Kittlitz for required_access_class. 3 24* Modified 84-04-01 by BIM to finish communications AIM: 3 25* access class ranges, 3 26* access_control flags. 3 27**/ 3 28 3 29 3 30 /****^ HISTORY COMMENTS: 3 31* 1) change(87-03-17,Beattie), approve(87-04-06,MCR7656), 3 32* audit(87-07-13,Parisek), install(87-08-04,MR12.1-1056): 3 33* Add support for answering service to use IOCBs when tty_ cannot be 3 34* used to service login channels. 3 35* END HISTORY COMMENTS */ 3 36 3 37 3 38 dcl CDT_version_5 fixed bin internal static initial (5) options (constant); 3 39 dcl CDT_version fixed bin internal static initial (6) options (constant); 3 40 3 41 dcl (cdtp, cdtep, fnpep, mpxep) 3 42 ptr; 3 43 3 44 dcl 1 cdt based (cdtp) aligned, /* all of the system channels */ 3 45 2 author like author_dcl.author, /* standard header */ 3 46 2 max_size fixed bin, /* maximum number of cdte's in 255K */ 3 47 2 current_size fixed bin, /* number of last cdte. */ 3 48 2 version fixed bin, 3 49 2 freep fixed bin, /* chain of free cdte's */ 3 50 2 n_cdtes fixed bin, /* number of used cdte's */ 3 51 2 meters_last_reset fixed bin (71), /* clock time dialup meters were reset */ 3 52 2 realtime_in_dialup fixed bin (71), /* Dialup meter */ 3 53 2 cpu_in_dialup fixed bin (71), /* .. */ 3 54 2 pf_in_dialup fixed bin, /* .. */ 3 55 2 pp_in_dialup fixed bin, /* .. */ 3 56 2 entries_to_dialup fixed bin, /* .. */ 3 57 2 flags, 3 58 3 go bit (1) unal, /* ans. serv. said "go ahead and answer the phones" */ 3 59 3 cdt_is_live bit (1) unal, /* cdt is active */ 3 60 3 mux_mgr_system_init 3 61 bit (1) unal, /* mux mgr has loaded top-levels */ 3 62 3 pad1 bit (33) unal, 3 63 2 acceptable_fnp_tbf fixed bin, /* acceptable minutes between FNP crashes */ 3 64 2 spare_channel_count fixed bin, /* number of extra channels to leave room for in ring0 */ 3 65 2 threads aligned like channel_threads, 3 66 /* root of non-fnp-top-level-multiplexers */ 3 67 2 pad2 (31) bit (36) aligned, /* pad header to 80 words */ 3 68 2 fnp_entry dim (8) like fnpe, /* max of 8 FNPs for now */ 3 69 2 cdt_entry dim (2500) like cdte; /* # of cdte's in 255K */ 3 70 3 71 3 72 dcl 1 cdte based (cdtep) aligned, /* a channel */ 3 73 2 in_use fixed bin, /* see dialup_values. 0=NOW_FREE */ 3 74 /**** * These variables are filled in when the CDTE is created by cv_cmf. They are not dynamic. */ 3 75 2 pad1 bit (36) aligned, 3 76 2 name char (32), /* ASCII name of channel */ 3 77 2 access_class (2) bit (72) aligned, /* access class range */ 3 78 2 comment char (48), /* printable message about channel */ 3 79 2 charge_type fixed bin (17) unal, /* billing group */ 3 80 2 service_type fixed bin (17) unal, /* service group (AS, ftp, mc) */ 3 81 2 line_type fixed bin (17) unal, /* tty line type (protocol) */ 3 82 2 baud_rate fixed bin (17) unal, /* 110, 133, 150, etc. */ 3 83 2 modem_type fixed bin (17) unal, /* type of modem on this channel */ 3 84 2 pad2 bit (18) unaligned, 3 85 2 answerback char (8), /* answerback string expected */ 3 86 2 initial_terminal_type 3 87 char (32) unal, /* as specified in the CMF */ 3 88 2 mpx_data unal, /* data used only for multiplexed channels */ 3 89 3 mpx_type fixed bin (17), /* type of multiplexing used */ 3 90 3 mpx_service fixed bin (17), /* service type, active or inactive */ 3 91 2 flags, 3 92 ( 3 attributes, 3 93 4 ck_answerback bit (1), /* ON means that ansbk must equal our records */ 3 94 4 audit_access_error 3 95 bit (1), /* ON means ck that person auth is inside access class range */ 3 96 /* this implies that the access_class describes a range of 3 97* legitimate user auths. */ 3 98 4 hardwired bit (1), /* ON means it is */ 3 99 4 set_modes bit (1), /* ON means to set initial modes at dialup */ 3 100 4 dont_read_answerback 3 101 bit (1), /* ON means don't try to read answerback */ 3 102 4 pada bit (4), 3 103 3 access_control unaligned, /* As below */ 3 104 4 dial_out bit (1), /* dialing user must be on ACS */ 3 105 4 priv_attach bit (1), /* PA_ user must be on ACS */ 3 106 4 dial_server bit (1), /* accept_dials process must be on acs */ 3 107 4 login bit (1), /* logging in user must be on acs */ 3 108 4 slave_dial bit (1), /* dialing user must give -user and be on acs */ 3 109 4 pado bit (3), 3 110 3 options, 3 111 4 execute_initial_command 3 112 bit (1), /* ON means to do it */ 3 113 4 attached_by_operator 3 114 bit (1), /* ON means temporary attachment. */ 3 115 4 private_line bit (1), /* ON means private_line sync modem in use */ 3 116 4 bsc_ebcdic bit (1), /* ON means bsc would like to use ebcdic code set */ 3 117 4 bsc_transparent bit (1), /* ON means bsc is in transparent mode */ 3 118 4 vip_pollselect bit (1), /* ON means VIP line is multidrop */ 3 119 4 autobaud bit (1), /* ON means auto baud detection this channel */ 3 120 4 generic_destination_present 3 121 bit (1), /* ON means that the initial_command field contains 3 122* a generic destination to match on dial_out or priv attach */ 3 123 4 use_iocb bit (1), /* ON means to use IOCB operations to support channel */ 3 124 4 pado bit (9) 3 125 ) unaligned, 3 126 2 initial_command char (64), /* pseudo first input line */ 3 127 /**** The following variables represent dynamic control info, and 3 128* are used mostly by dialup_ and asu_ */ 3 129 2 event fixed bin (71), /* event call channel for channel events */ 3 130 2 current_service_type fixed bin (17) unal, /* Current usage of line. */ 3 131 2 tra_vec fixed bin (17) unal, /* which section of dialup_ to do next */ 3 132 2 count fixed bin (17) unal, /* How many login tries he's had. */ 3 133 2 dialup_flags unal, /* flag bits for dialup to maintain */ 3 134 3 ppm bit (1) unal, /* print preaccess message for IBM terminals */ 3 135 3 cpo bit (1) unal, /* conditional printer-off (depends on answerback */ 3 136 3 wakeup_handler bit (1) unal, /* says who is wakeup handler for this channel */ 3 137 /* 0 = dialup_, 1 = mc_tty_ */ 3 138 3 save_arg bit (1) unal, /* -save login arg given */ 3 139 3 nosave_arg bit (1) unal, /* -nosave login arg given */ 3 140 3 detach_after_hangup 3 141 bit (1) unal, /* remember WAIT_DETACH when setting WAIT_BEFORE_HANGUP */ 3 142 3 leave_edited bit (1) unal, /* user control of edited mode */ 3 143 3 hold_arg bit (1) unal, /* -hold arg given */ 3 144 3 no_hold_arg bit (1) unal, /* -no_hold arg given */ 3 145 3 immediate_arg bit (1) unal, /* -immediate arg given */ 3 146 3 current_access_class_valid 3 147 bit (1) unal, /* dialup_ or lg_ctl_ has determined the current_access_class */ 3 148 3 pad bit (7) unal, 3 149 2 twx fixed bin, /* channel device index */ 3 150 2 state fixed bin, /* channel state */ 3 151 2 tty_id_code char (4), /* channel id (answerback) */ 3 152 2 current_terminal_type 3 153 char (32) unal, /* most recently-set terminal type */ 3 154 2 process ptr unal, /* ptr to ATE owning this channel */ 3 155 2 dialed_to_procid bit (36), /* Dialed channels remember owner's proc id */ 3 156 2 next_channel fixed bin (17) unal, /* cdte index of next channel for this process */ 3 157 2 cur_line_type fixed bin (17) unal, /* line type of currently dialed terminal */ 3 158 2 current_access_class (2) bit (72) aligned, /* This is a range, but at this time it must be a null range. 3 159* We do not yet define multi-class connections, but we will someday. */ 3 160 2 disconnected_ate_index 3 161 fixed bin (17) unal, /* index of ate of disconnected process */ 3 162 2 dial_ctl_ring fixed bin (3) unsigned unaligned, 3 163 /* used by dial_ctl_ to record ring of priv_attach or dial_out attachments */ 3 164 2 dial_rq_privileged bit (1) unaligned, /* used by dial ctl to record comm priv from priv_attach or dial_out request */ 3 165 2 pad3 bit (14) unaligned, 3 166 /**** The following variables are kept for metering purposes. */ 3 167 2 n_dialups fixed bin, /* number of times channel has been dialed up */ 3 168 2 n_logins fixed bin, /* number of login sessions on this channel */ 3 169 2 dialed_up_time fixed bin (35), /* total time channel was dialed up (seconds) */ 3 170 2 dialup_time fixed bin (71), /* time of present dialup */ 3 171 2 disconnected_proc_command 3 172 fixed bin (12) unsigned unal, 3 173 /* 1 to 5 for -list,-create,-connect,-new_proc,-destroy */ 3 174 2 disconnected_proc_number 3 175 fixed bin (12) unsigned unal, 3 176 /* {N} in -connect {N}, -new_proc {N}, -destroy {N} */ 3 177 2 n_disconnected_procs fixed bin (12) unsigned unal, 3 178 /* number of disconnected processes that user has */ 3 179 2 recent_wakeup_count fixed bin, /* counter to detect channel wakeup loop */ 3 180 2 recent_wakeup_time fixed bin (71), /* time of first wakeup in suspected channel wakeup loop */ 3 181 2 dial_ev_chn fixed bin (71), /* Dialed channels remember master's IPC channel */ 3 182 /**** cdt_mgr_ uses these to maintain the tree of channels. They ****/ 3 183 /**** really belong in the mpxe, but it is full up, and the cdte ****/ 3 184 /**** had the space. */ 3 185 2 threads aligned like channel_threads, 3 186 /**** The use name is that of the user who gave the dial or slave ****/ 3 187 /**** preaccess request. ****/ 3 188 2 user_name unaligned, 3 189 3 person char (20) unaligned, 3 190 3 project char (9) unaligned, 3 191 3 pad char (3) unaligned, /* no tag */ 3 192 2 iocbp ptr unaligned; /* 104 words */ 3 193 3 194 3 195 dcl generic_destination based char (32); /* used to match destinations on dial_out and priv_attach, 3 196* overlays initial_command field for slave and autocall lines */ 3 197 3 198 3 199 3 200 dcl 1 fnpe based (fnpep) aligned, /* an FNP */ 3 201 /* These variables are filled in from the CMF */ 3 202 2 type fixed bin, /* type of this FNP, DN355, DN6670, etc. */ 3 203 2 memory fixed bin, /* amount of memory on this FNP */ 3 204 2 nlslas fixed bin, /* number of lslas on this FNP */ 3 205 2 nhslas fixed bin, /* number of hslas on this FNP */ 3 206 2 service_type fixed bin, /* service type */ 3 207 2 mpx_type fixed bin, /* type of multiplexer on this fnp */ 3 208 2 coreimage char (168), /* pathname of image, maybe in >sl1 */ 3 209 /**** The following are used during system operation to remember the state of the FNP */ 3 210 2 boot_segp ptr, /* ptr to seg used for bootload */ 3 211 2 boot_ev_chan fixed bin (71), /* for ring0 to report crashes and bootload complete */ 3 212 2 mpxe like mpxe, /* standard multiplexer data */ 3 213 2 threads aligned like channel_threads, 3 214 /* same mpx threads as channel */ 3 215 2 pad3 (25) fixed bin; /* pad to 96 words per entry */ 3 216 3 217 /* This structure describes the data necessary to control a multiplexer. 3 218* For FNP's., a copy appears in the fnpe. For communications lines, it 3 219* overlays the initial_command field in the cdte. */ 3 220 3 221 dcl 1 mpxe based (mpxep) aligned, 3 222 2 state fixed bin, /* current state, up, down, loading */ 3 223 2 current_service_type fixed bin, /* usually = service type, unless cdt installation changes it */ 3 224 2 current_mpx_type fixed bin, /* type of multiplexer currently running */ 3 225 2 n_bootloads fixed bin, /* count of load attempts */ 3 226 2 time_initial_load fixed bin (71), /* time this MPX first completed a load */ 3 227 2 time_last_load fixed bin (71), /* time MPX last completed a bootload */ 3 228 2 time_last_crash fixed bin (71), /* time MPX last crashed */ 3 229 2 time_load_start fixed bin (71), /* time current load started */ 3 230 2 last_tbf fixed bin, /* number of minutes this MPX was up last bootload */ 3 231 2 flags unal, 3 232 3 go bit (1), /* start MPX after it loads */ 3 233 3 listening bit (1), /* listen has been done on subchannels */ 3 234 3 check bit (1), /* loaded with check option */ 3 235 3 retry_load bit (1), /* reload if load fails */ 3 236 3 pad1 bit (32), 3 237 2 pad2 (2) fixed bin; /* pad to 16 words */ 3 238 3 239 /* These threads define the tree of multiplexers in the cdt. */ 3 240 /* next_sister and prev_sister link nodes at the same level, ordered */ 3 241 /* by alpha sort order of the channel name. Daughter points to the */ 3 242 /* first child of this node, if any. Daughter count is the number */ 3 243 /* of children, as a consistency check. Mother is a back pointer to */ 3 244 /* the parent, present in all the children, not just the first. */ 3 245 /* threads are cdt indexes. If positive, they index the cdt_entry array */ 3 246 /* in cdt, if negative, they are the negative of an index into the fnp_entry */ 3 247 /* array. If zero, they refer to the top of the non-fnp mpx tree. */ 3 248 3 249 dcl 1 channel_threads aligned based, 3 250 2 next_sister fixed bin unaligned, 3 251 2 prev_sister fixed bin unaligned, 3 252 2 daughter fixed bin unaligned, 3 253 2 mother fixed bin unaligned, /* negative is a fnpx, positive a cdtx */ 3 254 2 pad bit (18) unaligned, 3 255 2 daughter_count fixed bin unaligned; 3 256 3 257 /* Values for cdte.service_type field */ 3 258 3 259 dcl ( 3 260 ANS_SERVICE init (1), /* login or dial */ 3 261 FTP_SERVICE init (2), /* file transfer service */ 3 262 MC_SERVICE init (3), /* message coordinator */ 3 263 SLAVE_SERVICE init (4), /* special channel */ 3 264 DIAL_SERVICE init (5), /* transient state */ 3 265 DIAL_OUT_SERVICE init (6), /* auto call line */ 3 266 MPX_SERVICE init (8), /* ring0 demultiplexed line */ 3 267 TANDD_SERVICE init (9) /* transient state, attached for T & D */ 3 268 ) fixed bin internal static options (constant); 3 269 3 270 /* Values for service type in both cdte and fnpe */ 3 271 3 272 dcl ( 3 273 INACTIVE init (7), /* not to be used, even though configured */ 3 274 ACTIVE init (1) 3 275 ) /* for FNP only, configured and to be used */ 3 276 fixed bin internal static options (constant); 3 277 3 278 /* Value for both cdte.in_use and fnpe.state */ 3 279 3 280 dcl NOT_CONFIGURED fixed bin int static init (-1) options (constant); 3 281 /* was not configured at Multics bootload time */ 3 282 3 283 /* NOTE: an INACTIVE channel can be made active by operator command or CDT installation, 3 284* but a NOT_CONFIGURED channel can not be used until its multiplexer is reloaded */ 3 285 3 286 /* Value for cdte.in_use */ 3 287 3 288 dcl CHANNEL_DELETED fixed bin int static init (-2); 3 289 /* channel deleted by CDT installation */ 3 290 3 291 /* NOTE: a configured channel being deleted by a CDT installation is set to CHANNEL_DELETED. 3 292* multiplexer_mgr_ sets cdte.in_use to NOW_FREE at the next reload of its multiplexer. 3 293* A NOT_CONFIGURED channel is set to NOW_FREE immediately when deleted by a CDT installation. */ 3 294 3 295 3 296 /* Values for mpxe.state field */ 3 297 3 298 dcl ( 3 299 FNP_FREE init (0), /* this fnpe is not used */ 3 300 FNP_UNKNOWN init (1), /* FNP is in some unknown state */ 3 301 FNP_DOWN init (2), /* FNP crashed, not yet reloaded */ 3 302 FNP_BOOT init (3), /* FNP has been booted, but no response yet */ 3 303 FNP_UP init (4) /* FNP is up and running fine */ 3 304 ) fixed bin internal static options (constant); 3 305 3 306 dcl ( 3 307 MPX_FREE init (0), /* this mpxe is not used */ 3 308 MPX_UNKNOWN init (1), /* MPX is in some unknown state */ 3 309 MPX_DOWN init (2), /* MPX crashed, not yet reloaded */ 3 310 MPX_BOOT init (3), /* MPX has been booted, but no response yet */ 3 311 MPX_UP init (4) /* MPX is up and running fine */ 3 312 ) fixed bin internal static options (constant); 3 313 4 1 /* BEGIN INCLUDE FILE ... fnp_types.incl.pl1 */ 4 2 4 3 4 4 4 5 /****^ HISTORY COMMENTS: 4 6* 1) change(88-06-15,Berno), approve(88-07-13,MCR7928), 4 7* audit(88-06-15,Parisek), install(88-07-19,MR12.2-1061): 4 8* Add data needed for the uncp multiplexer (DSA gateway) interface 4 9* implementation. 4 10* END HISTORY COMMENTS */ 4 11 4 12 4 13 /* Values for fnpe.type field */ 4 14 /* 4 15* Created 79 May 14 by Art Beattie by splitting information out from cdt.incl.pl1 4 16* Added in March 1982 - DN7100.fd. 4 17**/ 4 18 4 19 dcl (DN355 init (1), /* a DataNet 355 FNP */ 4 20 DN6600 init (2), /* a DataNet 6600 FNP */ 4 21 DN6670 init (3), /* a Honeywell Bull Network Processor (18x) */ 4 22 DN7100 init (4) /* The DSA Datanet architecture (DN7) */ 4 23 ) fixed bin internal static options (constant); 4 24 4 25 dcl fnp_types (4) char (8) int static options (constant) 4 26 init ("DN355", "DN6600", "DN6670", "DN7100"); 4 27 4 28 dcl fnp_models (4) fixed bin (17) int static options (constant) 4 29 init (355, 6600, 6670, 7100); 4 30 4 31 dcl supported_fnp (4) bit (1) int static options (constant) 4 32 init ("0"b, "0"b, "1"b, "1"b); 4 33 4 34 4 35 /* END INCLUDE FILE ... fnp_types.incl.pl1 */ 3 314 3 315 3 316 /* END INCLUDE FILE ... cdt.incl.pl1 */ 448 5 1 /* BEGIN INCLUDE FILE ... author_dcl.incl.pl1 */ 5 2 5 3 /* This include file declares the "author" substructure 5 4* in a form suitable for using the PL/I "like" attribute. 5 5* 5 6* Written 750304 by PG 5 7**/ 5 8 5 9 dcl 1 author_dcl aligned based, 6 1 /* BEGIN INCLUDE FILE author.incl.pl1 */ 6 2 6 3 /* the "author" items must always be the first ones in the table. The 6 4* module which moves the converted table to the System Control process 6 5* fills in these data items and assumes them to be at the head of the segment 6 6* regardless of the specific table's actual declaration. The variables 6 7* "lock" and "last_install_time" used to be "process_id" and "ev_channel" 6 8* respectively. For tables installed in multiple processes, these 6 9* are to be used to lock out multiple installations. */ 6 10 6 11 /* Lock should be used as a modification lock. Since, in general, 6 12* entries may not be moved in system tables, even by installations, 6 13* it is sufficient for only installers and programs that change threads 6 14* to set or respect the lock. Simply updating data in an entry 6 15* requires no such protection. 6 16* 6 17* Last_install_time is used by readers of system tables to detect 6 18* installations or other serious modifications. By checking it before 6 19* and after copying a block of data, they can be protected against 6 20* modifications. 6 21* 6 22* Modules that set the lock should save proc_group_id, and then 6 23* put their group id there for the time they hold the lock. 6 24* if they do not actually install the, they should restore the group id. 6 25**/ 6 26 6 27 2 author aligned, /* validation data about table's author */ 6 28 3 proc_group_id char (32), /* process-group-id (personid.projectid.tag) */ 6 29 3 lock bit (36), /* installation lock */ 6 30 3 update_attributes bit (1) unal, /* update/add/delete attributes */ 6 31 3 update_authorization bit (1) unal, /* update only authorizations */ 6 32 3 deferral_notified bit (1) unal, /* installer notified of deferral of installation */ 6 33 3 pad bit (33) unaligned, 6 34 3 last_install_time fixed bin (71), 6 35 3 table char (4), /* name of table, e.g., SAT MGT TTT RTDT PDT etc. */ 6 36 3 w_dir char (64), /* author's working directory */ 6 37 6 38 /* END INCLUDE FILE author.incl.pl1 */ 5 10 5 11 2 pad; 5 12 5 13 /* END INCLUDE FILE ... author_dcl.incl.pl1 */ 449 7 1 /* BEGIN INCLUDE FILE ... line_types.incl.pl1 */ 7 2 7 3 /* Written November 10 1975 by Paul Green */ 7 4 /* Modified October 1978 by Larry Johnson to include line_type_names */ 7 5 /* Modified 12/19/78 by J. Stern to add POLLED_VIP line type */ 7 6 /* Modified 9/27/79 by J. Stern to add X25LAP line type */ 7 7 /* Modified Spring 1981 by Charles Hornig to add HDLC line type */ 7 8 /* Modified May 1981 by Robert Coren to add COLTS line type */ 7 9 /* Modified September 1984 by Robert Coren to correctly count VIP as a synchronous line type */ 7 10 7 11 7 12 /****^ HISTORY COMMENTS: 7 13* 1) change(86-02-25,Negaret), approve(87-07-13,MCR7679), 7 14* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 7 15* Add a DSA line type. 7 16* 2) change(87-03-17,Beattie), approve(87-07-13,MCR7656), 7 17* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 7 18* Add HASP_OPR to identify HASP workstation consoles with login service. 7 19* END HISTORY COMMENTS */ 7 20 7 21 7 22 declare (LINE_MC initial (-2), 7 23 LINE_TELNET initial (-1), 7 24 LINE_UNKNOWN initial (0), 7 25 LINE_ASCII initial (1), 7 26 LINE_1050 initial (2), 7 27 LINE_2741 initial (3), 7 28 LINE_ARDS initial (4), 7 29 LINE_SYNCH initial (5), 7 30 LINE_G115 initial (6), 7 31 LINE_BSC initial (7), 7 32 LINE_ETX initial (8), 7 33 LINE_VIP initial (9), 7 34 LINE_ASYNC1 initial (10), 7 35 LINE_ASYNC2 initial (11), 7 36 LINE_ASYNC3 initial (12), 7 37 LINE_SYNC1 initial (13), 7 38 LINE_SYNC2 initial (14), 7 39 LINE_SYNC3 initial (15), 7 40 LINE_POLLED_VIP initial (16), 7 41 LINE_X25LAP initial (17), 7 42 LINE_HDLC initial (18), 7 43 LINE_COLTS initial (19), 7 44 LINE_DSA initial (20), 7 45 LINE_HASP_OPR initial (21) 7 46 ) fixed bin internal static options (constant); 7 47 7 48 dcl max_line_type fixed bin int static options (constant) init (21); 7 49 7 50 declare n_sync_line_types fixed bin int static options (constant) init (10); 7 51 7 52 declare sync_line_type (10) fixed bin int static options (constant) init (5, 6, 7, 9, 13, 14, 15, 16, 17, 18); 7 53 7 54 dcl line_types (-2:21) char (16) int static options (constant) init ( 7 55 "MC", /* -2 */ 7 56 "TELNET", /* -1 */ 7 57 "none", /* 0 */ 7 58 "ASCII", /* 1 */ 7 59 "1050", /* 2 */ 7 60 "2741", /* 3 */ 7 61 "ARDS", /* 4 */ 7 62 "Sync", /* 5 */ 7 63 "G115", /* 6 */ 7 64 "BSC", /* 7 */ 7 65 "202ETX", /* 8 */ 7 66 "VIP", /* 9 */ 7 67 "ASYNC1", /* 10 */ 7 68 "ASYNC2", /* 11 */ 7 69 "ASYNC3", /* 12 */ 7 70 "SYNC1", /* 13 */ 7 71 "SYNC2", /* 14 */ 7 72 "SYNC3", /* 15 */ 7 73 "POLLED_VIP", /* 16 */ 7 74 "X25LAP", /* 17 */ 7 75 "HDLC", /* 18 */ 7 76 "COLTS", /* 19 */ 7 77 "DSA", /* 20 */ 7 78 "HASP_OPR"); /* 21 */ 7 79 7 80 /* END INCLUDE FILE ... line_types.incl.pl1 */ 450 8 1 /* BEGIN INCLUDE FILE event_call_info.incl.pl1 */ 8 2 8 3 /* T. Casey, May 1978 */ 8 4 8 5 dcl event_call_info_ptr ptr; 8 6 8 7 dcl 1 event_call_info aligned based (event_call_info_ptr), /* argument structure passed to event call procedure */ 8 8 2 channel_id fixed bin (71), /* event channel on which wakeup occurred */ 8 9 2 message fixed bin (71), /* 72 bits of information passed by sender of wakeup */ 8 10 2 sender bit (36), /* process id of sender */ 8 11 2 origin, 8 12 3 dev_signal bit (18) unaligned, /* "1"b if device signal */ 8 13 3 ring fixed bin (17) unaligned, /* ring from which sent */ 8 14 2 data_ptr ptr; /* ptr given to dcl_event_call_channel */ 8 15 8 16 /* END INCLUDE FILE event_call_info.incl.pl1 */ 451 452 453 /* tty_buf is only included to use the value of bsizec, the size of the smallest tty buffer. */ 454 9 1 /* BEGIN INCLUDE FILE ... tty_buf.incl.pl1 */ 9 2 9 3 /* Date Last Modified and Reason 9 4* Created 04/19/77 by J. Stern (from part of tty.incl.pl1) 9 5* Modified January 1978 by Robert Coren and Larry Johnson for variable-size buffers 9 6* Modified 2/6/78 by Robert Coren to make circular_queue size settable 9 7* Modified Aug 78 by J. Nicholls to move the buffer block format to a file of its own 9 8* and wtcb to its own plus other modification for ring 0 multiplexing, tty_buffer_block.incl.pl1 9 9* Modified 7/17/79 by B. Greenberg for echo negotiation meters. 9 10* Modified November 1979 by C. Hornig for MCS tracing. 9 11* Modified December 1979 by Robert Coren to add FNP channel lock meter 9 12* Modified February 1980 by Robert Coren to remove all references to circular buffer 9 13* Modified March 1980 by Robert Coren to reorganize metering information 9 14* Modified December 1980 by Robert Coren to add FNP-specific events 9 15* Modified 24 March 1982, W. Olin Sibert, to add mcs_timer support, recoverable_error_severity 9 16* Modified November 1984 by Robert Coren to add tty_area_lock 9 17**/ 9 18 9 19 dcl ttybp ptr, 9 20 tty_buf$ ext static, /* tty buffer segment */ 9 21 tty_ev fixed bin int static options (constant) init (57), /* event used for wait and notify */ 9 22 abs_buf_limit fixed bin (18) static options (constant) init (64), /* minimum number of words we will leave free */ 9 23 input_bpart fixed bin (18) static options (constant) init (2), /* fraction of bleft we will allow for input */ 9 24 output_bpart fixed bin (18) static options (constant) init (4); /* fraction of bleft we will allow for output */ 9 25 9 26 9 27 dcl qblock_size fixed bin int static options (constant) init (16); /* size in words of a delay queue block */ 9 28 dcl bsizec fixed bin int static options (constant) init (60); /* number of characters in smallest buffer */ 9 29 dcl buf_per_second fixed bin int static options (constant) init (10); /* for figuring out max. buffer size based on speed */ 9 30 9 31 dcl FNP_DUMP_PATCH_EVENT fixed bin int static options (constant) init (58); 9 32 dcl FNP_METER_EVENT fixed bin int static options (constant) init (59); 9 33 dcl TTY_AREA_LOCK_EVENT bit (36) aligned int static options (constant) init ("74"b3); 9 34 9 35 dcl 1 tty_buf aligned based (ttybp), /* declaration of tty buffer seg */ 9 36 2 slock bit (36), /* per system lock */ 9 37 2 absorig fixed bin (24), /* abs address of this seg */ 9 38 2 borig bit (18), /* index of start of buffer area */ 9 39 2 bleft fixed bin (18), /* words left in pool */ 9 40 2 free bit (18), /* pointer to start of free pool */ 9 41 2 fnp_config_flags (8) bit (1) unal, /* flag(i) ON if fnp(i) configured */ 9 42 2 padb1 bit (28) unaligned, 9 43 2 lct_ptr ptr, /* pointer to logical channel table */ 9 44 9 45 2 nrawread fixed bin (35), /* number of raw chars input, total */ 9 46 2 nrawwrite fixed bin (35), /* number of raw characters output */ 9 47 2 ninchars fixed bin (35), /* total input chars after conversion */ 9 48 2 noutchars fixed bin (35), /* total output chars before conversion */ 9 49 2 readblocked fixed bin (35), /* number of times go input blocked */ 9 50 2 nblocked fixed bin (35), /* number of times process output blocked */ 9 51 2 minbuf fixed bin (18), /* min output buffer size */ 9 52 2 totbuf fixed bin (35), /* divide by nblocked to get ave buffer size */ 9 53 9 54 2 preconverted fixed bin (35), /* number of converted chars held in tty_buf */ 9 55 2 input_restart fixed bin, /* number of times tty_read had to start over */ 9 56 2 output_restart fixed bin, /* number of times tty_write has had to start over */ 9 57 2 output_buffer_overflow fixed bin, /* number of times tty_write has run out of buffers */ 9 58 2 read_time fixed bin (71), /* total time spent in tty_read */ 9 59 2 write_time fixed bin (71), /* total time spent in tty_write */ 9 60 9 61 2 read_calls fixed bin (35), /* number of calls to tty_read */ 9 62 2 write_calls fixed bin (35), /* number of calls to tty_write */ 9 63 2 bfx fixed bin, /* used in calls to iobm */ 9 64 2 nquits fixed bin (35), /* number of quits */ 9 65 2 space_needed_data, 9 66 3 space_needed bit (1) unal, /* space_needed bit on in at least 1 lcte */ 9 67 3 space_needed_calls fixed bin (34) unal, /* meter of uses of this facility */ 9 68 2 space_lock_count fixed bin (35), /* count of times tty_buf.slock locked */ 9 69 2 space_lock_wait_count fixed bin (35), /* count of times necessary to loop to lock it */ 9 70 2 space_lock_wait_time fixed bin (35), /* total time looped trying to lock it */ 9 71 9 72 2 alloc_calls fixed bin (35), /* total number of allocations performed in tty_buf */ 9 73 2 free_calls fixed bin (35), /* total number of freeings in tty_buf */ 9 74 2 alloc_time fixed bin (35), /* time spent masked in tty_space_man$get entries */ 9 75 2 free_time fixed bin (35), /* time spent masked in tty_space_man$free entries */ 9 76 2 total_alloc_steps fixed bin (35), /* number of steps thru free chain while doing above */ 9 77 2 alloc_failures fixed bin (35), /* number of unsuccessful attempts to allocate space */ 9 78 2 cumulative_input_space fixed bin (71), /* cumulative amount of space allocated for input */ 9 79 9 80 2 cumulative_output_space fixed bin (71), /* cumulative amount of space allocated for output */ 9 81 2 cumulative_control_space fixed bin (71), /* cumulative amount of space allocated by tty_space_man$get_space */ 9 82 2 input_space_updates fixed bin (35), /* number of increments to cumulative_input_space */ 9 83 2 output_space_updates fixed bin (35), /* number of increments to cumulative_output_space */ 9 84 2 control_space_updates fixed bin (35), /* number of increments to cumulative_control_space */ 9 85 2 minimum_free_space fixed bin (18), /* smallest amount of free space ever available */ 9 86 9 87 2 current_input_space fixed bin (18), /* amount of space currently allocated for input */ 9 88 2 current_output_space fixed bin (18), /* amount of space currently allocated for output */ 9 89 2 current_control_space fixed bin (18), /* amount of space currently allocated by get_space */ 9 90 2 tty_lock_calls fixed bin (35), /* number of calls to tty_lock$lock entries */ 9 91 2 found_channel_locked fixed bin (35), /* number of times tty_lock found channel already locked */ 9 92 2 max_wait_time fixed bin (35), /* longest time waited for any channel lock */ 9 93 2 total_wait_time fixed bin (71), /* total amount of time spent waiting for channel locks */ 9 94 9 95 2 echo_neg_time fixed bin (71), /* cumulative time spent doing echo negotiation */ 9 96 2 echo_neg_interrupts fixed bin (35), /* Echo-negotiated shipments */ 9 97 2 echo_neg_r0_chars fixed bin (35), /* Chars echoed by ring 0 */ 9 98 2 echo_neg_mux_chars fixed bin (35), /* Chars echoed by mux */ 9 99 2 echo_neg_sndopt_restarts fixed bin (35), /* Echo reinits */ 9 100 2 echo_neg_mux_nonecho fixed bin (35), 9 101 2 echo_neg_entries fixed bin (35), /* Entries into negotiate */ 9 102 9 103 2 echo_neg_mux_inhibit bit (1) aligned, /* For testing */ 9 104 2 n_queued_interrupts fixed bin (35), /* number of interrupts queued by tty_lock */ 9 105 2 trace unaligned, /* tracing information */ 9 106 3 flags, 9 107 4 enable bit, /* global tracing control */ 9 108 4 default_mode bit, /* whether to trace channels by default */ 9 109 4 read bit, /* read */ 9 110 4 write bit, /* write */ 9 111 4 data bit, /* buffers on reads and writes */ 9 112 4 control bit, /* control, priv_control, and hpriv_control */ 9 113 4 modes bit, /* (get set check)_modes */ 9 114 4 interrupt bit, /* interrupt, interrupt_later */ 9 115 4 init bit, /* init_multiplexer, terminate_multiplexer */ 9 116 4 start bit, /* start, stop */ 9 117 4 shutdown bit, /* shutdown */ 9 118 4 space_man bit, /* tty_space_man$* */ 9 119 4 pad_flags bit (6), 9 120 3 data_offset bit (18), /* offset of tracing data */ 9 121 9 122 2 recoverable_error_severity fixed bin, /* Syserr severity for recoverable MCS errors */ 9 123 9 124 2 timer_lock bit (36) aligned, /* Lock owned by mcs_timer */ 9 125 2 next_timer_offset bit (18) aligned, /* Offset of next timer to come due */ 9 126 2 timer_count fixed bin, /* Number of timers outstanding */ 9 127 2 timer_process bit (36) aligned, /* Who is doing timers? */ 9 128 9 129 2 timer_ev_chn fixed bin (71), /* How get get him */ 9 130 2 timer_lock_wait_time fixed bin (71), /* CPU time spent spinning on timer lock */ 9 131 9 132 2 timer_lock_count fixed bin (35), /* Number of times timer lock locked */ 9 133 2 timer_lock_wait_count fixed bin (35), /* Number of times imer lock waited on */ 9 134 2 timer_call_time fixed bin (71), /* CPU time spent in call side timer operations */ 9 135 9 136 2 timer_polling_time fixed bin (71), /* CPU time spent polling (including channel_manager) */ 9 137 2 timer_set_calls fixed bin (35), /* Number of calls to mcs_timer$set, set_wired */ 9 138 2 timer_reset_calls fixed bin (35), /* Number of calls to mcs_timer$reset, reset_wired */ 9 139 9 140 2 timer_change_calls fixed bin (35), /* Number of calls to mcs_timer$change, change_wired */ 9 141 2 timer_poll_calls fixed bin (35), /* Number of calls to mcs_timer$poll */ 9 142 2 timer_error_calls fixed bin (35), /* Number of mcs_timer calls ending with recoverable errors */ 9 143 2 timer_duplicate_pollings fixed bin (35), /* Number of timer polling found in progress on other CPU */ 9 144 9 145 2 tty_area_lock like hc_fast_lock, /* to prevent contention in allocating/freeing in tty_area */ 9 146 9 147 2 pad2 (13) fixed bin (35), 9 148 9 149 2 free_space fixed bin; /* start of free space region */ 9 150 9 151 10 1 /* BEGIN INCLUDE FILE...hc_fast_lock.incl.pl1 */ 10 2 10 3 /* Created November 1984 by Robert Coren to replace hc_lock.incl.pl1 */ 10 4 10 5 /* Lock format suitable for use with lock$lock_fast, unlock_fast */ 10 6 10 7 /* format: style3 */ 10 8 10 9 declare lock_ptr pointer; 10 10 declare 1 hc_fast_lock aligned based (lock_ptr), 10 11 2 pid bit (36) aligned, /* holder of lock */ 10 12 2 event bit (36) aligned, /* event associated with lock */ 10 13 2 flags aligned, 10 14 3 notify_sw bit (1) unaligned, 10 15 3 pad bit (35) unaligned; /* certain locks use this pad, like dirs */ 10 16 10 17 /* END INCLUDE FILE...hc_fast_lock.incl.pl1 */ 9 152 9 153 9 154 /* END INCLUDE FILE ... tty_buf.incl.pl1 */ 455 456 457 /* BEGIN MESSAGE DOCUMENTATION 458* 459* Message: 460* as_x25_mpx_: ERROR. Creating event channel for multiplexer MPX. 461* 462* S: as (severity1) 463* 464* T: In response to an operator load_mpx command or during system start up. 465* 466* M: An ipc_ error occurred while trying to initialize the multiplexer. 467* 468* A: $notify 469* 470* 471* Message: 472* as_x25_mpx_: ERROR. Cannot get additional info for terminal type TTP for multiplexer MPX. 473* 474* S: as (severity1) 475* 476* T: In response to an operator load_mpx command or during system start up. 477* 478* M: An error occurred while retrieving the parameters of the multiplexer 479* from the TTT. 480* Either the terminal type specified in the CDT does not exist or it 481* does not contain the required additional_info field. 482* 483* A: Check that the CMF and TTF contain the proper information. 484* 485* 486* Message: 487* as_x25_mpx_: MPX: n_lc must be specified. 488* 489* S: as (severity1) 490* 491* T: In response to an operator load_mpx command for during system startup. 492* 493* M: The TTF entry for the X.25 multiplexer does not specify the number of logical channels. 494* 495* A: Correct the TTF and reload the multiplexer. 496* 497* 498* Message: 499* as_x25_mpx_: Error in conversion. Converting FIELD VALUE to a number for multiplexer MPX. 500* 501* S: as (severity1) 502* 503* T: In response to an operator load_mpx command or during system start up. 504* 505* M: It was impossible to convert a numeric parameter from the terminal_type 506* additional_info string to its internal form. 507* FIELD is the name of the parameter in error. 508* VALUE is the string which could not be converted. 509* 510* A: Check the contents of the TTF entry for the terminal_type associated 511* with the multiplexer for errors. 512* 513* 514* Message: 515* as_x25_mpx_: Bad argument to parm PARM. Must have: LOW <= value <= HIGH, but value = VALUE, for multiplexer MPX. 516* 517* S: as (severity1) 518* 519* T: In response to an operator load_mpx command or during system start up. 520* 521* M: A bad value was specified for parameter PARM in the additional_info field 522* of the TTF entry for the multiplexer MPX. The value must be between LOW and 523* HIGH, but VALUE was specified. 524* 525* A: Check the contents of the TTF entry for the terminal_type associated 526* with the multiplexer for an improper parameter value. Correct and reload 527* mpx. 528* 529* 530* Message: 531* as_x25_mpx_: Bad argument to parm PARM, should be THIS or THAT, but was VALUE for multiplexer MPX. 532* 533* S: as (severity1) 534* 535* T: In response to an operator load_mpx command or during system start up. 536* 537* M: A bad value was specified for parameter PARM in the additional_info field 538* of the TTF entry for the multiplexer MPX. The choices are THIS or THAT, but 539* VALUE was specified. 540* 541* A: Check the contents of the TTF entry for the terminal_type associated 542* with the multiplexer for an improper parameter value. Correct and reload 543* mpx. 544* 545* 546* Message: 547* as_x25_mpx_: Unexpected wakeup (DATA) from process PRCID. 548* 549* S: as (severity1) 550* 551* T: $run 552* 553* M: The multiplexer manager received a wakeup from an unexpected source. 554* The wakeup is ignored. 555* 556* A: $ignore 557* 558* 559* Message: 560* as_x25_mpx_: Wakeup for multiplexer MPX has invalid state code STATE. 561* 562* S: as (severity1) 563* 564* T: $run 565* 566* M: A wakeup with invalid data was received by the multiplexer manager. 567* The wakeup is ignored. 568* 569* A: $notify 570* 571* 572* Message: 573* as_x25_mpx_: Unexpected signal NUM in state STATE. 574* 575* S: as (severity1) 576* 577* T: $run 578* 579* M: A signal, NUM, was received unexpectedly in state STATE. 580* The signal is ignored. 581* 582* A: $notify 583* 584* 585* Message: 586* as_x25_mpx_: Load signalled for multiplexer MPX. 587* 588* S: as (severity1) 589* 590* T: In response to an operator load_mpx command or during system start up. 591* 592* M: The multiplexer has been successfully loaded. 593* It will be started unless the -no_start control argument was given when 594* the load_mpx command was typed. 595* 596* A: $ignore 597* 598* 599* Message: 600* as_x25_mpx_: Load failed for multiplexer MPX. 601* 602* S: as (severity1) 603* 604* T: In response to an operator load_mpx command or during system start up. 605* 606* M: The attempt to load the multiplexer failed. 607* This should never happen. 608* 609* A: $notify 610* 611* 612* Message: 613* as_x25_mpx_: Crash signalled for multiplexer MPX. 614* 615* S: as (severity1) 616* 617* T: $run 618* 619* M: The multiplexer has crashed. 620* The LAP link has entered the disconnected state. 621* 622* A: $notify 623* 624* 625* END MESSAGE DOCUMENTATION */ 626 627 end as_x25_mpx_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 07/19/88 1536.9 as_x25_mpx_.pl1 >special_ldd>install>MR12.2-1061>as_x25_mpx_.pl1 446 1 07/11/84 0937.3 as_mpx_state_names_.incl.pl1 >ldd>include>as_mpx_state_names_.incl.pl1 447 2 11/27/84 0956.2 x25_load_info.incl.pl1 >ldd>include>x25_load_info.incl.pl1 448 3 08/06/87 0913.0 cdt.incl.pl1 >ldd>include>cdt.incl.pl1 3-314 4 07/19/88 1524.1 fnp_types.incl.pl1 >special_ldd>install>MR12.2-1061>fnp_types.incl.pl1 449 5 09/09/75 2007.3 author_dcl.incl.pl1 >ldd>include>author_dcl.incl.pl1 5-10 6 04/21/82 1211.8 author.incl.pl1 >ldd>include>author.incl.pl1 450 7 08/06/87 0913.4 line_types.incl.pl1 >ldd>include>line_types.incl.pl1 451 8 06/29/79 1728.0 event_call_info.incl.pl1 >ldd>include>event_call_info.incl.pl1 455 9 01/06/85 1422.1 tty_buf.incl.pl1 >ldd>include>tty_buf.incl.pl1 9-152 10 01/06/85 1422.1 hc_fast_lock.incl.pl1 >ldd>include>hc_fast_lock.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. MPXE_STATE_NAMES 000002 constant char(32) initial array packed unaligned dcl 1-4 set ref 394* MPX_BOOT constant fixed bin(17,0) initial dcl 3-306 ref 396 MPX_UP constant fixed bin(17,0) initial dcl 3-306 ref 406 Parm parameter char packed unaligned dcl 333 ref 331 336 340 String parameter char packed unaligned dcl 323 set ref 321 325* Value parameter char packed unaligned dcl 333 set ref 331 340* X25_LOAD_INFO_VERSION_1 000000 constant char(8) initial dcl 2-7 ref 118 abm 20(01) 000344 automatic bit(1) level 4 packed packed unaligned dcl 56 set ref 198* 200* actual_choice parameter char packed unaligned dcl 347 set ref 345 349* actual_value parameter char packed unaligned dcl 358 set ref 356 360* add_info 000101 automatic varying char(512) dcl 51 set ref 134* 138* 144* 336 340 addr builtin function dcl 83 ref 100 317 317 374 arg_cdtep parameter pointer dcl 41 ref 93 98 417 425 429 arg_cdtp parameter pointer dcl 40 ref 93 97 417 425 428 arg_chan_listp parameter pointer dcl 42 ref 93 99 425 431 arg_check_sw parameter bit(1) dcl 43 ref 93 arg_code parameter fixed bin(35,0) dcl 45 set ref 93 102* 111* 156* 317* 327* 352* 363* 417 420* arg_error_proc parameter entry variable dcl 46 ref 425 432 arg_event_infop parameter pointer dcl 44 ref 369 372 arg_mpx_chan parameter char packed unaligned dcl 39 ref 93 96 417 425 430 author based structure level 2 dcl 5-9 author_dcl based structure level 1 dcl 5-9 before builtin function dcl 83 ref 340 boot_info 000344 automatic structure level 1 dcl 56 set ref 317 317 breakall_idle_timer 27 000344 automatic fixed bin(17,0) level 2 dcl 56 set ref 123* 310* 313 313 bsizec constant fixed bin(17,0) initial dcl 9-28 ref 176 bypass_restart 12 000344 automatic bit(1) level 3 packed packed unaligned dcl 56 set ref 263* 265* cdte based structure level 1 dcl 3-72 cdtep 000402 automatic pointer dcl 3-41 set ref 98* 100 104 104 106 114 114* 119 135 135 135 138 141 373* 374 384 429* cdtp 000400 automatic pointer dcl 3-41 set ref 97* 428* chan_list based structure level 1 dcl 87 chan_listp 000342 automatic pointer dcl 55 set ref 99* 431* 441 channel_threads based structure level 1 dcl 3-249 choice1 parameter char packed unaligned dcl 347 set ref 345 349* choice2 parameter char packed unaligned dcl 347 set ref 345 349* code 000100 automatic fixed bin(35,0) dcl 50 set ref 104* 106* 107 109* 114* 115 138* 139 141* 150* 151 162* 163 172* 173 207* 208 218* 219 227* 228 236* 237 245* 246 290* 291 310* 311 400* 404* 410* count based fixed bin(17,0) level 2 dcl 87 ref 441 cv_dec_check_ 000022 constant entry external dcl 70 ref 150 162 172 207 218 245 290 310 cv_float_ 000024 constant entry external dcl 71 ref 227 236 data_ptr 6 based pointer level 2 dcl 8-7 ref 373 dce 20 000344 automatic bit(1) level 4 packed packed unaligned dcl 56 set ref 189* 191* disc_first 20(02) 000344 automatic bit(1) level 4 packed packed unaligned dcl 56 set ref 254* 256* error_proc 000374 automatic entry variable dcl 57 set ref 432* 436 441 error_table_$action_not_performed 000044 external static fixed bin(35,0) dcl 80 ref 111 156 352 363 error_table_$bad_conversion 000046 external static fixed bin(35,0) dcl 81 set ref 325* 327 ev_chan 2 000344 automatic fixed bin(71,0) level 2 dcl 56 set ref 119* event 72 based fixed bin(71,0) level 2 dcl 3-72 set ref 104 104* 106* 114* 119 event_call_info based structure level 1 dcl 8-7 event_call_info_ptr 000406 automatic pointer dcl 8-5 set ref 372* 373 376 376 379 379 379 386 386 388 394 396 406 410 flags 20 000344 automatic structure level 3 in structure "boot_info" dcl 56 in procedure "as_x25_mpx_" set ref 127* flags 12 000344 automatic structure level 2 in structure "boot_info" dcl 56 in procedure "as_x25_mpx_" set ref 126* fnpe based structure level 1 dcl 3-200 frame_level_data 20 000344 automatic structure level 2 dcl 56 frame_size 21 000344 automatic fixed bin(17,0) level 3 dcl 56 set ref 128* 207* 211 211 211 211 get_process_id_ 000032 constant entry external dcl 74 ref 120 376 hc_fast_lock based structure level 1 dcl 10-10 hphcs_$tty_control 000010 constant entry external dcl 65 ref 317 i 000436 automatic fixed bin(17,0) dcl 334 set ref 336* 337 340 index builtin function dcl 83 ref 336 436 initial_command 51 based char(64) level 2 dcl 3-72 set ref 100 374 initial_terminal_type 37 based char(32) level 2 packed packed unaligned dcl 3-72 set ref 135 135 135 138* 141* ioa_$rsnnl 000012 constant entry external dcl 66 ref 394 ipc_$create_ev_chn 000016 constant entry external dcl 68 ref 106 ipc_$decl_ev_call_chn 000020 constant entry external dcl 69 ref 114 ipc_$delete_ev_chn 000014 constant entry external dcl 67 ref 104 k 22 000344 automatic fixed bin(17,0) level 3 dcl 56 set ref 129* 218* 221 221 length builtin function dcl 83 ref 135 340 long_packet_size 26 000344 automatic fixed bin(17,0) level 2 dcl 56 set ref 290* 293 297* low builtin function dcl 83 ref 135 lower_bound parameter char packed unaligned dcl 358 set ref 356 360* max_packet_size 6 000344 automatic fixed bin(17,0) level 2 dcl 56 set ref 121* 172* 176 176 211 297 message 2 based fixed bin(71,0) level 2 dcl 8-7 set ref 379 379 386 386 388* 394* 396 406 410 mpx_chan 000332 automatic char(32) packed unaligned dcl 54 set ref 96* 109* 141* 155* 317* 325* 349* 360* 384* 388* 400* 404* 410* 412* 430* 436 436* 441* mpxe based structure level 1 dcl 3-221 mpxep 000404 automatic pointer dcl 3-41 set ref 100* 374* 394 396 406 msg 000312 automatic char(64) packed unaligned dcl 53 set ref 393* 394* 399* 403* 409* 412* multiplexer_mgr_$mpx_crashed 000040 constant entry external dcl 77 ref 410 multiplexer_mgr_$mpx_load_failed 000034 constant entry external dcl 75 ref 400 multiplexer_mgr_$mpx_loaded 000036 constant entry external dcl 76 ref 404 my_address 13 000344 automatic varying char(15) level 2 dcl 56 set ref 125* 184* n2 23 000344 automatic fixed bin(17,0) level 3 dcl 56 set ref 130* 245* 248 248 n_lc 5 000344 automatic fixed bin(17,0) level 2 dcl 56 set ref 150* 151 name 000052 constant char(15) initial packed unaligned dcl 61 in procedure "as_x25_mpx_" set ref 109* 141* 155* 325* 349* 360* 379* 388* 412* name 2 based char(32) level 2 in structure "cdte" dcl 3-72 in procedure "as_x25_mpx_" ref 384 net_type 10 000344 automatic char(8) level 2 dcl 56 set ref 124* 181* 181 no_d 12(01) 000344 automatic bit(1) level 3 packed packed unaligned dcl 56 set ref 272* 274* origin 5 based structure level 2 dcl 8-7 out_calls_collect 12(02) 000344 automatic bit(1) level 3 packed packed unaligned dcl 56 set ref 301* 303* parm 000302 automatic char(32) packed unaligned dcl 52 set ref 148* 150* 160* 162* 166* 170* 172* 176* 181* 181 184* 184 187* 189 191 193* 196* 198 200 202* 205* 207* 211* 216* 218* 221* 225* 227* 230* 234* 236* 239* 243* 245* 248* 252* 254 256 258* 261* 263 265 267* 270* 272 274 276* 279* 281 283 285* 288* 290* 293* 299* 301 303 305* 308* 310* 313* 325* pid 4 000344 automatic bit(36) level 2 dcl 56 set ref 120* ring 5(18) based fixed bin(17,0) level 3 packed packed unaligned dcl 8-7 ref 376 sender 4 based bit(36) level 2 dcl 8-7 set ref 376 379* state based fixed bin(17,0) level 2 dcl 3-221 ref 394 396 406 substr builtin function dcl 83 ref 181 340 sys_log_ 000026 constant entry external dcl 72 ref 379 388 412 sys_log_$error_log 000030 constant entry external dcl 73 ref 109 141 155 325 349 360 t1 24 000344 automatic float bin(27) level 3 dcl 56 set ref 131* 227* 230 230 t3 25 000344 automatic float bin(27) level 3 dcl 56 set ref 132* 236* 239 239 trace_off 20(03) 000344 automatic bit(1) level 4 packed packed unaligned dcl 56 set ref 281* 283* ttt_info_$additional_info 000042 constant entry external dcl 78 ref 138 type parameter char packed unaligned dcl 358 in procedure "bad_range" set ref 356 360* type parameter char packed unaligned dcl 347 in procedure "bad_choice" set ref 345 349* unspec builtin function dcl 83 ref 379 379 upper_bound parameter char packed unaligned dcl 358 set ref 356 360* version 000344 automatic char(8) level 2 dcl 56 set ref 118* window_size 7 000344 automatic fixed bin(17,0) level 2 dcl 56 set ref 122* 162* 166 166 x25_load_info based structure level 1 dcl 2-10 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. ACTIVE internal static fixed bin(17,0) initial dcl 3-272 ANS_SERVICE internal static fixed bin(17,0) initial dcl 3-259 CDT_version internal static fixed bin(17,0) initial dcl 3-39 CDT_version_5 internal static fixed bin(17,0) initial dcl 3-38 CHANNEL_DELETED internal static fixed bin(17,0) initial dcl 3-288 DIAL_OUT_SERVICE internal static fixed bin(17,0) initial dcl 3-259 DIAL_SERVICE internal static fixed bin(17,0) initial dcl 3-259 DN355 internal static fixed bin(17,0) initial dcl 4-19 DN6600 internal static fixed bin(17,0) initial dcl 4-19 DN6670 internal static fixed bin(17,0) initial dcl 4-19 DN7100 internal static fixed bin(17,0) initial dcl 4-19 FNP_BOOT internal static fixed bin(17,0) initial dcl 3-298 FNP_DOWN internal static fixed bin(17,0) initial dcl 3-298 FNP_DUMP_PATCH_EVENT internal static fixed bin(17,0) initial dcl 9-31 FNP_FREE internal static fixed bin(17,0) initial dcl 3-298 FNP_METER_EVENT internal static fixed bin(17,0) initial dcl 9-32 FNP_UNKNOWN internal static fixed bin(17,0) initial dcl 3-298 FNP_UP internal static fixed bin(17,0) initial dcl 3-298 FTP_SERVICE internal static fixed bin(17,0) initial dcl 3-259 INACTIVE internal static fixed bin(17,0) initial dcl 3-272 LINE_1050 internal static fixed bin(17,0) initial dcl 7-22 LINE_2741 internal static fixed bin(17,0) initial dcl 7-22 LINE_ARDS internal static fixed bin(17,0) initial dcl 7-22 LINE_ASCII internal static fixed bin(17,0) initial dcl 7-22 LINE_ASYNC1 internal static fixed bin(17,0) initial dcl 7-22 LINE_ASYNC2 internal static fixed bin(17,0) initial dcl 7-22 LINE_ASYNC3 internal static fixed bin(17,0) initial dcl 7-22 LINE_BSC internal static fixed bin(17,0) initial dcl 7-22 LINE_COLTS internal static fixed bin(17,0) initial dcl 7-22 LINE_DSA internal static fixed bin(17,0) initial dcl 7-22 LINE_ETX internal static fixed bin(17,0) initial dcl 7-22 LINE_G115 internal static fixed bin(17,0) initial dcl 7-22 LINE_HASP_OPR internal static fixed bin(17,0) initial dcl 7-22 LINE_HDLC internal static fixed bin(17,0) initial dcl 7-22 LINE_MC internal static fixed bin(17,0) initial dcl 7-22 LINE_POLLED_VIP internal static fixed bin(17,0) initial dcl 7-22 LINE_SYNC1 internal static fixed bin(17,0) initial dcl 7-22 LINE_SYNC2 internal static fixed bin(17,0) initial dcl 7-22 LINE_SYNC3 internal static fixed bin(17,0) initial dcl 7-22 LINE_SYNCH internal static fixed bin(17,0) initial dcl 7-22 LINE_TELNET internal static fixed bin(17,0) initial dcl 7-22 LINE_UNKNOWN internal static fixed bin(17,0) initial dcl 7-22 LINE_VIP internal static fixed bin(17,0) initial dcl 7-22 LINE_X25LAP internal static fixed bin(17,0) initial dcl 7-22 MC_SERVICE internal static fixed bin(17,0) initial dcl 3-259 MPX_DOWN internal static fixed bin(17,0) initial dcl 3-306 MPX_FREE internal static fixed bin(17,0) initial dcl 3-306 MPX_SERVICE internal static fixed bin(17,0) initial dcl 3-259 MPX_UNKNOWN internal static fixed bin(17,0) initial dcl 3-306 NOT_CONFIGURED internal static fixed bin(17,0) initial dcl 3-280 SLAVE_SERVICE internal static fixed bin(17,0) initial dcl 3-259 TANDD_SERVICE internal static fixed bin(17,0) initial dcl 3-259 TTY_AREA_LOCK_EVENT internal static bit(36) initial dcl 9-33 abs_buf_limit internal static fixed bin(18,0) initial dcl 9-19 buf_per_second internal static fixed bin(17,0) initial dcl 9-29 cdt based structure level 1 dcl 3-44 fnp_models internal static fixed bin(17,0) initial array dcl 4-28 fnp_types internal static char(8) initial array packed unaligned dcl 4-25 fnpep automatic pointer dcl 3-41 generic_destination based char(32) packed unaligned dcl 3-195 input_bpart internal static fixed bin(18,0) initial dcl 9-19 line_types internal static char(16) initial array packed unaligned dcl 7-54 lock_ptr automatic pointer dcl 10-9 max_line_type internal static fixed bin(17,0) initial dcl 7-48 n_sync_line_types internal static fixed bin(17,0) initial dcl 7-50 output_bpart internal static fixed bin(18,0) initial dcl 9-19 qblock_size internal static fixed bin(17,0) initial dcl 9-27 supported_fnp internal static bit(1) initial array packed unaligned dcl 4-31 sync_line_type internal static fixed bin(17,0) initial array dcl 7-52 tty_buf based structure level 1 dcl 9-35 tty_buf$ external static fixed bin(17,0) dcl 9-19 tty_ev internal static fixed bin(17,0) initial dcl 9-19 ttybp automatic pointer dcl 9-19 x25_load_infop automatic pointer dcl 2-9 NAMES DECLARED BY EXPLICIT CONTEXT. as_x25_mpx_ 000567 constant entry external dcl 34 bad_choice 003660 constant entry internal dcl 345 ref 193 202 258 267 276 285 305 bad_conv 003512 constant entry internal dcl 321 ref 151 163 173 208 219 228 237 246 291 311 bad_range 003774 constant entry internal dcl 356 ref 166 176 211 221 230 239 248 293 313 ev_chan_err 000677 constant label dcl 109 ref 115 get_parm 003576 constant entry internal dcl 331 ref 148 160 170 181 184 187 196 205 216 225 234 243 252 261 270 279 288 299 308 return_to_caller 002671 constant label dcl 318 ref 328 353 364 x25_cv_cmf 003317 constant entry external dcl 425 x25_dump 003267 constant entry external dcl 417 x25_load 000603 constant entry external dcl 93 x25_wakeup_handler 002675 constant entry external dcl 369 ref 114 114 NAMES DECLARED BY CONTEXT OR IMPLICATION. ltrim builtin function ref 184 maxlength builtin function ref 181 mod builtin function ref 211 rtrim builtin function ref 184 string builtin function set ref 126 127* STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 5504 5554 5230 5514 Length 6246 5230 50 455 253 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME as_x25_mpx_ 582 external procedure is an external procedure. bad_conv internal procedure shares stack frame of external procedure as_x25_mpx_. get_parm internal procedure shares stack frame of external procedure as_x25_mpx_. bad_choice internal procedure shares stack frame of external procedure as_x25_mpx_. bad_range internal procedure shares stack frame of external procedure as_x25_mpx_. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME as_x25_mpx_ 000100 code as_x25_mpx_ 000101 add_info as_x25_mpx_ 000302 parm as_x25_mpx_ 000312 msg as_x25_mpx_ 000332 mpx_chan as_x25_mpx_ 000342 chan_listp as_x25_mpx_ 000344 boot_info as_x25_mpx_ 000374 error_proc as_x25_mpx_ 000400 cdtp as_x25_mpx_ 000402 cdtep as_x25_mpx_ 000404 mpxep as_x25_mpx_ 000406 event_call_info_ptr as_x25_mpx_ 000436 i get_parm THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. r_e_as alloc_char_temp call_ent_var_desc call_ext_out_desc call_ext_out return_mac mdfx1 shorten_stack ext_entry ext_entry_desc set_chars_eis index_chars_eis THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. cv_dec_check_ cv_float_ get_process_id_ hphcs_$tty_control ioa_$rsnnl ipc_$create_ev_chn ipc_$decl_ev_call_chn ipc_$delete_ev_chn multiplexer_mgr_$mpx_crashed multiplexer_mgr_$mpx_load_failed multiplexer_mgr_$mpx_loaded sys_log_ sys_log_$error_log ttt_info_$additional_info THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$action_not_performed error_table_$bad_conversion LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 34 000566 93 000574 96 000624 97 000634 98 000637 99 000642 100 000646 102 000650 104 000651 106 000663 107 000675 109 000677 111 000735 112 000740 114 000741 115 000767 118 000771 119 000773 120 000776 121 001005 122 001007 123 001011 124 001012 125 001014 126 001015 127 001016 128 001017 129 001021 130 001023 131 001025 132 001027 134 001030 135 001031 138 001047 139 001071 141 001073 148 001135 150 001145 151 001167 153 001201 155 001202 156 001240 157 001243 160 001244 162 001256 163 001300 166 001312 170 001333 172 001345 173 001367 176 001401 181 001422 184 001434 187 001477 189 001507 191 001516 193 001525 196 001536 198 001552 200 001561 202 001570 205 001605 207 001617 208 001641 211 001653 216 001712 218 001722 219 001744 221 001753 225 001771 227 002001 228 002022 230 002031 234 002047 236 002057 237 002100 239 002107 243 002125 245 002135 246 002157 248 002166 252 002204 254 002216 256 002225 258 002234 261 002250 263 002264 265 002273 267 002302 270 002317 272 002327 274 002336 276 002345 279 002356 281 002370 283 002377 285 002406 288 002422 290 002433 291 002455 293 002470 295 002510 297 002511 299 002514 301 002524 303 002533 305 002542 308 002553 310 002567 311 002611 313 002621 317 002640 318 002671 369 002672 372 002702 373 002706 374 002710 376 002712 379 002731 381 002772 384 002773 386 002777 388 003010 390 003046 393 003047 394 003052 396 003111 399 003121 400 003124 401 003141 403 003142 404 003145 405 003162 406 003163 409 003172 410 003175 412 003223 413 003261 417 003262 420 003310 421 003311 425 003312 428 003336 429 003341 430 003344 431 003354 432 003360 436 003365 441 003442 444 003511 321 003512 325 003523 327 003572 328 003575 331 003576 336 003614 337 003624 340 003627 341 003655 345 003660 349 003710 352 003770 353 003773 356 003774 360 004024 363 004104 364 004107 ----------------------------------------------------------- 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