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

#### DVIOP

Prolog

Control Block Contents
DVIOP DSECT
DVIENTRY DSECT

Storage Layout

Cross Reference (Contains links to field and bit definitions)

#### DVIOP Prolog

     NAME       : HCPDVIOP
     DESCRIPTION: DASD Virtual I/O Parameter List
     DSECT      : DVIOP
     FUNCTION   : Contains information specific to DASD virtual
                  I/O requests, including minidisk caching
                  interface parameters.
     LOCATED BY : DVCOPPTR in the DVCPL control block.
                  The DVCPL control block is located
                  by DBCDVCPL located in the DBCWK
                  control block.  All CMS block i/o
                  handlers (Diag X'18', Diag X'A4',
                  Diag X'250' and *BLOCKIO) have a register
                  pointing to the DBCWK block.
     CREATED BY : HCPDPCUT macro (for diagnose X'A4', *BLOCKIO,
                  diagnose x'18', and diagnose x'250')
                  (created in module HCPDBC)
                  HCPZIW (for CP i/o to CMS files)
     DELETED BY : When used as by *BLOCKIO, Diagnose x'A4',
                  Diagnose X'18', and Diagnose x'250',
                  it is deleted by HCPDPSCU.
     NOTES      :
              - This parameter list is used as a communication
                block between virtual I/O (diagnoses and
                *BLOCKIO), the channel program builder
                (HCPDPSRW or HCPDCCWB) and the cache back
                end processor (HCPBIUCB).
              -     It  is used as the common descriptor for
                an I/O request through *BLOCKIO, diagnose X'A4'
                diagnose X'18', and diagnose x'250'.
                It also is used as the common descriptor for
                an I/O request to read records from a CMS file.
              - The physical parameter list contains a DVIOP
                header, which points to a variable sized linked
                list of DVIENTRYs, one per DASD record.
              - The DVIOP  contains general information about
                the request and information common to all blocks
                associated with this DVIOP.  A DVIOP represents
                one i/o to be performed.  A DVIENTRY represents
                one block or record that is part of that i/o.
              - The cache back end processor will process up to
                one DVIOP at a time (or just a portion of that
                DVIOP if requested) and relinquish access to
                all tracks in the cache for a given DVIOP.
                Any cache invalidation required is also
                performed.

#### DVIOP Control Block Content

#### DVIOP DSECT

####

####

####

    Hex   Dec Type/Val   Lng Label (dup)    Comments
    ---- ---- --------- ---- -------------- --------
    0000    0 Structure      DVIOP          DASD Virtual I/O Parameter List
    0000    0 Dbl-Word     8 * (0)
    0000    0 Signed       4 DVIOPNXT       Pointer to the next DVIOP block
                                            (0 if no more)
    0004    4 Signed       4 DVIENPTR       Pointer to the FIRST DVIENTRY
                                            block
    0008    8 Signed       4 DVIENDEN       Pointer to the LAST DVIENTRY
                                            block
    000C   12 Signed       4 DVIDVCYL (0)   Name for moving DVIDEVNO+DVICYLNO
                                            in a single step
    000C   12 Signed       2 DVIDEVNO       The device number of the volume
                                            containing the blocks
    000E   14 Signed       2 DVICYLNO       The absolute cylinder location of
                                            the blocks on DASD
    0010   16 Bitstring    1 DVIPLFLG       Parameter list flags
              1... ....      DVIRDINS       X'80' DVIRDINS Read-miss
                                            occurred. This is input to
                                            HCPMDCWR
              .1.. ....      DVIRBILD       X'40' DVIRBILD Rebuild the
                                            channel program for redrive
              ..1. ....      DVISILIB       X'20' DVISILIB The SILI bit was
                                            on in the input parameter list so
                                            we propogated it when building
                                            CCWs
              ...1 ....      DVIDIA18       X'10' DVIDIA18 Diagnose 18 DVIOP
              .... 1...      DVIMXBLK       X'08' DVIMXBLK Mixed blocksizes
                                            in this DVIOP
              .... .1..      DVIISFBA       X'04' DVIISFBA This is I/O to an
                                            FBA device.
              .... ..1.      DVID250        X'02' DVID250 This DVIOP was
                                            built for DIAGNOSE X'250'
              .... ...1      DVIFBALR       X'01' DVIFBALR This is an access
                                            to an FBA CMS label record.
                                            DVIISFBA = 1 also
    0011   17 Bitstring    1 DVIOPRC        Used by callers of HCPDBC to
                                            determine whether the DVIOP built
                                            ok
    0012   18 Bitstring    1 DVIHDROP       Operations in this DVIOP
              1... ....      DVIWRITE       X'80' DVIWRITE Write operation
              .1.. ....      DVIREAD        X'40' DVIREAD Read operation
              ..1. ....      DVIFAIL        X'20' DVIFAIL The I/O failed for
                                            this DVIENTRY (valid for DVICCWFG
                                            only)
    0013   19 Bitstring    1 *              RESERVED FOR FUTURE USE
    0014   20 Signed       4 DVICHPRG       Host logical address of the
                                            channel program.
    0018   24 Signed       2 DVICHSIZ       Channel program size in
                                            doublewords
    001A   26 Signed       2 DVIBLKSZ       Halfword containing size of all
                                            blocks described by this DVIOP
                                            (max = 4096).
    001C   28 Signed       4 DVITRIED       Cumulative counter of DVIENTRYs
                                            whose I/O has been tried, whether
                                            successful or not.
    0020   32 Signed       4 DVIBLKCT       The number of blocks to be
                                            processed. There is one DVIENTRY
                                            for each block
    0024   36 Signed       2 DVIECYL        The last cylinder in the channel
                                            program. Equal to DVICYLNO for
                                            CKD/ECKD.
    0026   38 Signed       2 *              Reserved for IBM use.
              00000028       DVIOPSIZ       *-DVIOP Length in bytes of
                                            parameter list header
              00000005       DVIDWSIZ       (*-DVIOP+7)/8 Length in double
                                            words 1
           Start of DVIENTRY begins here

    DVIENTRY DSECT

    Hex   Dec Type/Val   Lng Label (dup)    Comments
    ---- ---- --------- ---- -------------- --------
    0000    0 Structure      DVIENTRY       DASD Virtual I/O Parameter List
    0000    0 Address      4 DVINEXT        Next DVIENTRY (sorted order)
    0004    4 Address      4 DVIPREV        Previous DVIENTRY (sorted order)
    0008    8 Bitstring    1 DVIIORC        Status code for this block
              00000000       DVIRCOK        X'00' DVIRCOK Successful
                                            Completion
              00000004       DVIBDBLK       X'04' DVIBDBLK Illegal block
                                            number
              00000008       DVIBDBUF       X'08' DVIBDBUF Invalid data
                                            buffer address
              0000000C       DVIRDONL       X'0C' DVIRDONL Write to read-only
                                            device
              00000010       DVIBDSVC       X'10' DVIBDSVC Invalid service
                                            requested
              00000014       DVIPREXC       X'14' DVIPREXC Protection
                                            exception
              00000018       DVIPAGER       X'18' DVIPAGER Paging error
              0000001C       DVINCLEN       X'1C' DVINCLEN Incorrect Length
                                            Check
              00000020       DVIALTRE       X'20' DVIALTRE ALEN-translation
                                            exception condition
              00000024       DVIALSPE       X'24' DVIALSPE ALET-specification
                                            exception condition
              00000028       DVISPECE       X'28' DVISPECE Specification
                                            Exception condition
              0000002C       DVIADCPE       X'2C' DVIADCPE Addressing
                                            capability exception condition
              00000030       DVINOTPR       X'30' DVINOTPR Entry was not
                                            processed NOTES : These next 4
                                            must be at end and grouped
                                            together
              00000034       DVIBDPLP       X'34' DVIBDPLP Prot. Exc. on parm
                                            list
              00000038       DVIBDPLA       X'38' DVIBDPLA Addr. Exc. on parm
                                            list
              0000003C       DVIBDPLC       X'3C' DVIBDPLC Addr. Cap. exc. on
                                            parm list
              00000040       DVIBDPLG       X'40' DVIBDPLG Paging error on
                                            parm list The DVISEVER flag is a
                                            special flag to indicate a sever
                                            occure while an i/o was in
                                            progress or before we returned
                                            from our asynchronous fork (to
                                            continue processing). In this
                                            case, the caller to HCPDBC must
                                            do special processing. HCPDBC
                                            always puts the sever code in the
                                            first DVIENTRY. Note that this
                                            ONLY applies to Diag 250 and
                                            *BLOCKIO
              000000FF       DVISEVER       X'FF' DVISEVER Sever or remove is
                                            pending NOTES : The above must be
                                            grouped together
    0009    9 Bitstring    1 DVICCWFG       CCW Operations flag
    000A   10 Bitstring    1 DVISTSEC       SET SECTOR argument, if provided.
                                            DVIPRVSS indicates it was.
    000B   11 Bitstring    1 DVIRWFLG       CCW flags to use for Read/Write
                                            CCW for diagnose 18 request
    000C   12 Signed       5 DVISRCID (0)   The full SEARCHID operand, if it
                                            was provided. DVIPRVSI indicates
                                            the full SEARCHID was provided.
    000C   12 Bitstring    4 DVIFBABN (0)   The FBA block number, valid when
                                            DVIISFBA is on.
    000C   12 Bitstring    2 DVICCFLD       'CC' portion of SEARCHID, if
                                            provided. Otherwise, this will be
                                            0.
    000E   14 Bitstring    3 DVIBLKID (0)   Blockid - the head and record
                                            location of the block (HHR)
    000E   14 Bitstring    2 DVIHEDNO (0)   The head number (HH)
    000E   14 Bitstring    1 DVIHED1        The 1st byte of head number
    000F   15 Bitstring    2 DVIHED2R (0)   Name for moving both
                                            DVIHED2+DVIRECNO in one step
    000F   15 Bitstring    1 DVIHED2        The 2nd byte of head number
    0010   16 Bitstring    1 DVIRECNO       The record number (R)
              00000003       DVIIDLEN       *-DVIBLKID Length in bytes of HHR
    0011   17 Bitstring    1 DVIPRVDD       Data provided for this DVIENTRY
                                            on a diagnose 18 request.
              1... ....      DVIPRVSS       X'80' Set Sector argument
                                            provided
              .1.. ....      DVIPRVSI       X'40' Search ID argument provided
              ..1. ....      DVIPRVSH       X'20' Seek Head provided (or
                                            SEEK, if first DVIENTRY)
    0012   18 Signed       2 *              RESERVED FOR IBM USE
    0014   20 Signed       2 DVIHDARG       The HH portion of the SEEK or
                                            SEEK HEAD argument, if provided.
                                            DVIPRVSH indicates it was.
                                            DVICYLNO is the CC portion of the
                                            argument. The BB portion will
                                            always be 0.
    0016   22 Signed       2 DVIBLKOV       Blocksize override for this
                                            DVIENTRY for diagnose 18.
    0018   24 Address      8 DVIIDAWA       Absolute address of data buffer,
                                            not aligned.
    0020   32 Address      8 DVIIDAWB       Absolute address of second
                                            buffer, 4K aligned. May also hold
                                            a guest absolute address.
                                            (DVIIDAWA will be FFs)
    0028   40 Address      4 DVIPLPTR       P-list pointer, pointing to the
                                            p-list entry which relates to
                                            this DVENTRY DVIRTRAK and
                                            DVIFTKEY must be grouped together
    002C   44 Signed       4 DVIRTRAK       THE REL. TRACK (FOR F.T.C)
    0030   48 Signed       4 DVIFTKEY       FTC Key address for this entry
                                            DVIRTRAK and DVIFTKEY must be
                                            grouped together
    0034   52 Address      4 DVIDVTRK       DVTRK pointer for this entry
    0038   56 Signed       4 DVIASITA       I-ASIT FOR GUEST BUFFER
    003C   60 Signed       4 *              Reserved for future IBM use.
    0040   64 Dbl-Word     8 * (0)          Must end on double word
              00000040       DVIBLLEN       *-DVIENTRY Length (in bytes) of a
                                            DVIENTRY
              00000040       DVIDWLEN       (*-DVIENTRY+7/8) LENGTH IN DWORDS

    DVIOP Storage Layout

    *** DVIOP - DASD Virtual I/O Parameter List
    *
    *     +---------------------------+---------------------------+
    *   0 |         DVIOPNXT          |         DVIENPTR          |
    *     +---------------------------+-------------+-------------+
    *   8 |         DVIENDEN          |  DVIDEVNO   |  DVICYLNO   |
    *     +------+------+------+------+-------------+-------------+
    *  10 |:PLFLG|:OPRC |:HDROP|//////|         DVICHPRG          |
    *     +------+------+------+------+---------------------------+
    *  18 |  DVICHSIZ   |  DVIBLKSZ   |         DVITRIED          |
    *     +-------------+-------------+-------------+-------------+
    *  20 |         DVIBLKCT          |  DVIECYL    |/////////////|
    *     +---------------------------+-------------+-------------+
    *  28
    *
    *** DVIOP - DASD Virtual I/O Parameter List

    *** DVIENTRY - DASD Virtual I/O Parameter List
    *
    *     +---------------------------+---------------------------+
    *   0 |         DVINEXT           |         DVIPREV           |
    *     +------+------+------+------+-------------+------+------+
    *   8 |:IORC |:CCWFG|:STSEC|:RWFLG|  DVICCFLD   |:HED1 |:HED2 |
    *     +------+------+------+------+-------------+------+------+
    *  10 |:RECNO|:PRVDD|/////////////|  DVIHDARG   |  DVIBLKOV   |
    *     +------+------+-------------+-------------+-------------+
    *  18 |                       DVIIDAWA                        |
    *     +-------------------------------------------------------+
    *  20 |                       DVIIDAWB                        |
    *     +---------------------------+---------------------------+
    *  28 |         DVIPLPTR          |         DVIRTRAK          |
    *     +---------------------------+---------------------------+
    *  30 |         DVIFTKEY          |         DVIDVTRK          |
    *     +---------------------------+---------------------------+
    *  38 |         DVIASITA          |///////////////////////////|
    *     +---------------------------+---------------------------+
    *  40
    *
    *** DVIENTRY - DASD Virtual I/O Parameter List

    DVIOP Cross Reference

    Symbol         Dspl Value
    -------------- ---- -----
    DVIADCPE       0008 0000002C
    DVIALSPE       0008 00000024
    DVIALTRE       0008 00000020
    DVIASITA       0038
    DVIBDBLK       0008 00000004
    DVIBDBUF       0008 00000008
    DVIBDPLA       0008 00000038
    DVIBDPLC       0008 0000003C
    DVIBDPLG       0008 00000040
    DVIBDPLP       0008 00000034
    DVIBDSVC       0008 00000010
    DVIBLKCT       0020
    DVIBLKID       000E
    DVIBLKOV       0016
    DVIBLKSZ       001A
    DVIBLLEN       0040 00000040
    DVICCFLD       000C
    DVICCWFG       0009
    DVICHPRG       0014
    DVICHSIZ       0018
    DVICYLNO       000E
    DVIDEVNO       000C
    DVIDIA18       0010 10
    DVIDVCYL       000C
    DVIDVTRK       0034
    DVIDWLEN       0040 00000040
    DVIDWSIZ       0026 00000005
    DVID250        0010 02
    DVIECYL        0024
    DVIENDEN       0008
    DVIENPTR       0004
    DVIFAIL        0012 20
    DVIFBABN       000C
    DVIFBALR       0010 01
    DVIFTKEY       0030
    DVIHDARG       0014
    DVIHDROP       0012
    DVIHEDNO       000E
    DVIHED1        000E
    DVIHED2        000F
    DVIHED2R       000F
    DVIIDAWA       0018
    DVIIDAWB       0020
    DVIIDLEN       0010 00000003
    DVIIORC        0008
    DVIISFBA       0010 04
    DVIMXBLK       0010 08
    DVINCLEN       0008 0000001C
    DVINEXT        0000
    DVINOTPR       0008 00000030
    DVIOPNXT       0000
    DVIOPRC        0011
    DVIOPSIZ       0026 00000028
    DVIPAGER       0008 00000018
    DVIPLFLG       0010
    DVIPLPTR       0028
    DVIPREV        0004
    DVIPREXC       0008 00000014
    DVIPRVDD       0011
    DVIPRVSH       0011 20
    DVIPRVSI       0011 40
    DVIPRVSS       0011 80
    DVIRBILD       0010 40
    DVIRCOK        0008 00000000
    DVIRDINS       0010 80
    DVIRDONL       0008 0000000C
    DVIREAD        0012 40
    DVIRECNO       0010
    DVIRTRAK       002C
    DVIRWFLG       000B
    DVISEVER       0008 000000FF
    DVISILIB       0010 20
    DVISPECE       0008 00000028
    DVISRCID       000C
    DVISTSEC       000A
    DVITRIED       001C
    DVIWRITE       0012 80

    This information is
    based on z/VM V6R1.0.
    Last updated on 18 Feb 2010 at 08:36:46 EDT.

    Copyright IBM Corporation, 1990, 2008