COMPILATION LISTING OF SEGMENT fnp_init Compiled by: Multics PL/I Compiler, Release 32f, of October 9, 1989 Compiled at: Bull HN, Phoenix AZ, System-M Compiled on: 11/11/89 0948.4 mst Sat Options: optimize map 1 /****^ *********************************************************** 2* * * 3* * Copyright, (C) BULL HN Information Systems Inc., 1989 * 4* * * 5* * Copyright, (C) Honeywell Bull Inc., 1987 * 6* * * 7* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 8* * * 9* * Copyright (c) 1972 by Massachusetts Institute of * 10* * Technology and Honeywell Information Systems, Inc. * 11* * * 12* *********************************************************** */ 13 14 15 16 17 /****^ HISTORY COMMENTS: 18* 1) change(88-06-14,Berno), approve(88-07-13,MCR7928), 19* audit(88-06-14,Parisek), install(88-07-19,MR12.2-1061): 20* Add support for the uncp multiplexer to implement the DSA gateway 21* interface. 22* 2) change(89-03-20,Parisek), approve(89-06-01,MCR8110), 23* audit(89-10-09,Farley), install(89-10-25,MR12.3-1100): 24* Add support of protocol mpx. 25* END HISTORY COMMENTS */ 26 27 28 /* format: style4,delnl,insnl,tree,ifthenstmt,indnoniterend */ 29 fnp_init: 30 procedure; /* FNP initialization for hardcore */ 31 32 /* extracted from fnp_init on 5/11/76 by Robert S. Coren */ 33 /* Modified 9/12/78 by J. Stern to initialize tty_buf, tty_area, and tty_tables */ 34 /* Modified January 1980 by C. Hornig for MCM tracing */ 35 /* Modified April 1981 by Chris Jones for io_manager conversion */ 36 /* Modified February 1982 by C. Hornig for MR10 io_manager */ 37 /* Modified November 1982 by Robert Coren to explicitly clear dn355_mailbox */ 38 /* Modified 83-12-14 BIM to leave iom_manager assignment for FNP bootload time. */ 39 /* Modified 84-07-09 MMP (and BIM) to insert model in prph fnp card. */ 40 /* Modified 1984-07-30 BIM for paged mode IOM. */ 41 /* Modified 1984-10-18 BIM to abs_wire tty_buf. *BLUSH!* */ 42 /* Modified November 1984 by Robert Coren to initialize tty_area_lock.event. */ 43 /* UNCP MPX */ 44 /* Report modifications for the Datanet 7100, August 85 */ 45 46 /**** NOTE: two undocumented parameters are checked here: 47* 48* dfnp turns on dn355_data.debug_stop, 49* tfnp turns on dn533_data.trace. 50* 51* See the code of fnp_util and fnp_multiplexer to see what they do. */ 52 53 54 dcl astep pointer; 55 dcl i fixed bin; 56 dcl j fixed bin; 57 dcl bufsize fixed bin; 58 dcl cptr ptr; 59 dcl prot_ptr ptr; 60 dcl p ptr; 61 dcl tsdw fixed bin (71); 62 dcl tty_area_size fixed bin (18); 63 dcl code fixed bin (35); 64 dcl cl fixed bin; 65 dcl ptp pointer; 66 dcl modelx fixed bin (17); 67 dcl uncp_fnp_configured bit (1); 68 69 dcl syserr entry options (variable); 70 dcl syserr$error_code entry options (variable); 71 dcl config_$find_2 entry (character (4) aligned, character (4) aligned, pointer); 72 dcl config_$find_parm entry (char (*), ptr); 73 dcl make_sdw$unthreaded entry (fixed bin (18), fixed bin (71), ptr, ptr); 74 dcl pc_abs$wire_abs entry (ptr, fixed bin, fixed bin, fixed bin (35)); 75 dcl pmut$swap_sdw entry (ptr, ptr); 76 dcl get_fnp_name_ entry (fixed bin) returns (char (32)); 77 dcl tty_space_man$get_perm_space entry (fixed bin, ptr); 78 79 dcl slt$ external; 80 dcl sys_info$page_size fixed bin external; 81 82 dcl (addr, addrel, bin, currentsize, divide, empty, hbound, lbound, 83 mod, null, pointer, ptr, rel, segno, size, string, substr, unspec) builtin; 84 85 dcl 1 prot_parm aligned based (prot_ptr), 86 2 name char (4), 87 2 size fixed bin; 88 89 dcl 1 tty_parm aligned based (cptr), 90 2 name char (4), 91 2 size fixed bin; 92 93 dcl dn355_mailbox$ fixed bin ext; 94 95 dcl 1 dn355mbx_array (max_no_355s) based (addr (dn355_mailbox$)) aligned, 96 2 actual_mbx (192) fixed bin (35); /* allow 300(8) per mbx */ 97 98 dcl tty_area area (tty_area_size) based (addr (tty_area$)); 99 dcl tty_area$ external; 100 101 declare FNP_CONFIG_EVENT char (4) aligned init ("fnpc"); 102 103 /* CONSTANTS */ 104 105 dcl DEFAULT_BUFSIZE fixed bin int static options (constant) init (5120); 106 dcl MAX_PROT_CHNLS fixed bin int static options (constant) init (128); 107 dcl MIN_BUFSIZE fixed bin int static options (constant) init (256); 108 dcl TTY_PERM_SPACE fixed bin int static options (constant) init (2048); 109 dcl UNCP_CQ_SIZE fixed bin int static options (constant) init (2000); 110 dcl EXPECTED_FIELDS fixed bin int static options (constant) init (5); 111 dcl PAGE fixed bin int static options (constant) init (1024); 112 dcl WORD15 fixed bin int static options (constant) init (15); 113 dcl BIT36 fixed bin int static options (constant) init (36); 114 dcl TRACE_INDEX bit (36) int static options (constant) init ("000000000001"b3); 115 116 117 118 ttybp = addr (tty_buf$); /* get ptrs to tty_buf and dn355_data */ 119 infop = addr (dn355_data$); 120 121 /* allocate and setup tty_buf now. */ 122 123 call config_$find_parm ("ttyb", cptr); /* get ptr to ttyb parameter */ 124 if cptr = null 125 then bufsize = DEFAULT_BUFSIZE; /* default size of tty_buf is 5K */ 126 else bufsize = tty_parm.size; /* unless TTYB nnnn was given */ 127 sltp = addr (slt$); 128 sltep = addr (slt.seg (segno (ttybp))); 129 130 cl = divide (bufsize + sys_info$page_size - 1, sys_info$page_size, 18, 0); 131 132 slte_uns.bit_count = cl * BIT36 * PAGE; 133 slte_uns.max_length, slte_uns.cur_length = cl; 134 slte_uns.wired = "0"b; /* make_sdw will not wire the right way */ 135 136 call make_sdw$unthreaded (segno (ttybp), tsdw, astep, ptp); 137 call pc_abs$wire_abs (astep, 0, cl, code); 138 if code ^= 0 then call syserr$error_code (CRASH, code, "fnp_init: Unable to abs_wire tty_buf."); 139 140 call pmut$swap_sdw (ttybp, addr (tsdw)); /* swap in the sdw setup by get_main */ 141 begin; 142 declare tty_buf_pages (slte_uns.cur_length, 1024) bit (36) aligned based (ttybp); 143 tty_buf_pages = ""b; 144 end; 145 146 tty_buf.absorig = sys_info$page_size * FIRST_TTY_BUF_PAGEX; 147 /* origin in IO segment */ 148 tty_buf.lct_ptr = null; 149 150 p = addr (tty_buf.free_space); /* get ptr to start of free space */ 151 152 /**** tty_buf is not at location 0 of the I/O segment */ 153 154 i = bin (rel (p), 18); /* mod pointer to next 16 words */ 155 156 string (tty_buf.trace) = ""b; 157 call config_$find_parm ("ttyt", cptr); /* need a trace table be allocated */ 158 if cptr ^= null () then do; 159 i = i + mod (i, 2); /* must be at even word */ 160 trace_array_ptr = pointer (ttybp, i); 161 trace_array.num_entries = tty_parm.size; 162 trace_array.idx = TRACE_INDEX; 163 tty_buf.trace.data_offset = rel (trace_array_ptr); 164 i = bin (rel (addrel (trace_array_ptr, currentsize (trace_array)))); 165 end; 166 167 i = i + WORD15; 168 i = i - mod (i, WORD15+1); 169 p = ptr (p, i); 170 tty_buf.borig, tty_buf.free = rel (p); /* free list of blocks starts here */ 171 172 tty_buf.bleft = bufsize - bin (tty_buf.borig); 173 if tty_buf.bleft < MIN_BUFSIZE 174 then call syserr (CRASH, "fnp_init: Less than 256 words of free space in tty_buf: ^d", tty_buf.bleft); 175 free_blockp = p; 176 free_block.next = "0"b; /* one block */ 177 free_block.size = tty_buf.bleft; 178 179 tty_buf.tty_area_lock.event = TTY_AREA_LOCK_EVENT; 180 181 /* initialize tty_area */ 182 183 tty_area_size = get_seg_size (addr (tty_area$)); 184 tty_area = empty (); 185 186 /* initialize tty_tables segment */ 187 188 ttytp = addr (tty_tables$); 189 tty_tables_hdr.event = tty_ev; /* init wait event for tty_tables lock */ 190 tty_tables_hdr.table_area_size = get_seg_size (ttytp) - currentsize (tty_tables_hdr); 191 tty_tables_hdr.table_area = empty (); /* init table area */ 192 193 /* search for protocol "prot" parameter in the config deck then do 194* allocation/initialization of protocol_data if one is found */ 195 196 call config_$find_parm ("prot", prot_ptr); /* get ptr to PROT parameter */ 197 if prot_ptr = null /* site not running "protocol_mpx" software */ 198 then datanet_info.protocol_datap = null; 199 else do; 200 if prot_parm.size > MAX_PROT_CHNLS then 201 call syserr (CRASH, "fnp_init: The number of configured protocol channels of ^d^/^-exceeds the maximum allowed of ^d.", 202 prot_parm.size, MAX_PROT_CHNLS); 203 else protocol_channels = prot_parm.size; 204 call tty_space_man$get_perm_space (size (protocol_data), protocol_data_ptr); 205 protocol_data.max_channels = protocol_channels; 206 datanet_info.protocol_datap = protocol_data_ptr; 207 end; 208 209 210 /* read FNP cards and do init */ 211 212 tty_buf.fnp_config_flags (*) = "0"b; /* start with no fnps configured */ 213 datanet_info.configuration_lock.pid = ""b; 214 datanet_info.configuration_lock.event = unspec (FNP_CONFIG_EVENT); 215 datanet_info.configuration_lock.flags = "0"b; 216 uncp_fnp_configured = "0"b; 217 do i = 1 to max_no_355s; /* set up la indices */ 218 fnpp = addr (datanet_info.per_datanet (i)); 219 fnp_info.mbx_pt = null; /* start null */ 220 fnp_info.lcte_ptr = null; 221 do j = lbound(fnp_info.lsla_idx, 1) to hbound(fnp_info.lsla_idx, 1); 222 /* initialize HSLA/LSLA indices */ 223 if j <= hbound(fnp_info.hsla_idx, 1) then 224 fnp_info.hsla_idx (j) = -1; 225 fnp_info.lsla_idx (j) = -1; 226 end; 227 228 mbxp = addr (dn355mbx_array (i)); /* get addr of this mbx */ 229 unspec (datanet_mbx) = ""b; /* make sure whole mailbox starts out 0 */ 230 231 prph_fnp_cardp = null (); 232 call config_$find_2 ("prph", "fnp" || substr (get_fnp_name_ (i), 1, 1), prph_fnp_cardp); 233 if prph_fnp_cardp ^= null () then do; 234 if prph_fnp_card.n_fields ^= EXPECTED_FIELDS | (prph_fnp_card.field_type (5) ^= CONFIG_STRING_TYPE) 235 | (prph_fnp_card.state ^= "on" & prph_fnp_card.state ^= "off") 236 then call syserr (CRASH, "fnp_init: Invalid state on prph ^a card.", prph_fnp_card.name); 237 238 do modelx = 1 to hbound (fnp_models, 1) while (prph_fnp_card.model ^= fnp_models (modelx)); 239 end; 240 if modelx > hbound (fnp_models, 1) | ^supported_fnp (modelx) 241 then call syserr (CRASH, "fnp_init: Invalid model # (^d) on prph ^a card.", 242 prph_fnp_card.model, prph_fnp_card.name); 243 if modelx = DN7100 then uncp_fnp_configured = "1"b; 244 245 fnpp = addr (datanet_info.per_datanet (i)); 246 tty_buf.fnp_config_flags (i) = "1"b; /* its in the config deck */ 247 fnp_info.available = prph_fnp_card.state = "on"; 248 fnp_info.mbx_pt = mbxp; /* place ptr to mbx in per dn slot */ 249 fnp_info.fnp_number = i; 250 fnp_info.fnp_tag = substr (get_fnp_name_ (i), 1, 1); 251 fnp_info.ptx = -1; /* not yet known */ 252 fnp_info.ptp = null (); /* don't allocate until/unless loaded */ 253 datanet_info.no_of_355s = datanet_info.no_of_355s + 1; 254 255 call io_chnl_util$iom_to_name (prph_fnp_card.iom, (prph_fnp_card.chan), fnp_info.io_chanid, code); 256 if code ^= 0 then call syserr (CRASH, "fnp_init: code ^o from io_chnl_util$iom_to_name.", code); 257 /* something wrong here... */ 258 259 end; 260 end; 261 if datanet_info.no_of_355s = 0 then call syserr (ANNOUNCE, "fnp_init: Warning: no FNP's configured."); 262 263 /* Add for the Datanet 7100. */ 264 265 if uncp_fnp_configured then do; 266 call tty_space_man$get_perm_space (TTY_PERM_SPACE, datanet_info.uncp_bufp); 267 268 uncpbp = datanet_info.uncp_bufp; 269 uncp_buf.cq_max_size = UNCP_CQ_SIZE; 270 uncp_buf.cq_free = uncp_buf.cq_max_size; /* Start of the free space */ 271 uncp_buf.cq_hbound = uncp_buf.cq_max_size - 1; 272 /* The circular queue is a table (0:cq_max_size - 1) */ 273 end; 274 else datanet_info.uncp_bufp = null (); 275 276 cptr = null (); 277 call config_$find_parm ("tfnp", cptr); 278 datanet_info.trace = (cptr ^= null ()); 279 cptr = null (); 280 call config_$find_parm ("dfnp", cptr); 281 datanet_info.debug_stop = (cptr ^= null ()); 282 283 return; 284 285 get_seg_size: 286 proc (segp) returns (fixed bin (18)); /* gets segment sizes from the slt */ 287 288 dcl segp ptr; /* ptr to seg whose size is wanted */ 289 dcl seg_no fixed bin (18); 290 291 292 seg_no = segno (segp); 293 sltp = addr (slt$); 294 sltep = addr (slt.seg (seg_no)); 295 296 return (slte_uns.max_length * sys_info$page_size); 297 298 end get_seg_size; 299 1 1 /* BEGIN INCLUDE FILE ... tty_buf.incl.pl1 */ 1 2 1 3 /* Date Last Modified and Reason 1 4* Created 04/19/77 by J. Stern (from part of tty.incl.pl1) 1 5* Modified January 1978 by Robert Coren and Larry Johnson for variable-size buffers 1 6* Modified 2/6/78 by Robert Coren to make circular_queue size settable 1 7* Modified Aug 78 by J. Nicholls to move the buffer block format to a file of its own 1 8* and wtcb to its own plus other modification for ring 0 multiplexing, tty_buffer_block.incl.pl1 1 9* Modified 7/17/79 by B. Greenberg for echo negotiation meters. 1 10* Modified November 1979 by C. Hornig for MCS tracing. 1 11* Modified December 1979 by Robert Coren to add FNP channel lock meter 1 12* Modified February 1980 by Robert Coren to remove all references to circular buffer 1 13* Modified March 1980 by Robert Coren to reorganize metering information 1 14* Modified December 1980 by Robert Coren to add FNP-specific events 1 15* Modified 24 March 1982, W. Olin Sibert, to add mcs_timer support, recoverable_error_severity 1 16* Modified November 1984 by Robert Coren to add tty_area_lock 1 17**/ 1 18 1 19 dcl ttybp ptr, 1 20 tty_buf$ ext static, /* tty buffer segment */ 1 21 tty_ev fixed bin int static options (constant) init (57), /* event used for wait and notify */ 1 22 abs_buf_limit fixed bin (18) static options (constant) init (64), /* minimum number of words we will leave free */ 1 23 input_bpart fixed bin (18) static options (constant) init (2), /* fraction of bleft we will allow for input */ 1 24 output_bpart fixed bin (18) static options (constant) init (4); /* fraction of bleft we will allow for output */ 1 25 1 26 1 27 dcl qblock_size fixed bin int static options (constant) init (16); /* size in words of a delay queue block */ 1 28 dcl bsizec fixed bin int static options (constant) init (60); /* number of characters in smallest buffer */ 1 29 dcl buf_per_second fixed bin int static options (constant) init (10); /* for figuring out max. buffer size based on speed */ 1 30 1 31 dcl FNP_DUMP_PATCH_EVENT fixed bin int static options (constant) init (58); 1 32 dcl FNP_METER_EVENT fixed bin int static options (constant) init (59); 1 33 dcl TTY_AREA_LOCK_EVENT bit (36) aligned int static options (constant) init ("74"b3); 1 34 1 35 dcl 1 tty_buf aligned based (ttybp), /* declaration of tty buffer seg */ 1 36 2 slock bit (36), /* per system lock */ 1 37 2 absorig fixed bin (24), /* abs address of this seg */ 1 38 2 borig bit (18), /* index of start of buffer area */ 1 39 2 bleft fixed bin (18), /* words left in pool */ 1 40 2 free bit (18), /* pointer to start of free pool */ 1 41 2 fnp_config_flags (8) bit (1) unal, /* flag(i) ON if fnp(i) configured */ 1 42 2 padb1 bit (28) unaligned, 1 43 2 lct_ptr ptr, /* pointer to logical channel table */ 1 44 1 45 2 nrawread fixed bin (35), /* number of raw chars input, total */ 1 46 2 nrawwrite fixed bin (35), /* number of raw characters output */ 1 47 2 ninchars fixed bin (35), /* total input chars after conversion */ 1 48 2 noutchars fixed bin (35), /* total output chars before conversion */ 1 49 2 readblocked fixed bin (35), /* number of times go input blocked */ 1 50 2 nblocked fixed bin (35), /* number of times process output blocked */ 1 51 2 minbuf fixed bin (18), /* min output buffer size */ 1 52 2 totbuf fixed bin (35), /* divide by nblocked to get ave buffer size */ 1 53 1 54 2 preconverted fixed bin (35), /* number of converted chars held in tty_buf */ 1 55 2 input_restart fixed bin, /* number of times tty_read had to start over */ 1 56 2 output_restart fixed bin, /* number of times tty_write has had to start over */ 1 57 2 output_buffer_overflow fixed bin, /* number of times tty_write has run out of buffers */ 1 58 2 read_time fixed bin (71), /* total time spent in tty_read */ 1 59 2 write_time fixed bin (71), /* total time spent in tty_write */ 1 60 1 61 2 read_calls fixed bin (35), /* number of calls to tty_read */ 1 62 2 write_calls fixed bin (35), /* number of calls to tty_write */ 1 63 2 bfx fixed bin, /* used in calls to iobm */ 1 64 2 nquits fixed bin (35), /* number of quits */ 1 65 2 space_needed_data, 1 66 3 space_needed bit (1) unal, /* space_needed bit on in at least 1 lcte */ 1 67 3 space_needed_calls fixed bin (34) unal, /* meter of uses of this facility */ 1 68 2 space_lock_count fixed bin (35), /* count of times tty_buf.slock locked */ 1 69 2 space_lock_wait_count fixed bin (35), /* count of times necessary to loop to lock it */ 1 70 2 space_lock_wait_time fixed bin (35), /* total time looped trying to lock it */ 1 71 1 72 2 alloc_calls fixed bin (35), /* total number of allocations performed in tty_buf */ 1 73 2 free_calls fixed bin (35), /* total number of freeings in tty_buf */ 1 74 2 alloc_time fixed bin (35), /* time spent masked in tty_space_man$get entries */ 1 75 2 free_time fixed bin (35), /* time spent masked in tty_space_man$free entries */ 1 76 2 total_alloc_steps fixed bin (35), /* number of steps thru free chain while doing above */ 1 77 2 alloc_failures fixed bin (35), /* number of unsuccessful attempts to allocate space */ 1 78 2 cumulative_input_space fixed bin (71), /* cumulative amount of space allocated for input */ 1 79 1 80 2 cumulative_output_space fixed bin (71), /* cumulative amount of space allocated for output */ 1 81 2 cumulative_control_space fixed bin (71), /* cumulative amount of space allocated by tty_space_man$get_space */ 1 82 2 input_space_updates fixed bin (35), /* number of increments to cumulative_input_space */ 1 83 2 output_space_updates fixed bin (35), /* number of increments to cumulative_output_space */ 1 84 2 control_space_updates fixed bin (35), /* number of increments to cumulative_control_space */ 1 85 2 minimum_free_space fixed bin (18), /* smallest amount of free space ever available */ 1 86 1 87 2 current_input_space fixed bin (18), /* amount of space currently allocated for input */ 1 88 2 current_output_space fixed bin (18), /* amount of space currently allocated for output */ 1 89 2 current_control_space fixed bin (18), /* amount of space currently allocated by get_space */ 1 90 2 tty_lock_calls fixed bin (35), /* number of calls to tty_lock$lock entries */ 1 91 2 found_channel_locked fixed bin (35), /* number of times tty_lock found channel already locked */ 1 92 2 max_wait_time fixed bin (35), /* longest time waited for any channel lock */ 1 93 2 total_wait_time fixed bin (71), /* total amount of time spent waiting for channel locks */ 1 94 1 95 2 echo_neg_time fixed bin (71), /* cumulative time spent doing echo negotiation */ 1 96 2 echo_neg_interrupts fixed bin (35), /* Echo-negotiated shipments */ 1 97 2 echo_neg_r0_chars fixed bin (35), /* Chars echoed by ring 0 */ 1 98 2 echo_neg_mux_chars fixed bin (35), /* Chars echoed by mux */ 1 99 2 echo_neg_sndopt_restarts fixed bin (35), /* Echo reinits */ 1 100 2 echo_neg_mux_nonecho fixed bin (35), 1 101 2 echo_neg_entries fixed bin (35), /* Entries into negotiate */ 1 102 1 103 2 echo_neg_mux_inhibit bit (1) aligned, /* For testing */ 1 104 2 n_queued_interrupts fixed bin (35), /* number of interrupts queued by tty_lock */ 1 105 2 trace unaligned, /* tracing information */ 1 106 3 flags, 1 107 4 enable bit, /* global tracing control */ 1 108 4 default_mode bit, /* whether to trace channels by default */ 1 109 4 read bit, /* read */ 1 110 4 write bit, /* write */ 1 111 4 data bit, /* buffers on reads and writes */ 1 112 4 control bit, /* control, priv_control, and hpriv_control */ 1 113 4 modes bit, /* (get set check)_modes */ 1 114 4 interrupt bit, /* interrupt, interrupt_later */ 1 115 4 init bit, /* init_multiplexer, terminate_multiplexer */ 1 116 4 start bit, /* start, stop */ 1 117 4 shutdown bit, /* shutdown */ 1 118 4 space_man bit, /* tty_space_man$* */ 1 119 4 pad_flags bit (6), 1 120 3 data_offset bit (18), /* offset of tracing data */ 1 121 1 122 2 recoverable_error_severity fixed bin, /* Syserr severity for recoverable MCS errors */ 1 123 1 124 2 timer_lock bit (36) aligned, /* Lock owned by mcs_timer */ 1 125 2 next_timer_offset bit (18) aligned, /* Offset of next timer to come due */ 1 126 2 timer_count fixed bin, /* Number of timers outstanding */ 1 127 2 timer_process bit (36) aligned, /* Who is doing timers? */ 1 128 1 129 2 timer_ev_chn fixed bin (71), /* How get get him */ 1 130 2 timer_lock_wait_time fixed bin (71), /* CPU time spent spinning on timer lock */ 1 131 1 132 2 timer_lock_count fixed bin (35), /* Number of times timer lock locked */ 1 133 2 timer_lock_wait_count fixed bin (35), /* Number of times imer lock waited on */ 1 134 2 timer_call_time fixed bin (71), /* CPU time spent in call side timer operations */ 1 135 1 136 2 timer_polling_time fixed bin (71), /* CPU time spent polling (including channel_manager) */ 1 137 2 timer_set_calls fixed bin (35), /* Number of calls to mcs_timer$set, set_wired */ 1 138 2 timer_reset_calls fixed bin (35), /* Number of calls to mcs_timer$reset, reset_wired */ 1 139 1 140 2 timer_change_calls fixed bin (35), /* Number of calls to mcs_timer$change, change_wired */ 1 141 2 timer_poll_calls fixed bin (35), /* Number of calls to mcs_timer$poll */ 1 142 2 timer_error_calls fixed bin (35), /* Number of mcs_timer calls ending with recoverable errors */ 1 143 2 timer_duplicate_pollings fixed bin (35), /* Number of timer polling found in progress on other CPU */ 1 144 1 145 2 tty_area_lock like hc_fast_lock, /* to prevent contention in allocating/freeing in tty_area */ 1 146 1 147 2 pad2 (13) fixed bin (35), 1 148 1 149 2 free_space fixed bin; /* start of free space region */ 1 150 1 151 2 1 /* BEGIN INCLUDE FILE...hc_fast_lock.incl.pl1 */ 2 2 2 3 /* Created November 1984 by Robert Coren to replace hc_lock.incl.pl1 */ 2 4 2 5 /* Lock format suitable for use with lock$lock_fast, unlock_fast */ 2 6 2 7 /* format: style3 */ 2 8 2 9 declare lock_ptr pointer; 2 10 declare 1 hc_fast_lock aligned based (lock_ptr), 2 11 2 pid bit (36) aligned, /* holder of lock */ 2 12 2 event bit (36) aligned, /* event associated with lock */ 2 13 2 flags aligned, 2 14 3 notify_sw bit (1) unaligned, 2 15 3 pad bit (35) unaligned; /* certain locks use this pad, like dirs */ 2 16 2 17 /* END INCLUDE FILE...hc_fast_lock.incl.pl1 */ 1 152 1 153 1 154 /* END INCLUDE FILE ... tty_buf.incl.pl1 */ 300 3 1 /* BEGIN INCLUDE FILE ... uncp_buf.incl.pl1 */ 3 2 3 3 3 4 /****^ HISTORY COMMENTS: 3 5* 1) change(88-06-15,Berno), approve(88-07-13,MCR7928), 3 6* audit(88-06-15,Parisek), install(88-07-19,MR12.2-1061): 3 7* Implement the uncp multiplexer interface for the DSA gateway protocol. 3 8* END HISTORY COMMENTS */ 3 9 3 10 /* Copied from tty_buf.incl.pl1 June 17, 1981 by Jacke Barre to install 3 11* the circular queue in a independent segment (uncp_buf). 3 12* In MR9.0 there is no longer a circular queue in tty_buf. 3 13* Modified in August 1985 for adaptation to MR11.0. 3 14**/ 3 15 3 16 dcl uncpbp ptr; 3 17 3 18 3 19 dcl 1 uncp_buf aligned based (uncpbp), /* declaration of uncp buffer area */ 3 20 2 absolute_orig fixed bin (24), /* abs address of this area */ 3 21 2 cq_hbound fixed bin (18), /* upper bound for circular_queue array */ 3 22 2 circular_queue_size fixed bin (35), /* number of words used in circular queue */ 3 23 2 queue_ave_cnt fixed bin (18), /* divide above by this to get ave queue size */ 3 24 2 queue_full_cnt fixed bin (18), /* number of times circular queue full */ 3 25 2 cq_next fixed bin (18), /* next free word in circular queue */ 3 26 2 cq_free fixed bin (18), /* number of free words in circular queue */ 3 27 2 cq_max_size fixed bin (17), /* size in words of circular_queue */ 3 28 2 cq_lock bit (36), /* lock for circular buffer */ 3 29 2 circular_queue (0: 1999) fixed bin (18); /* circular queue that DN7100 writes into */ 3 30 3 31 /* END INCLUDE FILE ... uncp_buf.incl.pl1 */ 301 4 1 /* Begin include file mcs_trace_data.incl.pl1 */ 4 2 4 3 dcl (trace_array_ptr, trace_entry_ptr) pointer; 4 4 dcl trace_array_size uns fixed bin (18); 4 5 4 6 dcl 1 trace_array aligned based (trace_array_ptr), /* trace control information */ 4 7 2 num_entries uns fixed bin (18), /* number of entries in trace table */ 4 8 2 idx bit (36) aligned, /* index of next entry to use */ 4 9 2 entry (trace_array_size refer (trace_array.num_entries)) aligned like trace_entry; 4 10 4 11 dcl 1 trace_entry aligned based (trace_entry_ptr), 4 12 2 time fixed bin (71), /* time sample taken */ 4 13 2 devx unsigned fixed bin (18) unaligned, /* channel traced */ 4 14 2 message char (54) unaligned; 4 15 4 16 /* End include file mcs_trace_data.incl.pl1 */ 302 5 1 /* BEGIN INCLUDE FILE ... tty_buffer_block.incl.pl1 */ 5 2 5 3 5 4 5 5 /****^ HISTORY COMMENTS: 5 6* 1) change(88-06-15,Berno), approve(88-07-13,MCR7928), 5 7* audit(88-06-15,Parisek), install(88-07-19,MR12.2-1061): 5 8* Add data needed for the uncp multiplexer (DSA gateway) interface 5 9* implementation. 5 10* END HISTORY COMMENTS */ 5 11 5 12 5 13 /* 5 14* Separated from tty_buf.incl.pl1 aug 78 by J. Nicholls 5 15* Modified May 1979 by Larry Johnson to add max_buffer_tally array and to use unsigned variables. 5 16* Reported in February 1982 the modifications to add the "turn" bit in flags. 5 17**/ 5 18 5 19 dcl blockp ptr; /* pointer which block entry is based on */ 5 20 dcl free_blockp ptr; /* pointer to head of free space chain */ 5 21 5 22 5 23 dcl 1 free_block aligned based (free_blockp), /* format of start of free block */ 5 24 2 next bit (18), /* foward pointer to next free block */ 5 25 2 size fixed bin; /* number of words in this block */ 5 26 5 27 5 28 dcl 1 buffer based (blockp) aligned, /* buffer definition */ 5 29 2 next fixed bin (18) unal uns, /* addr of next buffer */ 5 30 2 flags unaligned, 5 31 3 end_of_page bit (1) unaligned, /* buffer contains end of page */ 5 32 3 converted bit (1) unaligned, /* buffer contains converted input */ 5 33 3 break bit (1) unaligned, /* buffer contains break character */ 5 34 3 mark bit (1) unaligned, /* buffer contains first character after "mark" */ 5 35 3 turn bit (1) unaligned, /* ON if the turn must be sent */ 5 36 3 pad bit (1) unaligned, 5 37 2 size_code fixed bin (3) unal uns, /* (nwords/16) - 1 */ 5 38 2 tally fixed bin (9) unal uns, /* number of characters in buffer */ 5 39 2 chars (0:59) char (1) unaligned; /* room for 60 data characters */ 5 40 5 41 /* the following array, if indexed by buffer.size_code will give maximum number of characters permitted in that buffer */ 5 42 5 43 dcl max_buffer_tally (0:7) fixed bin int static options (constant) init (60, 124, 188, 252, 316, 380, 444, 508); 5 44 5 45 /* END INCLUDE FILE ... tty_buffer_block.incl.pl1 */ 303 6 1 /* BEGIN INCLUDE FILE ... tty_tables.incl.pl1 */ 6 2 6 3 /* Created 3/14/77 by J. Stern */ 6 4 6 5 6 6 dcl tty_tables$ ext static; /* table storage segment */ 6 7 6 8 dcl 1 tty_tables_hdr aligned based (ttytp), /* header of tty_tables segment */ 6 9 2 lock bit (36) aligned, /* lock for modifications */ 6 10 2 event fixed bin (35), /* event to wait for if locked */ 6 11 2 notify_reqd bit (1) aligned, /* if ON, notify requested after unlocking */ 6 12 2 table_area_size fixed bin (18), /* size of table allocation area */ 6 13 2 per_type_data (6), /* data kept on per table type basis */ 6 14 3 first_table bit (18) aligned, /* rel ptr to first table in list */ 6 15 3 count fixed bin, /* count of tables in list */ 6 16 2 table_area area (tty_tables_hdr.table_area_size); /* table allocation area */ 6 17 6 18 dcl ttytp ptr; /* ptr to tty_tables_hdr */ 6 19 6 20 dcl 1 table_descriptor aligned based (tdp), /* entry in threaded list of tables */ 6 21 2 pattern bit (36) aligned, /* = (18) "10"b */ 6 22 2 type fixed bin, /* table type */ 6 23 2 next_table bit (18) aligned, /* rel ptr to next table in list */ 6 24 2 prev_table bit (18) aligned, /* rel ptr to previous table in list */ 6 25 2 ref_count fixed bin, /* reference count (times added minus times deleted) */ 6 26 2 len fixed bin, /* table length in bits */ 6 27 2 table_contents bit (table_alloc_len refer (table_descriptor.len)); 6 28 6 29 dcl tdp ptr; /* ptr to table_descriptor */ 6 30 dcl table_alloc_len fixed bin; /* table length used to allocate new table_descriptor */ 6 31 6 32 6 33 /* END INCLUDE FILE ... tty_tables.incl.pl1 */ 304 7 1 /* BEGIN INCLUDE FILE ... config_deck.incl.pl1 ... 11/13/80, W. Olin Sibert */ 7 2 7 3 dcl (configp, cardp) pointer; 7 4 dcl config_n_cards fixed bin; /* Number of cards used in config */ 7 5 dcl config_max_cards fixed bin; /* Max number of cards in config */ 7 6 7 7 dcl config_deck$ fixed bin external static; 7 8 7 9 dcl 1 config_deck aligned based (configp), 7 10 2 cards (config_n_cards) aligned like config_card, 7 11 2 pad_cards (config_max_cards - config_n_cards) aligned like config_card; 7 12 7 13 dcl 1 config_card aligned based (cardp), 7 14 2 word char (4) aligned, 7 15 2 data_field (14) bit (36) aligned, 7 16 2 type_word aligned like config_card_type_word; 7 17 7 18 dcl 1 config_card_type_word aligned based, 7 19 2 field_type (14) bit (2) unaligned, 7 20 2 pad1 bit (4) unaligned, 7 21 2 n_fields fixed bin (4) unsigned unaligned; 7 22 7 23 dcl (CONFIG_DECIMAL_TYPE init ("11"b), 7 24 CONFIG_OCTAL_TYPE init ("00"b), 7 25 CONFIG_SINGLE_CHAR_TYPE init ("01"b), 7 26 CONFIG_STRING_TYPE init ("10"b)) bit (2) aligned static options (constant); 7 27 7 28 dcl ZERO_CARD_WORD char (4) aligned internal static options (constant) init (""); 7 29 dcl FREE_CARD_WORD char (4) aligned internal static options (constant) init ("ÿÿÿÿ"); 7 30 7 31 dcl VALID_CARD_WORD_CHARACTERS char (38) internal static options (constant) init 7 32 ("abcdefghijklmnopqrstuvwxyz0123456789_."); /* lowercase letters, digits, period and underscore */ 7 33 7 34 dcl EMPTY_FIELD bit (36) aligned internal static options (constant) init ("777777777777"b3); 7 35 7 36 /* END INCLUDE FILE config_deck.incl.pl1 */ 305 8 1 /* BEGIN INCLUDE FILE ... config_prph_fnp_card.incl.pl1 BIM 1983 */ 8 2 /* format: style3 */ 8 3 8 4 dcl prph_fnp_cardp ptr; /* Pointer to a PRPH fnpx card. */ 8 5 8 6 dcl 1 prph_fnp_card based (prph_fnp_cardp) aligned, 8 7 /* PRPH fnpx card declaration */ 8 8 2 word char (4), /* "prph" */ 8 9 2 name char (4), /* "fnpX" */ 8 10 2 iom fixed bin (3), /* IOM number */ 8 11 2 chan fixed bin (8), /* channel number */ 8 12 2 model fixed bin, /* model number */ 8 13 2 state char (4) aligned, /* ON/OFF */ 8 14 2 pad (9) bit (36) aligned, 8 15 2 type_word aligned, 8 16 3 field_type (14) bit (2) unaligned, /* type of each field; see config_deck.incl.pl1 */ 8 17 3 pad1 bit (4) unaligned, 8 18 3 n_fields fixed bin (4) unsigned unaligned; 8 19 /* number of fields used on card */ 8 20 8 21 /* END INCLUDE FILE ... config_prph_fnp_card.incl.pl1 */ 306 9 1 /* BEGIN dn355_data.incl.pl1 */ 9 2 9 3 9 4 9 5 /****^ HISTORY COMMENTS: 9 6* 1) change(88-06-15,Berno), approve(88-07-13,MCR7928), 9 7* audit(88-06-15,Parisek), install(88-07-19,MR12.2-1061): 9 8* Add data needed for the uncp multiplexer (DSA gateway) interface 9 9* implementation. 9 10* 2) change(89-03-20,Parisek), approve(89-06-06,MCR8110), 9 11* audit(89-10-09,Farley), install(89-10-25,MR12.3-1100): 9 12* Add support of protocol mpx. 9 13* END HISTORY COMMENTS */ 9 14 9 15 9 16 /* Date Last Modified and Reason 9 17* 9 18* Created 07/25/74 by R. B. Snyder for new ttydim. 9 19* Modified 06/23/77 by J. Stern to add channel_work_reqd and cwork_count 9 20* Modified 08/14/78 by Robert Coren to remove devx_tab and invent PCBs 9 21* Modified 79 May 14 by Art Beattie to add fnp_mem_size 9 22* Modified December 1979 by Robert Coren to add FNP queue lock 9 23* Modified January 1980 by Larry Johnson to increase max number of FNPs to 8 9 24* Modified 02/12/80 by Robert Coren to add dcw_list_array_ptr 9 25* Modified 03/06/80 by Robert Coren to add some metering info 9 26* Modified 12/10/80 by Robert Coren to add get_meters_waiting flag 9 27* Modified 83-12-16 BIM to use a chanid instead of iom/channel fb's. 9 28* Modified 1984-07-26 BIM for paged iom. 9 29* Modified in September 1985 for the DN7100 version interim. 9 30**/ 9 31 9 32 /* LOCKING RULES: A fnp is locked by its LCTE unless its LCTE is uninitialized. 9 33* In that case, the configuration_lock must be held. 9 34* if tty_lock$lock_lcte returns io_no_permission, then the caller must 9 35* lock$lock_fast the configuration lock and retry the LCTE lock. If 9 36* the lcte is now initialized, too bad. Otherwise, the config lock protects. 9 37* 9 38* Configuration locking is interesting to init_multiplexer and 9 39* all of fnp t&d and reconfiguration. The guts of the multiplexer 9 40* pay no attention to it. Thus, if the LCTE can be locked, it MUST be 9 41* locked before changing the io_manager_assigned flag. */ 9 42 9 43 /* format: style4,delnl,insnl,^ifthendo */ 9 44 9 45 dcl max_no_355s fixed bin int static init (8) options (constant); 9 46 /* max no of 355s we can handle (arbitrary) */ 9 47 dcl dn355_data$ external fixed bin; 9 48 9 49 dcl infop pointer; 9 50 dcl fnpp ptr; 9 51 9 52 dcl 1 datanet_info aligned based (infop), 9 53 2 configuration_lock aligned, 9 54 3 pid bit (36) aligned, 9 55 3 event bit (36) aligned, 9 56 3 flags aligned, 9 57 4 notify_sw bit (1) unaligned, 9 58 4 pad bit (35) aligned, 9 59 2 no_of_355s fixed bin, /* no. of FNP's */ 9 60 2 trace bit (1) aligned, /* watch events on console */ 9 61 2 debug_stop bit (1) aligned, /* crash on errors */ 9 62 2 uncp_bufp ptr, /* pointer to the circular buffer */ 9 63 2 protocol_datap ptr, /* pointer to protocol_mpx data */ 9 64 2 pad1 (6) bit (36) aligned, 9 65 2 per_datanet (max_no_355s) aligned like fnp_info; /* data per datanet */ 9 66 9 67 dcl 1 fnp_info aligned based (fnpp), /* structure for each FNP */ 9 68 2 mbx_pt pointer, /* pointer to mailbox NULL if not in config */ 9 69 2 pcb_array_ptr pointer, /* pointer to array of physical channel blocks */ 9 70 2 dcw_list_array_ptr pointer, /* pointer to array of space reserved for output DCW lists */ 9 71 2 no_of_channels fixed bin, /* number of channels on this FNP */ 9 72 2 fnp_id, 9 73 3 fnp_tag char (1) unaligned, /* letter identifying FNP */ 9 74 3 fnp_number fixed bin (9) unsigned unaligned, /* sequence number of FNP */ 9 75 3 padc bit (18) unaligned, 9 76 2 io_chanid char (8) aligned, 9 77 2 io_manager_chx fixed bin (35), /* devx for DIA on iom */ 9 78 2 lsla_idx (0:5) fixed bin aligned, /* index into PCB array for lsla lines */ 9 79 2 hsla_idx (0:2) fixed bin aligned, /* index into PCB array for hsla lines */ 9 80 2 count fixed bin, /* number of items in delay queue */ 9 81 2 cur_ptr fixed bin, /* offset in tty_buf of next delay queue element */ 9 82 2 last_ptr fixed bin, /* offset in tty_buf of last delay queue element */ 9 83 2 bleft_355 fixed bin, /* number of free buffers in this 355 */ 9 84 2 flags, 9 85 3 work_reqd bit (1) unaligned, /* mailbox messages queued up */ 9 86 3 bootloading bit (1) unaligned, /* currently being bootloaded */ 9 87 3 running bit (1) unaligned, /* this FNP is running */ 9 88 3 wired bit (1) unaligned, /* bootload buffer is wired */ 9 89 3 dump_patch_in_progress bit (1) unaligned, /* a dump or patch order is in progress */ 9 90 3 level_3_pending bit (1) unaligned, /* level 3 interrupt pending */ 9 91 3 level_7_pending bit (1) unaligned, /* level 7 interrupt pending */ 9 92 3 dump_patch_disabled bit (1) unaligned, /* dump & patch orders disabled because of timeout */ 9 93 3 t_and_d_in_progress bit (1) unaligned, /* T & D using FNP */ 9 94 3 t_and_d_lev_3_occurred bit (1) unaligned, /* A level 3 occurred */ 9 95 3 t_and_d_lev_7_occurred bit (1) unaligned, 9 96 3 t_and_d_notify_requested bit (1) unaligned, 9 97 3 t_and_d_assigned bit (1) unaligned, /* AS has given fnp to process */ 9 98 3 get_meters_waiting bit (1) unaligned, /* waiting for meter copy to complete */ 9 99 3 padb bit (7) unaligned, 9 100 3 active_dial unaligned, 9 101 4 active_bit (15) bit (1) unaligned, /* ON if the process is active */ 9 102 2 lcte_ptr ptr, /* pointer to this FNP's LCT entry */ 9 103 2 astep ptr, /* pointer to aste of wired bootload buffer */ 9 104 2 boot_ev_chan fixed bin (71), /* event channel over which to signal bootload completion */ 9 105 2 boot_process_id bit (36), /* process that initiated bootload */ 9 106 2 version char (4), /* version id of core image */ 9 107 2 fnp_mem_size fixed bin (18) unsigned, /* memory size of this FNP in 18-bit words */ 9 108 2 queue_lock bit (36) aligned, /* lock for interrupt queue */ 9 109 2 dump_patch_lock bit (36), /* lock for fnp_dump or _patch operation */ 9 110 2 q_entries_made fixed bin (35), /* count of delay queue entries made */ 9 111 2 input_reject_count fixed bin, /* number of times input rejected */ 9 112 2 processed_from_q fixed bin (35), /* number of interrupts processed from queue */ 9 113 2 fnp_channel_locked fixed bin (35), /* number of times dn355 found per-FNP lock locked */ 9 114 2 input_data_transactions fixed bin (35), /* number of mailbox transactions for input */ 9 115 2 output_data_transactions fixed bin (35), /* number of mailbox transactions for output */ 9 116 2 input_control_transactions fixed bin (35), /* number of mailbox transactions for inbound control info */ 9 117 2 output_control_transactions fixed bin (35), /* number of mailbox transactions for outbound control info */ 9 118 2 cumulative_mbx_in_use fixed bin (35), /* cumulative count of number of outbound mailboxes in use */ 9 119 2 max_mbx_in_use fixed bin, /* maximum number of mailboxes in use at any given time */ 9 120 2 mbx_in_use_updated fixed bin (35), /* number of increments to cumulative_mbx_in_use */ 9 121 2 mbx_unavailable fixed bin (35), /* number of times had to queue mailbox transaction because none available */ 9 122 2 free_size fixed bin (35), /* cumulative amount of bleft_355 */ 9 123 2 free_count fixed bin, /* number of adds to above */ 9 124 2 fnp_space_restricted_output fixed bin (35), /* number of times available FNP space restricted amount of output sent */ 9 125 2 tandd_pcbx fixed bin, /* index of PCB for COLTS channel */ 9 126 2 n_pages_wired fixed bin, /* pages wired for loading */ 9 127 2 config_flags aligned, 9 128 3 available bit (1) unaligned, /* reconfig says "yes" */ 9 129 3 io_manager_assigned bit (1) unaligned, /* We have channel assigned to us */ 9 130 3 pad bit (34) unaligned, 9 131 2 uncp_pcbx1 fixed bin (17) unaligned, /* For the DN7100 */ 9 132 2 uncp_pcbx2 fixed bin (17) unaligned, /* For the DN7100 */ 9 133 2 ptx fixed bin, /* page table index, used only at bootload */ 9 134 2 ptp pointer unaligned; /* page table for this FNP */ 9 135 9 136 /**** The following named constants are used to lay out the 9 137* iom page tables. Each FNP has to have its own page 9 138* table because there is not enough room to have eight different 9 139* bootload images of 32 K and > 64 K of tty_buf 9 140* 9 141* THE MAX TTY BUF LENGTH IS 192 K words. We could have another 16 K 9 142* easily, and then after that it would get hard. */ 9 143 9 144 /**** The layout 9 145* 9 146* Page I/O address Memory address Comments 9 147* ---- ------ -------------- -------- 9 148* 0 0 xxxxxx invalid PTW 9 149* 1 2000 2000 write-enabled (mailbox) 9 150* 2 4000 4000 write-enabled (mailbox) 9 151* 3 6000 6000 write-enabled (mailbox) 9 152* 4 10000 as needed bootload image segment page 0 9 153* .... .... .... .... 9 154* 35 110000 as needed bootload image segment page 31 9 155* 36 112000 xxxxxx invalid PTW 9 156* ... .... .... .... 9 157* 63 160000 .... invalid PTW 9 158* 64 200000 as needed tty_buf page 0 9 159* ... .... .... .... 9 160* 127 260000 as needed tty_buf page 63 9 161* 255 ...... ..... tty_buf page 191 9 162**/ 9 163 9 164 /**** We assume that the page table starts at all zeros. */ 9 165 9 166 declare FIRST_BOOTLOAD_PAGEX fixed bin init (4) int static options (constant); 9 167 declare FIRST_TTY_BUF_PAGEX fixed bin init (64) int static options (constant); 9 168 9 169 /* End include file dn355_data.incl.pl1 */ 307 10 1 /* BEGIN INCLUDE FILE slt.incl.pl1 --- Last modified 2/76 SHW */ 10 2 10 3 /* Declarations for Segment Loading Table header and array. 10 4* 10 5* Used by Initialization and MST Checker subroutines */ 10 6 10 7 dcl sltp ptr, /* pointer to base of SLT segment */ 10 8 names_ptr ptr, /* pointer to base of SLT names segment */ 10 9 namep ptr, /* pointer to segment name list block */ 10 10 pathp ptr, /* pointer to segment's directory path name */ 10 11 aclp ptr; /* pointer to acl structure */ 10 12 10 13 declare 1 slt based (sltp) aligned, /* declaration of Segment Loading Table (SLT) */ 10 14 2 name_seg_ptr ptr, /* words 0-1, pointer (ITS pair) to name segment */ 10 15 2 free_core_start fixed bin (24), /* word 2, start of free core after perm-wired */ 10 16 2 first_sup_seg fixed bin (18), /* word 3, first supervisor segment number */ 10 17 2 last_sup_seg fixed bin (18), /* word 4, last supervisor segment number */ 10 18 2 first_init_seg fixed bin (18), /* word 5, first initializer segment number */ 10 19 2 last_init_seg fixed bin (18), /* word 6, last initializer segment number */ 10 20 2 free_core_size fixed bin (24), /* size (in words) of free core after perm-wired */ 10 21 2 seg (0:8191) aligned, /* segment entries (4 words each) */ 10 22 3 slte (4) fixed bin (35); /* Space for SLT entries */ 10 23 10 24 /* auxiliary segment of SLT for storing of segment names and directory path names */ 10 25 10 26 declare 1 name_seg based (names_ptr) aligned, /* name segment header */ 10 27 2 pad bit (18) unal, 10 28 2 next_loc bit (18) unal, /* Next available free location in name seg */ 10 29 2 ht (0:127) bit (18) aligned; /* Names hash table */ 10 30 10 31 declare 1 segnam based (namep) aligned, /* declaration for segment name block */ 10 32 2 count fixed bin (17), /* number of segment names in this block */ 10 33 2 names (50 refer (segnam.count)), /* segment name array */ 10 34 3 hp bit (18) unal, /* hash thread pointer */ 10 35 3 ref bit (1) unal, /* "1"b if name referenced */ 10 36 3 pad bit (5) unal, 10 37 3 segno bit (12) unal, /* segment number associated with this name */ 10 38 3 name char (32) unal; /* space for name (max 32 characters) */ 10 39 10 40 declare 1 path based (pathp) aligned, /* declaration for directory path name */ 10 41 2 size fixed bin (17), /* length of pathname */ 10 42 2 name char (168 refer (path.size)) unal, /* directory path name */ 10 43 2 acls fixed bin; /* ACL list starts here */ 10 44 10 45 declare 1 acls based (aclp) aligned, /* declaration for acl list */ 10 46 2 count fixed bin, /* number of entries in acl list */ 10 47 2 acl (50 refer (acls.count)), /* array of acl entries */ 10 48 3 userid char (32), /* user specification */ 10 49 3 mode bit (36) aligned, /* mode for the specified user */ 10 50 3 pad bit (36) aligned, 10 51 3 code fixed bin; 10 52 10 53 10 54 /* END INCLUDE FILE slt.incl.pl1 */ 308 11 1 /* BEGIN INCLUDE FILE slte.incl.pl1 */ 11 2 /* Declaration for Segment Loading Table Entry structure. 11 3* Used by Initialization, MST Generation, and MST Checker subroutines */ 11 4 /* modified 5/4/76 by Noel I. Morris */ 11 5 /* last modified 12/12/83 by Keith Loepere for breakpointable */ 11 6 /* format: style3 */ 11 7 11 8 dcl sltep ptr; 11 9 11 10 dcl 1 slte_uns based (sltep) aligned, 11 11 ( 2 names_ptr bit (18), /* rel pointer to thread of names */ 11 12 2 path_ptr bit (18), /* rel pointer to pathname (if present) */ 11 13 /**** End of word 1 */ 11 14 2 access bit (4), /* SDW access bit (REWP) */ 11 15 2 cache bit (1), /* Segment to be allowed in cache */ 11 16 2 abs_seg bit (1), /* segment is an abs seg if ON */ 11 17 2 firmware_seg bit (1), /* load in low 256 */ 11 18 2 layout_seg bit (1), /* mailbox & such */ 11 19 2 breakpointable bit (1), /* includes breakpoint_page */ 11 20 2 pad1 bit (3), /* unused */ 11 21 2 wired bit (1), /* segment is wired if ON */ 11 22 2 paged bit (1), /* segment is paged if ON */ 11 23 2 per_process bit (1), /* segment is per-process if ON */ 11 24 2 pad3 bit (2), 11 25 2 acl_provided bit (1), /* ON if acl structure follows path_name on MST */ 11 26 /**** End of 1st half of word 2 */ 11 27 2 pad4 bit (3), 11 28 2 branch_required bit (1), /* path name supplied if ON */ 11 29 2 init_seg bit (1), /* segment is init_seg if ON */ 11 30 2 temp_seg bit (1), /* segment is temp_seg if ON */ 11 31 2 link_provided bit (1), /* linkage segment provided if ON */ 11 32 2 link_sect bit (1), /* segment is linkage segment if ON */ 11 33 2 link_sect_wired bit (1), /* linkage segment is wired if ON */ 11 34 2 combine_link bit (1), /* linkage is combined if ON */ 11 35 2 pre_linked bit (1), /* lot entry has been made if ON */ 11 36 2 defs bit (1), /* segment is definitions segment if ON */ 11 37 /***** End of word 2 */ 11 38 2 pad5 bit (6), 11 39 2 cur_length fixed bin (9) uns, /* current length of segment (in 1024 word blocks) */ 11 40 2 ringbrack (3) fixed bin (3) uns, /* ringbrackets */ 11 41 2 segno fixed bin (18) uns, /* text/link segment number */ 11 42 /***** End of word 3 */ 11 43 2 pad7 bit (3), 11 44 2 max_length fixed bin (9) uns, /* maximum length for segment */ 11 45 2 bit_count fixed bin (24) uns 11 46 ) unaligned; /* bitcount of segment */ 11 47 11 48 dcl 1 slte based (sltep) aligned, 11 49 ( 2 names_ptr bit (18), /* rel pointer to thread of names */ 11 50 2 path_ptr bit (18), /* rel pointer to pathname (if present) */ 11 51 2 access bit (4), /* SDW access bit (REWP) */ 11 52 2 cache bit (1), /* Segment to be allowed in cache */ 11 53 2 abs_seg bit (1), /* segment is an abs seg if ON */ 11 54 2 firmware_seg bit (1), 11 55 2 layout_seg bit (1), 11 56 2 breakpointable bit (1), 11 57 2 pad2 bit (3), 11 58 2 wired bit (1), /* segment is wired if ON */ 11 59 2 paged bit (1), /* segment is paged if ON */ 11 60 2 per_process bit (1), /* segment is per-process if ON */ 11 61 2 pad3 bit (2), 11 62 2 acl_provided bit (1), /* ON if acl structure follows path_name on MST */ 11 63 2 pad4 bit (3), 11 64 2 branch_required bit (1), /* path name supplied if ON */ 11 65 2 init_seg bit (1), /* segment is init_seg if ON */ 11 66 2 temp_seg bit (1), /* segment is temp_seg if ON */ 11 67 2 link_provided bit (1), /* linkage segment provided if ON */ 11 68 2 link_sect bit (1), /* segment is linkage segment if ON */ 11 69 2 link_sect_wired bit (1), /* linkage segment is wired if ON */ 11 70 2 combine_link bit (1), /* linkage is combined if ON */ 11 71 2 pre_linked bit (1), /* lot entry has been made if ON */ 11 72 2 defs bit (1), /* segment is definitions segment if ON */ 11 73 2 pad5 bit (6), 11 74 2 cur_length bit (9), /* current length of segment (in 1024 word blocks) */ 11 75 2 ringbrack (3) bit (3), /* ringbrackets */ 11 76 2 segno bit (18), /* text/link segment number */ 11 77 2 pad6 bit (3), 11 78 2 max_length bit (9), /* maximum length for segment */ 11 79 2 bit_count bit (24) 11 80 ) unaligned; /* bitcount of segment */ 11 81 11 82 /* END INCLUDE FILE slte.incl.pl1 */ 309 12 1 /* BEGIN INCLUDE FILE syserr_constants.incl.pl1 ... 11/11/80 W. Olin Sibert */ 12 2 /* 85-02-12, EJ Sharpe - Added sorting class constants, removed AIM_MESSAGE, added new action code names. */ 12 3 /* 85-04-24, G. Palter - Renamed SYSERR_UNUSED_10 to SYSERR_RING1_ERROR to reflect its actual use. */ 12 4 12 5 /* This include file has an ALM version. Keep 'em in sync! */ 12 6 12 7 dcl ( 12 8 12 9 /* The following constants define the message action codes. This indicates 12 10*how a message is to be handled. */ 12 11 12 12 SYSERR_CRASH_SYSTEM init (1), 12 13 CRASH init (1), /* Crash the system, and bleat plaintively. */ 12 14 12 15 SYSERR_TERMINATE_PROCESS init (2), 12 16 TERMINATE_PROCESS init (2), /* Terminate the process, print the message, and beep. */ 12 17 12 18 SYSERR_PRINT_WITH_ALARM init (3), 12 19 BEEP init (3), /* Beep and print the message on the console. */ 12 20 12 21 SYSERR_PRINT_ON_CONSOLE init (0), 12 22 ANNOUNCE init (0), /* Just print the message on the console. */ 12 23 12 24 SYSERR_LOG_OR_PRINT init (4), 12 25 LOG init (4), /* Log the message, or print it if it can't be logged */ 12 26 12 27 SYSERR_LOG_OR_DISCARD init (5), 12 28 JUST_LOG init (5), /* Just try to log the message, and discard it if it can't be */ 12 29 12 30 12 31 /* The following constants are added to the normal severities to indicate 12 32*different sorting classes of messages. */ 12 33 12 34 SYSERR_SYSTEM_ERROR init (00), /* indicates a standard level system error */ 12 35 SYSERR_RING1_ERROR init (10), /* indicates an error detected in ring 1 (mseg_, RCP) */ 12 36 SYSERR_COVERT_CHANNEL init (20), /* indicates covert channel audit trail message */ 12 37 SYSERR_UNSUCCESSFUL_ACCESS init (30), /* indicates access denial audit trail message */ 12 38 SYSERR_SUCCESSFUL_ACCESS init (40) /* indicates access grant audit trail message */ 12 39 ) fixed bin internal static options (constant); 12 40 12 41 /* END INCLUDE FILE syserr_constants.incl.pl1 */ 310 13 1 /* BEGIN dn355_mailbox.incl.pl1 */ 13 2 13 3 /* Date Last Modified and Reason 13 4* Created 07/25/74 by R. B. Snyder for new ttydim. 13 5* Modified 08/20/75 by Mike Grady to prepare for multiple 355's 13 6* Modified 11/08/78 by Robert Coren to introduce FNP-controlled mailboxes 13 7* Modified 02/19/80 by Robert Coren to specify format of accept_input mailbox 13 8* Modified 04/23/80 by Robert Coren to replace lock with num_in_use 13 9* Modified 09/21/82 by Robert Coren to make subfields of crash_data be fixed bin (18) unsigned 13 10* */ 13 11 13 12 dcl 1 datanet_mbx aligned based (mbxp), /* declaration of 355 mailbox */ 13 13 2 dia_pcw aligned, /* Peripheral Control Word for DIA */ 13 14 3 zero bit (18) unaligned, 13 15 3 error bit (1) unaligned, /* set to "1"b if error on connect */ 13 16 3 pad1 bit (5) unaligned, 13 17 3 mbx_no bit (6) unaligned, /* number of submbx being sent to 355 */ 13 18 3 command bit (6) unaligned, /* always 71 (octal) */ 13 19 2 mailbox_requests fixed bin, /* 0 mod 256K cnt of mbx requests by 355 */ 13 20 2 term_inpt_mpx_wd bit (36) aligned, /* terminate interrupt multiplex word */ 13 21 2 last_mbx_req_count fixed bin, /* previous value of mailbox_requests */ 13 22 2 num_in_use fixed bin, /* number of submailboxes currently in use */ 13 23 2 mbx_used_flags, /* one bit for each mailbox */ 13 24 3 used (0:7) bit (1) unaligned, /* "1"b means this mbx is being used */ 13 25 3 pad2 bit (28) unaligned, 13 26 2 crash_data, /* data for 355 emergency interrupt */ 13 27 3 fault_code fixed bin (18) unal unsigned, 13 28 3 ic fixed bin (18) unal unsigned, 13 29 3 iom_fault_status fixed bin (18) unal unsigned, 13 30 3 fault_word fixed bin (18) unal unsigned, /* contains either faulting instruction or iomchannel no */ 13 31 2 dn355_sub_mbxes (0:7) aligned, /* 8 CS-initiated submailboxes */ 13 32 3 pad4 (8) fixed bin, /* eight words each */ 13 33 2 fnp_sub_mbxes (0:3) aligned, /* 4 FNP-initiated mailboxes */ 13 34 3 pad5 (28) fixed bin; /* 28 words each */ 13 35 13 36 dcl 1 sub_mbx aligned based (subp), /* declaration of a submailbox */ 13 37 2 dn355_no bit (3) unaligned, /* 355 number */ 13 38 2 pad1 bit (5) unaligned, 13 39 2 line_number unaligned, /* line number assigned by 355 */ 13 40 3 is_hsla bit (1) unaligned, /* on if hsla, off if lsla */ 13 41 3 la_no bit (3) unaligned, /* line adapter (high or low speed) number */ 13 42 3 slot_no bit (6) unaligned, /* physical slot/subchannel number */ 13 43 2 terminal_id bit (18) unaligned, /* not used */ 13 44 13 45 2 terminal_type bit (9) unaligned, /* unused */ 13 46 2 cmd_data_len fixed bin (8) unaligned, /* no. of 6 bit chars in command data */ 13 47 2 op_code fixed bin (8) unaligned, /* op code */ 13 48 2 io_cmd fixed bin (8) unaligned, /* i/o cmd */ 13 49 13 50 2 command_data (3) bit (36) unaligned, /* data associated with op code */ 13 51 13 52 2 address unal, /* dcw buffer or circular queue address */ 13 53 3 data_addr bit (18) unaligned, /* data address */ 13 54 3 word_cnt fixed bin (18) unsigned unaligned, /* data length */ 13 55 2 pad3 bit (72) unaligned; 13 56 13 57 /* The structure below defines the long form of submailbox used by the FNP. Note that 13 58* the declaration of command_data and input_data is that used for the input_in_mailbox 13 59* operation; other FNP-initiated operations use the command_data format described by 13 60* the above (short mailbox) structure 13 61**/ 13 62 13 63 dcl 1 fnp_sub_mbx aligned based (subp), /* format used for FNP-controlled mailbox */ 13 64 2 dn355_no bit (3) unaligned, /* as above */ 13 65 2 pad1 bit (5) unaligned, 13 66 2 line_number unaligned, /* as above */ 13 67 3 is_hsla bit (1) unaligned, 13 68 3 la_no bit (3) unaligned, 13 69 3 slot_no bit (6) unaligned, 13 70 2 n_free_buffers fixed bin (17) unaligned, /* number of free blocks in FNP at present */ 13 71 13 72 2 pad3 bit (9) unaligned, 13 73 2 n_chars fixed bin (9) unsigned unaligned, /* number of data characters (if input) */ 13 74 2 op_code fixed bin (9) unsigned unaligned, /* as above */ 13 75 2 io_cmd fixed bin (9) unsigned unaligned, /* as above */ 13 76 13 77 2 input_data char (100) unaligned, /* input characters for input_in_mailbox op */ 13 78 2 command_data bit (36) unaligned; /* shouldn't need more than one word */ 13 79 13 80 /* The structure below defines the format of a long submailbox used for an accept_input operation 13 81* when the data is too long to fit directly in the mailbox. command_data and n_chars occupy the same position as for input_in_mailbox, above. 13 82**/ 13 83 13 84 dcl 1 input_sub_mbx aligned based (subp), 13 85 2 pad1 bit (8) unaligned, 13 86 2 line_number unaligned like sub_mbx.line_number, 13 87 2 n_free_buffers fixed bin (17) unaligned, /* number of free blocks in FNP at present */ 13 88 13 89 2 n_chars fixed bin (17) unaligned, /* total number of data characters */ 13 90 2 op_code fixed bin (9) unsigned unaligned, 13 91 2 io_cmd fixed bin (9) unsigned unaligned, 13 92 13 93 2 n_buffers fixed bin, /* number of buffers in this input chain */ 13 94 2 dcw (24), /* "pseudo-DCWs" used to specify buffer addresses and tallies */ 13 95 3 abs_addr bit (24) unaligned, /* supplied by CS */ 13 96 3 tally fixed bin (12) unsigned unaligned, /* in characters, supplied by FNP */ 13 97 2 command_data bit (36) unaligned; /* as above */ 13 98 13 99 dcl subp pointer; 13 100 dcl mbxp pointer; 13 101 13 102 /* END dn355_mailbox.incl.pl1 */ 311 14 1 /* START OF: io_chnl_util_dcls.incl.pl1 * * * * * * * * * * * * * * * * */ 14 2 14 3 /* Written by Charles Hornig, 1st quarter 1981 */ 14 4 /* Canonicalization entry added by Chris Jones, January 1984 */ 14 5 14 6 /* chanid = canonicalize_chanid (chanid); */ 14 7 /* format: style4,delnl,insnl,indattr,ifthen,dclind10 */ 14 8 dcl io_chnl_util$canonicalize_chanid 14 9 entry (char (8) aligned) returns (char (8) aligned); 14 10 14 11 /* call iom_to_name (iomno, channo, name, code); */ 14 12 dcl io_chnl_util$iom_to_name 14 13 entry (fixed bin (3), fixed bin (7), char (8) aligned, fixed bin (35)); 14 14 14 15 /* call name_to_iom (name, iomno, channo, code); */ 14 16 dcl io_chnl_util$name_to_iom 14 17 entry (char (8) aligned, fixed bin (3), fixed bin (7), fixed bin (35)); 14 18 14 19 /* END OF: io_chnl_util_dcls.incl.pl1 * * * * * * * * * * * * * * * * */ 312 15 1 /* BEGIN INCLUDE FILE ... fnp_types.incl.pl1 */ 15 2 15 3 15 4 15 5 /****^ HISTORY COMMENTS: 15 6* 1) change(88-06-15,Berno), approve(88-07-13,MCR7928), 15 7* audit(88-06-15,Parisek), install(88-07-19,MR12.2-1061): 15 8* Add data needed for the uncp multiplexer (DSA gateway) interface 15 9* implementation. 15 10* END HISTORY COMMENTS */ 15 11 15 12 15 13 /* Values for fnpe.type field */ 15 14 /* 15 15* Created 79 May 14 by Art Beattie by splitting information out from cdt.incl.pl1 15 16* Added in March 1982 - DN7100.fd. 15 17**/ 15 18 15 19 dcl (DN355 init (1), /* a DataNet 355 FNP */ 15 20 DN6600 init (2), /* a DataNet 6600 FNP */ 15 21 DN6670 init (3), /* a Honeywell Bull Network Processor (18x) */ 15 22 DN7100 init (4) /* The DSA Datanet architecture (DN7) */ 15 23 ) fixed bin internal static options (constant); 15 24 15 25 dcl fnp_types (4) char (8) int static options (constant) 15 26 init ("DN355", "DN6600", "DN6670", "DN7100"); 15 27 15 28 dcl fnp_models (4) fixed bin (17) int static options (constant) 15 29 init (355, 6600, 6670, 7100); 15 30 15 31 dcl supported_fnp (4) bit (1) int static options (constant) 15 32 init ("0"b, "0"b, "1"b, "1"b); 15 33 15 34 15 35 /* END INCLUDE FILE ... fnp_types.incl.pl1 */ 313 16 1 /* -------- BEGIN INCLUDE FILE ... protocol_data.incl.pl1 --------- */ 16 2 16 3 16 4 /****^ HISTORY COMMENTS: 16 5* 1) change(89-03-20,Parisek), approve(89-06-06,MCR8110), 16 6* audit(89-10-09,Farley), install(89-10-25,MR12.3-1100): 16 7* Add support of protocol mpx. 16 8* END HISTORY COMMENTS */ 16 9 16 10 /* Written 15 May 1985 by C. Claveleira - CICB */ 16 11 16 12 /* Latest revision : */ 16 13 /* */ 16 14 /* 7 oct 1985 by C. Claveleira */ 16 15 /* 19 oct 1985 by C. Claveleira */ 16 16 /* 26 dec 1985 by C. Claveleira */ 16 17 /* 14 fev 1986 by C. Claveleira */ 16 18 /* 20 mar 1986 by C. Claveleira - version 1.0 of protocol_mpx */ 16 19 /* 02 sep 1986 by C. Claveleira - version 1.6 of protocol_mpx */ 16 20 /* 26 nov 1986 by C. Claveleira - version 1.8 of protocol_mpx */ 16 21 16 22 dcl protocol_data_ptr ptr; 16 23 dcl protocol_channels fixed bin; 16 24 16 25 dcl 1 protocol_data aligned based (protocol_data_ptr), 16 26 16 27 2 max_channels fixed bin, /* maximum number of channels (filled by fnp_init) */ 16 28 2 n_channels fixed bin, /* # of initialized channels */ 16 29 2 init_time fixed bin (71), 16 30 2 listeners (4), /* array of listeners processes by protocol type */ 16 31 3 proc_id bit (36), 16 32 3 pad1 bit (36), 16 33 3 event_id fixed bin (71), 16 34 2 special_listeners (10), /* array of non-standards protocols listened */ 16 35 3 call_datas, 16 36 4 partial bit (1) unal, /* ON if test on first part of call_datas */ 16 37 4 pad2 bit(35) unal, 16 38 4 datas char (48) varying, /* call_datas that must match */ 16 39 3 proc_id bit (36), /* process_id of listener */ 16 40 3 pad3 bit (36), 16 41 3 event_id fixed bin (71), /* event of listener */ 16 42 2 channels (protocol_channels refer (protocol_data.max_channels)) like channel; 16 43 16 44 dcl channel_ptr ptr; 16 45 16 46 dcl 1 channel aligned based (channel_ptr), /* entry is 58 words wide */ 16 47 2 name char (32), /* name from lcnt */ 16 48 2 devx fixed bin (17), /* index in lct */ 16 49 2 state fixed bin, /* see values below */ 16 50 2 load_proc_id bit (36), /* process_id of loader process */ 16 51 2 flags, 16 52 3 initialized bit (1) unal, /* ON after init_multiplexer */ 16 53 3 started bit (1) unal, /* ON after start */ 16 54 3 in_use bit (1) unal, /* ON if line currently in use */ 16 55 3 send_output bit (1) unal, /* ON if we can send more output */ 16 56 3 wflag bit (1) unal, /* ON if process blocked on output */ 16 57 3 rflag bit (1) unal, /* ON if process blocked on input */ 16 58 3 timer_set bit (1) unal, /* ON if timer set for this channel */ 16 59 3 pad bit (29) unal, 16 60 2 listener_proc_id bit (36), /* proc_id of listener process */ 16 61 2 pad5 bit (36), 16 62 2 listener_event fixed bin (71), /* event_channel of listener */ 16 63 2 user_proc_id bit (36), /* process_id of current user */ 16 64 2 pad6 bit (36), 16 65 2 user_event fixed bin (71), /* event_channel of user */ 16 66 2 user_ref fixed bin (17), /* user's internal ref */ 16 67 2 max_packet_size fixed bin, /* x25's max data packet size */ 16 68 2 our_network_address char (15) varying, /* network address of this channel */ 16 69 2 his_network_address char (15) varying, /* network address of remote */ 16 70 2 call_data char (48) varying, /* call datas from remote */ 16 71 2 facilities char (16) varying, /* facilities from remote */ 16 72 2 fblock fixed bin (17), /* offset of first data block. Input */ 16 73 2 lblock fixed bin (17), /* " " last " " " */ 16 74 2 write_first fixed bin (17), /* " " first " " . Output */ 16 75 2 write_last fixed bin (17), /* " " last " " " */ 16 76 2 space_left_in_packet fixed bin, /* current space left in x25 data packet */ 16 77 2 max_buf_size fixed bin (9) uns, /* maximum buffer size we're allowed to get */ 16 78 2 buffer_pad fixed bin (9) uns, /* buffer padding we must respect */ 16 79 2 max_nsdu_size fixed bin; /* maximum size of NSDU permitted */ 16 80 16 81 dcl (INACTIVE init (0), /* values of channel.state */ 16 82 HUNGUP init (1), 16 83 DIALING init (2), 16 84 DIALED init (3) 16 85 ) fixed bin static options (constant); 16 86 16 87 /* ---------- End include file protocol_data.incl.pl1 ---------- */ 314 315 316 /* BEGIN MESSAGE DOCUMENTATION 317* 318* Message: 319* fnp_init: Less than 256 words of free space in tty_buf: N 320* 321* S: $crash 322* 323* T: $init 324* 325* M: Only N words of free space remain in tty_buf after 326* allocating the header and circular queue. A minimum of 327* 256 words is required and ordinarily more free 328* space is desirable. Either the size of tty_buf, as specified 329* by the PARM TTYB config card, must be increased or the 330* circular queue size, as specified by the PARM TTYQ config 331* card, must be decreased. 332* 333* A: Correct the config deck and reboot the system. 334* 335* 336* Message: 337* fnp_init: no fnp cards in config deck 338* 339* S: $info 340* 341* T: $init 342* 343* M: There are no fnp cards in the config deck and therefore, 344* no FNP will be initialized. Usually this indicates an error, 345* although it is possible to run Multics without an FNP. 346* 347* A: If an FNP is wanted, reboot the system with an appropriate 348* config deck. 349* 350* 351* Message: 352* fnp_init: FNP number N > max allowed number (MAX) of FNPs 353* 354* S: $crash 355* 356* T: $init 357* 358* M: An fnp card from the config deck specifies an FNP tag 359* other than A, B, C, D, E, F, G, or H. 360* 361* A: Replace the bad fnp card and reboot. 362* 363* 364* Message: 365* fnp_init: inconsistent fnp cards. 366* 367* S: $crash 368* 369* T: $init 370* 371* M: Two or more fnp cards from the config deck specify the same 372* FNP tag. 373* 374* A: Replace or remove the bad fnp card(s) and reboot. 375* 376* 377* Message: 378* fnp_init: Unable to abs_wire tty_buf. ERROR_CODE_MESSAGE 379* 380* S: $crash 381* 382* T: $init 383* 384* M: The call to allocate memory in the bootload memory controller 385* for tty_buf failed. 386* 387* A: $contact 388* 389* 390* Message: 391* fnp_init: Invalid state on prph fnpX card. 392* 393* S: $crash 394* 395* T: $init 396* 397* M: The only valid states are "on" or "off". 398* 399* A: $contact 400* 401* 402* Message: 403* fnp_init: Invalid model # (MODELN) on prph fnpX card. 404* 405* S: $crash 406* 407* T: $init 408* 409* M: The current fnp model number MODELN, is not a supported number. 410* 411* A: $contact 412* 413* 414* Message: 415* fnp_init: The number of configured protocol channels of N 416* exceeds the maximum allowed of N. 417* 418* S: $crash 419* 420* T: $init 421* 422* M: The prot parm from the config deck specifies too many protocol channels. 423* 424* A: $contact 425* 426* END MESSAGE DOCUMENTATION */ 427 428 429 end fnp_init; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 11/11/89 0826.9 fnp_init.pl1 >spec>install>1112>fnp_init.pl1 300 1 01/06/85 1422.1 tty_buf.incl.pl1 >ldd>include>tty_buf.incl.pl1 1-152 2 01/06/85 1422.1 hc_fast_lock.incl.pl1 >ldd>include>hc_fast_lock.incl.pl1 301 3 07/21/88 2036.0 uncp_buf.incl.pl1 >ldd>include>uncp_buf.incl.pl1 302 4 06/30/80 1400.3 mcs_trace_data.incl.pl1 >ldd>include>mcs_trace_data.incl.pl1 303 5 07/21/88 2036.0 tty_buffer_block.incl.pl1 >ldd>include>tty_buffer_block.incl.pl1 304 6 02/23/79 1435.1 tty_tables.incl.pl1 >ldd>include>tty_tables.incl.pl1 305 7 05/08/81 1853.6 config_deck.incl.pl1 >ldd>include>config_deck.incl.pl1 306 8 10/31/84 1315.5 config_prph_fnp_card.incl.pl1 >ldd>include>config_prph_fnp_card.incl.pl1 307 9 10/26/89 2011.9 dn355_data.incl.pl1 >ldd>include>dn355_data.incl.pl1 308 10 05/24/82 1005.0 slt.incl.pl1 >ldd>include>slt.incl.pl1 309 11 07/11/84 0937.3 slte.incl.pl1 >ldd>include>slte.incl.pl1 310 12 05/17/85 0615.7 syserr_constants.incl.pl1 >ldd>include>syserr_constants.incl.pl1 311 13 10/20/82 0938.5 dn355_mailbox.incl.pl1 >ldd>include>dn355_mailbox.incl.pl1 312 14 07/11/84 0937.3 io_chnl_util_dcls.incl.pl1 >ldd>include>io_chnl_util_dcls.incl.pl1 313 15 07/21/88 2036.0 fnp_types.incl.pl1 >ldd>include>fnp_types.incl.pl1 314 16 10/26/89 2011.9 protocol_data.incl.pl1 >ldd>include>protocol_data.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. ANNOUNCE 000030 constant fixed bin(17,0) initial dcl 12-7 set ref 261* BIT36 constant fixed bin(17,0) initial dcl 113 ref 132 CONFIG_STRING_TYPE constant bit(2) initial dcl 7-23 ref 234 CRASH 000036 constant fixed bin(17,0) initial dcl 12-7 set ref 138* 173* 200* 234* 240* 256* DEFAULT_BUFSIZE constant fixed bin(17,0) initial dcl 105 ref 124 DN7100 constant fixed bin(17,0) initial dcl 15-19 ref 243 EXPECTED_FIELDS constant fixed bin(17,0) initial dcl 110 ref 234 FIRST_TTY_BUF_PAGEX constant fixed bin(17,0) initial dcl 9-167 ref 146 FNP_CONFIG_EVENT 000126 automatic char(4) initial dcl 101 set ref 101* 214 MAX_PROT_CHNLS 000006 constant fixed bin(17,0) initial dcl 106 set ref 200 200* MIN_BUFSIZE constant fixed bin(17,0) initial dcl 107 ref 173 PAGE constant fixed bin(17,0) initial dcl 111 ref 132 TRACE_INDEX constant bit(36) initial packed unaligned dcl 114 ref 162 TTY_AREA_LOCK_EVENT constant bit(36) initial dcl 1-33 ref 179 TTY_PERM_SPACE 000005 constant fixed bin(17,0) initial dcl 108 set ref 266* UNCP_CQ_SIZE constant fixed bin(17,0) initial dcl 109 ref 269 WORD15 constant fixed bin(17,0) initial dcl 112 ref 167 168 absorig 1 based fixed bin(24,0) level 2 dcl 1-35 set ref 146* addr builtin function dcl 82 ref 118 119 127 128 140 140 150 183 183 184 188 218 228 228 245 293 294 addrel builtin function dcl 82 ref 164 astep 000100 automatic pointer dcl 54 set ref 136* 137* available 66 based bit(1) level 3 packed packed unaligned dcl 9-67 set ref 247* bin builtin function dcl 82 ref 154 164 172 bit_count 3(12) based fixed bin(24,0) level 2 packed packed unsigned unaligned dcl 11-10 set ref 132* bleft 3 based fixed bin(18,0) level 2 dcl 1-35 set ref 172* 173 173* 177 borig 2 based bit(18) level 2 dcl 1-35 set ref 170* 172 bufsize 000104 automatic fixed bin(17,0) dcl 57 set ref 124* 126* 130 172 chan 3 based fixed bin(8,0) level 2 dcl 8-6 ref 255 channel based structure level 1 dcl 16-46 cl 000120 automatic fixed bin(17,0) dcl 64 set ref 130* 132 133 137* code 000117 automatic fixed bin(35,0) dcl 63 set ref 137* 138 138* 255* 256 256* config_$find_2 000014 constant entry external dcl 71 ref 232 config_$find_parm 000016 constant entry external dcl 72 ref 123 157 196 277 280 config_card based structure level 1 dcl 7-13 config_card_type_word based structure level 1 dcl 7-18 config_flags 66 based structure level 2 dcl 9-67 configuration_lock based structure level 2 dcl 9-52 cptr 000106 automatic pointer dcl 58 set ref 123* 124 126 157* 158 161 276* 277* 278 279* 280* 281 cq_free 6 based fixed bin(18,0) level 2 dcl 3-19 set ref 270* cq_hbound 1 based fixed bin(18,0) level 2 dcl 3-19 set ref 271* cq_max_size 7 based fixed bin(17,0) level 2 dcl 3-19 set ref 269* 270 271 cur_length 2 based fixed bin(9,0) level 2 packed packed unsigned unaligned dcl 11-10 set ref 133* 143 currentsize builtin function dcl 82 ref 164 190 data_offset 102(18) based bit(18) level 3 packed packed unaligned dcl 1-35 set ref 163* datanet_info based structure level 1 dcl 9-52 datanet_mbx based structure level 1 dcl 13-12 set ref 229* debug_stop 6 based bit(1) level 2 dcl 9-52 set ref 281* divide builtin function dcl 82 ref 130 dn355_data$ 000046 external static fixed bin(17,0) dcl 9-47 set ref 119 dn355_mailbox$ 000036 external static fixed bin(17,0) dcl 93 set ref 228 dn355mbx_array based structure array level 1 dcl 95 set ref 228 empty builtin function dcl 82 ref 184 191 event 1 based fixed bin(35,0) level 2 in structure "tty_tables_hdr" dcl 6-8 in procedure "fnp_init" set ref 189* event 1 based bit(36) level 3 in structure "datanet_info" dcl 9-52 in procedure "fnp_init" set ref 214* event 131 based bit(36) level 3 in structure "tty_buf" dcl 1-35 in procedure "fnp_init" set ref 179* field_type 17 based bit(2) array level 3 packed packed unaligned dcl 8-6 ref 234 flags 2 based structure level 3 dcl 9-52 set ref 215* fnp_config_flags 5 based bit(1) array level 2 packed packed unaligned dcl 1-35 set ref 212* 246* fnp_id 7 based structure level 2 dcl 9-67 fnp_info based structure level 1 dcl 9-67 fnp_models 000001 constant fixed bin(17,0) initial array dcl 15-28 ref 238 238 240 fnp_number 7(09) based fixed bin(9,0) level 3 packed packed unsigned unaligned dcl 9-67 set ref 249* fnp_tag 7 based char(1) level 3 packed packed unaligned dcl 9-67 set ref 250* fnpp 000146 automatic pointer dcl 9-50 set ref 218* 219 220 221 221 223 223 225 245* 247 248 249 250 251 252 255 free 4 based bit(18) level 2 dcl 1-35 set ref 170* free_block based structure level 1 dcl 5-23 free_blockp 000136 automatic pointer dcl 5-20 set ref 175* 176 177 free_space 150 based fixed bin(17,0) level 2 dcl 1-35 set ref 150 get_fnp_name_ 000026 constant entry external dcl 76 ref 232 250 hbound builtin function dcl 82 ref 221 223 238 240 hc_fast_lock based structure level 1 dcl 2-10 hsla_idx 21 based fixed bin(17,0) array level 2 dcl 9-67 set ref 223 223* i 000102 automatic fixed bin(17,0) dcl 55 set ref 154* 159* 159 159 160 164* 167* 167 168* 168 168 169 217* 218 228 232* 245 246 249 250* idx 1 based bit(36) level 2 dcl 4-6 set ref 162* infop 000144 automatic pointer dcl 9-49 set ref 119* 197 206 213 214 215 218 245 253 253 261 266 268 274 278 281 io_chanid 10 based char(8) level 2 dcl 9-67 set ref 255* io_chnl_util$iom_to_name 000050 constant entry external dcl 14-12 ref 255 iom 2 based fixed bin(3,0) level 2 dcl 8-6 set ref 255* j 000103 automatic fixed bin(17,0) dcl 56 set ref 221* 223 223 225* lbound builtin function dcl 82 ref 221 lct_ptr 6 based pointer level 2 dcl 1-35 set ref 148* lcte_ptr 32 based pointer level 2 dcl 9-67 set ref 220* line_number 0(08) based structure level 2 packed packed unaligned dcl 13-36 lsla_idx 13 based fixed bin(17,0) array level 2 dcl 9-67 set ref 221 221 225* make_sdw$unthreaded 000020 constant entry external dcl 73 ref 136 max_channels based fixed bin(17,0) level 2 dcl 16-25 set ref 205* max_length 3(03) based fixed bin(9,0) level 2 packed packed unsigned unaligned dcl 11-10 set ref 133* 296 max_no_355s constant fixed bin(17,0) initial dcl 9-45 ref 9-52 217 mbx_pt based pointer level 2 dcl 9-67 set ref 219* 248* mbxp 000154 automatic pointer dcl 13-100 set ref 228* 229 248 mod builtin function dcl 82 ref 159 168 model 4 based fixed bin(17,0) level 2 dcl 8-6 set ref 238 240* modelx 000124 automatic fixed bin(17,0) dcl 66 set ref 238* 238* 240 240 243 n_fields 17(32) based fixed bin(4,0) level 3 packed packed unsigned unaligned dcl 8-6 ref 234 name 1 based char(4) level 2 dcl 8-6 set ref 234* 240* next based bit(18) level 2 dcl 5-23 set ref 176* no_of_355s 4 based fixed bin(17,0) level 2 dcl 9-52 set ref 253* 253 261 null builtin function dcl 82 ref 124 148 158 197 197 219 220 231 233 252 274 276 278 279 281 num_entries based fixed bin(18,0) level 2 unsigned dcl 4-6 set ref 161* 164 p 000112 automatic pointer dcl 60 set ref 150* 154 169* 169 170 175 pc_abs$wire_abs 000022 constant entry external dcl 74 ref 137 per_datanet 22 based structure array level 2 dcl 9-52 set ref 218 245 pid based bit(36) level 3 dcl 9-52 set ref 213* pmut$swap_sdw 000024 constant entry external dcl 75 ref 140 pointer builtin function dcl 82 ref 160 prot_parm based structure level 1 dcl 85 prot_ptr 000110 automatic pointer dcl 59 set ref 196* 197 200 200 203 protocol_channels 000160 automatic fixed bin(17,0) dcl 16-23 set ref 203* 204 204 205 protocol_data based structure level 1 dcl 16-25 set ref 204 204 protocol_data_ptr 000156 automatic pointer dcl 16-22 set ref 204 204 204* 205 206 protocol_datap 12 based pointer level 2 dcl 9-52 set ref 197* 206* prph_fnp_card based structure level 1 dcl 8-6 prph_fnp_cardp 000142 automatic pointer dcl 8-4 set ref 231* 232* 233 234 234 234 234 234 238 240 240 247 255 255 ptp 71 based pointer level 2 in structure "fnp_info" packed packed unaligned dcl 9-67 in procedure "fnp_init" set ref 252* ptp 000122 automatic pointer dcl 65 in procedure "fnp_init" set ref 136* ptr builtin function dcl 82 ref 169 ptx 70 based fixed bin(17,0) level 2 dcl 9-67 set ref 251* rel builtin function dcl 82 ref 154 163 164 170 seg 10 based structure array level 2 dcl 10-13 set ref 128 294 seg_no 000174 automatic fixed bin(18,0) dcl 289 set ref 292* 294 segno builtin function dcl 82 ref 128 136 136 292 segp parameter pointer dcl 288 ref 285 292 size 1 based fixed bin(17,0) level 2 in structure "tty_parm" dcl 89 in procedure "fnp_init" ref 126 161 size 1 based fixed bin(17,0) level 2 in structure "prot_parm" dcl 85 in procedure "fnp_init" set ref 200 200* 203 size 1 based fixed bin(17,0) level 2 in structure "free_block" dcl 5-23 in procedure "fnp_init" set ref 177* size builtin function dcl 82 in procedure "fnp_init" ref 204 204 slt based structure level 1 dcl 10-13 slt$ 000032 external static fixed bin(17,0) dcl 79 set ref 127 293 slte_uns based structure level 1 dcl 11-10 sltep 000152 automatic pointer dcl 11-8 set ref 128* 132 133 133 134 143 294* 296 sltp 000150 automatic pointer dcl 10-7 set ref 127* 128 293* 294 state 5 based char(4) level 2 dcl 8-6 ref 234 234 247 string builtin function dcl 82 set ref 156* sub_mbx based structure level 1 dcl 13-36 substr builtin function dcl 82 ref 232 250 supported_fnp 000000 constant bit(1) initial array packed unaligned dcl 15-31 ref 240 sys_info$page_size 000034 external static fixed bin(17,0) dcl 80 ref 130 130 146 296 syserr 000010 constant entry external dcl 69 ref 173 200 234 240 256 261 syserr$error_code 000012 constant entry external dcl 70 ref 138 table_area 20 based area level 2 dcl 6-8 set ref 191* table_area_size 3 based fixed bin(18,0) level 2 dcl 6-8 set ref 190* 190 191 trace 102 based structure level 2 in structure "tty_buf" packed packed unaligned dcl 1-35 in procedure "fnp_init" set ref 156* trace 5 based bit(1) level 2 in structure "datanet_info" dcl 9-52 in procedure "fnp_init" set ref 278* trace_array based structure level 1 dcl 4-6 set ref 164 trace_array_ptr 000134 automatic pointer dcl 4-3 set ref 160* 161 162 163 164 164 trace_entry based structure level 1 dcl 4-11 tsdw 000114 automatic fixed bin(71,0) dcl 61 set ref 136* 140 140 tty_area based area dcl 98 set ref 184* tty_area$ 000040 external static fixed bin(17,0) dcl 99 set ref 183 183 184 tty_area_lock 130 based structure level 2 dcl 1-35 tty_area_size 000116 automatic fixed bin(18,0) dcl 62 set ref 183* 184 tty_buf based structure level 1 dcl 1-35 tty_buf$ 000042 external static fixed bin(17,0) dcl 1-19 set ref 118 tty_buf_pages based bit(36) array dcl 142 set ref 143* tty_ev constant fixed bin(17,0) initial dcl 1-19 ref 189 tty_parm based structure level 1 dcl 89 tty_space_man$get_perm_space 000030 constant entry external dcl 77 ref 204 266 tty_tables$ 000044 external static fixed bin(17,0) dcl 6-6 set ref 188 tty_tables_hdr based structure level 1 dcl 6-8 set ref 190 ttybp 000130 automatic pointer dcl 1-19 set ref 118* 128 136 136 140* 143 146 148 150 156 160 163 170 170 172 172 173 173 177 179 212 246 ttytp 000140 automatic pointer dcl 6-18 set ref 188* 189 190 190* 190 190 191 191 type_word 17 based structure level 2 dcl 8-6 uncp_buf based structure level 1 dcl 3-19 uncp_bufp 10 based pointer level 2 dcl 9-52 set ref 266* 268 274* uncp_fnp_configured 000125 automatic bit(1) packed unaligned dcl 67 set ref 216* 243* 265 uncpbp 000132 automatic pointer dcl 3-16 set ref 268* 269 270 270 271 271 unspec builtin function dcl 82 set ref 214 229* wired 1(12) based bit(1) level 2 packed packed unaligned dcl 11-10 set ref 134* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. BEEP internal static fixed bin(17,0) initial dcl 12-7 CONFIG_DECIMAL_TYPE internal static bit(2) initial dcl 7-23 CONFIG_OCTAL_TYPE internal static bit(2) initial dcl 7-23 CONFIG_SINGLE_CHAR_TYPE internal static bit(2) initial dcl 7-23 DIALED internal static fixed bin(17,0) initial dcl 16-81 DIALING internal static fixed bin(17,0) initial dcl 16-81 DN355 internal static fixed bin(17,0) initial dcl 15-19 DN6600 internal static fixed bin(17,0) initial dcl 15-19 DN6670 internal static fixed bin(17,0) initial dcl 15-19 EMPTY_FIELD internal static bit(36) initial dcl 7-34 FIRST_BOOTLOAD_PAGEX internal static fixed bin(17,0) initial dcl 9-166 FNP_DUMP_PATCH_EVENT internal static fixed bin(17,0) initial dcl 1-31 FNP_METER_EVENT internal static fixed bin(17,0) initial dcl 1-32 FREE_CARD_WORD internal static char(4) initial dcl 7-29 HUNGUP internal static fixed bin(17,0) initial dcl 16-81 INACTIVE internal static fixed bin(17,0) initial dcl 16-81 JUST_LOG internal static fixed bin(17,0) initial dcl 12-7 LOG internal static fixed bin(17,0) initial dcl 12-7 SYSERR_COVERT_CHANNEL internal static fixed bin(17,0) initial dcl 12-7 SYSERR_CRASH_SYSTEM internal static fixed bin(17,0) initial dcl 12-7 SYSERR_LOG_OR_DISCARD internal static fixed bin(17,0) initial dcl 12-7 SYSERR_LOG_OR_PRINT internal static fixed bin(17,0) initial dcl 12-7 SYSERR_PRINT_ON_CONSOLE internal static fixed bin(17,0) initial dcl 12-7 SYSERR_PRINT_WITH_ALARM internal static fixed bin(17,0) initial dcl 12-7 SYSERR_RING1_ERROR internal static fixed bin(17,0) initial dcl 12-7 SYSERR_SUCCESSFUL_ACCESS internal static fixed bin(17,0) initial dcl 12-7 SYSERR_SYSTEM_ERROR internal static fixed bin(17,0) initial dcl 12-7 SYSERR_TERMINATE_PROCESS internal static fixed bin(17,0) initial dcl 12-7 SYSERR_UNSUCCESSFUL_ACCESS internal static fixed bin(17,0) initial dcl 12-7 TERMINATE_PROCESS internal static fixed bin(17,0) initial dcl 12-7 VALID_CARD_WORD_CHARACTERS internal static char(38) initial packed unaligned dcl 7-31 ZERO_CARD_WORD internal static char(4) initial dcl 7-28 abs_buf_limit internal static fixed bin(18,0) initial dcl 1-19 aclp automatic pointer dcl 10-7 acls based structure level 1 dcl 10-45 blockp automatic pointer dcl 5-19 bsizec internal static fixed bin(17,0) initial dcl 1-28 buf_per_second internal static fixed bin(17,0) initial dcl 1-29 buffer based structure level 1 dcl 5-28 cardp automatic pointer dcl 7-3 channel_ptr automatic pointer dcl 16-44 config_deck based structure level 1 dcl 7-9 config_deck$ external static fixed bin(17,0) dcl 7-7 config_max_cards automatic fixed bin(17,0) dcl 7-5 config_n_cards automatic fixed bin(17,0) dcl 7-4 configp automatic pointer dcl 7-3 fnp_sub_mbx based structure level 1 dcl 13-63 fnp_types internal static char(8) initial array packed unaligned dcl 15-25 input_bpart internal static fixed bin(18,0) initial dcl 1-19 input_sub_mbx based structure level 1 dcl 13-84 io_chnl_util$canonicalize_chanid 000000 constant entry external dcl 14-8 io_chnl_util$name_to_iom 000000 constant entry external dcl 14-16 lock_ptr automatic pointer dcl 2-9 max_buffer_tally internal static fixed bin(17,0) initial array dcl 5-43 name_seg based structure level 1 dcl 10-26 namep automatic pointer dcl 10-7 names_ptr automatic pointer dcl 10-7 output_bpart internal static fixed bin(18,0) initial dcl 1-19 path based structure level 1 dcl 10-40 pathp automatic pointer dcl 10-7 qblock_size internal static fixed bin(17,0) initial dcl 1-27 segnam based structure level 1 dcl 10-31 slte based structure level 1 dcl 11-48 subp automatic pointer dcl 13-99 table_alloc_len automatic fixed bin(17,0) dcl 6-30 table_descriptor based structure level 1 dcl 6-20 tdp automatic pointer dcl 6-29 trace_array_size automatic fixed bin(18,0) unsigned dcl 4-4 trace_entry_ptr automatic pointer dcl 4-3 NAMES DECLARED BY EXPLICIT CONTEXT. fnp_init 000200 constant entry external dcl 29 get_seg_size 001474 constant entry internal dcl 285 ref 183 190 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 1754 2026 1540 1764 Length 2544 1540 52 502 214 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME fnp_init 216 external procedure is an external procedure. begin block on line 141 begin block shares stack frame of external procedure fnp_init. get_seg_size internal procedure shares stack frame of external procedure fnp_init. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME fnp_init 000100 astep fnp_init 000102 i fnp_init 000103 j fnp_init 000104 bufsize fnp_init 000106 cptr fnp_init 000110 prot_ptr fnp_init 000112 p fnp_init 000114 tsdw fnp_init 000116 tty_area_size fnp_init 000117 code fnp_init 000120 cl fnp_init 000122 ptp fnp_init 000124 modelx fnp_init 000125 uncp_fnp_configured fnp_init 000126 FNP_CONFIG_EVENT fnp_init 000130 ttybp fnp_init 000132 uncpbp fnp_init 000134 trace_array_ptr fnp_init 000136 free_blockp fnp_init 000140 ttytp fnp_init 000142 prph_fnp_cardp fnp_init 000144 infop fnp_init 000146 fnpp fnp_init 000150 sltp fnp_init 000152 sltep fnp_init 000154 mbxp fnp_init 000156 protocol_data_ptr fnp_init 000160 protocol_channels fnp_init 000174 seg_no get_seg_size THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. r_e_as r_ne_as call_ext_out_desc call_ext_out return_mac mdfx1 ext_entry op_empty_ THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. config_$find_2 config_$find_parm get_fnp_name_ io_chnl_util$iom_to_name make_sdw$unthreaded pc_abs$wire_abs pmut$swap_sdw syserr syserr$error_code tty_space_man$get_perm_space THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. dn355_data$ dn355_mailbox$ slt$ sys_info$page_size tty_area$ tty_buf$ tty_tables$ LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 29 000177 101 000205 118 000207 119 000211 123 000213 124 000231 126 000240 127 000243 128 000246 130 000255 132 000262 133 000265 134 000276 136 000300 137 000316 138 000334 140 000362 143 000375 146 000423 148 000427 150 000431 154 000433 156 000436 157 000437 158 000455 159 000461 160 000465 161 000471 162 000474 163 000476 164 000502 165 000511 167 000512 168 000514 169 000524 170 000530 172 000534 173 000541 175 000567 176 000571 177 000572 179 000576 183 000600 184 000605 188 000611 189 000614 190 000616 191 000627 196 000631 197 000650 200 000660 203 000713 204 000714 205 000731 206 000733 212 000736 213 000751 214 000752 215 000755 216 000757 217 000760 218 000767 219 000773 220 000775 221 000776 223 001003 225 001011 226 001015 228 001017 229 001025 231 001030 232 001032 233 001064 234 001070 238 001140 239 001152 240 001154 243 001213 245 001220 246 001225 247 001232 248 001243 249 001245 250 001250 251 001264 252 001266 253 001270 255 001272 256 001312 260 001340 261 001342 265 001365 266 001367 268 001401 269 001404 270 001406 271 001407 273 001411 274 001412 276 001415 277 001417 278 001436 279 001444 280 001446 281 001465 283 001473 285 001474 292 001476 293 001504 294 001507 296 001512 ----------------------------------------------------------- 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