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 V4R2.0. Last updated on 17 Oct 2001 at 14:58:00 EDT.
Copyright IBM Corporation, 1990, 2001