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
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 hereDVIENTRY 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
Last updated on 3 Aug 1999 at 11:53:37 EDT.
Copyright IBM Corporation, 1990, 1999