COMPILATION LISTING OF SEGMENT accept_rpv 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 0949.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* *********************************************************** */ 8 accept_rpv: 9 procedure; 10 11 /****^ HISTORY COMMENTS: 12* 1) change(86-05-13,GJohnson), approve(86-05-13,MCR7387), 13* audit(86-05-13,Martinson), install(86-05-14,MR12.0-1056): 14* Correct error message documentation. 15* 2) change(86-05-19,Lippard), approve(85-12-02,MCR7309), 16* audit(86-05-21,Coppola), install(86-07-17,MR12.0-1097): 17* Modified by Jim Lippard to base determination of whether this volume is a 18* root PV on the new root_lv flag in the pvt rather than on hc_part_used, 19* since root PVs need not have hardcore partitions now. 20* 3) change(86-05-20,Fawcett), approve(86-04-11,MCR7383), 21* audit(86-05-21,Coppola), install(86-07-17,MR12.0-1097): 22* Add subvolume support. 23* 4) change(87-01-08,Farley), approve(87-01-12,MECR0008), 24* audit(87-01-09,GDixon), install(87-01-12,MR12.0-1268): 25* Changed to reset pvt$rpvs_requested after successfully accepting all the 26* rlv. This will then allow system_startup_ to do a salvage_dirs when 27* required. 28* 5) change(87-01-14,Farley), approve(87-01-14,MCR7608), 29* audit(87-01-14,GDixon), install(87-01-14,MR12.0-1279): 30* Offical installation of above corrections. 31* END HISTORY COMMENTS */ 32 /* 33* This procedure accepts the RPV during system initialization. 34* 35* Stolen from accept_fs_disk August 1980 by C. Hornig 36* Modified March 1982, J. Bongiovanni, to eliminate use of FSDCT 37* Modified '82 for english error codes. 38* Modified 1985-03-28, BIM: pre-accept non-partition volumes. 39**/ 40 41 dcl pvt$n_entries fixed bin external; 42 dcl pvt$root_lvid bit (36) aligned external; 43 dcl pvt$root_pvtx fixed bin external; 44 dcl pvt$rlv_needs_salv bit (1) aligned external; 45 dcl pvt$rpv_needs_salv bit (1) aligned external; 46 dcl pvt$rpvs_requested bit (1) aligned external; 47 dcl salv_data$rpv bit (1) aligned external; 48 49 dcl accept_fs_disk entry (fixed bin, fixed bin (35)); 50 dcl config_$find entry (char (4) aligned, ptr); 51 dcl config_$find_parm entry (char (4) aligned, ptr); 52 dcl make_sdw$reset_hcp entry; 53 dcl read_disk entry (fixed bin, fixed bin, ptr, fixed bin (35)); 54 dcl salvager$volume_salvage entry (fixed bin, bit (36) aligned, fixed bin (35)); 55 dcl (syserr, syserr$error_code) entry options (variable); 56 dcl wired_shutdown$enable entry; 57 58 dcl all_root_vols_accepted bit (1); 59 dcl code fixed bin (35); 60 dcl i fixed bin; 61 dcl pvtx fixed bin; 62 dcl severity fixed bin; 63 dcl n_hc_volmap_pages fixed bin; 64 dcl salv_rlv_request bit (1); 65 dcl 1 buffer aligned like label; 66 67 dcl (addr, hbound, null, string) builtin; 68 69 labelp = addr (buffer); 70 pvt_arrayp = addr (pvt$array); 71 72 call config_$find_parm ("hcpt", intk_cardp); 73 if intk_cardp = null () 74 then severity = LOG; 75 else severity = ANNOUNCE; 76 77 /* Check all the claimed "RLV" volumes for brotherhood of the RPV. */ 78 79 do pvtx = 1 to pvt$n_entries; /* Scan the PVT */ 80 pvtep = addr (pvt_array (pvtx)); 81 if pvte.hc_part_used & ^pvte.rpv then do; 82 call read_disk (pvtx, LABEL_ADDR, labelp, code); 83 if code ^= 0 84 then call syserr$error_code (CRASH, code, "accept_rpv: Cannot read label of ^a.", name (pvte)); 85 86 if label.lvid ^= pvt$root_lvid 87 then call syserr (CRASH, "accept_rpv: pv ^a lv ^a (^a) is not part of root.", label.pv_name, 88 label.lv_name, name (pvte)); 89 end; 90 end; 91 92 /* With this in hand, deal with the RPV personally. */ 93 94 pvt$rpvs_requested = "0"b; 95 salv_rlv_request = "0"b; 96 intk_cardp = null (); /* search config deck */ 97 call config_$find ("intk", intk_cardp); /* for the INTK card */ 98 if intk_cardp ^= null () 99 then do i = 1 to hbound (intk_card.parms, 1); /* search the card for RPVS and RLVS */ 100 if intk_card.parms (i) = "rpvs" then do; 101 intk_card.parms (i) = ""; /* clear it out */ 102 pvt$rpvs_requested = "1"b; 103 end; 104 else if intk_card.parms (i) = "rlvs" then do; /* Salvage all PVs in RLV */ 105 intk_card.parms (i) = ""; 106 pvt$rpvs_requested = "1"b; 107 salv_rlv_request = "1"b; 108 end; 109 end; 110 111 pvtx = pvt$root_pvtx; /* Init_pvt left this here */ 112 pvtep = addr (pvt_array (pvtx)); 113 114 salv_data$rpv = "1"b; 115 116 if pvt$rpv_needs_salv | pvt$rpvs_requested 117 then pvt$rlv_needs_salv = "1"b; /* Salvage critical directories */ 118 119 if pvt$rpvs_requested /* Explicit salvage RPV */ 120 then call salvager$volume_salvage (pvtx, ""b, code); 121 122 do pvtx = 1 to pvt$n_entries; 123 pvtep = addr (pvt_array (pvtx)); 124 if pvte.hc_part_used 125 then do; 126 n_hc_volmap_pages = pvte.volmap_stock_ptr -> record_stock.n_volmap_pages; 127 call syserr (severity, "accept_rpv: HC part on ^a used ^d out of ^d records.", name (pvte), 128 (pvte.totrec - pvte.nleft + n_hc_volmap_pages), pvte.totrec + n_hc_volmap_pages); 129 end; 130 end; 131 132 call accept_fs_disk (pvt$root_pvtx, code); /* Do the standard trip on the RPV */ 133 if code ^= 0 then call syserr$error_code (CRASH, code, "accept_rpv: Error accepting RPV"); 134 135 call wired_shutdown$enable; /* Now if we crash clean it up */ 136 137 fgbxp = addr (flagbox$); /* Set bit in the flagbox. */ 138 fgbx.ssenb = "1"b; 139 140 /* Flush the pvt brother threads that we had been using for HC part chain. */ 141 /* They tend to bother logical_volume_manager. */ 142 143 call make_sdw$reset_hcp; 144 145 do i = 1 to pvt$n_entries; 146 pvtep = addr (pvt_array (i)); 147 pvte.brother_pvtx = 0; 148 end; 149 150 /* Now try to get all those "root volumes" accepted. */ 151 152 all_root_vols_accepted = "1"b; /* assume success */ 153 do pvtx = 1 to pvt$n_entries; 154 pvtep = addr (pvt_array (pvtx)); 155 if pvte.root_lv & ^pvte.rpv then do; 156 if salv_rlv_request 157 then call salvager$volume_salvage (pvtx, ""b, code); 158 call accept_fs_disk (pvtx, code); 159 if code ^= 0 then all_root_vols_accepted = "0"b; 160 /* rlv incomplete */ 161 end; 162 end; 163 164 salv_data$rpv = "0"b; 165 166 if all_root_vols_accepted then pvt$rpvs_requested = "0"b; /* nolonger needed, if rlv accepted */ 167 168 return; 169 170 /* * * * * * * * * NAME * * * * * * * * * */ 171 172 name: 173 procedure (Pvte) returns (char (8) aligned); 174 175 dcl 1 Pvte aligned like pvte parameter; 176 dcl 1 dname aligned, 177 2 dev char (4) unaligned, 178 2 u char (1) unaligned, 179 2 num pic "99" unaligned, 180 2 sv char (1) unaligned; 181 182 183 dname.dev = Pvte.devname; 184 dname.u = "_"; 185 dname.num = Pvte.logical_area_number; 186 if Pvte.is_sv then dname.sv = valid_sv_array (Pvte.sv_num); 187 else dname.sv = ""; 188 return (string (dname)); 189 end name; 190 1 1 /* BEGIN INCLUDE FILE...disk_pack.incl.pl1 Last Modified January 1982 for new volume map */ 1 2 1 3 1 4 1 5 1 6 /****^ HISTORY COMMENTS: 1 7* 1) change(86-01-14,Fawcett), approve(86-05-13,MCR7383), 1 8* audit(86-05-14,LJAdams), install(86-07-18,MR12.0-1098): 1 9* Add vars PAGE_SIZE and VTOCE_SIZE, Also change the SECTORS_PER_VTOCE and 1 10* VTOCES_PER_RECORD form fixed bin constants to arrays of fixed bin 1 11* constants indexed by device type as defined in fs_dev_types.incl.pl1. 1 12* This was done for support of the 3380, and 3390 devices for 512_WORD_IO. 1 13* 2) change(86-10-21,Fawcett), approve(86-10-21,MCR7533), 1 14* audit(86-10-21,Farley), install(86-10-22,MR12.0-1193): 1 15* Change PAGE_SIZE and VTOCE_SIZE from automatic to static constants. 1 16* END HISTORY COMMENTS */ 1 17 1 18 1 19 /* 1 20* All disk packs have the standard layout described below: 1 21* 1 22* Record 0 : contains the label, as declared in fs_vol_label.incl.pl1. 1 23* Record 1 to 3 : contains the volume map, as declared in vol_map.incl.pl1 1 24* Record 4 to 5 : contains the dumper bit map, as declared in dumper_bit_map.incl.pl1 1 25* Record 6 : contains the vtoc map, as declared in vtoc_map.incl.pl1 1 26* Record 7 : formerly contained bad track list; no longer used. 1 27* Records 8 to n-1 : contain the array of vtoc entries; ( n is specified in the label) 1 28* each record contains 5 192-word vtoc entries. The last 64 words are unused. 1 29* Records n to N-1 : contain the pages of the Multics segments. ( N is specified in the label) 1 30* 1 31* Sundry partitions may exist within the region n to N-1, withdrawn or not as befits the meaning 1 32* of the particular partition. 1 33* 1 34* 1 35* 1 36* A conceptual declaration for a disk pack could be: 1 37* 1 38* dcl 1 disk_pack, 1 39* 2 label_record (0 : 0) bit(36 * 1024), 1 40* 2 volume_map_record (1 : 3) bit(36 * 1024), 1 41* 2 dumper_bit_map_record (4 : 5) bit(36 * 1024), 1 42* 2 vtoc_map_record (6 : 6) bit(36 * 1024), 1 43* 2 spare_record (7 : 7) bit(36 * 1024), 1 44* 2 vtoc_array_records (8 : n-1), 1 45* 3 vtoc_entry ( 5 ) bit(36 * 192), 1 46* 3 unused bit(36 * 64), 1 47* 2 Multics_pages_records (n : N-1) bit(36 * 1024); 1 48* 1 49* 1 50* 1 51* 1 52**/ 1 53 1 54 dcl (LABEL_ADDR init (0), /* Address of Volume Label */ 1 55 VOLMAP_ADDR init (1), /* Address of first Volume Map record */ 1 56 DUMPER_BIT_MAP_ADDR init (4), /* For initial release compaitiblity */ 1 57 VTOC_MAP_ADDR init (6), /* Address of first VTOC Map Record */ 1 58 VTOC_ORIGIN init (8), /* Address of first record of VTOC */ 1 59 DEFAULT_HCPART_SIZE init (1000), /* Size of Hardcore Partition */ 1 60 MAX_VTOCE_PER_PACK init (31774)) /* Limited by size of VTOC Map */ 1 61 fixed bin (17) int static options (constant); 1 62 1 63 /* SECTORS_PER_VTOCE & VTOCES_PER_RECORD are indexed via device type as */ 1 64 /* defined by fs_dev_types and extracted form the disk_table entry (dte) */ 1 65 /* or the physical volume table entry (pvte) device type. */ 1 66 1 67 dcl PAGE_SIZE fixed bin (17) init (1024) static options (constant); 1 68 dcl VTOCE_SIZE fixed bin (17) init (192) static options (constant); 1 69 1 70 dcl SECTORS_PER_VTOCE (9) fixed bin static options (constant) init 1 71 (0, 3, 3, 3, 3, 3, 3, 1, 1); 1 72 dcl VTOCES_PER_RECORD (9) fixed bin static options (constant) init 1 73 (0, 5, 5, 5, 5, 5, 5, 2, 2); 1 74 dcl SECTORS_PER_RECORD (9) fixed bin static options (constant) init 1 75 (0, 16, 16, 16, 16, 16, 16, 2, 2); 1 76 1 77 /* END INCLUDE FILE...disk_pack.incl.pl1 */ 191 2 1 /* BEGIN INCLUDE FILE ... flagbox.incl.pl1 */ 2 2 2 3 2 4 /****^ HISTORY COMMENTS: 2 5* 1) change(87-02-26,Farley), approve(87-04-15,MCR7661), 2 6* audit(87-04-21,Fawcett), install(87-04-28,MR12.1-1028): 2 7* Added io_reconfig flag to inhibit BCE from attempting an emergency 2 8* shutdown when the data in memory could be corrupted. 2 9* END HISTORY COMMENTS */ 2 10 2 11 2 12 /* last modified 5/3/77 by Noel I. Morris */ 2 13 /* Modified 8/79 by R.J.C. Kissel to add FNP blast message. */ 2 14 /* Modified 7/82 BIM for recognizable sentinel field */ 2 15 /* Modified for bootload Multics flagbox starting in 8/83 by Keith Loepere. */ 2 16 2 17 /* The contents of this segment are data shared by Multics and bce. 2 18* This entity occupies the locations within the toehold starting at 40o 2 19* (not counting the toehold_used spacer at the beginning). */ 2 20 2 21 dcl flagbox$ ext; 2 22 dcl fgbxp ptr; 2 23 2 24 dcl 1 fgbx based (fgbxp) aligned, 2 25 2 toehold_used (32) bit (36) aligned, /* flagbox seg now mapped onto all of first page of toehold - 2 26* This is what was unused before. */ 2 27 2 flags (36) bit (1) unal, /* communications switches */ 2 28 2 slt_segno bit (18), /* segment # of the SLT */ 2 29 2 pad1 fixed bin, 2 30 2 rtb, /* return to bce info */ 2 31 (3 ssenb bit (1), /* "1"b if storage system enabled */ 2 32 3 call_bce bit (1), /* "1"b if bce called by operator */ 2 33 3 shut bit (1), /* "1"b if bce called after shutdown */ 2 34 3 mess bit (1), /* "1"b if message has been provided */ 2 35 3 alert bit (1), /* "1"b if audible alarm to be sounded */ 2 36 3 breakpoint bit (1), /* "1"b is breakpoint caused call to bce */ 2 37 3 manual_crash bit (1), /* either manual entry or execute fault */ 2 38 3 io_reconfig bit (1), /* "1"b if I/O reconfiguration */ 2 39 /* could cause memory corruption */ 2 40 3 pad bit (21), 2 41 3 bce_entry fixed bin (6) uns) unal, /* type of entry into bce 2 42* 00o => Multics entry 2 43* 20o => manual entry 2 44* 40o => esd entry */ 2 45 2 sentinel char (32) aligned, /* set by bce (for now) */ 2 46 2 sst_sdw bit (72), /* set by init_sst */ 2 47 2 hc_dbr bit (72), /* set by start_cpu, idle DBR */ 2 48 2 message char (64), /* message for return to bce */ 2 49 2 return_to_bce_command char (128) unal; /* command to run upon crash/shutdown */ 2 50 2 51 declare FLAGBOX_SENTINEL char (32) init ("Flagbox & Toehold Valid") int static options (constant); 2 52 2 53 /* END INCLUDE FILE ... flagbox.incl.pl1 */ 192 3 1 /* BEGIN INCLUDE FILE ... fs_vol_label.incl.pl1 .. last modified January 1982 for new volume map format */ 3 2 3 3 /****^ HISTORY COMMENTS: 3 4* 1) change(86-04-10,Fawcett), approve(86-04-10,MCR7383), 3 5* audit(86-05-12,Coppola), install(86-07-18,MR12.0-1098): 3 6* Add the subvolume info. 3 7* 2) change(88-05-27,GWMay), approve(88-05-27,MCR7883), 3 8* audit(88-06-14,Beattie), install(88-07-19,MR12.2-1061): 3 9* Added inconsistent_dbm bit used to determine consistency of volume 3 10* dumper bit maps. 3 11* END HISTORY COMMENTS */ 3 12 3 13 /* This is the label at fixed location of each physical volume. Length 1 page */ 3 14 /* Note: fsout_vol clears pad fields before writing the label */ 3 15 3 16 dcl labelp ptr; 3 17 3 18 dcl 1 label based (labelp) aligned, 3 19 3 20 /* First comes data not used by Multics.. for compatibility with GCOS */ 3 21 3 22 2 gcos (5*64) fixed bin, 3 23 3 24 /* Now we have the Multics label */ 3 25 3 26 2 Multics char (32) init ("Multics Storage System Volume"), /* Identifier */ 3 27 2 version fixed bin, /* Version 1 */ 3 28 2 mfg_serial char (32), /* Manufacturer's serial number */ 3 29 2 pv_name char (32), /* Physical volume name. */ 3 30 2 lv_name char (32), /* Name of logical volume for pack */ 3 31 2 pvid bit (36), /* Unique ID of this pack */ 3 32 2 lvid bit (36), /* unique ID of its logical vol */ 3 33 2 root_pvid bit (36), /* unique ID of the pack containing the root. everybody must agree. */ 3 34 2 time_registered fixed bin (71), /* time imported to system */ 3 35 2 n_pv_in_lv fixed bin, /* # phys volumes in logical */ 3 36 2 vol_size fixed bin, /* total size of volume, in records */ 3 37 2 vtoc_size fixed bin, /* number of recs in fixed area + vtoc */ 3 38 2 not_used bit (1) unal, /* used to be multiple_class */ 3 39 2 private bit (1) unal, /* TRUE if was registered as private */ 3 40 2 inconsistent_dbm bit (1) unal, /* TRUE if ESD-less crash */ 3 41 2 flagpad bit (33) unal, 3 42 2 max_access_class bit (72), /* Maximum access class for stuff on volume */ 3 43 2 min_access_class bit (72), /* Minimum access class for stuff on volume */ 3 44 2 password bit (72), /* not yet used */ 3 45 2 number_of_sv fixed bin, /* if = 0 not a subvolume else the number of svs */ 3 46 2 this_sv fixed bin, /* what subvolume number it is */ 3 47 2 sub_vol_name char (1), /* what subvolume name (a b c d) it is */ 3 48 2 pad1 (13) fixed bin, 3 49 2 time_mounted fixed bin (71), /* time mounted */ 3 50 2 time_map_updated fixed bin (71), /* time vmap known good */ 3 51 3 52 /* The next two words overlay time_unmounted on pre-MR10 systems. This 3 53* forces a salvage if an MR10 pack is mounted on an earlier system. 3 54* */ 3 55 2 volmap_version fixed bin, /* version of volume map (currently 1) */ 3 56 2 pad6 fixed bin, 3 57 3 58 2 time_salvaged fixed bin (71), /* time salvaged */ 3 59 2 time_of_boot fixed bin (71), /* time of last bootload */ 3 60 2 time_unmounted fixed bin (71), /* time unmounted cleanly */ 3 61 2 last_pvtx fixed bin, /* pvtx in that PDMAP */ 3 62 2 pad1a (2) fixed bin, 3 63 2 err_hist_size fixed bin, /* size of pack error history */ 3 64 2 time_last_dmp (3) fixed bin (71), /* time last completed dump pass started */ 3 65 2 time_last_reloaded fixed bin (71), /* what it says */ 3 66 2 pad2 (40) fixed bin, 3 67 2 root, 3 68 3 here bit (1), /* TRUE if the root is on this pack */ 3 69 3 root_vtocx fixed bin (35), /* VTOC index of root, if it is here */ 3 70 3 shutdown_state fixed bin, /* Status of hierarchy */ 3 71 3 pad7 bit (1) aligned, 3 72 3 disk_table_vtocx fixed bin, /* VTOC index of disk table on RPV */ 3 73 3 disk_table_uid bit (36) aligned, /* UID of disk table */ 3 74 3 esd_state fixed bin, /* State of esd */ 3 75 2 volmap_record fixed bin, /* Begin record of volume map */ 3 76 2 size_of_volmap fixed bin, /* Number of records in volume map */ 3 77 2 vtoc_map_record fixed bin, /* Begin record of VTOC map */ 3 78 2 size_of_vtoc_map fixed bin, /* Number of records in VTOC map */ 3 79 2 volmap_unit_size fixed bin, /* Number of words per volume map section */ 3 80 2 vtoc_origin_record fixed bin, /* Begin record of VTOC */ 3 81 2 dumper_bit_map_record fixed bin, /* Begin record of dumper bit-map */ 3 82 2 vol_trouble_count fixed bin, /* Count of inconsistencies found since salvage */ 3 83 2 pad3 (52) fixed bin, 3 84 2 nparts fixed bin, /* Number of special partitions on pack */ 3 85 2 parts (47), 3 86 3 part char (4), /* Name of partition */ 3 87 3 frec fixed bin, /* First record */ 3 88 3 nrec fixed bin, /* Number of records */ 3 89 3 pad5 fixed bin, 3 90 2 pad4 (5*64) fixed bin; 3 91 3 92 dcl Multics_ID_String char (32) init ("Multics Storage System Volume") static; 3 93 3 94 /* END INCLUDE FILE fs_vol_label.incl.pl1 */ 193 4 1 /* Begin include file ...... fs_dev_types.incl.pl1 */ 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 support for FIPS 4 7* 3380. 4 8* 2) change(86-04-21,Fawcett), approve(86-04-21,MCR7383), 4 9* audit(86-05-15,Coppola), install(86-07-18,MR12.0-1098): 4 10* Add the support for subvolumes for the MSU3380 and MSU3390. 4 11* 3) change(86-10-02,Fawcett), approve(86-10-02,PBF7383), 4 12* audit(86-10-23,Farley), install(86-10-28,MR12.0-1200): 4 13* Changed 3390 to 3381, "d338" to "3380" & "d339" to "3381". 4 14* END HISTORY COMMENTS */ 4 15 4 16 /* Modified 5/19/76 by N. I. Morris */ 4 17 /* Modified 12/27/78 by Michael R. Jordan to correct MSS0500 information */ 4 18 /* Modified 4/79 by R.J.C. Kissel to add msu0501 information. */ 4 19 /* Modified '82 by BIM for needs_alt_part */ 4 20 /* Modified 4/84 by Chris Jones for FIPS disks */ 4 21 /* Modified 12/84 by Paul Farley for FIPS disks formatted for 512wd sectors */ 4 22 /* Modified 1/85 by Paul Farley to decrease the size of the 3380, until the 4 23* volmap and record stock can be expanded. */ 4 24 4 25 /* 4 26******************************************************************************** 4 27** * 4 28** WARNING: * 4 29** * 4 30** There exists fs_dev_types.incl.alm that must me updated when a new device * 4 31** type is added. * 4 32** * 4 33** There are other include files that contain arrays indexed by the device * 4 34** index obtained by references to MODELX or MODELN in this include file. * 4 35** These must be modified when a new device type is added: * 4 36** disk_pack.incl.pl1 * 4 37** fs_dev_types_sector.incl.pl1 (included in this include) * 4 38** * 4 39******************************************************************************** 4 40**/ 4 41 4 42 4 43 dcl (maxdevt init (9), /* maximum legal devt */ 4 44 bulkdevt init (1), /* bulk store devt */ 4 45 msu0500devt init (2), /* MSU0500 device type */ 4 46 msu0451devt init (3), /* MSU0451 device type */ 4 47 msu0450devt init (3), /* MSU0450 device type */ 4 48 msu0400devt init (4), /* MSU0400 device type */ 4 49 dsu191devt init (4), /* DSU191 device type */ 4 50 dsu190devt init (5), /* DSU190 device type */ 4 51 dsu181devt init (6), /* DSU181 device type */ 4 52 msu0501devt init (7), /* MSU0501 device type */ 4 53 fips3380devt init (8), /* 3380D FIPS device type */ 4 54 fips3381devt init (9) /* 3380E FIPS device type */ 4 55 ) fixed bin (4) static options (constant); 4 56 4 57 dcl MODEL (12) fixed bin static options (constant) init /* Known device model numbers */ 4 58 (0, 500, 451, 450, 400, 402, 191, 190, 181, 501, 3380, 3381); 4 59 4 60 dcl MODELX (12) fixed bin static options (constant) init /* translation from model number to device type */ 4 61 (1, 2, 3, 3, 4, 4, 4, 5, 6, 7, 8, 9); 4 62 4 63 dcl MODELN (9) fixed bin static options (constant) init /* translation from device type to model number */ 4 64 (0, 500, 451, 400, 190, 181, 501, 3380, 3381); 4 65 4 66 dcl device_names (9) char (4) aligned static options (constant) init /* device names indexed by device type */ 4 67 ("bulk", "d500", "d451", "d400", "d190", "d181", "d501", "3380", "3381"); 4 68 4 69 dcl first_dev_number (9) fixed bin (17) static options (constant) init /* First valid device_number */ 4 70 (1, 1, 1, 1, 1, 1, 1, 0, 0); 4 71 4 72 dcl fips_type_disk (9) bit (1) unal static options (constant) init /* ON => FIPS disk */ 4 73 ("0"b,"0"b,"0"b,"0"b,"0"b,"0"b,"0"b,"1"b,"1"b); 4 74 4 75 dcl media_removable (9) bit (1) static options (constant) init /* ON => demountable pack on device */ 4 76 ("0"b, "0"b, "1"b, "1"b, "1"b, "1"b, "0"b, "0"b, "0"b); 4 77 4 78 dcl shared_spindle (9) bit (1) static options (constant) init /* ON => 2 devices per spindle */ 4 79 ("0"b, "1"b, "0"b, "0"b, "0"b, "0"b, "1"b, "0"b, "0"b); 4 80 4 81 dcl needs_alt_part (9) bit (1) static options (constant) init /* ON => needs alternate partition to run alternate tracks */ 4 82 ("0"b, "0"b, "1"b, "1"b, "1"b, "1"b, "0"b, "0"b, "0"b); 4 83 4 84 dcl seek_command (9) bit (6) init /* Seek command: 00 => N/A, 30 => Seek_512, 34 => seek_64 */ 4 85 ("00"b3,"34"b3,"34"b3,"34"b3,"34"b3,"34"b3,"34"b3,"30"b3, "30"b3); 4 86 4 87 dcl rec_per_dev (9) fixed bin (21) static options (constant) init /* table of # of records on each device */ 4 88 (0, 38258, 38258, 19270, 14760, 4444, 67200, 112395, 224790); 4 89 4 90 dcl rec_per_sv (9) fixed bin static options (constant) init /* table of # of records on each subvol */ 4 91 (0, 38258, 38258, 19270, 14760, 4444, 67200, 56134, 74930); 4 92 4 93 dcl number_of_sv (9) fixed bin static options (constant) init /* table of subvolumes */ 4 94 (0, 0, 0, 0, 0, 0, 0, 2, 3); 4 95 4 96 dcl valid_sv_string char (3) static options (constant) init /* string of valid subvolume names */ 4 97 ("abc"); 4 98 4 99 dcl valid_sv_array (0:2) char (1) static options (constant) /* array of valid subvolume names */ 4 100 init ("a","b","c"); 4 101 4 102 dcl cyl_per_dev (9) fixed bin static options (constant) init /* table of # of cylinders on each device */ 4 103 (0, 814, 814, 410, 410, 202, 840, 885, 1770); 4 104 4 105 dcl cyl_per_sv (9) fixed bin static options (constant) init /* table of # of cylinders on each subvolume */ 4 106 (0, 814, 814, 410, 410, 202, 840, 442, 590); 4 107 4 108 dcl rec_per_cyl (9) fixed bin static options (constant) init /* table of # of records per cylinder on each device */ 4 109 (0, 47, 47, 47, 36, 22, 80, 127, 127); 4 110 4 111 dcl tracks_per_cyl (9) fixed bin static options (constant) init /* table of # of tracks per cylinder on each device */ 4 112 (0, 19, 19, 19, 19, 20, 20, 15, 15); 4 113 4 114 4 115 dcl first_rec_num (9) fixed bin static options (constant) init /* table of # of first record on each device */ 4 116 (0, 0, 0, 0, 0, 0, 0, 0, 0); 4 117 4 118 dcl last_rec_num (9) fixed bin (18) static options (constant) init /* table of # of last record on each device */ 4 119 (0, 38257, 38116, 19128, 14651, 4399, 67199, 112394, 224789); 4 120 4 121 dcl last_sv_rec_num (9) fixed bin (18) static options (constant) init /* table of # of last record on each subvolume */ 4 122 (0, 38257, 38116, 19128, 14651, 4399, 67199, 56133, 74929); 4 123 4 124 dcl first_sect_num (9) fixed bin (24) static options (constant) init /* table of # of first sector for each device */ 4 125 (0, 0, 0, 0, 0, 0, 0, 0, 0); 4 126 4 127 dcl last_sect_num (9) fixed bin (24) static options (constant) init /* table of # last sector number for each device */ 4 128 (0, 618639, 616359, 309319, 239722, 71999, 1075199, 225674, 451349); 4 129 4 130 dcl first_alt_sect_num (9) fixed bin (24) static options (constant) init /* table of # of first sector of alt partition */ 4 131 (0, 638400, 616360, 309320, 239723, 72000, 1075200, 225675, 451350); 4 132 4 133 dcl last_alt_sect_num (9) fixed bin (24) static options (constant) init /* table of # of last sector of alt partition */ 4 134 (0, 639919, 618639, 311599, 241489, 72719, 1077759, 225930, 451605); 4 135 4 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) */ 4 137 (0, 639919, 619399, 312359, 242249, 72359, 1077759, 225674, 451859); 4 138 4 139 dcl dev_time (9) float bin (27) static options (constant) init /* table of average access times for each device */ 4 140 (384e0, 33187e0, 33187e0, 34722e0, 46935e0, 52631e0, 33187e0, 26260e0, 26260e0); 4 141 5 1 /* Begin fs_dev_types_sector.incl.pl1 */ 5 2 5 3 5 4 /****^ HISTORY COMMENTS: 5 5* 1) change(86-04-21,Fawcett), approve(86-04-21,MCR7383), 5 6* audit(86-05-12,Coppola), install(86-07-18,MR12.0-1098): 5 7* Add the sector differance for devices that do 64 word IO and devices that 5 8* do 512 word IO. 5 9* END HISTORY COMMENTS */ 5 10 5 11 /* Created by R. A. Fawcett for 512 word IO. for procedures that do not 5 12* need all the data in fs_dev_types. This is also included in 5 13* fs_dev_types.incl.pl1 */ 5 14 5 15 dcl sect_per_cyl (9) fixed bin static options (constant) init /* table of # of sectors per cylinder on each device */ 5 16 (0, 760, 760, 760, 589, 360, 1280, 255, 255); 5 17 5 18 dcl sect_per_sv (9) fixed bin (24) static options (constant) init /* table of # of sectors per cylinder on each subvolume */ 5 19 (0, 0, 0, 0, 0, 0, 0, 112710, 150450); 5 20 5 21 dcl sect_per_rec (9) fixed bin static options (constant) init 5 22 /* table of # of sectors per record on each device */ 5 23 /* coresponding array in disk_pack.incl.pl1 called SECTORS_PER_RECORD */ 5 24 (0, 16, 16, 16, 16, 16, 16, 2, 2); 5 25 5 26 dcl sect_per_vtoc (9) fixed bin static options (constant) init 5 27 (0, 3, 3, 3, 3, 3, 3, 1, 1); 5 28 5 29 dcl vtoc_per_rec (9) fixed bin static options (constant) init 5 30 /* corespending array in disk_pack.incl.pl1 named VTOCES_PER_RECORD */ 5 31 (0, 5, 5, 5, 5, 5, 5, 2, 2); 5 32 5 33 dcl sect_per_track (9) fixed bin static options (constant) init /* table of # of sectors per track on each device */ 5 34 (0, 40, 40, 40, 31, 18, 64, 17, 17); 5 35 5 36 dcl words_per_sect (9) fixed bin static options (constant) init /* table of # of words per sector on each device */ 5 37 (0, 64, 64, 64, 64, 64, 64, 512, 512); 5 38 5 39 /* End fs_dev_types_sector.incl.pl1 */ 5 40 4 142 4 143 4 144 /* End of include file ...... fs_dev_types.incl.pl1 */ 194 6 1 /* BEGIN INCLUDE FILE ... config_intk_card.incl.pl1 ... 11/27/80 W. Olin Sibert */ 6 2 6 3 dcl intk_cardp pointer; /* pointer to INTK card */ 6 4 6 5 dcl 1 intk_card aligned based (intk_cardp), /* INTK card declaration */ 6 6 2 word char (4), /* "intk" */ 6 7 2 warm_or_cold char (4), /* Type of bootload: "warm" or "cold" */ 6 8 2 boot_drive fixed bin, /* Tape drive on which MST is mounted */ 6 9 2 parms (12) char (4), /* up to 12 arbitrary bootload parameters */ 6 10 6 11 2 type_word aligned, 6 12 3 field_type (14) bit (2) unaligned, /* type of each field; see config_deck.incl.pl1 */ 6 13 3 pad1 bit (4) unaligned, 6 14 3 n_fields fixed bin (4) unsigned unaligned; /* number of fields used on card */ 6 15 6 16 dcl 1 intk_card_array aligned based (intk_cardp), /* Overlay for counting parameters */ 6 17 2 pad (3) bit (36) aligned, 6 18 2 parms (max (0, intk_card.n_fields - 2)) bit (36) aligned; 6 19 6 20 dcl INTK_CARD_WORD char (4) aligned internal static options (constant) init ("intk"); 6 21 6 22 /* END INCLUDE FILE ... config_intk_card.incl.pl1 */ 195 7 1 /* START OF: pvte.incl.pl1 July 1982 * * * * * * * * * * * * * * * * */ 7 2 7 3 /* Added pc_vacating, Benson Margulies 84-10-17 */ 7 4 7 5 /****^ HISTORY COMMENTS: 7 6* 1) change(86-04-11,Fawcett), approve(86-04-11,MCR7383), 7 7* audit(86-05-29,GDixon), install(86-07-18,MR12.0-1098): 7 8* Add the support for subvolumes 7 9* 2) change(86-04-11,Lippard), approve(86-04-11,MCR7309), 7 10* audit(86-05-29,GDixon), install(86-07-18,MR12.0-1098): 7 11* Add root_lv flag to mount RLVs that do not have hardcore partitions. 7 12* 3) change(88-05-27,GWMay), approve(88-05-27,MCR7883), 7 13* audit(88-06-14,Beattie), install(88-07-19,MR12.2-1061): 7 14* Added inconsistent_dbm bit for determining the status of volume 7 15* dumper bit maps. 7 16* END HISTORY COMMENTS */ 7 17 7 18 dcl pvt$array aligned external; 7 19 dcl pvt$max_n_entries fixed bin external; 7 20 7 21 dcl pvt_arrayp ptr; 7 22 dcl pvtep ptr; 7 23 7 24 dcl 1 pvt_array (pvt$max_n_entries) aligned like pvte based (pvt_arrayp); 7 25 7 26 dcl 1 pvte based (pvtep) aligned, 7 27 7 28 2 pvid bit (36), /* physical volume ID */ 7 29 7 30 2 lvid bit (36), /* logical volume ID */ 7 31 7 32 2 dmpr_in_use (3) bit (1) unaligned, /* physical volume dumper interlock */ 7 33 2 is_sv bit (1) unaligned, /* true if this entry defines a subvolume */ 7 34 2 root_lv bit (1) unaligned, /* true if this is on the root LV */ 7 35 2 removable_pack bit (1) unaligned, /* true if packs are eremoveable */ 7 36 2 inconsistent_dbm bit (1) unaligned, /* true if trouble count is incremented */ 7 37 2 pad3 bit (2) unaligned, 7 38 2 brother_pvtx fixed bin (8) unaligned,/* next pvte in lv chain */ 7 39 2 skip_queue_count fixed bin (18) unsigned unaligned, /* number of times this pv skipped for per-proc allocation due to saturation */ 7 40 7 41 7 42 7 43 2 devname char (4), /* device name */ 7 44 7 45 (2 device_type fixed bin (8), /* device type */ 7 46 2 logical_area_number fixed bin (8), /* disk drive number */ 7 47 2 used bit (1), /* TRUE if this entry is used */ 7 48 2 storage_system bit (1), /* TRUE for storage system (vs io disk) */ 7 49 2 permanent bit (1), /* TRUE if cannot be demounted */ 7 50 2 testing bit (1), /* Protocol bit for read_disk$test */ 7 51 2 being_mounted bit (1), /* TRUE if the physical volume is being mounted */ 7 52 2 being_demounted bit (1), /* TRUE if the pysical volume is being demounted */ 7 53 2 check_read_incomplete bit (1), /* page control should check read incomplete */ 7 54 2 device_inoperative bit (1), /* TRUE if disk_control decides dev busted */ 7 55 2 rpv bit (1), /* TRUE if this is the root physical volume */ 7 56 2 scav_check_address 7 57 bit (1), /* TRUE is page control should check deposits/withdrawals against scavenger table */ 7 58 2 deposit_to_volmap bit (1), /* TRUE if deposits should got to volume map, not stock */ 7 59 2 being_demounted2 bit (1), /* No more vtoc I/O during demount */ 7 60 2 pc_vacating bit (1), /* No more withdraws from this volume -- for debugging */ 7 61 2 vacating bit (1), /* don't put new segs on this vol */ 7 62 2 hc_part_used bit (1), /* HC part set up by init_pvt */ 7 63 2 volmap_lock_notify bit (1) unal, /* TRUE if notify required when volmap lock is unlocked */ 7 64 2 volmap_idle_notify bit (1) unal, /* TRUE if notify required when volmap state is idle */ 7 65 2 vtoc_map_lock_notify bit (1) unal, /* TRUE if notify required when vtoc map lock is unlocked */ 7 66 7 67 7 68 2 n_free_vtoce fixed bin (17), /* number of free VTOC entries */ 7 69 2 vtoc_size fixed bin (17), /* size of the VTOC part of the disk - in records */ 7 70 7 71 2 dbmrp (2) bit (18), /* rel ptr to dumber bit maps for this volume */ 7 72 7 73 2 nleft fixed bin (17), /* number of records left */ 7 74 2 totrec fixed bin (17)) unaligned, /* Total records in this map */ 7 75 7 76 2 dim_info bit (36), /* Information peculiar to DIM */ 7 77 2 sv_num fixed bin, /* the number of this subvolume starting at 0 */ 7 78 2 num_of_svs fixed bin, /* number of subvolumes for this device */ 7 79 2 records_per_cyl fixed bin, 7 80 2 record_factor fixed bin, /* the record factor for logical to real seek calculation */ 7 81 2 sv_name char (2) aligned, 7 82 2 curn_dmpr_vtocx (3) fixed bin unaligned,/* current vtocx being dumped */ 7 83 2 n_vtoce fixed bin unaligned, /* number of vtoce on this volume */ 7 84 7 85 2 baseadd fixed bin (18) uns unaligned, /* Base of paging region */ 7 86 2 pad2 bit (18) unaligned, 7 87 7 88 2 pad_for_mod_2 fixed bin (35), /* Make volmap_seg_sdw double word aligned */ 7 89 7 90 2 volmap_seg_sdw fixed bin (71), /* SDW describing volmap_seg */ 7 91 7 92 2 volmap_astep ptr unal, /* Packed pointer to ASTE for volmap_seg */ 7 93 7 94 2 volmap_offset bit (18) unal, /* Offset in volmap_seg of volume map */ 7 95 2 vtoc_map_offset bit (18) unal, /* Offset in volmap_seg of VTOC map */ 7 96 7 97 7 98 2 volmap_lock bit (36) aligned, /* Lock on volume map operations */ 7 99 7 100 2 vtoc_map_lock bit (36) aligned, /* Lock on VTOC map operations */ 7 101 7 102 2 volmap_stock_ptr ptr unal, /* Packed pointer to record stock */ 7 103 7 104 2 vtoc_map_stock_ptr ptr unal, /* Packed pointer to VTOCE stock */ 7 105 7 106 2 volmap_async_state fixed bin (17) unaligned, /* Asynchronous update state of Volume Map */ 7 107 2 volmap_async_page fixed bin (17) unaligned, /* Page number for asynchronous update */ 7 108 7 109 2 vol_trouble_count fixed bin (17) unaligned, /* Count of inconsistencies since last salvage */ 7 110 2 scavenger_block_rel bit (18) unaligned; /* Offset to scavenger block, ^0 => scavenging */ 7 111 7 112 7 113 dcl (VOLMAP_ASYNC_IDLE init (0), /* for volmap_async_state */ 7 114 VOLMAP_ASYNC_READ init (1), 7 115 VOLMAP_ASYNC_WRITE init (2)) fixed bin int static options (constant); 7 116 7 117 7 118 /* END OF: pvte.incl.pl1 * * * * * * * * * * * * * * * * */ 196 8 1 /* START OF: stock_seg.incl.pl1 * * * * * * * * * * * * * * * * */ 8 2 8 3 dcl stock_segp ptr; 8 4 dcl record_stockp ptr; 8 5 dcl vtoce_stockp ptr; 8 6 dcl stock_seg$ ext; 8 7 8 8 dcl n_in_record_stock fixed bin; 8 9 dcl n_volmap_pages fixed bin; 8 10 dcl n_in_vtoce_stock fixed bin; 8 11 8 12 8 13 dcl 1 stock_seg aligned based (stock_segp), 8 14 8 15 2 meters aligned like rsmeters, 8 16 8 17 2 record_stock_entries fixed bin, /* Number of entries in a record stock */ 8 18 2 vtoce_stock_entries fixed bin, /* Number of entries in a VTOCE stock */ 8 19 2 record_stock_size fixed bin, /* Size of a record stock in words */ 8 20 2 vtoce_stock_size fixed bin, /* Size of a VTOCE stock in words */ 8 21 2 n_stock_entries fixed bin, /* Number of stocks of each type */ 8 22 2 record_stock_arrayp ptr, /* Record stock region */ 8 23 2 vtoce_stock_arrayp ptr; /* VTOCE stock region */ 8 24 8 25 8 26 dcl 1 record_stock aligned based (record_stockp), 8 27 8 28 2 pvtep ptr unal, /* PVTE for this stock */ 8 29 8 30 2 n_in_stock fixed bin (18) uns unal,/* Max number of addresses in stock */ 8 31 2 n_volmap_pages fixed bin (18) uns unal,/* Number of pages in Volume Map */ 8 32 8 33 2 n_free_in_stock fixed bin (18) uns unal,/* Number addresses currently free */ 8 34 2 n_os_in_stock fixed bin (18) uns unal,/* Number addresses currently out-of-service */ 8 35 8 36 2 low_threshold fixed bin (18) uns unal,/* Low threshold for withdrawing from volmap */ 8 37 2 high_threshold fixed bin (18) uns unal,/* High threshold for depositing to volmap */ 8 38 8 39 2 target fixed bin (18) uns unal,/* Target for stock */ 8 40 2 stock_offset bit (18) unal, /* Offset of stock in this structure */ 8 41 8 42 2 n_words_in_stock fixed bin (18) uns unal,/* Number of words = Number of entries / 2 */ 8 43 2 search_index fixed bin (18) uns unal,/* Roving pointer */ 8 44 8 45 2 old_volmap_page (3) aligned, /* N_OLD_VOLMAP_PAGES (cif) */ 8 46 3 last fixed bin (18) uns unal,/* Roving pointer */ 8 47 3 pad bit (18) unal, 8 48 8 49 2 volmap_page (n_volmap_pages refer (record_stock.n_volmap_pages)) aligned, 8 50 3 n_free fixed bin (18) uns unal,/* Number free records in this volmap page */ 8 51 3 baseadd fixed bin (17) unal, /* First record address described by this page */ 8 52 8 53 2 stock (n_in_record_stock refer (record_stock.n_in_stock)) bit (18) unal; /* Stock array of addresses */ 8 54 /* bit 0 ON => out-of-service */ 8 55 8 56 8 57 dcl 1 vtoce_stock aligned based (vtoce_stockp), 8 58 2 pvtep ptr unal, /* PVTE for this stock */ 8 59 2 n_in_stock fixed bin (18) uns unal,/* Max number indices in stock */ 8 60 2 n_free_in_stock fixed bin (18) uns unal,/* Number indices currently free */ 8 61 2 target fixed bin (18) uns unal,/* Target when withdrawing/depositing */ 8 62 2 search_index fixed bin (18) uns unal,/* Roving pointer */ 8 63 2 stock (n_in_vtoce_stock refer (vtoce_stock.n_in_stock)) fixed bin (17) unal; /* Stock array of VTOCE indices */ 8 64 8 65 8 66 dcl 1 rsmeters aligned based, 8 67 8 68 2 async_read_calls fixed bin (35), /* Number of asynchronous read attempts */ 8 69 2 async_page_reads fixed bin (35), /* Number of times page read was required */ 8 70 2 async_post_io_calls fixed bin (35), /* Number of times read or write posted */ 8 71 2 deposit_calls fixed bin (35), /* Number of times deposit called */ 8 72 2 async_post_io_time fixed bin (71), /* CPU time posting I/Os (interrupt side) */ 8 73 2 deposit_time fixed bin (71), /* CPU time in deposit (call side) */ 8 74 2 low_thresh_detected fixed bin (35), /* Number of times stock below low threshold */ 8 75 2 high_thresh_detected fixed bin (35), /* Number of times stock above high threshold */ 8 76 2 low_thresh_fails fixed bin (35), /* Number of times no records in volmap */ 8 77 2 withdraw_stock_steps fixed bin (35), /* Number steps thru stock in withdraw */ 8 78 2 withdraw_stock_losses fixed bin (35), /* Number lockless losses */ 8 79 2 n_withdraw_attempt fixed bin (35), /* Number attempts to withdraw a page */ 8 80 2 n_withdraw_range fixed bin (35), /* Number attempts to withdraw within range */ 8 81 2 n_pages_withdraw_stock fixed bin (35), /* Number pages withdrawn from stock */ 8 82 2 n_pages_withdraw_async fixed bin (35), /* Number pages withdrawn from volmap */ 8 83 2 n_v_withdraw_attempts fixed bin (35), /* Number attempts to withdraw from volmap */ 8 84 2 withdraw_volmap_steps fixed bin (35), /* Number steps thru volmap in withdraw */ 8 85 2 deposit_stock_steps fixed bin (35), /* Number steps thru stock in deposit */ 8 86 2 deposit_stock_losses fixed bin (35), /* Number lockless losses */ 8 87 2 n_deposit_attempt fixed bin (35), /* Number attempts to deposit a page */ 8 88 2 n_pages_deposit_stock fixed bin (35), /* Number pages deposited to stock */ 8 89 2 n_pages_deposit_volmap fixed bin (35), /* Number pages deposited to volmap */ 8 90 2 n_v_deposit_attempts fixed bin (35), /* Number attempts to deposit to volmap */ 8 91 2 reset_os_calls fixed bin (35), /* Number calls to reset_os */ 8 92 2 reset_os_losses fixed bin (35), /* Number lockless losses */ 8 93 2 withdraw_calls fixed bin (35), /* Number calls to withdraw */ 8 94 2 withdraw_time fixed bin (71), /* CPU time in withdraw (page-fault) */ 8 95 2 pc_deposit_time fixed bin (71), /* CPU time in pc_deposit */ 8 96 2 pc_deposit_calls fixed bin (35), /* Number calls to pc_deposit */ 8 97 2 pc_deposit_pages fixed bin (35), /* Number pages deposited by pc_deposit */ 8 98 2 get_free_vtoce_calls fixed bin (35), /* Number calls to get_free_vtoce */ 8 99 2 return_free_vtoce_call fixed bin (35), /* Number calls to return_free_vtoce */ 8 100 2 deposit_vstock_calls fixed bin (35), /* Number attempts to deposit to vtoce stock */ 8 101 2 deposit_vstock_fails fixed bin (35), /* Number times deposit failed */ 8 102 2 withdraw_vstock_calls fixed bin (35), /* Number attempts to withdraw from vtoce stock */ 8 103 2 withdraw_vstock_fails fixed bin (35), /* Number times withdraw failed */ 8 104 2 deposit_vtoc_map fixed bin (35), /* Number times vtoce deposited to map */ 8 105 2 withdraw_check_scav fixed bin (35), /* Number times withdraw checked an address for scavenge */ 8 106 2 withdraw_conflict fixed bin (35), /* Number times conflict found */ 8 107 2 pad (11) fixed bin (35); 8 108 8 109 8 110 dcl N_OLD_VOLMAP_PAGES fixed bin init (3) int static options (constant); 8 111 dcl DEFAULT_N_IN_RECORD_STOCK fixed bin init (104) int static options (constant); 8 112 dcl DEFAULT_N_IN_VTOCE_STOCK fixed bin init (10) int static options (constant); 8 113 8 114 8 115 /* END OF: stock_seg.incl.pl1 * * * * * * * * * * * * * * * * */ 197 9 1 /* BEGIN INCLUDE FILE syserr_constants.incl.pl1 ... 11/11/80 W. Olin Sibert */ 9 2 /* 85-02-12, EJ Sharpe - Added sorting class constants, removed AIM_MESSAGE, added new action code names. */ 9 3 /* 85-04-24, G. Palter - Renamed SYSERR_UNUSED_10 to SYSERR_RING1_ERROR to reflect its actual use. */ 9 4 9 5 /* This include file has an ALM version. Keep 'em in sync! */ 9 6 9 7 dcl ( 9 8 9 9 /* The following constants define the message action codes. This indicates 9 10*how a message is to be handled. */ 9 11 9 12 SYSERR_CRASH_SYSTEM init (1), 9 13 CRASH init (1), /* Crash the system, and bleat plaintively. */ 9 14 9 15 SYSERR_TERMINATE_PROCESS init (2), 9 16 TERMINATE_PROCESS init (2), /* Terminate the process, print the message, and beep. */ 9 17 9 18 SYSERR_PRINT_WITH_ALARM init (3), 9 19 BEEP init (3), /* Beep and print the message on the console. */ 9 20 9 21 SYSERR_PRINT_ON_CONSOLE init (0), 9 22 ANNOUNCE init (0), /* Just print the message on the console. */ 9 23 9 24 SYSERR_LOG_OR_PRINT init (4), 9 25 LOG init (4), /* Log the message, or print it if it can't be logged */ 9 26 9 27 SYSERR_LOG_OR_DISCARD init (5), 9 28 JUST_LOG init (5), /* Just try to log the message, and discard it if it can't be */ 9 29 9 30 9 31 /* The following constants are added to the normal severities to indicate 9 32*different sorting classes of messages. */ 9 33 9 34 SYSERR_SYSTEM_ERROR init (00), /* indicates a standard level system error */ 9 35 SYSERR_RING1_ERROR init (10), /* indicates an error detected in ring 1 (mseg_, RCP) */ 9 36 SYSERR_COVERT_CHANNEL init (20), /* indicates covert channel audit trail message */ 9 37 SYSERR_UNSUCCESSFUL_ACCESS init (30), /* indicates access denial audit trail message */ 9 38 SYSERR_SUCCESSFUL_ACCESS init (40) /* indicates access grant audit trail message */ 9 39 ) fixed bin internal static options (constant); 9 40 9 41 /* END INCLUDE FILE syserr_constants.incl.pl1 */ 198 199 200 /* BEGIN MESSAGE DOCUMENTATION 201* 202* Message: 203* accept_rpv: pv PVNAME lv LVNAME (DSKX_NN) is not part of root. 204* 205* S: $crash 206* 207* T: $init 208* 209* M: The pack on the drive DSKX_NN, with pv name and lv name as read 210* from its label, is specified on the ROOT CONFIG card, but is not 211* part of the same logical volume as the RPV. 212* 213* A: Check the ROOT CONFIG card for errors. Check for the proper 214* packs. Reboot the system. 215* 216* 217* Message: 218* accept_rpv: Error ERRORMESSAGE accepting RPV 219* 220* S: $crash 221* 222* T: $init 223* 224* M: Some problem was encountered trying to set up the use of the RPV for 225* normal segment creation and activation. The label of the RPV may have been 226* damaged, or encountered disk errors, as indicated by the ERRORMESSAGE. 227* 228* A: Make sure that the RPV label area (first eight records), or a dump of it, 229* is available for system programmer inspection. 230* $note 231* 232* Message: 233* accept_rpv: HC part on dskX_NN used XXX out of YYY records. 234* 235* S: This message is printed on the console if an HCPT card is in the config 236* deck. Otherwise, it is logged into the syserr_log. 237* 238* T: $init 239* 240* M: The message appears for each disk volume which contains a Hardcore 241* Partition (PART HC). It indicates how many records were actually used 242* (XXX) in the partition, which had size YYY. 243* 244* A: $ignore 245* 246* END MESSAGE DOCUMENTATION */ 247 248 end accept_rpv; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 11/11/89 0827.9 accept_rpv.pl1 >spec>install>1112>accept_rpv.pl1 191 1 10/22/86 1450.1 disk_pack.incl.pl1 >ldd>include>disk_pack.incl.pl1 192 2 04/30/87 1513.7 flagbox.incl.pl1 >ldd>include>flagbox.incl.pl1 193 3 07/21/88 2036.0 fs_vol_label.incl.pl1 >ldd>include>fs_vol_label.incl.pl1 194 4 10/30/86 2010.5 fs_dev_types.incl.pl1 >ldd>include>fs_dev_types.incl.pl1 4-142 5 07/24/86 2051.8 fs_dev_types_sector.incl.pl1 >ldd>include>fs_dev_types_sector.incl.pl1 195 6 05/08/81 1853.6 config_intk_card.incl.pl1 >ldd>include>config_intk_card.incl.pl1 196 7 07/21/88 2036.0 pvte.incl.pl1 >ldd>include>pvte.incl.pl1 197 8 10/25/82 1015.6 stock_seg.incl.pl1 >ldd>include>stock_seg.incl.pl1 198 9 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 constant fixed bin(17,0) initial dcl 9-7 ref 75 CRASH 000021 constant fixed bin(17,0) initial dcl 9-7 set ref 83* 86* 133* LABEL_ADDR 000017 constant fixed bin(17,0) initial dcl 1-54 set ref 82* LOG constant fixed bin(17,0) initial dcl 9-7 ref 73 Multics 500 000110 automatic char(32) initial level 2 dcl 65 set ref 65* Pvte parameter structure level 1 dcl 175 ref 172 accept_fs_disk 000026 constant entry external dcl 49 ref 132 158 addr builtin function dcl 67 ref 69 70 80 112 123 137 146 154 all_root_vols_accepted 000100 automatic bit(1) packed unaligned dcl 58 set ref 152* 159* 166 brother_pvtx 2(09) based fixed bin(8,0) level 2 packed packed unaligned dcl 7-26 set ref 147* buffer 000110 automatic structure level 1 dcl 65 set ref 69 code 000101 automatic fixed bin(35,0) dcl 59 set ref 82* 83 83* 119* 132* 133 133* 156* 158* 159 config_$find 000030 constant entry external dcl 50 ref 97 config_$find_parm 000032 constant entry external dcl 51 ref 72 dev 002140 automatic char(4) level 2 packed packed unaligned dcl 176 set ref 183* devname 3 parameter char(4) level 2 dcl 175 ref 183 dname 002140 automatic structure level 1 dcl 176 set ref 188 fgbx based structure level 1 dcl 2-24 fgbxp 002110 automatic pointer dcl 2-22 set ref 137* 138 flagbox$ 000050 external static fixed bin(17,0) dcl 2-21 set ref 137 hbound builtin function dcl 67 ref 98 hc_part_used 4(32) based bit(1) level 2 packed packed unaligned dcl 7-26 set ref 81 124 i 000102 automatic fixed bin(17,0) dcl 60 set ref 98* 100 101 104 105* 145* 146* intk_card based structure level 1 dcl 6-5 intk_cardp 002116 automatic pointer dcl 6-3 set ref 72* 73 96* 97* 98 98 100 101 104 105 is_sv 2(03) parameter bit(1) level 2 packed packed unaligned dcl 175 ref 186 label based structure level 1 dcl 3-18 labelp 002112 automatic pointer dcl 3-16 set ref 69* 82* 86 86 86 logical_area_number 4(09) parameter fixed bin(8,0) level 2 packed packed unaligned dcl 175 ref 185 lv_name 531 based char(32) level 2 dcl 3-18 set ref 86* lvid 542 based bit(36) level 2 dcl 3-18 ref 86 make_sdw$reset_hcp 000034 constant entry external dcl 52 ref 143 n_hc_volmap_pages 000105 automatic fixed bin(17,0) dcl 63 set ref 126* 127 127 n_volmap_pages 1(18) based fixed bin(18,0) level 2 packed packed unsigned unaligned dcl 8-26 ref 126 nleft 7 based fixed bin(17,0) level 2 packed packed unaligned dcl 7-26 set ref 127 null builtin function dcl 67 ref 73 96 98 num 1(09) 002140 automatic picture(2) level 2 packed packed unaligned dcl 176 set ref 185* parms 3 based char(4) array level 2 dcl 6-5 set ref 98 100 101* 104 105* pv_name 521 based char(32) level 2 dcl 3-18 set ref 86* pvt$array 000052 external static fixed bin(17,0) dcl 7-18 set ref 70 pvt$n_entries 000010 external static fixed bin(17,0) dcl 41 ref 79 122 145 153 pvt$rlv_needs_salv 000016 external static bit(1) dcl 44 set ref 116* pvt$root_lvid 000012 external static bit(36) dcl 42 ref 86 pvt$root_pvtx 000014 external static fixed bin(17,0) dcl 43 set ref 111 132* pvt$rpv_needs_salv 000020 external static bit(1) dcl 45 ref 116 pvt$rpvs_requested 000022 external static bit(1) dcl 46 set ref 94* 102* 106* 116 119 166* pvt_array based structure array level 1 dcl 7-24 set ref 80 112 123 146 154 pvt_arrayp 002120 automatic pointer dcl 7-21 set ref 70* 80 112 123 146 154 pvte based structure level 1 dcl 7-26 set ref 83* 83* 86* 86* 127* 127* pvtep 002122 automatic pointer dcl 7-22 set ref 80* 81 81 83 83 86 86 112* 123* 124 126 127 127 127 127 127 146* 147 154* 155 155 pvtx 000103 automatic fixed bin(17,0) dcl 61 set ref 79* 80 82* 111* 112 119* 122* 123* 153* 154 156* 158* read_disk 000036 constant entry external dcl 53 ref 82 record_stock based structure level 1 dcl 8-26 root_lv 2(04) based bit(1) level 2 packed packed unaligned dcl 7-26 set ref 155 rpv 4(26) based bit(1) level 2 packed packed unaligned dcl 7-26 set ref 81 155 rsmeters based structure level 1 dcl 8-66 rtb 43 based structure level 2 dcl 2-24 salv_data$rpv 000024 external static bit(1) dcl 47 set ref 114* 164* salv_rlv_request 000106 automatic bit(1) packed unaligned dcl 64 set ref 95* 107* 156 salvager$volume_salvage 000040 constant entry external dcl 54 ref 119 156 seek_command 002114 automatic bit(6) initial array packed unaligned dcl 4-84 set ref 4-84* 4-84* 4-84* 4-84* 4-84* 4-84* 4-84* 4-84* 4-84* severity 000104 automatic fixed bin(17,0) dcl 62 set ref 73* 75* 127* ssenb 43 based bit(1) level 3 packed packed unaligned dcl 2-24 set ref 138* string builtin function dcl 67 ref 188 sv 1(27) 002140 automatic char(1) level 2 packed packed unaligned dcl 176 set ref 186* 187* sv_num 11 parameter fixed bin(17,0) level 2 dcl 175 ref 186 syserr 000042 constant entry external dcl 55 ref 86 127 syserr$error_code 000044 constant entry external dcl 55 ref 83 133 totrec 7(18) based fixed bin(17,0) level 2 packed packed unaligned dcl 7-26 set ref 127 127 u 1 002140 automatic char(1) level 2 packed packed unaligned dcl 176 set ref 184* valid_sv_array 000000 constant char(1) initial array packed unaligned dcl 4-99 ref 186 volmap_stock_ptr 30 based pointer level 2 packed packed unaligned dcl 7-26 set ref 126 wired_shutdown$enable 000046 constant entry external dcl 56 ref 135 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. BEEP internal static fixed bin(17,0) initial dcl 9-7 DEFAULT_HCPART_SIZE internal static fixed bin(17,0) initial dcl 1-54 DEFAULT_N_IN_RECORD_STOCK internal static fixed bin(17,0) initial dcl 8-111 DEFAULT_N_IN_VTOCE_STOCK internal static fixed bin(17,0) initial dcl 8-112 DUMPER_BIT_MAP_ADDR internal static fixed bin(17,0) initial dcl 1-54 FLAGBOX_SENTINEL internal static char(32) initial packed unaligned dcl 2-51 INTK_CARD_WORD internal static char(4) initial dcl 6-20 JUST_LOG internal static fixed bin(17,0) initial dcl 9-7 MAX_VTOCE_PER_PACK internal static fixed bin(17,0) initial dcl 1-54 MODEL internal static fixed bin(17,0) initial array dcl 4-57 MODELN internal static fixed bin(17,0) initial array dcl 4-63 MODELX internal static fixed bin(17,0) initial array dcl 4-60 Multics_ID_String internal static char(32) initial packed unaligned dcl 3-92 N_OLD_VOLMAP_PAGES internal static fixed bin(17,0) initial dcl 8-110 PAGE_SIZE internal static fixed bin(17,0) initial dcl 1-67 SECTORS_PER_RECORD internal static fixed bin(17,0) initial array dcl 1-74 SECTORS_PER_VTOCE internal static fixed bin(17,0) initial array dcl 1-70 SYSERR_COVERT_CHANNEL internal static fixed bin(17,0) initial dcl 9-7 SYSERR_CRASH_SYSTEM internal static fixed bin(17,0) initial dcl 9-7 SYSERR_LOG_OR_DISCARD internal static fixed bin(17,0) initial dcl 9-7 SYSERR_LOG_OR_PRINT internal static fixed bin(17,0) initial dcl 9-7 SYSERR_PRINT_ON_CONSOLE internal static fixed bin(17,0) initial dcl 9-7 SYSERR_PRINT_WITH_ALARM internal static fixed bin(17,0) initial dcl 9-7 SYSERR_RING1_ERROR internal static fixed bin(17,0) initial dcl 9-7 SYSERR_SUCCESSFUL_ACCESS internal static fixed bin(17,0) initial dcl 9-7 SYSERR_SYSTEM_ERROR internal static fixed bin(17,0) initial dcl 9-7 SYSERR_TERMINATE_PROCESS internal static fixed bin(17,0) initial dcl 9-7 SYSERR_UNSUCCESSFUL_ACCESS internal static fixed bin(17,0) initial dcl 9-7 TERMINATE_PROCESS internal static fixed bin(17,0) initial dcl 9-7 VOLMAP_ADDR internal static fixed bin(17,0) initial dcl 1-54 VOLMAP_ASYNC_IDLE internal static fixed bin(17,0) initial dcl 7-113 VOLMAP_ASYNC_READ internal static fixed bin(17,0) initial dcl 7-113 VOLMAP_ASYNC_WRITE internal static fixed bin(17,0) initial dcl 7-113 VTOCES_PER_RECORD internal static fixed bin(17,0) initial array dcl 1-72 VTOCE_SIZE internal static fixed bin(17,0) initial dcl 1-68 VTOC_MAP_ADDR internal static fixed bin(17,0) initial dcl 1-54 VTOC_ORIGIN internal static fixed bin(17,0) initial dcl 1-54 bulkdevt internal static fixed bin(4,0) initial dcl 4-43 cyl_per_dev internal static fixed bin(17,0) initial array dcl 4-102 cyl_per_sv internal static fixed bin(17,0) initial array dcl 4-105 dev_time internal static float bin(27) initial array dcl 4-139 device_names internal static char(4) initial array dcl 4-66 dsu181devt internal static fixed bin(4,0) initial dcl 4-43 dsu190devt internal static fixed bin(4,0) initial dcl 4-43 dsu191devt internal static fixed bin(4,0) initial dcl 4-43 fips3380devt internal static fixed bin(4,0) initial dcl 4-43 fips3381devt internal static fixed bin(4,0) initial dcl 4-43 fips_type_disk internal static bit(1) initial array packed unaligned dcl 4-72 first_alt_sect_num internal static fixed bin(24,0) initial array dcl 4-130 first_dev_number internal static fixed bin(17,0) initial array dcl 4-69 first_rec_num internal static fixed bin(17,0) initial array dcl 4-115 first_sect_num internal static fixed bin(24,0) initial array dcl 4-124 intk_card_array based structure level 1 dcl 6-16 last_alt_sect_num internal static fixed bin(24,0) initial array dcl 4-133 last_physical_sect_num internal static fixed bin(24,0) initial array dcl 4-136 last_rec_num internal static fixed bin(18,0) initial array dcl 4-118 last_sect_num internal static fixed bin(24,0) initial array dcl 4-127 last_sv_rec_num internal static fixed bin(18,0) initial array dcl 4-121 maxdevt internal static fixed bin(4,0) initial dcl 4-43 media_removable internal static bit(1) initial array packed unaligned dcl 4-75 msu0400devt internal static fixed bin(4,0) initial dcl 4-43 msu0450devt internal static fixed bin(4,0) initial dcl 4-43 msu0451devt internal static fixed bin(4,0) initial dcl 4-43 msu0500devt internal static fixed bin(4,0) initial dcl 4-43 msu0501devt internal static fixed bin(4,0) initial dcl 4-43 n_in_record_stock automatic fixed bin(17,0) dcl 8-8 n_in_vtoce_stock automatic fixed bin(17,0) dcl 8-10 n_volmap_pages automatic fixed bin(17,0) dcl 8-9 needs_alt_part internal static bit(1) initial array packed unaligned dcl 4-81 number_of_sv internal static fixed bin(17,0) initial array dcl 4-93 pvt$max_n_entries external static fixed bin(17,0) dcl 7-19 rec_per_cyl internal static fixed bin(17,0) initial array dcl 4-108 rec_per_dev internal static fixed bin(21,0) initial array dcl 4-87 rec_per_sv internal static fixed bin(17,0) initial array dcl 4-90 record_stockp automatic pointer dcl 8-4 sect_per_cyl internal static fixed bin(17,0) initial array dcl 5-15 sect_per_rec internal static fixed bin(17,0) initial array dcl 5-21 sect_per_sv internal static fixed bin(24,0) initial array dcl 5-18 sect_per_track internal static fixed bin(17,0) initial array dcl 5-33 sect_per_vtoc internal static fixed bin(17,0) initial array dcl 5-26 shared_spindle internal static bit(1) initial array packed unaligned dcl 4-78 stock_seg based structure level 1 dcl 8-13 stock_seg$ external static fixed bin(17,0) dcl 8-6 stock_segp automatic pointer dcl 8-3 tracks_per_cyl internal static fixed bin(17,0) initial array dcl 4-111 valid_sv_string internal static char(3) initial packed unaligned dcl 4-96 vtoc_per_rec internal static fixed bin(17,0) initial array dcl 5-29 vtoce_stock based structure level 1 dcl 8-57 vtoce_stockp automatic pointer dcl 8-5 words_per_sect internal static fixed bin(17,0) initial array dcl 5-36 NAMES DECLARED BY EXPLICIT CONTEXT. accept_rpv 000215 constant entry external dcl 8 name 001124 constant entry internal dcl 172 ref 83 83 86 86 127 127 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 1406 1462 1170 1416 Length 2046 1170 54 350 216 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME accept_rpv 1192 external procedure is an external procedure. name internal procedure shares stack frame of external procedure accept_rpv. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME accept_rpv 000100 all_root_vols_accepted accept_rpv 000101 code accept_rpv 000102 i accept_rpv 000103 pvtx accept_rpv 000104 severity accept_rpv 000105 n_hc_volmap_pages accept_rpv 000106 salv_rlv_request accept_rpv 000110 buffer accept_rpv 002110 fgbxp accept_rpv 002112 labelp accept_rpv 002114 seek_command accept_rpv 002116 intk_cardp accept_rpv 002120 pvt_arrayp accept_rpv 002122 pvtep accept_rpv 002140 dname name THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_out_desc call_ext_out return_mac ext_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. accept_fs_disk config_$find config_$find_parm make_sdw$reset_hcp read_disk salvager$volume_salvage syserr syserr$error_code wired_shutdown$enable THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. flagbox$ pvt$array pvt$n_entries pvt$rlv_needs_salv pvt$root_lvid pvt$root_pvtx pvt$rpv_needs_salv pvt$rpvs_requested salv_data$rpv LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 8 000214 65 000222 4 84 000225 69 000314 70 000316 72 000320 73 000332 75 000341 79 000343 80 000353 81 000357 82 000365 83 000402 86 000444 90 000515 94 000517 95 000521 96 000522 97 000524 98 000536 100 000547 101 000553 102 000555 103 000560 104 000561 105 000563 106 000565 107 000570 109 000571 111 000573 112 000576 114 000602 116 000604 119 000612 122 000630 123 000641 124 000645 126 000650 127 000654 130 000736 132 000740 133 000751 135 000777 137 001004 138 001007 143 001011 145 001015 146 001025 147 001031 148 001033 152 001035 153 001037 154 001047 155 001053 156 001061 158 001100 159 001111 162 001114 164 001116 166 001120 168 001123 172 001124 183 001126 184 001131 185 001133 186 001146 187 001156 188 001160 ----------------------------------------------------------- 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