DVIOP Back to Index page
 
Prolog 
Control Block Contents 
   DVIOP DSECT
   DVIENTRY 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.


  DVIOP Prolog Top of page
 
 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 Top of page
 

 DVIOP DSECT Top of page
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 DVICYLNO The absolute cylinder location of the blocks on DASD (ccccCCCh) 0010 16 Signed 2 DVIDEVNO The device number of the volume containing the blocks 0012 18 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 0013 19 Bitstring 1 DVIOPRC Used by callers of HCPDBC to determine whether the DVIOP built ok 0014 20 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) 0015 21 Bitstring 1 * (3) Reserved for IBM use. 0018 24 Signed 4 DVICHPRG Host logical address of the channel program. 001C 28 Signed 2 DVICHSIZ Channel program size in doublewords 001E 30 Signed 2 DVIBLKSZ Halfword containing size of all blocks described by this DVIOP (max = 4096). 0020 32 Signed 4 DVITRIED Cumulative counter of DVIENTRYs whose I/O has been tried, whether successful or not. 0024 36 Signed 4 DVIBLKCT The number of blocks to be processed. There is one DVIENTRY for each block 0028 40 Signed 4 DVIECYL The last cylinder in the channel program. Equal to DVICYLNO for CKD/ECKD. 002C 44 Signed 4 * Reserved for IBM use. 00000030 DVIOPSIZ *-DVIOP Length in bytes of parameter list header 00000006 DVIDWSIZ (*-DVIOP+7)/8 Length in double words 1 Start of DVIENTRY begins here
 DVIENTRY DSECT Top of page
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 4 DVICCCH (0) CCCH portion of SEARCHID 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 Top of page
 
          
*** DVIOP - DASD Virtual I/O Parameter List
*
*     +---------------------------+---------------------------+
*   0 |         DVIOPNXT          |         DVIENPTR          |
*     +---------------------------+---------------------------+
*   8 |         DVIENDEN          |         DVICYLNO          |
*     +-------------+------+------+------+--------------------+
*  10 |  DVIDEVNO   |:PLFLG|:OPRC |:HDROP|////////////////////|
*     +-------------+------+------+------+------+-------------+
*  18 |         DVICHPRG          |  DVICHSIZ   |  DVIBLKSZ   |
*     +---------------------------+-------------+-------------+
*  20 |         DVITRIED          |         DVIBLKCT          |
*     +---------------------------+---------------------------+
*  28 |         DVIECYL           |///////////////////////////|
*     +---------------------------+---------------------------+
*  30
*
*** 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 Top of page
 
 
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       0024
DVIBLKID       000E
DVIBLKOV       0016
DVIBLKSZ       001E
DVIBLLEN       0040 00000040
DVICCCH        000C
DVICCFLD       000C
DVICCWFG       0009
DVICHPRG       0018
DVICHSIZ       001C
DVICYLNO       000C
DVIDEVNO       0010
DVIDIA18       0012 10
DVIDVTRK       0034
DVIDWLEN       0040 00000040
DVIDWSIZ       002C 00000006
DVID250        0012 02
DVIECYL        0028
DVIENDEN       0008
DVIENPTR       0004
DVIFAIL        0014 20
DVIFBABN       000C
DVIFBALR       0012 01
DVIFTKEY       0030
DVIHDARG       0014
DVIHDROP       0014
DVIHEDNO       000E
DVIHED1        000E
DVIHED2        000F
DVIHED2R       000F
DVIIDAWA       0018
DVIIDAWB       0020
DVIIDLEN       0010 00000003
DVIIORC        0008
DVIISFBA       0012 04
DVIMXBLK       0012 08
DVINCLEN       0008 0000001C
DVINEXT        0000
DVINOTPR       0008 00000030
DVIOPNXT       0000
DVIOPRC        0013
DVIOPSIZ       002C 00000030
DVIPAGER       0008 00000018
DVIPLFLG       0012
DVIPLPTR       0028
DVIPREV        0004
DVIPREXC       0008 00000014
DVIPRVDD       0011
DVIPRVSH       0011 20
DVIPRVSI       0011 40
DVIPRVSS       0011 80
DVIRBILD       0012 40
DVIRCOK        0008 00000000
DVIRDINS       0012 80
DVIRDONL       0008 0000000C
DVIREAD        0014 40
DVIRECNO       0010
DVIRTRAK       002C
DVIRWFLG       000B
DVISEVER       0008 000000FF
DVISILIB       0012 20
DVISPECE       0008 00000028
DVISRCID       000C
DVISTSEC       000A
DVITRIED       0020
DVIWRITE       0014 80
 
This information is based on z/VM 7.3.0 Last updated on 22 Jun 2022 at 15:50:01 EDT.
Copyright IBM Corporation, 1990, 2022