COMPILATION LISTING OF SEGMENT tolts_init_ Compiled by: Multics PL/I Compiler, Release 30, of February 16, 1988 Compiled at: Honeywell Bull, Phoenix AZ, SysM Compiled on: 07/20/88 1043.4 mst Wed Options: optimize map 1 /****^ *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 4* * * 5* * Copyright (c) 1972 by Massachusetts Institute of * 6* * Technology and Honeywell Information Systems, Inc. * 7* * * 8* *********************************************************** */ 9 10 11 /* Modified by R.Fakoury 01/81 & 09/81 for colts implementation. 12* Modified by R. Fakoury 09/81 to increase wks_sz for mtar. 13**/ 14 15 16 17 18 /****^ HISTORY COMMENTS: 19* 1) change(86-08-21,Fakoury), approve(86-08-21,MCR7514), 20* audit(86-11-11,Martinson), install(86-12-04,MR12.0-1235): 21* 2/85 to MCA cleanup, 22* 1/86 for colts RSPD to get a correct workspace size. 23* END HISTORY COMMENTS */ 24 25 26 27 28 29 /* The function of the external procedure "tolts_init_" is to perform certain initialization actions for the test 30* system. There are three functions to be performed for this initialization: 31* 32* 1. Creating a temporary "slave" segment. 33* 34* 2. Initializing static variables. 35* 36* 3. Creating event channels to handle service requests. 37* 38* Creating a temporary "slave" segment: 39* 40* A temporary segment of the name of "_slave", is created, where is the input parameter by the same 41* name and can be "polt", "molt" or "colt". This temporary segment will be used to load the core image of the 42* target slave mode exec. 43* 44* Initializing static variables: 45* 46* "tolts_init_" will initialize static variables in the static structure "tolts_info". 47* 48* Creating event channels to handle service requests: 49* 50* The following event channels are created by "tolts_init_": 51* 52* 1. tolts_info.tty_ccc_event: (call channel) 53* 54* This event channel is used by the routine "term_io_sim_comp_" whenever the simulated tty io termination timer calls 55* "term_io_sim_comp_" to indicate that the tty io should be complete (see "term_io_sim_comp_" for information on this). When 56* "term_io_sim_comp_" is called, it will issue a wakeup to the "tolts_info.tty_ccc_event" event channel. The purpose 57* of this is to convert the process asychronous timer signal used to indicate that the tty io has been completed 58* to a process "sychronous" IPC call channel. In that way, the tty io termination service will only occur when 59* the process goes blocked for some reason rather than at any time that might not be desirable such as at a time 60* when a data base is being altered by the interrupted procedure where "tty_ccc" must also alter that data data 61* base. "tty_ccc" is the procedure called by signalling "tolts_info.tty_ccc_event". 62* 63* 2. tolts_info.tty_issue_event: (call channel) 64* 65* This event channel is used to actually issue the tty io. Whenever tty io is buffered for output, this channel 66* is signalled and whenever it is called, the tty io will be issued. By having this channel masked wherever a 67* tty io is already in progress, and unmasking it when the current io is complete, tty io will be issued in 68* succesion as they are requested rather than overlapped. 69* 70* 71* 3. tolts_info.request_event: (call channel) 72* 73* This event channel is used to signal the procedure "test_request" for every operator solicited input (after a 74* "???" typeout due to a quit condition and the original input data after "test" that starts the test process). 75* 76* 77* 4. tolts_info.wait_list.wait_event_id: (wait channel) 78* 79* This event wait channel is used to allow breaking the test systems only "block" whenever processing is to be 80* done other than "call event" type processing. Such "non-call" processing is either dispatching to a test page 81* via the "main_dispatcher" or test system termination (either normal or forced). 82* 83* 84*/* format: style4,ifthenstmt,ifthen,ind3,ll125,lineconind1 */ 85 86 tolts_init_: proc (exec, a_error); 87 88 89 /* input parameters */ 90 91 dcl exec char (4); /* can be "polt", "molt" or "colt" */ 92 dcl (a_error, a_err) fixed bin (35); /* return error codes */ 93 dcl event_ch fixed bin (71); /* event channel id to create */ 94 dcl call bit (1); /* = "1"b if call channel is to be created */ 95 dcl call_entry entry; /* entry to call for call channels */ 96 dcl odp ptr; /* ptr to region for data to be pssed */ 97 dcl prior fixed bin; /* relative priority of call channel */ 98 dcl g_time bit (36); /* return parameter for gc_tod entry */ 99 dcl slave_exec char (10); 100 101 102 /* external entries */ 103 104 dcl add_epilogue_handler_ entry (entry, fixed bin (35)); 105 dcl com_err_ entry options (variable); 106 dcl convert_date_to_binary_ entry (char (*), fixed bin (71), fixed bin (35)); 107 dcl date_time_ entry (fixed bin (71), char (*)); 108 dcl get_temp_segment_ entry (char (*), ptr, fixed bin (35)); 109 dcl get_process_id_ entry returns (bit (36)); 110 dcl get_default_wdir_ entry returns (char (168) aligned); 111 dcl hcs_$assign_channel entry (fixed bin (71), fixed bin (35)); 112 dcl hcs_$initiate entry (char (*), char (*), char (*), fixed bin (1), fixed bin (2), ptr, fixed bin (35)); 113 dcl ipc_$create_ev_chn entry (fixed bin (71), fixed bin (35)); 114 dcl ipc_$decl_ev_call_chn entry (fixed bin (71), entry, ptr, fixed bin, fixed bin (35)); 115 dcl ipc_$delete_ev_chn entry (fixed bin (71), fixed bin (35)); 116 dcl ipc_$set_call_prior entry (fixed bin (35)); 117 dcl iox_$close entry (ptr, fixed bin (35)); 118 dcl iox_$detach_iocb entry (ptr, fixed bin (35)); 119 dcl mca_$detach_mca entry (fixed bin, fixed bin (35)); 120 dcl mtdsim_$mme_fault entry; 121 dcl mtdsim_$epilogue entry; 122 dcl release_temp_segment_ entry (char (*), ptr, fixed bin (35)); 123 dcl sct_manager_$get entry (fixed bin, ptr, fixed bin (35)); 124 dcl sct_manager_$set entry (fixed bin, ptr, fixed bin (35)); 125 dcl tolts_alm_util_$ascii_to_bcd_ entry (char (*), bit (*)); 126 dcl tolts_alrm_util_$gewake entry; 127 dcl tolts_alrm_util_$quit entry; 128 dcl tolts_file_util_$wdump entry (ptr); 129 dcl tolts_ttyio_display_ entry (ptr); 130 dcl tolts_ttyio_display_$nxt_line entry (ptr); 131 dcl tolts_ttyio_end_ entry; 132 133 /* automatic */ 134 135 dcl code fixed bin (35); 136 dcl data char (36) varying; 137 dcl date_str char (8); 138 dcl delta fixed bin (71); 139 dcl error fixed bin (35); 140 dcl gc_date bit (36); 141 dcl i fixed bin; 142 143 /* constants */ 144 145 dcl small_workspace fixed bin int static options (constant) init (4096); 146 dcl large_workspace fixed bin int static options (constant) init (9000); 147 dcl gewake_prior fixed bin int static options (constant) init (11); 148 dcl old_mme1 ptr int static init (null); 149 dcl pname char (11) int static options (constant) init ("tolts_init_"); 150 dcl quith_prior fixed bin int static options (constant) init (8); 151 dcl sec_per_day fixed bin (37) int static options (constant) init (86400000000); 152 dcl tty_ccc_prior fixed bin int static options (constant) init (9); 153 dcl tty_issue_prior fixed bin int static options (constant) init (10); 154 dcl sc_dir char (168) static options (constant) init (">system_control_1"); 155 dcl (addr, clock, date, null, unspec) builtin; 156 157 a_error = 0; /* preset return code good */ 158 tolts_infop = null; /* preset our info ptr to null */ 159 call get_temp_segment_ ("tolts_info", tolts_infop, error); /* get a ptr to our info segment */ 160 if error ^= 0 then do; /* problem creating info seg */ 161 call com_err_ (error, pname, "getting temporary segment for tolts_info"); 162 a_error = error; 163 return; 164 end; 165 unspec (tolts_info) = "0"b; /* clear entire structure first */ 166 tolts_info.execp = null; /* preset exec ptr to null */ 167 tolts_info.exec = exec; /* store exec name */ 168 tolts_info.df_iocbp = null; /* preset deckfile iocb ptr to null */ 169 tolts_info.pf_iocbp = null; /* preset print file iocb ptr to null */ 170 tolts_info.hdir = get_default_wdir_ (); /* get users home dir pathname */ 171 tolts_info.pf_name = ""; /* initialize print file name to blanks */ 172 173 /* get a temporary segment for _slave */ 174 175 slave_exec = exec || "_slave"; 176 call get_temp_segment_ (slave_exec, execp, error); 177 if error ^= 0 then do; /* can't get temporary segment */ 178 call com_err_ (error, pname, "getting temporary segment for ^a_slave", exec); 179 a_error = error; /* copy error code */ 180 return; 181 end; 182 unspec (slave_exec) = "0"b; /* clear entire slave exec temp seg */ 183 184 /* initialize the rest of tolts_info */ 185 186 fnp (*).cdt_name = "empty"; 187 tolts_info.process = get_process_id_ (); /* get our process id */ 188 tolts_info.wait_list.nchan = 1; 189 tolts_info.mess_buf.first, tolts_info.mess_buf.nxt = addr (tolts_info.mess_buf.term_queue); /* set tty io ptrs */ 190 if exec = "polt" /* if running polts */ 191 | exec = "colt" then tolts_info.wks_sz = small_workspace; /* or colts set workspace for 4K */ 192 else tolts_info.wks_sz = large_workspace; /* if molts set it for 9k */ 193 194 /* set up mme1 condition static handler */ 195 196 call sct_manager_$get (mme1_sct_index, old_mme1, error); /* save old mme sct index */ 197 if error = 0 then 198 call sct_manager_$set (mme1_sct_index, addr (mtdsim_$mme_fault), error); /* and set up static mme handler */ 199 if error ^= 0 then do; 200 call com_err_ (error, pname, "setting up static mme1 handler"); 201 call clean_up; 202 a_error = error; 203 return; 204 end; 205 206 /* set up epilogue handler for process hangups */ 207 208 call add_epilogue_handler_ (mtdsim_$epilogue, error); /* add epilogue entry */ 209 if error ^= 0 then do; 210 call com_err_ (error, pname, "setting up epilgue handler"); 211 call clean_up; 212 a_error = error; 213 return; 214 end; 215 216 /* i~\nitialize date time constants in tolts_info */ 217 218 call init_time (error); 219 if error ^= 0 then do; 220 call com_err_ (error, pname, "error from convert_date_to_binary_"); 221 call clean_up; 222 a_error = error; 223 return; 224 end; 225 226 227 /* create an event call channel for tty io termination requests */ 228 229 data = "original message data"; 230 call cr_event_chan (tolts_info.tty_ccc_event, "1"b, tolts_ttyio_end_, 231 addr (data), tty_ccc_prior, error); 232 if error ^= 0 then do; /* trouble creating event call channel... */ 233 a_error = error; /* copy error code */ 234 call clean_up; /* go delete event channels already created */ 235 return; /* and return */ 236 end; 237 238 /* create an event call channel for tty io initiation requests */ 239 240 call cr_event_chan (tolts_info.tty_issue_event, "1"b, tolts_ttyio_display_, 241 addr (data), tty_issue_prior, error); 242 if error ^= 0 then do; /* trouble creating event call channel... */ 243 a_error = error; /* copy error code */ 244 call clean_up; /* go delete event channels already created */ 245 return; /* and return */ 246 end; 247 248 /* create an event call channel for tty io display requests */ 249 250 call cr_event_chan (tolts_info.tty_display_event, "1"b, tolts_ttyio_display_$nxt_line, 251 addr (data), tty_issue_prior, error); 252 if error ^= 0 then do; /* trouble creating event call channel... */ 253 a_error = error; /* copy error code */ 254 call clean_up; /* go delete event channels already created */ 255 return; /* and return */ 256 end; 257 258 /* create an event call channel for user requests (quit condition) */ 259 260 call cr_event_chan (tolts_info.quith_event, "1"b, tolts_alrm_util_$quit, 261 addr (data), quith_prior, error); 262 if error ^= 0 then do; /* trouble creating event call channel... */ 263 a_error = error; /* copy error code */ 264 call clean_up; /* go delete event channels already created */ 265 return; /* and return */ 266 end; 267 268 269 /* create an event call channel for gewake events */ 270 271 call cr_event_chan (tolts_info.gewake_event, "1"b, tolts_alrm_util_$gewake, 272 addr (data), gewake_prior, error); 273 if error ^= 0 then do; /* trouble creating event call channel... */ 274 a_error = error; /* copy error code */ 275 call clean_up; /* go delete event channels already created */ 276 return; /* and return */ 277 end; 278 279 /* create a "fast" event wait channel for waking up the dispatcher */ 280 281 call hcs_$assign_channel (tolts_info.wait_list.wait_event_id (1), error); 282 if error ^= 0 then do; /* trouble creating event wait channel... */ 283 a_error = error; /* copy error code */ 284 call clean_up; /* go delete event channels already created */ 285 return; /* and return */ 286 end; 287 288 289 /* create an event-wait channel for dial_manger */ 290 if exec = "colt" then do; 291 call ipc_$create_ev_chn (tolts_info.dm_event, code); 292 if code ^= 0 then do; 293 a_error = code; 294 call com_err_ (code, pname, "creating an event channel"); 295 call clean_up; 296 end; 297 298 call hcs_$initiate (sc_dir, "cdt", "", 0, 1, cdtp, code); /* initiate cdt seg */ 299 if cdtp = null then do; /* if we can't initiate tell user */ 300 call com_err_ (code, " Tolts", "attempting to initiate ^a>cdt", sc_dir); 301 end; 302 cdtptr = cdtp; 303 end; 304 return; 305 306 307 /* cr_event_chan - external entry to create ipc wait or call channels */ 308 309 cr_event_chan: entry (event_ch, call, call_entry, odp, prior, a_err); 310 311 a_err = 0; /* preset good return code */ 312 313 call ipc_$create_ev_chn (event_ch, code); /* create requested event channel */ 314 if code ^= 0 then do; /* error creating event channel */ 315 a_err = code; /* copy return code */ 316 call com_err_ (code, pname, "creating event channel"); 317 return; 318 end; 319 if call then do; /* if user wants an event call channel */ 320 call ipc_$decl_ev_call_chn (event_ch, call_entry, odp, prior, code); /* change wait into call chan */ 321 if code ^= 0 then do; /* error */ 322 a_err = code; /* copy return error code */ 323 call com_err_ (code, pname, "changing wait channel into call channel"); 324 return; 325 end; 326 call ipc_$set_call_prior (code); /* set call channel with priority over wait channel */ 327 if code ^= 0 then do; /* error */ 328 a_err = code; /* copy error code */ 329 call com_err_ (code, pname, "setting call channels with priority over wait channels"); 330 return; 331 end; 332 end; 333 return; /* return with no error */ 334 335 336 /* clean_up - external entry to delete event channels and _slave segment */ 337 338 clean_up: entry; 339 340 /* delete event channels if they exist */ 341 342 if tolts_info.dm_event ^= 0 then 343 call ipc_$delete_ev_chn (tolts_info.dm_event, code); /* if dial_manager event channel $delete it */ 344 if tolts_infop ^= null then do; /* if our info seg exists */ 345 if tolts_info.wait_list.wait_event_id (1) ^= 0 then/* if event channel exists */ 346 call ipc_$delete_ev_chn (tolts_info.wait_list.wait_event_id (1), code); 347 if tolts_info.tty_issue_event ^= 0 then /* if event channel exists */ 348 call ipc_$delete_ev_chn (tolts_info.tty_issue_event, code); 349 if tolts_info.quith_event ^= 0 then /* if event channel exists */ 350 call ipc_$delete_ev_chn (tolts_info.quith_event, code); 351 if tolts_info.gewake_event ^= 0 then /* if event channel exists */ 352 call ipc_$delete_ev_chn (tolts_info.gewake_event, code); 353 if tolts_info.tty_ccc_event ^= 0 then /* if event channel exists */ 354 call ipc_$delete_ev_chn (tolts_info.tty_ccc_event, code); 355 if tolts_info.tty_display_event ^= 0 then /* if event channel exists */ 356 call ipc_$delete_ev_chn (tolts_info.tty_display_event, code); 357 do i = lbound (tolts_info.pages, 1) to hbound (tolts_info.pages, 1); 358 if pages (i).in_use then do; 359 if pages (i).mca_ioi_idx ^= 0 then do; 360 call mca_$detach_mca (pages (i).mca_ioi_idx, 0); 361 pages (i).mca_ioi_idx = 0; 362 end; 363 end; 364 end; 365 366 367 if tolts_info.execp ^= null then /* if temporary segment exists */ 368 call release_temp_segment_ (tolts_info.exec || "_slave", execp, code); /* release temp seg */ 369 if tolts_info.df_iocbp ^= null then do; /* detach deck file if attached */ 370 call iox_$close (tolts_info.df_iocbp, code); 371 call iox_$detach_iocb (tolts_info.df_iocbp, code); 372 tolts_info.df_iocbp = null; 373 end; 374 call release_temp_segment_ ("tolts_info", tolts_infop, code); /* release our info seg */ 375 end; 376 if old_mme1 ^= null then /* if static handler is set... */ 377 call sct_manager_$set (mme1_sct_index, old_mme1, error); /* reset it */ 378 return; 379 380 /* gc_tod - entry to compute gcos time of day (in 1/64th milliseconds since midnight */ 381 382 gc_tod: entry (g_time); 383 384 get_delta: 385 delta = clock () - tolts_info.micro_time; /* get delta usecs since midnight */ 386 if delta > sec_per_day then do; /* check for day rollover (86400000000 usec/day) */ 387 call init_time (error); /* go reinitialize clock time and date */ 388 go to get_delta; 389 end; 390 g_time = bit (multiply (delta, .064, 36, 0), 36); 391 return; 392 393 /* init_time - subroutine to compute the clock time at midnight and the current date and save in tolts_info */ 394 395 init_time: proc (code); 396 397 dcl code fixed bin (35); 398 399 call date_time_ (clock (), date_str); /* get current date in form for convert_date_to_binary_ */ 400 call convert_date_to_binary_ (date_str || " 0000.001", tolts_info.micro_time, code); 401 call tolts_alm_util_$ascii_to_bcd_ (date (), gc_date); 402 tolts_info.gc_date = gc_date; 403 end init_time; 404 1 1 /* BEGIN INCLUDE FILE tolts_info.incl.pl1 */ 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9 /****^ HISTORY COMMENTS: 1 10* 1) change(80-03-24,Fakoury), approve(), audit(86-11-25,Martinson), 1 11* install(86-12-04,MR12.0-1235): 1 12* to add second sct for 500/501 MTAR 1 13* 2) change(80-09-01,Fakoury), approve(), audit(86-11-25,Martinson), 1 14* install(86-12-04,MR12.0-1235): 1 15* to init rcp_area and alt_rcp_area to 0. 1 16* 3) change(81-09-01,Fakoury), approve(), audit(86-11-25,Martinson), 1 17* install(86-12-04,MR12.0-1235): 1 18* to add new statements for colts. 1 19* 4) change(81-09-01,Fakoury), approve(), audit(86-11-25,Martinson), 1 20* install(86-12-04,MR12.0-1235): 1 21* to increase the dcw_list size. 1 22* 5) change(82-04-01,Fakoury), approve(), audit(86-11-25,Martinson), 1 23* install(86-12-04,MR12.0-1235): 1 24* to add crcst and redefine devsct. 1 25* 6) change(82-09-01,Fakoury), approve(), audit(86-11-25,Martinson), 1 26* install(86-12-04,MR12.0-1235): 1 27* to increase the console buffer size for mtar. 1 28* 7) change(82-11-01,Fakoury), approve(), audit(86-11-25,Martinson), 1 29* install(86-12-04,MR12.0-1235): 1 30* for 128chan support. 1 31* 8) change(83-07-01,Fakoury), approve(), audit(86-11-25,Martinson), 1 32* install(86-12-04,MR12.0-1235): 1 33* to increase the dcw_list size for mtar perm file track repair. 1 34* 9) change(84-04-10,Fakoury), approve(86-08-21,MCR7514), 1 35* audit(86-11-25,Martinson), install(86-12-04,MR12.0-1235): 1 36* to add sct_info needed to support the DAU & DIPPER. 1 37* 10) change(85-02-21,Fakoury), approve(86-08-21,MCR7514), 1 38* audit(86-11-25,Martinson), install(86-12-04,MR12.0-1235): 1 39* 2/85 to support test nio request. 1 40* 11) change(85-04-01,Fakoury), approve(86-08-21,MCR7514), 1 41* audit(86-11-25,Martinson), install(86-12-04,MR12.0-1235): 1 42* for extended status store. 1 43* 12) change(85-12-21,Fakoury), approve(86-08-21,MCR7514), 1 44* audit(86-11-25,Martinson), install(86-12-04,MR12.0-1235): 1 45* for Colts Responder changes. 1 46* 13) change(86-02-01,Fakoury), approve(86-08-20,MCR7514), 1 47* audit(86-11-25,Martinson), install(86-12-04,MR12.0-1235): 1 48* implement the test nio request. 1 49* support of a Colts responder test request. 1 50* END HISTORY COMMENTS */ 1 51 1 52 1 53 1 54 1 55 1 56 1 57 /* format: style4,ifthenstmt,ifthen,ind3,ll125,lineconind1 */ 1 58 1 59 dcl polt_io_type fixed bin int static options (constant) init (0); 1 60 dcl itr_io_type fixed bin int static options (constant) init (1); 1 61 dcl mdr_io_type fixed bin int static options (constant) init (2); 1 62 dcl mtar_io_type fixed bin int static options (constant) init (3); 1 63 dcl firm_ld_io_type fixed bin int static options (constant) init (4); 1 64 dcl mtc_io_type fixed bin int static options (constant) init (5); 1 65 dcl mtg_io_type fixed bin int static options (constant) init (6); 1 66 dcl mdc_io_type fixed bin int static options (constant) init (7); 1 67 dcl mhp_io_type fixed bin int static options (constant) init (8); 1 68 dcl mca_io_type fixed bin int static options (constant) init (9); 1 69 dcl rspd_io_type fixed bin int static options (constant) init (10); 1 70 1 71 dcl tolts_infop ptr external static; /* ext static ptr to tolts_info structure */ 1 72 dcl colts_info_ptr ptr; /* ptr to individual test page data */ 1 73 dcl io_info_ptr ptr; /* ptr to individual test page data */ 1 74 dcl dmap ptr; /* pointer to dial_manager_arg */ 1 75 dcl 1 tolts_info based (tolts_infop) aligned, /* data structure used for tolts routines */ 1 76 2 cdtptr ptr, 1 77 2 df_iocbp ptr, /* deckfile iocb ptr */ 1 78 2 dm_event fixed bin (71), /* dial_manager event_channel */ 1 79 2 exec char (4), /* executive name (polt, molt, colt etc) */ 1 80 2 exec_dta_cnt fixed bin, /* inter slave request count */ 1 81 2 exec_page_count fixed bin, /* number of test pages active */ 1 82 2 exec_term_io_wait bit (1), /* waiting for io to complete for exec termination */ 1 83 2 execp ptr, /* ptr to slave polt or molt segment */ 1 84 2 file_attach bit (1), /* = "1"b if print file attached */ 1 85 2 file_open bit (1), /* = "1"b if print file open */ 1 86 2 finish_cond bit (1), /* = "1"b if finish condition has been signaled */ 1 87 2 first_request_done bit (1), /* first terminal io request complete */ 1 88 2 gc_date bit (36), /* gcos 6 char bcd date (set at init time, updated at rollover) */ 1 89 2 gewake_active bit (1), /* = "1"b if gewake alarm timer is active */ 1 90 2 gewake_event fixed bin (71), /* gewake alarm timer event channel id */ 1 91 2 glob_int_cnt fixed bin, /* total number of outstanding test IOs */ 1 92 2 hdir char (168), /* users home directory pathname */ 1 93 2 init_time fixed bin (71), /* gcos time of executive initialize (mme poinit) */ 1 94 2 max_to fixed bin (71), /* max ioi timeout ( from rcp_$check_attach) */ 1 95 2 max_wks_sz fixed bin (19), /* max ioi wkspace size (from rcp_$check_attach) */ 1 96 2 micro_time fixed bin (71), /* time at midnight in usecs. (set at init time, updated at rollover */ 1 97 2 optflag fixed bin, /* option request flag */ 1 98 2 padx (2) fixed bin, /* reserved area */ 1 99 2 pf_iocbp ptr, /* print file iocb ptr */ 1 100 2 pf_name char (32), /* seg name of print file */ 1 101 2 process bit (36), /* T & D users process id */ 1 102 2 quith_event fixed bin (71), /* quit handler event call channel id */ 1 103 2 special_fault bit (1), /* error on reconnect after special int */ 1 104 2 term_io_in_prog bit (1), /* terminal io in progress */ 1 105 2 term_io_req_cnt fixed bin, /* outstanding terminal io requests */ 1 106 2 tty_ccc_event fixed bin (71), /* term io courtesy call event call channel id */ 1 107 2 tty_display_event fixed bin (71), /* term io display event channel id */ 1 108 2 tty_issue_event fixed bin (71), /* term io issue event call channel id */ 1 109 2 wks_sz fixed bin, /* workspace size in words (4096 for polts, 6144 for molts) */ 1 110 2 exec_dta (16), /* inter slave request queue */ 1 111 3 word (4) bit (36), /* inter slave data */ 1 112 2 ccc_queue, /* courtesy call queue */ 1 113 3 ccc_requests fixed bin, /* courtesy call requests */ 1 114 3 icivlu (16) bit (36), /* ic and ind of courtesy call routine */ 1 115 2 isc_queue, /* interslave communication queue */ 1 116 3 icivlu bit (36), /* ic and i of queue entry */ 1 117 3 status_add fixed bin, /* :: */ 1 118 3 data_add fixed bin, /* :: */ 1 119 1 120 2 tadio (8), /* T & D user io rqt queue */ 1 121 3 optrd bit (1), /* = "1"b if options are to be read */ 1 122 3 inuse bit (1), /* = "1"b if queue entry in use */ 1 123 3 return_word (3) bit (36), /* data returned from mme tadiod */ 1 124 3 option bit (6 * 84), /* bcd option string */ 1 125 2 wait_list, /* wait list for dispatcher block */ 1 126 3 nchan fixed bin, /* number of event wait channels */ 1 127 3 wait_pad fixed bin, /* will make wait_event_id on even boundary */ 1 128 3 wait_event_id (2) fixed bin (71), /* dispatcher event wait chan id */ 1 129 2 clt_sw char (32), 1 130 2 att_desc char (32), 1 131 2 cdt_pointer ptr, /* save pointer to cdt */ 1 132 2 fnp_exec_cnt fixed bin init (0), 1 133 2 fnp (0:7), 1 134 3 exec_active bit (1) init ("0"b), 1 135 3 exec_chan char (32), 1 136 3 status_word bit (36) init ("0"b), 1 137 3 fnp_execp ptr, 1 138 3 type fixed bin, 1 139 3 exec_type_code bit (6) init ("0"b), 1 140 3 cdt_name (8) char (32) init ("empty"), /* cdt name built from test request */ 1 141 3 dm_arg like dial_manager_arg, 1 142 2 mess_buf, /* terminal io message buffers */ 1 143 3 first ptr, /* ptr to start of message buffer */ 1 144 3 nxt ptr, /* ptr to nxt queue entry */ 1 145 3 term_queue (8192) fixed bin, /* message queu as fixed bin */ 1 146 3 q_end bit (0), /* to find end of queue */ 1 147 3 q_pad (1024) fixed bin, /* padding area */ 1 148 3 mult_ans char (28) varying, /* answer to local Multics question */ 1 149 3 cv_buf char (4000) varying, /* temporary conversion storage */ 1 150 2 colts_pages (8) like colts_info, 1 151 2 pages (8) like io_info, /* test pages (8 posible) */ 1 152 2 firm_buf (10240) fixed bin; /* storage for loading firmware */ 1 153 1 154 1 155 dcl 1 io_info based (io_info_ptr) aligned, /* this maps test pages in tolts_info */ 1 156 2 alloc_wait bit (1), /* = "1"b if waiting for delayed allocation */ 1 157 2 allocated bit (1), /* = "1"b if device allocated to this page */ 1 158 2 alt_dev_flag bit (1), /* = "1"b if 2nd logical device configured (MTAR 500/501 only */ 1 159 2 alt_device_index fixed bin (12), /* ioi device index */ 1 160 2 alt_device_name char (8), /* alternate allocated device name */ 1 161 2 alt_rcp_area (24) fixed bin init (0), /* alternate device rcp */ 1 162 2 alt_rcp_id bit (36) aligned, /* rcp id for alternate attach/check_attach */ 1 163 2 attach_err fixed bin (35), /* error code returned durning attach */ 1 164 2 cata_cycle bit (1), /* cycle check for cata */ 1 165 2 cat_name char (10), /* itr or mdr catalog suffix */ 1 166 2 n_keys fixed bin aligned, /* number of catalog keys below */ 1 167 2 cata_keys (10) char (24) aligned, /* array of catalog keys */ 1 168 2 catp ptr, /* ptr to itr or mdr catalog in deckfile */ 1 169 2 catx fixed bin, /* current cata_info.index */ 1 170 2 ccu_pun bit (1), /* = "1"b if ccu to be used as punch */ 1 171 2 chan_suspended bit (1), /* = "1"b if channel has been suspended */ 1 172 2 chan_time fixed bin (35), /* channel time (in 1/64th miliseconds) */ 1 173 2 con_time fixed bin (35), /* abs time of connect (in 1/64 th miliseconds) */ 1 174 2 cur_wks_sz fixed bin, /* current size of ioi workspace (normally tolts_info.wks_sz) */ 1 175 2 dcw_list (330) bit (36), /* test page dcw list in unaltered form */ 1 176 2 dev_busy bit (1), /* = "1"b if device busy before */ 1 177 2 device_index fixed bin (12), /* ioi device index */ 1 178 2 device_name char (8), /* allocated device name (in ascii) */ 1 179 2 ev_ch_ass bit (1), /* = "1"b if status event chan assigned to this page */ 1 180 2 ext_status_add fixed bin, /* extended status store address */ 1 181 2 fnp_num fixed bin, 1 182 2 fpinfo_ptr ptr, /* ptr to rspd info table */ 1 183 2 ignore_term bit (1), /* = "1"b if term int to be ignored, wait for special (ITR) */ 1 184 2 in_use bit (1), /* = "1"b if this test page in use */ 1 185 2 int_time fixed bin (35), /* abs time of interrupt (in 1/64 th miliseconds) */ 1 186 2 io_in_progress bit (1), /* = "1"b if io in progress for this page */ 1 187 2 io_trc_flag bit (1), /* = "1"b if io is being traced */ 1 188 2 io_type fixed bin, /* 0 = polt, 1 = ITR, 2 = MDR, 3 = MTAR, 4 = firmware load */ 1 189 2 iocp ptr, 1 190 2 ipc_attached bit (1), 1 191 2 ipc_id char (3), 1 192 2 ipc_number fixed bin, 1 193 2 lostit_time fixed bin (35), /* lost interrupt time in 1/64 th miliseconds */ 1 194 2 mca_attach_state fixed bin, 1 195 2 mcata_idx fixed bin, /* mca catalog indexer */ 1 196 2 mcata_nkeys fixed bin aligned, /* no of keys in a mca catalog */ 1 197 2 mcata_keys (100) char (24) aligned, /* mca catalog entries */ 1 198 2 mca_ioi_idx fixed bin, /* ioi index of attached mca / 1 199* 2 mca_iop ptr, /* mca io ptr */ 1 200 2 mca_workspace_ptr ptr, 1 201 2 mpc_dev_cnt fixed bin, /* if urmpc to be booted, # of devices */ 1 202 2 nff bit (1), /* = "1"b new format flag */ 1 203 2 num_connects fixed bin, /* number of connects issued by this page */ 1 204 2 p2_att bit (1), /* ="1"b if alternate device is attached (MTAR 500/501 only) */ 1 205 2 p_att bit (1), /* = "1"b if perp. device attached to this page */ 1 206 2 page_base fixed bin (18) uns, /* base of this test page in slave seg */ 1 207 2 pcwa bit (36), /* pcw */ 1 208 2 rcp_area (24) fixed bin init (0), /* storage for rcp device info */ 1 209 2 rcp_id bit (36) aligned, /* rcp id for attach/check_attach */ 1 210 2 rcp_name char (32), /* rcp name for this device */ 1 211 2 rcp_state fixed bin, /* rcp attach state flag */ 1 212 2 release_chan bit (1), /* = "1"b if ioi_$release devices to be called */ 1 213 2 rew_wait bit (1), /* = "1"b if waiting for special on rewind complete */ 1 214 2 sp_flag bit (1), /* = "1"b if special status available */ 1 215 2 sp_status bit (36), /* special interrupt status storage */ 1 216 2 spare1 bit (1), 1 217 2 status_add fixed bin, /* address to store status in test page */ 1 218 2 status_event fixed bin (71), /* io completion status event call channel id */ 1 219 2 suspend_chan bit (1), /* = "1"b if ioi_$suspend devices to be called */ 1 220 2 tolts_rspd_wksp ptr, 1 221 2 test_hdr char (16), /* test header used for Multics local messages */ 1 222 2 tio_off fixed bin (18), /* dcw list offset for ioi */ 1 223 2 to_no_cc bit (1), /* = "1"b if timeout expected (set after mme ipcw) */ 1 224 2 workspace_ptr ptr, /* ioi workspace ptr */ 1 225 2 altsct, /* sct for MTAR alternate device */ 1 226 (3 w1, /* device sct word 1 */ 1 227 4 type_code bit (6), /* gcos 3 type code (see dd14 app. a) */ 1 228 4 device_no bit (6), /* device number */ 1 229 4 com_prph bit (1), /* = "1"b if common perph. device */ 1 230 4 hi_speed bit (1), /* = "1"b if hi speed printer */ 1 231 4 ll160 bit (1), /* = "1"b if 160 collum printer */ 1 232 4 pad1 bit (2), 1 233 4 cr501_pr54 bit (1), /* either a cr501 or pr54 device */ 1 234 4 icc bit (11), /* iom and channel (true channel index) */ 1 235 4 pad2 bit (7), 1 236 3 w2, /* device sct word 2 */ 1 237 4 ptrain fixed bin (14), /* print train number */ 1 238 4 nmods bit (3), /* not used in Multics */ 1 239 4 pad4 bit (3), 1 240 4 den_cap bit (4), /* density capability for tapes */ 1 241 4 pad5 bit (11)) unaligned, 1 242 2 crcst, /* controller sct */ 1 243 (3 pad1 bit (1), 1 244 3 volatile bit (1), /* reloadable firmware */ 1 245 3 mpc bit (1), /* = "1"b if mpc */ 1 246 3 pad2 bit (4), 1 247 3 ms500 bit (1), /* = "1"b if mss500 device */ 1 248 3 mtp610 bit (1), /* = "1"b if mtp 610 device */ 1 249 3 pad3 bit (27)) unaligned, 1 250 2 dev_firm (4), /* storage for device firmware edit names */ 1 251 3 edit_name char (4), /* for urmpc firmware */ 1 252 3 mask bit (36), /* port mask for this firmware */ 1 253 2 devsct, /* 2 word device sct entry */ 1 254 (3 w1, /* device sct word 1 */ 1 255 4 type_code bit (6), /* gcos 3 type code (see dd14 app. a) */ 1 256 4 device_no bit (6), /* device number */ 1 257 4 com_prph bit (1), /* = "1"b if common perph. device */ 1 258 4 hi_speed bit (1), /* = "1"b if hi speed printer */ 1 259 4 ll160 bit (1), /* = "1"b if 160 collum printer */ 1 260 4 pad1 bit (2), 1 261 4 cr501_pr54 bit (1), /* either a cr501 or pr54 device */ 1 262 4 icc bit (11), /* iom and channel (true channel index) */ 1 263 4 pad2 bit (7), 1 264 3 w2, /* device sct word 2 */ 1 265 4 ptrain fixed bin (14), /* print train number */ 1 266 4 nmods bit (3), /* not used in Multics */ 1 267 4 pad4 bit (3), 1 268 4 den_cap bit (4), /* density capability for tapes */ 1 269 4 pad5 bit (11)) unaligned, 1 270 2 icivlu, /* ic and i for courtesy call on io completion */ 1 271 3 ic bit (18) unaligned, /* instruction counter */ 1 272 3 ind bit (18) unaligned, /* indicator register */ 1 273 2 sct_info, 1 274 (3 cntsct bit (18), /* unchanged from before */ 1 275 3 ioc_type bit (4), /* 0 = IOM, 1 = IMU, 2 = IOX */ 1 276 3 cnt_type bit (4), /* 0 = MPC, 1 = DAU, 2 = EURC, 3 = FIPS */ 1 277 3 pad1 bit (1), 1 278 3 xioc_type bit (4), /* not used in Multics */ 1 279 3 xcnt_type bit (4), /* not used in Multics */ 1 280 3 pad2 bit (1)) unaligned, 1 281 2 test_req aligned, 1 282 (3 fnccss bit (18), 1 283 3 tt bit (6), 1 284 3 pad1 bit (6)) unaligned; 1 285 1 286 1 287 dcl 1 colts_info aligned based (colts_info_ptr), 1 288 2 cdt_name char (32), 1 289 2 chanp pointer, /* iox pointer to chan under test */ 1 290 2 dm_arg aligned like dial_manager_arg, 1 291 2 fnp_num fixed bin (4), 1 292 2 in_use bit (1) unaligned init ("0"b), 1 293 2 status_word bit (36) aligned init ("0"b), 1 294 2 type_code bit (6) unaligned init ("0"b); 1 295 1 296 1 297 1 298 2 1 /* BEGIN INCLUDE FILE ... dial_manager_arg.incl.pl1 */ 2 2 2 3 /* Modified by E. N. Kittlitz 11/80 to add reservation string, move dial-out 2 4* destination from dial_qualifier, add dial_message. 2 5* Modified by Robert Coren 4/83 to add required access class stuff. 2 6* Modified 1984-08-27 BIM for V4, privileged_operation. 2 7**/ 2 8 2 9 2 10 dcl dial_manager_arg_version_2 fixed bin internal static initial (2) options (constant); 2 11 dcl dial_manager_arg_version_3 fixed bin internal static initial (3) options (constant); 2 12 dcl dial_manager_arg_version_4 fixed bin internal static initial (4) options (constant); 2 13 2 14 dcl 1 dial_manager_arg based aligned, 2 15 2 version fixed bin, /* = 4 */ 2 16 2 dial_qualifier char (22), /* identify different processes with same process group id */ 2 17 2 dial_channel fixed bin (71), /* event wait channel */ 2 18 2 channel_name char (32), /* channel name for privileged attach */ 2 19 /* limit of version 1 structure */ 2 20 2 dial_out_destination char (32), /* dial-out destination (e.g. phone_no) */ 2 21 2 reservation_string char (256), /* reservation string */ 2 22 2 dial_message fixed bin (71), /* OUTPUT: A.S. message received by dial_manager_ */ 2 23 /* limit of version 2 structure */ 2 24 2 access_class bit (72), /* access class to be associated with the attachment */ 2 25 2 flags aligned, 2 26 3 access_class_required bit (1) unaligned, /* indicates whether to enforce access_class */ 2 27 3 privileged_operation bit (1) unaligned, /* for accept_dials, accepts dials from */ 2 28 /* system_low:access_class */ 2 29 /* no effect on other operations yet. */ 2 30 3 mbz bit (34) unaligned; /* must be zero */ 2 31 2 32 /* END INCLUDE FILE ... dial_manager_arg.incl.pl1 */ 1 299 1 300 1 301 1 302 1 303 1 304 /* END INCLUDE FILE tolts_info.incl.pl1 */ 405 3 1 /* BEGIN INCLUDE FILE static_handlers.incl.pl1 */ 3 2 3 3 /* format: style4,indattr,ifthenstmt,ifthen,idind33,^indcomtxt */ 3 4 3 5 /* HISTORY: 3 6*Written by S. H. Webber, 06/20/75. 3 7*Modified: 3 8*12/15/83 by Benson Margulies: added undefined_pointer_sct_index and 3 9* pgt_sct_index. 3 10*06/11/84 by Lee A. Newcomb: added dm_shutdown_warning_sct_index and 3 11* dm_user_shutdown_sct_index for handling of Data Management 3 12* shutdown. 3 13*08/22/84 by R. Michael Tague: Removed dm_shutdown_warning_sct_index and 3 14* dm_user_shutdown_sct_index. Added 3 15* system_shutdown_scheduled_sct_index and 3 16* dm_shutdown_scheduled_sct_index. 3 17**/ 3 18 3 19 3 20 /****^ HISTORY COMMENTS: 3 21* 1) change(85-11-13,Herbst), approve(87-07-21,MCR7697), 3 22* audit(87-07-21,GDixon), install(87-08-04,MR12.1-1056): 3 23* Add system_message_sct_index. 3 24* END HISTORY COMMENTS */ 3 25 3 26 3 27 dcl ( 3 28 shutdown_sct_index init (0), 3 29 store_sct_index init (1), 3 30 mme1_sct_index init (2), 3 31 fault_tag_1_sct_index init (3), 3 32 timer_runout_sct_index init (4), 3 33 command_sct_index init (5), 3 34 derail_sct_index init (6), 3 35 lockup_sct_index init (7), 3 36 connect_sct_index init (8), 3 37 parity_sct_index init (9), 3 38 illegal_procedure_sct_index init (10), 3 39 op_not_complete_sct_index init (11), 3 40 startup_sct_index init (12), 3 41 ovrflo_sct_index init (13), 3 42 zerodivide_sct_index init (14), 3 43 execute_sct_index init (15), 3 44 seg_fault_error_sct_index init (16), 3 45 page_fault_error_sct_index init (17), 3 46 directed_fault_2_sct_index init (18), 3 47 directed_fault_3_sct_index init (19), 3 48 accessviolation_sct_index init (20), 3 49 mme2_sct_index init (21), 3 50 mme3_sct_index init (22), 3 51 mme4_sct_index init (23), 3 52 linkage_error_sct_index init (24), 3 53 fault_tag_3_sct_index init (25), 3 54 undefined_fault_sct_index init (26), 3 55 trouble_sct_index init (31), 3 56 illegal_opcode_sct_index init (32), 3 57 simfault_000000_sct_index init (33), 3 58 illegal_modifier_sct_index init (34), 3 59 illegal_ring_order_sct_index init (35), 3 60 not_in_execute_bracket_sct_index init (36), 3 61 no_execute_permission_sct_index init (37), 3 62 not_in_read_bracket_sct_index init (38), 3 63 no_read_permission_sct_index init (39), 3 64 not_in_write_bracket_sct_index init (40), 3 65 no_write_permission_sct_index init (41), 3 66 not_a_gate_sct_index init (42), 3 67 not_in_call_bracket_sct_index init (43), 3 68 outward_call_sct_index init (44), 3 69 bad_outward_call_sct_index init (45), 3 70 inward_return_sct_index init (46), 3 71 cross_ring_transfer_sct_index init (47), 3 72 ring_alarm_fault_sct_index init (48), 3 73 am_fault_sct_index init (49), 3 74 out_of_bounds_sct_index init (50), 3 75 fixedoverflow_sct_index init (51), 3 76 overflow_sct_index init (52), 3 77 underflow_sct_index init (53), 3 78 stringsize_sct_index init (54), 3 79 other_illegal_proc_sct_index init (55), 3 80 storage_sct_index init (56), 3 81 packed_pointer_fault_sct_index init (57), 3 82 lot_fault_sct_index init (58), 3 83 isot_fault_sct_index init (59), 3 84 system_packed_pointer_sct_index init (60), 3 85 quit_sct_index init (61), 3 86 alrm_sct_index init (62), 3 87 cput_sct_index init (63), 3 88 record_quota_overflow_sct_index init (64), 3 89 size_sct_index init (65), 3 90 neti_sct_index init (66), 3 91 other_command_sct_index init (67), 3 92 susp_sct_index init (68), 3 93 term_sct_index init (69), 3 94 wkp_sct_index init (70), 3 95 undefined_pointer_sct_index init (71), 3 96 pgt_sct_index init (72), 3 97 system_shutdown_scheduled_sct_index 3 98 init (73), 3 99 dm_shutdown_scheduled_sct_index init (74), 3 100 system_message_sct_index init (75) 3 101 ) fixed bin (17) int static options (constant); 3 102 3 103 /* END INCLUDE FILE static_handlers.incl.pl1 */ 406 4 1 /* BEGIN INCLUDE FILE ... cdt.incl.pl1 */ 4 2 4 3 /* format: style3,idind25,indcomtxt */ 4 4 4 5 /* Channel Definition Table. 4 6* This table lists all of the hardware channels (ports) connected 4 7* to the system, and maintains the attributes of each one. 4 8* 4 9* PG 741230 4 10* Modified by Mike Grady 5/6/76 to add FNP info. 4 11* Modified by Tom Casey 7/29/76 to add more FNP info and a few other things. 4 12* Modified by Robert Coren 6/13/77 to make terminal types be character strings. 4 13* Modified July 1979 by T. Casey to add several variables for MR8.0 process preservation facility. 4 14* Modified December 1980 by E. N. Kittlitz to eliminate cdte.phone_no. 4 15* Modified March 1981 by Robert Coren to add "listening" flag for multiplexers and to add TANDD_SERVICE service_type. 4 16* Modified April 1981 by E. N. Kittlitz to add cdte.dial_ev_chn, cdte.recent_wakeup_time, cdte.recent_wakeup_count. 4 17* Modified July 1981 by T. Casey for MR9.0 to add dialup_flags.detach_after_hangup 4 18* Modified December 1981 by E. N. Kittlitz for cdte.leave_edited, cdte.hold_arg, 4 19* Modified September 1981 by Benson I. Margulies for cdt_mgr_'s tree of multiplexer's. 4 20* Modified August 1982 by E. N. Kittlitz for check_acs. 4 21* Modified January 1983 by Keith Loepere for generic_destination. 4 22* Modified August 1983 by Robert Coren to add mpxe.check and mpxe.retry_load. 4 23* Modified 831216 by E. N. Kittlitz for required_access_class. 4 24* Modified 84-04-01 by BIM to finish communications AIM: 4 25* access class ranges, 4 26* access_control flags. 4 27**/ 4 28 4 29 4 30 /****^ HISTORY COMMENTS: 4 31* 1) change(87-03-17,Beattie), approve(87-04-06,MCR7656), 4 32* audit(87-07-13,Parisek), install(87-08-04,MR12.1-1056): 4 33* Add support for answering service to use IOCBs when tty_ cannot be 4 34* used to service login channels. 4 35* END HISTORY COMMENTS */ 4 36 4 37 4 38 dcl CDT_version_5 fixed bin internal static initial (5) options (constant); 4 39 dcl CDT_version fixed bin internal static initial (6) options (constant); 4 40 4 41 dcl (cdtp, cdtep, fnpep, mpxep) 4 42 ptr; 4 43 4 44 dcl 1 cdt based (cdtp) aligned, /* all of the system channels */ 4 45 2 author like author_dcl.author, /* standard header */ 4 46 2 max_size fixed bin, /* maximum number of cdte's in 255K */ 4 47 2 current_size fixed bin, /* number of last cdte. */ 4 48 2 version fixed bin, 4 49 2 freep fixed bin, /* chain of free cdte's */ 4 50 2 n_cdtes fixed bin, /* number of used cdte's */ 4 51 2 meters_last_reset fixed bin (71), /* clock time dialup meters were reset */ 4 52 2 realtime_in_dialup fixed bin (71), /* Dialup meter */ 4 53 2 cpu_in_dialup fixed bin (71), /* .. */ 4 54 2 pf_in_dialup fixed bin, /* .. */ 4 55 2 pp_in_dialup fixed bin, /* .. */ 4 56 2 entries_to_dialup fixed bin, /* .. */ 4 57 2 flags, 4 58 3 go bit (1) unal, /* ans. serv. said "go ahead and answer the phones" */ 4 59 3 cdt_is_live bit (1) unal, /* cdt is active */ 4 60 3 mux_mgr_system_init 4 61 bit (1) unal, /* mux mgr has loaded top-levels */ 4 62 3 pad1 bit (33) unal, 4 63 2 acceptable_fnp_tbf fixed bin, /* acceptable minutes between FNP crashes */ 4 64 2 spare_channel_count fixed bin, /* number of extra channels to leave room for in ring0 */ 4 65 2 threads aligned like channel_threads, 4 66 /* root of non-fnp-top-level-multiplexers */ 4 67 2 pad2 (31) bit (36) aligned, /* pad header to 80 words */ 4 68 2 fnp_entry dim (8) like fnpe, /* max of 8 FNPs for now */ 4 69 2 cdt_entry dim (2500) like cdte; /* # of cdte's in 255K */ 4 70 4 71 4 72 dcl 1 cdte based (cdtep) aligned, /* a channel */ 4 73 2 in_use fixed bin, /* see dialup_values. 0=NOW_FREE */ 4 74 /**** * These variables are filled in when the CDTE is created by cv_cmf. They are not dynamic. */ 4 75 2 pad1 bit (36) aligned, 4 76 2 name char (32), /* ASCII name of channel */ 4 77 2 access_class (2) bit (72) aligned, /* access class range */ 4 78 2 comment char (48), /* printable message about channel */ 4 79 2 charge_type fixed bin (17) unal, /* billing group */ 4 80 2 service_type fixed bin (17) unal, /* service group (AS, ftp, mc) */ 4 81 2 line_type fixed bin (17) unal, /* tty line type (protocol) */ 4 82 2 baud_rate fixed bin (17) unal, /* 110, 133, 150, etc. */ 4 83 2 modem_type fixed bin (17) unal, /* type of modem on this channel */ 4 84 2 pad2 bit (18) unaligned, 4 85 2 answerback char (8), /* answerback string expected */ 4 86 2 initial_terminal_type 4 87 char (32) unal, /* as specified in the CMF */ 4 88 2 mpx_data unal, /* data used only for multiplexed channels */ 4 89 3 mpx_type fixed bin (17), /* type of multiplexing used */ 4 90 3 mpx_service fixed bin (17), /* service type, active or inactive */ 4 91 2 flags, 4 92 ( 3 attributes, 4 93 4 ck_answerback bit (1), /* ON means that ansbk must equal our records */ 4 94 4 audit_access_error 4 95 bit (1), /* ON means ck that person auth is inside access class range */ 4 96 /* this implies that the access_class describes a range of 4 97* legitimate user auths. */ 4 98 4 hardwired bit (1), /* ON means it is */ 4 99 4 set_modes bit (1), /* ON means to set initial modes at dialup */ 4 100 4 dont_read_answerback 4 101 bit (1), /* ON means don't try to read answerback */ 4 102 4 pada bit (4), 4 103 3 access_control unaligned, /* As below */ 4 104 4 dial_out bit (1), /* dialing user must be on ACS */ 4 105 4 priv_attach bit (1), /* PA_ user must be on ACS */ 4 106 4 dial_server bit (1), /* accept_dials process must be on acs */ 4 107 4 login bit (1), /* logging in user must be on acs */ 4 108 4 slave_dial bit (1), /* dialing user must give -user and be on acs */ 4 109 4 pado bit (3), 4 110 3 options, 4 111 4 execute_initial_command 4 112 bit (1), /* ON means to do it */ 4 113 4 attached_by_operator 4 114 bit (1), /* ON means temporary attachment. */ 4 115 4 private_line bit (1), /* ON means private_line sync modem in use */ 4 116 4 bsc_ebcdic bit (1), /* ON means bsc would like to use ebcdic code set */ 4 117 4 bsc_transparent bit (1), /* ON means bsc is in transparent mode */ 4 118 4 vip_pollselect bit (1), /* ON means VIP line is multidrop */ 4 119 4 autobaud bit (1), /* ON means auto baud detection this channel */ 4 120 4 generic_destination_present 4 121 bit (1), /* ON means that the initial_command field contains 4 122* a generic destination to match on dial_out or priv attach */ 4 123 4 use_iocb bit (1), /* ON means to use IOCB operations to support channel */ 4 124 4 pado bit (9) 4 125 ) unaligned, 4 126 2 initial_command char (64), /* pseudo first input line */ 4 127 /**** The following variables represent dynamic control info, and 4 128* are used mostly by dialup_ and asu_ */ 4 129 2 event fixed bin (71), /* event call channel for channel events */ 4 130 2 current_service_type fixed bin (17) unal, /* Current usage of line. */ 4 131 2 tra_vec fixed bin (17) unal, /* which section of dialup_ to do next */ 4 132 2 count fixed bin (17) unal, /* How many login tries he's had. */ 4 133 2 dialup_flags unal, /* flag bits for dialup to maintain */ 4 134 3 ppm bit (1) unal, /* print preaccess message for IBM terminals */ 4 135 3 cpo bit (1) unal, /* conditional printer-off (depends on answerback */ 4 136 3 wakeup_handler bit (1) unal, /* says who is wakeup handler for this channel */ 4 137 /* 0 = dialup_, 1 = mc_tty_ */ 4 138 3 save_arg bit (1) unal, /* -save login arg given */ 4 139 3 nosave_arg bit (1) unal, /* -nosave login arg given */ 4 140 3 detach_after_hangup 4 141 bit (1) unal, /* remember WAIT_DETACH when setting WAIT_BEFORE_HANGUP */ 4 142 3 leave_edited bit (1) unal, /* user control of edited mode */ 4 143 3 hold_arg bit (1) unal, /* -hold arg given */ 4 144 3 no_hold_arg bit (1) unal, /* -no_hold arg given */ 4 145 3 immediate_arg bit (1) unal, /* -immediate arg given */ 4 146 3 current_access_class_valid 4 147 bit (1) unal, /* dialup_ or lg_ctl_ has determined the current_access_class */ 4 148 3 pad bit (7) unal, 4 149 2 twx fixed bin, /* channel device index */ 4 150 2 state fixed bin, /* channel state */ 4 151 2 tty_id_code char (4), /* channel id (answerback) */ 4 152 2 current_terminal_type 4 153 char (32) unal, /* most recently-set terminal type */ 4 154 2 process ptr unal, /* ptr to ATE owning this channel */ 4 155 2 dialed_to_procid bit (36), /* Dialed channels remember owner's proc id */ 4 156 2 next_channel fixed bin (17) unal, /* cdte index of next channel for this process */ 4 157 2 cur_line_type fixed bin (17) unal, /* line type of currently dialed terminal */ 4 158 2 current_access_class (2) bit (72) aligned, /* This is a range, but at this time it must be a null range. 4 159* We do not yet define multi-class connections, but we will someday. */ 4 160 2 disconnected_ate_index 4 161 fixed bin (17) unal, /* index of ate of disconnected process */ 4 162 2 dial_ctl_ring fixed bin (3) unsigned unaligned, 4 163 /* used by dial_ctl_ to record ring of priv_attach or dial_out attachments */ 4 164 2 dial_rq_privileged bit (1) unaligned, /* used by dial ctl to record comm priv from priv_attach or dial_out request */ 4 165 2 pad3 bit (14) unaligned, 4 166 /**** The following variables are kept for metering purposes. */ 4 167 2 n_dialups fixed bin, /* number of times channel has been dialed up */ 4 168 2 n_logins fixed bin, /* number of login sessions on this channel */ 4 169 2 dialed_up_time fixed bin (35), /* total time channel was dialed up (seconds) */ 4 170 2 dialup_time fixed bin (71), /* time of present dialup */ 4 171 2 disconnected_proc_command 4 172 fixed bin (12) unsigned unal, 4 173 /* 1 to 5 for -list,-create,-connect,-new_proc,-destroy */ 4 174 2 disconnected_proc_number 4 175 fixed bin (12) unsigned unal, 4 176 /* {N} in -connect {N}, -new_proc {N}, -destroy {N} */ 4 177 2 n_disconnected_procs fixed bin (12) unsigned unal, 4 178 /* number of disconnected processes that user has */ 4 179 2 recent_wakeup_count fixed bin, /* counter to detect channel wakeup loop */ 4 180 2 recent_wakeup_time fixed bin (71), /* time of first wakeup in suspected channel wakeup loop */ 4 181 2 dial_ev_chn fixed bin (71), /* Dialed channels remember master's IPC channel */ 4 182 /**** cdt_mgr_ uses these to maintain the tree of channels. They ****/ 4 183 /**** really belong in the mpxe, but it is full up, and the cdte ****/ 4 184 /**** had the space. */ 4 185 2 threads aligned like channel_threads, 4 186 /**** The use name is that of the user who gave the dial or slave ****/ 4 187 /**** preaccess request. ****/ 4 188 2 user_name unaligned, 4 189 3 person char (20) unaligned, 4 190 3 project char (9) unaligned, 4 191 3 pad char (3) unaligned, /* no tag */ 4 192 2 iocbp ptr unaligned; /* 104 words */ 4 193 4 194 4 195 dcl generic_destination based char (32); /* used to match destinations on dial_out and priv_attach, 4 196* overlays initial_command field for slave and autocall lines */ 4 197 4 198 4 199 4 200 dcl 1 fnpe based (fnpep) aligned, /* an FNP */ 4 201 /* These variables are filled in from the CMF */ 4 202 2 type fixed bin, /* type of this FNP, DN355, DN6670, etc. */ 4 203 2 memory fixed bin, /* amount of memory on this FNP */ 4 204 2 nlslas fixed bin, /* number of lslas on this FNP */ 4 205 2 nhslas fixed bin, /* number of hslas on this FNP */ 4 206 2 service_type fixed bin, /* service type */ 4 207 2 mpx_type fixed bin, /* type of multiplexer on this fnp */ 4 208 2 coreimage char (168), /* pathname of image, maybe in >sl1 */ 4 209 /**** The following are used during system operation to remember the state of the FNP */ 4 210 2 boot_segp ptr, /* ptr to seg used for bootload */ 4 211 2 boot_ev_chan fixed bin (71), /* for ring0 to report crashes and bootload complete */ 4 212 2 mpxe like mpxe, /* standard multiplexer data */ 4 213 2 threads aligned like channel_threads, 4 214 /* same mpx threads as channel */ 4 215 2 pad3 (25) fixed bin; /* pad to 96 words per entry */ 4 216 4 217 /* This structure describes the data necessary to control a multiplexer. 4 218* For FNP's., a copy appears in the fnpe. For communications lines, it 4 219* overlays the initial_command field in the cdte. */ 4 220 4 221 dcl 1 mpxe based (mpxep) aligned, 4 222 2 state fixed bin, /* current state, up, down, loading */ 4 223 2 current_service_type fixed bin, /* usually = service type, unless cdt installation changes it */ 4 224 2 current_mpx_type fixed bin, /* type of multiplexer currently running */ 4 225 2 n_bootloads fixed bin, /* count of load attempts */ 4 226 2 time_initial_load fixed bin (71), /* time this MPX first completed a load */ 4 227 2 time_last_load fixed bin (71), /* time MPX last completed a bootload */ 4 228 2 time_last_crash fixed bin (71), /* time MPX last crashed */ 4 229 2 time_load_start fixed bin (71), /* time current load started */ 4 230 2 last_tbf fixed bin, /* number of minutes this MPX was up last bootload */ 4 231 2 flags unal, 4 232 3 go bit (1), /* start MPX after it loads */ 4 233 3 listening bit (1), /* listen has been done on subchannels */ 4 234 3 check bit (1), /* loaded with check option */ 4 235 3 retry_load bit (1), /* reload if load fails */ 4 236 3 pad1 bit (32), 4 237 2 pad2 (2) fixed bin; /* pad to 16 words */ 4 238 4 239 /* These threads define the tree of multiplexers in the cdt. */ 4 240 /* next_sister and prev_sister link nodes at the same level, ordered */ 4 241 /* by alpha sort order of the channel name. Daughter points to the */ 4 242 /* first child of this node, if any. Daughter count is the number */ 4 243 /* of children, as a consistency check. Mother is a back pointer to */ 4 244 /* the parent, present in all the children, not just the first. */ 4 245 /* threads are cdt indexes. If positive, they index the cdt_entry array */ 4 246 /* in cdt, if negative, they are the negative of an index into the fnp_entry */ 4 247 /* array. If zero, they refer to the top of the non-fnp mpx tree. */ 4 248 4 249 dcl 1 channel_threads aligned based, 4 250 2 next_sister fixed bin unaligned, 4 251 2 prev_sister fixed bin unaligned, 4 252 2 daughter fixed bin unaligned, 4 253 2 mother fixed bin unaligned, /* negative is a fnpx, positive a cdtx */ 4 254 2 pad bit (18) unaligned, 4 255 2 daughter_count fixed bin unaligned; 4 256 4 257 /* Values for cdte.service_type field */ 4 258 4 259 dcl ( 4 260 ANS_SERVICE init (1), /* login or dial */ 4 261 FTP_SERVICE init (2), /* file transfer service */ 4 262 MC_SERVICE init (3), /* message coordinator */ 4 263 SLAVE_SERVICE init (4), /* special channel */ 4 264 DIAL_SERVICE init (5), /* transient state */ 4 265 DIAL_OUT_SERVICE init (6), /* auto call line */ 4 266 MPX_SERVICE init (8), /* ring0 demultiplexed line */ 4 267 TANDD_SERVICE init (9) /* transient state, attached for T & D */ 4 268 ) fixed bin internal static options (constant); 4 269 4 270 /* Values for service type in both cdte and fnpe */ 4 271 4 272 dcl ( 4 273 INACTIVE init (7), /* not to be used, even though configured */ 4 274 ACTIVE init (1) 4 275 ) /* for FNP only, configured and to be used */ 4 276 fixed bin internal static options (constant); 4 277 4 278 /* Value for both cdte.in_use and fnpe.state */ 4 279 4 280 dcl NOT_CONFIGURED fixed bin int static init (-1) options (constant); 4 281 /* was not configured at Multics bootload time */ 4 282 4 283 /* NOTE: an INACTIVE channel can be made active by operator command or CDT installation, 4 284* but a NOT_CONFIGURED channel can not be used until its multiplexer is reloaded */ 4 285 4 286 /* Value for cdte.in_use */ 4 287 4 288 dcl CHANNEL_DELETED fixed bin int static init (-2); 4 289 /* channel deleted by CDT installation */ 4 290 4 291 /* NOTE: a configured channel being deleted by a CDT installation is set to CHANNEL_DELETED. 4 292* multiplexer_mgr_ sets cdte.in_use to NOW_FREE at the next reload of its multiplexer. 4 293* A NOT_CONFIGURED channel is set to NOW_FREE immediately when deleted by a CDT installation. */ 4 294 4 295 4 296 /* Values for mpxe.state field */ 4 297 4 298 dcl ( 4 299 FNP_FREE init (0), /* this fnpe is not used */ 4 300 FNP_UNKNOWN init (1), /* FNP is in some unknown state */ 4 301 FNP_DOWN init (2), /* FNP crashed, not yet reloaded */ 4 302 FNP_BOOT init (3), /* FNP has been booted, but no response yet */ 4 303 FNP_UP init (4) /* FNP is up and running fine */ 4 304 ) fixed bin internal static options (constant); 4 305 4 306 dcl ( 4 307 MPX_FREE init (0), /* this mpxe is not used */ 4 308 MPX_UNKNOWN init (1), /* MPX is in some unknown state */ 4 309 MPX_DOWN init (2), /* MPX crashed, not yet reloaded */ 4 310 MPX_BOOT init (3), /* MPX has been booted, but no response yet */ 4 311 MPX_UP init (4) /* MPX is up and running fine */ 4 312 ) fixed bin internal static options (constant); 4 313 5 1 /* BEGIN INCLUDE FILE ... fnp_types.incl.pl1 */ 5 2 5 3 5 4 5 5 /****^ HISTORY COMMENTS: 5 6* 1) change(88-06-15,Berno), approve(88-07-13,MCR7928), 5 7* audit(88-06-15,Parisek), install(88-07-19,MR12.2-1061): 5 8* Add data needed for the uncp multiplexer (DSA gateway) interface 5 9* implementation. 5 10* END HISTORY COMMENTS */ 5 11 5 12 5 13 /* Values for fnpe.type field */ 5 14 /* 5 15* Created 79 May 14 by Art Beattie by splitting information out from cdt.incl.pl1 5 16* Added in March 1982 - DN7100.fd. 5 17**/ 5 18 5 19 dcl (DN355 init (1), /* a DataNet 355 FNP */ 5 20 DN6600 init (2), /* a DataNet 6600 FNP */ 5 21 DN6670 init (3), /* a Honeywell Bull Network Processor (18x) */ 5 22 DN7100 init (4) /* The DSA Datanet architecture (DN7) */ 5 23 ) fixed bin internal static options (constant); 5 24 5 25 dcl fnp_types (4) char (8) int static options (constant) 5 26 init ("DN355", "DN6600", "DN6670", "DN7100"); 5 27 5 28 dcl fnp_models (4) fixed bin (17) int static options (constant) 5 29 init (355, 6600, 6670, 7100); 5 30 5 31 dcl supported_fnp (4) bit (1) int static options (constant) 5 32 init ("0"b, "0"b, "1"b, "1"b); 5 33 5 34 5 35 /* END INCLUDE FILE ... fnp_types.incl.pl1 */ 4 314 4 315 4 316 /* END INCLUDE FILE ... cdt.incl.pl1 */ 407 6 1 /* BEGIN INCLUDE FILE ... author_dcl.incl.pl1 */ 6 2 6 3 /* This include file declares the "author" substructure 6 4* in a form suitable for using the PL/I "like" attribute. 6 5* 6 6* Written 750304 by PG 6 7**/ 6 8 6 9 dcl 1 author_dcl aligned based, 7 1 /* BEGIN INCLUDE FILE author.incl.pl1 */ 7 2 7 3 /* the "author" items must always be the first ones in the table. The 7 4* module which moves the converted table to the System Control process 7 5* fills in these data items and assumes them to be at the head of the segment 7 6* regardless of the specific table's actual declaration. The variables 7 7* "lock" and "last_install_time" used to be "process_id" and "ev_channel" 7 8* respectively. For tables installed in multiple processes, these 7 9* are to be used to lock out multiple installations. */ 7 10 7 11 /* Lock should be used as a modification lock. Since, in general, 7 12* entries may not be moved in system tables, even by installations, 7 13* it is sufficient for only installers and programs that change threads 7 14* to set or respect the lock. Simply updating data in an entry 7 15* requires no such protection. 7 16* 7 17* Last_install_time is used by readers of system tables to detect 7 18* installations or other serious modifications. By checking it before 7 19* and after copying a block of data, they can be protected against 7 20* modifications. 7 21* 7 22* Modules that set the lock should save proc_group_id, and then 7 23* put their group id there for the time they hold the lock. 7 24* if they do not actually install the, they should restore the group id. 7 25**/ 7 26 7 27 2 author aligned, /* validation data about table's author */ 7 28 3 proc_group_id char (32), /* process-group-id (personid.projectid.tag) */ 7 29 3 lock bit (36), /* installation lock */ 7 30 3 update_attributes bit (1) unal, /* update/add/delete attributes */ 7 31 3 update_authorization bit (1) unal, /* update only authorizations */ 7 32 3 deferral_notified bit (1) unal, /* installer notified of deferral of installation */ 7 33 3 pad bit (33) unaligned, 7 34 3 last_install_time fixed bin (71), 7 35 3 table char (4), /* name of table, e.g., SAT MGT TTT RTDT PDT etc. */ 7 36 3 w_dir char (64), /* author's working directory */ 7 37 7 38 /* END INCLUDE FILE author.incl.pl1 */ 6 10 6 11 2 pad; 6 12 6 13 /* END INCLUDE FILE ... author_dcl.incl.pl1 */ 408 409 end tolts_init_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 07/19/88 1536.9 tolts_init_.pl1 >special_ldd>install>MR12.2-1061>tolts_init_.pl1 405 1 12/10/86 1422.0 tolts_info.incl.pl1 >ldd>include>tolts_info.incl.pl1 1-299 2 09/13/84 0921.5 dial_manager_arg.incl.pl1 >ldd>include>dial_manager_arg.incl.pl1 406 3 08/06/87 0913.5 static_handlers.incl.pl1 >ldd>include>static_handlers.incl.pl1 407 4 08/06/87 0913.0 cdt.incl.pl1 >ldd>include>cdt.incl.pl1 4-314 5 07/19/88 1524.1 fnp_types.incl.pl1 >special_ldd>install>MR12.2-1061>fnp_types.incl.pl1 408 6 09/09/75 2007.3 author_dcl.incl.pl1 >ldd>include>author_dcl.incl.pl1 6-10 7 04/21/82 1211.8 author.incl.pl1 >ldd>include>author.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. a_err parameter fixed bin(35,0) dcl 92 set ref 309 311* 315* 322* 328* a_error parameter fixed bin(35,0) dcl 92 set ref 86 157* 162* 179* 202* 212* 222* 233* 243* 253* 263* 274* 283* 293* add_epilogue_handler_ 000014 constant entry external dcl 104 ref 208 addr builtin function dcl 155 ref 189 197 197 230 230 240 240 250 250 260 260 271 271 author based structure level 2 dcl 6-9 author_dcl based structure level 1 dcl 6-9 call parameter bit(1) packed unaligned dcl 94 ref 309 319 call_entry parameter entry variable dcl 95 set ref 309 320* cdt_name 572 based char(32) initial array level 3 dcl 1-75 set ref 186* cdte based structure level 1 dcl 4-72 cdtp 000126 automatic pointer dcl 4-41 set ref 298* 299 302 cdtptr based pointer level 2 dcl 1-75 set ref 302* channel_threads based structure level 1 dcl 4-249 clock builtin function dcl 155 ref 384 399 399 code 000103 automatic fixed bin(35,0) dcl 135 in procedure "tolts_init_" set ref 291* 292 293 294* 298* 300* 313* 314 315 316* 320* 321 322 323* 326* 327 328 329* 342* 345* 347* 349* 351* 353* 355* 367* 370* 371* 374* code parameter fixed bin(35,0) dcl 397 in procedure "init_time" set ref 395 400* colts_info based structure level 1 dcl 1-287 com_err_ 000016 constant entry external dcl 105 ref 161 178 200 210 220 294 300 316 323 329 convert_date_to_binary_ 000020 constant entry external dcl 106 ref 400 data 000104 automatic varying char(36) dcl 136 set ref 229* 230 230 240 240 250 250 260 260 271 271 date builtin function dcl 155 ref 401 401 date_str 000116 automatic char(8) packed unaligned dcl 137 set ref 399* 400 date_time_ 000022 constant entry external dcl 107 ref 399 delta 000120 automatic fixed bin(71,0) dcl 138 set ref 384* 386 390 df_iocbp 2 based pointer level 2 dcl 1-75 set ref 168* 369 370* 371* 372* dial_manager_arg based structure level 1 dcl 2-14 dm_event 4 based fixed bin(71,0) level 2 dcl 1-75 set ref 291* 342 342* error 000122 automatic fixed bin(35,0) dcl 139 set ref 159* 160 161* 162 176* 177 178* 179 196* 197 197* 199 200* 202 208* 209 210* 212 218* 219 220* 222 230* 232 233 240* 242 243 250* 252 253 260* 262 263 271* 273 274 281* 282 283 376* 387* event_ch parameter fixed bin(71,0) dcl 93 set ref 309 313* 320* exec 6 based char(4) level 2 in structure "tolts_info" dcl 1-75 in procedure "tolts_init_" set ref 167* 367 exec parameter char(4) packed unaligned dcl 91 in procedure "tolts_init_" set ref 86 167 175 178* 190 190 290 execp 12 based pointer level 2 dcl 1-75 set ref 166* 176* 367 367* first 3334 based pointer level 3 dcl 1-75 set ref 189* fnp 554 based structure array level 2 dcl 1-75 fnpe based structure level 1 dcl 4-200 g_time parameter bit(36) packed unaligned dcl 98 set ref 382 390* gc_date 20 based bit(36) level 2 in structure "tolts_info" dcl 1-75 in procedure "tolts_init_" set ref 402* gc_date 000123 automatic bit(36) packed unaligned dcl 140 in procedure "tolts_init_" set ref 401* 402 get_default_wdir_ 000030 constant entry external dcl 110 ref 170 get_process_id_ 000026 constant entry external dcl 109 ref 187 get_temp_segment_ 000024 constant entry external dcl 108 ref 159 176 gewake_event 22 based fixed bin(71,0) level 2 dcl 1-75 set ref 271* 351 351* gewake_prior 000061 constant fixed bin(17,0) initial dcl 147 set ref 271* hcs_$assign_channel 000032 constant entry external dcl 111 ref 281 hcs_$initiate 000034 constant entry external dcl 112 ref 298 hdir 25 based char(168) level 2 dcl 1-75 set ref 170* i 000124 automatic fixed bin(17,0) dcl 141 set ref 357* 358 359 360 361* in_use 32001 based bit(1) array level 3 dcl 1-75 set ref 358 io_info based structure level 1 dcl 1-155 iox_$close 000046 constant entry external dcl 117 ref 370 iox_$detach_iocb 000050 constant entry external dcl 118 ref 371 ipc_$create_ev_chn 000036 constant entry external dcl 113 ref 291 313 ipc_$decl_ev_call_chn 000040 constant entry external dcl 114 ref 320 ipc_$delete_ev_chn 000042 constant entry external dcl 115 ref 342 345 347 349 351 353 355 ipc_$set_call_prior 000044 constant entry external dcl 116 ref 326 large_workspace constant fixed bin(17,0) initial dcl 146 ref 192 mca_$detach_mca 000052 constant entry external dcl 119 ref 360 mca_ioi_idx 33147 based fixed bin(17,0) array level 3 dcl 1-75 set ref 359 360* 361* mess_buf 3334 based structure level 2 dcl 1-75 micro_time 106 based fixed bin(71,0) level 2 dcl 1-75 set ref 384 400* mme1_sct_index 000123 constant fixed bin(17,0) initial dcl 3-27 set ref 196* 197* 376* mpxe based structure level 1 dcl 4-221 mtdsim_$epilogue 000056 constant entry external dcl 121 ref 208 208 mtdsim_$mme_fault 000054 constant entry external dcl 120 set ref 197 197 nchan 522 based fixed bin(17,0) level 3 dcl 1-75 set ref 188* null builtin function dcl 155 ref 158 166 168 169 299 344 367 369 372 376 nxt 3336 based pointer level 3 dcl 1-75 set ref 189* odp parameter pointer dcl 96 set ref 309 320* old_mme1 000010 internal static pointer initial dcl 148 set ref 196* 376 376* pages 31102 based structure array level 2 dcl 1-75 set ref 357 357 pf_iocbp 114 based pointer level 2 dcl 1-75 set ref 169* pf_name 116 based char(32) level 2 dcl 1-75 set ref 171* pname 000056 constant char(11) initial packed unaligned dcl 149 set ref 161* 178* 200* 210* 220* 294* 316* 323* 329* prior parameter fixed bin(17,0) dcl 97 set ref 309 320* process 126 based bit(36) level 2 dcl 1-75 set ref 187* quith_event 130 based fixed bin(71,0) level 2 dcl 1-75 set ref 260* 349 349* quith_prior 000112 constant fixed bin(17,0) initial dcl 150 set ref 260* release_temp_segment_ 000060 constant entry external dcl 122 ref 367 374 sc_dir 000000 constant char(168) initial packed unaligned dcl 154 set ref 298* 300* sct_manager_$get 000062 constant entry external dcl 123 ref 196 sct_manager_$set 000064 constant entry external dcl 124 ref 197 376 sec_per_day 000054 constant fixed bin(37,0) initial dcl 151 ref 386 slave_exec 000100 automatic char(10) packed unaligned dcl 99 set ref 175* 176* 182* small_workspace constant fixed bin(17,0) initial dcl 145 ref 190 term_queue 3340 based fixed bin(17,0) array level 3 dcl 1-75 set ref 189 tolts_alm_util_$ascii_to_bcd_ 000066 constant entry external dcl 125 ref 401 tolts_alrm_util_$gewake 000070 constant entry external dcl 126 ref 271 271 tolts_alrm_util_$quit 000072 constant entry external dcl 127 ref 260 260 tolts_info based structure level 1 dcl 1-75 set ref 165* tolts_infop 000102 external static pointer dcl 1-71 set ref 158* 159* 165 166 167 168 169 170 171 176 186 187 188 189 189 189 190 192 230 240 250 260 271 281 291 302 342 342 344 345 345 347 347 349 349 351 351 353 353 355 355 357 357 358 359 360 361 367 367 367 369 370 371 372 374* 384 400 402 tolts_ttyio_display_ 000074 constant entry external dcl 129 ref 240 240 tolts_ttyio_display_$nxt_line 000076 constant entry external dcl 130 ref 250 250 tolts_ttyio_end_ 000100 constant entry external dcl 131 ref 230 230 tty_ccc_event 136 based fixed bin(71,0) level 2 dcl 1-75 set ref 230* 353 353* tty_ccc_prior 000114 constant fixed bin(17,0) initial dcl 152 set ref 230* tty_display_event 140 based fixed bin(71,0) level 2 dcl 1-75 set ref 250* 355 355* tty_issue_event 142 based fixed bin(71,0) level 2 dcl 1-75 set ref 240* 347 347* tty_issue_prior 000052 constant fixed bin(17,0) initial dcl 153 set ref 240* 250* unspec builtin function dcl 155 set ref 165* 182* wait_event_id 524 based fixed bin(71,0) array level 3 dcl 1-75 set ref 281* 345 345* wait_list 522 based structure level 2 dcl 1-75 wks_sz 144 based fixed bin(17,0) level 2 dcl 1-75 set ref 190* 192* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. ACTIVE internal static fixed bin(17,0) initial dcl 4-272 ANS_SERVICE internal static fixed bin(17,0) initial dcl 4-259 CDT_version internal static fixed bin(17,0) initial dcl 4-39 CDT_version_5 internal static fixed bin(17,0) initial dcl 4-38 CHANNEL_DELETED internal static fixed bin(17,0) initial dcl 4-288 DIAL_OUT_SERVICE internal static fixed bin(17,0) initial dcl 4-259 DIAL_SERVICE internal static fixed bin(17,0) initial dcl 4-259 DN355 internal static fixed bin(17,0) initial dcl 5-19 DN6600 internal static fixed bin(17,0) initial dcl 5-19 DN6670 internal static fixed bin(17,0) initial dcl 5-19 DN7100 internal static fixed bin(17,0) initial dcl 5-19 FNP_BOOT internal static fixed bin(17,0) initial dcl 4-298 FNP_DOWN internal static fixed bin(17,0) initial dcl 4-298 FNP_FREE internal static fixed bin(17,0) initial dcl 4-298 FNP_UNKNOWN internal static fixed bin(17,0) initial dcl 4-298 FNP_UP internal static fixed bin(17,0) initial dcl 4-298 FTP_SERVICE internal static fixed bin(17,0) initial dcl 4-259 INACTIVE internal static fixed bin(17,0) initial dcl 4-272 MC_SERVICE internal static fixed bin(17,0) initial dcl 4-259 MPX_BOOT internal static fixed bin(17,0) initial dcl 4-306 MPX_DOWN internal static fixed bin(17,0) initial dcl 4-306 MPX_FREE internal static fixed bin(17,0) initial dcl 4-306 MPX_SERVICE internal static fixed bin(17,0) initial dcl 4-259 MPX_UNKNOWN internal static fixed bin(17,0) initial dcl 4-306 MPX_UP internal static fixed bin(17,0) initial dcl 4-306 NOT_CONFIGURED internal static fixed bin(17,0) initial dcl 4-280 SLAVE_SERVICE internal static fixed bin(17,0) initial dcl 4-259 TANDD_SERVICE internal static fixed bin(17,0) initial dcl 4-259 accessviolation_sct_index internal static fixed bin(17,0) initial dcl 3-27 alrm_sct_index internal static fixed bin(17,0) initial dcl 3-27 am_fault_sct_index internal static fixed bin(17,0) initial dcl 3-27 bad_outward_call_sct_index internal static fixed bin(17,0) initial dcl 3-27 cdt based structure level 1 dcl 4-44 cdtep automatic pointer dcl 4-41 colts_info_ptr automatic pointer dcl 1-72 command_sct_index internal static fixed bin(17,0) initial dcl 3-27 connect_sct_index internal static fixed bin(17,0) initial dcl 3-27 cput_sct_index internal static fixed bin(17,0) initial dcl 3-27 cross_ring_transfer_sct_index internal static fixed bin(17,0) initial dcl 3-27 derail_sct_index internal static fixed bin(17,0) initial dcl 3-27 dial_manager_arg_version_2 internal static fixed bin(17,0) initial dcl 2-10 dial_manager_arg_version_3 internal static fixed bin(17,0) initial dcl 2-11 dial_manager_arg_version_4 internal static fixed bin(17,0) initial dcl 2-12 directed_fault_2_sct_index internal static fixed bin(17,0) initial dcl 3-27 directed_fault_3_sct_index internal static fixed bin(17,0) initial dcl 3-27 dm_shutdown_scheduled_sct_index internal static fixed bin(17,0) initial dcl 3-27 dmap automatic pointer dcl 1-74 execute_sct_index internal static fixed bin(17,0) initial dcl 3-27 fault_tag_1_sct_index internal static fixed bin(17,0) initial dcl 3-27 fault_tag_3_sct_index internal static fixed bin(17,0) initial dcl 3-27 firm_ld_io_type internal static fixed bin(17,0) initial dcl 1-63 fixedoverflow_sct_index internal static fixed bin(17,0) initial dcl 3-27 fnp_models internal static fixed bin(17,0) initial array dcl 5-28 fnp_types internal static char(8) initial array packed unaligned dcl 5-25 fnpep automatic pointer dcl 4-41 generic_destination based char(32) packed unaligned dcl 4-195 illegal_modifier_sct_index internal static fixed bin(17,0) initial dcl 3-27 illegal_opcode_sct_index internal static fixed bin(17,0) initial dcl 3-27 illegal_procedure_sct_index internal static fixed bin(17,0) initial dcl 3-27 illegal_ring_order_sct_index internal static fixed bin(17,0) initial dcl 3-27 inward_return_sct_index internal static fixed bin(17,0) initial dcl 3-27 io_info_ptr automatic pointer dcl 1-73 isot_fault_sct_index internal static fixed bin(17,0) initial dcl 3-27 itr_io_type internal static fixed bin(17,0) initial dcl 1-60 linkage_error_sct_index internal static fixed bin(17,0) initial dcl 3-27 lockup_sct_index internal static fixed bin(17,0) initial dcl 3-27 lot_fault_sct_index internal static fixed bin(17,0) initial dcl 3-27 mca_io_type internal static fixed bin(17,0) initial dcl 1-68 mdc_io_type internal static fixed bin(17,0) initial dcl 1-66 mdr_io_type internal static fixed bin(17,0) initial dcl 1-61 mhp_io_type internal static fixed bin(17,0) initial dcl 1-67 mme2_sct_index internal static fixed bin(17,0) initial dcl 3-27 mme3_sct_index internal static fixed bin(17,0) initial dcl 3-27 mme4_sct_index internal static fixed bin(17,0) initial dcl 3-27 mpxep automatic pointer dcl 4-41 mtar_io_type internal static fixed bin(17,0) initial dcl 1-62 mtc_io_type internal static fixed bin(17,0) initial dcl 1-64 mtg_io_type internal static fixed bin(17,0) initial dcl 1-65 neti_sct_index internal static fixed bin(17,0) initial dcl 3-27 no_execute_permission_sct_index internal static fixed bin(17,0) initial dcl 3-27 no_read_permission_sct_index internal static fixed bin(17,0) initial dcl 3-27 no_write_permission_sct_index internal static fixed bin(17,0) initial dcl 3-27 not_a_gate_sct_index internal static fixed bin(17,0) initial dcl 3-27 not_in_call_bracket_sct_index internal static fixed bin(17,0) initial dcl 3-27 not_in_execute_bracket_sct_index internal static fixed bin(17,0) initial dcl 3-27 not_in_read_bracket_sct_index internal static fixed bin(17,0) initial dcl 3-27 not_in_write_bracket_sct_index internal static fixed bin(17,0) initial dcl 3-27 op_not_complete_sct_index internal static fixed bin(17,0) initial dcl 3-27 other_command_sct_index internal static fixed bin(17,0) initial dcl 3-27 other_illegal_proc_sct_index internal static fixed bin(17,0) initial dcl 3-27 out_of_bounds_sct_index internal static fixed bin(17,0) initial dcl 3-27 outward_call_sct_index internal static fixed bin(17,0) initial dcl 3-27 overflow_sct_index internal static fixed bin(17,0) initial dcl 3-27 ovrflo_sct_index internal static fixed bin(17,0) initial dcl 3-27 packed_pointer_fault_sct_index internal static fixed bin(17,0) initial dcl 3-27 page_fault_error_sct_index internal static fixed bin(17,0) initial dcl 3-27 parity_sct_index internal static fixed bin(17,0) initial dcl 3-27 pgt_sct_index internal static fixed bin(17,0) initial dcl 3-27 polt_io_type internal static fixed bin(17,0) initial dcl 1-59 quit_sct_index internal static fixed bin(17,0) initial dcl 3-27 record_quota_overflow_sct_index internal static fixed bin(17,0) initial dcl 3-27 ring_alarm_fault_sct_index internal static fixed bin(17,0) initial dcl 3-27 rspd_io_type internal static fixed bin(17,0) initial dcl 1-69 seg_fault_error_sct_index internal static fixed bin(17,0) initial dcl 3-27 shutdown_sct_index internal static fixed bin(17,0) initial dcl 3-27 simfault_000000_sct_index internal static fixed bin(17,0) initial dcl 3-27 size_sct_index internal static fixed bin(17,0) initial dcl 3-27 startup_sct_index internal static fixed bin(17,0) initial dcl 3-27 storage_sct_index internal static fixed bin(17,0) initial dcl 3-27 store_sct_index internal static fixed bin(17,0) initial dcl 3-27 stringsize_sct_index internal static fixed bin(17,0) initial dcl 3-27 supported_fnp internal static bit(1) initial array packed unaligned dcl 5-31 susp_sct_index internal static fixed bin(17,0) initial dcl 3-27 system_message_sct_index internal static fixed bin(17,0) initial dcl 3-27 system_packed_pointer_sct_index internal static fixed bin(17,0) initial dcl 3-27 system_shutdown_scheduled_sct_index internal static fixed bin(17,0) initial dcl 3-27 term_sct_index internal static fixed bin(17,0) initial dcl 3-27 timer_runout_sct_index internal static fixed bin(17,0) initial dcl 3-27 tolts_file_util_$wdump 000000 constant entry external dcl 128 trouble_sct_index internal static fixed bin(17,0) initial dcl 3-27 undefined_fault_sct_index internal static fixed bin(17,0) initial dcl 3-27 undefined_pointer_sct_index internal static fixed bin(17,0) initial dcl 3-27 underflow_sct_index internal static fixed bin(17,0) initial dcl 3-27 wkp_sct_index internal static fixed bin(17,0) initial dcl 3-27 zerodivide_sct_index internal static fixed bin(17,0) initial dcl 3-27 NAMES DECLARED BY EXPLICIT CONTEXT. clean_up 001745 constant entry external dcl 338 ref 201 211 221 234 244 254 264 275 284 295 cr_event_chan 001551 constant entry external dcl 309 ref 230 240 250 260 271 gc_tod 002315 constant entry external dcl 382 get_delta 002322 constant label dcl 384 ref 388 init_time 002354 constant entry internal dcl 395 ref 218 387 tolts_init_ 000307 constant entry external dcl 86 NAMES DECLARED BY CONTEXT OR IMPLICATION. bit builtin function ref 390 hbound builtin function ref 357 lbound builtin function ref 357 multiply builtin function ref 390 STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 3070 3174 2470 3100 Length 3612 2470 104 401 400 2 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME tolts_init_ 208 external procedure is an external procedure. init_time internal procedure shares stack frame of external procedure tolts_init_. STORAGE FOR INTERNAL STATIC VARIABLES. LOC IDENTIFIER BLOCK NAME 000010 old_mme1 tolts_init_ STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME tolts_init_ 000100 slave_exec tolts_init_ 000103 code tolts_init_ 000104 data tolts_init_ 000116 date_str tolts_init_ 000120 delta tolts_init_ 000122 error tolts_init_ 000123 gc_date tolts_init_ 000124 i tolts_init_ 000126 cdtp tolts_init_ THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_in call_ext_out_desc call_ext_out return_mac mpfx2 ext_entry trunc_fx2 clock_mac THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. add_epilogue_handler_ com_err_ convert_date_to_binary_ date_time_ get_default_wdir_ get_process_id_ get_temp_segment_ hcs_$assign_channel hcs_$initiate iox_$close iox_$detach_iocb ipc_$create_ev_chn ipc_$decl_ev_call_chn ipc_$delete_ev_chn ipc_$set_call_prior mca_$detach_mca mtdsim_$epilogue mtdsim_$mme_fault pl1_date_ release_temp_segment_ sct_manager_$get sct_manager_$set tolts_alm_util_$ascii_to_bcd_ tolts_alrm_util_$gewake tolts_alrm_util_$quit tolts_ttyio_display_ tolts_ttyio_display_$nxt_line tolts_ttyio_end_ THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. tolts_infop LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 86 000303 157 000314 158 000316 159 000320 160 000345 161 000347 162 000373 163 000376 165 000377 166 000406 167 000412 168 000421 169 000422 170 000425 171 000435 175 000443 176 000453 177 000473 178 000475 179 000526 180 000531 182 000532 186 000535 187 000570 188 000603 189 000605 190 000613 192 000632 196 000636 197 000650 199 000667 200 000671 201 000715 202 000721 203 000724 208 000725 209 000742 210 000744 211 000770 212 000774 213 000777 218 001000 219 001002 220 001004 221 001030 222 001034 223 001037 229 001040 230 001045 232 001100 233 001102 234 001104 235 001110 240 001111 242 001144 243 001146 244 001150 245 001154 250 001155 252 001210 253 001212 254 001214 255 001220 260 001221 262 001254 263 001256 264 001260 265 001264 271 001265 273 001320 274 001322 275 001324 276 001330 281 001331 282 001344 283 001346 284 001350 285 001354 290 001355 291 001363 292 001376 293 001400 294 001402 295 001426 298 001432 299 001500 300 001504 302 001536 304 001542 309 001543 311 001556 313 001560 314 001571 315 001573 316 001575 317 001624 319 001625 320 001633 321 001652 322 001654 323 001656 324 001702 326 001703 327 001712 328 001714 329 001716 330 001742 333 001743 338 001744 342 001752 344 001767 345 001774 347 002010 349 002025 351 002042 353 002057 355 002074 357 002111 358 002117 359 002126 360 002130 361 002142 364 002147 367 002151 369 002206 370 002215 371 002225 372 002240 374 002245 376 002272 378 002311 382 002312 384 002322 386 002330 387 002332 388 002334 390 002335 391 002353 395 002354 399 002356 400 002375 401 002427 402 002453 403 002460 ----------------------------------------------------------- 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