1 /* START OF: pvte.incl.pl1 July 1982 * * * * * * * * * * * * * * * * */ 2 3 /* Added pc_vacating, Benson Margulies 84-10-17 */ 4 5 /****^ HISTORY COMMENTS: 6 1) change(86-04-11,Fawcett), approve(86-04-11,MCR7383), 7 audit(86-05-29,GDixon), install(86-07-18,MR12.0-1098): 8 Add the support for subvolumes 9 2) change(86-04-11,Lippard), approve(86-04-11,MCR7309), 10 audit(86-05-29,GDixon), install(86-07-18,MR12.0-1098): 11 Add root_lv flag to mount RLVs that do not have hardcore partitions. 12 3) change(88-05-27,GWMay), approve(88-05-27,MCR7883), 13 audit(88-06-14,Beattie), install(88-07-19,MR12.2-1061): 14 Added inconsistent_dbm bit for determining the status of volume 15 dumper bit maps. 16 END HISTORY COMMENTS */ 17 18 dcl pvt$array aligned external; 19 dcl pvt$max_n_entries fixed bin external; 20 21 dcl pvt_arrayp ptr; 22 dcl pvtep ptr; 23 24 dcl 1 pvt_array (pvt$max_n_entries) aligned like pvte based (pvt_arrayp); 25 26 dcl 1 pvte based (pvtep) aligned, 27 28 2 pvid bit (36), /* physical volume ID */ 29 30 2 lvid bit (36), /* logical volume ID */ 31 32 2 dmpr_in_use (3) bit (1) unaligned, /* physical volume dumper interlock */ 33 2 is_sv bit (1) unaligned, /* true if this entry defines a subvolume */ 34 2 root_lv bit (1) unaligned, /* true if this is on the root LV */ 35 2 removable_pack bit (1) unaligned, /* true if packs are eremoveable */ 36 2 inconsistent_dbm bit (1) unaligned, /* true if trouble count is incremented */ 37 2 pad3 bit (2) unaligned, 38 2 brother_pvtx fixed bin (8) unaligned,/* next pvte in lv chain */ 39 2 skip_queue_count fixed bin (18) unsigned unaligned, /* number of times this pv skipped for per-proc allocation due to saturation */ 40 41 42 43 2 devname char (4), /* device name */ 44 45 (2 device_type fixed bin (8), /* device type */ 46 2 logical_area_number fixed bin (8), /* disk drive number */ 47 2 used bit (1), /* TRUE if this entry is used */ 48 2 storage_system bit (1), /* TRUE for storage system (vs io disk) */ 49 2 permanent bit (1), /* TRUE if cannot be demounted */ 50 2 testing bit (1), /* Protocol bit for read_disk$test */ 51 2 being_mounted bit (1), /* TRUE if the physical volume is being mounted */ 52 2 being_demounted bit (1), /* TRUE if the pysical volume is being demounted */ 53 2 check_read_incomplete bit (1), /* page control should check read incomplete */ 54 2 device_inoperative bit (1), /* TRUE if disk_control decides dev busted */ 55 2 rpv bit (1), /* TRUE if this is the root physical volume */ 56 2 scav_check_address 57 bit (1), /* TRUE is page control should check deposits/withdrawals against scavenger table */ 58 2 deposit_to_volmap bit (1), /* TRUE if deposits should got to volume map, not stock */ 59 2 being_demounted2 bit (1), /* No more vtoc I/O during demount */ 60 2 pc_vacating bit (1), /* No more withdraws from this volume -- for debugging */ 61 2 vacating bit (1), /* don't put new segs on this vol */ 62 2 hc_part_used bit (1), /* HC part set up by init_pvt */ 63 2 volmap_lock_notify bit (1) unal, /* TRUE if notify required when volmap lock is unlocked */ 64 2 volmap_idle_notify bit (1) unal, /* TRUE if notify required when volmap state is idle */ 65 2 vtoc_map_lock_notify bit (1) unal, /* TRUE if notify required when vtoc map lock is unlocked */ 66 67 68 2 n_free_vtoce fixed bin (17), /* number of free VTOC entries */ 69 2 vtoc_size fixed bin (17), /* size of the VTOC part of the disk - in records */ 70 71 2 dbmrp (2) bit (18), /* rel ptr to dumber bit maps for this volume */ 72 73 2 nleft fixed bin (17), /* number of records left */ 74 2 totrec fixed bin (17)) unaligned, /* Total records in this map */ 75 76 2 dim_info bit (36), /* Information peculiar to DIM */ 77 2 sv_num fixed bin, /* the number of this subvolume starting at 0 */ 78 2 num_of_svs fixed bin, /* number of subvolumes for this device */ 79 2 records_per_cyl fixed bin, 80 2 record_factor fixed bin, /* the record factor for logical to real seek calculation */ 81 2 sv_name char (2) aligned, 82 2 curn_dmpr_vtocx (3) fixed bin unaligned,/* current vtocx being dumped */ 83 2 n_vtoce fixed bin unaligned, /* number of vtoce on this volume */ 84 85 2 baseadd fixed bin (18) uns unaligned, /* Base of paging region */ 86 2 pad2 bit (18) unaligned, 87 88 2 pad_for_mod_2 fixed bin (35), /* Make volmap_seg_sdw double word aligned */ 89 90 2 volmap_seg_sdw fixed bin (71), /* SDW describing volmap_seg */ 91 92 2 volmap_astep ptr unal, /* Packed pointer to ASTE for volmap_seg */ 93 94 2 volmap_offset bit (18) unal, /* Offset in volmap_seg of volume map */ 95 2 vtoc_map_offset bit (18) unal, /* Offset in volmap_seg of VTOC map */ 96 97 98 2 volmap_lock bit (36) aligned, /* Lock on volume map operations */ 99 100 2 vtoc_map_lock bit (36) aligned, /* Lock on VTOC map operations */ 101 102 2 volmap_stock_ptr ptr unal, /* Packed pointer to record stock */ 103 104 2 vtoc_map_stock_ptr ptr unal, /* Packed pointer to VTOCE stock */ 105 106 2 volmap_async_state fixed bin (17) unaligned, /* Asynchronous update state of Volume Map */ 107 2 volmap_async_page fixed bin (17) unaligned, /* Page number for asynchronous update */ 108 109 2 vol_trouble_count fixed bin (17) unaligned, /* Count of inconsistencies since last salvage */ 110 2 scavenger_block_rel bit (18) unaligned; /* Offset to scavenger block, ^0 => scavenging */ 111 112 113 dcl (VOLMAP_ASYNC_IDLE init (0), /* for volmap_async_state */ 114 VOLMAP_ASYNC_READ init (1), 115 VOLMAP_ASYNC_WRITE init (2)) fixed bin int static options (constant); 116 117 118 /* END OF: pvte.incl.pl1 * * * * * * * * * * * * * * * * */