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

VDIBK

Prolog  

Control Block Contents  
   VDIBK DSECT
   VDIDATA DSECT
   VDIVLT DSECT

Storage Layout  

Cross Reference (Contains links to field and bit definitions)  


VDIBK Prolog

 NAME       : HCPVDIBK
 DESCRIPTION: VDISK data BlocK (Guest Relocation)
 DSECT      : VDIBK
              VDIVLT
 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
              (VDIVLT)
              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)
 REFERENCES : None
 SERIALIZED : RLOVDILK
              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
              system.
 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


VDIBK DSECT

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

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

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

          
*** 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

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 V6R2.0. Last updated on 21 Nov 2011 at 11:29:34 EDT.
Copyright IBM Corporation, 1990, 2011