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' Read-miss occurred. This is
                                        input to HCPMDCWR
          .1.. ....      DVIRBILD       X'40' Rebuild the channel program
                                        for redrive
          ..1. ....      DVISILIB       X'20' The SILI bit was on in the
                                        input parameter list so we
                                        propogated it when building CCWs
          ...1 ....      DVIDIA18       X'10' Diagnose 18 DVIOP
          .... 1...      DVIMXBLK       X'08' Mixed blocksizes in this
                                        DVIOP
          .... .1..      DVIISFBA       X'04' This is I/O to an FBA
                                        device.
          .... ..1.      DVID250        X'02' This DVIOP was built for
                                        DIAGNOSE X'250'
          .... ...1      DVIFBALR       X'01' 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' Write operation
          .1.. ....      DVIREAD        X'40' Read operation
          ..1. ....      DVIFAIL        X'20' The I/O failed for this
                                        DVIENTRY (valid for DVICCWFG
                                        only)
0013   19 Bitstring    1 *              RESERVED FOR FUTURE USE
0014   20 Signed       4 DVICHPRG       Channel program address
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' Successful Completion
          00000004       DVIBDBLK       X'04' Illegal block number
          00000008       DVIBDBUF       X'08' Invalid data buffer address
          0000000C       DVIRDONL       X'0C' Write to read-only device
          00000010       DVIBDSVC       X'10' Invalid service requested
          00000014       DVIPREXC       X'14' Protection exception
          00000018       DVIPAGER       X'18' Paging error
          0000001C       DVINCLEN       X'1C' Incorrect Length Check
          00000020       DVIALTRE       X'20' ALEN-translation exception
                                        condition
          00000024       DVIALSPE       X'24' ALET-specification
                                        exception condition
          00000028       DVISPECE       X'28' Specification Exception
                                        condition
          0000002C       DVIADCPE       X'2C' Addressing capability
                                        exception condition
          00000030       DVINOTPR       X'30' Entry was not processed
                                        NOTES : These next 4 must be at
                                        end and grouped together
          00000034       DVIBDPLP       X'34' Prot. Exc. on parm list
          00000038       DVIBDPLA       X'38' Addr. Exc. on parm list
          0000003C       DVIBDPLC       X'3C' Addr. Cap. exc. on parm
                                        list
          00000040       DVIBDPLG       X'40' Paging error on parm list
                                        The DVISEVER flag is a special
                                        flag to indicate a sever occure
                                        while an i/o was in progress
                                        (HCPFTUAD doing it) 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' 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 Signed       4 DVIDBUFF (0)   Address list of user data buffers
0018   24 Bitstring   12 DVIIDAL (0)    Indirect data address list
0018   24 Address      4 DVIIDAW1       Absolute address of data buffer,
                                        not aligned.
001C   28 Address      4 DVIIDAW2       Absolute address of second
                                        buffer, 2K aligned.
0020   32 Address      4 DVIIDAW3       Absolute address of third buffer,
                                        2K aligned.
          .... 1...      DVI2NDHF       X'08' Mask to test if address is
                                        in second half of 4K page
0024   36 Address      4 DVIPLPTR       P-list pointer, pointing to the
                                        p-list entry which relates to
                                        this DVENTRY DVIRTRAK and
                                        DVIFTKEY must be grouped together
0028   40 Signed       4 DVIRTRAK       THE REL. TRACK (FOR F.T.C)
002C   44 Signed       4 DVIFTKEY       FTC Key address for this entry
                                        DVIRTRAK and DVIFTKEY must be
                                        grouped together
0030   48 Address      4 DVIDVTRK       DVTRK pointer for this entry
0034   52 Signed       4 DVIASITA       I-ASIT FOR GUEST BUFFER
0038   56 Dbl-Word     8 * (0)          Must end on double word
          00000038       DVIBLLEN       *-DVIENTRY Length (in bytes) of a
                                        DVIENTRY
          00000038       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 |         DVIIDAW1          |         DVIIDAW2          |
*     +---------------------------+---------------------------+
*  20 |         DVIIDAW3          |         DVIPLPTR          |
*     +---------------------------+---------------------------+
*  28 |         DVIRTRAK          |         DVIFTKEY          |
*     +---------------------------+---------------------------+
*  30 |         DVIDVTRK          |         DVIASITA          |
*     +---------------------------+---------------------------+
*  38
*
*** DVIENTRY - DASD Virtual I/O Parameter List

 

DVIOP Cross Reference

Symbol         Dspl Value
-------------- ---- -----
DVIADCPE       0008 0000002C
DVIALSPE       0008 00000024
DVIALTRE       0008 00000020
DVIASITA       0034
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       0038 00000038
DVICCFLD       000C
DVICCWFG       0009
DVICHPRG       0014
DVICHSIZ       0018
DVICYLNO       000E
DVIDBUFF       0018
DVIDEVNO       000C
DVIDIA18       0010 10
DVIDVCYL       000C
DVIDVTRK       0030
DVIDWLEN       0038 00000038
DVIDWSIZ       0026 00000005
DVID250        0010 02
DVIECYL        0024
DVIENDEN       0008
DVIENPTR       0004
DVIFAIL        0012 20
DVIFBABN       000C
DVIFBALR       0010 01
DVIFTKEY       002C
DVIHDARG       0014
DVIHDROP       0012
DVIHEDNO       000E
DVIHED1        000E
DVIHED2        000F
DVIHED2R       000F
DVIIDAL        0018
DVIIDAW1       0018
DVIIDAW2       001C
DVIIDAW3       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       0024
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       0028
DVIRWFLG       000B
DVISEVER       0008 000000FF
DVISILIB       0010 20
DVISPECE       0008 00000028
DVISRCID       000C
DVISTSEC       000A
DVITRIED       001C
DVIWRITE       0012 80
DVI2NDHF       0020 08

This information is based on z/VM V5R1.0. Last updated on 8 Sep 2004 at 13:24:24 EDT.
Copyright IBM Corporation, 1990, 2004