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.
 RELOCATION CONSIDERATIONS : None
 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 V6R2.0. Last updated on 21 Nov 2011 at 11:00:51 EDT.
Copyright IBM Corporation, 1990, 2011