COMPILATION LISTING OF SEGMENT as_lap_mpx_ Compiled by: Multics PL/I Compiler, Release 30, of February 16, 1988 Compiled at: Honeywell Bull, Phoenix AZ, SysM Compiled on: 08/08/88 1510.2 mst Mon Options: optimize map 1 /****^ ************************************************************** 2* * * 3* * Copyright, (C) Honeywell Bull Inc., 1988 * 4* * * 5* * Copyright, (C) Massachusetts Institute of Technology, 1983 * 6* * * 7* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 8* * * 9* * Copyright, (C) Honeywell Information Systems Inc., 1980. * 10* * * 11* ************************************************************** */ 12 13 /* format: style4,delnl,insnl,ifthenstmt,indnoniterend */ 14 15 /* AS_LAP_MPX_ - Anserwing service piece of lap multiplexer */ 16 17 /* Written October 1978 by Larry Johnson (as as_user1_mpx_) */ 18 /* Converted to as_vip7760_mpx_ 1/5/78 by J. Stern */ 19 /* Modified 7/31/79 by B.Westcott to support lap instead */ 20 /* Modified November 1979 by C. Hornig for installation */ 21 /* Modified May 1982 by D. W. Cousins for direct interface to lap_tables in the fnp */ 22 /* Modified August 1982 by Robert Coren for additional argument to multiplexer_mgr_$mpx_crashed. */ 23 /* Converted January, 1983 by Olin Sibert to support ARPAnet HDH interface. */ 24 25 /****^ HISTORY COMMENTS: 26* 1) change(88-07-07,Beattie), approve(88-06-27,MCR7926), 27* audit(88-07-22,Brunelle), install(88-08-08,MR12.2-1082): 28* Prepared for installation. 29* END HISTORY COMMENTS */ 30 31 as_lap_mpx_: 32 procedure; 33 34 /* Entry to load a multiplexer */ 35 36 lap_load: 37 entry (arg_mpx_chan, arg_cdtp, arg_cdtep, arg_chan_listp, arg_check_sw, arg_code); 38 39 mpx_chan = arg_mpx_chan; 40 cdtp = arg_cdtp; 41 cdtep = arg_cdtep; 42 chan_listp = arg_chan_listp; 43 mpxep = addr (cdte.initial_command); 44 45 if cdte.event ^= 0 then call ipc_$delete_ev_chn (cdte.event, code); 46 call ipc_$create_ev_chn (cdte.event, code); 47 if code ^= 0 then do; 48 ev_chan_err: 49 call sys_log_$error_log (SL_LOG, code, name, "Creating event channel for multiplexer ^a", mpx_chan); 50 arg_code = error_table_$action_not_performed; 51 return; 52 end; 53 call ipc_$decl_ev_call_chn (cdte.event, lap_wakeup_handler, cdtep, (20), code); 54 if code ^= 0 then go to ev_chan_err; 55 56 unspec (boot_info) = ""b; 57 boot_info.version = LAP_LOAD_INFO_VERSION_1; 58 boot_info.event_channel = cdte.event; 59 boot_info.process_id = get_process_id_ (); 60 61 boot_info.dce_or_dte = "0"b; /* DTE by default */ 62 boot_info.lap_or_lapb = "1"b; /* Because IMPs speak LAPB only */ 63 boot_info.disc_first = "0"b; /* Have to find out what this means.... */ 64 boot_info.frame_size = 1088; /* Max frame is 1088 bits in "packet mode" */ 65 boot_info.K = 7; /* Values from the HDH spec in BBN 1822 */ 66 boot_info.N2 = 20; 67 boot_info.T1 = 300; /* Value is in tenths of seconds */ 68 boot_info.T3 = 200; 69 70 add_info = ""; 71 if (cdte.initial_terminal_type ^= low (length (cdte.initial_terminal_type))) 72 & (cdte.initial_terminal_type ^= "") then do; 73 call ttt_info_$additional_info (cdte.initial_terminal_type, add_info, code); 74 if code ^= 0 then do; 75 call sys_log_$error_log (SL_LOG, code, name, 76 "Cannot get additional info for terminal type ^a for multiplexer ^a.", 77 cdte.initial_terminal_type, mpx_chan); 78 add_info = ""; 79 end; 80 end; 81 82 if get_parm ("type=", parm) then do; /* DCE or DTE options */ 83 if parm = "DCE" then boot_info.dce_or_dte = "1"b; 84 else if parm = "DTE" then boot_info.dce_or_dte = "0"b; 85 else call bad_parm ("type", "DCE", "DTE"); 86 end; 87 88 if get_parm ("link_protocol=", parm) then do; /* LAP or LAPB options */ 89 if parm = "LAP" then boot_info.lap_or_lapb = "0"b; 90 else if parm = "LAPB" then boot_info.lap_or_lapb = "1"b; 91 else call bad_parm ("link_protocol", "LAP", "LAPB"); 92 end; 93 94 if get_parm ("frame_size=", parm) then do; 95 boot_info.frame_size = cv_dec_check_ (parm, code); 96 if code ^= 0 then call bad_conv ("frame_size"); 97 if (boot_info.frame_size < 8) | (boot_info.frame_size > 8232) | (mod (boot_info.frame_size, 8) ^= 0) 98 then call bad_conv ("frame_size"); 99 end; 100 101 if get_parm ("K=", parm) then do; 102 boot_info.K = cv_dec_check_ (parm, code); 103 if code ^= 0 then call bad_conv ("K"); 104 if (boot_info.K < 1) | (boot_info.K > 7) then call bad_conv ("K"); 105 end; 106 107 if get_parm ("T1=", parm) then do; 108 boot_info.T1 = 10.0e0 * cv_float_ (parm, code); 109 if code ^= 0 then call bad_conv ("T1"); 110 if (boot_info.T1 < 1) | (boot_info.T1 > 500) then call bad_conv ("T1"); 111 /* tenths of seconds, remember */ 112 end; 113 114 if get_parm ("T3=", parm) then do; 115 boot_info.T3 = cv_float_ (parm, code); 116 if code ^= 0 then call bad_conv ("T3"); 117 if (boot_info.T3 < .1e0) | (boot_info.T3 > 50e0) then call bad_conv ("T3"); 118 end; 119 120 if get_parm ("N2=", parm) then do; 121 boot_info.N2 = cv_dec_check_ (parm, code); 122 if code ^= 0 then call bad_conv ("N2"); 123 if (boot_info.N2 < 1) | (boot_info.N2 > 511) then call bad_conv ("N2"); 124 end; 125 126 if get_parm ("disc_first=", parm) then do; /* disc_first yes or no */ 127 if parm = "yes" then boot_info.disc_first = "1"b; 128 else if parm = "no" then boot_info.disc_first = "0"b; 129 else call bad_parm ("disc_first", "yes", "no"); 130 end; 131 132 if get_parm ("trace_off=", parm) then do; /* trace_off yes or no */ 133 if parm = "yes" then boot_info.trace_off = "1"b; 134 else if parm = "no" then boot_info.trace_off = "0"b; 135 else call bad_parm ("trace_off", "yes", "no"); 136 end; 137 call hphcs_$tty_control (mpx_chan, "load_mpx", addr (boot_info), arg_code); 138 return_to_caller: 139 return; 140 141 bad_conv: 142 procedure (String); 143 dcl String char (*) parameter; 144 145 call sys_log_$error_log (SL_LOG, error_table_$bad_conversion, name, 146 "Converting ^a ^a to a number for multiplexer ^a.", String, parm, mpx_chan); 147 arg_code = error_table_$bad_conversion; 148 goto return_to_caller; 149 end bad_conv; 150 151 get_parm: 152 procedure (Parm, Value) returns (bit (1) aligned); 153 dcl (Parm, Value) char (*); 154 dcl i fixed bin; 155 156 i = index (add_info, Parm); 157 if i = 0 158 then return ("0"b); 159 else do; 160 Value = before (substr (add_info, i + length (Parm)), " "); 161 return ("1"b); 162 end; 163 end get_parm; 164 165 bad_parm: 166 proc (type, value1, value2); 167 dcl (type, value1, value2) char (*) parameter; 168 169 call sys_log_$error_log (SL_LOG, 0, name, "Bad argument to parm ^a, should be ^a or ^a", type, value1, value2); 170 goto return_to_caller; /* its bad enough to go back */ 171 end bad_parm; 172 173 /* Wakeup handler for wakeups on the bootload event channel */ 174 175 lap_wakeup_handler: 176 entry (arg_event_infop); 177 178 event_call_info_ptr = arg_event_infop; 179 cdtep = event_call_info.data_ptr; 180 mpxep = addr (cdte.initial_command); 181 182 if event_call_info.ring ^= 0 /* If not ring-0 */ 183 then if event_call_info.sender ^= get_process_id_ () then do; 184 /* Trust only myself */ 185 call sys_log_ (SL_LOG, "^a: Unexpected wakeup (^72.3b) from process ^w.", name, 186 unspec (event_call_info.message), event_call_info.sender); 187 return; 188 end; 189 190 mpx_chan = cdte.name; 191 192 if (event_call_info.message < 1) | (event_call_info.message > 3) then do; 193 call sys_log_ (SL_LOG, "^a: Wakeup for multiplexer ^a has invalid state code: ^d.", name, mpx_chan, 194 event_call_info.message); 195 return; 196 end; 197 198 msg = "Unexpected signal"; 199 if mpxe.state = MPX_BOOT 200 then if event_call_info.message ^= 1 then do; 201 msg = "Load failed"; 202 call multiplexer_mgr_$mpx_load_failed (mpx_chan, code); 203 end; 204 else do; 205 msg = "Load signalled"; 206 call multiplexer_mgr_$mpx_loaded (mpx_chan, code); 207 end; 208 else if mpxe.state = MPX_UP 209 then if event_call_info.message ^= 1 then do; 210 msg = "Crash signalled"; 211 call multiplexer_mgr_$mpx_crashed (mpx_chan, (event_call_info.message = 2), code); 212 end; 213 call sys_log_ (SL_LOG, "^a: ^a for multiplexer ^a.", name, msg, mpx_chan); 214 return; 215 216 /* Entry to dump a multiplexer. */ 217 218 lap_dump: 219 entry (arg_mpx_chan, arg_cdtp, arg_cdtep, arg_code); 220 221 arg_code = 0; /* nothing to do really */ 222 return; 223 224 /* Entry called by cv_cmf to validate LAP multiplexers */ 225 226 lap_cv_cmf: 227 entry (arg_cdtp, arg_cdtep, arg_mpx_chan, arg_chan_listp, arg_error_proc); 228 229 cdtp = arg_cdtp; 230 cdtep = arg_cdtep; 231 mpx_chan = arg_mpx_chan; 232 chan_listp = arg_chan_listp; 233 error_proc = arg_error_proc; 234 235 /* 236* Each multiplexer is alloted 99 errors. The multiplexer type controls which 237* block of numbers this multiplexer uses. Multiplexer types are defined by the 238* mpx_types array in multiplexer_types.incl.pl1. The LAP multiplexer is in 239* position 10 so it has error numbers 1001 - 1099. The error number is the first 240* argument to the error_proc procedure. This value is not used in any other 241* manner. 242**/ 243 244 /* Make sure this channel is not an FNP */ 245 246 if index (mpx_chan, ".") = 0 /* single component name => FNP */ 247 then call error_proc (1, ERROR_HERALD, "A LAP multiplexer cannot be configured as an FNP. ^a", "^a", mpx_chan, 248 ""); 249 250 /* Validate subchannel names */ 251 252 if chan_list.count ^= 1 253 then call error_proc (2, ERROR_HERALD, "A LAP multiplexer must have exactly one subchannel. ^a.", "^a", 254 mpx_chan, ""); 255 256 return; 257 258 /* Parameters */ 259 260 dcl arg_mpx_chan char (*); /* Name of the multiplexed channel */ 261 dcl arg_cdtp ptr; /* Address of the cdt */ 262 dcl arg_cdtep ptr; 263 dcl arg_chan_listp ptr; /* Pointer to a structure of channels to init */ 264 dcl arg_check_sw bit (1) aligned; /* Says whether or not to check configuration */ 265 dcl arg_event_infop ptr; 266 dcl arg_code fixed bin (35); 267 dcl arg_error_proc entry variable; 268 269 /* Automatic */ 270 271 dcl code fixed bin (35); 272 dcl add_info varying char (512); 273 dcl parm char (32); 274 dcl msg char (32); 275 dcl mpx_chan char (32); 276 dcl chan_listp ptr; 277 dcl 1 boot_info aligned like lap_load_info; 278 dcl error_proc entry (fixed bin, fixed bin, char (*), char (*), char (*), char (*)) variable; 279 280 /* Constants */ 281 282 dcl name char (15) int static options (constant) init ("as_lap_mpx_"); 283 dcl ERROR_HERALD fixed bin int static options (constant) init (2); 284 285 /* External */ 286 287 dcl hphcs_$tty_control entry (char (*), char (*), ptr, fixed bin (35)); 288 dcl ipc_$delete_ev_chn entry (fixed bin (71), fixed bin (35)); 289 dcl ipc_$create_ev_chn entry (fixed bin (71), fixed bin (35)); 290 dcl ipc_$decl_ev_call_chn entry (fixed bin (71), entry, ptr, fixed bin, fixed bin (35)); 291 dcl cv_dec_check_ entry (char (*), fixed bin (35)) returns (fixed bin (35)); 292 dcl cv_float_ entry (char (*), fixed bin (35)) returns (float bin); 293 dcl sys_log_ entry options (variable); 294 dcl sys_log_$error_log entry options (variable); 295 dcl get_process_id_ entry returns (bit (36) aligned); 296 dcl multiplexer_mgr_$mpx_load_failed entry (char (*), fixed bin (35)); 297 dcl multiplexer_mgr_$mpx_loaded entry (char (*), fixed bin (35)); 298 dcl multiplexer_mgr_$mpx_crashed entry (char (*), bit (1) aligned, fixed bin (35)); 299 dcl ttt_info_$additional_info entry (char (*), char (*) var, fixed bin (35)); 300 301 dcl error_table_$action_not_performed ext fixed bin (35); 302 dcl error_table_$bad_conversion fixed bin (35) ext static; 303 304 dcl (addr, before, length, low, mod, substr, unspec, index) builtin; 305 306 /* Based */ 307 308 dcl 1 chan_list aligned based (chan_listp), /* List of cdte entries of channels to boot */ 309 2 count fixed bin, 310 2 cdte_ptr (0 refer (chan_list.count)) ptr unal; 311 /* BEGIN INCLUDE FILE ... lap_simplex_data.incl.pl1 */ 1 2 1 3 /* 1 4* Created 2/1/83 by Olin Sibert to add support for LAP mulitiplexers. 1 5**/ 1 6 1 7 /****^ HISTORY COMMENTS: 1 8* 1) change(88-07-07,Beattie), approve(88-06-27,MCR7926), 1 9* audit(88-07-22,Brunelle), install(88-08-08,MR12.2-1082): 1 10* Prepared for installation. 1 11* END HISTORY COMMENTS */ 1 12 1 13 dcl lap_load_info_ptr pointer; 1 14 dcl lap_data_ptr pointer; 1 15 1 16 dcl 1 lap_data aligned based (lap_data_ptr), 1 17 2 name char (32) unaligned, 1 18 2 devx fixed bin, 1 19 2 subchannel fixed bin, 1 20 2 state fixed bin, /* One of the state values below */ 1 21 2 flags aligned, 1 22 3 send_output bit (1) unaligned, 1 23 3 simplex_started bit (1) unaligned, /* Whether to accept dialups */ 1 24 3 pad bit (34) unaligned, 1 25 2 load_process_id bit (36) aligned, /* For notifications */ 1 26 2 load_event_channel fixed bin (71), 1 27 2 activate_order aligned like lap_line_control_info, /* Order used to activate the LAP tables */ 1 28 2 dialup_info aligned like dialup_info, /* Dialup info received from FNP */ 1 29 2 sc_dialup_info aligned like dialup_info, /* and info sent on to our subchannel */ 1 30 2 max_frame_size fixed bin, /* Max number of characters stuffable into a frame */ 1 31 2 frame_ready bit (1) aligned, /* Frame (collected below) is complete and should be sent */ 1 32 2 frame_size fixed bin, /* Number of characters */ 1 33 2 frame_start pointer, /* Beginning and end of buffer chain */ 1 34 2 frame_end pointer; 1 35 1 36 dcl LAP_HUNGUP init (0) fixed bin internal static options (constant); 1 37 dcl LAP_LISTENING init (1) fixed bin internal static options (constant); 1 38 dcl LAP_ACTIVE init (2) fixed bin internal static options (constant); 1 39 1 40 dcl 1 lap_load_info aligned based (lap_load_info_ptr), 1 41 2 version char (8) aligned, 1 42 2 event_channel fixed bin (71), /* For notifying loading process */ 1 43 2 process_id bit (36) aligned, 1 44 2 activate_order aligned like lap_line_control_info; /* Only "real" parameter */ 1 45 1 46 dcl LAP_LOAD_INFO_VERSION_1 char (8) internal static options (constant) init ("lapload1"); 1 47 1 48 /* END INCLUDE FILE ... lap_simplex_data.incl.pl1 */ 311 312 /* BEGIN INCLUDE FILE ... lap_line_info.incl.pl1 */ 2 2 2 3 /* 2 4* Line status and control information for LAP -- extracted from x25_mpx 2 5* 2 6* Created January 10, 1983 by Olin Sibert to support LAP multiplexers. 2 7**/ 2 8 2 9 /****^ HISTORY COMMENTS: 2 10* 1) change(88-07-07,Beattie), approve(88-06-27,MCR7926), 2 11* audit(88-07-22,Brunelle), install(88-08-08,MR12.2-1082): 2 12* Prepared for installation. 2 13* END HISTORY COMMENTS */ 2 14 2 15 dcl L2_HEADER_PAD fixed bin internal static options (constant) init (2); 2 16 2 17 dcl lap_line_control_info_ptr pointer; 2 18 2 19 dcl 1 lap_line_control_info aligned based (lap_line_control_info_ptr), 2 20 2 dce_or_dte bit (1) unaligned, /* ON = DCE */ 2 21 2 lap_or_lapb bit (1) unaligned, /* ON = lapb */ 2 22 2 disc_first bit (1) unaligned, /* ON = send disc upon physical connect */ 2 23 2 trace_off bit (1) unaligned, /* ON = turn off trace upon line crash */ 2 24 2 pad bit (5) unaligned, /* padding */ 2 25 2 command bit (9) unaligned, /* One of the values below */ 2 26 2 frame_size fixed bin (18) unsigned unaligned, /* max size of I-frame */ 2 27 2 28 2 K fixed bin (9) unsigned unaligned, /* max un-acked frames allowed */ 2 29 2 N2 fixed bin (9) unsigned unaligned, /* number of retries */ 2 30 2 T1 fixed bin (9) unsigned unaligned, /* frame ack wait timer in tenths of seconds */ 2 31 2 T3 fixed bin (9) unsigned unaligned; /* init timer */ 2 32 2 33 dcl ACTIVATE_COMMAND init ("001"b3) bit (9) internal static options (constant); 2 34 dcl DEACTIVATE_COMMAND init ("002"b3) bit (9) internal static options (constant); 2 35 dcl DISCONNECT_COMMAND init ("003"b3) bit (9) internal static options (constant); 2 36 2 37 dcl lap_line_status_info_ptr pointer; 2 38 2 39 dcl 1 lap_line_status_info aligned based (lap_line_status_info_ptr), 2 40 2 status_type fixed bin (18) unsigned unaligned, /* One of the values below */ 2 41 2 last_function_process fixed bin (17) unaligned, /* coded function */ 2 42 2 43 2 which_state_process fixed bin (9) unsigned unaligned, /* process state */ 2 44 2 main_state fixed bin (9) unsigned unaligned, /* current frame level state */ 2 45 2 primary_sub_state fixed bin (9) unsigned unaligned, /* sub link up state */ 2 46 2 secondary_sub_state fixed bin (9) unsigned unaligned; 2 47 2 48 dcl LINE_DOWN_STATUS init (1) fixed bin (18) unsigned internal static options (constant); 2 49 2 50 dcl FRAME_STATE_ARRAY (5) char (32) static options (constant) init 2 51 ("Down", "T3", "SABM Sent", "Set Up", "Up"); 2 52 2 53 dcl FRAME_SUB_STATE_ARRAY (0:14) char (32) static options (constant) init 2 54 ("Link down: see frame", "Link down: down", "Link down: T3", /* 0, 1, 2 */ 2 55 "Link down: SABM sent", "Link down: set up", "Primary normal", /* 3, 4, 5 */ 2 56 "Primary remote busy", "Primary T1 expired", "Primary SARM reset", /* 6, 7, 8 */ 2 57 "Secondary normal", "Secondary local busy", "Secondary reject", /* 9, 10, 11 */ 2 58 "Secondary CMDR send", "Link up FRMR send", "Link up reset started (lapb)"); /* 12, 13, 14 */ 2 59 2 60 dcl FRAME_FUNCTION_CODE (0:19) char (32) static options (constant) init 2 61 ("Recieved invalid command or data", "Recieved DISC", "Recieved DM (lapb)", /* 0, 1, 2 */ 2 62 "Recieved SARM (lap)", "Recieved SABM (lapb)", "Recieved UA", /* 3, 4, 5 */ 2 63 "Recieved CMDR/FRMR", "Recieved RR", "Recieved RNR", /* 6, 7, 8 */ 2 64 "Recieved REJ", "Recieved bad command or response", "Timer (T1) expired with rcsl1 */ 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 */ 314 315 /* 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 */ 315 316 /* BEGIN INCLUDE FILE ... line_types.incl.pl1 */ 8 2 8 3 /* Written November 10 1975 by Paul Green */ 8 4 /* Modified October 1978 by Larry Johnson to include line_type_names */ 8 5 /* Modified 12/19/78 by J. Stern to add POLLED_VIP line type */ 8 6 /* Modified 9/27/79 by J. Stern to add X25LAP line type */ 8 7 /* Modified Spring 1981 by Charles Hornig to add HDLC line type */ 8 8 /* Modified May 1981 by Robert Coren to add COLTS line type */ 8 9 /* Modified September 1984 by Robert Coren to correctly count VIP as a synchronous line type */ 8 10 8 11 8 12 /****^ HISTORY COMMENTS: 8 13* 1) change(86-02-25,Negaret), approve(87-07-13,MCR7679), 8 14* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 8 15* Add a DSA line type. 8 16* 2) change(87-03-17,Beattie), approve(87-07-13,MCR7656), 8 17* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 8 18* Add HASP_OPR to identify HASP workstation consoles with login service. 8 19* END HISTORY COMMENTS */ 8 20 8 21 8 22 declare (LINE_MC initial (-2), 8 23 LINE_TELNET initial (-1), 8 24 LINE_UNKNOWN initial (0), 8 25 LINE_ASCII initial (1), 8 26 LINE_1050 initial (2), 8 27 LINE_2741 initial (3), 8 28 LINE_ARDS initial (4), 8 29 LINE_SYNCH initial (5), 8 30 LINE_G115 initial (6), 8 31 LINE_BSC initial (7), 8 32 LINE_ETX initial (8), 8 33 LINE_VIP initial (9), 8 34 LINE_ASYNC1 initial (10), 8 35 LINE_ASYNC2 initial (11), 8 36 LINE_ASYNC3 initial (12), 8 37 LINE_SYNC1 initial (13), 8 38 LINE_SYNC2 initial (14), 8 39 LINE_SYNC3 initial (15), 8 40 LINE_POLLED_VIP initial (16), 8 41 LINE_X25LAP initial (17), 8 42 LINE_HDLC initial (18), 8 43 LINE_COLTS initial (19), 8 44 LINE_DSA initial (20), 8 45 LINE_HASP_OPR initial (21) 8 46 ) fixed bin internal static options (constant); 8 47 8 48 dcl max_line_type fixed bin int static options (constant) init (21); 8 49 8 50 declare n_sync_line_types fixed bin int static options (constant) init (10); 8 51 8 52 declare sync_line_type (10) fixed bin int static options (constant) init (5, 6, 7, 9, 13, 14, 15, 16, 17, 18); 8 53 8 54 dcl line_types (-2:21) char (16) int static options (constant) init ( 8 55 "MC", /* -2 */ 8 56 "TELNET", /* -1 */ 8 57 "none", /* 0 */ 8 58 "ASCII", /* 1 */ 8 59 "1050", /* 2 */ 8 60 "2741", /* 3 */ 8 61 "ARDS", /* 4 */ 8 62 "Sync", /* 5 */ 8 63 "G115", /* 6 */ 8 64 "BSC", /* 7 */ 8 65 "202ETX", /* 8 */ 8 66 "VIP", /* 9 */ 8 67 "ASYNC1", /* 10 */ 8 68 "ASYNC2", /* 11 */ 8 69 "ASYNC3", /* 12 */ 8 70 "SYNC1", /* 13 */ 8 71 "SYNC2", /* 14 */ 8 72 "SYNC3", /* 15 */ 8 73 "POLLED_VIP", /* 16 */ 8 74 "X25LAP", /* 17 */ 8 75 "HDLC", /* 18 */ 8 76 "COLTS", /* 19 */ 8 77 "DSA", /* 20 */ 8 78 "HASP_OPR"); /* 21 */ 8 79 8 80 /* END INCLUDE FILE ... line_types.incl.pl1 */ 316 317 /* BEGIN INCLUDE FILE event_call_info.incl.pl1 */ 9 2 9 3 /* T. Casey, May 1978 */ 9 4 9 5 dcl event_call_info_ptr ptr; 9 6 9 7 dcl 1 event_call_info aligned based (event_call_info_ptr), /* argument structure passed to event call procedure */ 9 8 2 channel_id fixed bin (71), /* event channel on which wakeup occurred */ 9 9 2 message fixed bin (71), /* 72 bits of information passed by sender of wakeup */ 9 10 2 sender bit (36), /* process id of sender */ 9 11 2 origin, 9 12 3 dev_signal bit (18) unaligned, /* "1"b if device signal */ 9 13 3 ring fixed bin (17) unaligned, /* ring from which sent */ 9 14 2 data_ptr ptr; /* ptr given to dcl_event_call_channel */ 9 15 9 16 /* END INCLUDE FILE event_call_info.incl.pl1 */ 317 318 /* BEGIN INCLUDE FILE sys_log_constants.incl.pl1 ... 82-09-24 E. N. Kittlitz */ 10 2 10 3 10 4 /****^ HISTORY COMMENTS: 10 5* 1) change(87-04-22,GDixon), approve(87-06-10,MCR7708), 10 6* audit(87-06-02,Parisek), install(87-08-04,MR12.1-1056): 10 7* Added sl_info structure and associated named constants for use in calling 10 8* sys_log_$general. 10 9* END HISTORY COMMENTS */ 10 10 10 11 10 12 /* format: style4 */ 10 13 10 14 dcl ( 10 15 SL_TYPE_CRASH init (-3), /* type message with banner & kill system */ 10 16 SL_TYPE_BEEP init (-2), /* type message with banner */ 10 17 SL_TYPE init (-1), /* type message */ 10 18 SL_LOG_SILENT init (0), /* log message */ 10 19 SL_LOG init (1), /* log & type message */ 10 20 SL_LOG_BEEP init (2), /* log & type message with banner */ 10 21 SL_LOG_CRASH init (3) /* log & type message with banner & kill system */ 10 22 ) fixed bin internal static options (constant); 10 23 10 24 dcl 1 sl_info aligned automatic, 10 25 2 version char(8), /* structure version */ 10 26 2 arg_list_ptr ptr, /* arg_list with values */ 10 27 2 loc, 10 28 3 (mode, severity, code, caller, data, class, ioa_msg) fixed bin, 10 29 /* These flags control where the corresponding data item is found.*/ 10 30 /* -1: data appears in the corresponding structure element below */ 10 31 /* 0: data is not present anywhere */ 10 32 /* +N: data is Nth item in argument list pointed to by */ 10 33 /* sl_info.arg_list_ptr. Upon return, data copied into */ 10 34 /* corresponding structure element. */ 10 35 /* if data = +N: */ 10 36 /* argN is data_ptr, argN+1 is data_len */ 10 37 /* if ioa_msg = +N: */ 10 38 /* argN+1, ... argLAST are arguments substituted into the */ 10 39 /* ioa_msg control string. The formatted msg is returned. */ 10 40 2 flags, 10 41 3 ioa_msg_is_error_code bit(1) unal, /* ioa_ctl is error code. */ 10 42 3 flags_pad bit(35) unal, 10 43 2 mode fixed bin, /* as-mode, command-mode */ 10 44 2 severity fixed bin, /* error severity */ 10 45 2 code fixed bin(35), /* error table code */ 10 46 2 caller char(65) varying, /* caller refname$entryname*/ 10 47 2 data, /* binary data ptr/length */ 10 48 3 data_ptr ptr, 10 49 3 data_lth fixed bin(21), 10 50 2 class char(10) varying, /* binary data class */ 10 51 2 ioa_msg char(500) varying; /* formatted message text */ 10 52 10 53 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 10 54 /* */ 10 55 /* If data values (eg, sl_info.caller) are passed in the argument list, */ 10 56 /* their data types should be as shown in the structure above, except that */ 10 57 /* character strings should be char(*) nonvarying. */ 10 58 /* */ 10 59 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 10 60 10 61 /* value for sl_info.version */ 10 62 dcl SL_INFO_version_1 char (8) int static options(constant) init("sl_info1"); 10 63 10 64 /* values for sl_info.mode */ 10 65 dcl (SL_INFO_as_mode init(1), 10 66 SL_INFO_command_mode init(2)) fixed bin int static options(constant); 10 67 10 68 /* values for sl_info.loc.(severity code caller data class ioa_ctl arg) */ 10 69 dcl (SL_INFO_arg_given_in_structure init(-1), 10 70 SL_INFO_arg_not_given init(0)) fixed bin int static options(constant); 10 71 10 72 10 73 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 10 74 /* */ 10 75 /* The following static structures are commonly used in the Login Server */ 10 76 /* user control software. */ 10 77 /* */ 10 78 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 10 79 10 80 /* Syntax: call Abort (severity, code, ioa_ctl, args); */ 10 81 10 82 dcl 1 sl_info_sev_code_msg aligned int static options(constant), 10 83 2 version char(8) init ("sl_info1"), 10 84 2 arg_list_ptr ptr init (null), 10 85 2 loc, 10 86 3 (mode init (-1), 10 87 severity init ( 1), 10 88 code init ( 2), 10 89 caller init (-1), 10 90 data init ( 0), 10 91 class init ( 0), 10 92 ioa_msg init ( 3)) fixed bin, 10 93 2 flags, 10 94 3 ioa_msg_is_error_code bit(1) unal init ("0"b), 10 95 3 flags_pad bit(35) unal init ("0"b), 10 96 2 mode fixed bin init ( 1), 10 97 2 severity fixed bin init ( 0), 10 98 2 code fixed bin(35) init ( 0), 10 99 2 caller char(65) varying init (""), 10 100 2 data, 10 101 3 data_ptr ptr init (null), 10 102 3 data_lth fixed bin(21) init ( 0), 10 103 2 class char(10) varying init (""), 10 104 2 ioa_msg char(500) varying init (""); 10 105 10 106 /* Syntax: call Abort (severity, ioa_ctl, args); */ 10 107 10 108 dcl 1 sl_info_sev_msg aligned int static options(constant), 10 109 2 version char(8) init ("sl_info1"), 10 110 2 arg_list_ptr ptr init (null), 10 111 2 loc, 10 112 3 (mode init (-1), 10 113 severity init ( 1), 10 114 code init ( 0), 10 115 caller init (-1), 10 116 data init ( 0), 10 117 class init ( 0), 10 118 ioa_msg init ( 2)) fixed bin, 10 119 2 flags, 10 120 3 ioa_msg_is_error_code bit(1) unal init ("0"b), 10 121 3 flags_pad bit(35) unal init ("0"b), 10 122 2 mode fixed bin init ( 1), 10 123 2 severity fixed bin init ( 0), 10 124 2 code fixed bin(35) init ( 0), 10 125 2 caller char(65) varying init (""), 10 126 2 data, 10 127 3 data_ptr ptr init (null), 10 128 3 data_lth fixed bin(21) init ( 0), 10 129 2 class char(10) varying init (""), 10 130 2 ioa_msg char(500) varying init (""); 10 131 10 132 /* Syntax: call Abort (severity, ioa_ctl_as_error_code, args); */ 10 133 10 134 dcl 1 sl_info_sev_coded_msg aligned int static options(constant), 10 135 2 version char(8) init ("sl_info1"), 10 136 2 arg_list_ptr ptr init (null), 10 137 2 loc, 10 138 3 (mode init (-1), 10 139 severity init ( 1), 10 140 code init ( 0), 10 141 caller init (-1), 10 142 data init ( 0), 10 143 class init ( 0), 10 144 ioa_msg init ( 2)) fixed bin, 10 145 2 flags, 10 146 3 ioa_msg_is_error_code bit(1) unal init ("1"b), 10 147 3 flags_pad bit(35) unal init ("0"b), 10 148 2 mode fixed bin init ( 1), 10 149 2 severity fixed bin init ( 0), 10 150 2 code fixed bin(35) init ( 0), 10 151 2 caller char(65) varying init (""), 10 152 2 data, 10 153 3 data_ptr ptr init (null), 10 154 3 data_lth fixed bin(21) init ( 0), 10 155 2 class char(10) varying init (""), 10 156 2 ioa_msg char(500) varying init (""); 10 157 10 158 10 159 /* Syntax: call Abort (severity, code, error_return_label, ioa_ctl, args); */ 10 160 10 161 dcl 1 sl_info_sev_code_label_msg aligned int static options(constant), 10 162 2 version char(8) init ("sl_info1"), 10 163 2 arg_list_ptr ptr init (null), 10 164 2 loc, 10 165 3 (mode init (-1), 10 166 severity init ( 1), 10 167 code init ( 2), 10 168 caller init (-1), 10 169 data init ( 0), 10 170 class init ( 0), 10 171 ioa_msg init ( 4)) fixed bin, 10 172 2 flags, 10 173 3 ioa_msg_is_error_code bit(1) unal init ("0"b), 10 174 3 flags_pad bit(35) unal init ("0"b), 10 175 2 mode fixed bin init ( 1), 10 176 2 severity fixed bin init ( 0), 10 177 2 code fixed bin(35) init ( 0), 10 178 2 caller char(65) varying init (""), 10 179 2 data, 10 180 3 data_ptr ptr init (null), 10 181 3 data_lth fixed bin(21) init ( 0), 10 182 2 class char(10) varying init (""), 10 183 2 ioa_msg char(500) varying init (""); 10 184 10 185 /* Syntax: call Log_error (code, ioa_ctl, args); */ 10 186 10 187 dcl 1 sl_info_code_msg aligned int static options(constant), 10 188 2 version char(8) init ("sl_info1"), 10 189 2 arg_list_ptr ptr init (null), 10 190 2 loc, 10 191 3 (mode init (-1), 10 192 severity init (-1), 10 193 code init ( 1), 10 194 caller init (-1), 10 195 data init ( 0), 10 196 class init ( 0), 10 197 ioa_msg init ( 2)) fixed bin, 10 198 2 flags, 10 199 3 ioa_msg_is_error_code bit(1) unal init ("0"b), 10 200 3 flags_pad bit(35) unal init ("0"b), 10 201 2 mode fixed bin init ( 1), 10 202 2 severity fixed bin init ( 0), 10 203 2 code fixed bin(35) init ( 0), 10 204 2 caller char(65) varying init (""), 10 205 2 data, 10 206 3 data_ptr ptr init (null), 10 207 3 data_lth fixed bin(21) init ( 0), 10 208 2 class char(10) varying init (""), 10 209 2 ioa_msg char(500) varying init (""); 10 210 10 211 10 212 /* Syntax: call Trace (ioa_ctl, args); */ 10 213 10 214 dcl 1 sl_info_msg aligned int static options(constant), 10 215 2 version char(8) init ("sl_info1"), 10 216 2 arg_list_ptr ptr init (null), 10 217 2 loc, 10 218 3 (mode init (-1), 10 219 severity init (-1), 10 220 code init ( 0), 10 221 caller init (-1), 10 222 data init ( 0), 10 223 class init ( 0), 10 224 ioa_msg init ( 1)) fixed bin, 10 225 2 flags, 10 226 3 ioa_msg_is_error_code bit(1) unal init ("0"b), 10 227 3 flags_pad bit(35) unal init ("0"b), 10 228 2 mode fixed bin init ( 1), 10 229 2 severity fixed bin init ( 0), 10 230 2 code fixed bin(35) init ( 0), 10 231 2 caller char(65) varying init (""), 10 232 2 data, 10 233 3 data_ptr ptr init (null), 10 234 3 data_lth fixed bin(21) init ( 0), 10 235 2 class char(10) varying init (""), 10 236 2 ioa_msg char(500) varying init (""); 10 237 10 238 /* END INCLUDE FILE sys_log_constants.incl.pl1 */ 318 319 320 /* BEGIN MESSAGE DOCUMENTATION 321* 322* Message: 323* as_lap_mpx_: ERROR. Creating event channel for multiplexer MPX. 324* 325* S: as (severity1) 326* 327* T: In response to an operator load_mpx command or during system start up. 328* 329* M: An ipc_ error occurred while trying to initialize the multiplexer. 330* 331* A: $notify 332* 333* Message: 334* as_lap_mpx_: ERROR. Cannot get additional info for terminal type TTP for multiplexer MPX. 335* 336* S: as (severity1) 337* 338* T: In response to an operator load_mpx command or during system start up. 339* 340* M: An error occurred while retrieving the parameters of the multiplexer 341* from the TTT. 342* Either the terminal type specified in the CDT does not exist or it 343* does not contain the required additional_info field. 344* 345* A: Check that the CMF and TTF contain the proper information. 346* 347* Message: 348* as_lap_mpx_: Error in conversion. Converting FIELD VALUE to a number for multiplexer MPX. 349* 350* S: as (severity1) 351* 352* T: In response to an operator load_mpx command or during system start up. 353* 354* M: It was impossible to convert a numeric parameter from the terminal_type 355* additional_info string to its internal form. 356* FIELD is the name of the parameter in error. 357* VALUE is the string which could not be converted. 358* 359* A: Check the contents of the TTF entry for the terminal_type associated 360* with the multiplexer for errors. 361* 362* Message: 363* as_lap_mpx_: Bad argument to parm PPPP, should be XXXX or YYYY 364* 365* S: as (severity1) 366* 367* T: In response to an operator load_mpx command for during system startup. 368* 369* M: A bad value was specified for the PPPP parameter in the TTF entry for 370* this muliplexer. Its value must be either XXXX or YYYY. 371* 372* A: Check the contents of the TTF entry for the terminal_type associated 373* with the multiplexer for errors. 374* 375* Message: 376* as_lap_mpx_: Unexpected wakeup (DATA) from process PRCID. 377* 378* S: as (severity1) 379* 380* T: $run 381* 382* M: The multiplexer manager received a wakeup from an unexpected source. 383* The wakeup is ignored. 384* 385* A: $ignore 386* 387* Message: 388* as_lap_mpx_: Wakeup for multiplexer MPX has invalid state code STATE. 389* 390* S: as (severity1) 391* 392* T: $run 393* 394* M: A wakeup with invalid data was received by the multiplexer manager. 395* The wakeup is ignored. 396* 397* A: $notify 398* 399* Message: 400* as_lap_mpx: Unexpected signal for multiplexer MPX. 401* 402* S: as (severity1) 403* 404* T: $run 405* 406* M: An unknown type event was signaled for multiplexer MPX. It will be 407* ignored. 408* 409* A: $notify 410* 411* Message: 412* as_lap_mpx_: Load failed for multiplexer MPX. 413* 414* S: as (severity1) 415* 416* T: In response to an operator load_mpx command or during system start up. 417* 418* M: The attempt to load the multiplexer failed. 419* This should never happen. 420* 421* A: $notify 422* 423* Message: 424* as_lap_mpx_: Load signalled for multiplexer MPX. 425* 426* S: as (severity1) 427* 428* T: In response to an operator load_mpx command or during system start up. 429* 430* M: The multiplexer has been successfully loaded. 431* It will be started unless the -no_start control argument was given when 432* the load_mpx command was typed. 433* 434* A: $ignore 435* 436* Message: 437* as_lap_mpx_: Crash signalled for multiplexer MPX. 438* 439* S: as (severity1) 440* 441* T: $run 442* 443* M: The multiplexer has crashed. 444* The LAP link has entered the disconnected state. 445* 446* A: $notify 447* 448* END MESSAGE DOCUMENTATION */ 449 450 end as_lap_mpx_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 08/08/88 1400.0 as_lap_mpx_.pl1 >special_ldd>install>MR12.2-1082>as_lap_mpx_.pl1 311 1 08/08/88 1400.0 lap_simplex_data.incl.pl1 >special_ldd>install>MR12.2-1082>lap_simplex_data.incl.pl1 312 2 08/08/88 1400.0 lap_line_info.incl.pl1 >special_ldd>install>MR12.2-1082>lap_line_info.incl.pl1 313 3 10/20/82 0938.6 mcs_interrupt_info.incl.pl1 >ldd>include>mcs_interrupt_info.incl.pl1 314 4 08/06/87 0913.0 cdt.incl.pl1 >ldd>include>cdt.incl.pl1 4-314 5 07/21/88 2036.0 fnp_types.incl.pl1 >ldd>include>fnp_types.incl.pl1 315 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 316 8 08/06/87 0913.4 line_types.incl.pl1 >ldd>include>line_types.incl.pl1 317 9 06/29/79 1728.0 event_call_info.incl.pl1 >ldd>include>event_call_info.incl.pl1 318 10 08/06/87 0913.5 sys_log_constants.incl.pl1 >ldd>include>sys_log_constants.incl.pl1 NAMES DECLARED IN THIS COMPILATION. IDENTIFIER OFFSET LOC STORAGE CLASS DATA TYPE ATTRIBUTES AND REFERENCES (* indicates a set context) NAMES DECLARED BY DECLARE STATEMENT. ERROR_HERALD 000053 constant fixed bin(17,0) initial dcl 283 set ref 246* 252* K 6 000334 automatic fixed bin(9,0) level 3 packed packed unsigned unaligned dcl 277 set ref 65* 102* 104 104 LAP_LOAD_INFO_VERSION_1 000000 constant char(8) initial packed unaligned dcl 1-46 ref 57 MPX_BOOT constant fixed bin(17,0) initial dcl 4-306 ref 199 MPX_UP constant fixed bin(17,0) initial dcl 4-306 ref 208 N2 6(09) 000334 automatic fixed bin(9,0) level 3 packed packed unsigned unaligned dcl 277 set ref 66* 121* 123 123 Parm parameter char packed unaligned dcl 153 ref 151 156 160 SL_LOG 000060 constant fixed bin(17,0) initial dcl 10-14 set ref 48* 75* 145* 169* 185* 193* 213* String parameter char packed unaligned dcl 143 set ref 141 145* T1 6(18) 000334 automatic fixed bin(9,0) level 3 packed packed unsigned unaligned dcl 277 set ref 67* 108* 110 110 T3 6(27) 000334 automatic fixed bin(9,0) level 3 packed packed unsigned unaligned dcl 277 set ref 68* 115* 117 117 Value parameter char packed unaligned dcl 153 set ref 151 160* activate_order 5 000334 automatic structure level 2 dcl 277 add_info 000101 automatic varying char(512) dcl 272 set ref 70* 73* 78* 156 160 addr builtin function dcl 304 ref 43 137 137 180 arg_cdtep parameter pointer dcl 262 ref 36 41 218 226 230 arg_cdtp parameter pointer dcl 261 ref 36 40 218 226 229 arg_chan_listp parameter pointer dcl 263 ref 36 42 226 232 arg_check_sw parameter bit(1) dcl 264 ref 36 arg_code parameter fixed bin(35,0) dcl 266 set ref 36 50* 137* 147* 218 221* arg_error_proc parameter entry variable dcl 267 ref 226 233 arg_event_infop parameter pointer dcl 265 ref 175 178 arg_mpx_chan parameter char packed unaligned dcl 260 ref 36 39 218 226 231 author based structure level 2 dcl 6-9 author_dcl based structure level 1 dcl 6-9 before builtin function dcl 304 ref 160 boot_info 000334 automatic structure level 1 dcl 277 set ref 56* 137 137 cdte based structure level 1 dcl 4-72 cdtep 000354 automatic pointer dcl 4-41 set ref 41* 43 45 45 46 53 53* 58 71 71 71 73 75 179* 180 190 230* cdtp 000352 automatic pointer dcl 4-41 set ref 40* 229* chan_list based structure level 1 dcl 308 chan_listp 000332 automatic pointer dcl 276 set ref 42* 232* 252 channel_threads based structure level 1 dcl 4-249 code 000100 automatic fixed bin(35,0) dcl 271 set ref 45* 46* 47 48* 53* 54 73* 74 75* 95* 96 102* 103 108* 109 115* 116 121* 122 202* 206* 211* count based fixed bin(17,0) level 2 dcl 308 ref 252 cv_dec_check_ 000020 constant entry external dcl 291 ref 95 102 121 cv_float_ 000022 constant entry external dcl 292 ref 108 115 data_ptr 6 based pointer level 2 dcl 9-7 ref 179 dce_or_dte 5 000334 automatic bit(1) level 3 packed packed unaligned dcl 277 set ref 61* 83* 84* dialup_info 000350 automatic structure level 1 dcl 3-30 disc_first 5(02) 000334 automatic bit(1) level 3 packed packed unaligned dcl 277 set ref 63* 127* 128* error_proc 000344 automatic entry variable dcl 278 set ref 233* 246 252 error_table_$action_not_performed 000042 external static fixed bin(35,0) dcl 301 ref 50 error_table_$bad_conversion 000044 external static fixed bin(35,0) dcl 302 set ref 145* 147 event 72 based fixed bin(71,0) level 2 dcl 4-72 set ref 45 45* 46* 53* 58 event_call_info based structure level 1 dcl 9-7 event_call_info_ptr 000360 automatic pointer dcl 9-5 set ref 178* 179 182 182 185 185 185 192 192 193 199 208 211 event_channel 2 000334 automatic fixed bin(71,0) level 2 dcl 277 set ref 58* fnpe based structure level 1 dcl 4-200 frame_size 5(18) 000334 automatic fixed bin(18,0) level 3 packed packed unsigned unaligned dcl 277 set ref 64* 95* 97 97 97 get_process_id_ 000030 constant entry external dcl 295 ref 59 182 hphcs_$tty_control 000010 constant entry external dcl 287 ref 137 i 000410 automatic fixed bin(17,0) dcl 154 set ref 156* 157 160 index builtin function dcl 304 ref 156 246 initial_command 51 based char(64) level 2 dcl 4-72 set ref 43 180 initial_terminal_type 37 based char(32) level 2 packed packed unaligned dcl 4-72 set ref 71 71 71 73* 75* ipc_$create_ev_chn 000014 constant entry external dcl 289 ref 46 ipc_$decl_ev_call_chn 000016 constant entry external dcl 290 ref 53 ipc_$delete_ev_chn 000012 constant entry external dcl 288 ref 45 lap_line_control_info based structure level 1 dcl 2-19 lap_load_info based structure level 1 dcl 1-40 lap_or_lapb 5(01) 000334 automatic bit(1) level 3 packed packed unaligned dcl 277 set ref 62* 89* 90* length builtin function dcl 304 ref 71 160 low builtin function dcl 304 ref 71 message 2 based fixed bin(71,0) level 2 dcl 9-7 set ref 185 185 192 192 193* 199 208 211 mod builtin function dcl 304 ref 97 mpx_chan 000322 automatic char(32) packed unaligned dcl 275 set ref 39* 48* 75* 137* 145* 190* 193* 202* 206* 211* 213* 231* 246 246* 252* mpxe based structure level 1 dcl 4-221 mpxep 000356 automatic pointer dcl 4-41 set ref 43* 180* 199 208 msg 000312 automatic char(32) packed unaligned dcl 274 set ref 198* 201* 205* 210* 213* multiplexer_mgr_$mpx_crashed 000036 constant entry external dcl 298 ref 211 multiplexer_mgr_$mpx_load_failed 000032 constant entry external dcl 296 ref 202 multiplexer_mgr_$mpx_loaded 000034 constant entry external dcl 297 ref 206 name 2 based char(32) level 2 in structure "cdte" dcl 4-72 in procedure "as_lap_mpx_" ref 190 name 000002 constant char(15) initial packed unaligned dcl 282 in procedure "as_lap_mpx_" set ref 48* 75* 145* 169* 185* 193* 213* origin 5 based structure level 2 dcl 9-7 parm 000302 automatic char(32) packed unaligned dcl 273 set ref 82* 83 84 88* 89 90 94* 95* 101* 102* 107* 108* 114* 115* 120* 121* 126* 127 128 132* 133 134 145* process_id 4 000334 automatic bit(36) level 2 dcl 277 set ref 59* ring 5(18) based fixed bin(17,0) level 3 packed packed unaligned dcl 9-7 ref 182 sender 4 based bit(36) level 2 dcl 9-7 set ref 182 185* state based fixed bin(17,0) level 2 dcl 4-221 ref 199 208 substr builtin function dcl 304 ref 160 sys_log_ 000024 constant entry external dcl 293 ref 185 193 213 sys_log_$error_log 000026 constant entry external dcl 294 ref 48 75 145 169 trace_off 5(03) 000334 automatic bit(1) level 3 packed packed unaligned dcl 277 set ref 133* 134* ttt_info_$additional_info 000040 constant entry external dcl 299 ref 73 type parameter char packed unaligned dcl 167 set ref 165 169* unspec builtin function dcl 304 set ref 56* 185 185 value1 parameter char packed unaligned dcl 167 set ref 165 169* value2 parameter char packed unaligned dcl 167 set ref 165 169* version 000334 automatic char(8) level 2 dcl 277 set ref 57* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. ACCEPT_INPUT internal static fixed bin(17,0) initial dcl 3-15 ACKNOWLEDGE_ECHNEGO_INIT internal static fixed bin(17,0) initial dcl 3-22 ACKNOWLEDGE_ECHNEGO_STOP internal static fixed bin(17,0) initial dcl 3-23 ACTIVATE_COMMAND internal static bit(9) initial packed unaligned dcl 2-33 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 CRASH internal static fixed bin(17,0) initial dcl 3-12 DEACTIVATE_COMMAND internal static bit(9) initial packed unaligned dcl 2-34 DIALUP internal static fixed bin(17,0) initial dcl 3-10 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 DIAL_STATUS internal static fixed bin(17,0) initial dcl 3-19 DISCONNECT_COMMAND internal static bit(9) initial packed unaligned dcl 2-35 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 FRAME_FUNCTION_CODE internal static char(32) initial array packed unaligned dcl 2-60 FRAME_STATE_ARRAY internal static char(32) initial array packed unaligned dcl 2-50 FRAME_SUB_STATE_ARRAY internal static char(32) initial array packed unaligned dcl 2-53 FTP_SERVICE internal static fixed bin(17,0) initial dcl 4-259 HANGUP internal static fixed bin(17,0) initial dcl 3-11 INACTIVE internal static fixed bin(17,0) initial dcl 4-272 INPUT_AVAILABLE internal static fixed bin(17,0) initial dcl 3-14 INPUT_REJECTED internal static fixed bin(17,0) initial dcl 3-16 L2_HEADER_PAD internal static fixed bin(17,0) initial dcl 2-15 LAP_ACTIVE internal static fixed bin(17,0) initial dcl 1-38 LAP_HUNGUP internal static fixed bin(17,0) initial dcl 1-36 LAP_LISTENING internal static fixed bin(17,0) initial dcl 1-37 LINE_1050 internal static fixed bin(17,0) initial dcl 8-22 LINE_2741 internal static fixed bin(17,0) initial dcl 8-22 LINE_ARDS internal static fixed bin(17,0) initial dcl 8-22 LINE_ASCII internal static fixed bin(17,0) initial dcl 8-22 LINE_ASYNC1 internal static fixed bin(17,0) initial dcl 8-22 LINE_ASYNC2 internal static fixed bin(17,0) initial dcl 8-22 LINE_ASYNC3 internal static fixed bin(17,0) initial dcl 8-22 LINE_BSC internal static fixed bin(17,0) initial dcl 8-22 LINE_COLTS internal static fixed bin(17,0) initial dcl 8-22 LINE_DOWN_STATUS internal static fixed bin(18,0) initial unsigned dcl 2-48 LINE_DSA internal static fixed bin(17,0) initial dcl 8-22 LINE_ETX internal static fixed bin(17,0) initial dcl 8-22 LINE_G115 internal static fixed bin(17,0) initial dcl 8-22 LINE_HASP_OPR internal static fixed bin(17,0) initial dcl 8-22 LINE_HDLC internal static fixed bin(17,0) initial dcl 8-22 LINE_MC internal static fixed bin(17,0) initial dcl 8-22 LINE_POLLED_VIP internal static fixed bin(17,0) initial dcl 8-22 LINE_STATUS internal static fixed bin(17,0) initial dcl 3-18 LINE_SYNC1 internal static fixed bin(17,0) initial dcl 8-22 LINE_SYNC2 internal static fixed bin(17,0) initial dcl 8-22 LINE_SYNC3 internal static fixed bin(17,0) initial dcl 8-22 LINE_SYNCH internal static fixed bin(17,0) initial dcl 8-22 LINE_TELNET internal static fixed bin(17,0) initial dcl 8-22 LINE_UNKNOWN internal static fixed bin(17,0) initial dcl 8-22 LINE_VIP internal static fixed bin(17,0) initial dcl 8-22 LINE_X25LAP internal static fixed bin(17,0) initial dcl 8-22 MASKED internal static fixed bin(17,0) initial dcl 3-26 MC_SERVICE internal static fixed bin(17,0) initial dcl 4-259 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 NOT_CONFIGURED internal static fixed bin(17,0) initial dcl 4-280 QUIT internal static fixed bin(17,0) initial dcl 3-17 SEND_OUTPUT internal static fixed bin(17,0) initial dcl 3-13 SLAVE_SERVICE internal static fixed bin(17,0) initial dcl 4-259 SL_INFO_arg_given_in_structure internal static fixed bin(17,0) initial dcl 10-69 SL_INFO_arg_not_given internal static fixed bin(17,0) initial dcl 10-69 SL_INFO_as_mode internal static fixed bin(17,0) initial dcl 10-65 SL_INFO_command_mode internal static fixed bin(17,0) initial dcl 10-65 SL_INFO_version_1 internal static char(8) initial packed unaligned dcl 10-62 SL_LOG_BEEP internal static fixed bin(17,0) initial dcl 10-14 SL_LOG_CRASH internal static fixed bin(17,0) initial dcl 10-14 SL_LOG_SILENT internal static fixed bin(17,0) initial dcl 10-14 SL_TYPE internal static fixed bin(17,0) initial dcl 10-14 SL_TYPE_BEEP internal static fixed bin(17,0) initial dcl 10-14 SL_TYPE_CRASH internal static fixed bin(17,0) initial dcl 10-14 SPACE_AVAILABLE internal static fixed bin(17,0) initial dcl 3-21 TANDD_SERVICE internal static fixed bin(17,0) initial dcl 4-259 TIMER internal static fixed bin(17,0) initial dcl 3-24 USER_INTERRUPT internal static fixed bin(17,0) initial dcl 3-25 WRU_TIMEOUT internal static fixed bin(17,0) initial dcl 3-20 cdt based structure level 1 dcl 4-44 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 interrupt_info automatic bit(72) dcl 3-28 lap_data based structure level 1 dcl 1-16 lap_data_ptr automatic pointer dcl 1-14 lap_line_control_info_ptr automatic pointer dcl 2-17 lap_line_status_info based structure level 1 dcl 2-39 lap_line_status_info_ptr automatic pointer dcl 2-37 lap_load_info_ptr automatic pointer dcl 1-13 line_types internal static char(16) initial array packed unaligned dcl 8-54 max_line_type internal static fixed bin(17,0) initial dcl 8-48 n_sync_line_types internal static fixed bin(17,0) initial dcl 8-50 rtx_info automatic structure level 1 dcl 3-38 sl_info automatic structure level 1 dcl 10-24 sl_info_code_msg internal static structure level 1 dcl 10-187 sl_info_msg internal static structure level 1 dcl 10-214 sl_info_sev_code_label_msg internal static structure level 1 dcl 10-161 sl_info_sev_code_msg internal static structure level 1 dcl 10-82 sl_info_sev_coded_msg internal static structure level 1 dcl 10-134 sl_info_sev_msg internal static structure level 1 dcl 10-108 supported_fnp internal static bit(1) initial array packed unaligned dcl 5-31 sync_line_type internal static fixed bin(17,0) initial array dcl 8-52 timer_info automatic structure level 1 dcl 3-50 NAMES DECLARED BY EXPLICIT CONTEXT. as_lap_mpx_ 000332 constant entry external dcl 31 bad_conv 002276 constant entry internal dcl 141 ref 96 97 103 104 109 110 116 117 122 123 bad_parm 002442 constant entry internal dcl 165 ref 85 91 129 135 ev_chan_err 000441 constant label dcl 48 ref 54 get_parm 002360 constant entry internal dcl 151 ref 82 88 94 101 107 114 120 126 132 lap_cv_cmf 002107 constant entry external dcl 226 lap_dump 002057 constant entry external dcl 218 lap_load 000346 constant entry external dcl 36 lap_wakeup_handler 001535 constant entry external dcl 175 ref 53 53 return_to_caller 001531 constant label dcl 138 ref 148 170 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 3276 3344 3032 3306 Length 4002 3032 46 421 244 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME as_lap_mpx_ 466 external procedure is an external procedure. bad_conv internal procedure shares stack frame of external procedure as_lap_mpx_. get_parm internal procedure shares stack frame of external procedure as_lap_mpx_. bad_parm internal procedure shares stack frame of external procedure as_lap_mpx_. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME as_lap_mpx_ 000100 code as_lap_mpx_ 000101 add_info as_lap_mpx_ 000302 parm as_lap_mpx_ 000312 msg as_lap_mpx_ 000322 mpx_chan as_lap_mpx_ 000332 chan_listp as_lap_mpx_ 000334 boot_info as_lap_mpx_ 000344 error_proc as_lap_mpx_ 000350 dialup_info as_lap_mpx_ 000352 cdtp as_lap_mpx_ 000354 cdtep as_lap_mpx_ 000356 mpxep as_lap_mpx_ 000360 event_call_info_ptr as_lap_mpx_ 000410 i get_parm THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. fx1_to_fl2 r_e_as alloc_char_temp call_ent_var_desc call_ext_out_desc call_ext_out return_mac fl2_to_fx1 mdfx1 shorten_stack ext_entry ext_entry_desc set_chars_eis index_chars_eis THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. cv_dec_check_ cv_float_ get_process_id_ hphcs_$tty_control ipc_$create_ev_chn ipc_$decl_ev_call_chn ipc_$delete_ev_chn multiplexer_mgr_$mpx_crashed multiplexer_mgr_$mpx_load_failed multiplexer_mgr_$mpx_loaded sys_log_ sys_log_$error_log ttt_info_$additional_info THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$action_not_performed error_table_$bad_conversion LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 31 000331 36 000337 39 000367 40 000377 41 000402 42 000405 43 000411 45 000413 46 000425 47 000437 48 000441 50 000475 51 000500 53 000501 54 000527 56 000531 57 000534 58 000536 59 000541 61 000550 62 000552 63 000554 64 000556 65 000560 66 000562 67 000564 68 000566 70 000570 71 000571 73 000607 74 000631 75 000633 82 000673 83 000703 84 000712 85 000721 88 000732 89 000746 90 000755 91 000764 94 001001 95 001013 96 001035 97 001047 101 001071 102 001101 103 001124 104 001133 107 001147 108 001157 109 001205 110 001214 114 001231 115 001241 116 001265 117 001274 120 001311 121 001321 122 001344 123 001353 126 001370 127 001402 128 001411 129 001420 132 001434 133 001446 134 001455 135 001464 137 001500 138 001531 175 001532 178 001542 179 001546 180 001550 182 001552 185 001571 187 001630 190 001631 192 001635 193 001646 195 001702 198 001703 199 001706 201 001715 202 001720 203 001735 205 001736 206 001741 207 001756 208 001757 210 001765 211 001770 213 002016 214 002051 218 002052 221 002100 222 002101 226 002102 229 002126 230 002131 231 002134 232 002144 233 002150 246 002155 252 002230 256 002275 141 002276 145 002307 147 002354 148 002357 151 002360 156 002376 157 002406 160 002411 161 002437 165 002442 169 002465 170 002534 ----------------------------------------------------------- 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