COMPILATION LISTING OF SEGMENT disk_name_pvtx 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 1004.5 mst Sat Options: optimize map 1 /****^ *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Bull Inc., 1987 * 4* * * 5* * Copyright, (C) Honeywell Information Systems Inc., 1986 * 6* * * 7* *********************************************************** */ 8 9 10 /****^ HISTORY COMMENTS: 11* 1) change(86-01-16,Fawcett), approve(86-04-11,MCR7383), 12* audit(86-05-13,Coppola), install(86-07-17,MR12.0-1097): 13* Created to find correct pvtx given disk name. (Subvolume changes). 14* END HISTORY COMMENTS */ 15 /* format: off */ 16 /* This program will find the index for a pvte in the pvt$array from the device name. 17* 18* dcl disk_name_pvtx entry (char (8), fixed bin, fixed bin (35)); 19* 20* call disk_name_pvtx (disk_name, pvtx, code); 21* 22*where: 23* disk_name is the name of the device which has the format dsk_, dska_02, or dskb_00b. (Input) 24* 25* pvtx is the index in the pvt$array for the disk if found (Output). 26* 27* code is 0 for pvtx valid, 28* error_table_$resource_unknown (could not find device) 29* error_table_$subvol_needed (device requires subvolume and none given) 30* error_table_$subvol_invalid (device does not have subvolumes or the does not have the supplied subvolume). 31* 32*The subsys_dev entry point is called when the caller has the subsystem and 33*device number as two variables. "dska" for the subsystem and "1a" for the 34*device number. This entry can be called without converting dska_1a to dska_01a. 35* 36* dcl disk_name_pvtx$subsys_dev entry 37* (char (4), char (4), fixed bin (17), fixed bin (35); 38* 39* call disk_name_pvtx$subsys_dev (a_subsys, a_dev, a_pvtx, a_code); 40* 41*where: 42* a_subsys is the name of the disk subsystem (e.g., dska). 43* 44* a_dev is the device number (e.g., 01a, 12b, 1, or 1c). 45* 46* a_pvtx and a_code are the same as above. 47* 48**/ 49 50 /* format: on */ 51 disk_name_pvtx: 52 proc (a_dev_name, a_pvtx, a_code); 53 54 dcl a_code fixed bin (35); 55 dcl a_dev_name char (8); 56 dcl a_dev char (4); 57 dcl a_pvtx fixed bin; 58 dcl a_subsys char (4); 59 60 61 /* Automatic */ 62 63 dcl code fixed bin (35); 64 dcl devname char (4); 65 dcl devnum fixed bin; 66 dcl inc fixed bin; 67 dcl name_length fixed bin; 68 dcl subsys char (4); 69 dcl sv_idx fixed bin; 70 dcl the_sv char (1); 71 dcl pvtx fixed bin; 72 73 74 /* EXT Entry */ 75 76 dcl cv_dec_check_ entry (char (*), fixed bin (35)) returns (fixed bin (35)); 77 78 /* Builtins */ 79 80 dcl (addr, after, before, index, length, rtrim, search, substr) builtin; 81 82 /* Error codes */ 83 84 85 dcl error_table_$resource_unknown fixed bin (35) ext static; 86 dcl error_table_$subvol_needed fixed bin (35) ext static; 87 dcl error_table_$subvol_invalid fixed bin (35) ext static; 88 89 90 name_length = length (rtrim (a_dev_name)); 91 if name_length < 7 then goto no_such_drive; 92 if index (a_dev_name, "_") ^= 5 then goto no_such_drive; 93 subsys = before (a_dev_name, "_"); 94 devname = after (a_dev_name, "_"); 95 goto common_checks; 96 97 98 disk_name_pvtx$subsys_dev: 99 entry (a_subsys, a_dev, a_pvtx, a_code); 100 101 subsys = a_subsys; 102 devname = a_dev; 103 104 common_checks: 105 106 /* make sure we are talking about a disk */ 107 if substr (subsys, 1, 3) ^= "dsk" then goto no_such_drive; 108 109 inc = search (devname, valid_sv_string); 110 if inc = 0 then do; 111 the_sv = ""; 112 /* if the subvolume is not a valid sv then this check will fail */ 113 devnum = cv_dec_check_ (rtrim (devname), code); 114 end; 115 else do; 116 the_sv = substr (devname, inc, 1); 117 devnum = cv_dec_check_ (substr (devname, 1, (inc - 1)), code); 118 end; 119 120 if code ^= 0 then goto no_such_drive; 121 122 if devnum >= 65 then goto no_such_drive; 123 124 pvtp = addr (pvt$); 125 pvt_arrayp = addr (pvt.array); 126 /* find the first or only entry for the dev */ 127 do pvtx = 1 to pvt.n_entries while 128 (pvt_array (pvtx).devname ^= subsys | 129 pvt_array (pvtx).logical_area_number ^= devnum); 130 end; 131 if pvtx > pvt.n_entries then goto no_such_drive; /* So don't bother with the subvolume */ 132 133 sv_idx = number_of_sv (pvt_array (pvtx).device_type); 134 if sv_idx ^= 0 then do; 135 /* the type of device requires the subvolume */ 136 if the_sv = "" then goto need_sub; 137 inc = index (substr (valid_sv_string, 1, sv_idx), the_sv) - 1; 138 if inc < 0 then goto not_valid_sv; /* subvolume not correct for this device type */ 139 pvtx = pvtx + inc; 140 if (pvt_array (pvtx).devname ^= subsys | 141 pvt_array (pvtx).logical_area_number ^= devnum | 142 pvt_array (pvtx).sv_name ^= the_sv) then goto no_such_drive; 143 end; 144 else if the_sv ^= "" then goto no_such_drive; /* subvolume supplied but device not divided into subvolumes */ 145 if pvtx > pvt.n_entries then goto no_such_drive; 146 a_pvtx = pvtx; 147 a_code = 0; 148 return; 149 not_valid_sv: 150 a_code = error_table_$subvol_invalid; 151 goto Error_exit; 152 no_such_drive: 153 a_code = error_table_$resource_unknown; 154 goto Error_exit; 155 need_sub: 156 a_code = error_table_$subvol_needed; 157 Error_exit: 158 return; 159 1 1 /* Begin include file ...... fs_dev_types.incl.pl1 */ 1 2 1 3 /****^ HISTORY COMMENTS: 1 4* 1) change(85-09-09,Farley), approve(85-09-09,MCR6979), 1 5* audit(86-01-17,CLJones), install(86-03-21,MR12.0-1033): 1 6* Add support for FIPS 1 7* 3380. 1 8* 2) change(86-04-21,Fawcett), approve(86-04-21,MCR7383), 1 9* audit(86-05-15,Coppola), install(86-07-18,MR12.0-1098): 1 10* Add the support for subvolumes for the MSU3380 and MSU3390. 1 11* 3) change(86-10-02,Fawcett), approve(86-10-02,PBF7383), 1 12* audit(86-10-23,Farley), install(86-10-28,MR12.0-1200): 1 13* Changed 3390 to 3381, "d338" to "3380" & "d339" to "3381". 1 14* END HISTORY COMMENTS */ 1 15 1 16 /* Modified 5/19/76 by N. I. Morris */ 1 17 /* Modified 12/27/78 by Michael R. Jordan to correct MSS0500 information */ 1 18 /* Modified 4/79 by R.J.C. Kissel to add msu0501 information. */ 1 19 /* Modified '82 by BIM for needs_alt_part */ 1 20 /* Modified 4/84 by Chris Jones for FIPS disks */ 1 21 /* Modified 12/84 by Paul Farley for FIPS disks formatted for 512wd sectors */ 1 22 /* Modified 1/85 by Paul Farley to decrease the size of the 3380, until the 1 23* volmap and record stock can be expanded. */ 1 24 1 25 /* 1 26******************************************************************************** 1 27** * 1 28** WARNING: * 1 29** * 1 30** There exists fs_dev_types.incl.alm that must me updated when a new device * 1 31** type is added. * 1 32** * 1 33** There are other include files that contain arrays indexed by the device * 1 34** index obtained by references to MODELX or MODELN in this include file. * 1 35** These must be modified when a new device type is added: * 1 36** disk_pack.incl.pl1 * 1 37** fs_dev_types_sector.incl.pl1 (included in this include) * 1 38** * 1 39******************************************************************************** 1 40**/ 1 41 1 42 1 43 dcl (maxdevt init (9), /* maximum legal devt */ 1 44 bulkdevt init (1), /* bulk store devt */ 1 45 msu0500devt init (2), /* MSU0500 device type */ 1 46 msu0451devt init (3), /* MSU0451 device type */ 1 47 msu0450devt init (3), /* MSU0450 device type */ 1 48 msu0400devt init (4), /* MSU0400 device type */ 1 49 dsu191devt init (4), /* DSU191 device type */ 1 50 dsu190devt init (5), /* DSU190 device type */ 1 51 dsu181devt init (6), /* DSU181 device type */ 1 52 msu0501devt init (7), /* MSU0501 device type */ 1 53 fips3380devt init (8), /* 3380D FIPS device type */ 1 54 fips3381devt init (9) /* 3380E FIPS device type */ 1 55 ) fixed bin (4) static options (constant); 1 56 1 57 dcl MODEL (12) fixed bin static options (constant) init /* Known device model numbers */ 1 58 (0, 500, 451, 450, 400, 402, 191, 190, 181, 501, 3380, 3381); 1 59 1 60 dcl MODELX (12) fixed bin static options (constant) init /* translation from model number to device type */ 1 61 (1, 2, 3, 3, 4, 4, 4, 5, 6, 7, 8, 9); 1 62 1 63 dcl MODELN (9) fixed bin static options (constant) init /* translation from device type to model number */ 1 64 (0, 500, 451, 400, 190, 181, 501, 3380, 3381); 1 65 1 66 dcl device_names (9) char (4) aligned static options (constant) init /* device names indexed by device type */ 1 67 ("bulk", "d500", "d451", "d400", "d190", "d181", "d501", "3380", "3381"); 1 68 1 69 dcl first_dev_number (9) fixed bin (17) static options (constant) init /* First valid device_number */ 1 70 (1, 1, 1, 1, 1, 1, 1, 0, 0); 1 71 1 72 dcl fips_type_disk (9) bit (1) unal static options (constant) init /* ON => FIPS disk */ 1 73 ("0"b,"0"b,"0"b,"0"b,"0"b,"0"b,"0"b,"1"b,"1"b); 1 74 1 75 dcl media_removable (9) bit (1) static options (constant) init /* ON => demountable pack on device */ 1 76 ("0"b, "0"b, "1"b, "1"b, "1"b, "1"b, "0"b, "0"b, "0"b); 1 77 1 78 dcl shared_spindle (9) bit (1) static options (constant) init /* ON => 2 devices per spindle */ 1 79 ("0"b, "1"b, "0"b, "0"b, "0"b, "0"b, "1"b, "0"b, "0"b); 1 80 1 81 dcl needs_alt_part (9) bit (1) static options (constant) init /* ON => needs alternate partition to run alternate tracks */ 1 82 ("0"b, "0"b, "1"b, "1"b, "1"b, "1"b, "0"b, "0"b, "0"b); 1 83 1 84 dcl seek_command (9) bit (6) init /* Seek command: 00 => N/A, 30 => Seek_512, 34 => seek_64 */ 1 85 ("00"b3,"34"b3,"34"b3,"34"b3,"34"b3,"34"b3,"34"b3,"30"b3, "30"b3); 1 86 1 87 dcl rec_per_dev (9) fixed bin (21) static options (constant) init /* table of # of records on each device */ 1 88 (0, 38258, 38258, 19270, 14760, 4444, 67200, 112395, 224790); 1 89 1 90 dcl rec_per_sv (9) fixed bin static options (constant) init /* table of # of records on each subvol */ 1 91 (0, 38258, 38258, 19270, 14760, 4444, 67200, 56134, 74930); 1 92 1 93 dcl number_of_sv (9) fixed bin static options (constant) init /* table of subvolumes */ 1 94 (0, 0, 0, 0, 0, 0, 0, 2, 3); 1 95 1 96 dcl valid_sv_string char (3) static options (constant) init /* string of valid subvolume names */ 1 97 ("abc"); 1 98 1 99 dcl valid_sv_array (0:2) char (1) static options (constant) /* array of valid subvolume names */ 1 100 init ("a","b","c"); 1 101 1 102 dcl cyl_per_dev (9) fixed bin static options (constant) init /* table of # of cylinders on each device */ 1 103 (0, 814, 814, 410, 410, 202, 840, 885, 1770); 1 104 1 105 dcl cyl_per_sv (9) fixed bin static options (constant) init /* table of # of cylinders on each subvolume */ 1 106 (0, 814, 814, 410, 410, 202, 840, 442, 590); 1 107 1 108 dcl rec_per_cyl (9) fixed bin static options (constant) init /* table of # of records per cylinder on each device */ 1 109 (0, 47, 47, 47, 36, 22, 80, 127, 127); 1 110 1 111 dcl tracks_per_cyl (9) fixed bin static options (constant) init /* table of # of tracks per cylinder on each device */ 1 112 (0, 19, 19, 19, 19, 20, 20, 15, 15); 1 113 1 114 1 115 dcl first_rec_num (9) fixed bin static options (constant) init /* table of # of first record on each device */ 1 116 (0, 0, 0, 0, 0, 0, 0, 0, 0); 1 117 1 118 dcl last_rec_num (9) fixed bin (18) static options (constant) init /* table of # of last record on each device */ 1 119 (0, 38257, 38116, 19128, 14651, 4399, 67199, 112394, 224789); 1 120 1 121 dcl last_sv_rec_num (9) fixed bin (18) static options (constant) init /* table of # of last record on each subvolume */ 1 122 (0, 38257, 38116, 19128, 14651, 4399, 67199, 56133, 74929); 1 123 1 124 dcl first_sect_num (9) fixed bin (24) static options (constant) init /* table of # of first sector for each device */ 1 125 (0, 0, 0, 0, 0, 0, 0, 0, 0); 1 126 1 127 dcl last_sect_num (9) fixed bin (24) static options (constant) init /* table of # last sector number for each device */ 1 128 (0, 618639, 616359, 309319, 239722, 71999, 1075199, 225674, 451349); 1 129 1 130 dcl first_alt_sect_num (9) fixed bin (24) static options (constant) init /* table of # of first sector of alt partition */ 1 131 (0, 638400, 616360, 309320, 239723, 72000, 1075200, 225675, 451350); 1 132 1 133 dcl last_alt_sect_num (9) fixed bin (24) static options (constant) init /* table of # of last sector of alt partition */ 1 134 (0, 639919, 618639, 311599, 241489, 72719, 1077759, 225930, 451605); 1 135 1 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) */ 1 137 (0, 639919, 619399, 312359, 242249, 72359, 1077759, 225674, 451859); 1 138 1 139 dcl dev_time (9) float bin (27) static options (constant) init /* table of average access times for each device */ 1 140 (384e0, 33187e0, 33187e0, 34722e0, 46935e0, 52631e0, 33187e0, 26260e0, 26260e0); 1 141 2 1 /* Begin fs_dev_types_sector.incl.pl1 */ 2 2 2 3 2 4 /****^ HISTORY COMMENTS: 2 5* 1) change(86-04-21,Fawcett), approve(86-04-21,MCR7383), 2 6* audit(86-05-12,Coppola), install(86-07-18,MR12.0-1098): 2 7* Add the sector differance for devices that do 64 word IO and devices that 2 8* do 512 word IO. 2 9* END HISTORY COMMENTS */ 2 10 2 11 /* Created by R. A. Fawcett for 512 word IO. for procedures that do not 2 12* need all the data in fs_dev_types. This is also included in 2 13* fs_dev_types.incl.pl1 */ 2 14 2 15 dcl sect_per_cyl (9) fixed bin static options (constant) init /* table of # of sectors per cylinder on each device */ 2 16 (0, 760, 760, 760, 589, 360, 1280, 255, 255); 2 17 2 18 dcl sect_per_sv (9) fixed bin (24) static options (constant) init /* table of # of sectors per cylinder on each subvolume */ 2 19 (0, 0, 0, 0, 0, 0, 0, 112710, 150450); 2 20 2 21 dcl sect_per_rec (9) fixed bin static options (constant) init 2 22 /* table of # of sectors per record on each device */ 2 23 /* coresponding array in disk_pack.incl.pl1 called SECTORS_PER_RECORD */ 2 24 (0, 16, 16, 16, 16, 16, 16, 2, 2); 2 25 2 26 dcl sect_per_vtoc (9) fixed bin static options (constant) init 2 27 (0, 3, 3, 3, 3, 3, 3, 1, 1); 2 28 2 29 dcl vtoc_per_rec (9) fixed bin static options (constant) init 2 30 /* corespending array in disk_pack.incl.pl1 named VTOCES_PER_RECORD */ 2 31 (0, 5, 5, 5, 5, 5, 5, 2, 2); 2 32 2 33 dcl sect_per_track (9) fixed bin static options (constant) init /* table of # of sectors per track on each device */ 2 34 (0, 40, 40, 40, 31, 18, 64, 17, 17); 2 35 2 36 dcl words_per_sect (9) fixed bin static options (constant) init /* table of # of words per sector on each device */ 2 37 (0, 64, 64, 64, 64, 64, 64, 512, 512); 2 38 2 39 /* End fs_dev_types_sector.incl.pl1 */ 2 40 1 142 1 143 1 144 /* End of include file ...... fs_dev_types.incl.pl1 */ 160 161 3 1 /* BEGIN INCLUDE FILE ... pvt.incl.pl1 ... last modified January 1982 */ 3 2 3 3 3 4 /* The physical volume table (PVT) is a wired-down table. 3 5* It has one entry for each spindle present, be it for 3 6* Storage System or "I/O" use. 3 7**/ 3 8 3 9 dcl pvt$ ext, 3 10 pvtp ptr; 3 11 3 12 3 13 dcl 1 pvt based (pvtp) aligned, 3 14 3 15 2 n_entries fixed bin (17), /* number of PVT entries */ 3 16 2 max_n_entries fixed bin (17), /* max number of PVT entries */ 3 17 2 n_in_use fixed bin (17), /* number of PVT entries in use */ 3 18 2 rwun_pvtx fixed bin, /* rewind_unloading pvtx */ 3 19 2 shutdown_state fixed bin, /* state of previous shutdown */ 3 20 2 esd_state fixed bin, /* state of ESD, >0 iff in ESD */ 3 21 2 prev_shutdown_state fixed bin, /* shutdown state of previous bootload */ 3 22 2 prev_esd_state fixed bin, /* ESD state of previous bootload */ 3 23 3 24 2 time_of_bootload fixed bin (71), /* Time of bootload */ 3 25 2 root_lvid bit (36) aligned, /* Logical volume ID of Root Logical Volume (RLV) */ 3 26 2 root_pvid bit (36) aligned, /* Physical volume ID of Root Physical Volume (RPV) */ 3 27 2 root_pvtx fixed bin, /* Index to PVTE for Root Physical Volume (RPV) */ 3 28 2 root_vtocx fixed bin, /* VTOCE index for root (>) */ 3 29 2 disk_table_vtocx fixed bin, /* VTOCE index for disk table on RPV */ 3 30 2 disk_table_uid bit (36) aligned, /* File System UID for disk_table */ 3 31 3 32 2 rpvs_requested bit (1) aligned, /* RPVS keyword given on BOOT */ 3 33 2 rpv_needs_salv bit (1) aligned, /* RPV required (not requested) salvage */ 3 34 2 rlv_needs_salv bit (1) aligned, /* RLV required (not requested) salvage */ 3 35 2 volmap_lock_wait_constant bit (36) aligned,/* For constructing wait event: OR pvte_rel into lower */ 3 36 2 volmap_idle_wait_constant bit (36) aligned,/* For constructing wait event: OR pvte_rel into lower */ 3 37 2 vtoc_map_lock_wait_constant bit (36) aligned, /* For constructing wait event: OR pvte_rel into lower */ 3 38 2 n_volmap_locks_held fixed bin (17), /* Current number of volmap locks held */ 3 39 2 n_vtoc_map_locks_held fixed bin (17), /* Current number of VTOC Map locks held */ 3 40 3 41 2 last_volmap_time fixed bin (71), /* Time a volmap was last locked/unlocked */ 3 42 2 last_vtoc_map_time fixed bin (71), /* Time a VTOC Map was last locked/unlocked */ 3 43 2 total_volmap_lock_time fixed bin (71), /* Total time volmap's were locked (integral) */ 3 44 2 total_vtoc_map_lock_time fixed bin (71), /* Total time VTOC Maps were locked (integral) */ 3 45 3 46 2 n_volmap_locks fixed bin (35), /* Number times a volmap was locked */ 3 47 2 n_vtoc_map_locks fixed bin (35), /* Number times a vtoc_map was locked */ 3 48 2 volmap_lock_nowait_calls fixed bin (35), /* Number calls to lock volmap, no wait */ 3 49 2 volmap_lock_nowait_fails fixed bin (35), /* Number times lock failed */ 3 50 2 volmap_lock_wait_calls fixed bin (35), /* Number calls to lock volmap, wait */ 3 51 2 volmap_lock_wait_fails fixed bin (35), /* Number times lock failed */ 3 52 2 pad (2) bit (36) aligned, 3 53 3 54 2 array fixed bin (71); /* Array of PVTE's -- must be double-word aligned */ 3 55 3 56 3 57 3 58 /* END INCLUDE FILE ...pvt.incl.pl1 */ 162 163 4 1 /* START OF: pvte.incl.pl1 July 1982 * * * * * * * * * * * * * * * * */ 4 2 4 3 /* Added pc_vacating, Benson Margulies 84-10-17 */ 4 4 4 5 /****^ HISTORY COMMENTS: 4 6* 1) change(86-04-11,Fawcett), approve(86-04-11,MCR7383), 4 7* audit(86-05-29,GDixon), install(86-07-18,MR12.0-1098): 4 8* Add the support for subvolumes 4 9* 2) change(86-04-11,Lippard), approve(86-04-11,MCR7309), 4 10* audit(86-05-29,GDixon), install(86-07-18,MR12.0-1098): 4 11* Add root_lv flag to mount RLVs that do not have hardcore partitions. 4 12* 3) change(88-05-27,GWMay), approve(88-05-27,MCR7883), 4 13* audit(88-06-14,Beattie), install(88-07-19,MR12.2-1061): 4 14* Added inconsistent_dbm bit for determining the status of volume 4 15* dumper bit maps. 4 16* END HISTORY COMMENTS */ 4 17 4 18 dcl pvt$array aligned external; 4 19 dcl pvt$max_n_entries fixed bin external; 4 20 4 21 dcl pvt_arrayp ptr; 4 22 dcl pvtep ptr; 4 23 4 24 dcl 1 pvt_array (pvt$max_n_entries) aligned like pvte based (pvt_arrayp); 4 25 4 26 dcl 1 pvte based (pvtep) aligned, 4 27 4 28 2 pvid bit (36), /* physical volume ID */ 4 29 4 30 2 lvid bit (36), /* logical volume ID */ 4 31 4 32 2 dmpr_in_use (3) bit (1) unaligned, /* physical volume dumper interlock */ 4 33 2 is_sv bit (1) unaligned, /* true if this entry defines a subvolume */ 4 34 2 root_lv bit (1) unaligned, /* true if this is on the root LV */ 4 35 2 removable_pack bit (1) unaligned, /* true if packs are eremoveable */ 4 36 2 inconsistent_dbm bit (1) unaligned, /* true if trouble count is incremented */ 4 37 2 pad3 bit (2) unaligned, 4 38 2 brother_pvtx fixed bin (8) unaligned,/* next pvte in lv chain */ 4 39 2 skip_queue_count fixed bin (18) unsigned unaligned, /* number of times this pv skipped for per-proc allocation due to saturation */ 4 40 4 41 4 42 4 43 2 devname char (4), /* device name */ 4 44 4 45 (2 device_type fixed bin (8), /* device type */ 4 46 2 logical_area_number fixed bin (8), /* disk drive number */ 4 47 2 used bit (1), /* TRUE if this entry is used */ 4 48 2 storage_system bit (1), /* TRUE for storage system (vs io disk) */ 4 49 2 permanent bit (1), /* TRUE if cannot be demounted */ 4 50 2 testing bit (1), /* Protocol bit for read_disk$test */ 4 51 2 being_mounted bit (1), /* TRUE if the physical volume is being mounted */ 4 52 2 being_demounted bit (1), /* TRUE if the pysical volume is being demounted */ 4 53 2 check_read_incomplete bit (1), /* page control should check read incomplete */ 4 54 2 device_inoperative bit (1), /* TRUE if disk_control decides dev busted */ 4 55 2 rpv bit (1), /* TRUE if this is the root physical volume */ 4 56 2 scav_check_address 4 57 bit (1), /* TRUE is page control should check deposits/withdrawals against scavenger table */ 4 58 2 deposit_to_volmap bit (1), /* TRUE if deposits should got to volume map, not stock */ 4 59 2 being_demounted2 bit (1), /* No more vtoc I/O during demount */ 4 60 2 pc_vacating bit (1), /* No more withdraws from this volume -- for debugging */ 4 61 2 vacating bit (1), /* don't put new segs on this vol */ 4 62 2 hc_part_used bit (1), /* HC part set up by init_pvt */ 4 63 2 volmap_lock_notify bit (1) unal, /* TRUE if notify required when volmap lock is unlocked */ 4 64 2 volmap_idle_notify bit (1) unal, /* TRUE if notify required when volmap state is idle */ 4 65 2 vtoc_map_lock_notify bit (1) unal, /* TRUE if notify required when vtoc map lock is unlocked */ 4 66 4 67 4 68 2 n_free_vtoce fixed bin (17), /* number of free VTOC entries */ 4 69 2 vtoc_size fixed bin (17), /* size of the VTOC part of the disk - in records */ 4 70 4 71 2 dbmrp (2) bit (18), /* rel ptr to dumber bit maps for this volume */ 4 72 4 73 2 nleft fixed bin (17), /* number of records left */ 4 74 2 totrec fixed bin (17)) unaligned, /* Total records in this map */ 4 75 4 76 2 dim_info bit (36), /* Information peculiar to DIM */ 4 77 2 sv_num fixed bin, /* the number of this subvolume starting at 0 */ 4 78 2 num_of_svs fixed bin, /* number of subvolumes for this device */ 4 79 2 records_per_cyl fixed bin, 4 80 2 record_factor fixed bin, /* the record factor for logical to real seek calculation */ 4 81 2 sv_name char (2) aligned, 4 82 2 curn_dmpr_vtocx (3) fixed bin unaligned,/* current vtocx being dumped */ 4 83 2 n_vtoce fixed bin unaligned, /* number of vtoce on this volume */ 4 84 4 85 2 baseadd fixed bin (18) uns unaligned, /* Base of paging region */ 4 86 2 pad2 bit (18) unaligned, 4 87 4 88 2 pad_for_mod_2 fixed bin (35), /* Make volmap_seg_sdw double word aligned */ 4 89 4 90 2 volmap_seg_sdw fixed bin (71), /* SDW describing volmap_seg */ 4 91 4 92 2 volmap_astep ptr unal, /* Packed pointer to ASTE for volmap_seg */ 4 93 4 94 2 volmap_offset bit (18) unal, /* Offset in volmap_seg of volume map */ 4 95 2 vtoc_map_offset bit (18) unal, /* Offset in volmap_seg of VTOC map */ 4 96 4 97 4 98 2 volmap_lock bit (36) aligned, /* Lock on volume map operations */ 4 99 4 100 2 vtoc_map_lock bit (36) aligned, /* Lock on VTOC map operations */ 4 101 4 102 2 volmap_stock_ptr ptr unal, /* Packed pointer to record stock */ 4 103 4 104 2 vtoc_map_stock_ptr ptr unal, /* Packed pointer to VTOCE stock */ 4 105 4 106 2 volmap_async_state fixed bin (17) unaligned, /* Asynchronous update state of Volume Map */ 4 107 2 volmap_async_page fixed bin (17) unaligned, /* Page number for asynchronous update */ 4 108 4 109 2 vol_trouble_count fixed bin (17) unaligned, /* Count of inconsistencies since last salvage */ 4 110 2 scavenger_block_rel bit (18) unaligned; /* Offset to scavenger block, ^0 => scavenging */ 4 111 4 112 4 113 dcl (VOLMAP_ASYNC_IDLE init (0), /* for volmap_async_state */ 4 114 VOLMAP_ASYNC_READ init (1), 4 115 VOLMAP_ASYNC_WRITE init (2)) fixed bin int static options (constant); 4 116 4 117 4 118 /* END OF: pvte.incl.pl1 * * * * * * * * * * * * * * * * */ 164 165 end disk_name_pvtx; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 11/11/89 0839.5 disk_name_pvtx.pl1 >special_ldd>install>MR12.3-1114>disk_name_pvtx.pl1 160 1 10/30/86 2010.5 fs_dev_types.incl.pl1 >ldd>include>fs_dev_types.incl.pl1 1-142 2 07/24/86 2051.8 fs_dev_types_sector.incl.pl1 >ldd>include>fs_dev_types_sector.incl.pl1 162 3 05/27/82 1525.8 pvt.incl.pl1 >ldd>include>pvt.incl.pl1 164 4 07/21/88 2036.0 pvte.incl.pl1 >ldd>include>pvte.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. a_code parameter fixed bin(35,0) dcl 54 set ref 51 98 147* 149* 152* 155* a_dev parameter char(4) packed unaligned dcl 56 ref 98 102 a_dev_name parameter char(8) packed unaligned dcl 55 ref 51 90 92 93 94 a_pvtx parameter fixed bin(17,0) dcl 57 set ref 51 98 146* a_subsys parameter char(4) packed unaligned dcl 58 ref 98 101 addr builtin function dcl 80 ref 124 125 after builtin function dcl 80 ref 94 array 50 based fixed bin(71,0) level 2 dcl 3-13 set ref 125 before builtin function dcl 80 ref 93 code 000100 automatic fixed bin(35,0) dcl 63 set ref 113* 117* 120 cv_dec_check_ 000010 constant entry external dcl 76 ref 113 117 device_type 4 based fixed bin(8,0) array level 2 packed packed unaligned dcl 4-24 ref 133 devname 000101 automatic char(4) packed unaligned dcl 64 in procedure "disk_name_pvtx" set ref 94* 102* 109 113 113 116 117 117 devname 3 based char(4) array level 2 in structure "pvt_array" dcl 4-24 in procedure "disk_name_pvtx" ref 127 140 devnum 000102 automatic fixed bin(17,0) dcl 65 set ref 113* 117* 122 127 140 error_table_$resource_unknown 000012 external static fixed bin(35,0) dcl 85 ref 152 error_table_$subvol_invalid 000016 external static fixed bin(35,0) dcl 87 ref 149 error_table_$subvol_needed 000014 external static fixed bin(35,0) dcl 86 ref 155 inc 000103 automatic fixed bin(17,0) dcl 66 set ref 109* 110 116 117 117 137* 138 139 index builtin function dcl 80 ref 92 137 length builtin function dcl 80 ref 90 logical_area_number 4(09) based fixed bin(8,0) array level 2 packed packed unaligned dcl 4-24 ref 127 140 n_entries based fixed bin(17,0) level 2 dcl 3-13 ref 127 131 145 name_length 000104 automatic fixed bin(17,0) dcl 67 set ref 90* 91 number_of_sv 000001 constant fixed bin(17,0) initial array dcl 1-93 ref 133 pvt based structure level 1 dcl 3-13 pvt$ 000020 external static fixed bin(17,0) dcl 3-9 set ref 124 pvt_array based structure array level 1 dcl 4-24 pvt_arrayp 000116 automatic pointer dcl 4-21 set ref 125* 127 127 133 140 140 140 pvte based structure level 1 dcl 4-26 pvtp 000114 automatic pointer dcl 3-9 set ref 124* 125 127 131 145 pvtx 000110 automatic fixed bin(17,0) dcl 71 set ref 127* 127 127* 131 133 139* 139 140 140 140 145 146 rtrim builtin function dcl 80 ref 90 113 113 search builtin function dcl 80 ref 109 seek_command 000112 automatic bit(6) initial array packed unaligned dcl 1-84 set ref 1-84* 1-84* 1-84* 1-84* 1-84* 1-84* 1-84* 1-84* 1-84* substr builtin function dcl 80 ref 104 116 117 117 137 subsys 000105 automatic char(4) packed unaligned dcl 68 set ref 93* 101* 104 127 140 sv_idx 000106 automatic fixed bin(17,0) dcl 69 set ref 133* 134 137 sv_name 15 based char(2) array level 2 dcl 4-24 ref 140 the_sv 000107 automatic char(1) packed unaligned dcl 70 set ref 111* 116* 136 137 140 144 valid_sv_string 000000 constant char(3) initial packed unaligned dcl 1-96 ref 109 137 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. MODEL internal static fixed bin(17,0) initial array dcl 1-57 MODELN internal static fixed bin(17,0) initial array dcl 1-63 MODELX internal static fixed bin(17,0) initial array dcl 1-60 VOLMAP_ASYNC_IDLE internal static fixed bin(17,0) initial dcl 4-113 VOLMAP_ASYNC_READ internal static fixed bin(17,0) initial dcl 4-113 VOLMAP_ASYNC_WRITE internal static fixed bin(17,0) initial dcl 4-113 bulkdevt internal static fixed bin(4,0) initial dcl 1-43 cyl_per_dev internal static fixed bin(17,0) initial array dcl 1-102 cyl_per_sv internal static fixed bin(17,0) initial array dcl 1-105 dev_time internal static float bin(27) initial array dcl 1-139 device_names internal static char(4) initial array dcl 1-66 dsu181devt internal static fixed bin(4,0) initial dcl 1-43 dsu190devt internal static fixed bin(4,0) initial dcl 1-43 dsu191devt internal static fixed bin(4,0) initial dcl 1-43 fips3380devt internal static fixed bin(4,0) initial dcl 1-43 fips3381devt internal static fixed bin(4,0) initial dcl 1-43 fips_type_disk internal static bit(1) initial array packed unaligned dcl 1-72 first_alt_sect_num internal static fixed bin(24,0) initial array dcl 1-130 first_dev_number internal static fixed bin(17,0) initial array dcl 1-69 first_rec_num internal static fixed bin(17,0) initial array dcl 1-115 first_sect_num internal static fixed bin(24,0) initial array dcl 1-124 last_alt_sect_num internal static fixed bin(24,0) initial array dcl 1-133 last_physical_sect_num internal static fixed bin(24,0) initial array dcl 1-136 last_rec_num internal static fixed bin(18,0) initial array dcl 1-118 last_sect_num internal static fixed bin(24,0) initial array dcl 1-127 last_sv_rec_num internal static fixed bin(18,0) initial array dcl 1-121 maxdevt internal static fixed bin(4,0) initial dcl 1-43 media_removable internal static bit(1) initial array packed unaligned dcl 1-75 msu0400devt internal static fixed bin(4,0) initial dcl 1-43 msu0450devt internal static fixed bin(4,0) initial dcl 1-43 msu0451devt internal static fixed bin(4,0) initial dcl 1-43 msu0500devt internal static fixed bin(4,0) initial dcl 1-43 msu0501devt internal static fixed bin(4,0) initial dcl 1-43 needs_alt_part internal static bit(1) initial array packed unaligned dcl 1-81 pvt$array external static fixed bin(17,0) dcl 4-18 pvt$max_n_entries external static fixed bin(17,0) dcl 4-19 pvtep automatic pointer dcl 4-22 rec_per_cyl internal static fixed bin(17,0) initial array dcl 1-108 rec_per_dev internal static fixed bin(21,0) initial array dcl 1-87 rec_per_sv internal static fixed bin(17,0) initial array dcl 1-90 sect_per_cyl internal static fixed bin(17,0) initial array dcl 2-15 sect_per_rec internal static fixed bin(17,0) initial array dcl 2-21 sect_per_sv internal static fixed bin(24,0) initial array dcl 2-18 sect_per_track internal static fixed bin(17,0) initial array dcl 2-33 sect_per_vtoc internal static fixed bin(17,0) initial array dcl 2-26 shared_spindle internal static bit(1) initial array packed unaligned dcl 1-78 tracks_per_cyl internal static fixed bin(17,0) initial array dcl 1-111 valid_sv_array internal static char(1) initial array packed unaligned dcl 1-99 vtoc_per_rec internal static fixed bin(17,0) initial array dcl 2-29 words_per_sect internal static fixed bin(17,0) initial array dcl 2-36 NAMES DECLARED BY EXPLICIT CONTEXT. Error_exit 000526 constant label dcl 157 ref 151 154 common_checks 000241 constant label dcl 104 ref 95 disk_name_pvtx 000116 constant entry external dcl 51 disk_name_pvtx$subsys_dev 000215 constant entry external dcl 98 need_sub 000523 constant label dcl 155 ref 136 no_such_drive 000517 constant label dcl 152 ref 91 92 104 120 122 131 140 144 145 not_valid_sv 000513 constant label dcl 149 ref 138 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 1044 1066 731 1054 Length 1332 731 22 227 112 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME disk_name_pvtx 106 external procedure is an external procedure. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME disk_name_pvtx 000100 code disk_name_pvtx 000101 devname disk_name_pvtx 000102 devnum disk_name_pvtx 000103 inc disk_name_pvtx 000104 name_length disk_name_pvtx 000105 subsys disk_name_pvtx 000106 sv_idx disk_name_pvtx 000107 the_sv disk_name_pvtx 000110 pvtx disk_name_pvtx 000112 seek_command disk_name_pvtx 000114 pvtp disk_name_pvtx 000116 pvt_arrayp disk_name_pvtx THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. alloc_char_temp call_ext_out_desc return_mac shorten_stack ext_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. cv_dec_check_ THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$resource_unknown error_table_$subvol_invalid error_table_$subvol_needed pvt$ LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 1 84 000021 51 000112 90 000131 91 000145 92 000147 93 000161 94 000171 95 000207 98 000210 101 000230 102 000235 104 000241 109 000245 110 000257 111 000260 113 000262 114 000324 116 000326 117 000332 118 000364 120 000365 122 000367 124 000372 125 000375 127 000377 130 000422 131 000424 133 000427 134 000435 136 000436 137 000443 138 000454 139 000455 140 000456 143 000477 144 000500 145 000505 146 000510 147 000511 148 000512 149 000513 151 000516 152 000517 154 000522 155 000523 157 000526 ----------------------------------------------------------- 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