VDIBK Back to Index page
Control Block Contents 
Storage Layout 
Cross Reference (Contains links to field and bit definitions)
Programming Interface Information:
This information is NOT intended to be
used as Programming Interfaces of z/VM.

  VDIBK Prolog Top of page
 DESCRIPTION: VDISK data BlocK (Guest Relocation)
 FUNCTION   : The VDIBK DSECT is used during Live Guest Relocation
              to accumulate a list of migratable VDISKs and their
              associated ASCBK addresses.
              The VDIVLT DSECT maps a table locating all VDIBKs used
              in the current relocation.
 LOCATED BY : The DSECTS within this block are pointed to by
              following fields in HCPRLOBK:
              RLOVDIFP - Points to first VDIBK in VDIBK chain
              RLOVDILP - Points to last VDIBK in VDIBK chain
              RLOVLTBL - Points to the VDISK location table
              VDIARNXT - Points to the next VDIBK in the chain,
              or zero if we're at the end of the chain
 CREATED BY : - On the source system: The VDIBK is created/updated by
              the VDISK Array routine (HCPRLLVA). This routine is
              called during I/O eligibility checking.
              VDIVLT is created by the Generate VDIBK Table,
              HCPRLLGT. This is called by source eligibility
              checking (HCPRLLSE).
              - On the destination system: The VDIBK is received over
              ISFC by destination eligibility checking (HCPRLLDE),
              which anchors it into the RLOBK on the destination.
              VDIVLT is created by HCPRLLGT, which is called by
              HCPRLLDE as it processes the VDIBKs sent over ISFC
              from the source system.
 DELETED BY : HCPRLNCU - LGR cleanup routine (source)
              HCPRLNCT - LGR cleanup routine (target)
              There is a risk of STMGT LGR cleanup and destination
              I/O device creation running at the same time. As both
              access the VDIBK, the RLOVDILK lock was created to
              serialize all fields related to relocating VDISKs. This
              is a standard shared/exclusive lock.
              Furthermore, these DSECTs are *not* covered under the
              VDEV lock as changes to the VDISK configuration are not
              supported during a relocation; a DEFINE or DETACH VDISK
              command will fail a relocation in progress.
 RELOCATION CONSIDERATIONS : This block is sent from the source to the destination
 NOTES      :
              On the destination system, flag VDIDNXIT is used to
              coordinate address space cleanup when a relocation is
              terminated prematurely.  If the bit is set, then I/O
              relocation has created the VDISK as part of the
              relocating guest's I/O configuration.  As such, the
              VDISK address space will be cleaned up when the
              relocation skeleton goes through logoff processing. If
              VDIDNXIT is not set, then relocation cleanup (HCPRLNCT)
              will destroy the VDISK address space.
              For a description of how the VDIVLT can be used to find
              a VDIBK during a relocation, see fields VPAAIDOF and
              VPAAIDIN in the VPABK.
  VDIBK Control Block Content Top of page

 VDIBK DSECT Top of page
Hex Dec Type/Val Lng Label (dup) Comments ---- ---- --------- ---- -------------- -------- 0000 0 Structure VDIBK VDISK data BlocK (Guest Relocation) The following is header information for the array. 0000 0 Character 8 VDIBKNAM (+00) Indicate start of VDIBK. This is an eyecatcher, 'VDIBK=>', and is used to ID this block. On the destination, ISFC allocates this block as free storage, and as such it will lack a trailer. 0008 8 Signed 4 VDIARNXT (+08) Pointer to the next VDISK array 000C 12 Signed 2 VDIUSED (+0C) VDIBK entries used in this block 000E 14 Signed 2 VDINDEX (+0E) Index to the next empty entry in the block, or zero if the block is filled. 0010 16 Signed 4 VDISIZE (+10) Total size of all VDISK address spaces in this VDIBK, in blocks 0014 20 Signed 2 VDIPROCD (+14) Number of VDIBK entries in this block that have been processed as part of VDISK creation. This field is only used on the destination. 0016 22 Signed 2 VDISKCNT (+16) Number of VDISKs this guest owns. Valid only in the first VDIBK 0018 24 Signed 4 VDIBLCKS (+18) Number of VDISK blocks represented in this chain. Valid only in the first VDIBK. 001C 28 Bitstring 1 VDIBSTAT (+1C) Status flags for this VDIBK .... ...1 VDIFIRST X'01' VDIFIRST This is the first VDIBK in the chain 001D 29 Bitstring 1 VDICHKPT (+1D) "Checkpoint" flags for VDISK recreation. These flags are only valid on the destination. .... ...1 VDICRETD X'01' All VDIBK address spaces have been created. This is only valid in the first VDIBK on the chain (pointed to by RLOVDIFP) 001E 30 Bitstring 2 * (+1E) Reserved for IBM use 00000020 VDIHDEND * Mark the end of the header 00000020 VDIHDSIZ *-VDIBK Size of the VDIBK header Start of the variable data section of the array.
 VDIDATA DSECT Top of page
Hex Dec Type/Val Lng Label (dup) Comments ---- ---- --------- ---- -------------- -------- 0000 0 Structure VDIDATA VDISK data BlocK (Guest Relocation) 0000 0 Dbl-Word 8 * (0) Enforce a doubleword boundary 0000 0 Character 24 VDIDNAME (+00) Unique name given to this space 0018 24 Dbl-Word 8 VDIDSIZE (+18) Device address space size (bytes) 0020 32 Signed 4 VDIDNMBK (+20) Number of blocks in this device 0024 36 Signed 4 VDIDASCB (+24) Address of this VDISK's ASCBK 0028 40 Signed 2 VDIDVNUM (+28) Device number 002A 42 Bitstring 1 VDIDSTAT (+2A) Status of this VDIDATA entry .... ..1. VDIDASDS X'02' VDIDASDS The ASCBK address in VDIDASCB is valid on the destination system .... ...1 VDIDNXIT X'01' VDIDNXIT This VDISK is now part of the I/O configuration. If relocation fails, logoff processing will clean up the address space. Relocation clean up should leave this address space alone. This flag can only be present on the destination system. 002B 43 Bitstring 5 * (+2B) Reserved for IBM use 00000030 VDIDNEXT * Address of the next VDI entry Equates needed to calculate block length. 00000030 VDIDATLN *-VDIDATA Length of a data entry 00000020 VDIDMAX 32 Number of entries in a VDIBK The following is the length of the block in DWORDs 000000C4 VDIBKLEN ((VDIDMAX*VDIDATLN)+VDIHDSIZ+7)/8 Mapping for VDIBK Location Table (VLT) entries
 VDIVLT DSECT Top of page
Hex Dec Type/Val Lng Label (dup) Comments ---- ---- --------- ---- -------------- -------- 0000 0 Structure VDIVLT VDISK data BlocK (Guest Relocation) 0000 0 Address 4 VDIVLTEN Address of the associated VDIBK 00000004 VDIVLTNX * Location of next VDIVLT entry 00000004 VDIVLTSZ *-VDIVLTEN Length of a single VLT entry
  VDIBK Storage Layout Top of page
*** VDIBK - VDISK data BlocK (Guest Relocation)
*     +-------------------------------------------------------+
*   0 |                       VDIBKNAM                        |
*     +---------------------------+-------------+-------------+
*   8 |         VDIARNXT          |  VDIUSED    |  VDINDEX    |
*     +---------------------------+-------------+-------------+
*  10 |         VDISIZE           |  VDIPROCD   |  VDISKCNT   |
*     +---------------------------+------+------+-------------+
*  18 |         VDIBLCKS          |:BSTAT|:CHKPT|/////////////|
*     +---------------------------+------+------+-------------+
*  20
*** VDIBK - VDISK data BlocK (Guest Relocation)
*** VDIDATA - VDISK data BlocK (Guest Relocation)
*     +-------------------------------------------------------+
*   0 |                                                       |
*     =                       VDIDNAME                        =
*     |                                                       |
*     +-------------------------------------------------------+
*  18 |                       VDIDSIZE                        |
*     +---------------------------+---------------------------+
*  20 |         VDIDNMBK          |         VDIDASCB          |
*     +-------------+------+------+---------------------------+
*  28 |  VDIDVNUM   |:DSTAT|//////////////////////////////////|
*     +-------------+------+----------------------------------+
*  30
*** VDIDATA - VDISK data BlocK (Guest Relocation)
*** VDIVLT - VDISK data BlocK (Guest Relocation)
*     +---------------------------+
*   0 |         VDIVLTEN          | 4
*     +---------------------------+
*** VDIVLT - VDISK data BlocK (Guest Relocation)
  VDIBK Cross Reference Top of page
Symbol         Dspl Value
-------------- ---- -----
VDIARNXT       0008
VDIBKLEN       002B 000000C4
VDIBKNAM       0000
VDIBLCKS       0018
VDIBSTAT       001C
VDICHKPT       001D
VDICRETD       001D 01
VDIDASCB       0024
VDIDASDS       002A 02
VDIDATLN       002B 00000030
VDIDMAX        002B 00000020
VDIDNAME       0000
VDIDNEXT       002B 00000030
VDIDNMBK       0020
VDIDNXIT       002A 01
VDIDSIZE       0018
VDIDSTAT       002A
VDIDVNUM       0028
VDIFIRST       001C 01
VDIHDEND       001E 00000020
VDIHDSIZ       001E 00000020
VDINDEX        000E
VDIPROCD       0014
VDISIZE        0010
VDISKCNT       0016
VDIUSED        000C
VDIVLTEN       0000
VDIVLTNX       0000 00000004
VDIVLTSZ       0000 00000004
This information is based on z/VM 6.3.0 Last updated on 22 May 2013 at 13:56:18 EDT.
Copyright IBM Corporation, 1990, 2013