Programming Interface Information:
This information is NOT intended to be
used as Programming Interfaces of z/VM.

CPVOL

Prolog  

Control Block Contents  
   CPVOL DSECT

Storage Layout  

Cross Reference (Contains links to field and bit definitions)  


CPVOL Prolog

 NAME       : HCPCPVOL
 DESCRIPTION: System Volume List Entry
 DSECT      : CPVOL
 FUNCTION   : A CPVOL describes a volume that is dedicated
              for use by the system.
 LOCATED BY : CPVNEXT  - Field of HCPCPVOL block used for paging
              reference to indicate the next device
              of the same type.
              RDEVVOL  - Field of HCPRDEV block
              SYSVOLS  - Contains the pointer to the beginning of
              CP-owned volumes that are contiguous in
              storage.  The volume index of the ASA can
              be used to index into the table to
              determine the correct volume for that ASA.
              Multiply the index by the size of a CPVOL.
 CREATED BY : HCPGENER  MACRO after the SYSCPVOL MACRO has been
              executed.
 DELETED BY : The CPVOL is never deleted.
 SERIALIZED :
              - CPLERCT is serialized with Compare and Swap

 

CPVOL Control Block Content


CPVOL DSECT

Hex   Dec Type/Val   Lng Label (dup)    Comments
---- ---- --------- ---- -------------- --------
0000    0 Structure      CPVOL          System Volume List Entry
0000    0 Dbl-Word     8 CPVUVOL (0)
0000    0 Character    6 CPVOLSER       Volume serial identifier
0006    6 Bitstring    1 CPVLSTAT       Volume status flags
          1... ....      CPVTEMPL       X'80' CPVTEMPL Indicates that the
                                        CPVOL is temporarily removed from
                                        the allocation list. The volume
                                        does not have any slots available
                                        for allocation. (removed
                                        logically only) FOR ATTEMPTS TO
                                        LINK
          .1.. ....      CPVLDRCT       X'40' CPVLDRCT Volume contains
                                        directory slots
          ..1. ....      CPVCACHE       X'20' CPVCACHE VOLUME IS CACHED
                                        DEVICE
          ...1 ....      CPVLSHRD       X'10' CPVLSHRD Volume was defined
                                        in SYSCPVOL as "SHR". It is not
                                        owned by this system, it is owned
                                        by another system in the VM/CSE
                                        complex and can only be READ by
                                        this system.
          .... 1...      CPVTEMPT       X'08' CPVTEMPT Indicates that the
                                        CPVOL is temporarily removed from
                                        the allocation list. The volume
                                        does not have any slots available
                                        for allocation. (removed
                                        logically only) FOR TDISK SPACE
          .... .1..      CPVLDUMP       X'04' CPVLDUMP Volume was defined
                                        in SYSCPVOL as a DUMP ONLY volume
          .... ..1.      CPVTEMPS       X'02' CPVTEMPS Indicates that the
                                        CPVOL is temporarily removed from
                                        the allocation list. The volume
                                        does not have any SPOOL slots
                                        available for allocation. SPOOL
                                        space on the volume either is
                                        full or has been DRAINed.
                                        (Removed logically only.) Notes :
                                        CPVTEMPS == PGTSPOOL == PGUSPOOL
                                        == ALOCSPOL:
      Notes      :  If CPVTEMPS is set in CPVLSTAT *before* the device is
             initialized and attached to the system (e.g., CPVRDEV
             and/or CPVVEXBK are zero), it indicates that the
             volume has been DRAINed for SPOOL, and should *NOT
             be started (made available for allocation) when it
             is eventually initialized and attached to the system.
          .... ...1      CPVTEMPP       X'01' Indicates that the CPVOL is
                                        temporarily removed from the
                                        allocation list. The volume does
                                        not have any PAGE slots available
                                        for allocation. PAGE space on the
                                        volume either is full or has been
                                        DRAINed. (Removed logically
                                        only.)
      Notes      :  CPVTEMPP == PGTPAGE == PGUPAGE == ALOCPAGE:
      Notes      :  If CPVTEMPP is set in CPVLSTAT *before* the device is
             initialized and attached to the system (e.g., CPVRDEV
             and/or CPVVEXBK are zero), it indicates that the
             volume has been DRAINed for PAGE, and should *NOT
             be started (made available for allocation) when it
             is eventually initialized and attached to the system.
0007    7 Bitstring    1 CPVCODE        Index number into CPVOL list
          1111 1111      CPVOLMSK       X'000000FF' CPVOLMSK CPVOL mask
                                        to get Volume number isolated
                                        from CCPV or PPPV.
0008    8 Address      4 CPVRDEV        Address of the RDEV block if
                                        attached otherwise it contains
                                        zeroes
000C   12 Address      4 CPVVEXBK       Address of the VEXBK
0010   16 Address      4 CPVNEXT        Next CPVOL of same device type.
                                        The end pointer is zero.
0014   20 Signed       4 CPVLERCT       # of continuous paging errors
                                        this field must be updated by
                                        COMPARE and SWAP logic
          00000006       CPVMAXER       6 The maximun number of
                                        continuous errors allowed
             Limit of slots that can be allocated before switching
      to another volume.
0018   24 Signed       2 CPVDEVLM       Limit to allocate
001A   26 Signed       2 *              Reserved for IBM use.
             Count of slots deallocated for a volume that once
      full.  The volume is keep from being allocated too until it
      has at least the limit allowed for allocation before
      switching volumes.
      CPCTDAL is used to address the fields index by SALOFFST/2.
001C   28 Signed       2 CPVCTDAL (0)   Count of slots deallocated
001C   28 Signed       2 CPVCTPAG       Page counts for de-allocation.
001E   30 Signed       2 CPVCTSPL       Spool counts for de-allocation.
        Monitor information.  These fields are provided for and
        maintained and serialized by the Monitor.
0020   32 Address      4 CPVMCPBK       Pointer to MCPBK for this volume
0024   36 Signed       4 CPVMCPLK       Lockword for MCPBK
             CPVLIST is used to address both the next pointers
      for paging and spooling queues.  SALOFFST is used to
      determine what queue to look at.
      The CPVOLs on these queues are looped to together.  The end
      pointer points to the first in queue.
0028   40 Signed       4 CPVLIST (0)    Page and spool lists of CPVOLs.
0028   40 Signed       4 CPVPGNXT       Page pointer to the next CPVOL
                                        containing pageing slots.
002C   44 Signed       4 CPVSPNXT       Spool pointer to the next CPVOL
                                        containing spooling slots.
             Count of times this volume was looked at and used.
0030   48 Signed       4 CPVLOKAT       Count of times this volume was
                                        looked at while chosing a volume
                                        for allocation.
0034   52 Signed       4 CPVALOCD       Count of times this volume was
                                        chosen for allocation.
             End of CPVOL block.
0038   56 Dbl-Word     8 CPVOLEND (0)   End of CPVOL.
          00000007       CPVSIZE        (*-CPVOL+7)/8 CPVOL entry size in
                                        doublewords (for PAGING/SPOOLING
                                        system volumes)
          00000038       CPVBSIZE       CPVSIZE*8 CPVOL entry size in
                                        bytes
0000    0 Character    4 CPVOLSR1       Bytes 1-4 of CPVOLSER
0004    4 Character    2 CPVOLSR5       Bytes 5 & 6 of CPVOLSER

 

CPVOL Storage Layout

          
*** CPVOL - System Volume List Entry
*
*     +-----------------------------------------+------+------+
*   0 |                CPVOLSER                 |:LSTAT|:CODE |
*     +---------------------------+-------------+------+------+
*   8 |         CPVRDEV           |         CPVVEXBK          |
*     +---------------------------+---------------------------+
*  10 |         CPVNEXT           |         CPVLERCT          |
*     +-------------+-------------+-------------+-------------+
*  18 |  CPVDEVLM   |/////////////|  CPVCTPAG   |  CPVCTSPL   |
*     +-------------+-------------+-------------+-------------+
*  20 |         CPVMCPBK          |         CPVMCPLK          |
*     +---------------------------+---------------------------+
*  28 |         CPVPGNXT          |         CPVSPNXT          |
*     +---------------------------+---------------------------+
*  30 |         CPVLOKAT          |         CPVALOCD          |
*     +---------------------------+---------------------------+
*
*** CPVOL - System Volume List Entry
          
*** Overlay for CPVOLSER in CPVOL
*
*     +---------------------------+-------------+
*   0 |         CPVOLSR1          |  CPVOLSR5   | 6
*     +---------------------------+-------------+
*
*** Overlay for CPVOLSER in CPVOL

 

CPVOL Cross Reference

Symbol         Dspl Value
-------------- ---- -----
CPVALOCD       0034
CPVBSIZE       0038 00000038
CPVCACHE       0006 20
CPVCODE        0007
CPVCTDAL       001C
CPVCTPAG       001C
CPVCTSPL       001E
CPVDEVLM       0018
CPVLDRCT       0006 40
CPVLDUMP       0006 04
CPVLERCT       0014
CPVLIST        0028
CPVLOKAT       0030
CPVLSHRD       0006 10
CPVLSTAT       0006
CPVMAXER       0014 00000006
CPVMCPBK       0020
CPVMCPLK       0024
CPVNEXT        0010
CPVOLEND       0038
CPVOLMSK       0007 FF
CPVOLSER       0000
CPVOLSR1       0000
CPVOLSR5       0004
CPVPGNXT       0028
CPVRDEV        0008
CPVSIZE        0038 00000007
CPVSPNXT       002C
CPVTEMPL       0006 80
CPVTEMPP       0006 01
CPVTEMPS       0006 02
CPVTEMPT       0006 08
CPVUVOL        0000
CPVVEXBK       000C

This information is based on z/VM V5R4.0. Last updated on 18 Feb 2010 at 03:33:04 EDT.
Copyright IBM Corporation, 1990, 2009