VDIBK | Back to Index page

| Prolog Control Block Contents VDIBK DSECT VDIDATA DSECT VDIVLT DSECT 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

     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 | 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 7.2.0 Last updated on 24 Jun 2020 at 09:31:30 EDT.
Copyright IBM Corporation, 1990, 2020