Programming Interface Information:
This information is NOT intended to be
used as Programming Interfaces of z/VM.

QDIO

Prolog  

Control Block Contents  
   QDIO DSECT

Storage Layout  

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.
 RELOCATION CONSIDERATIONS : None
 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 QDIOPCNT       Number of ports per chpid
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 |:OPCNT|: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
QDIOPCNT       003A
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

This information is based on z/VM V6R2.0. Last updated on 21 Nov 2011 at 11:16:33 EDT.
Copyright IBM Corporation, 1990, 2011