Programming Interface Information:
This information is NOT intended to be used as Programming Interfaces of z/VM. |
CPVOL
Control Block Contents
CPVOL DSECT
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
Copyright IBM Corporation, 1990, 2001