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

PIOBK

Prolog  

Control Block Contents  
   PIOBK DSECT

Storage Layout  

Cross Reference (Contains links to field and bit definitions)  


PIOBK Prolog

 NAME       : HCPPIOBK
 DESCRIPTION: Paging I/O CCW packages.
 DSECT      : PIOBK
 FUNCTION   : A PIOBK contains the necessary CCW strings to
              do paging I/O operations to drums and DASD.
 LOCATED BY : IORCPA    - Contains the host absolute address
              of the first CCW in the active PIOBK.
              EXPFACPA  - Host absolute address of
              the first active PIOBK.
              EXPSCCWP  - Suspended CCW package.  This
              is the host absolute address
              of the PIOBK in the current
              channel program that contains
              the suspended NOP.
              EXPPIOHL  - Host logical address of the
              contiguous block of PIOBKs.
 CREATED BY : HCPRDAAT  As part of initialization or during
              ATTACH time for CP-owned volumes
 DELETED BY : HCPRDDDT  Released if the CP owned volume is DETACHED
 COMMENTS   :
              This block contains CCWs and CCW data and must be
              backed below 2-Gig.  BACKING=BELOW2G is marked as the
              default in CBITABLE.
              Below is a model channel program for one PIOBK.
              The PIOBKs are chained together by TIC CCWs.  They
              form a loop so that the last one TICs back to the
              first PIOBK.
 CKD format:
 offset opcode description
    0   07/8B  (Seek, or Set Page Parameter for 3350 m11/21)
    8   23/08  (Set Sector or TIC cache only)
   10   31/B1  (Search ID or Multiple Track Search ID)
   18   08     (TIC to the SearchID)
   20   0x     (06/05 Data Read or Write)
   28   03/08  (TIC/NOP) - this CCW will be a NOP if this
               PIOBK is the last package in the active
               channel program, or a TIC to the next PIOBK
               in the active channel program otherwise
   30   --     Seek data BBCCHH (physical layout of DASD)
               Where BB = Bin number (zeroes)
                     CC = Cylinder number
                     HH = Head/Track number
   36   --     SearchID data CCHHR (logical layout of DASD)
               Where CC = Cylinder number
                     HH = Head/Track number
                      R = Record number
   3B   --     Flag byte
   3C   --     Savearea or Indirect Interrupt Return Address
   40   07     Start of the next PIOBK package (Seek/SPP)
 ECKD format:
 offset opcode description
    0   --     Locate Record data area (two doublewords,
               mapped by HCPLRDA
   10   63     (Define Extent CCW)
   18   47     (Locate Record CCW)
   20   8x     (86/85 Read Data or Write Update Data CCW)
   28   03/08  (TIC/NOP) - this CCW will be a NOP if this
               PIOBK is the last package in the active
               channel program, or a TIC to the next PIOBK
               in the active channel program otherwise
   30   --     Format-2 IDAW (8 bytes, 64 bits)
   38   --     Unused 3 bytes
   3B   --     Flag byte
   3C   --     Savearea or Indirect Interrupt Return Address
   40   --     Locate record data area of next package
 FBA format:
 offset opcode description
    0   --     Locate data area (one doubleword, mapped by
               HCPLCDA)
    8   --     Format-2 IDAW (8 bytes, 64 bits)
   10   63     (Define Extent CCW)
   18   43     (Locate CCW)
   20   4x     (42/41 Read or Write CCW)
   28   03/08  (TIC/NOP) - this CCW will be a NOP if this
               PIOBK is the last package in the active
               channel program, or a TIC to the next PIOBK
               in the active channel program otherwise
   30   --     Unused 2 bytes
   32   --     Calculated pseudo-cylinder number
               corresponding to starting block number
   34   --     Calculated pseudo-page number corresponding
               to starting block number
   35   --     Unused 3 bytes
   38   --     Unused 3 bytes
   3B   --     Flag byte
   3C   --     Savearea or Indirect Interrupt Return Address
   40   --     Locate data area of next package

 

PIOBK Control Block Content


PIOBK DSECT

Hex   Dec Type/Val   Lng Label (dup)    Comments
---- ---- --------- ---- -------------- --------
0000    0 Structure      PIOBK          Paging I/O CCW packages.
      PIOBK definitions common to all formats
0000    0 Signed       8 PIOINITL (4)   Channel program initialization
                                        and target record location area
0020   32 Signed       8 PIORDWR (0)    - Read or write CCW -
0020   32 Bitstring    1 PIORDWRO       CCW op code - x'06' CKD Read
                                        Data, (**) x'05' CKD Write Data,
                                        (**) x'86' ECKD Read Data, x'85'
                                        ECKD Write Update Record, x'42'
                                        FBA Read or x'41' FBA Write.
          ..1. ....      PIOFINIS       X'20' Indicates that the PIOBK
                                        has been processed. If PIORDWRO
                                        equals: x'26' for a CKD read,
                                        (**) x'25' for a CKD write, (**)
                                        x'A6' for an ECKD read, x'A5' for
                                        an ECKD write, x'62' for an FBA
                                        read, or x'61' for an FBA write,
                                        then the PIOBK has been processed
          ..11 ....      PIOINERR       X'30' Indicates that the PIOBK
                                        had an error that has been
                                        processed. If PIORDWRO equals:
                                        x'36' for a CKD read, (**) x'35'
                                        for a CKD write, (**) x'B6' for
                                        an ECKD read, x'B5' for an ECKD
                                        write, x'72' for an FBA read, or
                                        x'71' for an FBA write, then an
                                        error has already been processed
                                        for this PIOBK.
      Notes      :  These PIOFINS and PIOINERR equates are neither bits
      nor codes in the traditional sense.  They are turned on
      during interrupt processing (after the I/O for this PIOBK
      has completed) in the top nibble of the opcode (which
      never uses those bits) to indicate that the PIOBK has been
      processed, or the PIOBK has an error that has been
      processed, respectively.  There are turned on and off with
      OI and NI without changing the opcode itself (and
      obviously, must be turned off before the PIOBK is used in
      an active channel program).
      (**): CKD formatted devices and CKD format paging channel
            programs are no longer supported as of this release,
            although they will still be attached to the system
            and used.
0021   33 Address      1 PIORDWRF       CCWCC+CCWIDA - READ or WRITE CCW
                                        flag field Command Chaining plus
                                        Indirect Data Addressing
0022   34 Signed       2 PIORDWRC       '1000' - READ or WRITE CCW count
0024   36 Address      4 PIORDWRA       - READ or WRITE CCW IDAW absolute
                                        address.
0028   40 Signed       8 PIO3OR8 (0)    - NOP or TIC CCW -
0028   40 Signed       4 PIO3OR8W (0)   - 1st word of CCW that will be
                                        changed with a TIC CCW.
0028   40 Bitstring    1 PIO3OR8O       '03/08' - NOP or TIC op code
0029   41 Address      1 PIO3OR8F       CCWUSPN / 0 - NOP or TIC flags
002A   42 Signed       2 PIO3OR8C       '0000' - NOP or TIC count
002C   44 Address      4 PIO3OR8A       - NOP or TIC address field
                                        contains absolute address of the
                                        starting CCW in the next PIOBK.
0030   48 Bitstring   11 PIOMISC        Miscellaneous data: - ECKD:
                                        contains the IDAW used to locate
                                        the target area in host absolute
                                        storage - FBA: used to save the
                                        calculated cylinder and page
                                        numbers corresponding to the
                                        block numbers used for the actual
                                        I/O - CKD: contains SEEK and
                                        SEARCHID arguments
003B   59 Bitstring    1 PIOFLAG        Flags byte:
          ...1 ....      PIOBADCC       X'10' PIOBADCC Indicates a
                                        condition code 1 or 2 was
                                        received from a RSCH. When an
                                        IFCC+CCC is received, we'll need
                                        to restart this package.
          .... 1...      PIOPGFLT       X'08' PIOPGFLT This is a page
                                        read for a page fault.
          .... .1..      PIOIOERR       X'04' PIOIOERR Indicates an I/O
                                        error has occurred for this CCW
                                        package for an incorrect length
                                        problem and a no record found on
                                        a miss for N+1.
          .... ..1.      PIOMRPCI       X'02' PIOMRPCI Indicates the
                                        first record of multi read
                                        requires a PCI.
          .... ...1      PIOMULTI       X'01' PIOMULTI Indicates a
                                        multiple write or read CCW
                                        package.
          ...1 1111      PIOALLFG       PIOMRPCI+PIOIOERR+PIOMULTI+PIOPGF
                                        LT+PIOBADCC PIOALLFG Used to
                                        reset flags in PIOFLAG
003C   60 Address      4 PIOSVRTN       Pointer to structure designating
                                        interface back to original
                                        caller: SW - deferred savearea
                                        (SVGBK) SR - deferred savearea
                                        (SVGBK) MW - Indirect IRA - may
                                        be a full PIRBK or one word
                                        containing caller's Interrupt
                                        Return Address (IRA) backend
                                        routine MR - If negative,
                                        contains address of deferred
                                        savearea (SVGBK) for task
                                        deferred on faulted page,
                                        otherwise, contains Indirect IRA,
                                        as per MW case
0040   64 Signed       4 PIONEXT (0)    Next sequential PIOBK
          00000040       PIOBSIZE       *-PIOBK Size of one CCW package
                                        in bytes
          00000008       PIOSIZE        ((*-PIOBK)+7)/8 Size of one CCW
                                        package in double-words
          00FFFFC0       PIOISOLB       X'7FFFFFC0' Isolate the beginning
                                        address of one PIOBK block.
          00FFF800       PIOISOLA       X'7FFFF800' Isolate the start
                                        address of the first PIOBK in
                                        storage.
          00000800       PIOTOTBS       2048 Total byte size of area for
                                        all PIOBKs.
          00000020       PIOCTPIO       (PIOTOTBS/8)/PIOSIZE Count of
                                        PIOBKs that fit into a PIOBK
                                        area.
          0000001F       PIOMAXAC       PIOCTPIO-1 Maximum number of
                                        PIOBKs that can be concurrently
                                        active
          00000100       PIOPAGSZ       PIOCTPIO*PIOSIZE Total doubleword
                                        size of area for all PIOBKs.
      End of common PIOBK definitions
      PIOBK definitions specifically for ECKD paging devices
0000    0 Bitstring   16 PIOLRDA        - Locate Record Parameter This
                                        area mapped by LRDA DSECT
0010   16 Signed       8 PIODEFX        - Define Extent CCW -
0018   24 Signed       8 PIOLR          - Locate Record CCW -
0030   48 Signed       8 PIOEIDAW       - Format-2 IDAW (entire 4K)
      PIOBK definitions specifically for FBA paging devices
0000    0 Bitstring    8 PIOLCDA        - Locate CCW data area (mapped by
                                        LCDA DSECT)
0008    8 Signed       8 PIOFIDAW       - Format-2 IDAW (entire 4K)
0018   24 Signed       8 PIOLOC         - Locate CCW
0030   48 Bitstring    2 *              - Unused for FBA
0032   50 Bitstring    3 PIOFCCP (0)    - CCP for block number
0032   50 Signed       2 PIOFCC         - Cylinder number
0034   52 Bitstring    1 PIOFP          - Page number
      PIOBK definitions specifically for CKD paging devices
0000    0 Signed       8 PIOSEEK        - Seek CCW -
0008    8 Signed       8 PIOSETS        - Set Sector CCW -
0010   16 Signed       8 PIOSRCH        - SearchID Equal CCW -
0018   24 Signed       8 PIOSTIC        - Tic CCW to Search -
0030   48 Bitstring    6 PIOSKDAT (0)   - Seek argument -
0030   48 Signed       2 PIOBB          - BB Bin number
0032   50 Bitstring    4 PIOSCCHH (0)   - Picks up both fields below
0032   50 Signed       2 PIOSCC         - CC Cylinder number
0034   52 Signed       2 PIOSHH         - HH Head number
0036   54 Bitstring    5 PIOCCHHR (0)   - SearchID argument
0036   54 Signed       2 PIOSIDCC       - SearchID cylinder number
0038   56 Signed       2 PIOSIDHH       - SearchID head number
003A   58 Bitstring    1 PIOREC         - R Record number

 

PIOBK Storage Layout

          
*** PIOBK - Paging I/O CCW packages.
*
*     +-------------------------------------------------------+
*   0 |                                                       |
*     =                       PIOINITL                        =
*     |                                                       |
*     +------+------+-------------+---------------------------+
*  20 |:RDWRO|:RDWRF|  PIORDWRC   |         PIORDWRA          |
*     +------+------+-------------+---------------------------+
*  28 |:3OR8O|:3OR8F|  PIO3OR8C   |         PIO3OR8A          |
*     +------+------+-------------+---------------------------+
*  30 |                       PIOMISC                         |
*     |                    +------+---------------------------+
*  38 |                    |:FLAG |         PIOSVRTN          |
*     +--------------------+------+---------------------------+
*
*** PIOBK - Paging I/O CCW packages.
          
*** Overlay for PIOINITL in PIOBK
*
*     +-------------------------------------------------------+
*   0 |                       PIOLRDA                         |
*     |                                                       |
*     +-------------------------------------------------------+
*  10 |                       PIODEFX                         |
*     +-------------------------------------------------------+
*  18 |                        PIOLR                          |
*     +-------------------------------------------------------+
*  20
*
*** Overlay for PIOINITL in PIOBK
          
*** Overlay for PIOMISC in PIOBK
*
*     +-------------------------------------------------------+
*  30 |                       PIOEIDAW                        |
*     +-------------------------------------------------------+
*  38
*
*** Overlay for PIOMISC in PIOBK
          
*** Overlay for PIOINITL in PIOBK
*
*     +-------------------------------------------------------+
*   0 |                       PIOLCDA                         |
*     +-------------------------------------------------------+
*   8 |                       PIOFIDAW                        |
*     +-------------------------------------------------------+
*  10
*
*** Overlay for PIOINITL in PIOBK
          
*** Overlay for PIOLR in PIOBK
*
*     +-------------------------------------------------------+
*  18 |                        PIOLOC                         |
*     +-------------------------------------------------------+
*  20
*
*** Overlay for PIOLR in PIOBK
          
*** Overlay for PIOMISC in PIOBK
*
*     +-------------+-------------+------+
*  30 |/////////////|   PIOFCC    |PIOFP | 35
*     +-------------+-------------+------+
*
*** Overlay for PIOMISC in PIOBK
          
*** Overlay for PIOINITL in PIOBK
*
*     +-------------------------------------------------------+
*   0 |                       PIOSEEK                         |
*     +-------------------------------------------------------+
*   8 |                       PIOSETS                         |
*     +-------------------------------------------------------+
*  10 |                       PIOSRCH                         |
*     +-------------------------------------------------------+
*  18 |                       PIOSTIC                         |
*     +-------------------------------------------------------+
*  20
*
*** Overlay for PIOINITL in PIOBK
          
*** Overlay for PIOMISC in PIOBK
*
*     +-------------+-------------+-------------+-------------+
*  30 |   PIOBB     |   PIOSCC    |   PIOSHH    |  PIOSIDCC   |
*     +-------------+------+------+-------------+-------------+
*  38 |  PIOSIDHH   |PIOREC| 3B
*     +-------------+------+
*
*** Overlay for PIOMISC in PIOBK

 

PIOBK Cross Reference

Symbol         Dspl Value
-------------- ---- -----
PIOALLFG       003B 1F
PIOBADCC       003B 10
PIOBB          0030
PIOBSIZE       0040 00000040
PIOCCHHR       0036
PIOCTPIO       0040 00000020
PIODEFX        0010
PIOEIDAW       0030
PIOFCC         0032
PIOFCCP        0032
PIOFIDAW       0008
PIOFINIS       0020 20
PIOFLAG        003B
PIOFP          0034
PIOINERR       0020 30
PIOINITL       0000
PIOIOERR       003B 04
PIOISOLA       0040 00FFF800
PIOISOLB       0040 00FFFFC0
PIOLCDA        0000
PIOLOC         0018
PIOLR          0018
PIOLRDA        0000
PIOMAXAC       0040 0000001F
PIOMISC        0030
PIOMRPCI       003B 02
PIOMULTI       003B 01
PIONEXT        0040
PIOPAGSZ       0040 00000100
PIOPGFLT       003B 08
PIORDWR        0020
PIORDWRA       0024
PIORDWRC       0022
PIORDWRF       0021
PIORDWRO       0020
PIOREC         003A
PIOSCC         0032
PIOSCCHH       0032
PIOSEEK        0000
PIOSETS        0008
PIOSHH         0034
PIOSIDCC       0036
PIOSIDHH       0038
PIOSIZE        0040 00000008
PIOSKDAT       0030
PIOSRCH        0010
PIOSTIC        0018
PIOSVRTN       003C
PIOTOTBS       0040 00000800
PIO3OR8        0028
PIO3OR8A       002C
PIO3OR8C       002A
PIO3OR8F       0029
PIO3OR8O       0028
PIO3OR8W       0028

This information is based on z/VM V5R4.0. Last updated on 18 Feb 2010 at 03:59:33 EDT.
Copyright IBM Corporation, 1990, 2009