Programming Interface Information:
This information is NOT intended to be used as Programming Interfaces of z/VM. |
DVIOP
Control Block Contents
DVIOP DSECT
DVIENTRY DSECT
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
Copyright IBM Corporation, 1990, 2011