|
Programming Interface Information:
This information is NOT intended to be used as Programming Interfaces of z/VM. |
QDIO
Control Block Contents
QDIO DSECT
Cross Reference (Contains links to field and bit definitions)
QDIO Prolog
NAME : HCPQDIO
DESCRIPTION: Queued Direct I/O Control Block
DSECT : QDIO
FUNCTION :
HCPQDIO maps all the guest's and associated CP shadow
QDIO Queues for a specific subchannel.
LOCATED BY : VDEVQDIO
SERIALIZED : VDEV Lock
CREATED BY : Dynamically created by HCPGETST when a QDIO
Queue is created with an Establish-QDIO-
Queues Channel Command. This control
block exists in the system execution
space, and my be backed anywhere in storage.
DELETED BY : Deleted by HCPRELST when a QDIO Activate-
QDIO-Queues Channel Command terminates.
Comments :
- Not known by hardware.
- The following tags are used to described the
address type for pointers within this control block:
A : Host absolute address
R : Host real address
L : Logical address in the system execution space
G : Guest absolute address
QDIO Control Block Content
QDIO DSECT
Hex Dec Type/Val Lng Label (dup) Comments
---- ---- --------- ---- -------------- --------
0000 0 Structure QDIO Queued Direct I/O Control Block
QDIO Lock
0000 0 Dbl-Word 8 QDIOLOCK (3) QDIO Lock Word
0018 24 Address 4 QDIORDEV L: address of RDEV associated
with this queue.
001C 28 Signed 4 QDIOREAS Failing reason code during QDIO
Queue creation.
0020 32 Address 4 QDICPQDR L: Address of CP's
Queue-Description Record (QDR)
used when issuing
Establish-QDIO-Queues CCW.
(Fretted after I/O).
Following Fields Serialized on Compare and Swap
0024 36 Address 4 QDIOQERR L:Address of a QIOBK that has an
error to report
-----End of Compare and Swap Serialization***************----
QDIO Queue Information Block
0028 40 Dbl-Word 8 QDIGQIB64 G:Guest absolute ADDR of QIB.
0030 48 Dbl-Word 8 QDIHQIB64 A:Host absolute address of
Guest's QIB. (locked)
QDIO Storage Access and Queue Flags
0038 56 Bitstring 1 QDIOFG1 Storage Access Flag
.... 1... QDIOACT X'08' QDIOACT QDIO Q's have been
activated
.... .1.. QDIODOFS X'04' QDIODOFS Delete QDIO Queues
when final status is received.
.... ..1. QDIOGA64 X'02' QDIOGA64 Guest absolute
addresses are 64 bit.
QDIO Processing Flags
0039 57 Bitstring 1 QDIOFG2 Processing Flags
1... .... QDIOSYNC X'80' QDIOSYNC Synchronous SIGA
processing required. 1 SIGA per
primed buffer
.1.. .... QDIOOPCI X'40' QDIOOPCI Extended OUTPUT
PCI supported
..1. .... QDIOQMCU X'20' QDIOQMCU Adapter configured
for QDIO Multiple Control Unit
Facility
...1 .... QDIOEBSM X'10' QDIOEBSM QEBSM Managed
Connection
003A 58 Bitstring 1 * Reserved for future IBM use
003B 59 Bitstring 1 QDIOTKEY QIB Storage Key
1111 .... QDIQKEY X'F0' QDIQKEY Storage Key Mask
for QIB
Input / Output QDIO Queues
003C 60 Bitstring 1 QDIOFMT QDIO Format Type
00000000 QDIOFMT0 X'00' QDIOFMT0 Format 0 Queue
00000001 QDIOFMT1 X'01' QDIOFMT1 Format 1 Queue
00000002 QDIOFMT2 X'02' QDIOFMT2 Format 2 Queue
00000002 QDIOLFMT QDIOFMT2 QDIOLFMT Highest
supported Q format
003D 61 Bitstring 1 QDINPCT Number of Input Queues
003E 62 Bitstring 1 QDIOUTCT Number of Output Queues
QDIO Hardware Support Flags
003F 63 Bitstring 1 QDIOHWS Hardware Support Flags
1... .... QDISIGAW X'80' QDISIGAW SIGA-w Initiate
Write Supported
.1.. .... QDISIGAR X'40' QDISIGAR SIGA-r Initiate
Read Supported
..1. .... QDISIGAS X'20' QDISIGAS SIGA-s Synchronize
Supported
QDIO Queue Anchors
The following are the anchors for two link lists of
QIOBK(s) created when an Establish-QDIO-Queues CCW is
issued. The link list is an ordered list with QIONEXT
pointing to the next queue. The first queue in the list
(the one specified in the anchor) is for queue 0, while
the next linked QIOBK pointed by QIONEXT is for queue 1.
Up to 32 queues may be linked on each anchor.
One anchor is for established input queues and the other
is for output queues.
0040 64 Address 4 QDINPUT L:ADDR of first QDIO Input Q
0044 68 Address 4 QDIOUTQ L:ADDR of first QDIO Output Q
0048 72 Signed 4 QDIOMCAS Format-2 MultiCast Queue Mask
Processing Routines
004C 76 Address 4 QDIOQPRC L:Shadow Queue Processor Linkage:
HCPCALL R15,
ATTR=(RES,MP,DYN,LONGREG,
AMODE64,TMODEAR) Input/Output:
Like HCPVQQSS (Zero for vSwitch)
QEBSM Information
0050 80 Dbl-Word 8 QDIQBICB A:QBICB address which is also the
QEBSM Subchannel Token
0058 88 Signed 4 QDIOVDEV L:VDEV Block Address
Performance Counters
Notes : QDIOCSGW, QDIOWCSGR, and QDIOCSGS are treated as an
array of counters, and therefore they must remain
contiguous in the control block.
QDIOCSGW, QDIOWCSGR, and QDIOCSGS are serialized by
the VDEV lock and not the QDIO Lock.
005C 92 Bitstring 12 QDIOCTRS (0) --- Start of contiguous area
005C 92 Signed 4 QDIOCSGW Virtual SIGA-w count
0060 96 Signed 4 QDIOCSGR Virtual SIGA-r count
0064 100 Signed 4 QDIOCSGS Virtual SIGA-s count --- End of
contiguous area
0068 104 Signed 4 * Reserved for Future IBM USE
006C 108 Signed 4 QDIQSBLK L:QSBLK QDIO Statistics Block for
QEBSM manage queues
Reserved Space
0070 112 Dbl-Word 8 * (2) Reserved for Future IBM USE
0080 128 Character 1 QDI$END (0) End of Queued Direct I/O CB
Notes : The following assembler equates are defined and can be
used but do not appear in the control block expansion
because they are in the PLX section and
PRINT OFF,NOGEN is in effect.
QDIO Storage Layout
*** QDIO - Queued Direct I/O Control Block
*
* +-------------------------------------------------------+
* 0 | |
* = QDIOLOCK =
* | |
* +---------------------------+---------------------------+
* 18 | QDIORDEV | QDIOREAS |
* +---------------------------+---------------------------+
* 20 | QDICPQDR | QDIOQERR |
* +---------------------------+---------------------------+
* 28 | QDIGQIB64 |
* +-------------------------------------------------------+
* 30 | QDIHQIB64 |
* +------+------+------+------+------+------+------+------+
* 38 |:OFG1 |:OFG2 |//////|:OTKEY|:OFMT |:NPCT |:OUTCT|:OHWS |
* +------+------+------+------+------+------+------+------+
* 40 | QDINPUT | QDIOUTQ |
* +---------------------------+---------------------------+
* 48 | QDIOMCAS | QDIOQPRC |
* +---------------------------+---------------------------+
* 50 | QDIQBICB |
* +---------------------------+---------------------------+
* 58 | QDIOVDEV | QDIOCSGW |
* +---------------------------+---------------------------+
* 60 | QDIOCSGR | QDIOCSGS |
* +---------------------------+---------------------------+
* 68 |///////////////////////////| QDIQSBLK |
* +---------------------------+---------------------------+
* 70 |///////////////////////////////////////////////////////|
* |///////////////////////////////////////////////////////|
* +-------------------------------------------------------+
*
*** QDIO - Queued Direct I/O Control Block
QDIO Cross Reference
Symbol Dspl Value -------------- ---- ----- QDI$END 0080 QDICPQDR 0020 QDIGQIB64 0028 QDIHQIB64 0030 QDINPCT 003D QDINPUT 0040 QDIOACT 0038 08 QDIOCSGR 0060 QDIOCSGS 0064 QDIOCSGW 005C QDIOCTRS 005C QDIODOFS 0038 04 QDIOEBSM 0039 10 QDIOFG1 0038 QDIOFG2 0039 QDIOFMT 003C QDIOFMT0 003C 00000000 QDIOFMT1 003C 00000001 QDIOFMT2 003C 00000002 QDIOGA64 0038 02 QDIOHWS 003F QDIOLFMT 003C 00000002 QDIOLOCK 0000 QDIOMCAS 0048 QDIOOPCI 0039 40 QDIOQERR 0024 QDIOQMCU 0039 20 QDIOQPRC 004C QDIORDEV 0018 QDIOREAS 001C QDIOSYNC 0039 80 QDIOTKEY 003B QDIOUTCT 003E QDIOUTQ 0044 QDIOVDEV 0058 QDIQBICB 0050 QDIQKEY 003B F0 QDIQSBLK 006C QDISIGAR 003F 40 QDISIGAS 003F 20 QDISIGAW 003F 80
Copyright IBM Corporation, 1990, 2007