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)    CPVOL size in DW's
    0000    0 Character    6 CPVOLSER       Volume serial identifier
    0006    6 Bitstring    1 CPVLSTAT       Volume status flags
              1... ....      CPVTEMPL       X'80' 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' Volume contains directory
                                            slots
              ..1. ....      CPVCACHE       X'20' VOLUME IS CACHED DEVICE
              ...1 ....      CPVLSHRD       X'10' 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' 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' Volume was defined in
                                            SYSCPVOL as a DUMP ONLY volume
              .... ..1.      CPVTEMPS       X'02' 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' 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 V4R3.0. Last updated on 1 May 2002 at 08:20:18 EDT.
Copyright IBM Corporation, 1990, 2002