Programming Interface Information: This information is NOT intended to be
used as Programming Interfaces of VM/ESA. It is to be used for diagnosis only.

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 EJECT 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 1111 1111 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

(contains links to field and bit definitions)
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 FF

DVISILIB 0010 20

DVISPECE 0008 00000028

DVISRCID 000C

DVISTSEC 000A

DVITRIED 001C

DVIWRITE 0012 80

DVI2NDHF 0020 08


This information is based on VM/ESA 2.4.0.
Last updated on 3 Aug 1999 at 11:53:37 EDT.
Copyright IBM Corporation, 1990, 1999