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                             *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  */