COMPILATION LISTING OF SEGMENT rcp_init Compiled by: Multics PL/I Compiler, Release 32f, of October 9, 1989 Compiled at: Bull HN, Phoenix AZ, System-M Compiled on: 11/11/89 1010.2 mst Sat Options: optimize map 1 /****^ *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Bull Inc., 1987 * 4* * * 5* * Copyright, (C) Honeywell Information Systems Inc., 1983 * 6* * * 7* * Copyright (c) 1972 by Massachusetts Institute of * 8* * Technology and Honeywell Information Systems, Inc. * 9* * * 10* *********************************************************** */ 11 12 13 14 /****^ HISTORY COMMENTS: 15* 1) change(85-09-09,Farley), approve(85-09-09,MCR6979), 16* audit(86-01-17,CLJones), install(86-03-21,MR12.0-1033): 17* Add IMU & MCA support 18* also add no_protect and opr_int_available. 19* 2) change(88-03-12,Beattie), approve(88-05-31,MCR7864), 20* audit(88-05-13,Brunelle), install(88-05-31,MR12.2-1046): 21* Changed BEEP to ANNOUNCE for error messages during tape handler survey. 22* END HISTORY COMMENTS */ 23 24 /* format: style4,delnl,insnl,ifthenstmt,indnoniterend */ 25 26 rcp_init: 27 procedure; 28 29 /* This is a system initialization procedure. It initializes the 30* * RCP data base, rcp_data. This procedure must be called sometime 31* * after ioi_init is called. 32* * 33* * Created on 09/11/74 by Bill Silver. 34* * Changed on 03/24/76 by Bill Silver for NSS I/O disks. 35* * Modified on 01/20/77 by Noel I. Morris for multiple tape controllers. 36* * Modified on 03/05/77 by Bernard S. Greenberg for static "AC/DC" disks. 37* * Modified on 09/19/77 by R.J.C. Kissel to increase default workspace sizes. 38* * Modified on 04/28/78 by Michael R. Jordan for preloaded volumes and reservation software. 39* * Modified on 01/29/79 by Michael R. Jordan for MSS0500 subsystem. 40* * Modified 1/80 by Michael R. Jordan for MSU0501 subsystem. 41* * Modified April, 1981, Chris Jones, for io_manager conversion, etc. 42* * Modified 7/81 by M.R. Jordan to change to console model numbers and add CSU6601 support. 43* * Modified 5/82 by E. N. Kittlitz to increase URC device max-timeout for EURC. 44* * Modified February 1982 by C. Hornig to move to ring 1. 45* * Modified 09/20/82 by Chris Jones to increase tape drive max timeout so data security erase can finish, and 46* * to increase default workspace size for tapes from 3 to 6 pages. 47* * Modified 830927 for multiple console cards... -E. A. Ranzenbach 48* * Modified 840415 to call IOI during automatic device deletion... C. L. Jones 49* * Modified 841024 to set state according to io_config_data... M. M. Pozzo 50* * Modifed 841213 to add IMU/MCA support.. Paul Farley 51* * Modifed 850213 to add no_protect and opr_int_available code.. Paul Farley 52**/ 53 54 /* AUTOMATIC DATA */ 55 56 dcl 1 drive_name, /* Used to generate tape and disk drive names. */ 57 2 dtype char (5), 58 2 number pic "99"; 59 60 dcl 1 prph_mca_card like prph_card; /* Fake out a prph card for the MCA used for IMUs */ 61 62 dcl last_ptrs (8) ptr; /* Ptr to last device entry for each device type. */ 63 64 dcl qualifiers (4) fixed bin; /* Device qualifiers. */ 65 66 dcl device_len fixed bin; /* Number of bits in a device entry. */ 67 dcl device_name char (8); /* Unique physical device name. */ 68 dcl dtypex fixed bin; /* Device type index. */ 69 dcl drive_num fixed bin; /* Tape and disk drive numbers. */ 70 dcl ecode fixed bin (35); /* Standard error_table_ code. */ 71 dcl (i, j) fixed bin; /* Work indexes. */ 72 dcl model fixed bin; /* Model field from prph card. */ 73 dcl modelx fixed bin; /* MODELX from fs_dev_types */ 74 dcl num_channels fixed bin; /* Number of channels for each device. */ 75 dcl num_drives fixed bin; /* Number of disk devices for RCP to control. */ 76 dcl num_qualifiers fixed bin; /* Number of device qualifiers. */ 77 dcl pairx fixed bin; /* PRPH DSKx card pair index. */ 78 dcl prph_name char (3); /* Prph card device type name. */ 79 dcl pvtx fixed bin; 80 dcl rcs_size fixed bin; /* Total size of RCS. */ 81 dcl reservable_flag bit (1); /* ON => device reservable to system processes. */ 82 dcl save_dtypex fixed bin; /* Temporary to save device type index. */ 83 dcl starting_time fixed bin (71); /* Time metering started. */ 84 dcl fips bit (1); /* used to see if we are FIPS or not */ 85 86 87 /* INTERNAL STATIC DATA */ 88 89 90 dcl special_dtypex fixed bin /* Device type index for special devices. */ 91 static options (constant) init (7); 92 93 dcl ws_maxs (8) fixed bin /* IOI workspace limits in pages. */ 94 static options (constant) init (6, 2, 1, 1, 1, 1, 1, 1); 95 96 dcl ws_pmaxs (8) fixed bin /* Privileged IOI workspace limits. */ 97 static options (constant) init (44, 44, 44, 44, 44, 44, 44, 44); 98 99 dcl to_maxs (8) fixed bin /* IOI time-out limits in seconds. */ 100 static options (constant) init (420, 1, 180, 60, 60, 60, 240, 240); 101 102 dcl histo_times (8, 3) fixed bin /* Time intervals in minutes. */ 103 static options (constant) init (2, 5, 30, /* TAPE */ 104 2, 5, 30, /* DISK */ 105 2, 5, 30, /* CONSOLE */ 106 5, 30, 120, /* PRINTER */ 107 5, 20, 60, /* PUNCH */ 108 5, 20, 60, /* READER */ 109 2, 5, 30, /* SPECIAL */ 110 2, 5, 30); /* MCA */ 111 112 dcl prph_names (8) char (3) /* Device type names on prph cards. */ 113 static options (constant) init ("tap", "dsk", "opc", "prt", "pun", "rdr", "spc", "mca"); 114 115 dcl sys_directory char (32) /* Directory used to define a system process. */ 116 static options (constant) init (">system_library_1"); 117 118 dcl sys_acs char (32) /* Entry name used to define a system process. */ 119 static options (constant) init ("rcp_sys_"); 120 121 dcl acs_directory char (32) /* Directory containing device ACSs. */ 122 static options (constant) init (">system_control_1>rcp"); 123 124 dcl rb (3) fixed bin (6) /* Ring brackets for rcp_data */ 125 static options (constant) init (1, 1, 1); 126 127 128 /* EXTERNAL ENTRIES CALLED */ 129 130 dcl (addr, divide, hbound, null, ptr, rel, rtrim, size, string, substr, fixed, clock) builtin; 131 132 dcl sys_info$max_seg_size fixed bin (35) external; 133 134 dcl admin_gate_$ioi_delete_device entry (char (*), fixed bin (35)); 135 dcl config_$find entry (char (4) aligned, ptr); 136 dcl config_$find_2 entry (char (4) aligned, char (4) aligned, ptr); 137 dcl get_max_authorization_ entry () returns (bit (72) aligned); 138 dcl hcs_$append_branchx 139 entry (char (*), char (*), fixed bin (5), (3) fixed bin (6), char (*), fixed bin, fixed bin, fixed bin, 140 fixed bin (35)); 141 dcl hcs_$initiate entry (char (*), char (*), char (*), fixed bin (1), fixed bin (2), ptr, fixed bin (35)); 142 dcl hcs_$terminate_noname entry (ptr, fixed bin (35)); 143 dcl hphcs_$syserr entry options (variable); 144 dcl hphcs_$syserr_error_code entry options (variable); 145 dcl initializer_gate_$ss_io_reconfigure entry (fixed bin, bit (1) aligned, fixed bin (35)); 146 dcl rcp_tape_survey_ entry (char (*), fixed bin, bit (1) aligned, bit (1) aligned, (4) fixed bin (35), fixed bin (35)); 147 dcl resource_info_$limits entry (char (*), fixed bin, fixed bin, fixed bin, fixed bin (35)); 148 dcl system_privilege_$reclassify_sys_seg entry (char (*), char (*), bit (72) aligned, fixed bin (35)); 149 dcl mca_init_ entry (fixed bin (3), fixed bin (35)); 150 151 /* BASED DATA */ 152 153 dcl based_device bit (device_len) based (device_ptr) aligned; 154 155 156 157 /* Begin rcp_init. 158**/ 159 pvtp = addr (pvt$); 160 pvt_arrayp = addr (pvt.array); 161 162 /* Get pointer to io_config_data device table */ 163 io_config_data_ptr = addr (io_config_data$); 164 io_config_device_table_ptr = ptr (io_config_data_ptr, device_table_offset); 165 166 call hcs_$append_branchx (sys_directory, "rcp_data", RW_ACCESS_BIN, rb, "*.*.*", 0, 0, 0, ecode); 167 if ecode ^= 0 then goto MAKE_RCPD; 168 call hcs_$initiate (sys_directory, "rcp_data", "", 0, 1, rcpd_ptr, ecode); 169 if rcpd_ptr = null () then go to MAKE_RCPD; 170 call system_privilege_$reclassify_sys_seg (sys_directory, "rcp_data", get_max_authorization_ (), ecode); 171 if ecode ^= 0 then goto RECLASSIFY_RCPD; 172 173 starting_time = clock (); /* Same starting time for both segments. */ 174 175 /* Initialize the header info in RCPD. 176**/ 177 lock_info_ptr = addr (rcpd.lock_info); /* Initialize lock metering data. */ 178 call INIT_LOCK_INFO; 179 180 rcpd.tot_dtypes = hbound (device_types, 1); 181 rcpd.unload_sleep_time = 1000000; /* Sleep for at most 1 sec. */ 182 183 do dtypex = 1 to hbound (device_types, 1); /* Set up data for each device type. */ 184 dtype_ptr = addr (rcpd.dtype (dtypex)); /* Get pointer to device type entry. */ 185 dtype.device_type = device_types (dtypex); /* Set up device type. */ 186 do i = 1 to 3; /* Set up device type histogram data in seconds. */ 187 dtype.histo_times (i) = histo_times (dtypex, i) * 60; 188 end; 189 last_ptrs (dtypex) = null (); 190 end; 191 192 /* Look at each prph card in the configuration deck. 193**/ 194 prph_cardp = null (); /* Start with first prph card. */ 195 do while ("1"b); 196 call config_$find (PRPH_CARD_WORD, prph_cardp); 197 /* Get next prph card. */ 198 if prph_cardp = null () /* Have we processed all prph cards? */ 199 then goto END_OF_CARDS; /* Yes. */ 200 call PROCESS_PRPH_CARD; /* Process this one prph card. */ 201 end; 202 203 END_OF_CARDS: /* All prph cards processed OK. */ 204 /* Look at each iom card in the configuration deck, for IMUs. 205* Fake a prph card for mca incase we find an IMU */ 206 prph_mca_card.word = PRPH_CARD_WORD; 207 prph_mca_card.chan = 3; 208 prph_mca_card.model = 0; 209 prph_cardp = addr (prph_mca_card); 210 iom_cardp = null (); 211 212 call config_$find (IOM_CARD_WORD, iom_cardp); /* Start with first iom card. */ 213 do while (iom_cardp ^= null ()); 214 if iom_card.model = "imu" | iom_card.model = "iioc" then do; 215 /* Found an IMU so set up the data segment and process the fake prph card */ 216 call mca_init_ (iom_card.tag, ecode); 217 if ecode ^= 0 then goto INIT_MCA_ERROR; 218 prph_mca_card.iom = iom_card.tag; 219 prph_mca_card.name = "mca" || substr ("abcd", iom_card.tag, 1); 220 call PROCESS_PRPH_CARD; 221 end; 222 call config_$find (IOM_CARD_WORD, iom_cardp);/* Get next iom card. */ 223 end; 224 225 do dtypex = 1 to hbound (device_types, 1); /* Set max concurrent limits. */ 226 dtype_ptr = addr (rcpd.dtype (dtypex)); /* Get pointer to device type entry. */ 227 if dtype.max_concurrent = 0 /* Unspecified => limit = num of devices of this type. */ 228 then dtype.max_concurrent = dtype.num_devices; 229 end; 230 231 /* Now that we know the number of devices that use volumes we can 232* * initialize the array of volume entries. 233**/ 234 do i = 1 to rcpd.last_volume; /* Initialize each volume entry. */ 235 volume_ptr = addr (rcpd.volume (i)); 236 volume.volume_name = " "; 237 volume.group_id = ""; 238 volume.reserved_by = ""; 239 volume.state_time = starting_time; 240 end; 241 242 rcpd.tot_volumes = 243 divide ((sys_info$max_seg_size - fixed (rel (addr (rcpd.volume (1))), 18)), size (volume), 18, 0); 244 245 /* Now initialize the RCP communications segment, rcp_com_seg. 246* * We must set up the list of free request entries. 247**/ 248 call hcs_$append_branchx (sys_directory, "rcp_com_seg", RW_ACCESS_BIN, rb, "*.*.*", 0, 0, 0, ecode); 249 if ecode ^= 0 then goto MAKE_RCS; 250 call hcs_$initiate (sys_directory, "rcp_com_seg", "", 0, 1, rcs_ptr, ecode); 251 if rcs_ptr = null () then goto MAKE_RCS; 252 call system_privilege_$reclassify_sys_seg (sys_directory, "rcp_com_seg", get_max_authorization_ (), ecode); 253 if ecode ^= 0 then goto RECLASSIFY_RCS; 254 255 lock_info_ptr = addr (rcs.lock_info); /* Initialize lock metering data. */ 256 call INIT_LOCK_INFO; 257 258 do i = 1 to hbound (device_types, 1); /* Save IOI device type limits in RCS. */ 259 rcs.ws_maxs (i) = ws_maxs (i) * 1024; 260 rcs.ws_pmaxs (i) = ws_pmaxs (i) * 1024; 261 rcs.to_maxs (i) = to_maxs (i) * 1000000; 262 end; 263 264 rcs.sys_directory = sys_directory; /* Fill in access control directory and entry names. */ 265 rcs.sys_acs = sys_acs; 266 rcs.acs_directory = acs_directory; 267 268 rcs_size = sys_info$max_seg_size; 269 rcs.max_entries = divide ((rcs_size - size (rcs)), size (rcse), 17, 0); 270 rcs.num_entries = rcpd.tot_devices * 2; /* Start with 2 entries per device. */ 271 272 rcs.first_free_off = rel (addr (rcs.entry (1))); 273 do i = 1 to rcs.num_entries; /* Initialize each entry to be free. */ 274 rcse_ptr = addr (rcs.entry (i)); /* Get pointer to entry. */ 275 rcse.state_time = clock (); /* Time entry initialized. */ 276 rcse.free_off = rel (addr (rcs.entry (i + 1))); 277 end; 278 addr (rcs.entry (rcs.num_entries)) -> rcse.free_off = "0"b; 279 280 call hcs_$terminate_noname (rcpd_ptr, ecode); 281 call hcs_$terminate_noname (rcs_ptr, ecode); 282 283 return; /* All device types initialized OK. */ 284 285 MAKE_RCPD: 286 call hphcs_$syserr_error_code (CRASH, ecode, "rcp_init: Trying to create rcp_data"); 287 288 RECLASSIFY_RCPD: 289 call hphcs_$syserr_error_code (CRASH, ecode, "rcp_init: Trying to reclassify rcp_data"); 290 291 MAKE_RCS: 292 call hphcs_$syserr_error_code (CRASH, ecode, "rcp_init: Trying to create rcp_com_seg"); 293 294 RECLASSIFY_RCS: 295 call hphcs_$syserr_error_code (CRASH, ecode, "rcp_init: Trying to reclassify rcp_com_seg"); 296 297 INIT_MCA_ERROR: 298 call hphcs_$syserr_error_code (CRASH, ecode, "rcp_init: Trying to init mca_data."); 299 300 PROCESS_PRPH_CARD: 301 procedure; 302 303 /* We will take the name from the prph card and see if it matches one of 304* * the device types we know. If it does we will go to a routine that 305* * knows how to process that device type. If it does not belong to a type 306* * of device that we know then we will ignore it. 307**/ 308 prph_name = substr (prph_card.name, 1, 3); /* Get device type name. */ 309 do dtypex = 1 to hbound (device_types, 1); /* Check all device type names. */ 310 if prph_name = prph_names (dtypex) /* Do we know this device type? */ 311 then goto PRPH_CARD_OK; 312 end; 313 dtypex = special_dtypex; /* Treat unknown as special device. */ 314 315 PRPH_CARD_OK: /* This is a device type that we know about. */ 316 dtype_ptr = addr (rcpd.dtype (dtypex)); /* Pointer to device type info. */ 317 device_name = prph_card.name; /* Device type is prph card name. */ 318 reservable_flag = "0"b; /* Assume device is not reservable. */ 319 model = prph_card.model; /* Set up default qualifiers. */ 320 num_channels = 1; /* Assume only one channel. */ 321 num_qualifiers = dtype_num_qualifiers (dtypex); 322 fips = IS_FIPS_DEVICE (); 323 goto DTYPE (dtypex); /* Process prph card depending upon device type. */ 324 325 DTYPE (1): /* TAPE */ 326 call INIT_TAPES; /* Special case tapes. */ 327 return; 328 329 DTYPE (2): /* DISK */ 330 call INIT_DISKS; /* Special case disks. */ 331 return; 332 333 DTYPE (3): /* CONSOLE */ 334 prph_opc_cardp = prph_cardp; 335 device_name = prph_opc_card.name; 336 model = prph_opc_card.model; 337 call INIT_DEVICE (); 338 return; 339 340 DTYPE (4): /* PRINTER */ 341 prph_prt_cardp = prph_cardp; 342 qualifiers (1) = prph_prt_card.train; /* Print train type. */ 343 qualifiers (2) = prph_prt_card.line_length; 344 call INIT_DEVICE; /* Set up device entry. */ 345 return; 346 347 DTYPE (5): /* PUNCH */ 348 DTYPE (6): /* READER */ 349 DTYPE (7): /* SPECIAL */ 350 DTYPE (8): /* MCA */ 351 call INIT_DEVICE; /* These device types processed the same way. */ 352 return; /* Just set up the device entry. */ 353 354 end PROCESS_PRPH_CARD; 355 356 INIT_TAPES: 357 procedure; 358 359 /* This procedure will process the "tapX" prph card. All tapX drives wlll 360* * be defined from this one card. In addition, the special type device 361* * "tapX_00" will be defined, unless its a FIPS, then tapX is the special. 362**/ 363 prph_tap_cardp = prph_cardp; 364 365 call resource_info_$limits ("tape_drive", dtype.max_concurrent, (0), (0), ecode); 366 if dtype.max_concurrent < 0 then dtype.max_concurrent = 0; 367 368 if fips 369 then device_name = substr (device_name, 1, 4); /* FIPS controllers don't have a "_00" */ 370 else device_name = substr (device_name, 1, 4) || "_00"; 371 /* but non-FIPS do */ 372 call INIT_SPECIAL; /* Set up special tape pseudo device. */ 373 374 drive_name.dtype = substr (device_name, 1, 4) || "_"; 375 /* Now set up the real tape drives. */ 376 if fips 377 then drive_num = -1; /* FIPS devices start at zero */ 378 else drive_num = 0; 379 do pairx = 1 to hbound (prph_tap_card.group, 1); 380 num_drives = prph_tap_card.group (pairx).ndrives; 381 model = prph_tap_card.group (pairx).model; 382 if model = -1 then return; 383 if num_drives = -1 then goto NO_NDRIVES; 384 385 do j = 1 to num_drives; 386 drive_num = drive_num + 1; 387 if model ^= 0 then do; 388 call INIT_TAPE; 389 rcpd.last_volume = rcpd.last_volume + 1; 390 end; 391 end; 392 end; 393 394 return; 395 396 NO_NDRIVES: 397 call hphcs_$syserr (ANNOUNCE, 398 "rcp_init: ndrives not specified with last model number for PRPH ^a. Assuming 0.", prph_tap_card.name); 399 400 end INIT_TAPES; 401 402 INIT_TAPE: 403 procedure; 404 405 dcl tape_found bit (1) aligned; 406 407 /* This procedure is called to initialize one tape drive 408**/ 409 410 drive_name.number = drive_num; /* Use picture conversion. */ 411 device_name = string (drive_name); 412 413 reservable_flag = "1"b; 414 call INIT_DEVICE; 415 call rcp_tape_survey_ (substr (device_name, 1, 4), drive_num, (fips), tape_found, device.qualifiers, ecode); 416 if ecode ^= 0 then call hphcs_$syserr_error_code (ANNOUNCE, ecode, "rcp_init: Error surveying ^a.", device_name); 417 if ((^tape_found) | (DEVICE_DELETED (device_name))) then do; 418 call hphcs_$syserr (ANNOUNCE, "rcp_init: ^a deleted.", device_name); 419 call admin_gate_$ioi_delete_device (device_name, (0)); 420 device.state = 2; /* DELETED */ 421 end; 422 return; 423 424 end INIT_TAPE; 425 426 INIT_DISKS: 427 procedure; 428 429 /* This procedure will create rcp_data entries for all controllers 430* * and drives in the system, usurp from the storage system all those 431* * specified on an applicable UDSK card, and delete all the others, 432* * pendant dynamic RCP/SS reconfiguration. */ 433 434 dcl i fixed bin; 435 436 prph_dsk_cardp = prph_cardp; 437 438 udsk_cardp = null (); 439 call config_$find_2 ("udsk", prph_dsk_card.name, udsk_cardp); 440 441 drive_name.dtype = prph_dsk_card.name || "_"; /* Set up disk device name. */ 442 drive_name.number = 0; /* "dskX_00" */ 443 if fips 444 then device_name = prph_dsk_card.name; 445 else device_name = string (drive_name); 446 model = 0; /* Model number not used for special devices. */ 447 call INIT_SPECIAL; /* Init "dskX_00" or dskX as a special device. */ 448 /* unless its FIPS, then dskX is special */ 449 450 if fips 451 then drive_num = -1; 452 else drive_num = 0; 453 454 do pairx = 1 to hbound (prph_dsk_card.group, 1); /* Process each set up drive pairs. */ 455 num_drives = prph_dsk_card.group (pairx).ndrives; 456 model = prph_dsk_card.group (pairx).model; 457 if model = -1 /* (-1) => no drive pair specified. */ 458 then return; /* All done for this subsystem. */ 459 if num_drives = -1 /* (-1) => no ndrives specified. */ 460 then goto NO_NDRIVES; 461 462 modelx = 0; 463 do i = 2 to hbound (MODEL, 1) while (modelx = 0); 464 /* skip bulk */ 465 if model = MODEL (i) then do; 466 modelx = MODELX (i); 467 model = MODELN (modelx); 468 end; 469 end; 470 471 if model ^= 0 then do; 472 do j = 1 to num_drives; 473 drive_num = drive_num + 1; 474 drive_name.number = drive_num; 475 device_name = string (drive_name); 476 call INIT_DEVICE; 477 device.flags.not_removable_media = ^media_removable (modelx); 478 if fips then device.flags.no_protect = "1"b; 479 device.flags.opr_int_available = MPC_WITH_OI (prph_dsk_card.iom, prph_dsk_card.chan); 480 if (DEVICE_DELETED (device_name)) 481 then device.state = 2; 482 else device.state = 3; /* STORAGE SYSTEM */ 483 if udsk_cardp ^= null () then call process_udsk; 484 end; 485 486 rcpd.last_volume = rcpd.last_volume + num_drives; 487 end; 488 else drive_num = drive_num + num_drives; 489 end; 490 491 return; 492 493 NO_NDRIVES: 494 call hphcs_$syserr (ANNOUNCE, 495 "rcp_init: ndrives not specified with last model number for PRPH ^a. Assuming 0.", prph_dsk_card.name); 496 return; 497 498 process_udsk: 499 procedure; 500 501 dcl ux fixed bin; 502 503 do ux = 1 to hbound (udsk_card.group, 1); 504 if (udsk_card.group (ux).drive ^= -1) & (udsk_card.group (ux).drive <= drive_num) 505 & ((udsk_card.group (ux).drive + udsk_card.group (ux).ndrives - 1) >= drive_num) then do; 506 do pvtx = 1 to pvt.max_n_entries; 507 pvtep = addr (pvt_array (pvtx)); 508 if (pvte.devname = prph_dsk_card.name) & (pvte.logical_area_number = drive_num) then do; 509 if pvte.used | pvte.permanent then do; 510 call hphcs_$syserr (CRASH, "rcp_init: ^a cannot be used for user I/O.", 511 device_name); 512 return; 513 end; 514 call initializer_gate_$ss_io_reconfigure (pvtx, "0"b, ecode); 515 if (DEVICE_DELETED (device_name)) 516 then device.state = 2; 517 else device.state = 0; /* FREE */ 518 return; 519 end; 520 end; 521 end; 522 end; 523 return; 524 end process_udsk; 525 526 end INIT_DISKS; 527 528 INIT_SPECIAL: 529 procedure; 530 531 /* This procedure is called to set up a special type device for 532* * the tape or disk controller. 533**/ 534 535 save_dtypex = dtypex; /* Save real device type index. */ 536 dtypex = special_dtypex; /* Get device type index for special devices. */ 537 dtype_ptr = addr (rcpd.dtype (dtypex)); /* Pointer to special device info. */ 538 num_qualifiers = 0; /* No characteristics known about special devices. */ 539 540 call INIT_DEVICE; /* Define a device. */ 541 542 dtypex = save_dtypex; /* Restore original information. */ 543 dtype_ptr = addr (rcpd.dtype (dtypex)); /* Reset device type pointer */ 544 num_qualifiers = dtype_num_qualifiers (dtypex); 545 546 end INIT_SPECIAL; 547 548 INIT_DEVICE: 549 procedure; 550 551 /* This procedure is called to initialize a device entry. 552* * It is called for each type of device. Those fields that are 553* * only valid when the device is assigned or attached are not 554* * initialized. 555**/ 556 557 do i = 1 to rcpd.tot_devices; /* Test all devices defined so far. */ 558 device_ptr = addr (rcpd.device (i)); 559 if device.device_name = device_name then goto DUPLICATE_DEVICE; 560 end; 561 562 rcpd.tot_devices = rcpd.tot_devices + 1; /* One new device added to list. */ 563 device_ptr = addr (rcpd.device (rcpd.tot_devices)); 564 565 if dtype.num_devices = 0 /* Is this the first device of this type? */ 566 then dtype.first_off = rel (device_ptr); 567 else last_ptrs (dtypex) -> device.next_off = rel (device_ptr); 568 569 last_ptrs (dtypex) = device_ptr; /* Save pointer to this entry. */ 570 dtype.num_devices = dtype.num_devices + 1; 571 572 device_len = size (device) * 36; /* Get number of bits in device entry. */ 573 based_device = "0"b; /* Zero device entry before initializing. */ 574 575 device.device_name = device_name; /* Fill in entry. */ 576 device.volume_name = " "; /* No volume now mounted. */ 577 device.dtypex = dtypex; 578 device.model = model; /* Save qualifying characteristics. */ 579 device.num_qualifiers = num_qualifiers; 580 do i = 1 to num_qualifiers; 581 device.qualifiers (i) = qualifiers (i); 582 end; 583 device.state_time = clock (); /* Time device initialized. */ 584 if (DEVICE_DELETED (device_name)) then device.state = 2; 585 device.iom_num = prph_card.iom; 586 device.chan_num = prph_card.chan; 587 device.num_channels = num_channels; 588 device.flags.reservable = reservable_flag; 589 device.flags.fips = fips; 590 device.group_id = " "; /* So no name. */ 591 device.reservation_id = 0; /* No reservation. */ 592 device.reserved_by = ""; /* Dito. */ 593 594 device.acs_name = rtrim (device_name) || ".acs"; /* Generate ACS name */ 595 596 return; 597 598 DUPLICATE_DEVICE: 599 call hphcs_$syserr (CRASH, "rcp_init: Device ^a defined more than once", device_name); 600 601 end INIT_DEVICE; 602 603 INIT_LOCK_INFO: 604 procedure; 605 606 /* This procedure is called to initialize the lock metering data. 607**/ 608 lock_info.lock = "0"b; /* Lock unlocked. */ 609 610 lock_info.num_locks, /* Never has been locked. */ 611 lock_info.num_lock_waits = 0; 612 613 lock_info.tot_lock_time, lock_info.tot_wait_time = 0; 614 615 lock_info.starting_time = starting_time; 616 617 end INIT_LOCK_INFO; 618 619 DEVICE_DELETED: 620 procedure (a_name) returns (bit (1)); 621 622 /* local vars */ 623 dcl a_name char (*); 624 dcl (found, deleted) bit (1) init ("0"b); 625 dcl i fixed bin; 626 627 do i = 1 to device_table.n_devices while (^found); 628 if device_entry (i).name = a_name then found = "1"b; 629 end; 630 631 if ^device_entry (i - 1).flags.configured then deleted = "1"b; 632 633 return (deleted); 634 end DEVICE_DELETED; 635 636 IS_FIPS_DEVICE: 637 proc () returns (bit (1)); 638 639 /* This proc will look up the model in config_data_ for the 640* dtypex checking for device_0_valid */ 641 642 dcl i fixed bin; 643 dcl groupx fixed bin; 644 645 goto is_fips (dtypex); 646 647 is_fips (1): /* TAPE */ 648 prph_tap_cardp = prph_cardp; 649 do groupx = 1 to hbound (prph_tap_card.group, 1); 650 model = prph_tap_card.group (groupx).model; 651 if model ^= 0 then do; 652 do i = 1 to config_data_$tape_drive_model_names.count; 653 if config_data_$tape_drive_model_names.names (i).model = model 654 then return (config_data_$tape_drive_model_names.names (i).device_0_valid); 655 end; 656 return ("0"b); 657 end; 658 end; 659 return ("0"b); 660 661 is_fips (2): /* DISK */ 662 prph_dsk_cardp = prph_cardp; 663 do groupx = 1 to hbound (prph_dsk_card.group, 1); 664 model = prph_dsk_card.group (groupx).model; 665 if model ^= 0 then do; 666 do i = 1 to config_data_$disk_drive_model_names.count; 667 if config_data_$disk_drive_model_names.names (i).model = model 668 then return (config_data_$disk_drive_model_names.names (i).device_0_valid); 669 end; 670 return ("0"b); 671 end; 672 end; 673 return ("0"b); 674 675 is_fips (3): 676 is_fips (4): 677 is_fips (5): 678 is_fips (6): 679 is_fips (7): 680 is_fips (8): 681 return ("0"b); 682 end IS_FIPS_DEVICE; 683 684 MPC_WITH_OI: 685 proc (a_iom, a_chan) returns (bit (1)); 686 687 /* If there is a mpc card for this device and it is not a DAU (MSP800) 688* then we say it has an "Operator Interrupt" switch. 689**/ 690 691 dcl a_iom fixed bin (3) parameter; 692 dcl a_chan fixed bin (8) parameter; 693 dcl i fixed bin; 694 695 mpc_cardp = null (); 696 do while ("1"b); 697 call config_$find (MPC_CARD_WORD, mpc_cardp); 698 if mpc_cardp = null () then return ("0"b); 699 do i = 1 to hbound (mpc_card.port, 1) while (mpc_card.port (i).iom ^= -1); 700 if (a_iom = mpc_card.port (i).iom) & (a_chan >= mpc_card.port (i).chan) 701 & (a_chan < mpc_card.port (i).chan + mpc_card.port (i).nchan) then do; 702 if mpc_card.model = 800 703 then return ("0"b); 704 else return ("1"b); 705 end; 706 end; 707 end; 708 return ("0"b); 709 end MPC_WITH_OI; 710 1 1 /* BEGIN INCLUDE FILE ... access_mode_values.incl.pl1 1 2* 1 3* Values for the "access mode" argument so often used in hardcore 1 4* James R. Davis 26 Jan 81 MCR 4844 1 5* Added constants for SM access 4/28/82 Jay Pattin 1 6* Added text strings 03/19/85 Chris Jones 1 7**/ 1 8 1 9 1 10 /* format: style4,delnl,insnl,indattr,ifthen,dclind10 */ 1 11 dcl ( 1 12 N_ACCESS init ("000"b), 1 13 R_ACCESS init ("100"b), 1 14 E_ACCESS init ("010"b), 1 15 W_ACCESS init ("001"b), 1 16 RE_ACCESS init ("110"b), 1 17 REW_ACCESS init ("111"b), 1 18 RW_ACCESS init ("101"b), 1 19 S_ACCESS init ("100"b), 1 20 M_ACCESS init ("010"b), 1 21 A_ACCESS init ("001"b), 1 22 SA_ACCESS init ("101"b), 1 23 SM_ACCESS init ("110"b), 1 24 SMA_ACCESS init ("111"b) 1 25 ) bit (3) internal static options (constant); 1 26 1 27 /* The following arrays are meant to be accessed by doing either 1) bin (bit_value) or 1 28* 2) divide (bin_value, 2) to come up with an index into the array. */ 1 29 1 30 dcl SEG_ACCESS_MODE_NAMES (0:7) init ("null", "W", "E", "EW", "R", "RW", "RE", "REW") char (4) internal 1 31 static options (constant); 1 32 1 33 dcl DIR_ACCESS_MODE_NAMES (0:7) init ("null", "A", "M", "MA", "S", "SA", "SM", "SMA") char (4) internal 1 34 static options (constant); 1 35 1 36 dcl ( 1 37 N_ACCESS_BIN init (00000b), 1 38 R_ACCESS_BIN init (01000b), 1 39 E_ACCESS_BIN init (00100b), 1 40 W_ACCESS_BIN init (00010b), 1 41 RW_ACCESS_BIN init (01010b), 1 42 RE_ACCESS_BIN init (01100b), 1 43 REW_ACCESS_BIN init (01110b), 1 44 S_ACCESS_BIN init (01000b), 1 45 M_ACCESS_BIN init (00010b), 1 46 A_ACCESS_BIN init (00001b), 1 47 SA_ACCESS_BIN init (01001b), 1 48 SM_ACCESS_BIN init (01010b), 1 49 SMA_ACCESS_BIN init (01011b) 1 50 ) fixed bin (5) internal static options (constant); 1 51 1 52 /* END INCLUDE FILE ... access_mode_values.incl.pl1 */ 711 2 1 /* START OF: io_config.incl.pl1 * * * * * * * * * * * * * * * * */ 2 2 2 3 /* Structures for overlaying the io_config data segment. */ 2 4 /* Written February 1984 by Chris Jones as part of IOM reconfiguration project. */ 2 5 2 6 /* format: style4,delnl,insnl,indattr,ifthen,dclind10 */ 2 7 2 8 dcl io_config_data$ external; 2 9 2 10 dcl io_config_data_ptr ptr; 2 11 dcl io_config_device_table_ptr 2 12 ptr; 2 13 dcl io_config_channel_table_ptr 2 14 ptr; 2 15 dcl io_config_controller_table_ptr 2 16 ptr; 2 17 dcl io_config_iom_table_ptr 2 18 ptr; 2 19 2 20 dcl tables_length fixed bin (19); 2 21 2 22 dcl 1 io_config_data aligned based (io_config_data_ptr), 2 23 2 version char (8), 2 24 2 tables_length fixed bin (19) unsigned, 2 25 2 device_table_offset 2 26 fixed bin (18) uns unal, 2 27 2 channel_table_offset 2 28 fixed bin (18) uns unal, 2 29 2 controller_table_offset 2 30 fixed bin (18) uns unal, 2 31 2 iom_table_offset fixed bin (18) uns unal, 2 32 2 p_clock fixed bin (35), 2 33 2 pad (2) bit (36), /* pad to 0 mod 8 boundary */ 2 34 2 tables (0 refer (io_config_data.tables_length)) bit (36); 2 35 2 36 dcl 1 device_table aligned based (io_config_device_table_ptr), 2 37 2 version char (8), 2 38 2 n_devices fixed bin, 2 39 2 pad bit (36), /* pad to even word boundary */ 2 40 2 device_entry (0 refer (device_table.n_devices)) like device_entry_template; 2 41 2 42 dcl 1 device_entry_template 2 43 aligned based, 2 44 2 name char (32) unaligned, 2 45 2 comment char (32) unaligned, 2 46 2 flags, 2 47 ( 3 configured, /* set => not deleted */ 2 48 3 assigned /* set => in use (by a user or ring 0) */ 2 49 ) bit (1) unaligned, 2 50 2 pad bit (36), /* pad to even word boundary */ 2 51 2 pchan_idx (8) fixed bin; /* indexes into channel_table */ 2 52 2 53 dcl 1 channel_table aligned based (io_config_channel_table_ptr), 2 54 2 version char (8), 2 55 2 n_channels fixed bin, 2 56 2 pad bit (36), /* pad to even word boundary */ 2 57 2 channel_entry (0 refer (channel_table.n_channels)) aligned like channel_entry_template; 2 58 2 59 dcl 1 channel_entry_template 2 60 aligned based, 2 61 2 name char (8), /* e.g. "A31" */ 2 62 2 comment char (32) unaligned, 2 63 2 flags, 2 64 ( 3 configured, /* set => available for assignment */ 2 65 3 assigned /* set => currently assigned */ 2 66 ) bit (1) unaligned, 2 67 2 controller_idx fixed bin, /* index into controller table (if on MPC) */ 2 68 2 iom_idx fixed bin, /* index into iom_table */ 2 69 2 base_channel_idx fixed bin; /* index into channel table */ 2 70 2 71 dcl 1 controller_table aligned based (io_config_controller_table_ptr), 2 72 2 version char (8) aligned, 2 73 2 n_controllers fixed bin, 2 74 2 pad bit (36), /* pad to even word boundary */ 2 75 2 controller_entry (0 refer (controller_table.n_controllers)) like controller_entry_template; 2 76 2 77 dcl 1 controller_entry_template 2 78 aligned based, 2 79 2 name char (8), /* e.g. "mspa" */ 2 80 2 comment char (32) unaligned, 2 81 2 flags, 2 82 ( 3 configured, /* set => not deleted */ 2 83 3 assigned /* set => one process has whole controller */ 2 84 ) bit (1) unaligned, 2 85 2 pad bit (36); /* pad to even word boundary */ 2 86 2 87 dcl 1 iom_table aligned based (io_config_iom_table_ptr), 2 88 2 version char (8), 2 89 2 n_ioms fixed bin, 2 90 2 pad bit (36), /* pad to even word boundary */ 2 91 2 iom_entry (0 refer (iom_table.n_ioms)) like iom_entry_template; 2 92 2 93 dcl 1 iom_entry_template aligned based, 2 94 2 name char (8), 2 95 2 comment char (32) unaligned, 2 96 2 flags, 2 97 ( 3 configured /* set => not deleted */ 2 98 ) bit (1) unaligned, 2 99 2 n_configured_channels 2 100 fixed bin; 2 101 2 102 dcl IO_CONFIG_DATA_VERSION_1 2 103 char (8) aligned static options (constant) init ("IOCD_01"); 2 104 dcl IO_CONFIG_DEVICE_TABLE_VERSION_1 2 105 char (8) aligned static options (constant) init ("DEVT_01"); 2 106 dcl IO_CONFIG_CHANNEL_TABLE_VERSION_1 2 107 char (8) aligned static options (constant) init ("CHANT_01"); 2 108 dcl IO_CONFIG_CONTROLLER_TABLE_VERSION_1 2 109 char (8) aligned static options (constant) init ("CTLRT_01"); 2 110 dcl IO_CONFIG_IOM_TABLE_VERSION_1 2 111 char (8) aligned static options (constant) init ("IOMT_01"); 2 112 2 113 /* END OF: io_config.incl.pl1 * * * * * * * * * * * * * * * * */ 712 3 1 /* BEGIN INCLUDE FILE ... config_deck.incl.pl1 ... 11/13/80, W. Olin Sibert */ 3 2 3 3 dcl (configp, cardp) pointer; 3 4 dcl config_n_cards fixed bin; /* Number of cards used in config */ 3 5 dcl config_max_cards fixed bin; /* Max number of cards in config */ 3 6 3 7 dcl config_deck$ fixed bin external static; 3 8 3 9 dcl 1 config_deck aligned based (configp), 3 10 2 cards (config_n_cards) aligned like config_card, 3 11 2 pad_cards (config_max_cards - config_n_cards) aligned like config_card; 3 12 3 13 dcl 1 config_card aligned based (cardp), 3 14 2 word char (4) aligned, 3 15 2 data_field (14) bit (36) aligned, 3 16 2 type_word aligned like config_card_type_word; 3 17 3 18 dcl 1 config_card_type_word aligned based, 3 19 2 field_type (14) bit (2) unaligned, 3 20 2 pad1 bit (4) unaligned, 3 21 2 n_fields fixed bin (4) unsigned unaligned; 3 22 3 23 dcl (CONFIG_DECIMAL_TYPE init ("11"b), 3 24 CONFIG_OCTAL_TYPE init ("00"b), 3 25 CONFIG_SINGLE_CHAR_TYPE init ("01"b), 3 26 CONFIG_STRING_TYPE init ("10"b)) bit (2) aligned static options (constant); 3 27 3 28 dcl ZERO_CARD_WORD char (4) aligned internal static options (constant) init (""); 3 29 dcl FREE_CARD_WORD char (4) aligned internal static options (constant) init ("ÿÿÿÿ"); 3 30 3 31 dcl VALID_CARD_WORD_CHARACTERS char (38) internal static options (constant) init 3 32 ("abcdefghijklmnopqrstuvwxyz0123456789_."); /* lowercase letters, digits, period and underscore */ 3 33 3 34 dcl EMPTY_FIELD bit (36) aligned internal static options (constant) init ("777777777777"b3); 3 35 3 36 /* END INCLUDE FILE config_deck.incl.pl1 */ 713 4 1 /* Begin include file config_data_dcls.incl.pl1 BIM 9/82 */ 4 2 4 3 /****^ HISTORY COMMENTS: 4 4* 1) change(85-09-09,Farley), approve(85-09-09,MCR6979), 4 5* audit(86-01-17,CLJones), install(86-03-21,MR12.0-1033): 4 6* Add changes made to 4 7* config_data_.cds. 4 8* 2) change(86-10-21,Fawcett), approve(86-10-21,PBF7381), 4 9* audit(86-10-23,Farley), install(86-10-28,MR12.0-1200): 4 10* Corrected the number of tape drive models supported. 4 11* END HISTORY COMMENTS */ 4 12 4 13 /* format: style3 */ 4 14 /* Modified 830523 to add console io_type and line_leng fields for different 4 15* operator's consoles and to fix a size bug... -E. A. Ranzenbach */ 4 16 /* Modified 841101 by Paul Farley to add changes made to config_data_.cds */ 4 17 4 18 /* WARNING WARNING */ 4 19 4 20 /* Due to the awful PL/I restriction that prohibits any expressions */ 4 21 /* in external variable extents, the arrays here have integers for */ 4 22 /* extents. Changes to config_data_.cds should be reflected here, */ 4 23 /* Because the declares in config_data_.cds use the "like" attribute. */ 4 24 /* Just in case, though, do NOT use hbound. Use the .count fields */ 4 25 /* in the structures instead. */ 4 26 4 27 declare config_data_$chnl_cardx 4 28 fixed binary external static; 4 29 declare config_data_$clok_cardx 4 30 fixed binary external static; 4 31 declare config_data_$cpu_cardx 4 32 fixed binary external static; 4 33 declare config_data_$fnp_cardx 4 34 fixed binary external static; 4 35 declare config_data_$intk_cardx 4 36 fixed binary external static; 4 37 declare config_data_$iom_cardx 4 38 fixed binary external static; 4 39 declare config_data_$mem_cardx 4 40 fixed binary external static; 4 41 declare config_data_$mpc_msp_cardx 4 42 fixed binary external static; 4 43 declare config_data_$mpc_mtp_cardx 4 44 fixed binary external static; 4 45 declare config_data_$ipc_fips_cardx 4 46 fixed binary external static; 4 47 declare config_data_$mpc_urp_cardx 4 48 fixed binary external static; 4 49 declare config_data_$mpc_cardx 4 50 fixed binary external static; 4 51 declare config_data_$mpcs_msp_cardx 4 52 fixed binary external static; 4 53 declare config_data_$mpcs_mtp_cardx 4 54 fixed binary external static; 4 55 declare config_data_$mpcs_urp_cardx 4 56 fixed binary external static; 4 57 declare config_data_$mpcs_cardx 4 58 fixed binary external static; 4 59 declare config_data_$parm_cardx 4 60 fixed binary external static; 4 61 declare config_data_$part_cardx 4 62 fixed binary external static; 4 63 declare config_data_$prph_dsk_cardx 4 64 fixed binary external static; 4 65 declare config_data_$prph_prt_cardx 4 66 fixed binary external static; 4 67 declare config_data_$prph_rdr_cardx 4 68 fixed binary external static; 4 69 declare config_data_$prph_pun_cardx 4 70 fixed binary external static; 4 71 declare config_data_$prph_ccu_cardx 4 72 fixed binary external static; 4 73 declare config_data_$prph_tap_cardx 4 74 fixed binary external static; 4 75 declare config_data_$prph_opc_cardx 4 76 fixed binary external static; 4 77 declare config_data_$prph_cardx 4 78 fixed binary external static; 4 79 declare config_data_$root_cardx 4 80 fixed binary external static; 4 81 declare config_data_$salv_cardx 4 82 fixed binary external static; 4 83 declare config_data_$schd_cardx 4 84 fixed binary external static; 4 85 declare config_data_$sst_cardx 4 86 fixed binary external static; 4 87 declare config_data_$stok_cardx 4 88 fixed binary external static; 4 89 declare config_data_$tbls_cardx 4 90 fixed binary external static; 4 91 declare config_data_$udsk_cardx 4 92 fixed binary external static; 4 93 4 94 declare 1 config_data_$config_cards 4 95 aligned external static, 4 96 2 count fixed binary, 4 97 2 per_card (32) aligned, 4 98 3 name char (4) aligned, 4 99 3 second_field char (4) aligned, 4 100 3 flags aligned, 4 101 4 match_second bit (1) unaligned, /* PRPH FOO */ 4 102 4 match_only_3 bit (1) unaligned; /* XXXn type */ 4 103 4 104 declare 1 config_data_$mpc_msp_model_names 4 105 aligned external static, 4 106 2 count fixed binary, 4 107 2 names (9) aligned, 4 108 3 model fixed binary, 4 109 3 name character (8), 4 110 3 fw_tag character (16), 4 111 3 valid_drives (16) fixed binary unaligned; 4 112 4 113 declare 1 config_data_$mpc_mtp_model_names 4 114 aligned external static, 4 115 2 count fixed binary, 4 116 2 names (7) aligned, 4 117 3 model fixed binary, 4 118 3 name character (8), 4 119 3 fw_tag character (16), 4 120 3 valid_drives (16) fixed binary unaligned; 4 121 4 122 declare 1 config_data_$mpc_urp_model_names 4 123 aligned external static, 4 124 2 count fixed binary, 4 125 2 names (6) aligned, 4 126 3 model fixed binary, 4 127 3 name character (8), 4 128 3 fw_tag character (16); /* "EURC" for EURC */ 4 129 4 130 declare 1 config_data_$ipc_msp_model_names 4 131 aligned external static, 4 132 2 count fixed binary, 4 133 2 names (1) aligned, 4 134 3 model fixed binary, 4 135 3 name character (8), 4 136 3 fw_tag character (16), 4 137 3 valid_drives (16) fixed binary unaligned; 4 138 4 139 declare 1 config_data_$ipc_mtp_model_names 4 140 aligned external static, 4 141 2 count fixed binary, 4 142 2 names (1) aligned, 4 143 3 model fixed binary, 4 144 3 name character (8), 4 145 3 fw_tag character (16), 4 146 3 valid_drives (16) fixed binary unaligned; 4 147 4 148 declare 1 config_data_$disk_drive_model_names 4 149 aligned external static, 4 150 2 count fixed binary, 4 151 2 names (5) aligned, 4 152 3 model fixed binary, 4 153 3 name character (8), 4 154 3 device_0_valid bit (1); 4 155 4 156 declare 1 config_data_$tape_drive_model_names 4 157 aligned external static, 4 158 2 count fixed binary, 4 159 2 names (9) aligned, 4 160 3 model fixed binary, 4 161 3 name character (8), 4 162 3 device_0_valid bit (1); 4 163 4 164 declare 1 config_data_$printer_model_names 4 165 aligned external static, 4 166 2 count fixed binary, 4 167 2 names (5) aligned, 4 168 3 model fixed binary, 4 169 3 name character (8); 4 170 4 171 declare 1 config_data_$reader_model_names 4 172 aligned external static, 4 173 2 count fixed binary, 4 174 2 names (4) aligned, 4 175 3 model fixed binary, 4 176 3 name character (8); 4 177 4 178 declare 1 config_data_$ccu_model_names 4 179 aligned external static, 4 180 2 count fixed binary, 4 181 2 names (1) aligned, 4 182 3 model fixed binary, 4 183 3 name character (8); 4 184 4 185 declare 1 config_data_$punch_model_names 4 186 aligned external static, 4 187 2 count fixed binary, 4 188 2 names (3) aligned, 4 189 3 model fixed binary, 4 190 3 name character (8); 4 191 4 192 declare 1 config_data_$console_model_names 4 193 aligned external static, 4 194 2 count fixed binary, 4 195 2 names (3) aligned, 4 196 3 model fixed binary, 4 197 3 name character (8), 4 198 3 line_leng fixed bin (17), 4 199 3 io_type character (4); 4 200 4 201 /* End include file config_data_dcls.incl.pl1 */ 714 5 1 /* BEGIN INCLUDE FILE ... config_iom_card.incl.pl1 ... 11/37/80 W. Olin Sibert */ 5 2 5 3 dcl iom_cardp pointer; /* pointer to IOM card */ 5 4 5 5 dcl 1 iom_card aligned based (iom_cardp), /* IOM card declaration */ 5 6 2 word char (4), /* "iom" */ 5 7 2 tag fixed bin (3), /* One more than IOM tag set in maintenance panel switches */ 5 8 2 port fixed bin (3), /* Controller port to which IOM is connected */ 5 9 2 model char (4), /* IOM model number: "iomb", "nsa", "iioc" */ 5 10 2 state char (4), /* State: "on" or "off" */ 5 11 5 12 2 pad (10) bit (36) aligned, /* Pad to 15 fields */ 5 13 5 14 2 type_word aligned, 5 15 3 field_type (14) bit (2) unaligned, /* type of each field; see config_deck.incl.pl1 */ 5 16 3 pad1 bit (4) unaligned, 5 17 3 n_fields fixed bin (4) unsigned unaligned; /* number of fields used on card */ 5 18 5 19 dcl IOM_CARD_WORD char (4) aligned internal static options (constant) init ("iom"); 5 20 5 21 /* END INCLUDE FILE ... config_iom_card.incl.pl1 */ 715 6 1 /* BEGIN INCLUDE FILE ... config_prph_card.incl.pl1 ... 11/27/80 W. Olin Sibert */ 6 2 6 3 dcl prph_cardp ptr; /* Pointer to a PRPH card. */ 6 4 6 5 dcl 1 prph_card based (prph_cardp) aligned, /* PRPH card declaration */ 6 6 2 word char (4), /* "prph" */ 6 7 2 name char (4), /* subsystem name */ 6 8 2 iom fixed bin (3), /* IOM number */ 6 9 2 chan fixed bin (8), /* channel number */ 6 10 2 model fixed bin, /* model number */ 6 11 2 state char (4), /* ON/OFF state */ 6 12 2 pad (9) bit (36) aligned, /* pad to 15 fields */ 6 13 6 14 2 type_word aligned, 6 15 3 field_type (14) bit (2) unaligned, /* type of each field; see config_deck.incl.pl1 */ 6 16 3 pad1 bit (4) unaligned, 6 17 3 n_fields fixed bin (4) unsigned unaligned; /* number of fields used on card */ 6 18 6 19 dcl PRPH_CARD_WORD char (4) aligned internal static options (constant) init ("prph"); 6 20 6 21 /* END INCLUDE FILE ... config_prph_card.incl.pl1 */ 716 7 1 /* BEGIN INCLUDE FILE ... config_mpc_card.incl.pl1 ... 11/27/80 W. Olin Sibert */ 7 2 7 3 dcl mpc_cardp ptr; /* Pointer to an MPC card. */ 7 4 7 5 dcl 1 mpc_card aligned based (mpc_cardp), 7 6 2 word char (4), /* "mpc" */ 7 7 2 name char (4), /* Name of this MPC - e.g., "mspa" */ 7 8 2 model fixed bin, /* Model of this MPC - e.g., 601. */ 7 9 2 port (4), /* Per port information. 12 fields total */ 7 10 3 iom fixed bin (3), /* IOM number */ 7 11 3 chan fixed bin (8), /* Channel number. */ 7 12 3 nchan fixed bin, /* Number of logical channels on this channel. */ 7 13 7 14 2 type_word aligned, 7 15 3 field_type (14) bit (2) unaligned, /* type of each field; see config_deck.incl.pl1 */ 7 16 3 pad1 bit (4) unaligned, 7 17 3 n_fields fixed bin (4) unsigned unaligned; /* number of fields used on card */ 7 18 7 19 dcl 1 mpc_card_array aligned based (mpc_cardp), /* Overlay for MPC port array */ 7 20 2 pad1 (3) bit (36) aligned, 7 21 2 port (divide (max (0, (mpc_card.n_fields - 2)), 3, 17, 0)), 7 22 3 iom fixed bin (3), /* IOM number */ 7 23 3 chan fixed bin (8), /* Channel number. */ 7 24 3 nchan fixed bin; /* Number of logical channels on this channel. */ 7 25 7 26 dcl MPC_CARD_WORD char (4) aligned internal static options (constant) init ("mpc"); 7 27 7 28 /* END INCLUDE FILE ... config_mpc_card.incl.pl1 */ 717 8 1 /* BEGIN INCLUDE FILE ... config_prph_opc_card.incl.pl1 ... 11/27/80, W. Olin Sibert */ 8 2 8 3 /* Modified 830613 to add state and line_leng fields to card... -E. A. Ranzenbach */ 8 4 /* Modified 841205 to add mask field... -E. A. Ranzenbach */ 8 5 8 6 dcl prph_opc_cardp ptr; /* pointer to PRPH OPC card */ 8 7 8 8 dcl 1 prph_opc_card based (prph_opc_cardp) aligned, /* PRPH OPC card declaration */ 8 9 2 word char (4), /* "prph" */ 8 10 2 name char (4), /* "opc" */ 8 11 2 iom fixed bin (3), /* IOM number */ 8 12 2 chan fixed bin (8), /* channel number */ 8 13 2 model fixed bin, /* console model number */ 8 14 2 line_leng fixed bin, /* line length of the console... */ 8 15 2 state char (4), /* "io", "on", "alt", "off" or "inop"... */ 8 16 2 mask char (4), /* "mask" means read_unechoed option is not installed... */ 8 17 2 pad (7) bit (36) aligned, /* pad to 15 fields */ 8 18 8 19 2 type_word aligned, 8 20 3 field_type (14) bit (2) unaligned, /* type of each field; see config_deck.incl.pl1 */ 8 21 3 pad1 bit (4) unaligned, 8 22 3 n_fields fixed bin (5) unsigned unaligned; /* number of fields used on card */ 8 23 8 24 /* END INCLUDE FILE ... config_prph_opc_card.incl.pl1 */ 718 9 1 /* BEGIN INCLUDE FILE ... config_prph_prt_card.incl.pl1 ... 11/11/80, W. Olin Sibert */ 9 2 9 3 dcl prph_prt_cardp ptr; /* pointer to PRPH PRTx card */ 9 4 9 5 dcl 1 prph_prt_card based (prph_prt_cardp) aligned, /* PRPH PRTx card declaration */ 9 6 2 word char (4), /* "prph" */ 9 7 2 name char (4), /* "prtX" */ 9 8 2 iom fixed bin (3), /* IOM number */ 9 9 2 chan fixed bin (8), /* channel number */ 9 10 2 model fixed bin, /* printer model number */ 9 11 9 12 2 train fixed bin, /* print train ID */ 9 13 2 line_length fixed bin, /* printer line length */ 9 14 9 15 2 pad (8) bit (36) aligned, /* pad to 15 fields */ 9 16 9 17 2 type_word aligned, 9 18 3 field_type (14) bit (2) unaligned, /* type of each field; see config_deck.incl.pl1 */ 9 19 3 pad1 bit (4) unaligned, 9 20 3 n_fields fixed bin (4) unsigned unaligned; /* number of fields used on card */ 9 21 9 22 /* END INCLUDE FILE ... config_prph_prt_card.incl.pl1 */ 719 10 1 /* BEGIN INCLUDE FILE ... config_prph_tap_card.incl.pl1 */ 10 2 10 3 dcl prph_tap_cardp ptr; /* Pointer to a PRPH TAPx card. */ 10 4 10 5 dcl 1 prph_tap_card based (prph_tap_cardp) aligned, /* PRPH TAPx card declaration */ 10 6 2 word char (4), /* "prph" */ 10 7 2 name char (4), /* "tapX" */ 10 8 2 iom fixed bin (3), /* IOM number */ 10 9 2 chan fixed bin (8), /* channel number */ 10 10 2 nchan fixed bin, /* number of channels */ 10 11 10 12 2 group (5), 10 13 3 model fixed bin, /* model number */ 10 14 3 ndrives fixed bin, /* number of drives */ 10 15 10 16 2 type_word aligned, 10 17 3 field_type (14) bit (2) unaligned, /* type of each field; see config_deck.incl.pl1 */ 10 18 3 pad1 bit (4) unaligned, 10 19 3 n_fields fixed bin (4) unsigned unaligned; /* number of fields used on card */ 10 20 10 21 dcl 1 prph_tap_card_array aligned based (prph_tap_cardp), /* Overlay for drive group array */ 10 22 2 pad1 (5) bit (36) aligned, 10 23 2 group (divide (max (0, (prph_tap_card.n_fields - 4)), 2, 17, 0)), 10 24 3 model fixed bin, /* model number */ 10 25 3 ndrives fixed bin; /* number of drives */ 10 26 10 27 /* END INCLUDE FILE ... config_prph_tap_card.incl.pl1 */ 720 11 1 /* BEGIN INCLUDE FILE ... config_prph_dsk_card.incl.pl1 ... 11/27/80 W. Olin Sibert */ 11 2 11 3 dcl prph_dsk_cardp ptr; /* Pointer to a PRPH DSKx card. */ 11 4 11 5 dcl 1 prph_dsk_card based (prph_dsk_cardp) aligned, /* PRPH DSKx card declaration */ 11 6 2 word char (4), /* "prph" */ 11 7 2 name char (4), /* "dskX" */ 11 8 2 iom fixed bin (3), /* IOM number */ 11 9 2 chan fixed bin (8), /* channel number */ 11 10 2 nchan fixed bin, /* number of channels */ 11 11 11 12 2 group (5), 11 13 3 model fixed bin, /* model number */ 11 14 3 ndrives fixed bin, /* number of drives */ 11 15 11 16 2 type_word aligned, 11 17 3 field_type (14) bit (2) unaligned, /* type of each field; see config_deck.incl.pl1 */ 11 18 3 pad1 bit (4) unaligned, 11 19 3 n_fields fixed bin (4) unsigned unaligned; /* number of fields used on card */ 11 20 11 21 dcl 1 prph_dsk_card_array aligned based (prph_dsk_cardp), /* Overlay for drive group array */ 11 22 2 pad1 (5) bit (36) aligned, 11 23 2 group (divide (max (0, (prph_dsk_card.n_fields - 4)), 2, 17, 0)), 11 24 3 model fixed bin, /* model number */ 11 25 3 ndrives fixed bin; /* number of drives */ 11 26 11 27 /* END INCLUDE FILE ... config_prph_dsk_card.incl.pl1 */ 721 12 1 /* BEGIN INCLUDE FILE ... config_udsk_card.incl.pl1 ... 11/27/80 W. Olin Sibert */ 12 2 12 3 dcl udsk_cardp pointer; /* pointer to UDSK card */ 12 4 12 5 dcl 1 udsk_card aligned based (udsk_cardp), /* UDSK card declaration */ 12 6 2 word char (4), /* "udsk" */ 12 7 2 subsystem char (4), /* Name of disk subsystem */ 12 8 2 nchan fixed bin, /* Max number of channels usable by ioi */ 12 9 12 10 2 group (6), /* Groups of drives available for ioi use */ 12 11 3 drive fixed bin, /* Index of first drive in group */ 12 12 3 ndrives fixed bin, /* Number of drives in group */ 12 13 12 14 2 type_word aligned, 12 15 3 field_type (14) bit (2) unaligned, /* type of each field; see config_deck.incl.pl1 */ 12 16 3 pad1 bit (4) unaligned, 12 17 3 n_fields fixed bin (4) unsigned unaligned; /* number of fields used on card */ 12 18 12 19 dcl 1 udsk_card_array aligned based (udsk_cardp), /* Overlay for counting drive groups */ 12 20 2 pad (3) bit (36) aligned, 12 21 2 group (divide (max (0, udsk_card.n_fields - 2), 2, 17, 0)), 12 22 3 drive fixed bin, /* Index of first drive in group */ 12 23 3 ndrives fixed bin; /* Number of drives in group */ 12 24 12 25 dcl UDSK_CARD_WORD char (4) aligned internal static options (constant) init ("udsk"); 12 26 12 27 /* END INCLUDE FILE ... config_udsk_card.incl.pl1 */ 722 13 1 /* Begin include file ...... fs_dev_types.incl.pl1 */ 13 2 13 3 /****^ HISTORY COMMENTS: 13 4* 1) change(85-09-09,Farley), approve(85-09-09,MCR6979), 13 5* audit(86-01-17,CLJones), install(86-03-21,MR12.0-1033): 13 6* Add support for FIPS 13 7* 3380. 13 8* 2) change(86-04-21,Fawcett), approve(86-04-21,MCR7383), 13 9* audit(86-05-15,Coppola), install(86-07-18,MR12.0-1098): 13 10* Add the support for subvolumes for the MSU3380 and MSU3390. 13 11* 3) change(86-10-02,Fawcett), approve(86-10-02,PBF7383), 13 12* audit(86-10-23,Farley), install(86-10-28,MR12.0-1200): 13 13* Changed 3390 to 3381, "d338" to "3380" & "d339" to "3381". 13 14* END HISTORY COMMENTS */ 13 15 13 16 /* Modified 5/19/76 by N. I. Morris */ 13 17 /* Modified 12/27/78 by Michael R. Jordan to correct MSS0500 information */ 13 18 /* Modified 4/79 by R.J.C. Kissel to add msu0501 information. */ 13 19 /* Modified '82 by BIM for needs_alt_part */ 13 20 /* Modified 4/84 by Chris Jones for FIPS disks */ 13 21 /* Modified 12/84 by Paul Farley for FIPS disks formatted for 512wd sectors */ 13 22 /* Modified 1/85 by Paul Farley to decrease the size of the 3380, until the 13 23* volmap and record stock can be expanded. */ 13 24 13 25 /* 13 26******************************************************************************** 13 27** * 13 28** WARNING: * 13 29** * 13 30** There exists fs_dev_types.incl.alm that must me updated when a new device * 13 31** type is added. * 13 32** * 13 33** There are other include files that contain arrays indexed by the device * 13 34** index obtained by references to MODELX or MODELN in this include file. * 13 35** These must be modified when a new device type is added: * 13 36** disk_pack.incl.pl1 * 13 37** fs_dev_types_sector.incl.pl1 (included in this include) * 13 38** * 13 39******************************************************************************** 13 40**/ 13 41 13 42 13 43 dcl (maxdevt init (9), /* maximum legal devt */ 13 44 bulkdevt init (1), /* bulk store devt */ 13 45 msu0500devt init (2), /* MSU0500 device type */ 13 46 msu0451devt init (3), /* MSU0451 device type */ 13 47 msu0450devt init (3), /* MSU0450 device type */ 13 48 msu0400devt init (4), /* MSU0400 device type */ 13 49 dsu191devt init (4), /* DSU191 device type */ 13 50 dsu190devt init (5), /* DSU190 device type */ 13 51 dsu181devt init (6), /* DSU181 device type */ 13 52 msu0501devt init (7), /* MSU0501 device type */ 13 53 fips3380devt init (8), /* 3380D FIPS device type */ 13 54 fips3381devt init (9) /* 3380E FIPS device type */ 13 55 ) fixed bin (4) static options (constant); 13 56 13 57 dcl MODEL (12) fixed bin static options (constant) init /* Known device model numbers */ 13 58 (0, 500, 451, 450, 400, 402, 191, 190, 181, 501, 3380, 3381); 13 59 13 60 dcl MODELX (12) fixed bin static options (constant) init /* translation from model number to device type */ 13 61 (1, 2, 3, 3, 4, 4, 4, 5, 6, 7, 8, 9); 13 62 13 63 dcl MODELN (9) fixed bin static options (constant) init /* translation from device type to model number */ 13 64 (0, 500, 451, 400, 190, 181, 501, 3380, 3381); 13 65 13 66 dcl device_names (9) char (4) aligned static options (constant) init /* device names indexed by device type */ 13 67 ("bulk", "d500", "d451", "d400", "d190", "d181", "d501", "3380", "3381"); 13 68 13 69 dcl first_dev_number (9) fixed bin (17) static options (constant) init /* First valid device_number */ 13 70 (1, 1, 1, 1, 1, 1, 1, 0, 0); 13 71 13 72 dcl fips_type_disk (9) bit (1) unal static options (constant) init /* ON => FIPS disk */ 13 73 ("0"b,"0"b,"0"b,"0"b,"0"b,"0"b,"0"b,"1"b,"1"b); 13 74 13 75 dcl media_removable (9) bit (1) static options (constant) init /* ON => demountable pack on device */ 13 76 ("0"b, "0"b, "1"b, "1"b, "1"b, "1"b, "0"b, "0"b, "0"b); 13 77 13 78 dcl shared_spindle (9) bit (1) static options (constant) init /* ON => 2 devices per spindle */ 13 79 ("0"b, "1"b, "0"b, "0"b, "0"b, "0"b, "1"b, "0"b, "0"b); 13 80 13 81 dcl needs_alt_part (9) bit (1) static options (constant) init /* ON => needs alternate partition to run alternate tracks */ 13 82 ("0"b, "0"b, "1"b, "1"b, "1"b, "1"b, "0"b, "0"b, "0"b); 13 83 13 84 dcl seek_command (9) bit (6) init /* Seek command: 00 => N/A, 30 => Seek_512, 34 => seek_64 */ 13 85 ("00"b3,"34"b3,"34"b3,"34"b3,"34"b3,"34"b3,"34"b3,"30"b3, "30"b3); 13 86 13 87 dcl rec_per_dev (9) fixed bin (21) static options (constant) init /* table of # of records on each device */ 13 88 (0, 38258, 38258, 19270, 14760, 4444, 67200, 112395, 224790); 13 89 13 90 dcl rec_per_sv (9) fixed bin static options (constant) init /* table of # of records on each subvol */ 13 91 (0, 38258, 38258, 19270, 14760, 4444, 67200, 56134, 74930); 13 92 13 93 dcl number_of_sv (9) fixed bin static options (constant) init /* table of subvolumes */ 13 94 (0, 0, 0, 0, 0, 0, 0, 2, 3); 13 95 13 96 dcl valid_sv_string char (3) static options (constant) init /* string of valid subvolume names */ 13 97 ("abc"); 13 98 13 99 dcl valid_sv_array (0:2) char (1) static options (constant) /* array of valid subvolume names */ 13 100 init ("a","b","c"); 13 101 13 102 dcl cyl_per_dev (9) fixed bin static options (constant) init /* table of # of cylinders on each device */ 13 103 (0, 814, 814, 410, 410, 202, 840, 885, 1770); 13 104 13 105 dcl cyl_per_sv (9) fixed bin static options (constant) init /* table of # of cylinders on each subvolume */ 13 106 (0, 814, 814, 410, 410, 202, 840, 442, 590); 13 107 13 108 dcl rec_per_cyl (9) fixed bin static options (constant) init /* table of # of records per cylinder on each device */ 13 109 (0, 47, 47, 47, 36, 22, 80, 127, 127); 13 110 13 111 dcl tracks_per_cyl (9) fixed bin static options (constant) init /* table of # of tracks per cylinder on each device */ 13 112 (0, 19, 19, 19, 19, 20, 20, 15, 15); 13 113 13 114 13 115 dcl first_rec_num (9) fixed bin static options (constant) init /* table of # of first record on each device */ 13 116 (0, 0, 0, 0, 0, 0, 0, 0, 0); 13 117 13 118 dcl last_rec_num (9) fixed bin (18) static options (constant) init /* table of # of last record on each device */ 13 119 (0, 38257, 38116, 19128, 14651, 4399, 67199, 112394, 224789); 13 120 13 121 dcl last_sv_rec_num (9) fixed bin (18) static options (constant) init /* table of # of last record on each subvolume */ 13 122 (0, 38257, 38116, 19128, 14651, 4399, 67199, 56133, 74929); 13 123 13 124 dcl first_sect_num (9) fixed bin (24) static options (constant) init /* table of # of first sector for each device */ 13 125 (0, 0, 0, 0, 0, 0, 0, 0, 0); 13 126 13 127 dcl last_sect_num (9) fixed bin (24) static options (constant) init /* table of # last sector number for each device */ 13 128 (0, 618639, 616359, 309319, 239722, 71999, 1075199, 225674, 451349); 13 129 13 130 dcl first_alt_sect_num (9) fixed bin (24) static options (constant) init /* table of # of first sector of alt partition */ 13 131 (0, 638400, 616360, 309320, 239723, 72000, 1075200, 225675, 451350); 13 132 13 133 dcl last_alt_sect_num (9) fixed bin (24) static options (constant) init /* table of # of last sector of alt partition */ 13 134 (0, 639919, 618639, 311599, 241489, 72719, 1077759, 225930, 451605); 13 135 13 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) */ 13 137 (0, 639919, 619399, 312359, 242249, 72359, 1077759, 225674, 451859); 13 138 13 139 dcl dev_time (9) float bin (27) static options (constant) init /* table of average access times for each device */ 13 140 (384e0, 33187e0, 33187e0, 34722e0, 46935e0, 52631e0, 33187e0, 26260e0, 26260e0); 13 141 14 1 /* Begin fs_dev_types_sector.incl.pl1 */ 14 2 14 3 14 4 /****^ HISTORY COMMENTS: 14 5* 1) change(86-04-21,Fawcett), approve(86-04-21,MCR7383), 14 6* audit(86-05-12,Coppola), install(86-07-18,MR12.0-1098): 14 7* Add the sector differance for devices that do 64 word IO and devices that 14 8* do 512 word IO. 14 9* END HISTORY COMMENTS */ 14 10 14 11 /* Created by R. A. Fawcett for 512 word IO. for procedures that do not 14 12* need all the data in fs_dev_types. This is also included in 14 13* fs_dev_types.incl.pl1 */ 14 14 14 15 dcl sect_per_cyl (9) fixed bin static options (constant) init /* table of # of sectors per cylinder on each device */ 14 16 (0, 760, 760, 760, 589, 360, 1280, 255, 255); 14 17 14 18 dcl sect_per_sv (9) fixed bin (24) static options (constant) init /* table of # of sectors per cylinder on each subvolume */ 14 19 (0, 0, 0, 0, 0, 0, 0, 112710, 150450); 14 20 14 21 dcl sect_per_rec (9) fixed bin static options (constant) init 14 22 /* table of # of sectors per record on each device */ 14 23 /* coresponding array in disk_pack.incl.pl1 called SECTORS_PER_RECORD */ 14 24 (0, 16, 16, 16, 16, 16, 16, 2, 2); 14 25 14 26 dcl sect_per_vtoc (9) fixed bin static options (constant) init 14 27 (0, 3, 3, 3, 3, 3, 3, 1, 1); 14 28 14 29 dcl vtoc_per_rec (9) fixed bin static options (constant) init 14 30 /* corespending array in disk_pack.incl.pl1 named VTOCES_PER_RECORD */ 14 31 (0, 5, 5, 5, 5, 5, 5, 2, 2); 14 32 14 33 dcl sect_per_track (9) fixed bin static options (constant) init /* table of # of sectors per track on each device */ 14 34 (0, 40, 40, 40, 31, 18, 64, 17, 17); 14 35 14 36 dcl words_per_sect (9) fixed bin static options (constant) init /* table of # of words per sector on each device */ 14 37 (0, 64, 64, 64, 64, 64, 64, 512, 512); 14 38 14 39 /* End fs_dev_types_sector.incl.pl1 */ 14 40 13 142 13 143 13 144 /* End of include file ...... fs_dev_types.incl.pl1 */ 723 15 1 /* BEGIN INCLUDE FILE ... pvt.incl.pl1 ... last modified January 1982 */ 15 2 15 3 15 4 /* The physical volume table (PVT) is a wired-down table. 15 5* It has one entry for each spindle present, be it for 15 6* Storage System or "I/O" use. 15 7**/ 15 8 15 9 dcl pvt$ ext, 15 10 pvtp ptr; 15 11 15 12 15 13 dcl 1 pvt based (pvtp) aligned, 15 14 15 15 2 n_entries fixed bin (17), /* number of PVT entries */ 15 16 2 max_n_entries fixed bin (17), /* max number of PVT entries */ 15 17 2 n_in_use fixed bin (17), /* number of PVT entries in use */ 15 18 2 rwun_pvtx fixed bin, /* rewind_unloading pvtx */ 15 19 2 shutdown_state fixed bin, /* state of previous shutdown */ 15 20 2 esd_state fixed bin, /* state of ESD, >0 iff in ESD */ 15 21 2 prev_shutdown_state fixed bin, /* shutdown state of previous bootload */ 15 22 2 prev_esd_state fixed bin, /* ESD state of previous bootload */ 15 23 15 24 2 time_of_bootload fixed bin (71), /* Time of bootload */ 15 25 2 root_lvid bit (36) aligned, /* Logical volume ID of Root Logical Volume (RLV) */ 15 26 2 root_pvid bit (36) aligned, /* Physical volume ID of Root Physical Volume (RPV) */ 15 27 2 root_pvtx fixed bin, /* Index to PVTE for Root Physical Volume (RPV) */ 15 28 2 root_vtocx fixed bin, /* VTOCE index for root (>) */ 15 29 2 disk_table_vtocx fixed bin, /* VTOCE index for disk table on RPV */ 15 30 2 disk_table_uid bit (36) aligned, /* File System UID for disk_table */ 15 31 15 32 2 rpvs_requested bit (1) aligned, /* RPVS keyword given on BOOT */ 15 33 2 rpv_needs_salv bit (1) aligned, /* RPV required (not requested) salvage */ 15 34 2 rlv_needs_salv bit (1) aligned, /* RLV required (not requested) salvage */ 15 35 2 volmap_lock_wait_constant bit (36) aligned,/* For constructing wait event: OR pvte_rel into lower */ 15 36 2 volmap_idle_wait_constant bit (36) aligned,/* For constructing wait event: OR pvte_rel into lower */ 15 37 2 vtoc_map_lock_wait_constant bit (36) aligned, /* For constructing wait event: OR pvte_rel into lower */ 15 38 2 n_volmap_locks_held fixed bin (17), /* Current number of volmap locks held */ 15 39 2 n_vtoc_map_locks_held fixed bin (17), /* Current number of VTOC Map locks held */ 15 40 15 41 2 last_volmap_time fixed bin (71), /* Time a volmap was last locked/unlocked */ 15 42 2 last_vtoc_map_time fixed bin (71), /* Time a VTOC Map was last locked/unlocked */ 15 43 2 total_volmap_lock_time fixed bin (71), /* Total time volmap's were locked (integral) */ 15 44 2 total_vtoc_map_lock_time fixed bin (71), /* Total time VTOC Maps were locked (integral) */ 15 45 15 46 2 n_volmap_locks fixed bin (35), /* Number times a volmap was locked */ 15 47 2 n_vtoc_map_locks fixed bin (35), /* Number times a vtoc_map was locked */ 15 48 2 volmap_lock_nowait_calls fixed bin (35), /* Number calls to lock volmap, no wait */ 15 49 2 volmap_lock_nowait_fails fixed bin (35), /* Number times lock failed */ 15 50 2 volmap_lock_wait_calls fixed bin (35), /* Number calls to lock volmap, wait */ 15 51 2 volmap_lock_wait_fails fixed bin (35), /* Number times lock failed */ 15 52 2 pad (2) bit (36) aligned, 15 53 15 54 2 array fixed bin (71); /* Array of PVTE's -- must be double-word aligned */ 15 55 15 56 15 57 15 58 /* END INCLUDE FILE ...pvt.incl.pl1 */ 724 16 1 /* START OF: pvte.incl.pl1 July 1982 * * * * * * * * * * * * * * * * */ 16 2 16 3 /* Added pc_vacating, Benson Margulies 84-10-17 */ 16 4 16 5 /****^ HISTORY COMMENTS: 16 6* 1) change(86-04-11,Fawcett), approve(86-04-11,MCR7383), 16 7* audit(86-05-29,GDixon), install(86-07-18,MR12.0-1098): 16 8* Add the support for subvolumes 16 9* 2) change(86-04-11,Lippard), approve(86-04-11,MCR7309), 16 10* audit(86-05-29,GDixon), install(86-07-18,MR12.0-1098): 16 11* Add root_lv flag to mount RLVs that do not have hardcore partitions. 16 12* 3) change(88-05-27,GWMay), approve(88-05-27,MCR7883), 16 13* audit(88-06-14,Beattie), install(88-07-19,MR12.2-1061): 16 14* Added inconsistent_dbm bit for determining the status of volume 16 15* dumper bit maps. 16 16* END HISTORY COMMENTS */ 16 17 16 18 dcl pvt$array aligned external; 16 19 dcl pvt$max_n_entries fixed bin external; 16 20 16 21 dcl pvt_arrayp ptr; 16 22 dcl pvtep ptr; 16 23 16 24 dcl 1 pvt_array (pvt$max_n_entries) aligned like pvte based (pvt_arrayp); 16 25 16 26 dcl 1 pvte based (pvtep) aligned, 16 27 16 28 2 pvid bit (36), /* physical volume ID */ 16 29 16 30 2 lvid bit (36), /* logical volume ID */ 16 31 16 32 2 dmpr_in_use (3) bit (1) unaligned, /* physical volume dumper interlock */ 16 33 2 is_sv bit (1) unaligned, /* true if this entry defines a subvolume */ 16 34 2 root_lv bit (1) unaligned, /* true if this is on the root LV */ 16 35 2 removable_pack bit (1) unaligned, /* true if packs are eremoveable */ 16 36 2 inconsistent_dbm bit (1) unaligned, /* true if trouble count is incremented */ 16 37 2 pad3 bit (2) unaligned, 16 38 2 brother_pvtx fixed bin (8) unaligned,/* next pvte in lv chain */ 16 39 2 skip_queue_count fixed bin (18) unsigned unaligned, /* number of times this pv skipped for per-proc allocation due to saturation */ 16 40 16 41 16 42 16 43 2 devname char (4), /* device name */ 16 44 16 45 (2 device_type fixed bin (8), /* device type */ 16 46 2 logical_area_number fixed bin (8), /* disk drive number */ 16 47 2 used bit (1), /* TRUE if this entry is used */ 16 48 2 storage_system bit (1), /* TRUE for storage system (vs io disk) */ 16 49 2 permanent bit (1), /* TRUE if cannot be demounted */ 16 50 2 testing bit (1), /* Protocol bit for read_disk$test */ 16 51 2 being_mounted bit (1), /* TRUE if the physical volume is being mounted */ 16 52 2 being_demounted bit (1), /* TRUE if the pysical volume is being demounted */ 16 53 2 check_read_incomplete bit (1), /* page control should check read incomplete */ 16 54 2 device_inoperative bit (1), /* TRUE if disk_control decides dev busted */ 16 55 2 rpv bit (1), /* TRUE if this is the root physical volume */ 16 56 2 scav_check_address 16 57 bit (1), /* TRUE is page control should check deposits/withdrawals against scavenger table */ 16 58 2 deposit_to_volmap bit (1), /* TRUE if deposits should got to volume map, not stock */ 16 59 2 being_demounted2 bit (1), /* No more vtoc I/O during demount */ 16 60 2 pc_vacating bit (1), /* No more withdraws from this volume -- for debugging */ 16 61 2 vacating bit (1), /* don't put new segs on this vol */ 16 62 2 hc_part_used bit (1), /* HC part set up by init_pvt */ 16 63 2 volmap_lock_notify bit (1) unal, /* TRUE if notify required when volmap lock is unlocked */ 16 64 2 volmap_idle_notify bit (1) unal, /* TRUE if notify required when volmap state is idle */ 16 65 2 vtoc_map_lock_notify bit (1) unal, /* TRUE if notify required when vtoc map lock is unlocked */ 16 66 16 67 16 68 2 n_free_vtoce fixed bin (17), /* number of free VTOC entries */ 16 69 2 vtoc_size fixed bin (17), /* size of the VTOC part of the disk - in records */ 16 70 16 71 2 dbmrp (2) bit (18), /* rel ptr to dumber bit maps for this volume */ 16 72 16 73 2 nleft fixed bin (17), /* number of records left */ 16 74 2 totrec fixed bin (17)) unaligned, /* Total records in this map */ 16 75 16 76 2 dim_info bit (36), /* Information peculiar to DIM */ 16 77 2 sv_num fixed bin, /* the number of this subvolume starting at 0 */ 16 78 2 num_of_svs fixed bin, /* number of subvolumes for this device */ 16 79 2 records_per_cyl fixed bin, 16 80 2 record_factor fixed bin, /* the record factor for logical to real seek calculation */ 16 81 2 sv_name char (2) aligned, 16 82 2 curn_dmpr_vtocx (3) fixed bin unaligned,/* current vtocx being dumped */ 16 83 2 n_vtoce fixed bin unaligned, /* number of vtoce on this volume */ 16 84 16 85 2 baseadd fixed bin (18) uns unaligned, /* Base of paging region */ 16 86 2 pad2 bit (18) unaligned, 16 87 16 88 2 pad_for_mod_2 fixed bin (35), /* Make volmap_seg_sdw double word aligned */ 16 89 16 90 2 volmap_seg_sdw fixed bin (71), /* SDW describing volmap_seg */ 16 91 16 92 2 volmap_astep ptr unal, /* Packed pointer to ASTE for volmap_seg */ 16 93 16 94 2 volmap_offset bit (18) unal, /* Offset in volmap_seg of volume map */ 16 95 2 vtoc_map_offset bit (18) unal, /* Offset in volmap_seg of VTOC map */ 16 96 16 97 16 98 2 volmap_lock bit (36) aligned, /* Lock on volume map operations */ 16 99 16 100 2 vtoc_map_lock bit (36) aligned, /* Lock on VTOC map operations */ 16 101 16 102 2 volmap_stock_ptr ptr unal, /* Packed pointer to record stock */ 16 103 16 104 2 vtoc_map_stock_ptr ptr unal, /* Packed pointer to VTOCE stock */ 16 105 16 106 2 volmap_async_state fixed bin (17) unaligned, /* Asynchronous update state of Volume Map */ 16 107 2 volmap_async_page fixed bin (17) unaligned, /* Page number for asynchronous update */ 16 108 16 109 2 vol_trouble_count fixed bin (17) unaligned, /* Count of inconsistencies since last salvage */ 16 110 2 scavenger_block_rel bit (18) unaligned; /* Offset to scavenger block, ^0 => scavenging */ 16 111 16 112 16 113 dcl (VOLMAP_ASYNC_IDLE init (0), /* for volmap_async_state */ 16 114 VOLMAP_ASYNC_READ init (1), 16 115 VOLMAP_ASYNC_WRITE init (2)) fixed bin int static options (constant); 16 116 16 117 16 118 /* END OF: pvte.incl.pl1 * * * * * * * * * * * * * * * * */ 725 17 1 /* Begin include file ... rcp_data.incl.pl1 17 2* * 17 3* * Created on 09/06/74 by Bill Silver. 17 4* * This include file defines the Resource Control Package data base, rcp_data. 17 5* * It is initialized in ring 0 by rcp_init. It is maintained in ring 1 by RCP. 17 6* * It contains information about all of the devices and volumes managed by RCP. 17 7* * This include file references rcp_com_seg.incl.pl1. 17 8* 17 9* * Modified by R.J.C. Kissel on 10/5/77 to add the check_label bit. 17 10* * Modified by Michael R. Jordan on 04/24/78 to add modes and attached flag. 17 11* * Modified on 12/09/78 to add removable media bit. 17 12* * Modified 3/79 by Michael R. Jordan for MR7.0R. 17 13* * Modified 3/79 by C. D. Tavares for expandable RCP modes. 17 14* * Modified 11/84 by Paul Farley to add fips flag. 17 15* * Modified 02/85 by Paul Farley to add no_protect and opr_int_available flags. 17 16**/ 17 17 17 18 /****^ HISTORY COMMENTS: 17 19* 1) change(85-09-09,Farley), approve(85-09-09,MCR6979), 17 20* audit(85-12-09,CLJones), install(86-03-21,MR12.0-1033): 17 21* Support FIPS and IMU. 17 22* END HISTORY COMMENTS */ 17 23 17 24 dcl rcpd_ptr ptr; /* Points to base of RCPD. */ 17 25 dcl dtype_ptr ptr; /* Points to a device type entry. */ 17 26 dcl device_ptr ptr; /* Points to a device entry. */ 17 27 dcl volume_ptr ptr; /* Points to a volume entry. */ 17 28 17 29 dcl 1 rcpd based (rcpd_ptr) aligned, /* Begin at word 0 of RCPD. */ 17 30 2 lock_info like lock_info, /* Data used to lock this segment. */ 17 31 2 init bit (1) unal, /* ON => rcp_ring1_init_ has executed */ 17 32 2 modes like rcp_init_flags unaligned, 17 33 2 tot_dtypes fixed bin, /* Number of known device types. */ 17 34 2 tot_devices fixed bin, /* Total number of devices configured. */ 17 35 2 tot_volumes fixed bin, /* Number of possible attached volumes. */ 17 36 2 last_volume fixed bin, /* The last volume entry currently in use. */ 17 37 2 mtimer_chan fixed bin (71), /* Event channel for mount timer. */ 17 38 2 mtimer_pid bit (36), /* ID of mount timer process. */ 17 39 2 accounting_chan fixed bin (71), /* Event channel for device accounting */ 17 40 2 accounting_pid bit (36), /* ID of accounting process */ 17 41 2 unload_sleep_time fixed bin (71), /* Number of microseconds to wait for unload completion. */ 17 42 2 pad (7) fixed bin, 17 43 2 dtype (0 refer (rcpd.tot_dtypes)) /* One entry per device type. */ 17 44 like dtype, /* See structure below. */ 17 45 2 device (0 refer (rcpd.tot_devices)) /* One entry per configured device. */ 17 46 like device, /* See structure below. */ 17 47 2 volume (0 refer (rcpd.tot_volumes)) /* One entry per possible attached volume. */ 17 48 like volume, /* See structure below. */ 17 49 2 end bit (36) aligned; /* End of rcp_data. */ 17 50 17 51 dcl 1 dtype based (dtype_ptr) aligned, /* Entry for one device type. */ 17 52 2 device_type char (32), /* Name of this device type. */ 17 53 2 max_concurrent fixed bin, /* Max number of concurrently assigned devices. */ 17 54 2 num_reserved fixed bin, /* Num of devices reserved for system processes. */ 17 55 2 num_devices fixed bin, /* Num of devices of this type that are configured. */ 17 56 2 first_off bit (18), /* Offset of first device entry. */ 17 57 2 histo_times (3) fixed bin; /* Used to compute histograms for this device type. */ 17 58 17 59 dcl 1 device based (device_ptr) aligned, /* Up to state must = rcs.rcse. */ 17 60 2 device_name char (8), /* Name of device associated with this entry. */ 17 61 2 volume_name char (32), /* Volume name. Blank => no volume. */ 17 62 2 dtypex fixed bin, /* Device type index. */ 17 63 2 model fixed bin, /* Device model number. */ 17 64 2 num_qualifiers fixed bin, /* Number of device qualifiers. */ 17 65 2 qualifiers (4) fixed bin (35), /* Device qualifiers. */ 17 66 2 state_time fixed bin (71), /* Time device put into current state. */ 17 67 2 state fixed bin, /* 0 => free, 1 => assigned, 2 => deleted, 17 68* 3 => storage system, 4 => reserved */ 17 69 17 70 /* * * * * ** Following fields are unique to device entry. */ 17 71 17 72 2 unassign_state fixed bin, /* State to return when unassigning. */ 17 73 2 acs_name char (12), /* Entry name of ACS for this device. */ 17 74 2 next_off bit (18), /* Offset of next entry for this device type. */ 17 75 2 iom_num fixed bin, /* IOM number for this device. */ 17 76 2 chan_num fixed bin, /* Channel number for this device. */ 17 77 2 num_channels fixed bin, /* Num channels that may address device. */ 17 78 2 flags, /* Special info flags. */ 17 79 (3 delete bit (1), /* ON => Delete device when it is unassigned. */ 17 80 3 priv bit (1), /* ON => Deleted device assigned for priv attach. */ 17 81 3 reservable bit (1), /* ON => may be reserved for system process. */ 17 82 3 reserved bit (1), /* ON => reserved to a reserved process. */ 17 83 3 mounting bit (1), /* ON => mount pending. */ 17 84 3 writing bit (1), /* ON => mounting for writing. */ 17 85 3 attached bit (1) unal, /* ON => device is attached. */ 17 86 3 not_removable_media bit (1), /* ON => cannot remove volume from device. */ 17 87 3 fips bit (1), /* ON => FIPS device. */ 17 88 3 no_protect bit (1), /* ON => device has no protect sw. */ 17 89 3 opr_int_available bit (1), /* ON => device connected to MPC with OI button. */ 17 90 3 unused bit (25)) unal, 17 91 2 process_id bit (36), /* ID of assigned process. */ 17 92 2 group_id char (32), /* Process group ID. */ 17 93 2 error_count fixed bin (35), /* Total error count. Defined by user ring. */ 17 94 2 num_assigns fixed bin (35), /* Total # of times device assigned & unassigned. */ 17 95 2 tot_assign_time fixed bin (71), /* Total time that device was assigned. */ 17 96 2 histogram (4) fixed bin, /* Assignment time histogram. */ 17 97 2 reservation_id fixed bin (71), 17 98 2 reserved_by char (32), /* Who made this reservation. */ 17 99 2 current_authorization bit (72) aligned; /* Authoization of process using this device. */ 17 100 17 101 dcl 1 volume based (volume_ptr) aligned, /* Entry for one volume. */ 17 102 2 process_id bit (36), /* "0"b => unassigned. */ 17 103 2 volume_name char (32), /* Volume name. */ 17 104 2 vtypex fixed bin, /* Volume type index. */ 17 105 2 group_id char (32), /* This is used for the reserved_for field. */ 17 106 2 reserved_by char (32), 17 107 2 reservation_id fixed bin (71), 17 108 2 state_time fixed bin (71), /* Same as for a device. */ 17 109 2 state fixed bin, /* Same as for a device. */ 17 110 2 unassign_state fixed bin, /* State to return when unassigning. */ 17 111 2 current_authorization bit (72) aligned; /* Authorization of process using this volume. */ 17 112 18 1 /* BEGIN INCLUDE FILE ... rcp_init_flags.incl.pl1 */ 18 2 18 3 /* Created on 04/24/78 by Michael R. Jordan */ 18 4 /* Modified 04/10/79 by C. D. Tavares */ 18 5 18 6 dcl rifp ptr; 18 7 18 8 dcl 1 rcp_init_flags based (rifp), 18 9 2 unload_on_detach bit (1) unaligned, /* ON => tape volumes are unloaded after detaching */ 18 10 2 pad1 bit (2) unaligned, /* obsolete */ 18 11 2 resource_mgmt_enabled bit (1) unaligned, /* ON => resource management has been enabled */ 18 12 2 auto_registration bit (1) unaligned, /* ON => auto registration allowed */ 18 13 2 pad2 bit (2) unaligned, /* future expansion, possibly of authentication_level */ 18 14 2 authentication_level fixed bin (2) unaligned unsigned; /* see below for values */ 18 15 18 16 dcl (No_authentication initial (0), 18 17 Nominal_authentication initial (1), 18 18 Automatic_authentication initial (2), 18 19 Manual_authentication initial (3)) fixed bin internal static options (constant); 18 20 18 21 dcl authentication_level_names (0:3) char (12) internal static options (constant) initial 18 22 ("none", "nominal", "automatic", "manual"); 18 23 18 24 /* END INCLUDE FILE ... rcp_init_flags.incl.pl1 */ 17 113 17 114 17 115 /* End of include file ... rcp_data.incl.pl1 */ 726 19 1 /* Begin include file ... rcp_com_seg.incl.pl1 19 2* * 19 3* * Created on 11/20/74 by Bill Silver. 19 4* * Modified on 09/19/77 by R.J.C. Kissel to add label authentication bits. 19 5* * Modified on 12/09/78 by Michael R. Jordan to add removable media bit and label_type. 19 6* * Modified 1/79 by R.J.C. Kissel to add disk label authentication bits. 19 7* * Modified 2/79 by Michael R. Jordan to add volume_density. 19 8* * Modified 11/84 by Paul Farley to add fips flag. 19 9* * Modified 1/3/85 by Fawcett to allow room for mca device type 19 10* * Modified 02/85 by Paul Farley to add no_protect and opr_int_available flags. 19 11* * This include file defines the Resource Control Package communication segment. 19 12* * This segment is used to communicate requests between the various internal 19 13* * parts of RCP. 19 14**/ 19 15 19 16 /****^ HISTORY COMMENTS: 19 17* 1) change(85-09-09,Farley), approve(85-09-09,MCR6979), 19 18* audit(85-12-09,CLJones), install(86-03-21,MR12.0-1033): 19 19* Support MCA and FIPS. 19 20* END HISTORY COMMENTS */ 19 21 19 22 dcl lock_info_ptr ptr; /* Pointer to lock info structure. */ 19 23 dcl rcs_ptr ptr; /* Pointer to base of RCS. */ 19 24 dcl rcse_ptr ptr; /* Pointer to an RCS entry. */ 19 25 19 26 dcl 1 based_rcp_id based aligned, /* Overlay of an rcp_id. */ 19 27 (2 id_count fixed bin (17), /* Unique count index. */ 19 28 2 rcse_off bit (18)) unaligned; /* Offset of rcp_com_seg entry. */ 19 29 19 30 dcl 1 rcs based (rcs_ptr) aligned, /* Begin at word zero of rcp_com_seg. */ 19 31 2 lock_info like lock_info, /* Data used to lock this segment. */ 19 32 2 ws_maxs (8) fixed bin (19), /* Max IOI workspace size in words. */ 19 33 2 ws_pmaxs (8) fixed bin (19), /* Max IOI workspace size for priv attachments. */ 19 34 2 to_maxs (8) fixed bin (71), /* Max IOI time-out intervals in microseconds. */ 19 35 2 sys_directory char (32), /* Directory used to define a system process. */ 19 36 2 sys_acs char (32), /* Entry name used to define a system process. */ 19 37 2 acs_directory char (32), /* Directory containing device ACSs. */ 19 38 2 id_count fixed bin (35), /* Counter used to form rcp_id. */ 19 39 2 max_entries fixed bin, /* Maximum number of entries allowed. */ 19 40 2 num_entries fixed bin, /* Total number of entries. */ 19 41 2 first_free_off bit (18), /* Offset of first free entry. */ 19 42 2 entry (0 refer (rcs.num_entries)) /* Array of request entries. */ 19 43 like rcse, /* See structure below. */ 19 44 2 end bit (36); /* End of rcp_com_seg. */ 19 45 19 46 dcl 1 lock_info based (lock_info_ptr) aligned, /* Used to meter locking. */ 19 47 2 lock bit (36), /* The lock itself. */ 19 48 2 num_locks fixed bin (35), /* Number of times locked. */ 19 49 2 num_lock_waits fixed bin (35), /* Number of lock waits. */ 19 50 2 time_of_lock fixed bin (71), /* Time of last lock. */ 19 51 2 tot_lock_time fixed bin (71), /* Total time locked. */ 19 52 2 tot_wait_time fixed bin (71), /* Total time waiting for lock. */ 19 53 2 starting_time fixed bin (71); /* Time metering started. */ 19 54 19 55 dcl 1 rcse based (rcse_ptr) aligned, /* Up to state must = rcpd.device. */ 19 56 2 device_name char (8), /* Name of device associated with this entry. */ 19 57 2 volume_name char (32), /* Volume name. Blank => no volume. */ 19 58 2 dtypex fixed bin, /* Device type index. */ 19 59 2 model fixed bin, /* Device model number. */ 19 60 2 num_qualifiers fixed bin, /* Number of device qualifiers. */ 19 61 2 qualifiers (4) fixed bin (35), /* Device qualifiers. */ 19 62 2 state_time fixed bin (71), /* Time device put into current state. */ 19 63 2 state fixed bin, /* 0 - free 1 - assigning 2 - assigned */ 19 64 /* 3 - attaching 4 - attached 5 - completed. */ 19 65 19 66 /* * * * * ** Following fields are unique to RCS entry. */ 19 67 2 kind fixed bin, /* 1 => attach, 2 => assign */ 19 68 2 free_off bit (18), /* Offset of next free entry. 0 => not free. */ 19 69 2 user_off bit (18), /* Offset of next entry in user list. */ 19 70 2 device_off bit (18), /* Offset of device entry in RCPD. */ 19 71 2 volume_off bit (18), /* Offset of volume entry in RCPD. */ 19 72 2 rcse_off bit (18), /* Offset of associated RCS entry. */ 19 73 2 caller_level fixed bin, /* Caller's validation level. */ 19 74 2 disposition bit (1), /* ON => retain, OFF => unassign. */ 19 75 2 flags, /* Special info flags. */ 19 76 (3 device bit (1), /* ON => assigning a specific device. */ 19 77 3 priv bit (1), /* ON => attached with IOI privilege. */ 19 78 3 system bit (1), /* ON => assigned to a system process. */ 19 79 3 t_and_d bit (1), /* ON => T&D attachment. */ 19 80 3 volume bit (1), /* ON => volume associated with this device. */ 19 81 3 writing bit (1), /* ON => writing on volume. */ 19 82 3 have_auth bit (1), /* ON => tape volume authenticated. */ 19 83 3 need_auth bit (1), /* ON => tape volume needs authentication. */ 19 84 3 auth_set bit (1), /* ON => "have_auth" has been set. */ 19 85 3 preload_allowed bit (1), /* ON => preloading of volumes is allowed. */ 19 86 3 preloaded bit (1), /* ON => volume may be loaded on device. */ 19 87 3 not_removable_media bit (1), /* ON => cannot remove volume from device. */ 19 88 3 disk_ss_pack bit (1), /* ON => disk is a storage system volume. */ 19 89 3 disk_copy_of_ss_pack bit (1), /* ON => disk is a copy of a storage system volume. */ 19 90 3 disk_io_pack bit (1), /* ON => disk has label but is not storage system. */ 19 91 3 disk_unregistered bit (1), /* ON => disk is unregistered storage system volume. */ 19 92 3 disk_unreadable bit (1), /* ON => io error reading disk label. */ 19 93 3 must_auto_register bit (1), /* ON => unregistered volume requested */ 19 94 3 fips bit (1), /* ON => FIPS device. */ 19 95 3 no_protect bit (1), /* ON => device has no protect sw. */ 19 96 3 opr_int_available bit (1), /* ON => device connected to MPC with OI button. */ 19 97 3 unused bit (6), 19 98 3 volume_density_index fixed bin (3) unsigned, /* Density of volume */ 19 99 3 label_type fixed bin (6) unsigned)unaligned, /* Type of label read by RCP. */ 19 100 2 rcp_id bit (36), /* ID of this entry. */ 19 101 2 event_id fixed bin (71), /* Caller's event channel ID. */ 19 102 2 process_id bit (36), /* ID of calling process. */ 19 103 2 group_id char (32), /* Group ID of calling process. */ 19 104 2 ecode fixed bin (35), /* Assignment error code. */ 19 105 2 version_num fixed bin, /* Device info version number. */ 19 106 2 workspace_max fixed bin (19), /* Max size of IOI workspace buffer. */ 19 107 2 timeout_max fixed bin (71), /* Max IOI time-out interval. */ 19 108 2 ioi_index fixed bin, /* IOI device index. */ 19 109 2 workspace_ptr ptr, /* Pointer to IOI workspace buffer. */ 19 110 2 caller_comment char (64); /* Caller's comment. */ 19 111 19 112 /* End of include file ... rcp_com_seg.incl.pl1 */ 727 20 1 /* Begin include file ... rcp_device_types.incl.pl1 20 2* * 20 3* * Created on 01/17/75 by Bill Silver. 20 4* * Modified on 11/01/78 by C. D. Tavares to change disk and tape to =_drive. 20 5* * Modified on 12/09/78 by Michael R. Jordan to add speed qualifier for tapes. 20 6* * Modified on 12/13/84 by Paul Farley to add MCA device type. 20 7* * This include file defines the official RCP device types. 20 8* * The official device type indexes and device type names are: 20 9* * 1. tape_drive 20 10* * 2. disk_drive 20 11* * 3. console 20 12* * 4. printer 20 13* * 5. punch 20 14* * 6. reader 20 15* * 7. special 20 16* * 8. mca 20 17**/ 20 18 20 19 /****^ HISTORY COMMENTS: 20 20* 1) change(85-09-09,Farley), approve(85-09-09,MCR6979), 20 21* audit(85-12-09,CLJones), install(86-03-21,MR12.0-1033): 20 22* Support MCA. 20 23* END HISTORY COMMENTS */ 20 24 20 25 dcl device_types (8) char (12) /* Official RCP device type names. */ 20 26 internal static init ("tape_drive", "disk_drive", "console", "printer", 20 27 "punch", "reader", "special", "mca"); 20 28 20 29 dcl dtype_num_qualifiers (8) fixed bin /* Number of qualifiers for each device type. */ 20 30 internal static init (3, 0, 0, 2, 0, 0, 0, 0); 20 31 20 32 /* End of include file ... rcp_device_types.incl.pl1 */ 728 21 1 /* BEGIN INCLUDE FILE syserr_constants.incl.pl1 ... 11/11/80 W. Olin Sibert */ 21 2 /* 85-02-12, EJ Sharpe - Added sorting class constants, removed AIM_MESSAGE, added new action code names. */ 21 3 /* 85-04-24, G. Palter - Renamed SYSERR_UNUSED_10 to SYSERR_RING1_ERROR to reflect its actual use. */ 21 4 21 5 /* This include file has an ALM version. Keep 'em in sync! */ 21 6 21 7 dcl ( 21 8 21 9 /* The following constants define the message action codes. This indicates 21 10*how a message is to be handled. */ 21 11 21 12 SYSERR_CRASH_SYSTEM init (1), 21 13 CRASH init (1), /* Crash the system, and bleat plaintively. */ 21 14 21 15 SYSERR_TERMINATE_PROCESS init (2), 21 16 TERMINATE_PROCESS init (2), /* Terminate the process, print the message, and beep. */ 21 17 21 18 SYSERR_PRINT_WITH_ALARM init (3), 21 19 BEEP init (3), /* Beep and print the message on the console. */ 21 20 21 21 SYSERR_PRINT_ON_CONSOLE init (0), 21 22 ANNOUNCE init (0), /* Just print the message on the console. */ 21 23 21 24 SYSERR_LOG_OR_PRINT init (4), 21 25 LOG init (4), /* Log the message, or print it if it can't be logged */ 21 26 21 27 SYSERR_LOG_OR_DISCARD init (5), 21 28 JUST_LOG init (5), /* Just try to log the message, and discard it if it can't be */ 21 29 21 30 21 31 /* The following constants are added to the normal severities to indicate 21 32*different sorting classes of messages. */ 21 33 21 34 SYSERR_SYSTEM_ERROR init (00), /* indicates a standard level system error */ 21 35 SYSERR_RING1_ERROR init (10), /* indicates an error detected in ring 1 (mseg_, RCP) */ 21 36 SYSERR_COVERT_CHANNEL init (20), /* indicates covert channel audit trail message */ 21 37 SYSERR_UNSUCCESSFUL_ACCESS init (30), /* indicates access denial audit trail message */ 21 38 SYSERR_SUCCESSFUL_ACCESS init (40) /* indicates access grant audit trail message */ 21 39 ) fixed bin internal static options (constant); 21 40 21 41 /* END INCLUDE FILE syserr_constants.incl.pl1 */ 729 730 731 /* BEGIN MESSAGE DOCUMENTATION 732* 733* Message: 734* rcp_init: Trying to create rcp_data ERRORMESSAGE 735* 736* S: $crash 737* 738* T: $init 739* 740* M: $err 741* 742* A: $recover 743* 744* 745* Message: 746* rcp_init: Trying to reclassify rcp_data ERRORMESSAGE 747* 748* S: $crash 749* 750* T: $init 751* 752* M: $err 753* 754* A: $recover 755* 756* 757* Message: 758* rcp_init: Trying to create rcp_com_seg ERRORMESSAGE 759* 760* S: $crash 761* 762* T: $init 763* 764* M: $err 765* 766* A: $recover 767* 768* 769* Message: 770* rcp_init: Trying to reclassify rcp_com_seg ERRORMESSAGE 771* 772* S: $crash 773* 774* T: $init 775* 776* M: $err 777* 778* A: $recover 779* 780* 781* Message: 782* rcp_init: Trying to init mca_data. ERRORMESSAGE 783* 784* S: $crash 785* 786* T: $init 787* 788* M: $err 789* 790* A: $recover 791* 792* 793* Message: 794* rcp_init: ndrives not specified with last model number for PRPH DDDD. Assuming 0. 795* 796* S: $info 797* 798* T: $init 799* 800* M: Detected a MODEL value at the end of PRPH card PPPP. Each MODEL 801* value should paired with an NDRIVE value. The last model value will be 802* assigned zero devices. It is possible that there is another error elsewhere 803* on this card to have caused this message. 804* 805* A: $inform 806* 807* 808* Message: 809* rcp_init: Error surveying DDDD. ERRORMESSAGE 810* 811* S: $info 812* 813* T: $init 814* 815* M: Attempted to access device DDDD but could not due to ERRORMESSAGE. 816* 817* A: $inform 818* 819* 820* Message: 821* rcp_init: DDDD deleted. 822* 823* S: $info 824* 825* T: $init 826* 827* M: Device DDDD could not be found or accessed and it will be deleted. 828* 829* A: $inform 830* 831* 832* Message: 833* rcp_init: DDDD cannot be used for user I/O. 834* 835* S: $crash 836* 837* T: $init 838* 839* M: An attempt was made to configure a device for user I/O which is being 840* used by the system for system storage. 841* 842* A: $recover 843* 844* 845* Message: 846* rcp_init: Device DEVICE defined more than once 847* 848* S: $crash 849* 850* T: $init 851* 852* M: The configuration deck defines the device DEVICE more than once. 853* 854* A: Perform an emergency shutdown, and correct the 855* configuration deck. 856* $recover 857* 858* 859* END MESSAGE DOCUMENTATION */ 860 861 end rcp_init; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 11/11/89 0806.8 rcp_init.pl1 >spec>install>1112>rcp_init.pl1 711 1 04/11/85 1452.6 access_mode_values.incl.pl1 >ldd>include>access_mode_values.incl.pl1 712 2 07/11/84 0937.3 io_config_data.incl.pl1 >ldd>include>io_config_data.incl.pl1 713 3 05/08/81 1853.6 config_deck.incl.pl1 >ldd>include>config_deck.incl.pl1 714 4 10/30/86 2010.5 config_data_dcls.incl.pl1 >ldd>include>config_data_dcls.incl.pl1 715 5 05/08/81 1853.6 config_iom_card.incl.pl1 >ldd>include>config_iom_card.incl.pl1 716 6 10/31/84 1315.5 config_prph_card.incl.pl1 >ldd>include>config_prph_card.incl.pl1 717 7 05/08/81 1853.6 config_mpc_card.incl.pl1 >ldd>include>config_mpc_card.incl.pl1 718 8 02/01/85 0748.0 config_prph_opc_card.incl.pl1 >ldd>include>config_prph_opc_card.incl.pl1 719 9 05/08/81 1853.7 config_prph_prt_card.incl.pl1 >ldd>include>config_prph_prt_card.incl.pl1 720 10 11/08/82 1005.8 config_prph_tap_card.incl.pl1 >ldd>include>config_prph_tap_card.incl.pl1 721 11 05/08/81 1853.7 config_prph_dsk_card.incl.pl1 >ldd>include>config_prph_dsk_card.incl.pl1 722 12 05/08/81 1853.7 config_udsk_card.incl.pl1 >ldd>include>config_udsk_card.incl.pl1 723 13 10/30/86 2010.5 fs_dev_types.incl.pl1 >ldd>include>fs_dev_types.incl.pl1 13-142 14 07/24/86 2051.8 fs_dev_types_sector.incl.pl1 >ldd>include>fs_dev_types_sector.incl.pl1 724 15 05/27/82 1525.8 pvt.incl.pl1 >ldd>include>pvt.incl.pl1 725 16 07/21/88 2036.0 pvte.incl.pl1 >ldd>include>pvte.incl.pl1 726 17 03/27/86 1120.0 rcp_data.incl.pl1 >ldd>include>rcp_data.incl.pl1 17-113 18 11/21/79 1458.3 rcp_init_flags.incl.pl1 >ldd>include>rcp_init_flags.incl.pl1 727 19 03/27/86 1120.0 rcp_com_seg.incl.pl1 >ldd>include>rcp_com_seg.incl.pl1 728 20 03/27/86 1120.0 rcp_device_types.incl.pl1 >ldd>include>rcp_device_types.incl.pl1 729 21 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. ANNOUNCE 000061 constant fixed bin(17,0) initial dcl 21-7 set ref 396* 416* 418* 493* CRASH 000072 constant fixed bin(17,0) initial dcl 21-7 set ref 285* 288* 291* 294* 297* 510* 598* IOM_CARD_WORD 000124 constant char(4) initial dcl 5-19 set ref 212* 222* MODEL 000106 constant fixed bin(17,0) initial array dcl 13-57 ref 463 465 MODELN 000061 constant fixed bin(17,0) initial array dcl 13-63 ref 467 MODELX 000072 constant fixed bin(17,0) initial array dcl 13-60 ref 466 MPC_CARD_WORD 000122 constant char(4) initial dcl 7-26 set ref 697* PRPH_CARD_WORD 000123 constant char(4) initial dcl 6-19 set ref 196* 203 RW_ACCESS_BIN 000312 constant fixed bin(5,0) initial dcl 1-36 set ref 166* 248* a_chan parameter fixed bin(8,0) dcl 692 ref 684 700 700 a_iom parameter fixed bin(3,0) dcl 691 ref 684 700 a_name parameter char packed unaligned dcl 623 ref 619 628 acs_directory 000130 constant char(32) initial packed unaligned dcl 121 in procedure "rcp_init" ref 266 acs_directory 74 based char(32) level 2 in structure "rcs" dcl 19-30 in procedure "rcp_init" set ref 266* acs_name 26 based char(12) level 2 dcl 17-59 set ref 594* addr builtin function dcl 130 ref 159 160 163 177 184 209 226 235 242 255 272 274 276 278 315 507 537 543 558 563 admin_gate_$ioi_delete_device 000012 constant entry external dcl 134 ref 419 array 50 based fixed bin(71,0) level 2 dcl 15-13 set ref 160 based_device based bit dcl 153 set ref 573* chan 3 based fixed bin(8,0) level 2 in structure "prph_dsk_card" dcl 11-5 in procedure "rcp_init" set ref 479* chan 4 based fixed bin(8,0) array level 3 in structure "mpc_card" dcl 7-5 in procedure "rcp_init" ref 700 700 chan 3 based fixed bin(8,0) level 2 in structure "prph_card" dcl 6-5 in procedure "rcp_init" ref 586 chan 3 000102 automatic fixed bin(8,0) level 2 in structure "prph_mca_card" dcl 60 in procedure "rcp_init" set ref 207* chan_num 33 based fixed bin(17,0) level 2 dcl 17-59 set ref 586* channel_entry_template based structure level 1 dcl 2-59 clock builtin function dcl 130 ref 173 275 583 config_$find 000014 constant entry external dcl 135 ref 196 212 222 697 config_$find_2 000016 constant entry external dcl 136 ref 439 config_card based structure level 1 dcl 3-13 config_card_type_word based structure level 1 dcl 3-18 config_data_$disk_drive_model_names 000050 external static structure level 1 dcl 4-148 config_data_$tape_drive_model_names 000052 external static structure level 1 dcl 4-156 configured 24 based bit(1) array level 4 packed packed unaligned dcl 2-36 ref 631 controller_entry_template based structure level 1 dcl 2-77 count 000050 external static fixed bin(17,0) level 2 in structure "config_data_$disk_drive_model_names" dcl 4-148 in procedure "rcp_init" ref 666 count 000052 external static fixed bin(17,0) level 2 in structure "config_data_$tape_drive_model_names" dcl 4-156 in procedure "rcp_init" ref 652 deleted 000355 automatic bit(1) initial packed unaligned dcl 624 set ref 624* 631* 633 device based structure level 1 dcl 17-59 in procedure "rcp_init" set ref 572 device based structure array level 2 in structure "rcpd" dcl 17-29 in procedure "rcp_init" set ref 558 563 device_0_valid 4 000050 external static bit(1) array level 3 in structure "config_data_$disk_drive_model_names" dcl 4-148 in procedure "rcp_init" ref 667 device_0_valid 4 000052 external static bit(1) array level 3 in structure "config_data_$tape_drive_model_names" dcl 4-156 in procedure "rcp_init" ref 653 device_entry 4 based structure array level 2 dcl 2-36 device_entry_template based structure level 1 dcl 2-42 device_len 000146 automatic fixed bin(17,0) dcl 66 set ref 572* 573 device_name 000150 automatic char(8) packed unaligned dcl 67 in procedure "rcp_init" set ref 317* 335* 368* 368 370* 370 374 411* 415 415 416* 417* 418* 419* 443* 445* 475* 480* 510* 515* 559 575 584* 594 598* device_name based char(8) level 2 in structure "device" dcl 17-59 in procedure "rcp_init" set ref 559 575* device_ptr 000236 automatic pointer dcl 17-26 set ref 415 420 477 478 479 480 482 515 517 558* 559 563* 565 567 569 572 573 575 576 577 578 579 581 583 584 585 586 587 588 589 590 591 592 594 device_table based structure level 1 dcl 2-36 device_table_offset 3 based fixed bin(18,0) level 2 packed packed unsigned unaligned dcl 2-22 ref 164 device_type based char(32) level 2 dcl 17-51 set ref 185* device_types 000030 constant char(12) initial array packed unaligned dcl 20-25 ref 180 183 185 225 258 309 devname 3 based char(4) level 2 dcl 16-26 ref 508 divide builtin function dcl 130 ref 242 269 drive 3 based fixed bin(17,0) array level 3 dcl 12-5 ref 504 504 504 drive_name 000100 automatic structure level 1 packed packed unaligned dcl 56 set ref 411 445 475 drive_num 000153 automatic fixed bin(17,0) dcl 69 set ref 376* 378* 386* 386 410 415* 450* 452* 473* 473 474 488* 488 504 504 508 dtype 000100 automatic char(5) level 2 in structure "drive_name" packed packed unaligned dcl 56 in procedure "rcp_init" set ref 374* 441* dtype 43 based structure array level 2 in structure "rcpd" dcl 17-29 in procedure "rcp_init" set ref 184 226 315 537 543 dtype based structure level 1 dcl 17-51 in procedure "rcp_init" dtype_num_qualifiers 000020 constant fixed bin(17,0) initial array dcl 20-29 ref 321 544 dtype_ptr 000234 automatic pointer dcl 17-25 set ref 184* 185 187 226* 227 227 227 315* 365 366 366 537* 543* 565 565 570 570 dtypex 000152 automatic fixed bin(17,0) dcl 68 in procedure "rcp_init" set ref 183* 184 185 187 189* 225* 226* 309* 310* 313* 315 321 323 535 536* 537 542* 543 544 567 569 577 645 dtypex 12 based fixed bin(17,0) level 2 in structure "device" dcl 17-59 in procedure "rcp_init" set ref 577* ecode 000154 automatic fixed bin(35,0) dcl 70 set ref 166* 167 168* 170* 171 216* 217 248* 249 250* 252* 253 280* 281* 285* 288* 291* 294* 297* 365* 415* 416 416* 514* entry 110 based structure array level 2 dcl 19-30 set ref 272 274 276 278 fips 000174 automatic bit(1) packed unaligned dcl 84 in procedure "rcp_init" set ref 322* 368 376 415 443 450 478 589 fips 35(08) based bit(1) level 3 in structure "device" packed packed unaligned dcl 17-59 in procedure "rcp_init" set ref 589* first_free_off 107 based bit(18) level 2 dcl 19-30 set ref 272* first_off 13 based bit(18) level 2 dcl 17-51 set ref 565* fixed builtin function dcl 130 ref 242 flags 35 based structure level 2 in structure "device" dcl 17-59 in procedure "rcp_init" flags 24 based structure array level 3 in structure "device_table" dcl 2-36 in procedure "rcp_init" found 000354 automatic bit(1) initial packed unaligned dcl 624 set ref 624* 627 628* free_off 26 based bit(18) level 2 dcl 19-55 set ref 276* 278* get_max_authorization_ 000020 constant entry external dcl 137 ref 170 170 252 252 group 5 based structure array level 2 in structure "prph_tap_card" dcl 10-5 in procedure "rcp_init" ref 379 649 group 5 based structure array level 2 in structure "prph_dsk_card" dcl 11-5 in procedure "rcp_init" ref 454 663 group 3 based structure array level 2 in structure "udsk_card" dcl 12-5 in procedure "rcp_init" ref 503 group_id 12 based char(32) level 2 in structure "volume" dcl 17-101 in procedure "rcp_init" set ref 237* group_id 37 based char(32) level 2 in structure "device" dcl 17-59 in procedure "rcp_init" set ref 590* groupx 000367 automatic fixed bin(17,0) dcl 643 set ref 649* 650* 663* 664* hbound builtin function dcl 130 ref 180 183 225 258 309 379 454 463 503 649 663 699 hcs_$append_branchx 000022 constant entry external dcl 138 ref 166 248 hcs_$initiate 000024 constant entry external dcl 141 ref 168 250 hcs_$terminate_noname 000026 constant entry external dcl 142 ref 280 281 histo_times 14 based fixed bin(17,0) array level 2 in structure "dtype" dcl 17-51 in procedure "rcp_init" set ref 187* histo_times 000166 constant fixed bin(17,0) initial array dcl 102 in procedure "rcp_init" ref 187 hphcs_$syserr 000030 constant entry external dcl 143 ref 396 418 493 510 598 hphcs_$syserr_error_code 000032 constant entry external dcl 144 ref 285 288 291 294 297 416 i 000356 automatic fixed bin(17,0) dcl 625 in procedure "DEVICE_DELETED" set ref 627* 628* 631 i 000155 automatic fixed bin(17,0) dcl 71 in procedure "rcp_init" set ref 186* 187 187* 234* 235* 258* 259 259 260 260 261 261* 273* 274 276* 557* 558* 580* 581 581* i 000400 automatic fixed bin(17,0) dcl 693 in procedure "MPC_WITH_OI" set ref 699* 699* 700 700 700 700* i 000366 automatic fixed bin(17,0) dcl 642 in procedure "IS_FIPS_DEVICE" set ref 652* 653 653* 666* 667 667* i 000310 automatic fixed bin(17,0) dcl 434 in procedure "INIT_DISKS" set ref 463* 465 466* initializer_gate_$ss_io_reconfigure 000034 constant entry external dcl 145 ref 514 io_config_data based structure level 1 dcl 2-22 io_config_data$ 000046 external static fixed bin(17,0) dcl 2-8 set ref 163 io_config_data_ptr 000176 automatic pointer dcl 2-10 set ref 163* 164 164 io_config_device_table_ptr 000200 automatic pointer dcl 2-11 set ref 164* 627 628 631 iom 2 based fixed bin(3,0) level 2 in structure "prph_card" dcl 6-5 in procedure "rcp_init" ref 585 iom 3 based fixed bin(3,0) array level 3 in structure "mpc_card" dcl 7-5 in procedure "rcp_init" ref 699 700 iom 2 based fixed bin(3,0) level 2 in structure "prph_dsk_card" dcl 11-5 in procedure "rcp_init" set ref 479* iom 2 000102 automatic fixed bin(3,0) level 2 in structure "prph_mca_card" dcl 60 in procedure "rcp_init" set ref 218* iom_card based structure level 1 dcl 5-5 iom_cardp 000202 automatic pointer dcl 5-3 set ref 210* 212* 213 214 214 216 218 219 222* iom_entry_template based structure level 1 dcl 2-93 iom_num 32 based fixed bin(17,0) level 2 dcl 17-59 set ref 585* j 000156 automatic fixed bin(17,0) dcl 71 set ref 385* 472* last_ptrs 000122 automatic pointer array dcl 62 set ref 189* 567 569* last_volume 20 based fixed bin(17,0) level 2 dcl 17-29 set ref 234 389* 389 486* 486 line_length 6 based fixed bin(17,0) level 2 dcl 9-5 ref 343 lock based bit(36) level 2 dcl 19-46 set ref 608* lock_info based structure level 1 dcl 19-46 in procedure "rcp_init" lock_info based structure level 2 in structure "rcpd" dcl 17-29 in procedure "rcp_init" set ref 177 lock_info based structure level 2 in structure "rcs" dcl 19-30 in procedure "rcp_init" set ref 255 lock_info_ptr 000242 automatic pointer dcl 19-22 set ref 177* 255* 608 610 610 613 613 615 logical_area_number 4(09) based fixed bin(8,0) level 2 packed packed unaligned dcl 16-26 ref 508 max_concurrent 10 based fixed bin(17,0) level 2 dcl 17-51 set ref 227 227* 365* 366 366* max_entries 105 based fixed bin(17,0) level 2 dcl 19-30 set ref 269* max_n_entries 1 based fixed bin(17,0) level 2 dcl 15-13 ref 506 mca_init_ 000044 constant entry external dcl 149 ref 216 media_removable 000060 constant bit(1) initial array packed unaligned dcl 13-75 ref 477 model 2 based fixed bin(17,0) level 2 in structure "mpc_card" dcl 7-5 in procedure "rcp_init" ref 702 model 13 based fixed bin(17,0) level 2 in structure "device" dcl 17-59 in procedure "rcp_init" set ref 578* model 000157 automatic fixed bin(17,0) dcl 72 in procedure "rcp_init" set ref 319* 336* 381* 382 387 446* 456* 457 465 467* 471 578 650* 651 653 664* 665 667 model 1 000050 external static fixed bin(17,0) array level 3 in structure "config_data_$disk_drive_model_names" dcl 4-148 in procedure "rcp_init" ref 667 model 5 based fixed bin(17,0) array level 3 in structure "prph_dsk_card" dcl 11-5 in procedure "rcp_init" ref 456 664 model 4 000102 automatic fixed bin(17,0) level 2 in structure "prph_mca_card" dcl 60 in procedure "rcp_init" set ref 208* model 5 based fixed bin(17,0) array level 3 in structure "prph_tap_card" dcl 10-5 in procedure "rcp_init" ref 381 650 model 4 based fixed bin(17,0) level 2 in structure "prph_opc_card" dcl 8-8 in procedure "rcp_init" ref 336 model 4 based fixed bin(17,0) level 2 in structure "prph_card" dcl 6-5 in procedure "rcp_init" ref 319 model 3 based char(4) level 2 in structure "iom_card" dcl 5-5 in procedure "rcp_init" ref 214 214 model 1 000052 external static fixed bin(17,0) array level 3 in structure "config_data_$tape_drive_model_names" dcl 4-156 in procedure "rcp_init" ref 653 modelx 000160 automatic fixed bin(17,0) dcl 73 set ref 462* 463 466* 467 477 mpc_card based structure level 1 dcl 7-5 mpc_cardp 000206 automatic pointer dcl 7-3 set ref 695* 697* 698 699 699 700 700 700 700 702 n_devices 2 based fixed bin(17,0) level 2 dcl 2-36 ref 627 name 1 based char(4) level 2 in structure "prph_card" dcl 6-5 in procedure "rcp_init" ref 308 317 name 1 based char(4) level 2 in structure "prph_tap_card" dcl 10-5 in procedure "rcp_init" set ref 396* name 1 based char(4) level 2 in structure "prph_dsk_card" dcl 11-5 in procedure "rcp_init" set ref 439* 441 443 493* 508 name 1 based char(4) level 2 in structure "prph_opc_card" dcl 8-8 in procedure "rcp_init" ref 335 name 4 based char(32) array level 3 in structure "device_table" packed packed unaligned dcl 2-36 in procedure "rcp_init" ref 628 name 1 000102 automatic char(4) level 2 in structure "prph_mca_card" packed packed unaligned dcl 60 in procedure "rcp_init" set ref 219* names 1 000052 external static structure array level 2 in structure "config_data_$tape_drive_model_names" dcl 4-156 in procedure "rcp_init" names 1 000050 external static structure array level 2 in structure "config_data_$disk_drive_model_names" dcl 4-148 in procedure "rcp_init" nchan 5 based fixed bin(17,0) array level 3 dcl 7-5 ref 700 ndrives 6 based fixed bin(17,0) array level 3 in structure "prph_dsk_card" dcl 11-5 in procedure "rcp_init" ref 455 ndrives 4 based fixed bin(17,0) array level 3 in structure "udsk_card" dcl 12-5 in procedure "rcp_init" ref 504 ndrives 6 based fixed bin(17,0) array level 3 in structure "prph_tap_card" dcl 10-5 in procedure "rcp_init" ref 380 next_off 31 based bit(18) level 2 dcl 17-59 set ref 567* no_protect 35(09) based bit(1) level 3 packed packed unaligned dcl 17-59 set ref 478* not_removable_media 35(07) based bit(1) level 3 packed packed unaligned dcl 17-59 set ref 477* null builtin function dcl 130 ref 169 189 194 198 210 213 251 438 483 695 698 num_channels 34 based fixed bin(17,0) level 2 in structure "device" dcl 17-59 in procedure "rcp_init" set ref 587* num_channels 000161 automatic fixed bin(17,0) dcl 74 in procedure "rcp_init" set ref 320* 587 num_devices 12 based fixed bin(17,0) level 2 dcl 17-51 set ref 227 565 570* 570 num_drives 000162 automatic fixed bin(17,0) dcl 75 set ref 380* 383 385 455* 459 472 486 488 num_entries 106 based fixed bin(17,0) level 2 dcl 19-30 set ref 270* 273 278 num_lock_waits 2 based fixed bin(35,0) level 2 dcl 19-46 set ref 610* num_locks 1 based fixed bin(35,0) level 2 dcl 19-46 set ref 610* num_qualifiers 000163 automatic fixed bin(17,0) dcl 76 in procedure "rcp_init" set ref 321* 538* 544* 579 580 num_qualifiers 14 based fixed bin(17,0) level 2 in structure "device" dcl 17-59 in procedure "rcp_init" set ref 579* number 1(09) 000100 automatic picture(2) level 2 packed packed unaligned dcl 56 set ref 410* 442* 474* opr_int_available 35(10) based bit(1) level 3 packed packed unaligned dcl 17-59 set ref 479* pairx 000164 automatic fixed bin(17,0) dcl 77 set ref 379* 380 381* 454* 455 456* permanent 4(20) based bit(1) level 2 packed packed unaligned dcl 16-26 ref 509 port 3 based structure array level 2 dcl 7-5 ref 699 prph_card based structure level 1 dcl 6-5 prph_cardp 000204 automatic pointer dcl 6-3 set ref 194* 196* 198 209* 308 317 319 333 340 363 436 585 586 647 661 prph_dsk_card based structure level 1 dcl 11-5 prph_dsk_cardp 000216 automatic pointer dcl 11-3 set ref 436* 439 441 443 454 455 456 479 479 493 508 661* 663 664 prph_mca_card 000102 automatic structure level 1 unaligned dcl 60 set ref 209 prph_name 000165 automatic char(3) packed unaligned dcl 78 set ref 308* 310 prph_names 000160 constant char(3) initial array packed unaligned dcl 112 ref 310 prph_opc_card based structure level 1 dcl 8-8 prph_opc_cardp 000210 automatic pointer dcl 8-6 set ref 333* 335 336 prph_prt_card based structure level 1 dcl 9-5 prph_prt_cardp 000212 automatic pointer dcl 9-3 set ref 340* 342 343 prph_tap_card based structure level 1 dcl 10-5 prph_tap_cardp 000214 automatic pointer dcl 10-3 set ref 363* 379 380 381 396 647* 649 650 ptr builtin function dcl 130 ref 164 pvt based structure level 1 dcl 15-13 pvt$ 000054 external static fixed bin(17,0) dcl 15-9 set ref 159 pvt_array based structure array level 1 dcl 16-24 set ref 507 pvt_arrayp 000226 automatic pointer dcl 16-21 set ref 160* 507 pvte based structure level 1 dcl 16-26 pvtep 000230 automatic pointer dcl 16-22 set ref 507* 508 508 509 509 pvtp 000224 automatic pointer dcl 15-9 set ref 159* 160 506 pvtx 000166 automatic fixed bin(17,0) dcl 79 set ref 506* 507 514* qualifiers 15 based fixed bin(35,0) array level 2 in structure "device" dcl 17-59 in procedure "rcp_init" set ref 415* 581* qualifiers 000142 automatic fixed bin(17,0) array dcl 64 in procedure "rcp_init" set ref 342* 343* 581 rb 000125 constant fixed bin(6,0) initial array dcl 124 set ref 166* 248* rcp_init_flags based structure level 1 packed packed unaligned dcl 18-8 rcp_tape_survey_ 000036 constant entry external dcl 146 ref 415 rcpd based structure level 1 dcl 17-29 rcpd_ptr 000232 automatic pointer dcl 17-24 set ref 168* 169 177 180 181 184 226 234 235 242 242 270 280* 315 389 389 486 486 537 543 557 558 562 562 563 563 rcs based structure level 1 dcl 19-30 set ref 269 rcs_ptr 000244 automatic pointer dcl 19-23 set ref 250* 251 255 259 260 261 264 265 266 269 269 270 272 272 273 274 276 278 278 281* rcs_size 000167 automatic fixed bin(17,0) dcl 80 set ref 268* 269 rcse based structure level 1 dcl 19-55 set ref 269 rcse_ptr 000246 automatic pointer dcl 19-24 set ref 269 274* 275 276 rel builtin function dcl 130 ref 242 272 276 565 567 reservable 35(02) based bit(1) level 3 packed packed unaligned dcl 17-59 set ref 588* reservable_flag 000170 automatic bit(1) packed unaligned dcl 81 set ref 318* 413* 588 reservation_id 60 based fixed bin(71,0) level 2 dcl 17-59 set ref 591* reserved_by 22 based char(32) level 2 in structure "volume" dcl 17-101 in procedure "rcp_init" set ref 238* reserved_by 62 based char(32) level 2 in structure "device" dcl 17-59 in procedure "rcp_init" set ref 592* resource_info_$limits 000040 constant entry external dcl 147 ref 365 rtrim builtin function dcl 130 ref 594 save_dtypex 000171 automatic fixed bin(17,0) dcl 82 set ref 535* 542 seek_command 000222 automatic bit(6) initial array packed unaligned dcl 13-84 set ref 13-84* 13-84* 13-84* 13-84* 13-84* 13-84* 13-84* 13-84* 13-84* size builtin function dcl 130 ref 242 269 269 572 special_dtypex constant fixed bin(17,0) initial dcl 90 ref 313 536 starting_time 000172 automatic fixed bin(71,0) dcl 83 in procedure "rcp_init" set ref 173* 239 615 starting_time 12 based fixed bin(71,0) level 2 in structure "lock_info" dcl 19-46 in procedure "rcp_init" set ref 615* state 24 based fixed bin(17,0) level 2 dcl 17-59 set ref 420* 480* 482* 515* 517* 584* state_time 22 based fixed bin(71,0) level 2 in structure "rcse" dcl 19-55 in procedure "rcp_init" set ref 275* state_time 34 based fixed bin(71,0) level 2 in structure "volume" dcl 17-101 in procedure "rcp_init" set ref 239* state_time 22 based fixed bin(71,0) level 2 in structure "device" dcl 17-59 in procedure "rcp_init" set ref 583* string builtin function dcl 130 ref 411 445 475 substr builtin function dcl 130 ref 219 308 368 370 374 415 415 sys_acs 000140 constant char(32) initial packed unaligned dcl 118 in procedure "rcp_init" ref 265 sys_acs 64 based char(32) level 2 in structure "rcs" dcl 19-30 in procedure "rcp_init" set ref 265* sys_directory 54 based char(32) level 2 in structure "rcs" dcl 19-30 in procedure "rcp_init" set ref 264* sys_directory 000150 constant char(32) initial packed unaligned dcl 115 in procedure "rcp_init" set ref 166* 168* 170* 248* 250* 252* 264 sys_info$max_seg_size 000010 external static fixed bin(35,0) dcl 132 ref 242 268 system_privilege_$reclassify_sys_seg 000042 constant entry external dcl 148 ref 170 252 tag 1 based fixed bin(3,0) level 2 dcl 5-5 set ref 216* 218 219 tape_found 000300 automatic bit(1) dcl 405 set ref 415* 417 to_maxs 34 based fixed bin(71,0) array level 2 in structure "rcs" dcl 19-30 in procedure "rcp_init" set ref 261* to_maxs 000216 constant fixed bin(17,0) initial array dcl 99 in procedure "rcp_init" ref 261 tot_devices 16 based fixed bin(17,0) level 2 dcl 17-29 set ref 235 242 270 557 562* 562 563 tot_dtypes 15 based fixed bin(17,0) level 2 dcl 17-29 set ref 180* 235 242 558 563 tot_lock_time 6 based fixed bin(71,0) level 2 dcl 19-46 set ref 613* tot_volumes 17 based fixed bin(17,0) level 2 dcl 17-29 set ref 242* tot_wait_time 10 based fixed bin(71,0) level 2 dcl 19-46 set ref 613* train 5 based fixed bin(17,0) level 2 dcl 9-5 ref 342 udsk_card based structure level 1 dcl 12-5 udsk_cardp 000220 automatic pointer dcl 12-3 set ref 438* 439* 483 503 504 504 504 504 unload_sleep_time 32 based fixed bin(71,0) level 2 dcl 17-29 set ref 181* used 4(18) based bit(1) level 2 packed packed unaligned dcl 16-26 ref 509 ux 000320 automatic fixed bin(17,0) dcl 501 set ref 503* 504 504 504 504* volume based structure array level 2 in structure "rcpd" dcl 17-29 in procedure "rcp_init" set ref 235 242 volume based structure level 1 dcl 17-101 in procedure "rcp_init" set ref 242 volume_name 2 based char(32) level 2 in structure "device" dcl 17-59 in procedure "rcp_init" set ref 576* volume_name 1 based char(32) level 2 in structure "volume" dcl 17-101 in procedure "rcp_init" set ref 236* volume_ptr 000240 automatic pointer dcl 17-27 set ref 235* 236 237 238 239 242 word 000102 automatic char(4) level 2 packed packed unaligned dcl 60 set ref 203* ws_maxs 14 based fixed bin(19,0) array level 2 in structure "rcs" dcl 19-30 in procedure "rcp_init" set ref 259* ws_maxs 000236 constant fixed bin(17,0) initial array dcl 93 in procedure "rcp_init" ref 259 ws_pmaxs 24 based fixed bin(19,0) array level 2 in structure "rcs" dcl 19-30 in procedure "rcp_init" set ref 260* ws_pmaxs 000226 constant fixed bin(17,0) initial array dcl 96 in procedure "rcp_init" ref 260 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. A_ACCESS internal static bit(3) initial packed unaligned dcl 1-11 A_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 Automatic_authentication internal static fixed bin(17,0) initial dcl 18-16 BEEP internal static fixed bin(17,0) initial dcl 21-7 CONFIG_DECIMAL_TYPE internal static bit(2) initial dcl 3-23 CONFIG_OCTAL_TYPE internal static bit(2) initial dcl 3-23 CONFIG_SINGLE_CHAR_TYPE internal static bit(2) initial dcl 3-23 CONFIG_STRING_TYPE internal static bit(2) initial dcl 3-23 DIR_ACCESS_MODE_NAMES internal static char(4) initial array packed unaligned dcl 1-33 EMPTY_FIELD internal static bit(36) initial dcl 3-34 E_ACCESS internal static bit(3) initial packed unaligned dcl 1-11 E_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 FREE_CARD_WORD internal static char(4) initial dcl 3-29 IO_CONFIG_CHANNEL_TABLE_VERSION_1 internal static char(8) initial dcl 2-106 IO_CONFIG_CONTROLLER_TABLE_VERSION_1 internal static char(8) initial dcl 2-108 IO_CONFIG_DATA_VERSION_1 internal static char(8) initial dcl 2-102 IO_CONFIG_DEVICE_TABLE_VERSION_1 internal static char(8) initial dcl 2-104 IO_CONFIG_IOM_TABLE_VERSION_1 internal static char(8) initial dcl 2-110 JUST_LOG internal static fixed bin(17,0) initial dcl 21-7 LOG internal static fixed bin(17,0) initial dcl 21-7 M_ACCESS internal static bit(3) initial packed unaligned dcl 1-11 M_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 Manual_authentication internal static fixed bin(17,0) initial dcl 18-16 N_ACCESS internal static bit(3) initial packed unaligned dcl 1-11 N_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 No_authentication internal static fixed bin(17,0) initial dcl 18-16 Nominal_authentication internal static fixed bin(17,0) initial dcl 18-16 REW_ACCESS internal static bit(3) initial packed unaligned dcl 1-11 REW_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 RE_ACCESS internal static bit(3) initial packed unaligned dcl 1-11 RE_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 RW_ACCESS internal static bit(3) initial packed unaligned dcl 1-11 R_ACCESS internal static bit(3) initial packed unaligned dcl 1-11 R_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 SA_ACCESS internal static bit(3) initial packed unaligned dcl 1-11 SA_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 SEG_ACCESS_MODE_NAMES internal static char(4) initial array packed unaligned dcl 1-30 SMA_ACCESS internal static bit(3) initial packed unaligned dcl 1-11 SMA_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 SM_ACCESS internal static bit(3) initial packed unaligned dcl 1-11 SM_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 SYSERR_COVERT_CHANNEL internal static fixed bin(17,0) initial dcl 21-7 SYSERR_CRASH_SYSTEM internal static fixed bin(17,0) initial dcl 21-7 SYSERR_LOG_OR_DISCARD internal static fixed bin(17,0) initial dcl 21-7 SYSERR_LOG_OR_PRINT internal static fixed bin(17,0) initial dcl 21-7 SYSERR_PRINT_ON_CONSOLE internal static fixed bin(17,0) initial dcl 21-7 SYSERR_PRINT_WITH_ALARM internal static fixed bin(17,0) initial dcl 21-7 SYSERR_RING1_ERROR internal static fixed bin(17,0) initial dcl 21-7 SYSERR_SUCCESSFUL_ACCESS internal static fixed bin(17,0) initial dcl 21-7 SYSERR_SYSTEM_ERROR internal static fixed bin(17,0) initial dcl 21-7 SYSERR_TERMINATE_PROCESS internal static fixed bin(17,0) initial dcl 21-7 SYSERR_UNSUCCESSFUL_ACCESS internal static fixed bin(17,0) initial dcl 21-7 S_ACCESS internal static bit(3) initial packed unaligned dcl 1-11 S_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 TERMINATE_PROCESS internal static fixed bin(17,0) initial dcl 21-7 UDSK_CARD_WORD internal static char(4) initial dcl 12-25 VALID_CARD_WORD_CHARACTERS internal static char(38) initial packed unaligned dcl 3-31 VOLMAP_ASYNC_IDLE internal static fixed bin(17,0) initial dcl 16-113 VOLMAP_ASYNC_READ internal static fixed bin(17,0) initial dcl 16-113 VOLMAP_ASYNC_WRITE internal static fixed bin(17,0) initial dcl 16-113 W_ACCESS internal static bit(3) initial packed unaligned dcl 1-11 W_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 ZERO_CARD_WORD internal static char(4) initial dcl 3-28 authentication_level_names internal static char(12) initial array packed unaligned dcl 18-21 based_rcp_id based structure level 1 dcl 19-26 bulkdevt internal static fixed bin(4,0) initial dcl 13-43 cardp automatic pointer dcl 3-3 channel_table based structure level 1 dcl 2-53 config_data_$ccu_model_names external static structure level 1 dcl 4-178 config_data_$chnl_cardx external static fixed bin(17,0) dcl 4-27 config_data_$clok_cardx external static fixed bin(17,0) dcl 4-29 config_data_$config_cards external static structure level 1 dcl 4-94 config_data_$console_model_names external static structure level 1 dcl 4-192 config_data_$cpu_cardx external static fixed bin(17,0) dcl 4-31 config_data_$fnp_cardx external static fixed bin(17,0) dcl 4-33 config_data_$intk_cardx external static fixed bin(17,0) dcl 4-35 config_data_$iom_cardx external static fixed bin(17,0) dcl 4-37 config_data_$ipc_fips_cardx external static fixed bin(17,0) dcl 4-45 config_data_$ipc_msp_model_names external static structure level 1 dcl 4-130 config_data_$ipc_mtp_model_names external static structure level 1 dcl 4-139 config_data_$mem_cardx external static fixed bin(17,0) dcl 4-39 config_data_$mpc_cardx external static fixed bin(17,0) dcl 4-49 config_data_$mpc_msp_cardx external static fixed bin(17,0) dcl 4-41 config_data_$mpc_msp_model_names external static structure level 1 dcl 4-104 config_data_$mpc_mtp_cardx external static fixed bin(17,0) dcl 4-43 config_data_$mpc_mtp_model_names external static structure level 1 dcl 4-113 config_data_$mpc_urp_cardx external static fixed bin(17,0) dcl 4-47 config_data_$mpc_urp_model_names external static structure level 1 dcl 4-122 config_data_$mpcs_cardx external static fixed bin(17,0) dcl 4-57 config_data_$mpcs_msp_cardx external static fixed bin(17,0) dcl 4-51 config_data_$mpcs_mtp_cardx external static fixed bin(17,0) dcl 4-53 config_data_$mpcs_urp_cardx external static fixed bin(17,0) dcl 4-55 config_data_$parm_cardx external static fixed bin(17,0) dcl 4-59 config_data_$part_cardx external static fixed bin(17,0) dcl 4-61 config_data_$printer_model_names external static structure level 1 dcl 4-164 config_data_$prph_cardx external static fixed bin(17,0) dcl 4-77 config_data_$prph_ccu_cardx external static fixed bin(17,0) dcl 4-71 config_data_$prph_dsk_cardx external static fixed bin(17,0) dcl 4-63 config_data_$prph_opc_cardx external static fixed bin(17,0) dcl 4-75 config_data_$prph_prt_cardx external static fixed bin(17,0) dcl 4-65 config_data_$prph_pun_cardx external static fixed bin(17,0) dcl 4-69 config_data_$prph_rdr_cardx external static fixed bin(17,0) dcl 4-67 config_data_$prph_tap_cardx external static fixed bin(17,0) dcl 4-73 config_data_$punch_model_names external static structure level 1 dcl 4-185 config_data_$reader_model_names external static structure level 1 dcl 4-171 config_data_$root_cardx external static fixed bin(17,0) dcl 4-79 config_data_$salv_cardx external static fixed bin(17,0) dcl 4-81 config_data_$schd_cardx external static fixed bin(17,0) dcl 4-83 config_data_$sst_cardx external static fixed bin(17,0) dcl 4-85 config_data_$stok_cardx external static fixed bin(17,0) dcl 4-87 config_data_$tbls_cardx external static fixed bin(17,0) dcl 4-89 config_data_$udsk_cardx external static fixed bin(17,0) dcl 4-91 config_deck based structure level 1 dcl 3-9 config_deck$ external static fixed bin(17,0) dcl 3-7 config_max_cards automatic fixed bin(17,0) dcl 3-5 config_n_cards automatic fixed bin(17,0) dcl 3-4 configp automatic pointer dcl 3-3 controller_table based structure level 1 dcl 2-71 cyl_per_dev internal static fixed bin(17,0) initial array dcl 13-102 cyl_per_sv internal static fixed bin(17,0) initial array dcl 13-105 dev_time internal static float bin(27) initial array dcl 13-139 device_names internal static char(4) initial array dcl 13-66 dsu181devt internal static fixed bin(4,0) initial dcl 13-43 dsu190devt internal static fixed bin(4,0) initial dcl 13-43 dsu191devt internal static fixed bin(4,0) initial dcl 13-43 fips3380devt internal static fixed bin(4,0) initial dcl 13-43 fips3381devt internal static fixed bin(4,0) initial dcl 13-43 fips_type_disk internal static bit(1) initial array packed unaligned dcl 13-72 first_alt_sect_num internal static fixed bin(24,0) initial array dcl 13-130 first_dev_number internal static fixed bin(17,0) initial array dcl 13-69 first_rec_num internal static fixed bin(17,0) initial array dcl 13-115 first_sect_num internal static fixed bin(24,0) initial array dcl 13-124 io_config_channel_table_ptr automatic pointer dcl 2-13 io_config_controller_table_ptr automatic pointer dcl 2-15 io_config_iom_table_ptr automatic pointer dcl 2-17 iom_table based structure level 1 dcl 2-87 last_alt_sect_num internal static fixed bin(24,0) initial array dcl 13-133 last_physical_sect_num internal static fixed bin(24,0) initial array dcl 13-136 last_rec_num internal static fixed bin(18,0) initial array dcl 13-118 last_sect_num internal static fixed bin(24,0) initial array dcl 13-127 last_sv_rec_num internal static fixed bin(18,0) initial array dcl 13-121 maxdevt internal static fixed bin(4,0) initial dcl 13-43 mpc_card_array based structure level 1 dcl 7-19 msu0400devt internal static fixed bin(4,0) initial dcl 13-43 msu0450devt internal static fixed bin(4,0) initial dcl 13-43 msu0451devt internal static fixed bin(4,0) initial dcl 13-43 msu0500devt internal static fixed bin(4,0) initial dcl 13-43 msu0501devt internal static fixed bin(4,0) initial dcl 13-43 needs_alt_part internal static bit(1) initial array packed unaligned dcl 13-81 number_of_sv internal static fixed bin(17,0) initial array dcl 13-93 prph_dsk_card_array based structure level 1 dcl 11-21 prph_tap_card_array based structure level 1 dcl 10-21 pvt$array external static fixed bin(17,0) dcl 16-18 pvt$max_n_entries external static fixed bin(17,0) dcl 16-19 rec_per_cyl internal static fixed bin(17,0) initial array dcl 13-108 rec_per_dev internal static fixed bin(21,0) initial array dcl 13-87 rec_per_sv internal static fixed bin(17,0) initial array dcl 13-90 rifp automatic pointer dcl 18-6 sect_per_cyl internal static fixed bin(17,0) initial array dcl 14-15 sect_per_rec internal static fixed bin(17,0) initial array dcl 14-21 sect_per_sv internal static fixed bin(24,0) initial array dcl 14-18 sect_per_track internal static fixed bin(17,0) initial array dcl 14-33 sect_per_vtoc internal static fixed bin(17,0) initial array dcl 14-26 shared_spindle internal static bit(1) initial array packed unaligned dcl 13-78 tables_length automatic fixed bin(19,0) dcl 2-20 tracks_per_cyl internal static fixed bin(17,0) initial array dcl 13-111 udsk_card_array based structure level 1 dcl 12-19 valid_sv_array internal static char(1) initial array packed unaligned dcl 13-99 valid_sv_string internal static char(3) initial packed unaligned dcl 13-96 vtoc_per_rec internal static fixed bin(17,0) initial array dcl 14-29 words_per_sect internal static fixed bin(17,0) initial array dcl 14-36 NAMES DECLARED BY EXPLICIT CONTEXT. DEVICE_DELETED 003513 constant entry internal dcl 619 ref 417 480 515 584 DTYPE 000000 constant label array(8) dcl 325 ref 323 DUPLICATE_DEVICE 003453 constant label dcl 598 ref 559 END_OF_CARDS 001125 constant label dcl 203 ref 198 INIT_DEVICE 003230 constant entry internal dcl 548 ref 337 344 347 414 476 540 INIT_DISKS 002546 constant entry internal dcl 426 ref 329 INIT_LOCK_INFO 003500 constant entry internal dcl 603 ref 178 256 INIT_MCA_ERROR 002030 constant label dcl 297 ref 217 INIT_SPECIAL 003203 constant entry internal dcl 528 ref 372 447 INIT_TAPE 002347 constant entry internal dcl 402 ref 388 INIT_TAPES 002160 constant entry internal dcl 356 ref 325 IS_FIPS_DEVICE 003576 constant entry internal dcl 636 ref 322 MAKE_RCPD 001710 constant label dcl 285 ref 167 169 MAKE_RCS 001760 constant label dcl 291 ref 249 251 MPC_WITH_OI 003757 constant entry internal dcl 684 ref 479 NO_NDRIVES 003016 constant label dcl 493 in procedure "INIT_DISKS" ref 459 NO_NDRIVES 002322 constant label dcl 396 in procedure "INIT_TAPES" ref 383 PROCESS_PRPH_CARD 002055 constant entry internal dcl 300 ref 200 220 PRPH_CARD_OK 002100 constant label dcl 315 ref 310 RECLASSIFY_RCPD 001734 constant label dcl 288 ref 171 RECLASSIFY_RCS 002004 constant label dcl 294 ref 253 is_fips 000010 constant label array(8) dcl 647 ref 645 process_udsk 003043 constant entry internal dcl 498 ref 483 rcp_init 000521 constant entry external dcl 26 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 4434 4512 4146 4444 Length 5372 4146 56 644 266 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME rcp_init 550 external procedure is an external procedure. PROCESS_PRPH_CARD internal procedure shares stack frame of external procedure rcp_init. INIT_TAPES internal procedure shares stack frame of external procedure rcp_init. INIT_TAPE internal procedure shares stack frame of external procedure rcp_init. INIT_DISKS internal procedure shares stack frame of external procedure rcp_init. process_udsk internal procedure shares stack frame of external procedure rcp_init. INIT_SPECIAL internal procedure shares stack frame of external procedure rcp_init. INIT_DEVICE internal procedure shares stack frame of external procedure rcp_init. INIT_LOCK_INFO internal procedure shares stack frame of external procedure rcp_init. DEVICE_DELETED internal procedure shares stack frame of external procedure rcp_init. IS_FIPS_DEVICE internal procedure shares stack frame of external procedure rcp_init. MPC_WITH_OI internal procedure shares stack frame of external procedure rcp_init. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME rcp_init 000100 drive_name rcp_init 000102 prph_mca_card rcp_init 000122 last_ptrs rcp_init 000142 qualifiers rcp_init 000146 device_len rcp_init 000150 device_name rcp_init 000152 dtypex rcp_init 000153 drive_num rcp_init 000154 ecode rcp_init 000155 i rcp_init 000156 j rcp_init 000157 model rcp_init 000160 modelx rcp_init 000161 num_channels rcp_init 000162 num_drives rcp_init 000163 num_qualifiers rcp_init 000164 pairx rcp_init 000165 prph_name rcp_init 000166 pvtx rcp_init 000167 rcs_size rcp_init 000170 reservable_flag rcp_init 000171 save_dtypex rcp_init 000172 starting_time rcp_init 000174 fips rcp_init 000176 io_config_data_ptr rcp_init 000200 io_config_device_table_ptr rcp_init 000202 iom_cardp rcp_init 000204 prph_cardp rcp_init 000206 mpc_cardp rcp_init 000210 prph_opc_cardp rcp_init 000212 prph_prt_cardp rcp_init 000214 prph_tap_cardp rcp_init 000216 prph_dsk_cardp rcp_init 000220 udsk_cardp rcp_init 000222 seek_command rcp_init 000224 pvtp rcp_init 000226 pvt_arrayp rcp_init 000230 pvtep rcp_init 000232 rcpd_ptr rcp_init 000234 dtype_ptr rcp_init 000236 device_ptr rcp_init 000240 volume_ptr rcp_init 000242 lock_info_ptr rcp_init 000244 rcs_ptr rcp_init 000246 rcse_ptr rcp_init 000300 tape_found INIT_TAPE 000310 i INIT_DISKS 000320 ux process_udsk 000354 found DEVICE_DELETED 000355 deleted DEVICE_DELETED 000356 i DEVICE_DELETED 000366 i IS_FIPS_DEVICE 000367 groupx IS_FIPS_DEVICE 000400 i MPC_WITH_OI 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 divide_fx3 clock_mac THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. admin_gate_$ioi_delete_device config_$find config_$find_2 get_max_authorization_ hcs_$append_branchx hcs_$initiate hcs_$terminate_noname hphcs_$syserr hphcs_$syserr_error_code initializer_gate_$ss_io_reconfigure mca_init_ rcp_tape_survey_ resource_info_$limits system_privilege_$reclassify_sys_seg THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. config_data_$disk_drive_model_names config_data_$tape_drive_model_names io_config_data$ pvt$ sys_info$max_seg_size LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 26 000520 13 84 000526 159 000615 160 000617 163 000621 164 000623 166 000630 167 000705 168 000707 169 000755 170 000761 171 001017 173 001021 177 001023 178 001025 180 001026 181 001031 183 001033 184 001041 185 001045 186 001053 187 001061 188 001072 189 001074 190 001101 194 001103 195 001105 196 001106 198 001117 200 001123 201 001124 203 001125 207 001127 208 001131 209 001132 210 001134 212 001136 213 001147 214 001154 216 001165 217 001176 218 001200 219 001203 220 001213 222 001214 223 001225 225 001226 226 001233 227 001237 229 001243 234 001245 235 001255 236 001276 237 001301 238 001304 239 001307 240 001311 242 001313 248 001345 249 001426 250 001430 251 001501 252 001505 253 001546 255 001550 256 001552 258 001553 259 001561 260 001566 261 001571 262 001577 264 001601 265 001605 266 001610 268 001613 269 001616 270 001624 272 001630 273 001633 274 001642 275 001646 276 001652 277 001656 278 001660 280 001664 281 001676 283 001707 285 001710 288 001734 291 001760 294 002004 297 002030 861 002054 300 002055 308 002056 309 002062 310 002067 312 002074 313 002076 315 002100 317 002105 318 002112 319 002113 320 002115 321 002117 322 002122 323 002124 325 002126 327 002127 329 002130 331 002131 333 002132 335 002134 336 002141 337 002143 338 002144 340 002145 342 002147 343 002152 344 002154 345 002155 347 002156 352 002157 356 002160 363 002161 365 002163 366 002221 368 002225 370 002235 372 002241 374 002242 376 002246 378 002254 379 002255 380 002263 381 002270 382 002272 383 002275 385 002300 386 002307 387 002310 388 002312 389 002313 391 002315 392 002317 394 002321 396 002322 400 002346 402 002347 410 002350 411 002357 413 002363 414 002365 415 002366 416 002430 417 002462 418 002475 419 002524 420 002542 422 002545 426 002546 436 002547 438 002551 439 002553 441 002571 442 002576 443 002602 445 002612 446 002616 447 002617 450 002620 452 002626 454 002627 455 002635 456 002642 457 002644 459 002647 462 002652 463 002653 465 002663 466 002667 467 002671 469 002673 471 002675 472 002677 473 002707 474 002710 475 002717 476 002723 477 002724 478 002737 479 002744 480 002761 482 002773 483 002776 484 003003 486 003005 487 003010 488 003011 489 003013 491 003015 493 003016 496 003042 498 003043 503 003044 504 003051 506 003066 507 003077 508 003103 509 003114 510 003117 512 003143 514 003144 515 003161 517 003173 518 003175 520 003176 522 003200 523 003202 528 003203 535 003204 536 003206 537 003210 538 003214 540 003215 542 003216 543 003220 544 003224 546 003227 548 003230 557 003231 558 003241 559 003254 560 003260 562 003262 563 003264 565 003277 567 003305 569 003312 570 003315 572 003316 573 003320 575 003325 576 003330 577 003333 578 003335 579 003337 580 003341 581 003347 582 003353 583 003355 584 003360 585 003371 586 003375 587 003377 588 003401 589 003406 590 003413 591 003416 592 003420 594 003423 596 003451 598 003453 601 003477 603 003500 608 003501 610 003502 613 003505 615 003510 617 003512 619 003513 624 003524 627 003526 628 003541 629 003556 631 003560 633 003570 636 003576 645 003600 647 003602 649 003604 650 003611 651 003615 652 003616 653 003627 655 003646 656 003650 658 003656 659 003660 661 003666 663 003670 664 003675 665 003701 666 003702 667 003713 669 003732 670 003734 672 003742 673 003744 675 003752 684 003757 695 003761 696 003763 697 003764 698 003775 699 004007 700 004022 702 004036 704 004046 706 004053 707 004055 708 004056 ----------------------------------------------------------- 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