COMPILATION LISTING OF SEGMENT init_pvt 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 0953.8 mst Sat Options: optimize map 1 /****^ *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Bull Inc., 1987 * 4* * * 5* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 6* * * 7* * Copyright (c) 1972 by Massachusetts Institute of * 8* * Technology and Honeywell Information Systems, Inc. * 9* * * 10* *********************************************************** */ 11 12 13 /****^ HISTORY COMMENTS: 14* 1) change(85-09-09,Farley), approve(85-09-09,MCR6979), 15* audit(86-03-08,CLJones), install(86-03-21,MR12.0-1033): 16* Add IPC FIPS card and 17* allow FIPS device number zero. 18* 2) change(86-01-09,Fawcett), approve(86-04-11,MCR7383), 19* audit(86-07-07,GDixon), install(86-07-17,MR12.0-1097): 20* Add subvolume support for MSU3380 and MSU3390. 21* 3) change(86-06-05,GJohnson), approve(86-06-05,MCR7387), 22* audit(86-06-10,Martinson), install(86-07-17,MR12.0-1091): 23* Correct error message documentation. 24* END HISTORY COMMENTS */ 25 26 27 /* format: style2 */ 28 init_pvt: 29 procedure; 30 31 /* format: off */ 32 /* * INIT_PVT 33* * 34* * This procedure initializes the Physical Volume Table to describe all the configured 35* * disk drives. It does this by looking at all the PRPH DSKx cards in the config deck. 36* * It expect the PVT to have already been allocated by get_io_segs, which went through 37* * much the same sort of drive-counting exercise to do so. This procedure does no I/O, 38* * but only sets up the table. It is equivalent in function to the early part of the 39* * old init_pvt, which was split into many separate programs. 40* * 41* * HISTORY 42* * 43* * Keith Loepere 10/83 to not set write_limit for early initialization. 44* * E. N. Kittlitz 9/83 to allow drives up to 63, 32 drives per ss. 45* * BIM 7/82 to merge WOS's changes back against stocks and NPML. 46* * collect_free_core called from real_initializer, etc. 47* * 48* * February 1982 by J. Bongiovanni for record stocks 49* * June 1981 by C. Hornig to eliminate PML. 50* * Modified 12/21/80 WOS to set sst.write_limit from number of disk subsystems (moved 51* * from make_segs_paged), and to zero fsmap SDWs on entry to allow for multiple calls. 52* * Modified 11/28/80, W. Olin Sibert, for Bootload Multics, and better error detection. 53* * Modified 11/27/80, WOS, to split from old init_pvt (to which earlier history refers) 54* * Modified 4/79, by Michael R. Jordan, for proper MSU500/501/509 initialization, 55* * and to detect some configuration errors. 56* * Modified 2/79, by Michael R. Jordan, for MSU500 support. 57* * Modified 7/78, by BSG, for MANY hardcore partitions 58* * Modified 3/77, by THVV, for more vol maps than will fit in one segment 59* * Modified 6/76, by D. R. Vinograd, to initialize Volume Dumper variables 60* * Modified throughout 1975, by THVV & BSG, for NSS. 61* * Modified 12/74, by THVV, for NSS 62* */ 63 /* format: on */ 64 65 dcl char4 char (4) aligned; 66 dcl dcp (32) pointer unaligned; 67 /* Array of pointers to PRPH DSKx card for each subsystem */ 68 69 dcl device_type fixed bin; 70 dcl drive_idx fixed bin; 71 dcl driveno fixed bin; /* Index of drive being configured */ 72 dcl group_idx fixed bin; 73 dcl max_driveno fixed bin; 74 dcl nd fixed bin; /* Number of disk subsystems */ 75 dcl pri_pvtep ptr; 76 dcl pri_tx fixed bin; 77 dcl partition char (4); 78 dcl ss_drive_count fixed bin; /* number of disks in subsystem under construction */ 79 dcl subsys (32) char (4) aligned; 80 /* Array of subsystem names */ 81 dcl subsys_idx fixed bin; 82 dcl sv_cur fixed bin; 83 dcl swap bit (1) aligned; 84 dcl tx fixed bin; /* PVTX of PVTE currently being assigned */ 85 86 dcl sst$write_limit fixed bin (35) ext static; 87 88 dcl config_$find entry (char (4) aligned, ptr); 89 dcl config_$find_parm entry (char (4) aligned, ptr); 90 91 dcl page$init ext entry (fixed bin, ptr); 92 dcl syserr entry options (variable); 93 94 dcl WHOAMI char (32) internal static options (constant) init ("init_pvt"); 95 dcl MAX_DRIVES_PER_SUBSYSTEM 96 fixed bin init (32) int static options (constant); 97 98 dcl ( 99 VOLMAP_LOCK_WAIT_CONSTANT 100 init ("444000000000"b3), 101 VOLMAP_IDLE_WAIT_CONSTANT 102 init ("445000000000"b3), 103 VTOC_MAP_LOCK_WAIT_CONSTANT 104 init ("446000000000"b3) 105 ) bit (36) aligned int static options (constant); 106 107 108 dcl (addr, addrel, clock, divide, hbound, max, null, ptr, size, substr) 109 builtin; 110 111 112 113 /* Check setting and operation of system clock */ 114 115 /* Initialization */ 116 117 pvtp = addr (pvt$); /* Also locate world */ 118 pvt_arrayp = addr (pvt.array); 119 pvt.time_of_bootload = clock (); 120 pvt.volmap_lock_wait_constant = VOLMAP_LOCK_WAIT_CONSTANT; 121 pvt.volmap_idle_wait_constant = VOLMAP_IDLE_WAIT_CONSTANT; 122 pvt.vtoc_map_lock_wait_constant = VTOC_MAP_LOCK_WAIT_CONSTANT; 123 124 pvt.root_pvid = ""b; /* Initialize root id */ 125 pvt.root_pvtx = -1; 126 pvt.root_vtocx = -1; /* not found it yet */ 127 128 /* Find all PRPH DSKn cards, and generate the PVT indices. */ 129 130 nd = 0; /* Count subsystems */ 131 prph_dsk_cardp = null; 132 NEXT_DISK_CARD: 133 call config_$find (PRPH_CARD_WORD, prph_dsk_cardp); 134 /* Find subsystem description */ 135 if prph_dsk_cardp ^= null 136 then do; /* Count up this subsystem */ 137 if substr (prph_dsk_card.name, 1, 3) ^= "dsk" 138 then goto NEXT_DISK_CARD; 139 140 do subsys_idx = 1 to nd; /* Check for duplicates */ 141 if subsys (subsys_idx) = prph_dsk_card.name 142 then call syserr (CRASH, "^a: Duplicate prph ^a card.", WHOAMI, prph_dsk_card.name); 143 end; 144 145 nd = nd + 1; /* Found appropriate card. */ 146 if nd > hbound (subsys, 1) 147 then /* Too many subsystems configured. */ 148 call syserr (CRASH, "^a: Too many disk subsystems configured. Limit is ^d.", WHOAMI, 149 hbound (subsys, 1)); 150 151 subsys (nd) = prph_dsk_card.name; /* Save in scratch */ 152 dcp (nd) = prph_dsk_cardp; /* .. */ 153 goto NEXT_DISK_CARD; /* Scan whole deck. */ 154 end; 155 156 if nd = 0 157 then /* Must be some subsystems */ 158 call syserr (CRASH, "^a: no PRPH DSKn cards", WHOAMI); 159 160 /* Sort the subsystems into canonical order */ 161 162 swap = "1"b; /* Simple interchange sort */ 163 do while (swap); /* .. often there will be only one */ 164 swap = "0"b; 165 do subsys_idx = 1 to nd - 1; 166 if subsys (subsys_idx) > subsys (subsys_idx + 1) 167 then do; 168 swap = "1"b; /* interchange */ 169 prph_dsk_cardp = dcp (subsys_idx); 170 dcp (subsys_idx) = dcp (subsys_idx + 1); 171 dcp (subsys_idx + 1) = prph_dsk_cardp; 172 173 char4 = subsys (subsys_idx); 174 subsys (subsys_idx) = subsys (subsys_idx + 1); 175 subsys (subsys_idx + 1) = char4; 176 end; 177 end; 178 end; 179 180 181 /* Setup pointers in stock_seg before initializing any hardcore partition */ 182 183 stock_segp = addr (stock_seg$); 184 stock_seg.record_stock_arrayp = ptr (stock_segp, size (stock_seg)); 185 stock_seg.vtoce_stock_arrayp = 186 addrel (stock_seg.record_stock_arrayp, stock_seg.n_stock_entries * stock_seg.record_stock_size); 187 188 189 /* Generate PVT */ 190 191 tx = 0; /* "tx" is the current PVT index */ 192 SUBSYS_LOOP: 193 do subsys_idx = 1 to nd; /* Loop over subsystems */ 194 prph_dsk_cardp = dcp (subsys_idx); /* Get ptr to PRPH DSKn card */ 195 if IS_FIPS_DEVICE () 196 then do; 197 driveno = -1; /* FIPS, will be zero. */ 198 max_driveno = 31; 199 end; 200 else do; 201 driveno = 0; /* normal, will be one. */ 202 max_driveno = 63; 203 end; 204 ss_drive_count = 0; 205 GROUP_LOOP: 206 do group_idx = 1 to hbound (prph_dsk_card_array.group, 1); 207 /* Loop through all its drives */ 208 if prph_dsk_card.group (group_idx).ndrives = -1 209 /* An error on the config card. */ 210 then call syserr (CRASH, "^a: Missing ndrives field on config card for ^a subsystem.", WHOAMI, 211 prph_dsk_card.name); 212 213 if prph_dsk_card.group (group_idx).model = -1 214 then call syserr (CRASH, "^a: Missing model field on config card for ^a subsystem.", WHOAMI, 215 prph_dsk_card.name); 216 if prph_dsk_card.group (group_idx).model = 0 217 then do; /* Nonexistent drive */ 218 219 driveno = driveno + prph_dsk_card.group (group_idx).ndrives; 220 goto NEXT_DRIVE_GROUP; /* Skip over the nonconfigured drives */ 221 end; 222 223 do device_type = 1 to hbound (MODEL, 1) 224 while (prph_dsk_card.group (group_idx).model ^= MODEL (device_type)); 225 end; 226 if device_type > hbound (MODEL, 1) 227 then do; /* .. check model number */ 228 call syserr (CRASH, "init_pvt: Unknown model number ^d on prph ^a", 229 prph_dsk_card.group (group_idx).model, prph_dsk_card.name); 230 end; 231 device_type = MODELX (device_type); /* Set device type */ 232 233 DRIVE_LOOP: 234 do drive_idx = 1 to prph_dsk_card.group (group_idx).ndrives; 235 /* Generate a PVTE for each possible drive */ 236 driveno = driveno + 1; /* Contiguous alloc of drive nos */ 237 238 if driveno > max_driveno /* check IDCW unit limit */ 239 then call syserr (CRASH, "^a: ^a contains a drive number higher than ^d.", WHOAMI, 240 prph_dsk_card.name, max_driveno); 241 ss_drive_count = ss_drive_count + 1; 242 if ss_drive_count > MAX_DRIVES_PER_SUBSYSTEM 243 then call syserr (CRASH, "^a: More than ^d drives defined for ^a.", WHOAMI, 244 MAX_DRIVES_PER_SUBSYSTEM, prph_dsk_card.name); 245 tx = tx + 1; /* Generate PVTX */ 246 pvtep = addr (pvt_array (tx)); /* Get ptr to PVT entry */ 247 pvte.devname = prph_dsk_card.name; /* .. and fill in */ 248 pvte.logical_area_number = driveno;/* .. */ 249 pvte.device_type = device_type; /* .. */ 250 pvte.storage_system = "1"b; /* Until told otherwise */ 251 pvte.curn_dmpr_vtocx (*) = -1; 252 pvte.volmap_stock_ptr = null (); 253 pvte.vtoc_map_stock_ptr = null (); 254 pvte.is_sv = (number_of_sv (device_type) >= 2); 255 pvte.num_of_svs = number_of_sv (device_type); 256 pvte.removable_pack = media_removable (device_type); 257 pvte.records_per_cyl = rec_per_cyl (device_type); 258 pri_tx = tx; 259 pri_pvtep = pvtep; 260 if pvte.is_sv 261 then do; /* build first subvolume pvte */ 262 pvte.sv_num = 0; /* number of this subvolume */ 263 pvte.sv_name = valid_sv_array (pvte.sv_num); 264 pvte.record_factor = pvte.sv_num * rec_per_cyl (device_type); 265 call page$init (pri_tx, prph_dsk_cardp); 266 /* Turn on disk DIM for drive */ 267 do sv_cur = 2 to number_of_sv (device_type); 268 tx = tx + 1; /* make another pvt entry */ 269 pvtep = addr (pvt_array (tx)); 270 pvte = pri_pvtep -> pvte; 271 /* just like the first except for */ 272 pvte.sv_num = sv_cur - 1; 273 /* number of this subvolume */ 274 pvte.sv_name = valid_sv_array (pvte.sv_num); 275 pvte.record_factor = pvte.sv_num * rec_per_cyl (device_type); 276 277 end; 278 end; 279 else do; 280 pvte.sv_num = -1; 281 pvte.record_factor = 0; 282 pvte.sv_name = " "; 283 call page$init (pri_tx, prph_dsk_cardp); 284 /* Turn on disk DIM for drive */ 285 end; 286 287 end DRIVE_LOOP; 288 NEXT_DRIVE_GROUP: 289 end GROUP_LOOP; 290 end SUBSYS_LOOP; 291 292 293 pvt.n_entries = tx; /* Set size of PVT */ 294 295 if sys_info$collection_1_phase = SERVICE_INITIALIZATION 296 then do; /* otherwise, use value set in init_sst */ 297 sst$write_limit = 53 + max (0, 47 * (nd - 1)); 298 /* Olin's magic formula for sst.write_limit */ 299 300 call config_$find_parm ("wlim", parm_ptr); 301 /* See if the default should be overridden */ 302 if parm_ptr ^= null () 303 then /* A parameter was specified */ 304 if (numeric_parm.value < 2000) & (numeric_parm.value > 4) 305 then /* And it looks plausible */ 306 sst$write_limit = numeric_parm.value; 307 else call syserr (BEEP, "^a: Invalid parm wlim value ^d. Default of ^d used.", WHOAMI, 308 numeric_parm.value, sst$write_limit); 309 end; 310 return; /* PVT is initialized */ 311 /* format: off */ 312 313 314 IS_FIPS_DEVICE: 315 proc () returns (bit (1)); 316 317 /* The theory here is all drives on a channel must be either fips or non 318* fips, but not mixed. Therefore look at the first non-zero model number 319* and check config_data_ for device_0_valid */ 320 321 dcl (i, j) fixed bin; 322 323 do j = 1 to hbound (prph_dsk_card.group,1); 324 if prph_dsk_card.group(j).model ^= 0 then do; 325 do i = 1 to config_data_$disk_drive_model_names.count; 326 if config_data_$disk_drive_model_names.names (i).model = 327 prph_dsk_card.group (j).model then 328 return (config_data_$disk_drive_model_names.names (i).device_0_valid); 329 end; 330 end; 331 end; 332 return ("0"b); 333 end IS_FIPS_DEVICE; 334 /* BEGIN include file collection_1_phases.incl.pl1 */ 1 2 1 3 /* Symbolic names for the various collection1 phases. 1 4*Keith Loepere, October 1983. */ 1 5 1 6 /* format: style4,indattr,ifthenstmt,ifthen,idind33,^indcomtxt */ 1 7 1 8 dcl sys_info$collection_1_phase fixed bin external static; 1 9 1 10 dcl EARLY_INITIALIZATION fixed bin init (1) static options (constant); /* phase to find the config deck */ 1 11 dcl BOOT_INITIALIZATION fixed bin init (2) static options (constant); /* phase to setup up crash handler, bce */ 1 12 dcl SERVICE_INITIALIZATION fixed bin init (3) static options (constant); /* phase to set up for service */ 1 13 1 14 /* These first 3 (EARLY, BOOT and SERVICE) must be 1, 2, 3 in that order so 1 15*programs can simply tell apart the booting phases from all others (crash or 1 16*recovery type phases). */ 1 17 1 18 dcl CRASH_INITIALIZATION fixed bin init (4) static options (constant); /* phase to set up bce after crash/shut down */ 1 19 dcl RE_EARLY_INITIALIZATION fixed bin init (5) static options (constant); /* retry boot initialization given safe config to a new early level */ 1 20 dcl BCE_CRASH_INITIALIZATION fixed bin init (6) static options (constant); /* retry boot initialization to give a new boot level given a crash of bce */ 1 21 dcl SHUT_INITIALIZATION fixed bin init (7) static options (constant); /* same as boot but don't load new disk mpcs */ 1 22 1 23 dcl COLLECTION_1_PHASE_NAMES (7) char (16) unal static options (constant) init 1 24 ("early", "boot", "service", "crash", "re_early", "bce_crash", "shut"); 1 25 1 26 /* END include file collection_1_phases.incl.pl1 */ 334 335 /* BEGIN INCLUDE FILE ... config_prph_dsk_card.incl.pl1 ... 11/27/80 W. Olin Sibert */ 2 2 2 3 dcl prph_dsk_cardp ptr; /* Pointer to a PRPH DSKx card. */ 2 4 2 5 dcl 1 prph_dsk_card based (prph_dsk_cardp) aligned, /* PRPH DSKx card declaration */ 2 6 2 word char (4), /* "prph" */ 2 7 2 name char (4), /* "dskX" */ 2 8 2 iom fixed bin (3), /* IOM number */ 2 9 2 chan fixed bin (8), /* channel number */ 2 10 2 nchan fixed bin, /* number of channels */ 2 11 2 12 2 group (5), 2 13 3 model fixed bin, /* model number */ 2 14 3 ndrives fixed bin, /* number of drives */ 2 15 2 16 2 type_word aligned, 2 17 3 field_type (14) bit (2) unaligned, /* type of each field; see config_deck.incl.pl1 */ 2 18 3 pad1 bit (4) unaligned, 2 19 3 n_fields fixed bin (4) unsigned unaligned; /* number of fields used on card */ 2 20 2 21 dcl 1 prph_dsk_card_array aligned based (prph_dsk_cardp), /* Overlay for drive group array */ 2 22 2 pad1 (5) bit (36) aligned, 2 23 2 group (divide (max (0, (prph_dsk_card.n_fields - 4)), 2, 17, 0)), 2 24 3 model fixed bin, /* model number */ 2 25 3 ndrives fixed bin; /* number of drives */ 2 26 2 27 /* END INCLUDE FILE ... config_prph_dsk_card.incl.pl1 */ 335 3 1 /* BEGIN INCLUDE FILE ... config_prph_card.incl.pl1 ... 11/27/80 W. Olin Sibert */ 3 2 3 3 dcl prph_cardp ptr; /* Pointer to a PRPH card. */ 3 4 3 5 dcl 1 prph_card based (prph_cardp) aligned, /* PRPH card declaration */ 3 6 2 word char (4), /* "prph" */ 3 7 2 name char (4), /* subsystem name */ 3 8 2 iom fixed bin (3), /* IOM number */ 3 9 2 chan fixed bin (8), /* channel number */ 3 10 2 model fixed bin, /* model number */ 3 11 2 state char (4), /* ON/OFF state */ 3 12 2 pad (9) bit (36) aligned, /* pad to 15 fields */ 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 PRPH_CARD_WORD char (4) aligned internal static options (constant) init ("prph"); 3 20 3 21 /* END INCLUDE FILE ... config_prph_card.incl.pl1 */ 336 4 1 /* BEGIN INCLUDE FILE ... config_parm_card.incl.pl1 ... 11/27/80 W. Olin Sibert */ 4 2 4 3 dcl parm_cardp pointer; /* pointer to PARM card */ 4 4 4 5 dcl 1 parm_card aligned based (parm_cardp), /* PARM card declaration */ 4 6 2 word char (4), /* "parm" */ 4 7 2 options (14) char (4), /* Parameters and their values */ 4 8 4 9 2 type_word aligned, 4 10 3 field_type (14) bit (2) unaligned, /* type of each field; see config_deck.incl.pl1 */ 4 11 3 pad1 bit (4) unaligned, 4 12 3 n_fields fixed bin (4) unsigned unaligned; /* number of fields used on card */ 4 13 4 14 dcl 1 parm_card_array based (parm_cardp), /* Overlay for counting options */ 4 15 2 pad bit (36) aligned, 4 16 2 options (parm_card.n_fields) bit (36) aligned; 4 17 4 18 4 19 dcl parm_ptr pointer; /* For use with config$find_parm */ 4 20 4 21 dcl 1 numeric_parm aligned based (parm_ptr), /* Overlay into middle of card for looking */ 4 22 2 name char (4), /* at a parameter found by config$find_parm */ 4 23 2 value fixed bin (35); 4 24 4 25 dcl 1 string_parm aligned based (parm_ptr), 4 26 2 name char (4), 4 27 2 value char (4); 4 28 4 29 dcl PARM_CARD_WORD char (4) aligned internal static options (constant) init ("parm"); 4 30 4 31 /* END INCLUDE FILE ... config_parm_card.incl.pl1 */ 337 338 /* Begin include file config_data_dcls.incl.pl1 BIM 9/82 */ 5 2 5 3 /****^ HISTORY COMMENTS: 5 4* 1) change(85-09-09,Farley), approve(85-09-09,MCR6979), 5 5* audit(86-01-17,CLJones), install(86-03-21,MR12.0-1033): 5 6* Add changes made to 5 7* config_data_.cds. 5 8* 2) change(86-10-21,Fawcett), approve(86-10-21,PBF7381), 5 9* audit(86-10-23,Farley), install(86-10-28,MR12.0-1200): 5 10* Corrected the number of tape drive models supported. 5 11* END HISTORY COMMENTS */ 5 12 5 13 /* format: style3 */ 5 14 /* Modified 830523 to add console io_type and line_leng fields for different 5 15* operator's consoles and to fix a size bug... -E. A. Ranzenbach */ 5 16 /* Modified 841101 by Paul Farley to add changes made to config_data_.cds */ 5 17 5 18 /* WARNING WARNING */ 5 19 5 20 /* Due to the awful PL/I restriction that prohibits any expressions */ 5 21 /* in external variable extents, the arrays here have integers for */ 5 22 /* extents. Changes to config_data_.cds should be reflected here, */ 5 23 /* Because the declares in config_data_.cds use the "like" attribute. */ 5 24 /* Just in case, though, do NOT use hbound. Use the .count fields */ 5 25 /* in the structures instead. */ 5 26 5 27 declare config_data_$chnl_cardx 5 28 fixed binary external static; 5 29 declare config_data_$clok_cardx 5 30 fixed binary external static; 5 31 declare config_data_$cpu_cardx 5 32 fixed binary external static; 5 33 declare config_data_$fnp_cardx 5 34 fixed binary external static; 5 35 declare config_data_$intk_cardx 5 36 fixed binary external static; 5 37 declare config_data_$iom_cardx 5 38 fixed binary external static; 5 39 declare config_data_$mem_cardx 5 40 fixed binary external static; 5 41 declare config_data_$mpc_msp_cardx 5 42 fixed binary external static; 5 43 declare config_data_$mpc_mtp_cardx 5 44 fixed binary external static; 5 45 declare config_data_$ipc_fips_cardx 5 46 fixed binary external static; 5 47 declare config_data_$mpc_urp_cardx 5 48 fixed binary external static; 5 49 declare config_data_$mpc_cardx 5 50 fixed binary external static; 5 51 declare config_data_$mpcs_msp_cardx 5 52 fixed binary external static; 5 53 declare config_data_$mpcs_mtp_cardx 5 54 fixed binary external static; 5 55 declare config_data_$mpcs_urp_cardx 5 56 fixed binary external static; 5 57 declare config_data_$mpcs_cardx 5 58 fixed binary external static; 5 59 declare config_data_$parm_cardx 5 60 fixed binary external static; 5 61 declare config_data_$part_cardx 5 62 fixed binary external static; 5 63 declare config_data_$prph_dsk_cardx 5 64 fixed binary external static; 5 65 declare config_data_$prph_prt_cardx 5 66 fixed binary external static; 5 67 declare config_data_$prph_rdr_cardx 5 68 fixed binary external static; 5 69 declare config_data_$prph_pun_cardx 5 70 fixed binary external static; 5 71 declare config_data_$prph_ccu_cardx 5 72 fixed binary external static; 5 73 declare config_data_$prph_tap_cardx 5 74 fixed binary external static; 5 75 declare config_data_$prph_opc_cardx 5 76 fixed binary external static; 5 77 declare config_data_$prph_cardx 5 78 fixed binary external static; 5 79 declare config_data_$root_cardx 5 80 fixed binary external static; 5 81 declare config_data_$salv_cardx 5 82 fixed binary external static; 5 83 declare config_data_$schd_cardx 5 84 fixed binary external static; 5 85 declare config_data_$sst_cardx 5 86 fixed binary external static; 5 87 declare config_data_$stok_cardx 5 88 fixed binary external static; 5 89 declare config_data_$tbls_cardx 5 90 fixed binary external static; 5 91 declare config_data_$udsk_cardx 5 92 fixed binary external static; 5 93 5 94 declare 1 config_data_$config_cards 5 95 aligned external static, 5 96 2 count fixed binary, 5 97 2 per_card (32) aligned, 5 98 3 name char (4) aligned, 5 99 3 second_field char (4) aligned, 5 100 3 flags aligned, 5 101 4 match_second bit (1) unaligned, /* PRPH FOO */ 5 102 4 match_only_3 bit (1) unaligned; /* XXXn type */ 5 103 5 104 declare 1 config_data_$mpc_msp_model_names 5 105 aligned external static, 5 106 2 count fixed binary, 5 107 2 names (9) aligned, 5 108 3 model fixed binary, 5 109 3 name character (8), 5 110 3 fw_tag character (16), 5 111 3 valid_drives (16) fixed binary unaligned; 5 112 5 113 declare 1 config_data_$mpc_mtp_model_names 5 114 aligned external static, 5 115 2 count fixed binary, 5 116 2 names (7) aligned, 5 117 3 model fixed binary, 5 118 3 name character (8), 5 119 3 fw_tag character (16), 5 120 3 valid_drives (16) fixed binary unaligned; 5 121 5 122 declare 1 config_data_$mpc_urp_model_names 5 123 aligned external static, 5 124 2 count fixed binary, 5 125 2 names (6) aligned, 5 126 3 model fixed binary, 5 127 3 name character (8), 5 128 3 fw_tag character (16); /* "EURC" for EURC */ 5 129 5 130 declare 1 config_data_$ipc_msp_model_names 5 131 aligned external static, 5 132 2 count fixed binary, 5 133 2 names (1) aligned, 5 134 3 model fixed binary, 5 135 3 name character (8), 5 136 3 fw_tag character (16), 5 137 3 valid_drives (16) fixed binary unaligned; 5 138 5 139 declare 1 config_data_$ipc_mtp_model_names 5 140 aligned external static, 5 141 2 count fixed binary, 5 142 2 names (1) aligned, 5 143 3 model fixed binary, 5 144 3 name character (8), 5 145 3 fw_tag character (16), 5 146 3 valid_drives (16) fixed binary unaligned; 5 147 5 148 declare 1 config_data_$disk_drive_model_names 5 149 aligned external static, 5 150 2 count fixed binary, 5 151 2 names (5) aligned, 5 152 3 model fixed binary, 5 153 3 name character (8), 5 154 3 device_0_valid bit (1); 5 155 5 156 declare 1 config_data_$tape_drive_model_names 5 157 aligned external static, 5 158 2 count fixed binary, 5 159 2 names (9) aligned, 5 160 3 model fixed binary, 5 161 3 name character (8), 5 162 3 device_0_valid bit (1); 5 163 5 164 declare 1 config_data_$printer_model_names 5 165 aligned external static, 5 166 2 count fixed binary, 5 167 2 names (5) aligned, 5 168 3 model fixed binary, 5 169 3 name character (8); 5 170 5 171 declare 1 config_data_$reader_model_names 5 172 aligned external static, 5 173 2 count fixed binary, 5 174 2 names (4) aligned, 5 175 3 model fixed binary, 5 176 3 name character (8); 5 177 5 178 declare 1 config_data_$ccu_model_names 5 179 aligned external static, 5 180 2 count fixed binary, 5 181 2 names (1) aligned, 5 182 3 model fixed binary, 5 183 3 name character (8); 5 184 5 185 declare 1 config_data_$punch_model_names 5 186 aligned external static, 5 187 2 count fixed binary, 5 188 2 names (3) aligned, 5 189 3 model fixed binary, 5 190 3 name character (8); 5 191 5 192 declare 1 config_data_$console_model_names 5 193 aligned external static, 5 194 2 count fixed binary, 5 195 2 names (3) aligned, 5 196 3 model fixed binary, 5 197 3 name character (8), 5 198 3 line_leng fixed bin (17), 5 199 3 io_type character (4); 5 200 5 201 /* End include file config_data_dcls.incl.pl1 */ 338 339 /* Begin include file ...... fs_dev_types.incl.pl1 */ 6 2 6 3 /****^ HISTORY COMMENTS: 6 4* 1) change(85-09-09,Farley), approve(85-09-09,MCR6979), 6 5* audit(86-01-17,CLJones), install(86-03-21,MR12.0-1033): 6 6* Add support for FIPS 6 7* 3380. 6 8* 2) change(86-04-21,Fawcett), approve(86-04-21,MCR7383), 6 9* audit(86-05-15,Coppola), install(86-07-18,MR12.0-1098): 6 10* Add the support for subvolumes for the MSU3380 and MSU3390. 6 11* 3) change(86-10-02,Fawcett), approve(86-10-02,PBF7383), 6 12* audit(86-10-23,Farley), install(86-10-28,MR12.0-1200): 6 13* Changed 3390 to 3381, "d338" to "3380" & "d339" to "3381". 6 14* END HISTORY COMMENTS */ 6 15 6 16 /* Modified 5/19/76 by N. I. Morris */ 6 17 /* Modified 12/27/78 by Michael R. Jordan to correct MSS0500 information */ 6 18 /* Modified 4/79 by R.J.C. Kissel to add msu0501 information. */ 6 19 /* Modified '82 by BIM for needs_alt_part */ 6 20 /* Modified 4/84 by Chris Jones for FIPS disks */ 6 21 /* Modified 12/84 by Paul Farley for FIPS disks formatted for 512wd sectors */ 6 22 /* Modified 1/85 by Paul Farley to decrease the size of the 3380, until the 6 23* volmap and record stock can be expanded. */ 6 24 6 25 /* 6 26******************************************************************************** 6 27** * 6 28** WARNING: * 6 29** * 6 30** There exists fs_dev_types.incl.alm that must me updated when a new device * 6 31** type is added. * 6 32** * 6 33** There are other include files that contain arrays indexed by the device * 6 34** index obtained by references to MODELX or MODELN in this include file. * 6 35** These must be modified when a new device type is added: * 6 36** disk_pack.incl.pl1 * 6 37** fs_dev_types_sector.incl.pl1 (included in this include) * 6 38** * 6 39******************************************************************************** 6 40**/ 6 41 6 42 6 43 dcl (maxdevt init (9), /* maximum legal devt */ 6 44 bulkdevt init (1), /* bulk store devt */ 6 45 msu0500devt init (2), /* MSU0500 device type */ 6 46 msu0451devt init (3), /* MSU0451 device type */ 6 47 msu0450devt init (3), /* MSU0450 device type */ 6 48 msu0400devt init (4), /* MSU0400 device type */ 6 49 dsu191devt init (4), /* DSU191 device type */ 6 50 dsu190devt init (5), /* DSU190 device type */ 6 51 dsu181devt init (6), /* DSU181 device type */ 6 52 msu0501devt init (7), /* MSU0501 device type */ 6 53 fips3380devt init (8), /* 3380D FIPS device type */ 6 54 fips3381devt init (9) /* 3380E FIPS device type */ 6 55 ) fixed bin (4) static options (constant); 6 56 6 57 dcl MODEL (12) fixed bin static options (constant) init /* Known device model numbers */ 6 58 (0, 500, 451, 450, 400, 402, 191, 190, 181, 501, 3380, 3381); 6 59 6 60 dcl MODELX (12) fixed bin static options (constant) init /* translation from model number to device type */ 6 61 (1, 2, 3, 3, 4, 4, 4, 5, 6, 7, 8, 9); 6 62 6 63 dcl MODELN (9) fixed bin static options (constant) init /* translation from device type to model number */ 6 64 (0, 500, 451, 400, 190, 181, 501, 3380, 3381); 6 65 6 66 dcl device_names (9) char (4) aligned static options (constant) init /* device names indexed by device type */ 6 67 ("bulk", "d500", "d451", "d400", "d190", "d181", "d501", "3380", "3381"); 6 68 6 69 dcl first_dev_number (9) fixed bin (17) static options (constant) init /* First valid device_number */ 6 70 (1, 1, 1, 1, 1, 1, 1, 0, 0); 6 71 6 72 dcl fips_type_disk (9) bit (1) unal static options (constant) init /* ON => FIPS disk */ 6 73 ("0"b,"0"b,"0"b,"0"b,"0"b,"0"b,"0"b,"1"b,"1"b); 6 74 6 75 dcl media_removable (9) bit (1) static options (constant) init /* ON => demountable pack on device */ 6 76 ("0"b, "0"b, "1"b, "1"b, "1"b, "1"b, "0"b, "0"b, "0"b); 6 77 6 78 dcl shared_spindle (9) bit (1) static options (constant) init /* ON => 2 devices per spindle */ 6 79 ("0"b, "1"b, "0"b, "0"b, "0"b, "0"b, "1"b, "0"b, "0"b); 6 80 6 81 dcl needs_alt_part (9) bit (1) static options (constant) init /* ON => needs alternate partition to run alternate tracks */ 6 82 ("0"b, "0"b, "1"b, "1"b, "1"b, "1"b, "0"b, "0"b, "0"b); 6 83 6 84 dcl seek_command (9) bit (6) init /* Seek command: 00 => N/A, 30 => Seek_512, 34 => seek_64 */ 6 85 ("00"b3,"34"b3,"34"b3,"34"b3,"34"b3,"34"b3,"34"b3,"30"b3, "30"b3); 6 86 6 87 dcl rec_per_dev (9) fixed bin (21) static options (constant) init /* table of # of records on each device */ 6 88 (0, 38258, 38258, 19270, 14760, 4444, 67200, 112395, 224790); 6 89 6 90 dcl rec_per_sv (9) fixed bin static options (constant) init /* table of # of records on each subvol */ 6 91 (0, 38258, 38258, 19270, 14760, 4444, 67200, 56134, 74930); 6 92 6 93 dcl number_of_sv (9) fixed bin static options (constant) init /* table of subvolumes */ 6 94 (0, 0, 0, 0, 0, 0, 0, 2, 3); 6 95 6 96 dcl valid_sv_string char (3) static options (constant) init /* string of valid subvolume names */ 6 97 ("abc"); 6 98 6 99 dcl valid_sv_array (0:2) char (1) static options (constant) /* array of valid subvolume names */ 6 100 init ("a","b","c"); 6 101 6 102 dcl cyl_per_dev (9) fixed bin static options (constant) init /* table of # of cylinders on each device */ 6 103 (0, 814, 814, 410, 410, 202, 840, 885, 1770); 6 104 6 105 dcl cyl_per_sv (9) fixed bin static options (constant) init /* table of # of cylinders on each subvolume */ 6 106 (0, 814, 814, 410, 410, 202, 840, 442, 590); 6 107 6 108 dcl rec_per_cyl (9) fixed bin static options (constant) init /* table of # of records per cylinder on each device */ 6 109 (0, 47, 47, 47, 36, 22, 80, 127, 127); 6 110 6 111 dcl tracks_per_cyl (9) fixed bin static options (constant) init /* table of # of tracks per cylinder on each device */ 6 112 (0, 19, 19, 19, 19, 20, 20, 15, 15); 6 113 6 114 6 115 dcl first_rec_num (9) fixed bin static options (constant) init /* table of # of first record on each device */ 6 116 (0, 0, 0, 0, 0, 0, 0, 0, 0); 6 117 6 118 dcl last_rec_num (9) fixed bin (18) static options (constant) init /* table of # of last record on each device */ 6 119 (0, 38257, 38116, 19128, 14651, 4399, 67199, 112394, 224789); 6 120 6 121 dcl last_sv_rec_num (9) fixed bin (18) static options (constant) init /* table of # of last record on each subvolume */ 6 122 (0, 38257, 38116, 19128, 14651, 4399, 67199, 56133, 74929); 6 123 6 124 dcl first_sect_num (9) fixed bin (24) static options (constant) init /* table of # of first sector for each device */ 6 125 (0, 0, 0, 0, 0, 0, 0, 0, 0); 6 126 6 127 dcl last_sect_num (9) fixed bin (24) static options (constant) init /* table of # last sector number for each device */ 6 128 (0, 618639, 616359, 309319, 239722, 71999, 1075199, 225674, 451349); 6 129 6 130 dcl first_alt_sect_num (9) fixed bin (24) static options (constant) init /* table of # of first sector of alt partition */ 6 131 (0, 638400, 616360, 309320, 239723, 72000, 1075200, 225675, 451350); 6 132 6 133 dcl last_alt_sect_num (9) fixed bin (24) static options (constant) init /* table of # of last sector of alt partition */ 6 134 (0, 639919, 618639, 311599, 241489, 72719, 1077759, 225930, 451605); 6 135 6 136 dcl last_physical_sect_num (9) fixed bin (24) static options (constant) init /* table of # of last sector on device (includes T&D cylinders) */ 6 137 (0, 639919, 619399, 312359, 242249, 72359, 1077759, 225674, 451859); 6 138 6 139 dcl dev_time (9) float bin (27) static options (constant) init /* table of average access times for each device */ 6 140 (384e0, 33187e0, 33187e0, 34722e0, 46935e0, 52631e0, 33187e0, 26260e0, 26260e0); 6 141 7 1 /* Begin fs_dev_types_sector.incl.pl1 */ 7 2 7 3 7 4 /****^ HISTORY COMMENTS: 7 5* 1) change(86-04-21,Fawcett), approve(86-04-21,MCR7383), 7 6* audit(86-05-12,Coppola), install(86-07-18,MR12.0-1098): 7 7* Add the sector differance for devices that do 64 word IO and devices that 7 8* do 512 word IO. 7 9* END HISTORY COMMENTS */ 7 10 7 11 /* Created by R. A. Fawcett for 512 word IO. for procedures that do not 7 12* need all the data in fs_dev_types. This is also included in 7 13* fs_dev_types.incl.pl1 */ 7 14 7 15 dcl sect_per_cyl (9) fixed bin static options (constant) init /* table of # of sectors per cylinder on each device */ 7 16 (0, 760, 760, 760, 589, 360, 1280, 255, 255); 7 17 7 18 dcl sect_per_sv (9) fixed bin (24) static options (constant) init /* table of # of sectors per cylinder on each subvolume */ 7 19 (0, 0, 0, 0, 0, 0, 0, 112710, 150450); 7 20 7 21 dcl sect_per_rec (9) fixed bin static options (constant) init 7 22 /* table of # of sectors per record on each device */ 7 23 /* coresponding array in disk_pack.incl.pl1 called SECTORS_PER_RECORD */ 7 24 (0, 16, 16, 16, 16, 16, 16, 2, 2); 7 25 7 26 dcl sect_per_vtoc (9) fixed bin static options (constant) init 7 27 (0, 3, 3, 3, 3, 3, 3, 1, 1); 7 28 7 29 dcl vtoc_per_rec (9) fixed bin static options (constant) init 7 30 /* corespending array in disk_pack.incl.pl1 named VTOCES_PER_RECORD */ 7 31 (0, 5, 5, 5, 5, 5, 5, 2, 2); 7 32 7 33 dcl sect_per_track (9) fixed bin static options (constant) init /* table of # of sectors per track on each device */ 7 34 (0, 40, 40, 40, 31, 18, 64, 17, 17); 7 35 7 36 dcl words_per_sect (9) fixed bin static options (constant) init /* table of # of words per sector on each device */ 7 37 (0, 64, 64, 64, 64, 64, 64, 512, 512); 7 38 7 39 /* End fs_dev_types_sector.incl.pl1 */ 7 40 6 142 6 143 6 144 /* End of include file ...... fs_dev_types.incl.pl1 */ 339 340 /* BEGIN INCLUDE FILE ... pvt.incl.pl1 ... last modified January 1982 */ 8 2 8 3 8 4 /* The physical volume table (PVT) is a wired-down table. 8 5* It has one entry for each spindle present, be it for 8 6* Storage System or "I/O" use. 8 7**/ 8 8 8 9 dcl pvt$ ext, 8 10 pvtp ptr; 8 11 8 12 8 13 dcl 1 pvt based (pvtp) aligned, 8 14 8 15 2 n_entries fixed bin (17), /* number of PVT entries */ 8 16 2 max_n_entries fixed bin (17), /* max number of PVT entries */ 8 17 2 n_in_use fixed bin (17), /* number of PVT entries in use */ 8 18 2 rwun_pvtx fixed bin, /* rewind_unloading pvtx */ 8 19 2 shutdown_state fixed bin, /* state of previous shutdown */ 8 20 2 esd_state fixed bin, /* state of ESD, >0 iff in ESD */ 8 21 2 prev_shutdown_state fixed bin, /* shutdown state of previous bootload */ 8 22 2 prev_esd_state fixed bin, /* ESD state of previous bootload */ 8 23 8 24 2 time_of_bootload fixed bin (71), /* Time of bootload */ 8 25 2 root_lvid bit (36) aligned, /* Logical volume ID of Root Logical Volume (RLV) */ 8 26 2 root_pvid bit (36) aligned, /* Physical volume ID of Root Physical Volume (RPV) */ 8 27 2 root_pvtx fixed bin, /* Index to PVTE for Root Physical Volume (RPV) */ 8 28 2 root_vtocx fixed bin, /* VTOCE index for root (>) */ 8 29 2 disk_table_vtocx fixed bin, /* VTOCE index for disk table on RPV */ 8 30 2 disk_table_uid bit (36) aligned, /* File System UID for disk_table */ 8 31 8 32 2 rpvs_requested bit (1) aligned, /* RPVS keyword given on BOOT */ 8 33 2 rpv_needs_salv bit (1) aligned, /* RPV required (not requested) salvage */ 8 34 2 rlv_needs_salv bit (1) aligned, /* RLV required (not requested) salvage */ 8 35 2 volmap_lock_wait_constant bit (36) aligned,/* For constructing wait event: OR pvte_rel into lower */ 8 36 2 volmap_idle_wait_constant bit (36) aligned,/* For constructing wait event: OR pvte_rel into lower */ 8 37 2 vtoc_map_lock_wait_constant bit (36) aligned, /* For constructing wait event: OR pvte_rel into lower */ 8 38 2 n_volmap_locks_held fixed bin (17), /* Current number of volmap locks held */ 8 39 2 n_vtoc_map_locks_held fixed bin (17), /* Current number of VTOC Map locks held */ 8 40 8 41 2 last_volmap_time fixed bin (71), /* Time a volmap was last locked/unlocked */ 8 42 2 last_vtoc_map_time fixed bin (71), /* Time a VTOC Map was last locked/unlocked */ 8 43 2 total_volmap_lock_time fixed bin (71), /* Total time volmap's were locked (integral) */ 8 44 2 total_vtoc_map_lock_time fixed bin (71), /* Total time VTOC Maps were locked (integral) */ 8 45 8 46 2 n_volmap_locks fixed bin (35), /* Number times a volmap was locked */ 8 47 2 n_vtoc_map_locks fixed bin (35), /* Number times a vtoc_map was locked */ 8 48 2 volmap_lock_nowait_calls fixed bin (35), /* Number calls to lock volmap, no wait */ 8 49 2 volmap_lock_nowait_fails fixed bin (35), /* Number times lock failed */ 8 50 2 volmap_lock_wait_calls fixed bin (35), /* Number calls to lock volmap, wait */ 8 51 2 volmap_lock_wait_fails fixed bin (35), /* Number times lock failed */ 8 52 2 pad (2) bit (36) aligned, 8 53 8 54 2 array fixed bin (71); /* Array of PVTE's -- must be double-word aligned */ 8 55 8 56 8 57 8 58 /* END INCLUDE FILE ...pvt.incl.pl1 */ 340 341 /* START OF: pvte.incl.pl1 July 1982 * * * * * * * * * * * * * * * * */ 9 2 9 3 /* Added pc_vacating, Benson Margulies 84-10-17 */ 9 4 9 5 /****^ HISTORY COMMENTS: 9 6* 1) change(86-04-11,Fawcett), approve(86-04-11,MCR7383), 9 7* audit(86-05-29,GDixon), install(86-07-18,MR12.0-1098): 9 8* Add the support for subvolumes 9 9* 2) change(86-04-11,Lippard), approve(86-04-11,MCR7309), 9 10* audit(86-05-29,GDixon), install(86-07-18,MR12.0-1098): 9 11* Add root_lv flag to mount RLVs that do not have hardcore partitions. 9 12* 3) change(88-05-27,GWMay), approve(88-05-27,MCR7883), 9 13* audit(88-06-14,Beattie), install(88-07-19,MR12.2-1061): 9 14* Added inconsistent_dbm bit for determining the status of volume 9 15* dumper bit maps. 9 16* END HISTORY COMMENTS */ 9 17 9 18 dcl pvt$array aligned external; 9 19 dcl pvt$max_n_entries fixed bin external; 9 20 9 21 dcl pvt_arrayp ptr; 9 22 dcl pvtep ptr; 9 23 9 24 dcl 1 pvt_array (pvt$max_n_entries) aligned like pvte based (pvt_arrayp); 9 25 9 26 dcl 1 pvte based (pvtep) aligned, 9 27 9 28 2 pvid bit (36), /* physical volume ID */ 9 29 9 30 2 lvid bit (36), /* logical volume ID */ 9 31 9 32 2 dmpr_in_use (3) bit (1) unaligned, /* physical volume dumper interlock */ 9 33 2 is_sv bit (1) unaligned, /* true if this entry defines a subvolume */ 9 34 2 root_lv bit (1) unaligned, /* true if this is on the root LV */ 9 35 2 removable_pack bit (1) unaligned, /* true if packs are eremoveable */ 9 36 2 inconsistent_dbm bit (1) unaligned, /* true if trouble count is incremented */ 9 37 2 pad3 bit (2) unaligned, 9 38 2 brother_pvtx fixed bin (8) unaligned,/* next pvte in lv chain */ 9 39 2 skip_queue_count fixed bin (18) unsigned unaligned, /* number of times this pv skipped for per-proc allocation due to saturation */ 9 40 9 41 9 42 9 43 2 devname char (4), /* device name */ 9 44 9 45 (2 device_type fixed bin (8), /* device type */ 9 46 2 logical_area_number fixed bin (8), /* disk drive number */ 9 47 2 used bit (1), /* TRUE if this entry is used */ 9 48 2 storage_system bit (1), /* TRUE for storage system (vs io disk) */ 9 49 2 permanent bit (1), /* TRUE if cannot be demounted */ 9 50 2 testing bit (1), /* Protocol bit for read_disk$test */ 9 51 2 being_mounted bit (1), /* TRUE if the physical volume is being mounted */ 9 52 2 being_demounted bit (1), /* TRUE if the pysical volume is being demounted */ 9 53 2 check_read_incomplete bit (1), /* page control should check read incomplete */ 9 54 2 device_inoperative bit (1), /* TRUE if disk_control decides dev busted */ 9 55 2 rpv bit (1), /* TRUE if this is the root physical volume */ 9 56 2 scav_check_address 9 57 bit (1), /* TRUE is page control should check deposits/withdrawals against scavenger table */ 9 58 2 deposit_to_volmap bit (1), /* TRUE if deposits should got to volume map, not stock */ 9 59 2 being_demounted2 bit (1), /* No more vtoc I/O during demount */ 9 60 2 pc_vacating bit (1), /* No more withdraws from this volume -- for debugging */ 9 61 2 vacating bit (1), /* don't put new segs on this vol */ 9 62 2 hc_part_used bit (1), /* HC part set up by init_pvt */ 9 63 2 volmap_lock_notify bit (1) unal, /* TRUE if notify required when volmap lock is unlocked */ 9 64 2 volmap_idle_notify bit (1) unal, /* TRUE if notify required when volmap state is idle */ 9 65 2 vtoc_map_lock_notify bit (1) unal, /* TRUE if notify required when vtoc map lock is unlocked */ 9 66 9 67 9 68 2 n_free_vtoce fixed bin (17), /* number of free VTOC entries */ 9 69 2 vtoc_size fixed bin (17), /* size of the VTOC part of the disk - in records */ 9 70 9 71 2 dbmrp (2) bit (18), /* rel ptr to dumber bit maps for this volume */ 9 72 9 73 2 nleft fixed bin (17), /* number of records left */ 9 74 2 totrec fixed bin (17)) unaligned, /* Total records in this map */ 9 75 9 76 2 dim_info bit (36), /* Information peculiar to DIM */ 9 77 2 sv_num fixed bin, /* the number of this subvolume starting at 0 */ 9 78 2 num_of_svs fixed bin, /* number of subvolumes for this device */ 9 79 2 records_per_cyl fixed bin, 9 80 2 record_factor fixed bin, /* the record factor for logical to real seek calculation */ 9 81 2 sv_name char (2) aligned, 9 82 2 curn_dmpr_vtocx (3) fixed bin unaligned,/* current vtocx being dumped */ 9 83 2 n_vtoce fixed bin unaligned, /* number of vtoce on this volume */ 9 84 9 85 2 baseadd fixed bin (18) uns unaligned, /* Base of paging region */ 9 86 2 pad2 bit (18) unaligned, 9 87 9 88 2 pad_for_mod_2 fixed bin (35), /* Make volmap_seg_sdw double word aligned */ 9 89 9 90 2 volmap_seg_sdw fixed bin (71), /* SDW describing volmap_seg */ 9 91 9 92 2 volmap_astep ptr unal, /* Packed pointer to ASTE for volmap_seg */ 9 93 9 94 2 volmap_offset bit (18) unal, /* Offset in volmap_seg of volume map */ 9 95 2 vtoc_map_offset bit (18) unal, /* Offset in volmap_seg of VTOC map */ 9 96 9 97 9 98 2 volmap_lock bit (36) aligned, /* Lock on volume map operations */ 9 99 9 100 2 vtoc_map_lock bit (36) aligned, /* Lock on VTOC map operations */ 9 101 9 102 2 volmap_stock_ptr ptr unal, /* Packed pointer to record stock */ 9 103 9 104 2 vtoc_map_stock_ptr ptr unal, /* Packed pointer to VTOCE stock */ 9 105 9 106 2 volmap_async_state fixed bin (17) unaligned, /* Asynchronous update state of Volume Map */ 9 107 2 volmap_async_page fixed bin (17) unaligned, /* Page number for asynchronous update */ 9 108 9 109 2 vol_trouble_count fixed bin (17) unaligned, /* Count of inconsistencies since last salvage */ 9 110 2 scavenger_block_rel bit (18) unaligned; /* Offset to scavenger block, ^0 => scavenging */ 9 111 9 112 9 113 dcl (VOLMAP_ASYNC_IDLE init (0), /* for volmap_async_state */ 9 114 VOLMAP_ASYNC_READ init (1), 9 115 VOLMAP_ASYNC_WRITE init (2)) fixed bin int static options (constant); 9 116 9 117 9 118 /* END OF: pvte.incl.pl1 * * * * * * * * * * * * * * * * */ 341 342 /* START OF: stock_seg.incl.pl1 * * * * * * * * * * * * * * * * */ 10 2 10 3 dcl stock_segp ptr; 10 4 dcl record_stockp ptr; 10 5 dcl vtoce_stockp ptr; 10 6 dcl stock_seg$ ext; 10 7 10 8 dcl n_in_record_stock fixed bin; 10 9 dcl n_volmap_pages fixed bin; 10 10 dcl n_in_vtoce_stock fixed bin; 10 11 10 12 10 13 dcl 1 stock_seg aligned based (stock_segp), 10 14 10 15 2 meters aligned like rsmeters, 10 16 10 17 2 record_stock_entries fixed bin, /* Number of entries in a record stock */ 10 18 2 vtoce_stock_entries fixed bin, /* Number of entries in a VTOCE stock */ 10 19 2 record_stock_size fixed bin, /* Size of a record stock in words */ 10 20 2 vtoce_stock_size fixed bin, /* Size of a VTOCE stock in words */ 10 21 2 n_stock_entries fixed bin, /* Number of stocks of each type */ 10 22 2 record_stock_arrayp ptr, /* Record stock region */ 10 23 2 vtoce_stock_arrayp ptr; /* VTOCE stock region */ 10 24 10 25 10 26 dcl 1 record_stock aligned based (record_stockp), 10 27 10 28 2 pvtep ptr unal, /* PVTE for this stock */ 10 29 10 30 2 n_in_stock fixed bin (18) uns unal,/* Max number of addresses in stock */ 10 31 2 n_volmap_pages fixed bin (18) uns unal,/* Number of pages in Volume Map */ 10 32 10 33 2 n_free_in_stock fixed bin (18) uns unal,/* Number addresses currently free */ 10 34 2 n_os_in_stock fixed bin (18) uns unal,/* Number addresses currently out-of-service */ 10 35 10 36 2 low_threshold fixed bin (18) uns unal,/* Low threshold for withdrawing from volmap */ 10 37 2 high_threshold fixed bin (18) uns unal,/* High threshold for depositing to volmap */ 10 38 10 39 2 target fixed bin (18) uns unal,/* Target for stock */ 10 40 2 stock_offset bit (18) unal, /* Offset of stock in this structure */ 10 41 10 42 2 n_words_in_stock fixed bin (18) uns unal,/* Number of words = Number of entries / 2 */ 10 43 2 search_index fixed bin (18) uns unal,/* Roving pointer */ 10 44 10 45 2 old_volmap_page (3) aligned, /* N_OLD_VOLMAP_PAGES (cif) */ 10 46 3 last fixed bin (18) uns unal,/* Roving pointer */ 10 47 3 pad bit (18) unal, 10 48 10 49 2 volmap_page (n_volmap_pages refer (record_stock.n_volmap_pages)) aligned, 10 50 3 n_free fixed bin (18) uns unal,/* Number free records in this volmap page */ 10 51 3 baseadd fixed bin (17) unal, /* First record address described by this page */ 10 52 10 53 2 stock (n_in_record_stock refer (record_stock.n_in_stock)) bit (18) unal; /* Stock array of addresses */ 10 54 /* bit 0 ON => out-of-service */ 10 55 10 56 10 57 dcl 1 vtoce_stock aligned based (vtoce_stockp), 10 58 2 pvtep ptr unal, /* PVTE for this stock */ 10 59 2 n_in_stock fixed bin (18) uns unal,/* Max number indices in stock */ 10 60 2 n_free_in_stock fixed bin (18) uns unal,/* Number indices currently free */ 10 61 2 target fixed bin (18) uns unal,/* Target when withdrawing/depositing */ 10 62 2 search_index fixed bin (18) uns unal,/* Roving pointer */ 10 63 2 stock (n_in_vtoce_stock refer (vtoce_stock.n_in_stock)) fixed bin (17) unal; /* Stock array of VTOCE indices */ 10 64 10 65 10 66 dcl 1 rsmeters aligned based, 10 67 10 68 2 async_read_calls fixed bin (35), /* Number of asynchronous read attempts */ 10 69 2 async_page_reads fixed bin (35), /* Number of times page read was required */ 10 70 2 async_post_io_calls fixed bin (35), /* Number of times read or write posted */ 10 71 2 deposit_calls fixed bin (35), /* Number of times deposit called */ 10 72 2 async_post_io_time fixed bin (71), /* CPU time posting I/Os (interrupt side) */ 10 73 2 deposit_time fixed bin (71), /* CPU time in deposit (call side) */ 10 74 2 low_thresh_detected fixed bin (35), /* Number of times stock below low threshold */ 10 75 2 high_thresh_detected fixed bin (35), /* Number of times stock above high threshold */ 10 76 2 low_thresh_fails fixed bin (35), /* Number of times no records in volmap */ 10 77 2 withdraw_stock_steps fixed bin (35), /* Number steps thru stock in withdraw */ 10 78 2 withdraw_stock_losses fixed bin (35), /* Number lockless losses */ 10 79 2 n_withdraw_attempt fixed bin (35), /* Number attempts to withdraw a page */ 10 80 2 n_withdraw_range fixed bin (35), /* Number attempts to withdraw within range */ 10 81 2 n_pages_withdraw_stock fixed bin (35), /* Number pages withdrawn from stock */ 10 82 2 n_pages_withdraw_async fixed bin (35), /* Number pages withdrawn from volmap */ 10 83 2 n_v_withdraw_attempts fixed bin (35), /* Number attempts to withdraw from volmap */ 10 84 2 withdraw_volmap_steps fixed bin (35), /* Number steps thru volmap in withdraw */ 10 85 2 deposit_stock_steps fixed bin (35), /* Number steps thru stock in deposit */ 10 86 2 deposit_stock_losses fixed bin (35), /* Number lockless losses */ 10 87 2 n_deposit_attempt fixed bin (35), /* Number attempts to deposit a page */ 10 88 2 n_pages_deposit_stock fixed bin (35), /* Number pages deposited to stock */ 10 89 2 n_pages_deposit_volmap fixed bin (35), /* Number pages deposited to volmap */ 10 90 2 n_v_deposit_attempts fixed bin (35), /* Number attempts to deposit to volmap */ 10 91 2 reset_os_calls fixed bin (35), /* Number calls to reset_os */ 10 92 2 reset_os_losses fixed bin (35), /* Number lockless losses */ 10 93 2 withdraw_calls fixed bin (35), /* Number calls to withdraw */ 10 94 2 withdraw_time fixed bin (71), /* CPU time in withdraw (page-fault) */ 10 95 2 pc_deposit_time fixed bin (71), /* CPU time in pc_deposit */ 10 96 2 pc_deposit_calls fixed bin (35), /* Number calls to pc_deposit */ 10 97 2 pc_deposit_pages fixed bin (35), /* Number pages deposited by pc_deposit */ 10 98 2 get_free_vtoce_calls fixed bin (35), /* Number calls to get_free_vtoce */ 10 99 2 return_free_vtoce_call fixed bin (35), /* Number calls to return_free_vtoce */ 10 100 2 deposit_vstock_calls fixed bin (35), /* Number attempts to deposit to vtoce stock */ 10 101 2 deposit_vstock_fails fixed bin (35), /* Number times deposit failed */ 10 102 2 withdraw_vstock_calls fixed bin (35), /* Number attempts to withdraw from vtoce stock */ 10 103 2 withdraw_vstock_fails fixed bin (35), /* Number times withdraw failed */ 10 104 2 deposit_vtoc_map fixed bin (35), /* Number times vtoce deposited to map */ 10 105 2 withdraw_check_scav fixed bin (35), /* Number times withdraw checked an address for scavenge */ 10 106 2 withdraw_conflict fixed bin (35), /* Number times conflict found */ 10 107 2 pad (11) fixed bin (35); 10 108 10 109 10 110 dcl N_OLD_VOLMAP_PAGES fixed bin init (3) int static options (constant); 10 111 dcl DEFAULT_N_IN_RECORD_STOCK fixed bin init (104) int static options (constant); 10 112 dcl DEFAULT_N_IN_VTOCE_STOCK fixed bin init (10) int static options (constant); 10 113 10 114 10 115 /* END OF: stock_seg.incl.pl1 * * * * * * * * * * * * * * * * */ 342 343 /* BEGIN INCLUDE FILE syserr_constants.incl.pl1 ... 11/11/80 W. Olin Sibert */ 11 2 /* 85-02-12, EJ Sharpe - Added sorting class constants, removed AIM_MESSAGE, added new action code names. */ 11 3 /* 85-04-24, G. Palter - Renamed SYSERR_UNUSED_10 to SYSERR_RING1_ERROR to reflect its actual use. */ 11 4 11 5 /* This include file has an ALM version. Keep 'em in sync! */ 11 6 11 7 dcl ( 11 8 11 9 /* The following constants define the message action codes. This indicates 11 10*how a message is to be handled. */ 11 11 11 12 SYSERR_CRASH_SYSTEM init (1), 11 13 CRASH init (1), /* Crash the system, and bleat plaintively. */ 11 14 11 15 SYSERR_TERMINATE_PROCESS init (2), 11 16 TERMINATE_PROCESS init (2), /* Terminate the process, print the message, and beep. */ 11 17 11 18 SYSERR_PRINT_WITH_ALARM init (3), 11 19 BEEP init (3), /* Beep and print the message on the console. */ 11 20 11 21 SYSERR_PRINT_ON_CONSOLE init (0), 11 22 ANNOUNCE init (0), /* Just print the message on the console. */ 11 23 11 24 SYSERR_LOG_OR_PRINT init (4), 11 25 LOG init (4), /* Log the message, or print it if it can't be logged */ 11 26 11 27 SYSERR_LOG_OR_DISCARD init (5), 11 28 JUST_LOG init (5), /* Just try to log the message, and discard it if it can't be */ 11 29 11 30 11 31 /* The following constants are added to the normal severities to indicate 11 32*different sorting classes of messages. */ 11 33 11 34 SYSERR_SYSTEM_ERROR init (00), /* indicates a standard level system error */ 11 35 SYSERR_RING1_ERROR init (10), /* indicates an error detected in ring 1 (mseg_, RCP) */ 11 36 SYSERR_COVERT_CHANNEL init (20), /* indicates covert channel audit trail message */ 11 37 SYSERR_UNSUCCESSFUL_ACCESS init (30), /* indicates access denial audit trail message */ 11 38 SYSERR_SUCCESSFUL_ACCESS init (40) /* indicates access grant audit trail message */ 11 39 ) fixed bin internal static options (constant); 11 40 11 41 /* END INCLUDE FILE syserr_constants.incl.pl1 */ 343 344 345 346 /* BEGIN MESSAGE DOCUMENTATION 347* 348* 349* Message: 350* init_pvt: Duplicate prph DISK_NAME card. 351* 352* S: $crash 353* 354* T: $init 355* 356* M: Two different PRPH cards define DISK_NAME. 357* 358* A: Fix the config deck. 359* 360* Message: 361* init_pvt: no PRPH DSKn cards 362* 363* S: $crash 364* 365* T: $init 366* 367* M: No PRPH cards describing disk subsystems were found in the CONFIG deck. 368* 369* A: Correct the CONFIG deck to include the correct PRPH cards to describe 370* the disk subsystems present, and reboot. 371* 372* 373* Message: 374* init_pvt: XXXX contains a drive number higher than N. 375* 376* S: $crash 377* 378* T: $init 379* 380* M: The PRPH card for disk subsystem XXXX specified disk(s) with addresses 381* larger than tha maximum allowable device number, N. 382* 383* A: $recover 384* Correct the configuration deck and reboot. 385* 386* Message: 387* init_pvt: More than N drives defined for XXXX. 388* 389* S: $crash 390* 391* T: $init 392* 393* M: The PRPH card for disk subsystem XXXX specified more than the maximum 394* allowable number of disk drives. 395* 396* A: $recover 397* Correct the configuration deck and reboot. 398* 399* Message: 400* init_pvt: Too many disk subsystems configured. Limit is NUMBER. 401* 402* S: $crash 403* 404* T: $init 405* 406* M: More than NUMBER subsystems are defined. Only NUMBER are allowed. 407* 408* A: Rearrange the config deck for disks and try again. 409* 410* Message: 411* init_pvt: Missing ndrives field on config card for DISK subsystem. 412* 413* S: $crash 414* 415* T: $init 416* 417* M: The PRPH DSK card for DISK lacks the ndrives parameter for 418* some model. 419* 420* A: Fix the config deck. 421* 422* Message: 423* init_pvt: Unknown model MODEL on PRPH DISK. 424* 425* S: $crash 426* 427* T: $init 428* 429* M: The model number MODEL specified somewhere on the prph DISK card 430* is not a legal model number. 431* 432* A: Fix the config deck. 433* 434* 435* Message: 436* init_pvt: Missing model MODEL on PRPH DISK. 437* 438* S: $crash 439* 440* T: $init 441* 442* M: There was no model number specified on the prph DISK card. 443* 444* A: Fix the config deck. 445* 446* Message: 447* init_pvt: Invalid parm wlim value WLIM. Default of DEFAULT used. 448* 449* S: $beep 450* 451* T: $init 452* 453* M: An unreasonable value (WLIM) was found on a PARM WLIM 454* card. DEFAULT has be substituted. 455* 456* A: Fix the config deck. 457* 458* END MESSAGE DOCUMENTATION */ 459 460 end init_pvt; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 11/11/89 0815.8 init_pvt.pl1 >spec>install>1112>init_pvt.pl1 334 1 07/11/84 0937.3 collection_1_phases.incl.pl1 >ldd>include>collection_1_phases.incl.pl1 335 2 05/08/81 1853.7 config_prph_dsk_card.incl.pl1 >ldd>include>config_prph_dsk_card.incl.pl1 336 3 10/31/84 1315.5 config_prph_card.incl.pl1 >ldd>include>config_prph_card.incl.pl1 337 4 05/08/81 1853.7 config_parm_card.incl.pl1 >ldd>include>config_parm_card.incl.pl1 338 5 10/30/86 2010.5 config_data_dcls.incl.pl1 >ldd>include>config_data_dcls.incl.pl1 339 6 10/30/86 2010.5 fs_dev_types.incl.pl1 >ldd>include>fs_dev_types.incl.pl1 6-142 7 07/24/86 2051.8 fs_dev_types_sector.incl.pl1 >ldd>include>fs_dev_types_sector.incl.pl1 340 8 05/27/82 1525.8 pvt.incl.pl1 >ldd>include>pvt.incl.pl1 341 9 07/21/88 2036.0 pvte.incl.pl1 >ldd>include>pvte.incl.pl1 342 10 10/25/82 1015.6 stock_seg.incl.pl1 >ldd>include>stock_seg.incl.pl1 343 11 05/17/85 0615.7 syserr_constants.incl.pl1 >ldd>include>syserr_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. BEEP 000106 constant fixed bin(17,0) initial dcl 11-7 set ref 307* CRASH 000024 constant fixed bin(17,0) initial dcl 11-7 set ref 141* 146* 156* 208* 213* 228* 238* 242* MAX_DRIVES_PER_SUBSYSTEM 000100 constant fixed bin(17,0) initial dcl 95 set ref 242 242* MODEL 000040 constant fixed bin(17,0) initial array dcl 6-57 ref 223 223 226 MODELX 000024 constant fixed bin(17,0) initial array dcl 6-60 ref 231 PRPH_CARD_WORD 000054 constant char(4) initial dcl 3-19 set ref 132* SERVICE_INITIALIZATION constant fixed bin(17,0) initial dcl 1-12 ref 295 VOLMAP_IDLE_WAIT_CONSTANT constant bit(36) initial dcl 98 ref 121 VOLMAP_LOCK_WAIT_CONSTANT constant bit(36) initial dcl 98 ref 120 VTOC_MAP_LOCK_WAIT_CONSTANT constant bit(36) initial dcl 98 ref 122 WHOAMI 000055 constant char(32) initial packed unaligned dcl 94 set ref 141* 146* 156* 208* 213* 238* 242* 307* addr builtin function dcl 108 ref 117 118 183 246 269 addrel builtin function dcl 108 ref 185 array 50 based fixed bin(71,0) level 2 dcl 8-13 set ref 118 char4 000100 automatic char(4) dcl 65 set ref 173* 175 clock builtin function dcl 108 ref 119 config_$find 000012 constant entry external dcl 88 ref 132 config_$find_parm 000014 constant entry external dcl 89 ref 300 config_data_$disk_drive_model_names 000024 external static structure level 1 dcl 5-148 count 000024 external static fixed bin(17,0) level 2 dcl 5-148 ref 325 curn_dmpr_vtocx 16 based fixed bin(17,0) array level 2 packed packed unaligned dcl 9-26 set ref 251* dcp 000101 automatic pointer array packed unaligned dcl 66 set ref 152* 169 170* 170 171* 194 device_0_valid 4 000024 external static bit(1) array level 3 dcl 5-148 ref 326 device_type 4 based fixed bin(8,0) level 2 in structure "pvte" packed packed unaligned dcl 9-26 in procedure "init_pvt" set ref 249* device_type 000141 automatic fixed bin(17,0) dcl 69 in procedure "init_pvt" set ref 223* 223* 226 231* 231 249 254 255 256 257 264 267 275 devname 3 based char(4) level 2 dcl 9-26 set ref 247* divide builtin function dcl 108 ref 205 drive_idx 000142 automatic fixed bin(17,0) dcl 70 set ref 233* driveno 000143 automatic fixed bin(17,0) dcl 71 set ref 197* 201* 219* 219 236* 236 238 248 group 5 based structure array level 2 in structure "prph_dsk_card_array" dcl 2-21 in procedure "init_pvt" ref 205 group 5 based structure array level 2 in structure "prph_dsk_card" dcl 2-5 in procedure "init_pvt" set ref 323 group_idx 000144 automatic fixed bin(17,0) dcl 72 set ref 205* 208 213 216 219 223 228 233* hbound builtin function dcl 108 ref 146 146 146 205 223 226 323 i 000254 automatic fixed bin(17,0) dcl 321 set ref 325* 326 326* is_sv 2(03) based bit(1) level 2 packed packed unaligned dcl 9-26 set ref 254* 260 j 000255 automatic fixed bin(17,0) dcl 321 set ref 323* 324 326* logical_area_number 4(09) based fixed bin(8,0) level 2 packed packed unaligned dcl 9-26 set ref 248* max builtin function dcl 108 ref 205 297 max_driveno 000145 automatic fixed bin(17,0) dcl 73 set ref 198* 202* 238 238* media_removable 000023 constant bit(1) initial array packed unaligned dcl 6-75 ref 256 model 5 based fixed bin(17,0) array level 3 in structure "prph_dsk_card" dcl 2-5 in procedure "init_pvt" set ref 213 216 223 228* 324 326 model 1 000024 external static fixed bin(17,0) array level 3 in structure "config_data_$disk_drive_model_names" dcl 5-148 in procedure "init_pvt" ref 326 n_entries based fixed bin(17,0) level 2 dcl 8-13 set ref 293* n_fields 17(32) based fixed bin(4,0) level 3 packed packed unsigned unaligned dcl 2-5 ref 205 n_stock_entries 72 based fixed bin(17,0) level 2 dcl 10-13 ref 185 name 1 based char(4) level 2 dcl 2-5 set ref 137 141 141* 151 208* 213* 228* 238* 242* 247 names 1 000024 external static structure array level 2 dcl 5-148 nd 000146 automatic fixed bin(17,0) dcl 74 set ref 130* 140 145* 145 146 151 152 156 165 192 297 ndrives 6 based fixed bin(17,0) array level 3 dcl 2-5 ref 208 219 233 null builtin function dcl 108 ref 131 135 252 253 302 num_of_svs 12 based fixed bin(17,0) level 2 dcl 9-26 set ref 255* number_of_sv 000012 constant fixed bin(17,0) initial array dcl 6-93 ref 254 255 267 numeric_parm based structure level 1 dcl 4-21 page$init 000016 constant entry external dcl 91 ref 265 283 parm_ptr 000222 automatic pointer dcl 4-19 set ref 300* 302 302 302 302 307 pri_pvtep 000150 automatic pointer dcl 75 set ref 259* 270 pri_tx 000152 automatic fixed bin(17,0) dcl 76 set ref 258* 265* 283* prph_dsk_card based structure level 1 dcl 2-5 prph_dsk_card_array based structure level 1 dcl 2-21 prph_dsk_cardp 000220 automatic pointer dcl 2-3 set ref 131* 132* 135 137 141 141 151 152 169* 171 194* 205 205 208 208 213 213 216 219 223 228 228 233 238 242 247 265* 283* 323 324 326 ptr builtin function dcl 108 ref 184 pvt based structure level 1 dcl 8-13 pvt$ 000026 external static fixed bin(17,0) dcl 8-9 set ref 117 pvt_array based structure array level 1 dcl 9-24 set ref 246 269 pvt_arrayp 000230 automatic pointer dcl 9-21 set ref 118* 246 269 pvte based structure level 1 dcl 9-26 set ref 270* 270 pvtep 000232 automatic pointer dcl 9-22 set ref 246* 247 248 249 250 251 252 253 254 255 256 257 259 260 262 263 263 264 264 269* 270 272 274 274 275 275 280 281 282 pvtp 000226 automatic pointer dcl 8-9 set ref 117* 118 119 120 121 122 124 125 126 293 rec_per_cyl 000000 constant fixed bin(17,0) initial array dcl 6-108 ref 257 264 275 record_factor 14 based fixed bin(17,0) level 2 dcl 9-26 set ref 264* 275* 281* record_stock_arrayp 74 based pointer level 2 dcl 10-13 set ref 184* 185 record_stock_size 70 based fixed bin(17,0) level 2 dcl 10-13 ref 185 records_per_cyl 13 based fixed bin(17,0) level 2 dcl 9-26 set ref 257* removable_pack 2(05) based bit(1) level 2 packed packed unaligned dcl 9-26 set ref 256* root_pvid 13 based bit(36) level 2 dcl 8-13 set ref 124* root_pvtx 14 based fixed bin(17,0) level 2 dcl 8-13 set ref 125* root_vtocx 15 based fixed bin(17,0) level 2 dcl 8-13 set ref 126* rsmeters based structure level 1 dcl 10-66 seek_command 000224 automatic bit(6) initial array packed unaligned dcl 6-84 set ref 6-84* 6-84* 6-84* 6-84* 6-84* 6-84* 6-84* 6-84* 6-84* size builtin function dcl 108 ref 184 ss_drive_count 000153 automatic fixed bin(17,0) dcl 78 set ref 204* 241* 241 242 sst$write_limit 000010 external static fixed bin(35,0) dcl 86 set ref 297* 302* 307* stock_seg based structure level 1 dcl 10-13 set ref 184 stock_seg$ 000030 external static fixed bin(17,0) dcl 10-6 set ref 183 stock_segp 000234 automatic pointer dcl 10-3 set ref 183* 184 184 184 185 185 185 185 storage_system 4(19) based bit(1) level 2 packed packed unaligned dcl 9-26 set ref 250* substr builtin function dcl 108 ref 137 subsys 000154 automatic char(4) array dcl 79 set ref 141 146 146 146 151* 166 166 173 174* 174 175* subsys_idx 000214 automatic fixed bin(17,0) dcl 81 set ref 140* 141* 165* 166 166 169 170 170 171 173 174 174 175* 192* 194* sv_cur 000215 automatic fixed bin(17,0) dcl 82 set ref 267* 272* sv_name 15 based char(2) level 2 dcl 9-26 set ref 263* 274* 282* sv_num 11 based fixed bin(17,0) level 2 dcl 9-26 set ref 262* 263 264 272* 274 275 280* swap 000216 automatic bit(1) dcl 83 set ref 162* 163 164* 168* sys_info$collection_1_phase 000022 external static fixed bin(17,0) dcl 1-8 ref 295 syserr 000020 constant entry external dcl 92 ref 141 146 156 208 213 228 238 242 307 time_of_bootload 10 based fixed bin(71,0) level 2 dcl 8-13 set ref 119* tx 000217 automatic fixed bin(17,0) dcl 84 set ref 191* 245* 245 246 258 268* 268 269 293 type_word 17 based structure level 2 dcl 2-5 valid_sv_array 000011 constant char(1) initial array packed unaligned dcl 6-99 ref 263 274 value 1 based fixed bin(35,0) level 2 dcl 4-21 set ref 302 302 302 307* volmap_idle_wait_constant 24 based bit(36) level 2 dcl 8-13 set ref 121* volmap_lock_wait_constant 23 based bit(36) level 2 dcl 8-13 set ref 120* volmap_stock_ptr 30 based pointer level 2 packed packed unaligned dcl 9-26 set ref 252* vtoc_map_lock_wait_constant 25 based bit(36) level 2 dcl 8-13 set ref 122* vtoc_map_stock_ptr 31 based pointer level 2 packed packed unaligned dcl 9-26 set ref 253* vtoce_stock_arrayp 76 based pointer level 2 dcl 10-13 set ref 185* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. ANNOUNCE internal static fixed bin(17,0) initial dcl 11-7 BCE_CRASH_INITIALIZATION internal static fixed bin(17,0) initial dcl 1-20 BOOT_INITIALIZATION internal static fixed bin(17,0) initial dcl 1-11 COLLECTION_1_PHASE_NAMES internal static char(16) initial array packed unaligned dcl 1-23 CRASH_INITIALIZATION internal static fixed bin(17,0) initial dcl 1-18 DEFAULT_N_IN_RECORD_STOCK internal static fixed bin(17,0) initial dcl 10-111 DEFAULT_N_IN_VTOCE_STOCK internal static fixed bin(17,0) initial dcl 10-112 EARLY_INITIALIZATION internal static fixed bin(17,0) initial dcl 1-10 JUST_LOG internal static fixed bin(17,0) initial dcl 11-7 LOG internal static fixed bin(17,0) initial dcl 11-7 MODELN internal static fixed bin(17,0) initial array dcl 6-63 N_OLD_VOLMAP_PAGES internal static fixed bin(17,0) initial dcl 10-110 PARM_CARD_WORD internal static char(4) initial dcl 4-29 RE_EARLY_INITIALIZATION internal static fixed bin(17,0) initial dcl 1-19 SHUT_INITIALIZATION internal static fixed bin(17,0) initial dcl 1-21 SYSERR_COVERT_CHANNEL internal static fixed bin(17,0) initial dcl 11-7 SYSERR_CRASH_SYSTEM internal static fixed bin(17,0) initial dcl 11-7 SYSERR_LOG_OR_DISCARD internal static fixed bin(17,0) initial dcl 11-7 SYSERR_LOG_OR_PRINT internal static fixed bin(17,0) initial dcl 11-7 SYSERR_PRINT_ON_CONSOLE internal static fixed bin(17,0) initial dcl 11-7 SYSERR_PRINT_WITH_ALARM internal static fixed bin(17,0) initial dcl 11-7 SYSERR_RING1_ERROR internal static fixed bin(17,0) initial dcl 11-7 SYSERR_SUCCESSFUL_ACCESS internal static fixed bin(17,0) initial dcl 11-7 SYSERR_SYSTEM_ERROR internal static fixed bin(17,0) initial dcl 11-7 SYSERR_TERMINATE_PROCESS internal static fixed bin(17,0) initial dcl 11-7 SYSERR_UNSUCCESSFUL_ACCESS internal static fixed bin(17,0) initial dcl 11-7 TERMINATE_PROCESS internal static fixed bin(17,0) initial dcl 11-7 VOLMAP_ASYNC_IDLE internal static fixed bin(17,0) initial dcl 9-113 VOLMAP_ASYNC_READ internal static fixed bin(17,0) initial dcl 9-113 VOLMAP_ASYNC_WRITE internal static fixed bin(17,0) initial dcl 9-113 bulkdevt internal static fixed bin(4,0) initial dcl 6-43 config_data_$ccu_model_names external static structure level 1 dcl 5-178 config_data_$chnl_cardx external static fixed bin(17,0) dcl 5-27 config_data_$clok_cardx external static fixed bin(17,0) dcl 5-29 config_data_$config_cards external static structure level 1 dcl 5-94 config_data_$console_model_names external static structure level 1 dcl 5-192 config_data_$cpu_cardx external static fixed bin(17,0) dcl 5-31 config_data_$fnp_cardx external static fixed bin(17,0) dcl 5-33 config_data_$intk_cardx external static fixed bin(17,0) dcl 5-35 config_data_$iom_cardx external static fixed bin(17,0) dcl 5-37 config_data_$ipc_fips_cardx external static fixed bin(17,0) dcl 5-45 config_data_$ipc_msp_model_names external static structure level 1 dcl 5-130 config_data_$ipc_mtp_model_names external static structure level 1 dcl 5-139 config_data_$mem_cardx external static fixed bin(17,0) dcl 5-39 config_data_$mpc_cardx external static fixed bin(17,0) dcl 5-49 config_data_$mpc_msp_cardx external static fixed bin(17,0) dcl 5-41 config_data_$mpc_msp_model_names external static structure level 1 dcl 5-104 config_data_$mpc_mtp_cardx external static fixed bin(17,0) dcl 5-43 config_data_$mpc_mtp_model_names external static structure level 1 dcl 5-113 config_data_$mpc_urp_cardx external static fixed bin(17,0) dcl 5-47 config_data_$mpc_urp_model_names external static structure level 1 dcl 5-122 config_data_$mpcs_cardx external static fixed bin(17,0) dcl 5-57 config_data_$mpcs_msp_cardx external static fixed bin(17,0) dcl 5-51 config_data_$mpcs_mtp_cardx external static fixed bin(17,0) dcl 5-53 config_data_$mpcs_urp_cardx external static fixed bin(17,0) dcl 5-55 config_data_$parm_cardx external static fixed bin(17,0) dcl 5-59 config_data_$part_cardx external static fixed bin(17,0) dcl 5-61 config_data_$printer_model_names external static structure level 1 dcl 5-164 config_data_$prph_cardx external static fixed bin(17,0) dcl 5-77 config_data_$prph_ccu_cardx external static fixed bin(17,0) dcl 5-71 config_data_$prph_dsk_cardx external static fixed bin(17,0) dcl 5-63 config_data_$prph_opc_cardx external static fixed bin(17,0) dcl 5-75 config_data_$prph_prt_cardx external static fixed bin(17,0) dcl 5-65 config_data_$prph_pun_cardx external static fixed bin(17,0) dcl 5-69 config_data_$prph_rdr_cardx external static fixed bin(17,0) dcl 5-67 config_data_$prph_tap_cardx external static fixed bin(17,0) dcl 5-73 config_data_$punch_model_names external static structure level 1 dcl 5-185 config_data_$reader_model_names external static structure level 1 dcl 5-171 config_data_$root_cardx external static fixed bin(17,0) dcl 5-79 config_data_$salv_cardx external static fixed bin(17,0) dcl 5-81 config_data_$schd_cardx external static fixed bin(17,0) dcl 5-83 config_data_$sst_cardx external static fixed bin(17,0) dcl 5-85 config_data_$stok_cardx external static fixed bin(17,0) dcl 5-87 config_data_$tape_drive_model_names external static structure level 1 dcl 5-156 config_data_$tbls_cardx external static fixed bin(17,0) dcl 5-89 config_data_$udsk_cardx external static fixed bin(17,0) dcl 5-91 cyl_per_dev internal static fixed bin(17,0) initial array dcl 6-102 cyl_per_sv internal static fixed bin(17,0) initial array dcl 6-105 dev_time internal static float bin(27) initial array dcl 6-139 device_names internal static char(4) initial array dcl 6-66 dsu181devt internal static fixed bin(4,0) initial dcl 6-43 dsu190devt internal static fixed bin(4,0) initial dcl 6-43 dsu191devt internal static fixed bin(4,0) initial dcl 6-43 fips3380devt internal static fixed bin(4,0) initial dcl 6-43 fips3381devt internal static fixed bin(4,0) initial dcl 6-43 fips_type_disk internal static bit(1) initial array packed unaligned dcl 6-72 first_alt_sect_num internal static fixed bin(24,0) initial array dcl 6-130 first_dev_number internal static fixed bin(17,0) initial array dcl 6-69 first_rec_num internal static fixed bin(17,0) initial array dcl 6-115 first_sect_num internal static fixed bin(24,0) initial array dcl 6-124 last_alt_sect_num internal static fixed bin(24,0) initial array dcl 6-133 last_physical_sect_num internal static fixed bin(24,0) initial array dcl 6-136 last_rec_num internal static fixed bin(18,0) initial array dcl 6-118 last_sect_num internal static fixed bin(24,0) initial array dcl 6-127 last_sv_rec_num internal static fixed bin(18,0) initial array dcl 6-121 maxdevt internal static fixed bin(4,0) initial dcl 6-43 msu0400devt internal static fixed bin(4,0) initial dcl 6-43 msu0450devt internal static fixed bin(4,0) initial dcl 6-43 msu0451devt internal static fixed bin(4,0) initial dcl 6-43 msu0500devt internal static fixed bin(4,0) initial dcl 6-43 msu0501devt internal static fixed bin(4,0) initial dcl 6-43 n_in_record_stock automatic fixed bin(17,0) dcl 10-8 n_in_vtoce_stock automatic fixed bin(17,0) dcl 10-10 n_volmap_pages automatic fixed bin(17,0) dcl 10-9 needs_alt_part internal static bit(1) initial array packed unaligned dcl 6-81 parm_card based structure level 1 dcl 4-5 parm_card_array based structure level 1 unaligned dcl 4-14 parm_cardp automatic pointer dcl 4-3 partition automatic char(4) packed unaligned dcl 77 prph_card based structure level 1 dcl 3-5 prph_cardp automatic pointer dcl 3-3 pvt$array external static fixed bin(17,0) dcl 9-18 pvt$max_n_entries external static fixed bin(17,0) dcl 9-19 rec_per_dev internal static fixed bin(21,0) initial array dcl 6-87 rec_per_sv internal static fixed bin(17,0) initial array dcl 6-90 record_stock based structure level 1 dcl 10-26 record_stockp automatic pointer dcl 10-4 sect_per_cyl internal static fixed bin(17,0) initial array dcl 7-15 sect_per_rec internal static fixed bin(17,0) initial array dcl 7-21 sect_per_sv internal static fixed bin(24,0) initial array dcl 7-18 sect_per_track internal static fixed bin(17,0) initial array dcl 7-33 sect_per_vtoc internal static fixed bin(17,0) initial array dcl 7-26 shared_spindle internal static bit(1) initial array packed unaligned dcl 6-78 string_parm based structure level 1 dcl 4-25 tracks_per_cyl internal static fixed bin(17,0) initial array dcl 6-111 valid_sv_string internal static char(3) initial packed unaligned dcl 6-96 vtoc_per_rec internal static fixed bin(17,0) initial array dcl 7-29 vtoce_stock based structure level 1 dcl 10-57 vtoce_stockp automatic pointer dcl 10-5 words_per_sect internal static fixed bin(17,0) initial array dcl 7-36 NAMES DECLARED BY EXPLICIT CONTEXT. DRIVE_LOOP 001072 constant label dcl 233 GROUP_LOOP 000673 constant label dcl 205 IS_FIPS_DEVICE 001477 constant entry internal dcl 314 ref 195 NEXT_DISK_CARD 000401 constant label dcl 132 ref 137 153 NEXT_DRIVE_GROUP 001372 constant label dcl 288 ref 220 SUBSYS_LOOP 000643 constant label dcl 192 init_pvt 000261 constant entry external dcl 28 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 1720 1752 1572 1730 Length 2366 1572 32 377 126 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME init_pvt 250 external procedure is an external procedure. IS_FIPS_DEVICE internal procedure shares stack frame of external procedure init_pvt. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME init_pvt 000100 char4 init_pvt 000101 dcp init_pvt 000141 device_type init_pvt 000142 drive_idx init_pvt 000143 driveno init_pvt 000144 group_idx init_pvt 000145 max_driveno init_pvt 000146 nd init_pvt 000150 pri_pvtep init_pvt 000152 pri_tx init_pvt 000153 ss_drive_count init_pvt 000154 subsys init_pvt 000214 subsys_idx init_pvt 000215 sv_cur init_pvt 000216 swap init_pvt 000217 tx init_pvt 000220 prph_dsk_cardp init_pvt 000222 parm_ptr init_pvt 000224 seek_command init_pvt 000226 pvtp init_pvt 000230 pvt_arrayp init_pvt 000232 pvtep init_pvt 000234 stock_segp init_pvt 000254 i IS_FIPS_DEVICE 000255 j IS_FIPS_DEVICE THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. r_ge_a call_ext_out_desc call_ext_out return_mac ext_entry clock_mac THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. config_$find config_$find_parm page$init syserr THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. config_data_$disk_drive_model_names pvt$ sst$write_limit stock_seg$ sys_info$collection_1_phase LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 28 000260 6 84 000266 117 000355 118 000357 119 000361 120 000364 121 000366 122 000370 124 000372 125 000373 126 000375 130 000376 131 000377 132 000401 135 000412 137 000416 140 000423 141 000433 143 000467 145 000471 146 000472 151 000527 152 000533 153 000534 156 000535 162 000566 163 000570 164 000572 165 000573 166 000603 168 000607 169 000611 170 000613 171 000616 173 000617 174 000621 175 000623 177 000625 178 000627 183 000630 184 000633 185 000636 191 000642 192 000643 194 000653 195 000655 197 000662 198 000664 199 000666 201 000667 202 000670 204 000672 205 000673 208 000711 213 000747 216 001004 219 001010 220 001012 223 001013 225 001030 226 001032 228 001035 231 001067 233 001072 236 001105 238 001106 241 001145 242 001146 245 001205 246 001206 247 001213 248 001216 249 001221 250 001224 251 001226 252 001242 253 001244 254 001245 255 001255 256 001256 257 001261 258 001263 259 001265 260 001266 262 001271 263 001272 264 001277 265 001302 267 001313 268 001323 269 001324 270 001331 272 001335 274 001340 275 001344 277 001347 278 001351 280 001352 281 001354 282 001355 283 001357 287 001370 288 001372 290 001374 293 001376 295 001400 297 001404 300 001414 302 001426 307 001443 310 001476 314 001477 323 001501 324 001507 325 001513 326 001523 329 001546 331 001550 332 001552 ----------------------------------------------------------- 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