COMPILATION LISTING OF SEGMENT bce_fwload 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 1014.5 mst Sat Options: optimize map 1 /****^ *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Bull Inc., 1987 * 4* * * 5* * Copyright, (C) Honeywell Information Systems Inc., 1984 * 6* * * 7* *********************************************************** */ 8 bce_fwload: proc (p_ss_info_ptr); 9 10 /* bce routine to load, upon command, a given mpc. 11*Keith Loepere, January 1984. */ 12 13 /* modified October of 1984 to add -channel argument - Allen Ball. */ 14 15 /* format: style4,initcol1,indattr,declareind8,dclind4,idind36,ifthenstmt,ifthen,^indproc,delnl,insnl */ 16 17 dcl addr builtin; 18 dcl arg char (arg_len) based (arg_ptr); 19 dcl arg_count fixed bin; /* number of mpcs */ 20 dcl arg_len fixed bin (21); 21 dcl arg_num fixed bin; /* loop counter */ 22 dcl arg_ptr ptr; 23 dcl baseno builtin; 24 dcl bin builtin; 25 dcl character builtin; 26 dcl code fixed bin (35); 27 dcl com_err_ entry () options (variable); 28 dcl config_$find entry (char (4) aligned, ptr); 29 dcl config_$find_2 entry (char (4) aligned, char (4) aligned, ptr); 30 dcl cu_$arg_count_rel entry (fixed bin, ptr, fixed bin (35)); 31 dcl cu_$arg_ptr_rel entry (fixed bin, ptr, fixed bin (21), fixed bin (35), ptr); 32 dcl cv_dec_check_ entry (char (*), fixed bin (35)) returns (fixed bin (35)); 33 dcl dimension builtin; 34 dcl divide builtin; 35 dcl fw_modules (16) char (8); /* names of fw modules to load */ 36 dcl fw_module_count fixed bin; /* number of modules */ 37 dcl hc_load_mpc entry (char (8) aligned, ptr, fixed bin (18), char (*), fixed bin (35)); 38 dcl hc_load_mpc$urc entry (char (8) aligned, (*) ptr, (*) fixed bin (18), char (*), fixed bin (35)); 39 dcl increment fixed bin; 40 dcl index builtin; 41 dcl ioa_ entry () options (variable); 42 dcl ltrim builtin; 43 dcl max builtin; 44 dcl me char (6) static options (constant) init ("fwload"); 45 dcl mpc_chanid char (8) aligned; /* iom/channel name */ 46 dcl mpc_name char (4) aligned; /* as in mspa */ 47 dcl null builtin; 48 dcl p_ss_info_ptr ptr parameter; 49 dcl preferred_mpc_chanid char (8) aligned; 50 dcl slt$ external; 51 dcl slt_manager$get_seg_ptr entry (char (32) aligned) returns (ptr); 52 dcl substr builtin; 53 dcl translate builtin; 54 55 ss_info_ptr = p_ss_info_ptr; 56 call cu_$arg_count_rel (arg_count, ss_info.arg_list_ptr, code); 57 if code ^= 0 | arg_count < 1 then do; 58 usage: 59 call com_err_ (code, me, "Usage: fwload mpc_names {args}"); 60 return; 61 end; 62 do arg_num = 1 repeat arg_num + increment while (arg_num <= arg_count); 63 preferred_mpc_chanid = ""; 64 increment = 1; 65 call cu_$arg_ptr_rel (arg_num, arg_ptr, arg_len, code, ss_info.arg_list_ptr); 66 mpc_name = arg; 67 if arg_num + 2 <= arg_count then do; 68 call cu_$arg_ptr_rel (arg_num + 1, arg_ptr, arg_len, code, ss_info.arg_list_ptr); 69 if substr (arg, 1, 1) = "-" then do; /* It must be a control argument. */ 70 if arg = "-channel" | arg = "-chnl" then do; 71 call cu_$arg_ptr_rel (arg_num + 2, arg_ptr, arg_len, code, ss_info.arg_list_ptr); 72 if code = 0 then do; 73 preferred_mpc_chanid = arg; 74 increment = 3; 75 end; 76 else do; 77 call ioa_ ("^a: A channel must be specified.", me); 78 return; 79 end; 80 end; 81 else do; 82 call ioa_ ("^a: ^a is not a recognized option.", me, arg); 83 return; 84 end; 85 end; 86 end; 87 if find_mpc (mpc_chanid, mpc_name, fw_modules, fw_module_count, mpc_cardp) then do; 88 if preferred_mpc_chanid ^= "" then do; 89 if validate_primary_channel (preferred_mpc_chanid, mpc_cardp) then 90 call load_mpc (preferred_mpc_chanid, mpc_name, fw_modules, fw_module_count); 91 else do; 92 call ioa_ ("^a: Channel ^a is not a primary channel for ^a.", me, preferred_mpc_chanid, 93 mpc_name); 94 return; 95 end; 96 end; 97 else call load_mpc (mpc_chanid, mpc_name, fw_modules, fw_module_count); 98 end; 99 else do; 100 call ioa_ ("^a: ^a is not a valid mpc.", me, mpc_name); 101 return; 102 end; 103 end; 104 return; 105 106 find_mpc: 107 proc (mpc_chanid, mpc_name, fw_modules, fw_module_count, p_mpc_cardp) returns (bit (1) aligned); 108 109 /* search the config deck for an mpc so as to know what channel and module is 110* needed - also find peripherals for urcs */ 111 112 dcl code fixed bin (35); 113 dcl fw_modules (16) char (8) parameter; 114 dcl fw_module_count fixed bin parameter; 115 dcl fw_module_num fixed bin; /* loop counter */ 116 dcl mpc_chanid char (8) aligned parameter; 117 /* iom/channel */ 118 dcl mpc_name char (4) aligned parameter; 119 /* as in mspa */ 120 dcl mpc_type_letter char (1); /* code letter for mpc type, d t or u */ 121 dcl overlay_name char (4); /* firmware module type to overlay */ 122 dcl p_mpc_cardp ptr parameter; 123 124 /* find the mpc */ 125 126 mpc_cardp = null; 127 call config_$find_2 (MPC_CARD_WORD, mpc_name, mpc_cardp); 128 if mpc_cardp = null then go to mpc_error; 129 p_mpc_cardp = mpc_cardp; 130 131 call io_chnl_util$iom_to_name ((mpc_card.port (1).iom), (mpc_card.port (1).chan), mpc_chanid, code); 132 if code ^= 0 then do; 133 mpc_error: 134 call com_err_ (0, me, "No such mpc ^a.", mpc_name); 135 return ("0"b); 136 end; 137 138 /* find the firmware type */ 139 140 fw_module_count = 1; 141 if substr (mpc_name, 1, 3) = "msp" then mpc_type_letter = "d"; 142 else if substr (mpc_name, 1, 3) = "mtp" then mpc_type_letter = "t"; 143 else if substr (mpc_name, 1, 3) = "urp" then mpc_type_letter = "u"; 144 else do; 145 call com_err_ (0, me, "Unrecognizable mpc type for mpc ^a", mpc_name); 146 return ("0"b); 147 end; 148 fw_modules (1) = mpc_type_letter || ltrim (character (mpc_card.model)); 149 if mpc_type_letter ^= "u" then return ("1"b); /* non urcs have just the main firmware */ 150 151 /* urc - we must find peripherals on it */ 152 153 fw_module_count = 1 + mpc_card.port (1).nchan; 154 do fw_module_num = 2 to fw_module_count; 155 fw_modules (fw_module_num) = "none"; /* for now */ 156 end; 157 158 prph_cardp = null; 159 call config_$find ("prph", prph_cardp); 160 do while (prph_cardp ^= null); 161 if (prph_card.iom = mpc_card.port (1).iom) & 162 ((mpc_card.port (1).chan <= prph_card.chan) 163 & (prph_card.chan < mpc_card.port (1).chan + mpc_card.port (1).nchan)) then do; 164 /* prph on this mpc */ 165 if substr (prph_card.name, 1, 3) = "prt" then overlay_name = "pr4"; 166 else if substr (prph_card.name, 1, 3) = "rdr" then overlay_name = "crz"; 167 else if substr (prph_card.name, 1, 3) = "pun" then overlay_name = "cpz"; 168 else if substr (prph_card.name, 1, 3) = "ccu" then overlay_name = "crp"; 169 else overlay_name = "none"; 170 fw_module_num = prph_card.chan - mpc_card.port (1).chan + 2; 171 if fw_modules (fw_module_num) ^= "ccu" then fw_modules (fw_module_num) = overlay_name; 172 /* ccu over-rides crz crp */ 173 end; 174 call config_$find ("prph", prph_cardp); 175 end; 176 return ("1"b); 177 end; 178 179 load_mpc: 180 proc (mpc_chanid, mpc_name, fw_modules, fw_module_count); 181 182 dcl controller_fwid char (32) aligned; /* name of firmware object */ 183 dcl fw_module_count fixed bin parameter; 184 dcl fw_modules (16) char (8) parameter; 185 dcl fw_seg_lengths (16) fixed bin (18);/* argument to hc_load_mpc of firmware object lengths */ 186 dcl fw_seg_num fixed bin; /* loop counter */ 187 dcl fw_seg_ptrs (16) ptr; /* arg to hc_load_mpc */ 188 dcl mpc_chanid char (8) aligned parameter; 189 /* iom/channel */ 190 dcl mpc_model fixed bin; /* decimal mpc type */ 191 dcl mpc_name char (4) aligned parameter; 192 /* as in mspa */ 193 dcl mpc_overlay char (8); /* firmware code for overlay */ 194 dcl mpc_type char (8); /* model in ascii, with model and type letter code */ 195 dcl mpc_type_index fixed bin; /* loop counter */ 196 dcl problem char (64); /* load failure message */ 197 dcl var_fw_seg_lengths (fw_module_count) fixed bin (18) based (addr (fw_seg_lengths)); 198 /* arrays so as to pass (*) dim to hc_load_mpc */ 199 dcl var_fw_seg_ptrs (fw_module_count) ptr based (addr (fw_seg_ptrs)); 200 201 /* find the real firmware objects */ 202 203 do fw_seg_num = 1 to fw_module_count; 204 if fw_seg_num = 1 then do; /* main firmware */ 205 mpc_type = fw_modules (1); 206 mpc_model = cv_dec_check_ (substr (mpc_type, 2), code); 207 if code ^= 0 then go to bad_mpc; 208 if substr (mpc_type, 1, 1) = "d" then do; 209 do mpc_type_index = 1 to config_data_$mpc_msp_model_names.count 210 while (mpc_model ^= config_data_$mpc_msp_model_names.names (mpc_type_index).model); 211 end; 212 if mpc_type_index > config_data_$mpc_msp_model_names.count then go to bad_mpc; 213 controller_fwid = "fw." || config_data_$mpc_msp_model_names.names (mpc_type_index).fw_tag; 214 end; 215 else if substr (mpc_type, 1, 1) = "t" then do; 216 do mpc_type_index = 1 to config_data_$mpc_mtp_model_names.count 217 while (mpc_model ^= config_data_$mpc_mtp_model_names.names (mpc_type_index).model); 218 end; 219 if mpc_type_index > config_data_$mpc_mtp_model_names.count then go to bad_mpc; 220 controller_fwid = "fw." || config_data_$mpc_mtp_model_names.names (mpc_type_index).fw_tag; 221 end; 222 else if substr (mpc_type, 1, 1) = "u" then do; 223 do mpc_type_index = 1 to config_data_$mpc_urp_model_names.count 224 while (mpc_model ^= config_data_$mpc_urp_model_names.names (mpc_type_index).model); 225 end; 226 if mpc_type_index > config_data_$mpc_urp_model_names.count then go to bad_mpc; 227 controller_fwid = "fw." || config_data_$mpc_urp_model_names.names (mpc_type_index).fw_tag; 228 end; 229 else do; 230 bad_mpc: 231 call com_err_ (0, me, "Unrecognizable mpc type ^a for mpc ^a", mpc_type, mpc_name); 232 return; 233 end; 234 end; 235 else do; /* urc overlay */ 236 mpc_overlay = fw_modules (fw_seg_num); 237 if mpc_overlay = "none" then 238 controller_fwid = "none"; 239 else do; 240 if mpc_overlay = "pr4" then controller_fwid = "fw.urcmpc.u400"; 241 else if mpc_overlay = "crp" | mpc_overlay = "crz" | mpc_overlay = "cpz" then 242 controller_fwid = "fw.urcmpc.ucrp"; 243 else do; 244 call com_err_ (0, me, "Unrecogniable overlay name ^a for mpc ^a", mpc_overlay, mpc_name); 245 return; 246 end; 247 end; 248 end; 249 250 /* name found, find object */ 251 252 if controller_fwid ^= "none" then do; 253 fw_seg_ptrs (fw_seg_num) = slt_manager$get_seg_ptr (controller_fwid); 254 if fw_seg_ptrs (fw_seg_num) = null then do; 255 call com_err_ (0, me, "Firmware ^a not available for model ^a mpc.", controller_fwid, mpc_type); 256 return; 257 end; 258 sltp = addr (slt$); 259 sltep = addr (slt.seg (bin (baseno (fw_seg_ptrs (fw_seg_num)), 18))); 260 fw_seg_lengths (fw_seg_num) = divide (slte_uns.bit_count, 36, 24, 0) - 1; 261 end; 262 else do; 263 fw_seg_ptrs (fw_seg_num) = null; 264 fw_seg_lengths (fw_seg_num) = 0; 265 end; 266 end; 267 268 /* load it! */ 269 270 if fw_module_count = 1 then 271 call hc_load_mpc (mpc_chanid, fw_seg_ptrs (1), fw_seg_lengths (1), problem, code); 272 else call hc_load_mpc$urc (mpc_chanid, var_fw_seg_ptrs, var_fw_seg_lengths, problem, code); 273 if code ^= 0 then call com_err_ (code, me, "^a booting mpc ^a", problem, mpc_name); 274 return; 275 end; 276 277 validate_primary_channel: 278 proc (p_mpc_chanid, p_mpc_cardp) returns (bit (1)); 279 280 dcl channel fixed bin (8); 281 dcl code fixed bin (35); 282 dcl iom fixed bin (3); 283 dcl mpc_chanid char (8) aligned; 284 dcl mpc_port_index fixed bin; 285 dcl p_mpc_chanid char (8) aligned parameter; 286 dcl p_mpc_cardp ptr parameter; 287 288 mpc_chanid = p_mpc_chanid; 289 mpc_cardp = p_mpc_cardp; 290 iom = index ("ABCD", translate (substr (mpc_chanid, 1, 1), "ABCD", "abcd")); 291 channel = cv_dec_check_ (substr (mpc_chanid, 2), code); 292 if code ^= 0 then return ("0"b); 293 do mpc_port_index = 1 to dimension (mpc_card_array.port, 1); 294 if (mpc_card_array.port (mpc_port_index).iom = iom) & 295 (mpc_card_array.port (mpc_port_index).chan = channel) then return ("1"b); 296 end; 297 return ("0"b); 298 end; 299 1 1 /* Begin include file bce_subsystem_info_.incl.pl1 BIM 11/82 */ 1 2 1 3 /* format: style3 */ 1 4 1 5 /* Deleted unused items, Keith Loepere, 5/84 */ 1 6 1 7 1 8 /****^ HISTORY COMMENTS: 1 9* 1) change(86-04-22,Farley), approve(86-07-18,MCR7439), 1 10* audit(86-10-08,Fawcett), install(86-10-20,MR12.0-1189): 1 11* Added request_handling_opr_aborts flag for save/restore. 1 12* END HISTORY COMMENTS */ 1 13 1 14 declare ss_info_ptr pointer; 1 15 declare 1 ss_info aligned based (ss_info_ptr), 1 16 2 request_table_ptr 1 17 pointer, 1 18 2 abort_label label, 1 19 2 name char (32) unaligned, 1 20 2 arg_list_ptr pointer, 1 21 2 info_ptr pointer, 1 22 2 flags aligned, 1 23 3 forbid_semicolons bit (1) unaligned, 1 24 3 request_handling_opr_aborts bit (1) unaligned; 1 25 1 26 /* End include file bce_subsystem_info_ */ 300 301 2 1 /* Begin include file config_data_dcls.incl.pl1 BIM 9/82 */ 2 2 2 3 /****^ HISTORY COMMENTS: 2 4* 1) change(85-09-09,Farley), approve(85-09-09,MCR6979), 2 5* audit(86-01-17,CLJones), install(86-03-21,MR12.0-1033): 2 6* Add changes made to 2 7* config_data_.cds. 2 8* 2) change(86-10-21,Fawcett), approve(86-10-21,PBF7381), 2 9* audit(86-10-23,Farley), install(86-10-28,MR12.0-1200): 2 10* Corrected the number of tape drive models supported. 2 11* END HISTORY COMMENTS */ 2 12 2 13 /* format: style3 */ 2 14 /* Modified 830523 to add console io_type and line_leng fields for different 2 15* operator's consoles and to fix a size bug... -E. A. Ranzenbach */ 2 16 /* Modified 841101 by Paul Farley to add changes made to config_data_.cds */ 2 17 2 18 /* WARNING WARNING */ 2 19 2 20 /* Due to the awful PL/I restriction that prohibits any expressions */ 2 21 /* in external variable extents, the arrays here have integers for */ 2 22 /* extents. Changes to config_data_.cds should be reflected here, */ 2 23 /* Because the declares in config_data_.cds use the "like" attribute. */ 2 24 /* Just in case, though, do NOT use hbound. Use the .count fields */ 2 25 /* in the structures instead. */ 2 26 2 27 declare config_data_$chnl_cardx 2 28 fixed binary external static; 2 29 declare config_data_$clok_cardx 2 30 fixed binary external static; 2 31 declare config_data_$cpu_cardx 2 32 fixed binary external static; 2 33 declare config_data_$fnp_cardx 2 34 fixed binary external static; 2 35 declare config_data_$intk_cardx 2 36 fixed binary external static; 2 37 declare config_data_$iom_cardx 2 38 fixed binary external static; 2 39 declare config_data_$mem_cardx 2 40 fixed binary external static; 2 41 declare config_data_$mpc_msp_cardx 2 42 fixed binary external static; 2 43 declare config_data_$mpc_mtp_cardx 2 44 fixed binary external static; 2 45 declare config_data_$ipc_fips_cardx 2 46 fixed binary external static; 2 47 declare config_data_$mpc_urp_cardx 2 48 fixed binary external static; 2 49 declare config_data_$mpc_cardx 2 50 fixed binary external static; 2 51 declare config_data_$mpcs_msp_cardx 2 52 fixed binary external static; 2 53 declare config_data_$mpcs_mtp_cardx 2 54 fixed binary external static; 2 55 declare config_data_$mpcs_urp_cardx 2 56 fixed binary external static; 2 57 declare config_data_$mpcs_cardx 2 58 fixed binary external static; 2 59 declare config_data_$parm_cardx 2 60 fixed binary external static; 2 61 declare config_data_$part_cardx 2 62 fixed binary external static; 2 63 declare config_data_$prph_dsk_cardx 2 64 fixed binary external static; 2 65 declare config_data_$prph_prt_cardx 2 66 fixed binary external static; 2 67 declare config_data_$prph_rdr_cardx 2 68 fixed binary external static; 2 69 declare config_data_$prph_pun_cardx 2 70 fixed binary external static; 2 71 declare config_data_$prph_ccu_cardx 2 72 fixed binary external static; 2 73 declare config_data_$prph_tap_cardx 2 74 fixed binary external static; 2 75 declare config_data_$prph_opc_cardx 2 76 fixed binary external static; 2 77 declare config_data_$prph_cardx 2 78 fixed binary external static; 2 79 declare config_data_$root_cardx 2 80 fixed binary external static; 2 81 declare config_data_$salv_cardx 2 82 fixed binary external static; 2 83 declare config_data_$schd_cardx 2 84 fixed binary external static; 2 85 declare config_data_$sst_cardx 2 86 fixed binary external static; 2 87 declare config_data_$stok_cardx 2 88 fixed binary external static; 2 89 declare config_data_$tbls_cardx 2 90 fixed binary external static; 2 91 declare config_data_$udsk_cardx 2 92 fixed binary external static; 2 93 2 94 declare 1 config_data_$config_cards 2 95 aligned external static, 2 96 2 count fixed binary, 2 97 2 per_card (32) aligned, 2 98 3 name char (4) aligned, 2 99 3 second_field char (4) aligned, 2 100 3 flags aligned, 2 101 4 match_second bit (1) unaligned, /* PRPH FOO */ 2 102 4 match_only_3 bit (1) unaligned; /* XXXn type */ 2 103 2 104 declare 1 config_data_$mpc_msp_model_names 2 105 aligned external static, 2 106 2 count fixed binary, 2 107 2 names (9) aligned, 2 108 3 model fixed binary, 2 109 3 name character (8), 2 110 3 fw_tag character (16), 2 111 3 valid_drives (16) fixed binary unaligned; 2 112 2 113 declare 1 config_data_$mpc_mtp_model_names 2 114 aligned external static, 2 115 2 count fixed binary, 2 116 2 names (7) aligned, 2 117 3 model fixed binary, 2 118 3 name character (8), 2 119 3 fw_tag character (16), 2 120 3 valid_drives (16) fixed binary unaligned; 2 121 2 122 declare 1 config_data_$mpc_urp_model_names 2 123 aligned external static, 2 124 2 count fixed binary, 2 125 2 names (6) aligned, 2 126 3 model fixed binary, 2 127 3 name character (8), 2 128 3 fw_tag character (16); /* "EURC" for EURC */ 2 129 2 130 declare 1 config_data_$ipc_msp_model_names 2 131 aligned external static, 2 132 2 count fixed binary, 2 133 2 names (1) aligned, 2 134 3 model fixed binary, 2 135 3 name character (8), 2 136 3 fw_tag character (16), 2 137 3 valid_drives (16) fixed binary unaligned; 2 138 2 139 declare 1 config_data_$ipc_mtp_model_names 2 140 aligned external static, 2 141 2 count fixed binary, 2 142 2 names (1) aligned, 2 143 3 model fixed binary, 2 144 3 name character (8), 2 145 3 fw_tag character (16), 2 146 3 valid_drives (16) fixed binary unaligned; 2 147 2 148 declare 1 config_data_$disk_drive_model_names 2 149 aligned external static, 2 150 2 count fixed binary, 2 151 2 names (5) aligned, 2 152 3 model fixed binary, 2 153 3 name character (8), 2 154 3 device_0_valid bit (1); 2 155 2 156 declare 1 config_data_$tape_drive_model_names 2 157 aligned external static, 2 158 2 count fixed binary, 2 159 2 names (9) aligned, 2 160 3 model fixed binary, 2 161 3 name character (8), 2 162 3 device_0_valid bit (1); 2 163 2 164 declare 1 config_data_$printer_model_names 2 165 aligned external static, 2 166 2 count fixed binary, 2 167 2 names (5) aligned, 2 168 3 model fixed binary, 2 169 3 name character (8); 2 170 2 171 declare 1 config_data_$reader_model_names 2 172 aligned external static, 2 173 2 count fixed binary, 2 174 2 names (4) aligned, 2 175 3 model fixed binary, 2 176 3 name character (8); 2 177 2 178 declare 1 config_data_$ccu_model_names 2 179 aligned external static, 2 180 2 count fixed binary, 2 181 2 names (1) aligned, 2 182 3 model fixed binary, 2 183 3 name character (8); 2 184 2 185 declare 1 config_data_$punch_model_names 2 186 aligned external static, 2 187 2 count fixed binary, 2 188 2 names (3) aligned, 2 189 3 model fixed binary, 2 190 3 name character (8); 2 191 2 192 declare 1 config_data_$console_model_names 2 193 aligned external static, 2 194 2 count fixed binary, 2 195 2 names (3) aligned, 2 196 3 model fixed binary, 2 197 3 name character (8), 2 198 3 line_leng fixed bin (17), 2 199 3 io_type character (4); 2 200 2 201 /* End include file config_data_dcls.incl.pl1 */ 302 303 3 1 /* BEGIN INCLUDE FILE ... config_mpc_card.incl.pl1 ... 11/27/80 W. Olin Sibert */ 3 2 3 3 dcl mpc_cardp ptr; /* Pointer to an MPC card. */ 3 4 3 5 dcl 1 mpc_card aligned based (mpc_cardp), 3 6 2 word char (4), /* "mpc" */ 3 7 2 name char (4), /* Name of this MPC - e.g., "mspa" */ 3 8 2 model fixed bin, /* Model of this MPC - e.g., 601. */ 3 9 2 port (4), /* Per port information. 12 fields total */ 3 10 3 iom fixed bin (3), /* IOM number */ 3 11 3 chan fixed bin (8), /* Channel number. */ 3 12 3 nchan fixed bin, /* Number of logical channels on this channel. */ 3 13 3 14 2 type_word aligned, 3 15 3 field_type (14) bit (2) unaligned, /* type of each field; see config_deck.incl.pl1 */ 3 16 3 pad1 bit (4) unaligned, 3 17 3 n_fields fixed bin (4) unsigned unaligned; /* number of fields used on card */ 3 18 3 19 dcl 1 mpc_card_array aligned based (mpc_cardp), /* Overlay for MPC port array */ 3 20 2 pad1 (3) bit (36) aligned, 3 21 2 port (divide (max (0, (mpc_card.n_fields - 2)), 3, 17, 0)), 3 22 3 iom fixed bin (3), /* IOM number */ 3 23 3 chan fixed bin (8), /* Channel number. */ 3 24 3 nchan fixed bin; /* Number of logical channels on this channel. */ 3 25 3 26 dcl MPC_CARD_WORD char (4) aligned internal static options (constant) init ("mpc"); 3 27 3 28 /* END INCLUDE FILE ... config_mpc_card.incl.pl1 */ 304 305 4 1 /* BEGIN INCLUDE FILE ... config_prph_card.incl.pl1 ... 11/27/80 W. Olin Sibert */ 4 2 4 3 dcl prph_cardp ptr; /* Pointer to a PRPH card. */ 4 4 4 5 dcl 1 prph_card based (prph_cardp) aligned, /* PRPH card declaration */ 4 6 2 word char (4), /* "prph" */ 4 7 2 name char (4), /* subsystem name */ 4 8 2 iom fixed bin (3), /* IOM number */ 4 9 2 chan fixed bin (8), /* channel number */ 4 10 2 model fixed bin, /* model number */ 4 11 2 state char (4), /* ON/OFF state */ 4 12 2 pad (9) bit (36) aligned, /* pad to 15 fields */ 4 13 4 14 2 type_word aligned, 4 15 3 field_type (14) bit (2) unaligned, /* type of each field; see config_deck.incl.pl1 */ 4 16 3 pad1 bit (4) unaligned, 4 17 3 n_fields fixed bin (4) unsigned unaligned; /* number of fields used on card */ 4 18 4 19 dcl PRPH_CARD_WORD char (4) aligned internal static options (constant) init ("prph"); 4 20 4 21 /* END INCLUDE FILE ... config_prph_card.incl.pl1 */ 306 307 5 1 /* START OF: io_chnl_util_dcls.incl.pl1 * * * * * * * * * * * * * * * * */ 5 2 5 3 /* Written by Charles Hornig, 1st quarter 1981 */ 5 4 /* Canonicalization entry added by Chris Jones, January 1984 */ 5 5 5 6 /* chanid = canonicalize_chanid (chanid); */ 5 7 /* format: style4,delnl,insnl,indattr,ifthen,dclind10 */ 5 8 dcl io_chnl_util$canonicalize_chanid 5 9 entry (char (8) aligned) returns (char (8) aligned); 5 10 5 11 /* call iom_to_name (iomno, channo, name, code); */ 5 12 dcl io_chnl_util$iom_to_name 5 13 entry (fixed bin (3), fixed bin (7), char (8) aligned, fixed bin (35)); 5 14 5 15 /* call name_to_iom (name, iomno, channo, code); */ 5 16 dcl io_chnl_util$name_to_iom 5 17 entry (char (8) aligned, fixed bin (3), fixed bin (7), fixed bin (35)); 5 18 5 19 /* END OF: io_chnl_util_dcls.incl.pl1 * * * * * * * * * * * * * * * * */ 308 309 6 1 /* BEGIN INCLUDE FILE slt.incl.pl1 --- Last modified 2/76 SHW */ 6 2 6 3 /* Declarations for Segment Loading Table header and array. 6 4* 6 5* Used by Initialization and MST Checker subroutines */ 6 6 6 7 dcl sltp ptr, /* pointer to base of SLT segment */ 6 8 names_ptr ptr, /* pointer to base of SLT names segment */ 6 9 namep ptr, /* pointer to segment name list block */ 6 10 pathp ptr, /* pointer to segment's directory path name */ 6 11 aclp ptr; /* pointer to acl structure */ 6 12 6 13 declare 1 slt based (sltp) aligned, /* declaration of Segment Loading Table (SLT) */ 6 14 2 name_seg_ptr ptr, /* words 0-1, pointer (ITS pair) to name segment */ 6 15 2 free_core_start fixed bin (24), /* word 2, start of free core after perm-wired */ 6 16 2 first_sup_seg fixed bin (18), /* word 3, first supervisor segment number */ 6 17 2 last_sup_seg fixed bin (18), /* word 4, last supervisor segment number */ 6 18 2 first_init_seg fixed bin (18), /* word 5, first initializer segment number */ 6 19 2 last_init_seg fixed bin (18), /* word 6, last initializer segment number */ 6 20 2 free_core_size fixed bin (24), /* size (in words) of free core after perm-wired */ 6 21 2 seg (0:8191) aligned, /* segment entries (4 words each) */ 6 22 3 slte (4) fixed bin (35); /* Space for SLT entries */ 6 23 6 24 /* auxiliary segment of SLT for storing of segment names and directory path names */ 6 25 6 26 declare 1 name_seg based (names_ptr) aligned, /* name segment header */ 6 27 2 pad bit (18) unal, 6 28 2 next_loc bit (18) unal, /* Next available free location in name seg */ 6 29 2 ht (0:127) bit (18) aligned; /* Names hash table */ 6 30 6 31 declare 1 segnam based (namep) aligned, /* declaration for segment name block */ 6 32 2 count fixed bin (17), /* number of segment names in this block */ 6 33 2 names (50 refer (segnam.count)), /* segment name array */ 6 34 3 hp bit (18) unal, /* hash thread pointer */ 6 35 3 ref bit (1) unal, /* "1"b if name referenced */ 6 36 3 pad bit (5) unal, 6 37 3 segno bit (12) unal, /* segment number associated with this name */ 6 38 3 name char (32) unal; /* space for name (max 32 characters) */ 6 39 6 40 declare 1 path based (pathp) aligned, /* declaration for directory path name */ 6 41 2 size fixed bin (17), /* length of pathname */ 6 42 2 name char (168 refer (path.size)) unal, /* directory path name */ 6 43 2 acls fixed bin; /* ACL list starts here */ 6 44 6 45 declare 1 acls based (aclp) aligned, /* declaration for acl list */ 6 46 2 count fixed bin, /* number of entries in acl list */ 6 47 2 acl (50 refer (acls.count)), /* array of acl entries */ 6 48 3 userid char (32), /* user specification */ 6 49 3 mode bit (36) aligned, /* mode for the specified user */ 6 50 3 pad bit (36) aligned, 6 51 3 code fixed bin; 6 52 6 53 6 54 /* END INCLUDE FILE slt.incl.pl1 */ 310 311 7 1 /* BEGIN INCLUDE FILE slte.incl.pl1 */ 7 2 /* Declaration for Segment Loading Table Entry structure. 7 3* Used by Initialization, MST Generation, and MST Checker subroutines */ 7 4 /* modified 5/4/76 by Noel I. Morris */ 7 5 /* last modified 12/12/83 by Keith Loepere for breakpointable */ 7 6 /* format: style3 */ 7 7 7 8 dcl sltep ptr; 7 9 7 10 dcl 1 slte_uns based (sltep) aligned, 7 11 ( 2 names_ptr bit (18), /* rel pointer to thread of names */ 7 12 2 path_ptr bit (18), /* rel pointer to pathname (if present) */ 7 13 /**** End of word 1 */ 7 14 2 access bit (4), /* SDW access bit (REWP) */ 7 15 2 cache bit (1), /* Segment to be allowed in cache */ 7 16 2 abs_seg bit (1), /* segment is an abs seg if ON */ 7 17 2 firmware_seg bit (1), /* load in low 256 */ 7 18 2 layout_seg bit (1), /* mailbox & such */ 7 19 2 breakpointable bit (1), /* includes breakpoint_page */ 7 20 2 pad1 bit (3), /* unused */ 7 21 2 wired bit (1), /* segment is wired if ON */ 7 22 2 paged bit (1), /* segment is paged if ON */ 7 23 2 per_process bit (1), /* segment is per-process if ON */ 7 24 2 pad3 bit (2), 7 25 2 acl_provided bit (1), /* ON if acl structure follows path_name on MST */ 7 26 /**** End of 1st half of word 2 */ 7 27 2 pad4 bit (3), 7 28 2 branch_required bit (1), /* path name supplied if ON */ 7 29 2 init_seg bit (1), /* segment is init_seg if ON */ 7 30 2 temp_seg bit (1), /* segment is temp_seg if ON */ 7 31 2 link_provided bit (1), /* linkage segment provided if ON */ 7 32 2 link_sect bit (1), /* segment is linkage segment if ON */ 7 33 2 link_sect_wired bit (1), /* linkage segment is wired if ON */ 7 34 2 combine_link bit (1), /* linkage is combined if ON */ 7 35 2 pre_linked bit (1), /* lot entry has been made if ON */ 7 36 2 defs bit (1), /* segment is definitions segment if ON */ 7 37 /***** End of word 2 */ 7 38 2 pad5 bit (6), 7 39 2 cur_length fixed bin (9) uns, /* current length of segment (in 1024 word blocks) */ 7 40 2 ringbrack (3) fixed bin (3) uns, /* ringbrackets */ 7 41 2 segno fixed bin (18) uns, /* text/link segment number */ 7 42 /***** End of word 3 */ 7 43 2 pad7 bit (3), 7 44 2 max_length fixed bin (9) uns, /* maximum length for segment */ 7 45 2 bit_count fixed bin (24) uns 7 46 ) unaligned; /* bitcount of segment */ 7 47 7 48 dcl 1 slte based (sltep) aligned, 7 49 ( 2 names_ptr bit (18), /* rel pointer to thread of names */ 7 50 2 path_ptr bit (18), /* rel pointer to pathname (if present) */ 7 51 2 access bit (4), /* SDW access bit (REWP) */ 7 52 2 cache bit (1), /* Segment to be allowed in cache */ 7 53 2 abs_seg bit (1), /* segment is an abs seg if ON */ 7 54 2 firmware_seg bit (1), 7 55 2 layout_seg bit (1), 7 56 2 breakpointable bit (1), 7 57 2 pad2 bit (3), 7 58 2 wired bit (1), /* segment is wired if ON */ 7 59 2 paged bit (1), /* segment is paged if ON */ 7 60 2 per_process bit (1), /* segment is per-process if ON */ 7 61 2 pad3 bit (2), 7 62 2 acl_provided bit (1), /* ON if acl structure follows path_name on MST */ 7 63 2 pad4 bit (3), 7 64 2 branch_required bit (1), /* path name supplied if ON */ 7 65 2 init_seg bit (1), /* segment is init_seg if ON */ 7 66 2 temp_seg bit (1), /* segment is temp_seg if ON */ 7 67 2 link_provided bit (1), /* linkage segment provided if ON */ 7 68 2 link_sect bit (1), /* segment is linkage segment if ON */ 7 69 2 link_sect_wired bit (1), /* linkage segment is wired if ON */ 7 70 2 combine_link bit (1), /* linkage is combined if ON */ 7 71 2 pre_linked bit (1), /* lot entry has been made if ON */ 7 72 2 defs bit (1), /* segment is definitions segment if ON */ 7 73 2 pad5 bit (6), 7 74 2 cur_length bit (9), /* current length of segment (in 1024 word blocks) */ 7 75 2 ringbrack (3) bit (3), /* ringbrackets */ 7 76 2 segno bit (18), /* text/link segment number */ 7 77 2 pad6 bit (3), 7 78 2 max_length bit (9), /* maximum length for segment */ 7 79 2 bit_count bit (24) 7 80 ) unaligned; /* bitcount of segment */ 7 81 7 82 /* END INCLUDE FILE slte.incl.pl1 */ 312 313 end; 314 SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 11/11/89 0839.1 bce_fwload.pl1 >special_ldd>install>MR12.3-1114>bce_fwload.pl1 300 1 10/21/86 1251.6 bce_subsystem_info_.incl.pl1 >ldd>include>bce_subsystem_info_.incl.pl1 302 2 10/30/86 2010.5 config_data_dcls.incl.pl1 >ldd>include>config_data_dcls.incl.pl1 304 3 05/08/81 1853.6 config_mpc_card.incl.pl1 >ldd>include>config_mpc_card.incl.pl1 306 4 10/31/84 1315.5 config_prph_card.incl.pl1 >ldd>include>config_prph_card.incl.pl1 308 5 07/11/84 0937.3 io_chnl_util_dcls.incl.pl1 >ldd>include>io_chnl_util_dcls.incl.pl1 310 6 05/24/82 1005.0 slt.incl.pl1 >ldd>include>slt.incl.pl1 312 7 07/11/84 0937.3 slte.incl.pl1 >ldd>include>slte.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. MPC_CARD_WORD 000000 constant char(4) initial dcl 3-26 set ref 127* addr builtin function dcl 17 ref 258 259 272 272 arg based char packed unaligned dcl 18 set ref 66 69 70 70 73 82* arg_count 000100 automatic fixed bin(17,0) dcl 19 set ref 56* 57 62 67 arg_len 000101 automatic fixed bin(21,0) dcl 20 set ref 65* 66 68* 69 70 70 71* 73 82 82 arg_list_ptr 16 based pointer level 2 dcl 1-15 set ref 56* 65* 68* 71* arg_num 000102 automatic fixed bin(17,0) dcl 21 set ref 62* 62* 65* 67 68 71* 103 arg_ptr 000104 automatic pointer dcl 22 set ref 65* 66 68* 69 70 70 71* 73 82 baseno builtin function dcl 23 ref 259 bin builtin function dcl 24 ref 259 bit_count 3(12) based fixed bin(24,0) level 2 packed packed unsigned unaligned dcl 7-10 ref 260 chan 4 based fixed bin(8,0) array level 3 in structure "mpc_card_array" dcl 3-19 in procedure "bce_fwload" ref 294 chan 4 based fixed bin(8,0) array level 3 in structure "mpc_card" dcl 3-5 in procedure "bce_fwload" ref 131 161 161 170 chan 3 based fixed bin(8,0) level 2 in structure "prph_card" dcl 4-5 in procedure "bce_fwload" ref 161 161 170 channel 000350 automatic fixed bin(8,0) dcl 280 set ref 291* 294 character builtin function dcl 25 ref 148 code 000351 automatic fixed bin(35,0) dcl 281 in procedure "validate_primary_channel" set ref 291* 292 code 000106 automatic fixed bin(35,0) dcl 26 in procedure "bce_fwload" set ref 56* 57 58* 65* 68* 71* 72 206* 207 270* 272* 273 273* code 000200 automatic fixed bin(35,0) dcl 112 in procedure "find_mpc" set ref 131* 132 com_err_ 000010 constant entry external dcl 27 ref 58 133 145 230 244 255 273 config_$find 000012 constant entry external dcl 28 ref 159 174 config_$find_2 000014 constant entry external dcl 29 ref 127 config_data_$mpc_msp_model_names 000036 external static structure level 1 dcl 2-104 config_data_$mpc_mtp_model_names 000040 external static structure level 1 dcl 2-113 config_data_$mpc_urp_model_names 000042 external static structure level 1 dcl 2-122 controller_fwid 000214 automatic char(32) dcl 182 set ref 213* 220* 227* 237* 240* 241* 252 253* 255* count 000036 external static fixed bin(17,0) level 2 in structure "config_data_$mpc_msp_model_names" dcl 2-104 in procedure "bce_fwload" ref 209 212 count 000042 external static fixed bin(17,0) level 2 in structure "config_data_$mpc_urp_model_names" dcl 2-122 in procedure "bce_fwload" ref 223 226 count 000040 external static fixed bin(17,0) level 2 in structure "config_data_$mpc_mtp_model_names" dcl 2-113 in procedure "bce_fwload" ref 216 219 cu_$arg_count_rel 000016 constant entry external dcl 30 ref 56 cu_$arg_ptr_rel 000020 constant entry external dcl 31 ref 65 68 71 cv_dec_check_ 000022 constant entry external dcl 32 ref 206 291 dimension builtin function dcl 33 ref 293 divide builtin function dcl 34 ref 260 293 fw_module_count parameter fixed bin(17,0) dcl 183 in procedure "load_mpc" ref 179 203 270 272 272 fw_module_count parameter fixed bin(17,0) dcl 114 in procedure "find_mpc" set ref 106 140* 153* 154 fw_module_count 000147 automatic fixed bin(17,0) dcl 36 in procedure "bce_fwload" set ref 87* 89* 97* fw_module_num 000201 automatic fixed bin(17,0) dcl 115 set ref 154* 155* 170* 171 171 fw_modules 000107 automatic char(8) array packed unaligned dcl 35 in procedure "bce_fwload" set ref 87* 89* 97* fw_modules parameter char(8) array packed unaligned dcl 113 in procedure "find_mpc" set ref 106 148* 155* 171 171* fw_modules parameter char(8) array packed unaligned dcl 184 in procedure "load_mpc" ref 179 205 236 fw_seg_lengths 000224 automatic fixed bin(18,0) array dcl 185 set ref 260* 264* 270* 272 fw_seg_num 000244 automatic fixed bin(17,0) dcl 186 set ref 203* 204 236 253 254 259 260 263 264* fw_seg_ptrs 000246 automatic pointer array dcl 187 set ref 253* 254 259 263* 270* 272 fw_tag 4 000040 external static char(16) array level 3 in structure "config_data_$mpc_mtp_model_names" dcl 2-113 in procedure "bce_fwload" ref 220 fw_tag 4 000036 external static char(16) array level 3 in structure "config_data_$mpc_msp_model_names" dcl 2-104 in procedure "bce_fwload" ref 213 fw_tag 4 000042 external static char(16) array level 3 in structure "config_data_$mpc_urp_model_names" dcl 2-122 in procedure "bce_fwload" ref 227 hc_load_mpc 000024 constant entry external dcl 37 ref 270 hc_load_mpc$urc 000026 constant entry external dcl 38 ref 272 increment 000150 automatic fixed bin(17,0) dcl 39 set ref 64* 74* 103 index builtin function dcl 40 ref 290 io_chnl_util$iom_to_name 000044 constant entry external dcl 5-12 ref 131 ioa_ 000030 constant entry external dcl 41 ref 77 82 92 100 iom 3 based fixed bin(3,0) array level 3 in structure "mpc_card_array" dcl 3-19 in procedure "bce_fwload" ref 294 iom 2 based fixed bin(3,0) level 2 in structure "prph_card" dcl 4-5 in procedure "bce_fwload" ref 161 iom 3 based fixed bin(3,0) array level 3 in structure "mpc_card" dcl 3-5 in procedure "bce_fwload" ref 131 161 iom 000352 automatic fixed bin(3,0) dcl 282 in procedure "validate_primary_channel" set ref 290* 294 ltrim builtin function dcl 42 ref 148 max builtin function dcl 43 ref 293 me 000002 constant char(6) initial packed unaligned dcl 44 set ref 58* 77* 82* 92* 100* 133* 145* 230* 244* 255* 273* model 1 000036 external static fixed bin(17,0) array level 3 in structure "config_data_$mpc_msp_model_names" dcl 2-104 in procedure "bce_fwload" ref 209 model 1 000042 external static fixed bin(17,0) array level 3 in structure "config_data_$mpc_urp_model_names" dcl 2-122 in procedure "bce_fwload" ref 223 model 2 based fixed bin(17,0) level 2 in structure "mpc_card" dcl 3-5 in procedure "bce_fwload" ref 148 model 1 000040 external static fixed bin(17,0) array level 3 in structure "config_data_$mpc_mtp_model_names" dcl 2-113 in procedure "bce_fwload" ref 216 mpc_card based structure level 1 dcl 3-5 mpc_card_array based structure level 1 dcl 3-19 mpc_cardp 000162 automatic pointer dcl 3-3 set ref 87* 89* 126* 127* 128 129 131 131 148 153 161 161 161 161 170 289* 293 293 294 294 mpc_chanid 000152 automatic char(8) dcl 45 in procedure "bce_fwload" set ref 87* 97* mpc_chanid parameter char(8) dcl 116 in procedure "find_mpc" set ref 106 131* mpc_chanid parameter char(8) dcl 188 in procedure "load_mpc" set ref 179 270* 272* mpc_chanid 000354 automatic char(8) dcl 283 in procedure "validate_primary_channel" set ref 288* 290 291 291 mpc_model 000306 automatic fixed bin(17,0) dcl 190 set ref 206* 209 216 223 mpc_name parameter char(4) dcl 118 in procedure "find_mpc" set ref 106 127* 133* 141 142 143 145* mpc_name 000154 automatic char(4) dcl 46 in procedure "bce_fwload" set ref 66* 87* 89* 92* 97* 100* mpc_name parameter char(4) dcl 191 in procedure "load_mpc" set ref 179 230* 244* 273* mpc_overlay 000310 automatic char(8) packed unaligned dcl 193 set ref 236* 237 240 241 241 241 244* mpc_port_index 000356 automatic fixed bin(17,0) dcl 284 set ref 293* 294 294* mpc_type 000312 automatic char(8) packed unaligned dcl 194 set ref 205* 206 206 208 215 222 230* 255* mpc_type_index 000314 automatic fixed bin(17,0) dcl 195 set ref 209* 209* 212 213 216* 216* 219 220 223* 223* 226 227 mpc_type_letter 000202 automatic char(1) packed unaligned dcl 120 set ref 141* 142* 143* 148 149 n_fields 17(32) based fixed bin(4,0) level 3 packed packed unsigned unaligned dcl 3-5 ref 293 name 1 based char(4) level 2 dcl 4-5 ref 165 166 167 168 names 1 000042 external static structure array level 2 in structure "config_data_$mpc_urp_model_names" dcl 2-122 in procedure "bce_fwload" names 1 000036 external static structure array level 2 in structure "config_data_$mpc_msp_model_names" dcl 2-104 in procedure "bce_fwload" names 1 000040 external static structure array level 2 in structure "config_data_$mpc_mtp_model_names" dcl 2-113 in procedure "bce_fwload" nchan 5 based fixed bin(17,0) array level 3 dcl 3-5 ref 153 161 null builtin function dcl 47 ref 126 128 158 160 254 263 overlay_name 000203 automatic char(4) packed unaligned dcl 121 set ref 165* 166* 167* 168* 169* 171 p_mpc_cardp parameter pointer dcl 122 in procedure "find_mpc" set ref 106 129* p_mpc_cardp parameter pointer dcl 286 in procedure "validate_primary_channel" ref 277 289 p_mpc_chanid parameter char(8) dcl 285 ref 277 288 p_ss_info_ptr parameter pointer dcl 48 ref 8 55 port 3 based structure array level 2 in structure "mpc_card" dcl 3-5 in procedure "bce_fwload" port 3 based structure array level 2 in structure "mpc_card_array" dcl 3-19 in procedure "bce_fwload" ref 293 preferred_mpc_chanid 000156 automatic char(8) dcl 49 set ref 63* 73* 88 89* 89* 92* problem 000315 automatic char(64) packed unaligned dcl 196 set ref 270* 272* 273* prph_card based structure level 1 dcl 4-5 prph_cardp 000164 automatic pointer dcl 4-3 set ref 158* 159* 160 161 161 161 165 166 167 168 170 174* seg 10 based structure array level 2 dcl 6-13 set ref 259 slt based structure level 1 dcl 6-13 slt$ 000032 external static fixed bin(17,0) dcl 50 set ref 258 slt_manager$get_seg_ptr 000034 constant entry external dcl 51 ref 253 slte_uns based structure level 1 dcl 7-10 sltep 000170 automatic pointer dcl 7-8 set ref 259* 260 sltp 000166 automatic pointer dcl 6-7 set ref 258* 259 ss_info based structure level 1 dcl 1-15 ss_info_ptr 000160 automatic pointer dcl 1-14 set ref 55* 56 65 68 71 substr builtin function dcl 52 ref 69 141 142 143 165 166 167 168 206 206 208 215 222 290 291 291 translate builtin function dcl 53 ref 290 type_word 17 based structure level 2 dcl 3-5 var_fw_seg_lengths based fixed bin(18,0) array dcl 197 set ref 272* var_fw_seg_ptrs based pointer array dcl 199 set ref 272* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. PRPH_CARD_WORD internal static char(4) initial dcl 4-19 aclp automatic pointer dcl 6-7 acls based structure level 1 dcl 6-45 config_data_$ccu_model_names external static structure level 1 dcl 2-178 config_data_$chnl_cardx external static fixed bin(17,0) dcl 2-27 config_data_$clok_cardx external static fixed bin(17,0) dcl 2-29 config_data_$config_cards external static structure level 1 dcl 2-94 config_data_$console_model_names external static structure level 1 dcl 2-192 config_data_$cpu_cardx external static fixed bin(17,0) dcl 2-31 config_data_$disk_drive_model_names external static structure level 1 dcl 2-148 config_data_$fnp_cardx external static fixed bin(17,0) dcl 2-33 config_data_$intk_cardx external static fixed bin(17,0) dcl 2-35 config_data_$iom_cardx external static fixed bin(17,0) dcl 2-37 config_data_$ipc_fips_cardx external static fixed bin(17,0) dcl 2-45 config_data_$ipc_msp_model_names external static structure level 1 dcl 2-130 config_data_$ipc_mtp_model_names external static structure level 1 dcl 2-139 config_data_$mem_cardx external static fixed bin(17,0) dcl 2-39 config_data_$mpc_cardx external static fixed bin(17,0) dcl 2-49 config_data_$mpc_msp_cardx external static fixed bin(17,0) dcl 2-41 config_data_$mpc_mtp_cardx external static fixed bin(17,0) dcl 2-43 config_data_$mpc_urp_cardx external static fixed bin(17,0) dcl 2-47 config_data_$mpcs_cardx external static fixed bin(17,0) dcl 2-57 config_data_$mpcs_msp_cardx external static fixed bin(17,0) dcl 2-51 config_data_$mpcs_mtp_cardx external static fixed bin(17,0) dcl 2-53 config_data_$mpcs_urp_cardx external static fixed bin(17,0) dcl 2-55 config_data_$parm_cardx external static fixed bin(17,0) dcl 2-59 config_data_$part_cardx external static fixed bin(17,0) dcl 2-61 config_data_$printer_model_names external static structure level 1 dcl 2-164 config_data_$prph_cardx external static fixed bin(17,0) dcl 2-77 config_data_$prph_ccu_cardx external static fixed bin(17,0) dcl 2-71 config_data_$prph_dsk_cardx external static fixed bin(17,0) dcl 2-63 config_data_$prph_opc_cardx external static fixed bin(17,0) dcl 2-75 config_data_$prph_prt_cardx external static fixed bin(17,0) dcl 2-65 config_data_$prph_pun_cardx external static fixed bin(17,0) dcl 2-69 config_data_$prph_rdr_cardx external static fixed bin(17,0) dcl 2-67 config_data_$prph_tap_cardx external static fixed bin(17,0) dcl 2-73 config_data_$punch_model_names external static structure level 1 dcl 2-185 config_data_$reader_model_names external static structure level 1 dcl 2-171 config_data_$root_cardx external static fixed bin(17,0) dcl 2-79 config_data_$salv_cardx external static fixed bin(17,0) dcl 2-81 config_data_$schd_cardx external static fixed bin(17,0) dcl 2-83 config_data_$sst_cardx external static fixed bin(17,0) dcl 2-85 config_data_$stok_cardx external static fixed bin(17,0) dcl 2-87 config_data_$tape_drive_model_names external static structure level 1 dcl 2-156 config_data_$tbls_cardx external static fixed bin(17,0) dcl 2-89 config_data_$udsk_cardx external static fixed bin(17,0) dcl 2-91 io_chnl_util$canonicalize_chanid 000000 constant entry external dcl 5-8 io_chnl_util$name_to_iom 000000 constant entry external dcl 5-16 name_seg based structure level 1 dcl 6-26 namep automatic pointer dcl 6-7 names_ptr automatic pointer dcl 6-7 path based structure level 1 dcl 6-40 pathp automatic pointer dcl 6-7 segnam based structure level 1 dcl 6-31 slte based structure level 1 dcl 7-48 NAMES DECLARED BY EXPLICIT CONTEXT. bad_mpc 001527 constant label dcl 230 ref 207 212 219 226 bce_fwload 000250 constant entry external dcl 8 find_mpc 000647 constant entry internal dcl 106 ref 87 load_mpc 001263 constant entry internal dcl 179 ref 89 97 mpc_error 000722 constant label dcl 133 ref 128 usage 000300 constant label dcl 58 validate_primary_channel 002167 constant entry internal dcl 277 ref 89 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 2774 3042 2577 3004 Length 3406 2577 46 327 175 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME bce_fwload 418 external procedure is an external procedure. find_mpc internal procedure shares stack frame of external procedure bce_fwload. load_mpc internal procedure shares stack frame of external procedure bce_fwload. validate_primary_channel internal procedure shares stack frame of external procedure bce_fwload. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME bce_fwload 000100 arg_count bce_fwload 000101 arg_len bce_fwload 000102 arg_num bce_fwload 000104 arg_ptr bce_fwload 000106 code bce_fwload 000107 fw_modules bce_fwload 000147 fw_module_count bce_fwload 000150 increment bce_fwload 000152 mpc_chanid bce_fwload 000154 mpc_name bce_fwload 000156 preferred_mpc_chanid bce_fwload 000160 ss_info_ptr bce_fwload 000162 mpc_cardp bce_fwload 000164 prph_cardp bce_fwload 000166 sltp bce_fwload 000170 sltep bce_fwload 000200 code find_mpc 000201 fw_module_num find_mpc 000202 mpc_type_letter find_mpc 000203 overlay_name find_mpc 000214 controller_fwid load_mpc 000224 fw_seg_lengths load_mpc 000244 fw_seg_num load_mpc 000246 fw_seg_ptrs load_mpc 000306 mpc_model load_mpc 000310 mpc_overlay load_mpc 000312 mpc_type load_mpc 000314 mpc_type_index load_mpc 000315 problem load_mpc 000350 channel validate_primary_channel 000351 code validate_primary_channel 000352 iom validate_primary_channel 000354 mpc_chanid validate_primary_channel 000356 mpc_port_index validate_primary_channel THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. alloc_char_temp call_ext_out_desc call_ext_out return_mac shorten_stack ext_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. com_err_ config_$find config_$find_2 cu_$arg_count_rel cu_$arg_ptr_rel cv_dec_check_ hc_load_mpc hc_load_mpc$urc io_chnl_util$iom_to_name ioa_ slt_manager$get_seg_ptr THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. config_data_$mpc_msp_model_names config_data_$mpc_mtp_model_names config_data_$mpc_urp_model_names slt$ LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 8 000245 55 000255 56 000261 57 000273 58 000300 60 000324 62 000325 63 000333 64 000335 65 000337 66 000357 67 000364 68 000370 69 000413 70 000420 71 000431 72 000454 73 000456 74 000463 75 000465 77 000466 78 000506 80 000507 82 000510 83 000537 87 000540 88 000545 89 000551 92 000561 94 000611 96 000612 97 000613 98 000615 100 000616 101 000642 103 000643 104 000646 106 000647 126 000651 127 000653 128 000667 129 000673 131 000676 132 000720 133 000722 135 000755 140 000760 141 000763 142 000773 143 001000 145 001005 146 001036 148 001041 149 001103 153 001112 154 001115 155 001123 156 001132 158 001134 159 001136 160 001151 161 001156 165 001171 166 001201 167 001206 168 001213 169 001220 170 001222 171 001226 174 001243 175 001256 176 001257 179 001263 203 001265 204 001275 205 001277 206 001304 207 001331 208 001333 209 001340 211 001360 212 001362 213 001366 214 001405 215 001407 216 001411 218 001430 219 001432 220 001436 221 001455 222 001457 223 001461 225 001500 226 001502 227 001506 228 001525 230 001527 232 001565 234 001566 236 001567 237 001576 240 001607 241 001620 244 001643 245 001700 252 001701 253 001705 254 001721 255 001726 256 001763 258 001764 259 001767 260 001775 261 002003 263 002004 264 002011 266 002013 270 002015 272 002053 273 002124 274 002166 277 002167 288 002171 289 002175 290 002200 291 002216 292 002243 293 002253 294 002271 296 002311 297 002313 ----------------------------------------------------------- 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