COMPILATION LISTING OF SEGMENT as_mcs_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.0 mst Wed Options: optimize map 1 /****^ *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Bull Inc., 1987 * 4* * * 5* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 6* * * 7* * Copyright (c) 1972 by Massachusetts Institute of * 8* * Technology and Honeywell Information Systems, Inc. * 9* * * 10* *********************************************************** */ 11 12 /* AS_MCS_MPX_ - Provides an interface for the answering service for fnp loading and dumping 13* that makes FNP's look like just another multiplexer */ 14 15 /* Written August 1978 by Larry Johnson */ 16 /* Changed April 1978 from as_fnp_mpx_ to as_mcs_mpx_ by Larry Johnson */ 17 /* cv_cmf entry added at that time */ 18 /* changed July 1979 to implement fnp_crash_notify.ec */ 19 /* Modified 79 August 21 by Art Beattie to pass FNP type and memory size to fdump_fnp_ and add checks on FNP */ 20 /* definition in mcs_cv_cmf entry. */ 21 /* Modified June 1981 by T. Casey for MR9.0 for new wakeup priorities. */ 22 /* Modified April 1982 by Robert Coren to support baud rates up to 72000. */ 23 /* Modified June 1982 by Robert Coren to accept memory sizes up to 256K. */ 24 /* Modified August 1982 by Robert Coren for additional argument to multiplexer_mgr_$mpx_crashed. */ 25 /* Modified November 1983 by Robert Coren to make wakeup handler check for other pending wakeups if loading times out. */ 26 /* Modified 83-12-15 BIM to fix grab aste protocol bug. */ 27 /* Modified 1984-08-28 BIM for tracing improvements to catch a mpx_mgr_ bug */ 28 29 30 /****^ HISTORY COMMENTS: 31* 1) change(86-07-28,Beattie), approve(86-07-28,MCR7481), 32* audit(86-09-19,Brunelle), install(86-10-15,MR12.0-1185): 33* Extend timeout value from 1 min to 2 min waiting for a multiplexer to 34* load. 35* 2) change(87-03-20,Beattie), approve(87-04-06,MCR7656), 36* audit(87-07-16,Parisek), install(87-08-04,MR12.1-1055): 37* Prevent any FNP channel from using HASP_OPR line type which is only valid 38* for HASP multiplexer operator subchannels. 39* 3) change(87-07-17,Parisek), approve(87-07-17,MCR7715), 40* audit(87-08-10,Fawcett), install(87-08-11,MR12.1-1080): 41* Establish an admin SCI environment for calling fnp_crash_notify.ec 42* within the initializer process. 43* 4) change(87-08-12,Parisek), approve(87-08-12,PBF7715), 44* audit(87-08-12,Fawcett), install(87-08-13,MR12.1-1085): 45* Set sc_stat_$admin_sci_ptr to value of sc_stat_$master_sci_ptr so 46* signal_io_ will not complain. 47* 5) change(87-08-18,Parisek), approve(87-08-18,PBF7715), 48* audit(87-09-03,Farley), install(87-09-10,MR12.1-1104): 49* Remove unnecessary sc_subsystem_info_ references. 50* 6) change(87-09-17,Parisek), approve(87-09-18,PBF7715), 51* audit(87-09-18,Farley), install(87-09-21,MR12.1-1111): 52* a. Remove reference to sc_stat_$master_sci_ptr. 53* b. Create our own sci_ptr and set sc_stat_$admin_sci_ptr equal to our 54* sci_ptr. 55* c. Get sc_subsystem_info_ptr based on our new sc_stat_$admin_sci_ptr 56* value. 57* d. Set sc_subsystem_info.real_iocb to sc_stat_$master_iocb for 58* signal_io_. 59* 7) change(87-09-23,Parisek), approve(87-09-23,PBF7715), 60* audit(87-09-23,Farley), install(87-09-23,MR12.1-1119): 61* Move sys_log_ message of FDUMP being created to a more appropriate place, 62* immediately after the call to create the FDUMP. 63* END HISTORY COMMENTS */ 64 65 66 /* format: style4,delnl,insnl,^ifthendo */ 67 as_mcs_mpx_: 68 proc; 69 70 /* Parameters */ 71 72 dcl arg_mpx_name char (*); /* Name of the multiplxer (fnp) */ 73 dcl arg_cdtp ptr; /* Address of the cdt */ 74 dcl arg_fnpep ptr; /* Pointer to cdte entry for this fnp */ 75 dcl arg_chan_listp ptr; /* Pointer to a structure of channels to init */ 76 dcl arg_check_sw bit (1) aligned; /* Says whether or not to check configuration */ 77 dcl arg_event_infop ptr; 78 dcl arg_code fixed bin (35); 79 dcl arg_error_proc entry variable; 80 81 /* Automatic */ 82 83 dcl bc fixed bin(24); 84 dcl fnp_boot_timeout_mins fixed bin (71); 85 dcl code fixed bin (35); 86 dcl fnp_no fixed bin; 87 dcl mpx_name char (32); 88 dcl chan_listp ptr; 89 dcl wakeup_found fixed bin; 90 dcl ev_msg_array (2) bit (36); 91 dcl ev_msg_char char (8); 92 dcl ename char (32); 93 dcl (i, j) fixed bin; 94 dcl lsla_count (0:5) fixed bin; 95 dcl hsla_configured (0:2) bit (1); 96 dcl adapt_type bit (1); 97 dcl adapt_no fixed bin; 98 dcl chan_no fixed bin; 99 dcl recursive_event_info_ptr pointer; 100 dcl saved_admin_sci_ptr ptr; 101 dcl sci_ptr ptr; 102 dcl sync_line bit (1); 103 dcl error_proc entry (fixed bin, fixed bin, char (*), char (*), char (*), char (*)) variable; 104 dcl entry_type fixed bin (2); 105 106 /* Constants */ 107 108 dcl fnp_boot_timeout_secs fixed bin (71) init (120) int static options (constant); 109 dcl RELATIVE_SECONDS bit (2) init ("11"b) int static options (constant); 110 dcl name char (11) int static options (constant) init ("as_mcs_mpx_"); 111 dcl sync_baud_rates (10) fixed bin int static options (constant) 112 init (1200, 1800, 2400, 4800, 7200, 9600, 19200, 40800, 50000, 72000); 113 dcl sysdir char(168) int static options (constant) init (">system_control_1"); 114 115 /* Static */ 116 117 dcl static_cdtp ptr int static init (null); /* Remember where cdt is */ 118 119 /* External */ 120 121 dcl call_ec_ entry options (variable); 122 dcl get_fnp_name_ entry (fixed binary) returns (character (32)); 123 dcl hcs_$status_minf entry (char (*), char (*), fixed bin (1), fixed bin (2), fixed bin (24), fixed bin (35)); 124 dcl ipc_$create_ev_chn entry (fixed bin (71), fixed bin (35)); 125 dcl ipc_$decl_ev_call_chn entry (fixed bin (71), entry, ptr, fixed bin, fixed bin (35)); 126 dcl sys_log_ entry options (variable); 127 dcl sys_log_$error_log entry options (variable); 128 dcl load_fnp_ entry (fixed bin, ptr, ptr, bit (1) aligned, fixed bin (35)); 129 dcl load_fnp_$abort entry (fixed binary, pointer, fixed binary (35)); 130 dcl timer_manager_$reset_alarm_wakeup entry (fixed bin (71)); 131 dcl timer_manager_$alarm_wakeup entry (fixed bin (71), bit (2), fixed bin (71)); 132 dcl ipc_$drain_chn entry (fixed bin (71), fixed bin (35)); 133 dcl ipc_$read_ev_chn entry (fixed bin (71), fixed bin, ptr, fixed bin (35)); 134 dcl get_process_id_ entry returns (bit (36) aligned); 135 dcl multiplexer_mgr_$mpx_load_failed entry (char (*), fixed bin (35)); 136 dcl multiplexer_mgr_$mpx_loaded entry (char (*), fixed bin (35)); 137 dcl multiplexer_mgr_$mpx_crashed entry (char (*), bit (1) aligned, fixed bin (35)); 138 dcl fdump_fnp_ entry (fixed bin, fixed bin, fixed bin, char (*), fixed bin (35)); 139 dcl ioa_$rsnnl entry options (variable); 140 dcl parse_tty_name_ entry (char (*), fixed bin, bit (1), fixed bin, fixed bin); 141 dcl sc_create_sci_ entry (ptr, fixed bin (35)); 142 dcl sc_create_sci_$destroy entry (ptr); 143 dcl ssu_$get_info_ptr entry (ptr) returns (ptr); 144 145 /* Static */ 146 147 dcl error_table_$action_not_performed ext fixed bin (35); 148 149 /* Builtins */ 150 151 dcl (addr, bit, char, clock, hbound, index, lbound, ltrim, mod, null, rtrim, string, unspec) builtin; 152 153 /* Conditions */ 154 dcl cleanup condition; 155 156 /* Based */ 157 158 dcl 1 chan_list aligned based (chan_listp), /* List of cdte entries of channels to boot */ 159 2 count fixed bin, 160 2 cdte_ptr (0 refer (chan_list.count)) ptr unal; 161 162 /* Entry to load a fnp */ 163 164 mcs_load: 165 entry (arg_mpx_name, arg_cdtp, arg_fnpep, arg_chan_listp, arg_check_sw, arg_code); 166 167 mpx_name = arg_mpx_name; 168 cdtp, static_cdtp = arg_cdtp; 169 fnpep = arg_fnpep; 170 chan_listp = arg_chan_listp; 171 mpxep = addr (fnpe.mpxe); 172 173 call compute_fnp_no; 174 175 if fnpe.boot_ev_chan = 0 176 then do; 177 call ipc_$create_ev_chn (fnpe.boot_ev_chan, code); 178 if code ^= 0 179 then do; 180 ev_chan_err: 181 call sys_log_$error_log (SL_LOG, code, name, "Creating event channel for FNP ^a.", mpx_name); 182 arg_code = error_table_$action_not_performed; 183 return; 184 end; 185 call ipc_$decl_ev_call_chn (fnpe.boot_ev_chan, fnp_wakeup_handler, fnpep, MPX_LOAD_PRIO, code); 186 if code ^= 0 187 then go to ev_chan_err; 188 end; 189 190 call timer_manager_$reset_alarm_wakeup (fnpe.boot_ev_chan); 191 call ipc_$drain_chn (fnpe.boot_ev_chan, code); /* Just in case */ 192 if code ^= 0 193 then do; 194 call sys_log_$error_log (SL_LOG, code, name, "Resetting event channel for FNP ^a.", mpx_name); 195 arg_code = error_table_$action_not_performed; 196 return; 197 end; 198 199 call load_fnp_ (fnp_no, cdtp, chan_listp, arg_check_sw, code); 200 if code ^= 0 201 then do; 202 arg_code = code; 203 mpxe.state = FNP_UNKNOWN; 204 return; 205 end; 206 207 call timer_manager_$alarm_wakeup (fnp_boot_timeout_secs, RELATIVE_SECONDS, fnpe.boot_ev_chan); 208 /* Allow some reasonable time */ 209 arg_code = 0; 210 return; 211 212 /* Take a dump of an fnp */ 213 214 mcs_dump: 215 entry (arg_mpx_name, arg_cdtp, arg_fnpep, arg_code); 216 217 mpx_name = arg_mpx_name; 218 cdtp = arg_cdtp; 219 fnpep = arg_fnpep; 220 mpxep = addr (fnpe.mpxe); 221 222 sci_ptr = null; 223 saved_admin_sci_ptr = sc_stat_$admin_sci_ptr; 224 225 call compute_fnp_no; 226 227 call fdump_fnp_ (fnp_no, fnpe.type, fnpe.memory, ename, code); 228 if code ^= 0 229 then call sys_log_$error_log (SL_LOG, code, name, "Taking dump of FNP ^a. ^a", mpx_name, ename); 230 else do; 231 call sys_log_ (SL_LOG, "^a: FDUMP of FNP ^a created in >dumps>^a", name, mpx_name, ename); 232 /* See if there is a fnp_crash_notify.ec */ 233 call hcs_$status_minf (sysdir, "fnp_crash_notify.ec", (1), entry_type, bc, code); 234 235 if code ^= 0 then do; 236 call sys_log_$error_log (SL_LOG_SILENT, code, name, 237 "^a>fnp_crash_notify.ec does not exist.", sysdir); 238 go to return_to_caller; 239 end; 240 241 call sc_create_sci_ (sci_ptr, code); 242 if code ^= 0 then do; 243 call sys_log_$error_log (SL_LOG_SILENT, code, name, 244 "Failed to establish an SCI environment."); 245 goto return_to_caller; 246 end; 247 248 on cleanup begin; 249 sc_stat_$admin_sci_ptr = saved_admin_sci_ptr; 250 call sc_create_sci_$destroy (sci_ptr); 251 end; 252 253 sc_stat_$admin_sci_ptr = sci_ptr; /* sc_command requires sc_stat_$admin_sci_ptr to be valid */ 254 sc_subsystem_info_ptr = ssu_$get_info_ptr (sci_ptr); 255 sc_subsystem_info.real_iocb = sc_stat_$master_iocb; 256 257 call call_ec_ (rtrim(sysdir) || ">fnp_crash_notify", rtrim (mpx_name), rtrim (fnpe.coreimage), 258 ">dumps>" || rtrim (ename)); 259 end; 260 261 return_to_caller: 262 arg_code = code; 263 if sci_ptr ^= null then do; 264 sc_stat_$admin_sci_ptr = saved_admin_sci_ptr; 265 call sc_create_sci_$destroy (sci_ptr); 266 end; 267 return; 268 269 270 /* Wakeup handler for wakeups on the bootload event channel */ 271 272 fnp_wakeup_handler: 273 entry (arg_event_infop); 274 275 event_call_info_ptr = arg_event_infop; 276 cdtp = static_cdtp; 277 fnpep = event_call_info.data_ptr; 278 mpxep = addr (fnpe.mpxe); 279 280 if event_call_info.ring ^= 0 281 then /* If not ring-0 */ 282 if event_call_info.sender ^= get_process_id_ () 283 then do; /* Trust only myself */ 284 string (ev_msg_array) = unspec (event_call_info.message); 285 call sys_log_ (SL_LOG, "^a: Unexpected wakeup (^w ^w) from process ^w.", name, ev_msg_array, 286 event_call_info.sender); 287 return; 288 end; 289 290 call compute_fnp_no; 291 if code ^= 0 292 then do; 293 call sys_log_ (SL_LOG, "^a: Wakeup with bad data pointer ignored: ^p", name, fnpep); 294 return; 295 end; 296 297 mpx_name = get_fnp_name_ (fnp_no); 298 299 unspec (ev_msg_char) = unspec (event_call_info.message); 300 if ev_msg_char = "alarm___" 301 then do; /* Timeout */ 302 wakeup_found = 1; 303 do while (bit (wakeup_found, 1)); 304 call ipc_$read_ev_chn (fnpe.boot_ev_chan, wakeup_found, recursive_event_info_ptr, code); 305 /* check to see if something more useful has also happened */ 306 if code ^= 0 307 then do; /* a most unlikely result, but should be dealt with */ 308 call sys_log_$error_log (SL_LOG, code, name, "Reading event channel for FNP ^a.", mpx_name); 309 return; 310 end; 311 312 else if bit (wakeup_found, 1) 313 then call fnp_wakeup_handler (recursive_event_info_ptr); 314 /* call ourselves to handle it */ 315 end; /* end loop over wakeups */ 316 317 /*** here to examine a timeout */ 318 319 if mpxe.state = FNP_BOOT 320 then do; 321 if (clock () - mpxe.time_load_start) < fnp_boot_timeout_secs * 1000000 322 then return; /* Leftover from old bootload */ 323 324 /*** here for legitimate time_out */ 325 326 call free_boot_seg (fnp_no); 327 fnp_boot_timeout_mins = fnp_boot_timeout_secs / 60; 328 call sys_log_ (SL_LOG_BEEP, "^a: Load of FNP ^a did not complete within ^d minute^(s^).", name, 329 mpx_name, fnp_boot_timeout_mins, (fnp_boot_timeout_mins ^= 1)); 330 call multiplexer_mgr_$mpx_load_failed (mpx_name, code); 331 return; 332 end; 333 return; 334 end; /* end of processing for alarm___ */ 335 336 fnp_msg_ptr = addr (event_call_info.message); 337 if static_trace_switch 338 then call sys_log_ (SL_LOG, "^a (trace): FNP ^d, MPXE state ^a, FNP state ^a^[, deconfigured^].", name, 339 fnp_msg.fnp_no, MPXE_STATE (mpxe.state), MPXE_STATE ((fnp_msg.state)), fnp_msg.deconfigured); 340 341 if fnp_msg.fnp_no ^= fnp_no 342 then do; /* Garbage msg */ 343 call sys_log_ (SL_LOG, 344 "^a: Invalid wakeup received for FNP ^a. Wakeup appears to be for FNP ^a (#^d).", name, mpx_name, 345 get_fnp_name_ ((fnp_msg.fnp_no)), fnp_msg.fnp_no); 346 return; 347 end; 348 349 if fnp_msg.state < FNP_UNKNOWN | fnp_msg.state > FNP_UP 350 then do; 351 call sys_log_ (SL_LOG, "^a: Wakeup for FNP ^a has invalid state code: ^d.", name, mpx_name, fnp_msg.state); 352 return; 353 end; 354 355 if mpxe.state = FNP_BOOT 356 then do; /* Now booting */ 357 call free_boot_seg (fnp_no); 358 if fnp_msg.state = FNP_DOWN 359 then do; /* Boot failed */ 360 call multiplexer_mgr_$mpx_load_failed (mpx_name, code); 361 call sys_log_ (SL_LOG, "^a: Load failed for FNP ^a.", name, mpx_name); 362 end; 363 else if fnp_msg.state = FNP_UP 364 then do; /* Boot succeeded */ 365 call multiplexer_mgr_$mpx_loaded (mpx_name, code); 366 call sys_log_ (SL_LOG, "^a: Load signalled for FNP ^a.", name, mpx_name); 367 end; 368 else 369 bad_wakeup: 370 call sys_log_ (SL_LOG, 371 "^a: Inconsistent wakeup received from FNP ^a. FNP state = ^a, msg state = ^a.", name, mpx_name, 372 MPXE_STATE ((mpxe.state)), MPXE_STATE ((fnp_msg.state))); 373 return; 374 end; 375 376 else if mpxe.state = FNP_UP 377 then do; /* Currently running ok */ 378 if fnp_msg.state = FNP_DOWN 379 then do; /* It crashed */ 380 call multiplexer_mgr_$mpx_crashed (mpx_name, ^fnp_msg.deconfigured, code); 381 /* don't reload if deconfigured */ 382 call sys_log_ (SL_LOG, "^a: Crash signalled for FNP ^a.", name, mpx_name); 383 end; 384 else go to bad_wakeup; 385 end; 386 else go to bad_wakeup; 387 return; 388 389 /* Procedure to get fnp number given a fnp entry ptr in cdt */ 390 391 compute_fnp_no: 392 proc; 393 394 dcl i fixed bin; 395 dcl p ptr; 396 397 do i = 1 to hbound (cdt.fnp_entry, 1); 398 p = addr (cdt.fnp_entry (i)); 399 if p = fnpep 400 then do; /* Got it */ 401 fnp_no = i; 402 code = 0; 403 return; 404 end; 405 end; 406 call sys_log_ (SL_LOG, "^a: Procedure called with bad fnpep into cdt: ^p", name, fnpep); 407 code = error_table_$action_not_performed; 408 return; 409 410 end compute_fnp_no; 411 412 413 414 415 /* Procedure to free the boot segment */ 416 417 free_boot_seg: 418 procedure (fnp_no); 419 420 declare fnp_no fixed bin; 421 422 call load_fnp_$abort (fnp_no, cdtp, (0)); 423 return; 424 425 end free_boot_seg; 426 427 /* This entry is called at cv_cmf time to validate the CMF entries for an FNP */ 428 429 /* Summary of errors detected: 430* 1 - Invalid memory size. 431* 2 - Invalid LSLA count. 432* 3 - Invalid HSLA count. 433* 4 - DN6670 configured with LSLA's. 434* 5 - Illegal channel name. 435* 6 - No baud rate specified. 436* 7 - Synchronous line type spcified on LSLA channel. 437* 8 - Baud rate invalid on syncrhonous line. 438* 9 - HSLA subchannel > 31 specified. 439* 10 - LSLA subchannel > 51 specified. 440* 11 - LSLA subchannel specified as autobaud. 441* 12 - Baud rate invalid on LSLA channel. 442* 13 - LSLA has too many time slots configured. 443* 14 - Channels configured on more LSLA's than specified in lsla statement. 444* 15 - Channels configured on more HSLA's than specified in hsla statement. 445* 16 - Not configured as top-level multiplexer. 446* 17 - FNP other than DN6670 configured for more than 32K of memory. 447* 18 - Invalid line_type specified for an FNP channel. 448**/ 449 450 mcs_cv_cmf: 451 entry (arg_cdtp, arg_fnpep, arg_mpx_name, arg_chan_listp, arg_error_proc); 452 453 cdtp = arg_cdtp; 454 fnpep = arg_fnpep; 455 mpx_name = arg_mpx_name; 456 chan_listp = arg_chan_listp; 457 error_proc = arg_error_proc; 458 459 if index (mpx_name, ".") > 0 460 then do; 461 call error_proc (16, 2, "An mcs multiplexer can only be configured for an FNP, not ^a", "^a", mpx_name, "") 462 ; 463 return; 464 end; 465 466 /* Apply some defaults */ 467 468 if fnpe.memory = 0 469 then fnpe.memory = 32; /* The default */ 470 if fnpe.type = 0 471 then fnpe.type = DN355; 472 if fnpe.coreimage = "" 473 then fnpe.coreimage = "mcs"; 474 475 /* Check memory size */ 476 477 if fnpe.memory < 32 | fnpe.memory > 256 | mod (fnpe.memory, 32) ^= 0 478 then do; 479 call ioa_$rsnnl ("^dk", ename, (0), fnpe.memory); 480 call error_proc (1, 2, "Invalid memory size of ""^a"" on FNP ^a.", "^a on FNP ^a", ename, mpx_name); 481 end; 482 483 if fnpe.memory > 32 & fnpe.type ^= DN6670 484 then call error_proc (17, 2, 485 "The FNP type, ""^a"", for FNP ^a cannot be configured for more than 32K of memory.", 486 "type ^a for FNP ^a", fnp_types (fnpe.type), mpx_name); 487 488 /* Check number of adapters */ 489 490 if fnpe.nlslas < 0 | fnpe.nlslas > 6 491 then call error_proc (2, 2, "Invalid lsla count on FNP ""^a"".", "FNP ^a", mpx_name, ""); 492 if fnpe.nhslas < 0 | fnpe.nhslas > 3 493 then call error_proc (3, 2, "Invalid hsla count on FNP ""^a"".", "FNP ^a", mpx_name, ""); 494 if fnpe.type = DN6670 & fnpe.nlslas ^= 0 495 then do; 496 fnpe.nlslas = 0; 497 call error_proc (4, 2, "DN6670 (FNP ^a) configured with lsla's", "FNP ^a", mpx_name, ""); 498 end; 499 500 /* Now loop thru all the channels */ 501 502 lsla_count (*) = 0; 503 hsla_configured (*) = "0"b; 504 505 do i = 1 to chan_list.count; 506 cdtep = chan_list.cdte_ptr (i); 507 call parse_tty_name_ ((cdte.name), fnp_no, adapt_type, adapt_no, chan_no); 508 if fnp_no < 0 509 then do; 510 call error_proc (5, 2, "Illegal channel name ""^a"".", "^a", (cdte.name), ""); 511 go to next_channel; 512 end; 513 514 if cdte.baud_rate = 0 & ^cdte.autobaud 515 then call error_proc (6, 2, "No baud rate specified for ""^a"".", "^a", (cdte.name), ""); 516 517 if cdte.line_type = LINE_HASP_OPR 518 then call error_proc (18, 2, "Invalid line type ""^a"" specified for channel ""^a"".", 519 "^a for channel ^a", line_types (cdte.line_type), (cdte.name)); 520 521 sync_line = "0"b; 522 do j = 1 to hbound (sync_line_type, 1) while (^sync_line); 523 if cdte.line_type = sync_line_type (j) 524 then sync_line = "1"b; 525 end; 526 if sync_line 527 then do; 528 if ^adapt_type 529 then call error_proc (7, 2, "Synchronous line type specified on LSLA channel ""^a"".", "^a", 530 (cdte.name), ""); 531 do j = 1 to hbound (sync_baud_rates, 1) while (cdte.baud_rate ^= sync_baud_rates (j)); 532 end; 533 if j > hbound (sync_baud_rates, 1) 534 then call error_proc (8, 2, "Invalid synchronous baud rate specified for ""^a"".", "^a", (cdte.name), 535 ""); 536 end; 537 538 if adapt_type /* Hsla */ 539 then if adapt_no ^= 7 /* if not special channel */ 540 then do; 541 hsla_configured (adapt_no) = "1"b; 542 if chan_no > 31 543 then call error_proc (9, 2, "HSLA subchannel > 31 specified for ""^a"".", "^a", (cdte.name), ""); 544 end; 545 else ; 546 547 else do; 548 if chan_no > 51 549 then call error_proc (10, 2, "LSLA subchannel > 51 specified for ""^a"".", "^a", (cdte.name), ""); 550 if cdte.autobaud 551 then call error_proc (11, 2, "LSLA subchannel ""^a"" specified as autobaud.", "^a", (cdte.name), ""); 552 if cdte.baud_rate = 110 553 then lsla_count (adapt_no) = lsla_count (adapt_no) + 1; 554 else if cdte.baud_rate = 133 | cdte.baud_rate = 150 555 then lsla_count (adapt_no) = lsla_count (adapt_no) + 2; 556 else if cdte.baud_rate = 300 557 then lsla_count (adapt_no) = lsla_count (adapt_no) + 3; 558 else call error_proc (12, 2, "Invalid baud rate specified for LSLA channel ""^a"".", "^a", 559 (cdte.name), ""); 560 end; 561 562 next_channel: 563 end; 564 565 /* Some final consistency checks */ 566 567 j = 0; 568 do i = lbound (lsla_count, 1) to hbound (lsla_count, 1); 569 if lsla_count (i) > 0 570 then do; 571 j = j + 1; 572 if lsla_count (i) > 52 573 then do; 574 call ioa_$rsnnl ("LSLA ^d", ename, (0), i); 575 call error_proc (13, 2, "^a on FNP ^a has too many time slots configured.", "^a on FNP ^a", 576 ename, mpx_name); 577 end; 578 end; 579 end; 580 if j > fnpe.nlslas 581 then call error_proc (14, 2, "More LSLA's configured on FNP ^a than specified in lsla statement.", "FNP ^a", 582 mpx_name, ""); 583 584 j = 0; 585 do i = lbound (hsla_configured, 1) to hbound (hsla_configured, 1); 586 if hsla_configured (i) 587 then j = j + 1; 588 end; 589 if j > fnpe.nhslas 590 then call error_proc (15, 2, "More HSLA's configured on FNP ^a than specified in hsla statement.", "FNP ^a", 591 mpx_name, ""); 592 593 return; 594 595 dcl static_trace_switch bit (1) aligned int static init ("0"b); 596 597 trace_on: 598 entry; 599 static_trace_switch = "1"b; 600 call sys_log_ (SL_LOG, "^a: Tracing on.", name); 601 return; 602 trace_off: 603 entry; 604 static_trace_switch = "0"b; 605 call sys_log_ (SL_LOG, "^a: Tracing off.", name); 606 return; 607 608 MPXE_STATE: 609 procedure (state) returns (char (32)); 610 611 declare state fixed bin; 612 613 if state < lbound (MPXE_STATE_NAMES, 1) | state > hbound (MPXE_STATE_NAMES, 1) 614 then return (ltrim (char (state))); 615 else return (MPXE_STATE_NAMES (state)); 616 end MPXE_STATE; 617 618 /* BEGIN MESSAGE DOCUMENTATION 619* 620* Message: 621* as_mcs_mpx_: ERROR_CODE_MESSAGE Creating event channel for FNP TAG. 622* 623* S: $as1 624* 625* T: $run 626* 627* M: An error occured (ERROR_CODE_MESSAGE) when an attempt was made 628* to create an event channel for FNP TAG. The load attempt has been aborted. 629* This message can also be logged if an error occured when changing the just 630* created event-wait channel into an event-call channel. 631* 632* A: $inform 633* 634* Message: 635* as_mcs_mpx_: ERROR_CODE_MESSAGE Resetting event channel for FNP TAG. 636* 637* S: $as1 638* 639* T: $run 640* 641* M: An error occured (ERROR_CODE_MESSAGE) when an attempt was made to 642* drain all events from the FNP boot event channel. 643* 644* A: $inform 645* 646* Message: 647* as_mcs_mpx_: ERROR_CODE_MESSAGE Taking dump of FNP TAG. FNP_DUMP_ENTRY_NAME 648* 649* S: $as1 650* 651* T: $run 652* 653* M: An error occured (ERROR_CODE_MESSAGE) when an attempt was made to 654* dump FNP TAG into the FNP_DUMP_ENTRY_NAME segment in >dumps. 655* 656* A: $inform 657* 658* Message: 659* as_mcs_mpx_: FDUMP of FNP TAG created in >dumps>FNP_DUMP_ENTRY_NAME 660* 661* S: $as1 662* 663* T: $run 664* 665* M: FNP TAG has been dumped successfully into the 666* >dumps>FNP_DUMP_ENTRY_NAME segment after it crashed. 667* 668* A: $inform 669* 670* Message: 671* as_mcs_mpx_: Unexpected wakeup (EV_MSG_WORD_1 EV_MSG_WORD_2) from process 672* PROC_ID. 673* 674* S: $as1 675* 676* T: $run 677* 678* M: An unexpected wakeup occured on an FNP bootload event channel from 679* process PROC_ID. The event message data is in EV_MSG_WORD_1 and 680* EV_MSG_WORD_2. Unable to determine FNP tag. 681* 682* A: $inform 683* 684* Message: 685* as_mcs_mpx_: Wakeup with bad data pointer ignored: POINTER 686* 687* S: $as1 688* 689* T: $run 690* 691* M: A wakeup was received on an FNP bootload event channel with which a 692* bad data pointer was supplied. Unable to determine FNP tag. 693* 694* A: $inform 695* 696* Message: 697* as_mcs_mpx_: ERROR_CODE_MESSAGE Reading event channel for FNP TAG. 698* 699* S: $as1 700* 701* T: $run 702* 703* M: An error occured (ERROR_CODE_MESSAGE) when an attempt was made to 704* read the bootload event channel for FNP TAG. 705* 706* A: $inform 707* 708* Message: 709* as_mcs_mpx_: Load of FNP TAG did not complete within X minutes. 710* 711* S: $as2 712* 713* T: $run 714* 715* M: FNP TAG did not signal that it had completed the load attempt within 716* the required X minutes from the time that the image was sent to the FNP. 717* 718* A: Try to load the FNP again. If problem persists, contact system 719* programing staff. 720* 721* Message: 722* as_mcs_mpx_ (trace): FNP FNP_NUMBER, MPXE state MPX_STATE, FNP state 723* FNP_STATE{, deconfigured}. 724* 725* S: $as1 726* 727* T: $run 728* 729* M: This is a tracing message which displays some values of variables 730* that describe the status of the FNP. 731* 732* A: $inform 733* 734* Message: 735* as_mcs_mpx_: Invalid wakeup received for FNP TAG. Wakeup appears to be for 736* FNP OTHER_TAG (#FNP_NUMBER). 737* 738* S: $as1 739* 740* T: $run 741* 742* M: Invalid wakeup received on bootload event channel for FNP TAG. 743* Wakeup data indicates it is for FNP OTHER_TAG whose number is FNP_NUMBER. 744* 745* A: $inform 746* 747* Message: 748* as_mcs_mpx_: Wakeup for FNP TAG has invalid state code: CODE. 749* 750* S: $as1 751* 752* T: $run 753* 754* M: Wakeup message data received on bootload event channel for FNP TAG 755* contains an invalid state code value of CODE. Valid values for mpxe.state 756* are defined in the cdt.incl.pl1 include file by the FNP_* variables. 757* 758* A: $inform 759* 760* Message: 761* as_mcs_mpx_: Load failed for FNP TAG. 762* 763* S: $as1 764* 765* T: $run 766* 767* M: The FNP TAG failed to load successfully. 768* 769* A: Try the bootload attempt again. If problem persists, contact the 770* programing staff. 771* 772* Message: 773* as_mcs_mpx_: Load signalled for FNP TAG. 774* 775* S: $as1 776* 777* T: $run 778* 779* M: FNP TAG bootloaded successfully. 780* 781* A: $ignore 782* 783* Message: 784* as_mcs_mpx_: Inconsistent wakeup received from FNP TAG. FNP state = 785* FNP_STATE, msg state = MSG_STATE. 786* 787* S: $as1 788* 789* T: $run 790* 791* M: The data in the message from the bootload event channel for FNP TAG 792* indicates that the FNP was in an inconsistant state (MSG_STATE) with the 793* current state (FNP_STATE) of the FNP in the CDT. 794* 795* A: $inform 796* 797* Message: 798* as_mcs_mpx_: Crash signalled for FNP TAG. 799* 800* S: $as1 801* 802* T: $run 803* 804* M: FNP TAG has crashed. A reload of the FNP will be attempted if it is 805* not in a crash loop or not inactive. 806* 807* A: $inform 808* 809* Message: 810* as_mcs_mpx_: Procedure called with bad fnpep into cdt: POINTER 811* 812* S: $as1 813* 814* T: $run 815* 816* M: The compute_fnp_no internal procedure detected that as_mcs_mpx_ was 817* supplied with a prointer value (POINTER) that should point to an FNP entry 818* in the CDT but doesn't. Current operation has been aborted. 819* 820* A: $inform 821* 822* Message: 823* as_mcs_mpx_: Tracing on. 824* 825* S: $as1 826* 827* T: $run 828* 829* M: The trace_on entry point has been called so that as_mcs_mpx_ trace 830* data will now be displayed. 831* 832* A: $inform 833* 834* Message: 835* as_mcs_mpx_: Tracing off. 836* 837* S: $as1 838* 839* T: $run 840* 841* M: The trace_off entry point has been called and now tracing has been 842* disabled. 843* 844* A: $inform 845* 846* Message: 847* as_mcs_mpx_: ERROR_CODE_MESSAGE >sc1>fnp_crash_notify.ec does not exist. 848* 849* S: $as1 850* 851* T: $run 852* 853* M: An error occured (ERROR_CODE_MESSAGE) when checking for the existence 854* of fnp_crash_notify.ec in the system_control_1 directory. 855* 856* A: $inform 857* 858* 859* Message: 860* as_mcs_mpx_: ERROR_CODE_MESSAGE Failed to establish an SCI environment. 861* 862* S: $as1 863* 864* T: $run 865* 866* M: An error occured (ERROR_CODE_MESSAGE) when trying to create an 867* system control subsystem environment pointer. 868* 869* A: $inform 870* 871* END MESSAGE DOCUMENTATION */ 872 1 1 /* BEGIN INCLUDE FILE ... cdt.incl.pl1 */ 1 2 1 3 /* format: style3,idind25,indcomtxt */ 1 4 1 5 /* Channel Definition Table. 1 6* This table lists all of the hardware channels (ports) connected 1 7* to the system, and maintains the attributes of each one. 1 8* 1 9* PG 741230 1 10* Modified by Mike Grady 5/6/76 to add FNP info. 1 11* Modified by Tom Casey 7/29/76 to add more FNP info and a few other things. 1 12* Modified by Robert Coren 6/13/77 to make terminal types be character strings. 1 13* Modified July 1979 by T. Casey to add several variables for MR8.0 process preservation facility. 1 14* Modified December 1980 by E. N. Kittlitz to eliminate cdte.phone_no. 1 15* Modified March 1981 by Robert Coren to add "listening" flag for multiplexers and to add TANDD_SERVICE service_type. 1 16* Modified April 1981 by E. N. Kittlitz to add cdte.dial_ev_chn, cdte.recent_wakeup_time, cdte.recent_wakeup_count. 1 17* Modified July 1981 by T. Casey for MR9.0 to add dialup_flags.detach_after_hangup 1 18* Modified December 1981 by E. N. Kittlitz for cdte.leave_edited, cdte.hold_arg, 1 19* Modified September 1981 by Benson I. Margulies for cdt_mgr_'s tree of multiplexer's. 1 20* Modified August 1982 by E. N. Kittlitz for check_acs. 1 21* Modified January 1983 by Keith Loepere for generic_destination. 1 22* Modified August 1983 by Robert Coren to add mpxe.check and mpxe.retry_load. 1 23* Modified 831216 by E. N. Kittlitz for required_access_class. 1 24* Modified 84-04-01 by BIM to finish communications AIM: 1 25* access class ranges, 1 26* access_control flags. 1 27**/ 1 28 1 29 1 30 /****^ HISTORY COMMENTS: 1 31* 1) change(87-03-17,Beattie), approve(87-04-06,MCR7656), 1 32* audit(87-07-13,Parisek), install(87-08-04,MR12.1-1056): 1 33* Add support for answering service to use IOCBs when tty_ cannot be 1 34* used to service login channels. 1 35* END HISTORY COMMENTS */ 1 36 1 37 1 38 dcl CDT_version_5 fixed bin internal static initial (5) options (constant); 1 39 dcl CDT_version fixed bin internal static initial (6) options (constant); 1 40 1 41 dcl (cdtp, cdtep, fnpep, mpxep) 1 42 ptr; 1 43 1 44 dcl 1 cdt based (cdtp) aligned, /* all of the system channels */ 1 45 2 author like author_dcl.author, /* standard header */ 1 46 2 max_size fixed bin, /* maximum number of cdte's in 255K */ 1 47 2 current_size fixed bin, /* number of last cdte. */ 1 48 2 version fixed bin, 1 49 2 freep fixed bin, /* chain of free cdte's */ 1 50 2 n_cdtes fixed bin, /* number of used cdte's */ 1 51 2 meters_last_reset fixed bin (71), /* clock time dialup meters were reset */ 1 52 2 realtime_in_dialup fixed bin (71), /* Dialup meter */ 1 53 2 cpu_in_dialup fixed bin (71), /* .. */ 1 54 2 pf_in_dialup fixed bin, /* .. */ 1 55 2 pp_in_dialup fixed bin, /* .. */ 1 56 2 entries_to_dialup fixed bin, /* .. */ 1 57 2 flags, 1 58 3 go bit (1) unal, /* ans. serv. said "go ahead and answer the phones" */ 1 59 3 cdt_is_live bit (1) unal, /* cdt is active */ 1 60 3 mux_mgr_system_init 1 61 bit (1) unal, /* mux mgr has loaded top-levels */ 1 62 3 pad1 bit (33) unal, 1 63 2 acceptable_fnp_tbf fixed bin, /* acceptable minutes between FNP crashes */ 1 64 2 spare_channel_count fixed bin, /* number of extra channels to leave room for in ring0 */ 1 65 2 threads aligned like channel_threads, 1 66 /* root of non-fnp-top-level-multiplexers */ 1 67 2 pad2 (31) bit (36) aligned, /* pad header to 80 words */ 1 68 2 fnp_entry dim (8) like fnpe, /* max of 8 FNPs for now */ 1 69 2 cdt_entry dim (2500) like cdte; /* # of cdte's in 255K */ 1 70 1 71 1 72 dcl 1 cdte based (cdtep) aligned, /* a channel */ 1 73 2 in_use fixed bin, /* see dialup_values. 0=NOW_FREE */ 1 74 /**** * These variables are filled in when the CDTE is created by cv_cmf. They are not dynamic. */ 1 75 2 pad1 bit (36) aligned, 1 76 2 name char (32), /* ASCII name of channel */ 1 77 2 access_class (2) bit (72) aligned, /* access class range */ 1 78 2 comment char (48), /* printable message about channel */ 1 79 2 charge_type fixed bin (17) unal, /* billing group */ 1 80 2 service_type fixed bin (17) unal, /* service group (AS, ftp, mc) */ 1 81 2 line_type fixed bin (17) unal, /* tty line type (protocol) */ 1 82 2 baud_rate fixed bin (17) unal, /* 110, 133, 150, etc. */ 1 83 2 modem_type fixed bin (17) unal, /* type of modem on this channel */ 1 84 2 pad2 bit (18) unaligned, 1 85 2 answerback char (8), /* answerback string expected */ 1 86 2 initial_terminal_type 1 87 char (32) unal, /* as specified in the CMF */ 1 88 2 mpx_data unal, /* data used only for multiplexed channels */ 1 89 3 mpx_type fixed bin (17), /* type of multiplexing used */ 1 90 3 mpx_service fixed bin (17), /* service type, active or inactive */ 1 91 2 flags, 1 92 ( 3 attributes, 1 93 4 ck_answerback bit (1), /* ON means that ansbk must equal our records */ 1 94 4 audit_access_error 1 95 bit (1), /* ON means ck that person auth is inside access class range */ 1 96 /* this implies that the access_class describes a range of 1 97* legitimate user auths. */ 1 98 4 hardwired bit (1), /* ON means it is */ 1 99 4 set_modes bit (1), /* ON means to set initial modes at dialup */ 1 100 4 dont_read_answerback 1 101 bit (1), /* ON means don't try to read answerback */ 1 102 4 pada bit (4), 1 103 3 access_control unaligned, /* As below */ 1 104 4 dial_out bit (1), /* dialing user must be on ACS */ 1 105 4 priv_attach bit (1), /* PA_ user must be on ACS */ 1 106 4 dial_server bit (1), /* accept_dials process must be on acs */ 1 107 4 login bit (1), /* logging in user must be on acs */ 1 108 4 slave_dial bit (1), /* dialing user must give -user and be on acs */ 1 109 4 pado bit (3), 1 110 3 options, 1 111 4 execute_initial_command 1 112 bit (1), /* ON means to do it */ 1 113 4 attached_by_operator 1 114 bit (1), /* ON means temporary attachment. */ 1 115 4 private_line bit (1), /* ON means private_line sync modem in use */ 1 116 4 bsc_ebcdic bit (1), /* ON means bsc would like to use ebcdic code set */ 1 117 4 bsc_transparent bit (1), /* ON means bsc is in transparent mode */ 1 118 4 vip_pollselect bit (1), /* ON means VIP line is multidrop */ 1 119 4 autobaud bit (1), /* ON means auto baud detection this channel */ 1 120 4 generic_destination_present 1 121 bit (1), /* ON means that the initial_command field contains 1 122* a generic destination to match on dial_out or priv attach */ 1 123 4 use_iocb bit (1), /* ON means to use IOCB operations to support channel */ 1 124 4 pado bit (9) 1 125 ) unaligned, 1 126 2 initial_command char (64), /* pseudo first input line */ 1 127 /**** The following variables represent dynamic control info, and 1 128* are used mostly by dialup_ and asu_ */ 1 129 2 event fixed bin (71), /* event call channel for channel events */ 1 130 2 current_service_type fixed bin (17) unal, /* Current usage of line. */ 1 131 2 tra_vec fixed bin (17) unal, /* which section of dialup_ to do next */ 1 132 2 count fixed bin (17) unal, /* How many login tries he's had. */ 1 133 2 dialup_flags unal, /* flag bits for dialup to maintain */ 1 134 3 ppm bit (1) unal, /* print preaccess message for IBM terminals */ 1 135 3 cpo bit (1) unal, /* conditional printer-off (depends on answerback */ 1 136 3 wakeup_handler bit (1) unal, /* says who is wakeup handler for this channel */ 1 137 /* 0 = dialup_, 1 = mc_tty_ */ 1 138 3 save_arg bit (1) unal, /* -save login arg given */ 1 139 3 nosave_arg bit (1) unal, /* -nosave login arg given */ 1 140 3 detach_after_hangup 1 141 bit (1) unal, /* remember WAIT_DETACH when setting WAIT_BEFORE_HANGUP */ 1 142 3 leave_edited bit (1) unal, /* user control of edited mode */ 1 143 3 hold_arg bit (1) unal, /* -hold arg given */ 1 144 3 no_hold_arg bit (1) unal, /* -no_hold arg given */ 1 145 3 immediate_arg bit (1) unal, /* -immediate arg given */ 1 146 3 current_access_class_valid 1 147 bit (1) unal, /* dialup_ or lg_ctl_ has determined the current_access_class */ 1 148 3 pad bit (7) unal, 1 149 2 twx fixed bin, /* channel device index */ 1 150 2 state fixed bin, /* channel state */ 1 151 2 tty_id_code char (4), /* channel id (answerback) */ 1 152 2 current_terminal_type 1 153 char (32) unal, /* most recently-set terminal type */ 1 154 2 process ptr unal, /* ptr to ATE owning this channel */ 1 155 2 dialed_to_procid bit (36), /* Dialed channels remember owner's proc id */ 1 156 2 next_channel fixed bin (17) unal, /* cdte index of next channel for this process */ 1 157 2 cur_line_type fixed bin (17) unal, /* line type of currently dialed terminal */ 1 158 2 current_access_class (2) bit (72) aligned, /* This is a range, but at this time it must be a null range. 1 159* We do not yet define multi-class connections, but we will someday. */ 1 160 2 disconnected_ate_index 1 161 fixed bin (17) unal, /* index of ate of disconnected process */ 1 162 2 dial_ctl_ring fixed bin (3) unsigned unaligned, 1 163 /* used by dial_ctl_ to record ring of priv_attach or dial_out attachments */ 1 164 2 dial_rq_privileged bit (1) unaligned, /* used by dial ctl to record comm priv from priv_attach or dial_out request */ 1 165 2 pad3 bit (14) unaligned, 1 166 /**** The following variables are kept for metering purposes. */ 1 167 2 n_dialups fixed bin, /* number of times channel has been dialed up */ 1 168 2 n_logins fixed bin, /* number of login sessions on this channel */ 1 169 2 dialed_up_time fixed bin (35), /* total time channel was dialed up (seconds) */ 1 170 2 dialup_time fixed bin (71), /* time of present dialup */ 1 171 2 disconnected_proc_command 1 172 fixed bin (12) unsigned unal, 1 173 /* 1 to 5 for -list,-create,-connect,-new_proc,-destroy */ 1 174 2 disconnected_proc_number 1 175 fixed bin (12) unsigned unal, 1 176 /* {N} in -connect {N}, -new_proc {N}, -destroy {N} */ 1 177 2 n_disconnected_procs fixed bin (12) unsigned unal, 1 178 /* number of disconnected processes that user has */ 1 179 2 recent_wakeup_count fixed bin, /* counter to detect channel wakeup loop */ 1 180 2 recent_wakeup_time fixed bin (71), /* time of first wakeup in suspected channel wakeup loop */ 1 181 2 dial_ev_chn fixed bin (71), /* Dialed channels remember master's IPC channel */ 1 182 /**** cdt_mgr_ uses these to maintain the tree of channels. They ****/ 1 183 /**** really belong in the mpxe, but it is full up, and the cdte ****/ 1 184 /**** had the space. */ 1 185 2 threads aligned like channel_threads, 1 186 /**** The use name is that of the user who gave the dial or slave ****/ 1 187 /**** preaccess request. ****/ 1 188 2 user_name unaligned, 1 189 3 person char (20) unaligned, 1 190 3 project char (9) unaligned, 1 191 3 pad char (3) unaligned, /* no tag */ 1 192 2 iocbp ptr unaligned; /* 104 words */ 1 193 1 194 1 195 dcl generic_destination based char (32); /* used to match destinations on dial_out and priv_attach, 1 196* overlays initial_command field for slave and autocall lines */ 1 197 1 198 1 199 1 200 dcl 1 fnpe based (fnpep) aligned, /* an FNP */ 1 201 /* These variables are filled in from the CMF */ 1 202 2 type fixed bin, /* type of this FNP, DN355, DN6670, etc. */ 1 203 2 memory fixed bin, /* amount of memory on this FNP */ 1 204 2 nlslas fixed bin, /* number of lslas on this FNP */ 1 205 2 nhslas fixed bin, /* number of hslas on this FNP */ 1 206 2 service_type fixed bin, /* service type */ 1 207 2 mpx_type fixed bin, /* type of multiplexer on this fnp */ 1 208 2 coreimage char (168), /* pathname of image, maybe in >sl1 */ 1 209 /**** The following are used during system operation to remember the state of the FNP */ 1 210 2 boot_segp ptr, /* ptr to seg used for bootload */ 1 211 2 boot_ev_chan fixed bin (71), /* for ring0 to report crashes and bootload complete */ 1 212 2 mpxe like mpxe, /* standard multiplexer data */ 1 213 2 threads aligned like channel_threads, 1 214 /* same mpx threads as channel */ 1 215 2 pad3 (25) fixed bin; /* pad to 96 words per entry */ 1 216 1 217 /* This structure describes the data necessary to control a multiplexer. 1 218* For FNP's., a copy appears in the fnpe. For communications lines, it 1 219* overlays the initial_command field in the cdte. */ 1 220 1 221 dcl 1 mpxe based (mpxep) aligned, 1 222 2 state fixed bin, /* current state, up, down, loading */ 1 223 2 current_service_type fixed bin, /* usually = service type, unless cdt installation changes it */ 1 224 2 current_mpx_type fixed bin, /* type of multiplexer currently running */ 1 225 2 n_bootloads fixed bin, /* count of load attempts */ 1 226 2 time_initial_load fixed bin (71), /* time this MPX first completed a load */ 1 227 2 time_last_load fixed bin (71), /* time MPX last completed a bootload */ 1 228 2 time_last_crash fixed bin (71), /* time MPX last crashed */ 1 229 2 time_load_start fixed bin (71), /* time current load started */ 1 230 2 last_tbf fixed bin, /* number of minutes this MPX was up last bootload */ 1 231 2 flags unal, 1 232 3 go bit (1), /* start MPX after it loads */ 1 233 3 listening bit (1), /* listen has been done on subchannels */ 1 234 3 check bit (1), /* loaded with check option */ 1 235 3 retry_load bit (1), /* reload if load fails */ 1 236 3 pad1 bit (32), 1 237 2 pad2 (2) fixed bin; /* pad to 16 words */ 1 238 1 239 /* These threads define the tree of multiplexers in the cdt. */ 1 240 /* next_sister and prev_sister link nodes at the same level, ordered */ 1 241 /* by alpha sort order of the channel name. Daughter points to the */ 1 242 /* first child of this node, if any. Daughter count is the number */ 1 243 /* of children, as a consistency check. Mother is a back pointer to */ 1 244 /* the parent, present in all the children, not just the first. */ 1 245 /* threads are cdt indexes. If positive, they index the cdt_entry array */ 1 246 /* in cdt, if negative, they are the negative of an index into the fnp_entry */ 1 247 /* array. If zero, they refer to the top of the non-fnp mpx tree. */ 1 248 1 249 dcl 1 channel_threads aligned based, 1 250 2 next_sister fixed bin unaligned, 1 251 2 prev_sister fixed bin unaligned, 1 252 2 daughter fixed bin unaligned, 1 253 2 mother fixed bin unaligned, /* negative is a fnpx, positive a cdtx */ 1 254 2 pad bit (18) unaligned, 1 255 2 daughter_count fixed bin unaligned; 1 256 1 257 /* Values for cdte.service_type field */ 1 258 1 259 dcl ( 1 260 ANS_SERVICE init (1), /* login or dial */ 1 261 FTP_SERVICE init (2), /* file transfer service */ 1 262 MC_SERVICE init (3), /* message coordinator */ 1 263 SLAVE_SERVICE init (4), /* special channel */ 1 264 DIAL_SERVICE init (5), /* transient state */ 1 265 DIAL_OUT_SERVICE init (6), /* auto call line */ 1 266 MPX_SERVICE init (8), /* ring0 demultiplexed line */ 1 267 TANDD_SERVICE init (9) /* transient state, attached for T & D */ 1 268 ) fixed bin internal static options (constant); 1 269 1 270 /* Values for service type in both cdte and fnpe */ 1 271 1 272 dcl ( 1 273 INACTIVE init (7), /* not to be used, even though configured */ 1 274 ACTIVE init (1) 1 275 ) /* for FNP only, configured and to be used */ 1 276 fixed bin internal static options (constant); 1 277 1 278 /* Value for both cdte.in_use and fnpe.state */ 1 279 1 280 dcl NOT_CONFIGURED fixed bin int static init (-1) options (constant); 1 281 /* was not configured at Multics bootload time */ 1 282 1 283 /* NOTE: an INACTIVE channel can be made active by operator command or CDT installation, 1 284* but a NOT_CONFIGURED channel can not be used until its multiplexer is reloaded */ 1 285 1 286 /* Value for cdte.in_use */ 1 287 1 288 dcl CHANNEL_DELETED fixed bin int static init (-2); 1 289 /* channel deleted by CDT installation */ 1 290 1 291 /* NOTE: a configured channel being deleted by a CDT installation is set to CHANNEL_DELETED. 1 292* multiplexer_mgr_ sets cdte.in_use to NOW_FREE at the next reload of its multiplexer. 1 293* A NOT_CONFIGURED channel is set to NOW_FREE immediately when deleted by a CDT installation. */ 1 294 1 295 1 296 /* Values for mpxe.state field */ 1 297 1 298 dcl ( 1 299 FNP_FREE init (0), /* this fnpe is not used */ 1 300 FNP_UNKNOWN init (1), /* FNP is in some unknown state */ 1 301 FNP_DOWN init (2), /* FNP crashed, not yet reloaded */ 1 302 FNP_BOOT init (3), /* FNP has been booted, but no response yet */ 1 303 FNP_UP init (4) /* FNP is up and running fine */ 1 304 ) fixed bin internal static options (constant); 1 305 1 306 dcl ( 1 307 MPX_FREE init (0), /* this mpxe is not used */ 1 308 MPX_UNKNOWN init (1), /* MPX is in some unknown state */ 1 309 MPX_DOWN init (2), /* MPX crashed, not yet reloaded */ 1 310 MPX_BOOT init (3), /* MPX has been booted, but no response yet */ 1 311 MPX_UP init (4) /* MPX is up and running fine */ 1 312 ) fixed bin internal static options (constant); 1 313 2 1 /* BEGIN INCLUDE FILE ... fnp_types.incl.pl1 */ 2 2 2 3 2 4 2 5 /****^ HISTORY COMMENTS: 2 6* 1) change(88-06-15,Berno), approve(88-07-13,MCR7928), 2 7* audit(88-06-15,Parisek), install(88-07-19,MR12.2-1061): 2 8* Add data needed for the uncp multiplexer (DSA gateway) interface 2 9* implementation. 2 10* END HISTORY COMMENTS */ 2 11 2 12 2 13 /* Values for fnpe.type field */ 2 14 /* 2 15* Created 79 May 14 by Art Beattie by splitting information out from cdt.incl.pl1 2 16* Added in March 1982 - DN7100.fd. 2 17**/ 2 18 2 19 dcl (DN355 init (1), /* a DataNet 355 FNP */ 2 20 DN6600 init (2), /* a DataNet 6600 FNP */ 2 21 DN6670 init (3), /* a Honeywell Bull Network Processor (18x) */ 2 22 DN7100 init (4) /* The DSA Datanet architecture (DN7) */ 2 23 ) fixed bin internal static options (constant); 2 24 2 25 dcl fnp_types (4) char (8) int static options (constant) 2 26 init ("DN355", "DN6600", "DN6670", "DN7100"); 2 27 2 28 dcl fnp_models (4) fixed bin (17) int static options (constant) 2 29 init (355, 6600, 6670, 7100); 2 30 2 31 dcl supported_fnp (4) bit (1) int static options (constant) 2 32 init ("0"b, "0"b, "1"b, "1"b); 2 33 2 34 2 35 /* END INCLUDE FILE ... fnp_types.incl.pl1 */ 1 314 1 315 1 316 /* END INCLUDE FILE ... cdt.incl.pl1 */ 873 874 3 1 /* BEGIN INCLUDE FILE ... author_dcl.incl.pl1 */ 3 2 3 3 /* This include file declares the "author" substructure 3 4* in a form suitable for using the PL/I "like" attribute. 3 5* 3 6* Written 750304 by PG 3 7**/ 3 8 3 9 dcl 1 author_dcl aligned based, 4 1 /* BEGIN INCLUDE FILE author.incl.pl1 */ 4 2 4 3 /* the "author" items must always be the first ones in the table. The 4 4* module which moves the converted table to the System Control process 4 5* fills in these data items and assumes them to be at the head of the segment 4 6* regardless of the specific table's actual declaration. The variables 4 7* "lock" and "last_install_time" used to be "process_id" and "ev_channel" 4 8* respectively. For tables installed in multiple processes, these 4 9* are to be used to lock out multiple installations. */ 4 10 4 11 /* Lock should be used as a modification lock. Since, in general, 4 12* entries may not be moved in system tables, even by installations, 4 13* it is sufficient for only installers and programs that change threads 4 14* to set or respect the lock. Simply updating data in an entry 4 15* requires no such protection. 4 16* 4 17* Last_install_time is used by readers of system tables to detect 4 18* installations or other serious modifications. By checking it before 4 19* and after copying a block of data, they can be protected against 4 20* modifications. 4 21* 4 22* Modules that set the lock should save proc_group_id, and then 4 23* put their group id there for the time they hold the lock. 4 24* if they do not actually install the, they should restore the group id. 4 25**/ 4 26 4 27 2 author aligned, /* validation data about table's author */ 4 28 3 proc_group_id char (32), /* process-group-id (personid.projectid.tag) */ 4 29 3 lock bit (36), /* installation lock */ 4 30 3 update_attributes bit (1) unal, /* update/add/delete attributes */ 4 31 3 update_authorization bit (1) unal, /* update only authorizations */ 4 32 3 deferral_notified bit (1) unal, /* installer notified of deferral of installation */ 4 33 3 pad bit (33) unaligned, 4 34 3 last_install_time fixed bin (71), 4 35 3 table char (4), /* name of table, e.g., SAT MGT TTT RTDT PDT etc. */ 4 36 3 w_dir char (64), /* author's working directory */ 4 37 4 38 /* END INCLUDE FILE author.incl.pl1 */ 3 10 3 11 2 pad; 3 12 3 13 /* END INCLUDE FILE ... author_dcl.incl.pl1 */ 875 876 5 1 /* Begin include file as_mpx_state_names_.incl.pl1 */ 5 2 /* format: style3 */ 5 3 5 4 declare MPXE_STATE_NAMES (0:4) char (32) int static options (constant) 5 5 init ("free", "unknown", "down", "booting", "up"); 5 6 5 7 /* End include file as_mpx_state_names_.incl.pl1 */ 877 878 6 1 /* BEGIN INCLUDE FILE ... line_types.incl.pl1 */ 6 2 6 3 /* Written November 10 1975 by Paul Green */ 6 4 /* Modified October 1978 by Larry Johnson to include line_type_names */ 6 5 /* Modified 12/19/78 by J. Stern to add POLLED_VIP line type */ 6 6 /* Modified 9/27/79 by J. Stern to add X25LAP line type */ 6 7 /* Modified Spring 1981 by Charles Hornig to add HDLC line type */ 6 8 /* Modified May 1981 by Robert Coren to add COLTS line type */ 6 9 /* Modified September 1984 by Robert Coren to correctly count VIP as a synchronous line type */ 6 10 6 11 6 12 /****^ HISTORY COMMENTS: 6 13* 1) change(86-02-25,Negaret), approve(87-07-13,MCR7679), 6 14* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 6 15* Add a DSA line type. 6 16* 2) change(87-03-17,Beattie), approve(87-07-13,MCR7656), 6 17* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 6 18* Add HASP_OPR to identify HASP workstation consoles with login service. 6 19* END HISTORY COMMENTS */ 6 20 6 21 6 22 declare (LINE_MC initial (-2), 6 23 LINE_TELNET initial (-1), 6 24 LINE_UNKNOWN initial (0), 6 25 LINE_ASCII initial (1), 6 26 LINE_1050 initial (2), 6 27 LINE_2741 initial (3), 6 28 LINE_ARDS initial (4), 6 29 LINE_SYNCH initial (5), 6 30 LINE_G115 initial (6), 6 31 LINE_BSC initial (7), 6 32 LINE_ETX initial (8), 6 33 LINE_VIP initial (9), 6 34 LINE_ASYNC1 initial (10), 6 35 LINE_ASYNC2 initial (11), 6 36 LINE_ASYNC3 initial (12), 6 37 LINE_SYNC1 initial (13), 6 38 LINE_SYNC2 initial (14), 6 39 LINE_SYNC3 initial (15), 6 40 LINE_POLLED_VIP initial (16), 6 41 LINE_X25LAP initial (17), 6 42 LINE_HDLC initial (18), 6 43 LINE_COLTS initial (19), 6 44 LINE_DSA initial (20), 6 45 LINE_HASP_OPR initial (21) 6 46 ) fixed bin internal static options (constant); 6 47 6 48 dcl max_line_type fixed bin int static options (constant) init (21); 6 49 6 50 declare n_sync_line_types fixed bin int static options (constant) init (10); 6 51 6 52 declare sync_line_type (10) fixed bin int static options (constant) init (5, 6, 7, 9, 13, 14, 15, 16, 17, 18); 6 53 6 54 dcl line_types (-2:21) char (16) int static options (constant) init ( 6 55 "MC", /* -2 */ 6 56 "TELNET", /* -1 */ 6 57 "none", /* 0 */ 6 58 "ASCII", /* 1 */ 6 59 "1050", /* 2 */ 6 60 "2741", /* 3 */ 6 61 "ARDS", /* 4 */ 6 62 "Sync", /* 5 */ 6 63 "G115", /* 6 */ 6 64 "BSC", /* 7 */ 6 65 "202ETX", /* 8 */ 6 66 "VIP", /* 9 */ 6 67 "ASYNC1", /* 10 */ 6 68 "ASYNC2", /* 11 */ 6 69 "ASYNC3", /* 12 */ 6 70 "SYNC1", /* 13 */ 6 71 "SYNC2", /* 14 */ 6 72 "SYNC3", /* 15 */ 6 73 "POLLED_VIP", /* 16 */ 6 74 "X25LAP", /* 17 */ 6 75 "HDLC", /* 18 */ 6 76 "COLTS", /* 19 */ 6 77 "DSA", /* 20 */ 6 78 "HASP_OPR"); /* 21 */ 6 79 6 80 /* END INCLUDE FILE ... line_types.incl.pl1 */ 879 880 7 1 /* BEGIN INCLUDE FILE as_wakeup_priorities.incl.pl1 */ 7 2 7 3 /* This include file defines the priorities of all of the event channels used by the answering service. 7 4* 7 5* They are declared as named constants. They are used in calls to ipc_$decl_ev_call_chn. 7 6* The names correspond to the functions of the event call handlers. 7 7* For brevity in names, MC means message coordinator, and LOGIN includes logout as well. 7 8* 7 9* The comment on each constant lists the procedure(s) that use it to set event channel priorities. 7 10* See the code in those procedures for information on the handlers themselves 7 11* (which are entry variables in some cases, and thus could not be documented in this file). 7 12* 7 13* The priorities range from zero (highest) to 22 (lowest used by the answering service). 7 14* 7 15* The event wait channel on which the A.S. goes blocked awaiting input on the initializer console has highest 7 16* of all priorities, set by as_init_ calling ipc_$set_wait_prior. 7 17* 7 18* Written June 1981 by T. Casey for MR9.0 7 19* Modified 1984-10-15 BIM for sac -> as_request. 7 20* as_request is above login, since sac is important and 7 21* dial requests for already logged in users can take 7 22* first dibs over new logins. 7 23**/ 7 24 7 25 dcl MC_PRIO fixed bin int static options (constant) init (1); /* mc_commands_, mc_con_rec_, mc_util_, mrd_tester */ 7 26 dcl SYSERR_COPY_PRIO fixed bin int static options (constant) init (2); /* syserr_log_man_ */ 7 27 dcl SHUTDOWN_PRIO fixed bin int static options (constant) init (3); /* admin */ 7 28 dcl ACCT_UPDATE_PRIO fixed bin int static options (constant) init (4); /* act_ctl_ */ 7 29 dcl DAEMON_LOGIN_PRIO fixed bin int static options (constant) init (8); /* daemon_user_manager_ */ 7 30 dcl AS_REQUEST_PRIO fixed bin int static options (constant) init (7); /* as_request_ */ 7 31 dcl INSTALL_PRIO fixed bin int static options (constant) init (8); /* up_sysctl_ */ 7 32 dcl INT_LOGIN_PRIO fixed bin int static options (constant) init (8); /* asu_, dialup_, ftp_dialup_ */ 7 33 dcl MPX_LOAD_PRIO fixed bin int static options (constant) init (11); 7 34 /* as_vip7760_mpx_, as_mcs_mpx_, as_ibm3270_mpx_, as_hasp_mpx_ */ 7 35 dcl ABS_DEFER_PRIO fixed bin int static options (constant) init (19); /* absentee_utility_ */ 7 36 dcl ABS_LOGIN_PRIO fixed bin int static options (constant) init (20); /* abentee_user_manager_ */ 7 37 dcl CORE_FLUSH_PRIO fixed bin int static options (constant) init (22); /* as_meter_ */ 7 38 7 39 /* END INCLUDE FILE as_wakeup_priorities.incl.pl1 */ 881 882 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 */ 883 884 9 1 /* Begin include file fnp_mpx_msg_.incl.pl1 BIM 83-12-20 */ 9 2 /* Message from ring 0 fnp mpx to user ring mpx manager */ 9 3 /* format: style3 */ 9 4 9 5 dcl fnp_msg_ptr pointer; 9 6 dcl 1 fnp_msg aligned based (fnp_msg_ptr), 9 7 2 fnp_no fixed bin (17) unal, 9 8 2 state fixed bin (17) unal, 9 9 2 flags unaligned, 9 10 3 deconfigured bit, 9 11 3 pad bit (35); 9 12 9 13 /* End include file fnp_mpx_msg_.incl.pl1 */ 885 886 10 1 /* BEGIN: sc_subsystem_info_.incl.pl1 * * * * * */ 10 2 10 3 /* format:style3,idind30 */ 10 4 10 5 /* Created 1984-10-24 BIM */ 10 6 /* Modified 1985-01-07, BIM: access control flags that track admin and X */ 10 7 /* Modified 1985-02-18, E. Swenson to save away abort_line procedure. */ 10 8 10 9 10 10 /****^ HISTORY COMMENTS: 10 11* 1) change(87-02-17,GDixon), approve(87-07-03,MCR7680), 10 12* audit(87-07-13,Parisek), install(87-08-04,MR12.1-1056): 10 13* Correct formatting problems. Add sc_subsystem_info.flags.dont_mask_calls 10 14* switch. 10 15* 2) change(87-07-03,GDixon), approve(87-07-03,MCR7680), 10 16* audit(87-07-13,Parisek), install(87-08-04,MR12.1-1056): 10 17* Removed dont_mask_calls flag. It is no longer needed to correctly perform 10 18* masking on a per-request basis. 10 19* END HISTORY COMMENTS */ 10 20 10 21 10 22 declare sc_subsystem_info_ptr pointer; 10 23 declare 1 sc_subsystem_info aligned based (sc_subsystem_info_ptr), 10 24 2 restriction_flags bit (36) aligned, /* copied from mc atep or fabricated */ 10 25 2 flags aligned, 10 26 3 no_real_tty bit (1) unaligned, /* for sc_admin_command_ */ 10 27 3 print_ready bit (1) unal, /* on for all except the system console, */ 10 28 /* instructs sc_process_command_line_ to deal */ 10 29 /* with the prompt */ 10 30 3 the_system_console bit (1) unal, /* syserr messages are printed here (but console */ 10 31 /* recover doesn't try to fix this) copied here */ 10 32 /* from the mc_ate to save other looking in there*/ 10 33 3 printer_offed bit (1) unal, /* suppress logging */ 10 34 3 pad bit (32) unaligned, 10 35 2 source_name char (32) unaligned, 10 36 2 area_ptr pointer, 10 37 2 mc_atep pointer, /* needed to play with attachments */ 10 38 2 real_iocb pointer, /* for sc_signal_io_handler_ */ 10 39 2 hangup_entry entry (pointer) variable, 10 40 /* called on io_no_permission. */ 10 41 2 real_execute_line entry (ptr, ptr, fixed bin (21), fixed bin (35)), 10 42 2 real_locate_request entry (ptr, char (*), ptr, fixed bin (35)), 10 43 2 access_control_name char (32) unaligned, 10 44 2 real_invoke_request entry, /* since MR11 ssu_ lacks the ability to abort a */ 10 45 /* single request, we have an invoke_request that*/ 10 46 /* handles a condition to unwind the request */ 10 47 2 abort_request_label label, /* go here (nonlocally) to unwind a single request */ 10 48 2 real_abort_line entry options (variable); 10 49 10 50 declare sc_ss_area area based (sc_subsystem_info.area_ptr); 10 51 10 52 /* The following defines the user flags for the request table. */ 10 53 10 54 declare sc_rf_ptr pointer; 10 55 declare 1 sc_request_flags unaligned based (sc_rf_ptr), 10 56 2 dont_parse_arguments bit, /* reply, intercom */ 10 57 2 obsolete bit, /* warn opr to not use it */ 10 58 2 dont_mask_calls bit, /* this runs without masking ev calls */ 10 59 2 requires_as bit, /* not before AS */ 10 60 2 requires_no_as bit, /* only before AS */ 10 61 2 complete_disks_first bit, /* try to mount disks */ 10 62 2 no_login_needed bit, /* sign_on */ 10 63 2 pad bit (5), 10 64 2 restriction_type fixed bin (6) unsigned; 10 65 /* index into restriction flag string */ 10 66 10 67 10 68 /* END OF: sc_subsystem_info_.incl.pl1 * * * * * */ 887 888 11 1 /* BEGIN: sc_stat_.incl.pl1 * * * * * */ 11 2 11 3 11 4 /****^ HISTORY COMMENTS: 11 5* 1) change(87-02-04,GDixon), approve(87-05-25,MCR7690), 11 6* audit(87-06-02,Parisek), install(87-08-04,MR12.1-1056): 11 7* Add sc_stat_$vchn_requires_accept in support of DSA virtual channels. 11 8* 2) change(87-02-04,GDixon), approve(87-05-25,MCR7680), 11 9* audit(87-06-02,Parisek), install(87-08-04,MR12.1-1056): 11 10* Reorganized by type of data to improve readability. 11 11* END HISTORY COMMENTS */ 11 12 11 13 11 14 /* ACCESS NAMES */ 11 15 dcl ( 11 16 sc_stat_$exec_access_name, /* check MC access in an exec request */ 11 17 sc_stat_$unidentified_access_name /* check access if no one is logged in. */ 11 18 ) char(32) ext static; 11 19 11 20 /* PATHNAMES */ 11 21 dcl ( 11 22 sc_stat_$info_dir, /* admin info segs directory */ 11 23 sc_stat_$log_dir, /* as log segs directory */ 11 24 sc_stat_$mc_acs_dir, /* message coordinator ACS segments (.mcacs) dir */ 11 25 sc_stat_$sysdir /* system control directory */ 11 26 ) char(168) ext static; 11 27 11 28 /* OTHER CHAR STRINGS */ 11 29 dcl ( 11 30 sc_stat_$master_channel /* Master TTY channel. */ 11 31 ) char(6) aligned ext static; 11 32 11 33 /* LABELS */ 11 34 dcl ( 11 35 sc_stat_$admin_listener_exit_label, /* GO here to exit admin mode. Set to */ 11 36 /* ssu_$null_label unless */ 11 37 /* admin_listener is active. */ 11 38 sc_stat_$master_abort_label, /* GO here after fault that is not */ 11 39 /* attributable to a particular */ 11 40 /* command. */ 11 41 sc_stat_$system_shutdown_label /* GO here to shut down system */ 11 42 ) label variable ext static; 11 43 11 44 /* POINTERS TO */ 11 45 dcl ( 11 46 sc_stat_$admin_log_iocb, /* IOCB for admin log */ 11 47 sc_stat_$admin_log_write_ptr, /* DATA for log_write_ calls on the admin log */ 11 48 sc_stat_$admin_sci_ptr, /* DATA ssu_ for terminal currently executing */ 11 49 sc_stat_$as_log_write_ptr, /* DATA for log_write_ calls on as log, used */ 11 50 /* by sys_log_. */ 11 51 sc_stat_$initzer_ttyp, /* ENT mc_ate for initializer terminal */ 11 52 sc_stat_$master_iocb, /* IOCB for "master_i/o" */ 11 53 sc_stat_$master_sci_ptr, /* DATA ssu_ (permanent) for system control */ 11 54 sc_stat_$mc_ansp, /* HEAD of mc_anstbl */ 11 55 sc_stat_$mc_iocb, /* IOCB ptr for "mc_i/o" */ 11 56 sc_stat_$sv1_iocb, /* IOCB ptr for "severity1" */ 11 57 sc_stat_$sv2_iocb, /* IOCB ptr for "severity2" */ 11 58 sc_stat_$sv3_iocb /* IOCB ptr for "severity3" */ 11 59 ) ptr ext static; 11 60 11 61 /* SWITCHES */ 11 62 dcl ( 11 63 sc_stat_$Go, /* TRUE after answering service is listening*/ 11 64 sc_stat_$Go_typed, /* TRUE immediately after 'go' is typed */ 11 65 sc_stat_$Multics, /* TRUE after answering service started */ 11 66 sc_stat_$Multics_typed, /* TRUE immediately after 'mult' is typed */ 11 67 sc_stat_$Star_typed, /* TRUE if 'mult' and 'go' came from 'star' */ 11 68 sc_stat_$admin_listener_switch, /* TRUE if in the admin listener */ 11 69 sc_stat_$did_part1, /* TRUE if part 1 of system startup ec done */ 11 70 sc_stat_$did_part2, /* TRUE if part 2 of system startup ec done */ 11 71 sc_stat_$did_part3, /* TRUE if part 3 of system startup ec done */ 11 72 sc_stat_$mc_is_on, /* TRUE if message coordinator running */ 11 73 sc_stat_$no_operator_login, /* TRUE if operator login not required, or */ 11 74 /* if PNT not yet available. */ 11 75 sc_stat_$shutdown_typed, /* TRUE if 'shutdown' command in progress. */ 11 76 sc_stat_$test_mode, /* TRUE if in test environment */ 11 77 sc_stat_$vchn_requires_accept /* TRUE if vchn may only be used if accepted*/ 11 78 /* by operator signed on system console*/ 11 79 ) bit(1) aligned ext static; 11 80 11 81 11 82 /* END OF: sc_stat_.incl.pl1 * * * * * */ 889 890 12 1 /* BEGIN INCLUDE FILE sys_log_constants.incl.pl1 ... 82-09-24 E. N. Kittlitz */ 12 2 12 3 12 4 /****^ HISTORY COMMENTS: 12 5* 1) change(87-04-22,GDixon), approve(87-06-10,MCR7708), 12 6* audit(87-06-02,Parisek), install(87-08-04,MR12.1-1056): 12 7* Added sl_info structure and associated named constants for use in calling 12 8* sys_log_$general. 12 9* END HISTORY COMMENTS */ 12 10 12 11 12 12 /* format: style4 */ 12 13 12 14 dcl ( 12 15 SL_TYPE_CRASH init (-3), /* type message with banner & kill system */ 12 16 SL_TYPE_BEEP init (-2), /* type message with banner */ 12 17 SL_TYPE init (-1), /* type message */ 12 18 SL_LOG_SILENT init (0), /* log message */ 12 19 SL_LOG init (1), /* log & type message */ 12 20 SL_LOG_BEEP init (2), /* log & type message with banner */ 12 21 SL_LOG_CRASH init (3) /* log & type message with banner & kill system */ 12 22 ) fixed bin internal static options (constant); 12 23 12 24 dcl 1 sl_info aligned automatic, 12 25 2 version char(8), /* structure version */ 12 26 2 arg_list_ptr ptr, /* arg_list with values */ 12 27 2 loc, 12 28 3 (mode, severity, code, caller, data, class, ioa_msg) fixed bin, 12 29 /* These flags control where the corresponding data item is found.*/ 12 30 /* -1: data appears in the corresponding structure element below */ 12 31 /* 0: data is not present anywhere */ 12 32 /* +N: data is Nth item in argument list pointed to by */ 12 33 /* sl_info.arg_list_ptr. Upon return, data copied into */ 12 34 /* corresponding structure element. */ 12 35 /* if data = +N: */ 12 36 /* argN is data_ptr, argN+1 is data_len */ 12 37 /* if ioa_msg = +N: */ 12 38 /* argN+1, ... argLAST are arguments substituted into the */ 12 39 /* ioa_msg control string. The formatted msg is returned. */ 12 40 2 flags, 12 41 3 ioa_msg_is_error_code bit(1) unal, /* ioa_ctl is error code. */ 12 42 3 flags_pad bit(35) unal, 12 43 2 mode fixed bin, /* as-mode, command-mode */ 12 44 2 severity fixed bin, /* error severity */ 12 45 2 code fixed bin(35), /* error table code */ 12 46 2 caller char(65) varying, /* caller refname$entryname*/ 12 47 2 data, /* binary data ptr/length */ 12 48 3 data_ptr ptr, 12 49 3 data_lth fixed bin(21), 12 50 2 class char(10) varying, /* binary data class */ 12 51 2 ioa_msg char(500) varying; /* formatted message text */ 12 52 12 53 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 12 54 /* */ 12 55 /* If data values (eg, sl_info.caller) are passed in the argument list, */ 12 56 /* their data types should be as shown in the structure above, except that */ 12 57 /* character strings should be char(*) nonvarying. */ 12 58 /* */ 12 59 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 12 60 12 61 /* value for sl_info.version */ 12 62 dcl SL_INFO_version_1 char (8) int static options(constant) init("sl_info1"); 12 63 12 64 /* values for sl_info.mode */ 12 65 dcl (SL_INFO_as_mode init(1), 12 66 SL_INFO_command_mode init(2)) fixed bin int static options(constant); 12 67 12 68 /* values for sl_info.loc.(severity code caller data class ioa_ctl arg) */ 12 69 dcl (SL_INFO_arg_given_in_structure init(-1), 12 70 SL_INFO_arg_not_given init(0)) fixed bin int static options(constant); 12 71 12 72 12 73 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 12 74 /* */ 12 75 /* The following static structures are commonly used in the Login Server */ 12 76 /* user control software. */ 12 77 /* */ 12 78 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 12 79 12 80 /* Syntax: call Abort (severity, code, ioa_ctl, args); */ 12 81 12 82 dcl 1 sl_info_sev_code_msg aligned int static options(constant), 12 83 2 version char(8) init ("sl_info1"), 12 84 2 arg_list_ptr ptr init (null), 12 85 2 loc, 12 86 3 (mode init (-1), 12 87 severity init ( 1), 12 88 code init ( 2), 12 89 caller init (-1), 12 90 data init ( 0), 12 91 class init ( 0), 12 92 ioa_msg init ( 3)) fixed bin, 12 93 2 flags, 12 94 3 ioa_msg_is_error_code bit(1) unal init ("0"b), 12 95 3 flags_pad bit(35) unal init ("0"b), 12 96 2 mode fixed bin init ( 1), 12 97 2 severity fixed bin init ( 0), 12 98 2 code fixed bin(35) init ( 0), 12 99 2 caller char(65) varying init (""), 12 100 2 data, 12 101 3 data_ptr ptr init (null), 12 102 3 data_lth fixed bin(21) init ( 0), 12 103 2 class char(10) varying init (""), 12 104 2 ioa_msg char(500) varying init (""); 12 105 12 106 /* Syntax: call Abort (severity, ioa_ctl, args); */ 12 107 12 108 dcl 1 sl_info_sev_msg aligned int static options(constant), 12 109 2 version char(8) init ("sl_info1"), 12 110 2 arg_list_ptr ptr init (null), 12 111 2 loc, 12 112 3 (mode init (-1), 12 113 severity init ( 1), 12 114 code init ( 0), 12 115 caller init (-1), 12 116 data init ( 0), 12 117 class init ( 0), 12 118 ioa_msg init ( 2)) fixed bin, 12 119 2 flags, 12 120 3 ioa_msg_is_error_code bit(1) unal init ("0"b), 12 121 3 flags_pad bit(35) unal init ("0"b), 12 122 2 mode fixed bin init ( 1), 12 123 2 severity fixed bin init ( 0), 12 124 2 code fixed bin(35) init ( 0), 12 125 2 caller char(65) varying init (""), 12 126 2 data, 12 127 3 data_ptr ptr init (null), 12 128 3 data_lth fixed bin(21) init ( 0), 12 129 2 class char(10) varying init (""), 12 130 2 ioa_msg char(500) varying init (""); 12 131 12 132 /* Syntax: call Abort (severity, ioa_ctl_as_error_code, args); */ 12 133 12 134 dcl 1 sl_info_sev_coded_msg aligned int static options(constant), 12 135 2 version char(8) init ("sl_info1"), 12 136 2 arg_list_ptr ptr init (null), 12 137 2 loc, 12 138 3 (mode init (-1), 12 139 severity init ( 1), 12 140 code init ( 0), 12 141 caller init (-1), 12 142 data init ( 0), 12 143 class init ( 0), 12 144 ioa_msg init ( 2)) fixed bin, 12 145 2 flags, 12 146 3 ioa_msg_is_error_code bit(1) unal init ("1"b), 12 147 3 flags_pad bit(35) unal init ("0"b), 12 148 2 mode fixed bin init ( 1), 12 149 2 severity fixed bin init ( 0), 12 150 2 code fixed bin(35) init ( 0), 12 151 2 caller char(65) varying init (""), 12 152 2 data, 12 153 3 data_ptr ptr init (null), 12 154 3 data_lth fixed bin(21) init ( 0), 12 155 2 class char(10) varying init (""), 12 156 2 ioa_msg char(500) varying init (""); 12 157 12 158 12 159 /* Syntax: call Abort (severity, code, error_return_label, ioa_ctl, args); */ 12 160 12 161 dcl 1 sl_info_sev_code_label_msg aligned int static options(constant), 12 162 2 version char(8) init ("sl_info1"), 12 163 2 arg_list_ptr ptr init (null), 12 164 2 loc, 12 165 3 (mode init (-1), 12 166 severity init ( 1), 12 167 code init ( 2), 12 168 caller init (-1), 12 169 data init ( 0), 12 170 class init ( 0), 12 171 ioa_msg init ( 4)) fixed bin, 12 172 2 flags, 12 173 3 ioa_msg_is_error_code bit(1) unal init ("0"b), 12 174 3 flags_pad bit(35) unal init ("0"b), 12 175 2 mode fixed bin init ( 1), 12 176 2 severity fixed bin init ( 0), 12 177 2 code fixed bin(35) init ( 0), 12 178 2 caller char(65) varying init (""), 12 179 2 data, 12 180 3 data_ptr ptr init (null), 12 181 3 data_lth fixed bin(21) init ( 0), 12 182 2 class char(10) varying init (""), 12 183 2 ioa_msg char(500) varying init (""); 12 184 12 185 /* Syntax: call Log_error (code, ioa_ctl, args); */ 12 186 12 187 dcl 1 sl_info_code_msg aligned int static options(constant), 12 188 2 version char(8) init ("sl_info1"), 12 189 2 arg_list_ptr ptr init (null), 12 190 2 loc, 12 191 3 (mode init (-1), 12 192 severity init (-1), 12 193 code init ( 1), 12 194 caller init (-1), 12 195 data init ( 0), 12 196 class init ( 0), 12 197 ioa_msg init ( 2)) fixed bin, 12 198 2 flags, 12 199 3 ioa_msg_is_error_code bit(1) unal init ("0"b), 12 200 3 flags_pad bit(35) unal init ("0"b), 12 201 2 mode fixed bin init ( 1), 12 202 2 severity fixed bin init ( 0), 12 203 2 code fixed bin(35) init ( 0), 12 204 2 caller char(65) varying init (""), 12 205 2 data, 12 206 3 data_ptr ptr init (null), 12 207 3 data_lth fixed bin(21) init ( 0), 12 208 2 class char(10) varying init (""), 12 209 2 ioa_msg char(500) varying init (""); 12 210 12 211 12 212 /* Syntax: call Trace (ioa_ctl, args); */ 12 213 12 214 dcl 1 sl_info_msg aligned int static options(constant), 12 215 2 version char(8) init ("sl_info1"), 12 216 2 arg_list_ptr ptr init (null), 12 217 2 loc, 12 218 3 (mode init (-1), 12 219 severity init (-1), 12 220 code init ( 0), 12 221 caller init (-1), 12 222 data init ( 0), 12 223 class init ( 0), 12 224 ioa_msg init ( 1)) fixed bin, 12 225 2 flags, 12 226 3 ioa_msg_is_error_code bit(1) unal init ("0"b), 12 227 3 flags_pad bit(35) unal init ("0"b), 12 228 2 mode fixed bin init ( 1), 12 229 2 severity fixed bin init ( 0), 12 230 2 code fixed bin(35) init ( 0), 12 231 2 caller char(65) varying init (""), 12 232 2 data, 12 233 3 data_ptr ptr init (null), 12 234 3 data_lth fixed bin(21) init ( 0), 12 235 2 class char(10) varying init (""), 12 236 2 ioa_msg char(500) varying init (""); 12 237 12 238 /* END INCLUDE FILE sys_log_constants.incl.pl1 */ 891 892 end as_mcs_mpx_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 07/19/88 1536.9 as_mcs_mpx_.pl1 >special_ldd>install>MR12.2-1061>as_mcs_mpx_.pl1 873 1 08/06/87 0913.0 cdt.incl.pl1 >ldd>include>cdt.incl.pl1 1-314 2 07/19/88 1524.1 fnp_types.incl.pl1 >special_ldd>install>MR12.2-1061>fnp_types.incl.pl1 875 3 09/09/75 2007.3 author_dcl.incl.pl1 >ldd>include>author_dcl.incl.pl1 3-10 4 04/21/82 1211.8 author.incl.pl1 >ldd>include>author.incl.pl1 877 5 07/11/84 0937.3 as_mpx_state_names_.incl.pl1 >ldd>include>as_mpx_state_names_.incl.pl1 879 6 08/06/87 0913.4 line_types.incl.pl1 >ldd>include>line_types.incl.pl1 881 7 01/21/85 0912.2 as_wakeup_priorities.incl.pl1 >ldd>include>as_wakeup_priorities.incl.pl1 883 8 06/29/79 1728.0 event_call_info.incl.pl1 >ldd>include>event_call_info.incl.pl1 885 9 07/11/84 0937.3 fnp_mpx_msg_.incl.pl1 >ldd>include>fnp_mpx_msg_.incl.pl1 887 10 08/06/87 0913.5 sc_subsystem_info_.incl.pl1 >ldd>include>sc_subsystem_info_.incl.pl1 889 11 08/06/87 0913.5 sc_stat_.incl.pl1 >ldd>include>sc_stat_.incl.pl1 891 12 08/06/87 0913.5 sys_log_constants.incl.pl1 >ldd>include>sys_log_constants.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. DN355 constant fixed bin(17,0) initial dcl 2-19 ref 470 DN6670 constant fixed bin(17,0) initial dcl 2-19 ref 483 494 FNP_BOOT constant fixed bin(17,0) initial dcl 1-298 ref 319 355 FNP_DOWN constant fixed bin(17,0) initial dcl 1-298 ref 358 378 FNP_UNKNOWN constant fixed bin(17,0) initial dcl 1-298 ref 203 349 FNP_UP constant fixed bin(17,0) initial dcl 1-298 ref 349 363 376 LINE_HASP_OPR constant fixed bin(17,0) initial dcl 6-22 ref 517 MPXE_STATE_NAMES 000152 constant char(32) initial array packed unaligned dcl 5-4 ref 613 613 615 MPX_LOAD_PRIO 000331 constant fixed bin(17,0) initial dcl 7-33 set ref 185* RELATIVE_SECONDS 000321 constant bit(2) initial packed unaligned dcl 109 set ref 207* SL_LOG 000415 constant fixed bin(17,0) initial dcl 12-14 set ref 180* 194* 228* 231* 285* 293* 308* 337* 343* 351* 361* 366* 368* 382* 406* 600* 605* SL_LOG_BEEP 000410 constant fixed bin(17,0) initial dcl 12-14 set ref 328* SL_LOG_SILENT 000322 constant fixed bin(17,0) initial dcl 12-14 set ref 236* 243* adapt_no 000150 automatic fixed bin(17,0) dcl 97 set ref 507* 538 541 552 552 554 554 556 556 adapt_type 000147 automatic bit(1) packed unaligned dcl 96 set ref 507* 528 538 addr builtin function dcl 151 ref 171 220 278 336 398 arg_cdtp parameter pointer dcl 73 ref 164 168 214 218 450 453 arg_chan_listp parameter pointer dcl 75 ref 164 170 450 456 arg_check_sw parameter bit(1) dcl 76 set ref 164 199* arg_code parameter fixed bin(35,0) dcl 78 set ref 164 182* 195* 202* 209* 214 261* arg_error_proc parameter entry variable dcl 79 ref 450 457 arg_event_infop parameter pointer dcl 77 ref 272 275 arg_fnpep parameter pointer dcl 74 ref 164 169 214 219 450 454 arg_mpx_name parameter char packed unaligned dcl 72 ref 164 167 214 217 450 455 author based structure level 2 dcl 3-9 author_dcl based structure level 1 dcl 3-9 autobaud 50(23) based bit(1) level 4 packed packed unaligned dcl 1-72 ref 514 550 baud_rate 33(18) based fixed bin(17,0) level 2 packed packed unaligned dcl 1-72 ref 514 531 552 554 554 556 bc 000100 automatic fixed bin(24,0) dcl 83 set ref 233* bit builtin function dcl 151 ref 303 312 boot_ev_chan 62 based fixed bin(71,0) level 2 dcl 1-200 set ref 175 177* 185* 190* 191* 207* 304* call_ec_ 000014 constant entry external dcl 121 ref 257 cdt based structure level 1 dcl 1-44 cdte based structure level 1 dcl 1-72 cdte_ptr 1 based pointer array level 2 packed packed unaligned dcl 158 ref 506 cdtep 000200 automatic pointer dcl 1-41 set ref 506* 507 510 514 514 514 517 517 517 523 528 531 533 542 548 550 550 552 554 554 556 558 cdtp 000176 automatic pointer dcl 1-41 set ref 168* 199* 218* 276* 397 398 422* 453* chan_list based structure level 1 dcl 158 chan_listp 000116 automatic pointer dcl 88 set ref 170* 199* 456* 505 506 chan_no 000151 automatic fixed bin(17,0) dcl 98 set ref 507* 542 548 channel_threads based structure level 1 dcl 1-249 char builtin function dcl 151 ref 613 cleanup 000170 stack reference condition dcl 154 ref 248 clock builtin function dcl 151 ref 321 code 000104 automatic fixed bin(35,0) dcl 85 set ref 177* 178 180* 185* 186 191* 192 194* 199* 200 202 227* 228 228* 233* 235 236* 241* 242 243* 261 291 304* 306 308* 330* 360* 365* 380* 402* 407* coreimage 6 based char(168) level 2 dcl 1-200 set ref 257 257 472 472* count based fixed bin(17,0) level 2 dcl 158 ref 505 data_ptr 6 based pointer level 2 dcl 8-7 ref 277 deconfigured 1 based bit(1) level 3 packed packed unaligned dcl 9-6 set ref 337* 380 ename 000126 automatic char(32) packed unaligned dcl 92 set ref 227* 228* 231* 257 479* 480* 574* 575* entry_type 000166 automatic fixed bin(2,0) dcl 104 set ref 233* error_proc 000162 automatic entry variable dcl 103 set ref 457* 461 480 483 490 492 497 510 514 517 528 533 542 548 550 558 575 580 589 error_table_$action_not_performed 000072 external static fixed bin(35,0) dcl 147 ref 182 195 407 ev_msg_array 000122 automatic bit(36) array packed unaligned dcl 90 set ref 284* 285* ev_msg_char 000124 automatic char(8) packed unaligned dcl 91 set ref 299* 300 event_call_info based structure level 1 dcl 8-7 event_call_info_ptr 000206 automatic pointer dcl 8-5 set ref 275* 277 280 280 284 285 299 336 fdump_fnp_ 000056 constant entry external dcl 138 ref 227 flags 1 based structure level 2 in structure "fnp_msg" packed packed unaligned dcl 9-6 in procedure "as_mcs_mpx_" flags 50 based structure level 2 in structure "cdte" dcl 1-72 in procedure "as_mcs_mpx_" fnp_boot_timeout_mins 000102 automatic fixed bin(71,0) dcl 84 set ref 327* 328* 328 fnp_boot_timeout_secs 000322 constant fixed bin(71,0) initial dcl 108 set ref 207* 321 327 fnp_entry 120 based structure array level 2 dcl 1-44 set ref 397 398 fnp_msg based structure level 1 dcl 9-6 fnp_msg_ptr 000210 automatic pointer dcl 9-5 set ref 336* 337 337 337 337 341 343 343 343 349 349 351 358 363 368 368 378 380 fnp_no 000105 automatic fixed bin(17,0) dcl 86 in procedure "as_mcs_mpx_" set ref 199* 227* 297* 326* 341 357* 401* 507* 508 fnp_no parameter fixed bin(17,0) dcl 420 in procedure "free_boot_seg" set ref 417 422* fnp_no based fixed bin(17,0) level 2 in structure "fnp_msg" packed packed unaligned dcl 9-6 in procedure "as_mcs_mpx_" set ref 337* 341 343 343 343* fnp_types 000222 constant char(8) initial array packed unaligned dcl 2-25 set ref 483* fnpe based structure level 1 dcl 1-200 fnpep 000202 automatic pointer dcl 1-41 set ref 169* 171 175 177 185 185* 190 191 207 219* 220 227 227 257 257 277* 278 293* 304 399 406* 454* 468 468 470 470 472 472 477 477 477 479 483 483 483 490 490 492 492 494 494 496 580 589 get_fnp_name_ 000016 constant entry external dcl 122 ref 297 343 343 get_process_id_ 000046 constant entry external dcl 134 ref 280 hbound builtin function dcl 151 ref 397 522 531 533 568 585 613 hcs_$status_minf 000020 constant entry external dcl 123 ref 233 hsla_configured 000146 automatic bit(1) array packed unaligned dcl 95 set ref 503* 541* 585 585 586 i 000136 automatic fixed bin(17,0) dcl 93 in procedure "as_mcs_mpx_" set ref 505* 506* 568* 569 572 574* 585* 586* i 000236 automatic fixed bin(17,0) dcl 394 in procedure "compute_fnp_no" set ref 397* 398 401* index builtin function dcl 151 ref 459 ioa_$rsnnl 000060 constant entry external dcl 139 ref 479 574 ipc_$create_ev_chn 000022 constant entry external dcl 124 ref 177 ipc_$decl_ev_call_chn 000024 constant entry external dcl 125 ref 185 ipc_$drain_chn 000042 constant entry external dcl 132 ref 191 ipc_$read_ev_chn 000044 constant entry external dcl 133 ref 304 j 000137 automatic fixed bin(17,0) dcl 93 set ref 522* 523* 531* 531* 533 567* 571* 571 580 584* 586* 586 589 lbound builtin function dcl 151 ref 568 585 613 line_type 33 based fixed bin(17,0) level 2 packed packed unaligned dcl 1-72 ref 517 517 523 line_types 000000 constant char(16) initial array packed unaligned dcl 6-54 set ref 517* load_fnp_ 000032 constant entry external dcl 128 ref 199 load_fnp_$abort 000034 constant entry external dcl 129 ref 422 lsla_count 000140 automatic fixed bin(17,0) array dcl 94 set ref 502* 552* 552 554* 554 556* 556 568 568 569 572 ltrim builtin function dcl 151 ref 613 memory 1 based fixed bin(17,0) level 2 dcl 1-200 set ref 227* 468 468* 477 477 477 479* 483 message 2 based fixed bin(71,0) level 2 dcl 8-7 set ref 284 299 336 mod builtin function dcl 151 ref 477 mpx_name 000106 automatic char(32) packed unaligned dcl 87 set ref 167* 180* 194* 217* 228* 231* 257 257 297* 308* 328* 330* 343* 351* 360* 361* 365* 366* 368* 380* 382* 455* 459 461* 480* 483* 490* 492* 497* 575* 580* 589* mpxe 64 based structure level 2 in structure "fnpe" dcl 1-200 in procedure "as_mcs_mpx_" set ref 171 220 278 mpxe based structure level 1 dcl 1-221 in procedure "as_mcs_mpx_" mpxep 000204 automatic pointer dcl 1-41 set ref 171* 203 220* 278* 319 321 337 337 355 368 368 376 multiplexer_mgr_$mpx_crashed 000054 constant entry external dcl 137 ref 380 multiplexer_mgr_$mpx_load_failed 000050 constant entry external dcl 135 ref 330 360 multiplexer_mgr_$mpx_loaded 000052 constant entry external dcl 136 ref 365 name 2 based char(32) level 2 in structure "cdte" dcl 1-72 in procedure "as_mcs_mpx_" ref 507 510 514 517 528 533 542 548 550 558 name 000316 constant char(11) initial packed unaligned dcl 110 in procedure "as_mcs_mpx_" set ref 180* 194* 228* 231* 236* 243* 285* 293* 308* 328* 337* 343* 351* 361* 366* 368* 382* 406* 600* 605* nhslas 3 based fixed bin(17,0) level 2 dcl 1-200 ref 492 492 589 nlslas 2 based fixed bin(17,0) level 2 dcl 1-200 set ref 490 490 494 496* 580 null builtin function dcl 151 ref 222 263 options 50(17) based structure level 3 packed packed unaligned dcl 1-72 origin 5 based structure level 2 dcl 8-7 p 000240 automatic pointer dcl 395 set ref 398* 399 parse_tty_name_ 000062 constant entry external dcl 140 ref 507 real_iocb 16 based pointer level 2 dcl 10-23 set ref 255* recursive_event_info_ptr 000152 automatic pointer dcl 99 set ref 304* 312* ring 5(18) based fixed bin(17,0) level 3 packed packed unaligned dcl 8-7 ref 280 rtrim builtin function dcl 151 ref 257 257 257 257 257 257 saved_admin_sci_ptr 000154 automatic pointer dcl 100 set ref 223* 249 264 sc_create_sci_ 000064 constant entry external dcl 141 ref 241 sc_create_sci_$destroy 000066 constant entry external dcl 142 ref 250 265 sc_stat_$admin_sci_ptr 000074 external static pointer dcl 11-45 set ref 223 249* 253* 264* sc_stat_$master_iocb 000076 external static pointer dcl 11-45 ref 255 sc_subsystem_info based structure level 1 dcl 10-23 sc_subsystem_info_ptr 000212 automatic pointer dcl 10-22 set ref 254* 255 sci_ptr 000156 automatic pointer dcl 101 set ref 222* 241* 250* 253 254* 263 265* sender 4 based bit(36) level 2 dcl 8-7 set ref 280 285* ssu_$get_info_ptr 000070 constant entry external dcl 143 ref 254 state parameter fixed bin(17,0) dcl 611 in procedure "MPXE_STATE" ref 608 613 613 613 615 state based fixed bin(17,0) level 2 in structure "mpxe" dcl 1-221 in procedure "as_mcs_mpx_" set ref 203* 319 337* 337* 355 368 368 376 state 0(18) based fixed bin(17,0) level 2 in structure "fnp_msg" packed packed unaligned dcl 9-6 in procedure "as_mcs_mpx_" set ref 337 337 349 349 351* 358 363 368 368 378 static_cdtp 000010 internal static pointer initial dcl 117 set ref 168* 276 static_trace_switch 000012 internal static bit(1) initial dcl 595 set ref 337 599* 604* string builtin function dcl 151 set ref 284* sync_baud_rates 000304 constant fixed bin(17,0) initial array dcl 111 ref 531 531 533 sync_line 000160 automatic bit(1) packed unaligned dcl 102 set ref 521* 522 523* 526 sync_line_type 000140 constant fixed bin(17,0) initial array dcl 6-52 ref 522 523 sys_log_ 000026 constant entry external dcl 126 ref 231 285 293 328 337 343 351 361 366 368 382 406 600 605 sys_log_$error_log 000030 constant entry external dcl 127 ref 180 194 228 236 243 308 sysdir 000232 constant char(168) initial packed unaligned dcl 113 set ref 233* 236* 257 time_load_start 12 based fixed bin(71,0) level 2 dcl 1-221 ref 321 timer_manager_$alarm_wakeup 000040 constant entry external dcl 131 ref 207 timer_manager_$reset_alarm_wakeup 000036 constant entry external dcl 130 ref 190 type based fixed bin(17,0) level 2 dcl 1-200 set ref 227* 470 470* 483 483 494 unspec builtin function dcl 151 set ref 284 299* 299 wakeup_found 000120 automatic fixed bin(17,0) dcl 89 set ref 302* 303 304* 312 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. ABS_DEFER_PRIO internal static fixed bin(17,0) initial dcl 7-35 ABS_LOGIN_PRIO internal static fixed bin(17,0) initial dcl 7-36 ACCT_UPDATE_PRIO internal static fixed bin(17,0) initial dcl 7-28 ACTIVE internal static fixed bin(17,0) initial dcl 1-272 ANS_SERVICE internal static fixed bin(17,0) initial dcl 1-259 AS_REQUEST_PRIO internal static fixed bin(17,0) initial dcl 7-30 CDT_version internal static fixed bin(17,0) initial dcl 1-39 CDT_version_5 internal static fixed bin(17,0) initial dcl 1-38 CHANNEL_DELETED internal static fixed bin(17,0) initial dcl 1-288 CORE_FLUSH_PRIO internal static fixed bin(17,0) initial dcl 7-37 DAEMON_LOGIN_PRIO internal static fixed bin(17,0) initial dcl 7-29 DIAL_OUT_SERVICE internal static fixed bin(17,0) initial dcl 1-259 DIAL_SERVICE internal static fixed bin(17,0) initial dcl 1-259 DN6600 internal static fixed bin(17,0) initial dcl 2-19 DN7100 internal static fixed bin(17,0) initial dcl 2-19 FNP_FREE internal static fixed bin(17,0) initial dcl 1-298 FTP_SERVICE internal static fixed bin(17,0) initial dcl 1-259 INACTIVE internal static fixed bin(17,0) initial dcl 1-272 INSTALL_PRIO internal static fixed bin(17,0) initial dcl 7-31 INT_LOGIN_PRIO internal static fixed bin(17,0) initial dcl 7-32 LINE_1050 internal static fixed bin(17,0) initial dcl 6-22 LINE_2741 internal static fixed bin(17,0) initial dcl 6-22 LINE_ARDS internal static fixed bin(17,0) initial dcl 6-22 LINE_ASCII internal static fixed bin(17,0) initial dcl 6-22 LINE_ASYNC1 internal static fixed bin(17,0) initial dcl 6-22 LINE_ASYNC2 internal static fixed bin(17,0) initial dcl 6-22 LINE_ASYNC3 internal static fixed bin(17,0) initial dcl 6-22 LINE_BSC internal static fixed bin(17,0) initial dcl 6-22 LINE_COLTS internal static fixed bin(17,0) initial dcl 6-22 LINE_DSA internal static fixed bin(17,0) initial dcl 6-22 LINE_ETX internal static fixed bin(17,0) initial dcl 6-22 LINE_G115 internal static fixed bin(17,0) initial dcl 6-22 LINE_HDLC internal static fixed bin(17,0) initial dcl 6-22 LINE_MC internal static fixed bin(17,0) initial dcl 6-22 LINE_POLLED_VIP internal static fixed bin(17,0) initial dcl 6-22 LINE_SYNC1 internal static fixed bin(17,0) initial dcl 6-22 LINE_SYNC2 internal static fixed bin(17,0) initial dcl 6-22 LINE_SYNC3 internal static fixed bin(17,0) initial dcl 6-22 LINE_SYNCH internal static fixed bin(17,0) initial dcl 6-22 LINE_TELNET internal static fixed bin(17,0) initial dcl 6-22 LINE_UNKNOWN internal static fixed bin(17,0) initial dcl 6-22 LINE_VIP internal static fixed bin(17,0) initial dcl 6-22 LINE_X25LAP internal static fixed bin(17,0) initial dcl 6-22 MC_PRIO internal static fixed bin(17,0) initial dcl 7-25 MC_SERVICE internal static fixed bin(17,0) initial dcl 1-259 MPX_BOOT internal static fixed bin(17,0) initial dcl 1-306 MPX_DOWN internal static fixed bin(17,0) initial dcl 1-306 MPX_FREE internal static fixed bin(17,0) initial dcl 1-306 MPX_SERVICE internal static fixed bin(17,0) initial dcl 1-259 MPX_UNKNOWN internal static fixed bin(17,0) initial dcl 1-306 MPX_UP internal static fixed bin(17,0) initial dcl 1-306 NOT_CONFIGURED internal static fixed bin(17,0) initial dcl 1-280 SHUTDOWN_PRIO internal static fixed bin(17,0) initial dcl 7-27 SLAVE_SERVICE internal static fixed bin(17,0) initial dcl 1-259 SL_INFO_arg_given_in_structure internal static fixed bin(17,0) initial dcl 12-69 SL_INFO_arg_not_given internal static fixed bin(17,0) initial dcl 12-69 SL_INFO_as_mode internal static fixed bin(17,0) initial dcl 12-65 SL_INFO_command_mode internal static fixed bin(17,0) initial dcl 12-65 SL_INFO_version_1 internal static char(8) initial packed unaligned dcl 12-62 SL_LOG_CRASH internal static fixed bin(17,0) initial dcl 12-14 SL_TYPE internal static fixed bin(17,0) initial dcl 12-14 SL_TYPE_BEEP internal static fixed bin(17,0) initial dcl 12-14 SL_TYPE_CRASH internal static fixed bin(17,0) initial dcl 12-14 SYSERR_COPY_PRIO internal static fixed bin(17,0) initial dcl 7-26 TANDD_SERVICE internal static fixed bin(17,0) initial dcl 1-259 fnp_models internal static fixed bin(17,0) initial array dcl 2-28 generic_destination based char(32) packed unaligned dcl 1-195 max_line_type internal static fixed bin(17,0) initial dcl 6-48 n_sync_line_types internal static fixed bin(17,0) initial dcl 6-50 sc_request_flags based structure level 1 packed packed unaligned dcl 10-55 sc_rf_ptr automatic pointer dcl 10-54 sc_ss_area based area(1024) dcl 10-50 sc_stat_$Go external static bit(1) dcl 11-62 sc_stat_$Go_typed external static bit(1) dcl 11-62 sc_stat_$Multics external static bit(1) dcl 11-62 sc_stat_$Multics_typed external static bit(1) dcl 11-62 sc_stat_$Star_typed external static bit(1) dcl 11-62 sc_stat_$admin_listener_exit_label external static label variable dcl 11-34 sc_stat_$admin_listener_switch external static bit(1) dcl 11-62 sc_stat_$admin_log_iocb external static pointer dcl 11-45 sc_stat_$admin_log_write_ptr external static pointer dcl 11-45 sc_stat_$as_log_write_ptr external static pointer dcl 11-45 sc_stat_$did_part1 external static bit(1) dcl 11-62 sc_stat_$did_part2 external static bit(1) dcl 11-62 sc_stat_$did_part3 external static bit(1) dcl 11-62 sc_stat_$exec_access_name external static char(32) packed unaligned dcl 11-15 sc_stat_$info_dir external static char(168) packed unaligned dcl 11-21 sc_stat_$initzer_ttyp external static pointer dcl 11-45 sc_stat_$log_dir external static char(168) packed unaligned dcl 11-21 sc_stat_$master_abort_label external static label variable dcl 11-34 sc_stat_$master_channel external static char(6) dcl 11-29 sc_stat_$master_sci_ptr external static pointer dcl 11-45 sc_stat_$mc_acs_dir external static char(168) packed unaligned dcl 11-21 sc_stat_$mc_ansp external static pointer dcl 11-45 sc_stat_$mc_iocb external static pointer dcl 11-45 sc_stat_$mc_is_on external static bit(1) dcl 11-62 sc_stat_$no_operator_login external static bit(1) dcl 11-62 sc_stat_$shutdown_typed external static bit(1) dcl 11-62 sc_stat_$sv1_iocb external static pointer dcl 11-45 sc_stat_$sv2_iocb external static pointer dcl 11-45 sc_stat_$sv3_iocb external static pointer dcl 11-45 sc_stat_$sysdir external static char(168) packed unaligned dcl 11-21 sc_stat_$system_shutdown_label external static label variable dcl 11-34 sc_stat_$test_mode external static bit(1) dcl 11-62 sc_stat_$unidentified_access_name external static char(32) packed unaligned dcl 11-15 sc_stat_$vchn_requires_accept external static bit(1) dcl 11-62 sl_info automatic structure level 1 dcl 12-24 sl_info_code_msg internal static structure level 1 dcl 12-187 sl_info_msg internal static structure level 1 dcl 12-214 sl_info_sev_code_label_msg internal static structure level 1 dcl 12-161 sl_info_sev_code_msg internal static structure level 1 dcl 12-82 sl_info_sev_coded_msg internal static structure level 1 dcl 12-134 sl_info_sev_msg internal static structure level 1 dcl 12-108 supported_fnp internal static bit(1) initial array packed unaligned dcl 2-31 NAMES DECLARED BY EXPLICIT CONTEXT. MPXE_STATE 005774 constant entry internal dcl 608 ref 337 337 337 337 368 368 368 368 as_mcs_mpx_ 001351 constant entry external dcl 67 bad_wakeup 003431 constant label dcl 368 ref 376 378 compute_fnp_no 005674 constant entry internal dcl 391 ref 173 225 290 ev_chan_err 001452 constant label dcl 180 ref 186 fnp_wakeup_handler 002476 constant entry external dcl 272 ref 185 185 312 free_boot_seg 005755 constant entry internal dcl 417 ref 326 357 mcs_cv_cmf 003574 constant entry external dcl 450 mcs_dump 001675 constant entry external dcl 214 mcs_load 001365 constant entry external dcl 164 next_channel 005323 constant label dcl 562 ref 511 return_to_caller 002453 constant label dcl 261 ref 238 245 trace_off 005636 constant entry external dcl 602 trace_on 005576 constant entry external dcl 597 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 6470 6570 6066 6500 Length 7304 6066 100 477 401 4 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME as_mcs_mpx_ 332 external procedure is an external procedure. on unit on line 248 68 on unit compute_fnp_no internal procedure shares stack frame of external procedure as_mcs_mpx_. free_boot_seg internal procedure shares stack frame of external procedure as_mcs_mpx_. MPXE_STATE internal procedure shares stack frame of external procedure as_mcs_mpx_. STORAGE FOR INTERNAL STATIC VARIABLES. LOC IDENTIFIER BLOCK NAME 000010 static_cdtp as_mcs_mpx_ 000012 static_trace_switch as_mcs_mpx_ STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME as_mcs_mpx_ 000100 bc as_mcs_mpx_ 000102 fnp_boot_timeout_mins as_mcs_mpx_ 000104 code as_mcs_mpx_ 000105 fnp_no as_mcs_mpx_ 000106 mpx_name as_mcs_mpx_ 000116 chan_listp as_mcs_mpx_ 000120 wakeup_found as_mcs_mpx_ 000122 ev_msg_array as_mcs_mpx_ 000124 ev_msg_char as_mcs_mpx_ 000126 ename as_mcs_mpx_ 000136 i as_mcs_mpx_ 000137 j as_mcs_mpx_ 000140 lsla_count as_mcs_mpx_ 000146 hsla_configured as_mcs_mpx_ 000147 adapt_type as_mcs_mpx_ 000150 adapt_no as_mcs_mpx_ 000151 chan_no as_mcs_mpx_ 000152 recursive_event_info_ptr as_mcs_mpx_ 000154 saved_admin_sci_ptr as_mcs_mpx_ 000156 sci_ptr as_mcs_mpx_ 000160 sync_line as_mcs_mpx_ 000162 error_proc as_mcs_mpx_ 000166 entry_type as_mcs_mpx_ 000176 cdtp as_mcs_mpx_ 000200 cdtep as_mcs_mpx_ 000202 fnpep as_mcs_mpx_ 000204 mpxep as_mcs_mpx_ 000206 event_call_info_ptr as_mcs_mpx_ 000210 fnp_msg_ptr as_mcs_mpx_ 000212 sc_subsystem_info_ptr as_mcs_mpx_ 000236 i compute_fnp_no 000240 p compute_fnp_no THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. r_ne_as alloc_char_temp call_ent_var_desc call_ext_in call_ext_out_desc call_ext_out return_mac mpfx2 mdfx1 enable_op shorten_stack ext_entry ext_entry_desc int_entry divide_fx3 clock_mac THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. call_ec_ fdump_fnp_ get_fnp_name_ get_process_id_ hcs_$status_minf ioa_$rsnnl ipc_$create_ev_chn ipc_$decl_ev_call_chn ipc_$drain_chn ipc_$read_ev_chn load_fnp_ load_fnp_$abort multiplexer_mgr_$mpx_crashed multiplexer_mgr_$mpx_load_failed multiplexer_mgr_$mpx_loaded parse_tty_name_ sc_create_sci_ sc_create_sci_$destroy ssu_$get_info_ptr sys_log_ sys_log_$error_log timer_manager_$alarm_wakeup timer_manager_$reset_alarm_wakeup THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$action_not_performed sc_stat_$admin_sci_ptr sc_stat_$master_iocb LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 67 001350 164 001356 167 001406 168 001416 169 001422 170 001425 171 001431 173 001433 175 001434 177 001437 178 001450 180 001452 182 001506 183 001511 185 001512 186 001536 190 001540 191 001550 192 001562 194 001564 195 001620 196 001623 199 001624 200 001644 202 001646 203 001647 204 001651 207 001652 209 001666 210 001667 214 001670 217 001716 218 001726 219 001731 220 001734 222 001736 223 001740 225 001744 227 001745 228 001775 231 002037 233 002072 235 002137 236 002141 238 002175 241 002176 242 002207 243 002211 245 002241 248 002242 249 002256 250 002261 251 002270 253 002271 254 002274 255 002304 257 002311 259 002452 261 002453 263 002455 264 002461 265 002464 267 002472 272 002473 275 002503 276 002507 277 002512 278 002514 280 002516 284 002534 285 002537 287 002573 290 002574 291 002575 293 002577 294 002627 297 002630 299 002641 300 002645 302 002650 303 002652 304 002660 306 002676 308 002700 309 002734 312 002735 315 002751 319 002752 321 002755 326 002767 327 002771 328 002776 330 003043 331 003060 333 003061 336 003062 337 003064 341 003151 343 003156 346 003230 349 003231 351 003241 352 003277 355 003300 357 003303 358 003305 360 003313 361 003330 362 003360 363 003361 365 003363 366 003400 367 003430 368 003431 373 003502 376 003503 378 003505 380 003510 382 003536 387 003566 450 003567 453 003613 454 003616 455 003621 456 003631 457 003635 459 003642 461 003653 463 003717 468 003720 470 003725 472 003731 477 003740 479 003750 480 004000 483 004045 490 004126 492 004176 494 004247 496 004255 497 004256 502 004322 503 004332 505 004344 506 004353 507 004355 508 004407 510 004411 511 004461 514 004462 517 004540 521 004620 522 004621 523 004631 525 004641 526 004643 528 004645 531 004720 532 004734 533 004736 538 005011 541 005017 542 005022 545 005075 548 005076 550 005151 552 005224 554 005236 556 005246 558 005254 562 005323 567 005325 568 005326 569 005333 571 005335 572 005336 574 005340 575 005370 579 005435 580 005437 584 005507 585 005510 586 005515 588 005522 589 005524 593 005574 597 005575 599 005603 600 005606 601 005634 602 005635 604 005643 605 005645 606 005673 391 005674 397 005675 398 005703 399 005707 401 005713 402 005715 403 005716 405 005717 406 005721 407 005751 408 005754 417 005755 422 005757 423 005773 608 005774 613 005776 615 006031 ----------------------------------------------------------- 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