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 pointer to the first active
              PIOBK.
              EXPSCCWP  - Contains the pointer to the last PIOBK
              that contains the suspended CCW string.
 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   :
              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   --     390 build:   Unused 8 bytes
               ESAME build: 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   --     390 build:   Unused 8 bytes
               ESAME build: 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 - READ or WRITE CCW flag
                                        field 390 build default: Command
                                        Chaining only
0022   34 Signed       2 PIORDWRC       '1000' - READ or WRITE CCW count
0024   36 Address      4 PIORDWRA       - READ or WRITE CCW data address
                                        in 390 build
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 pointer to next PIOBK
                                        package's starting CCW
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' 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' This is a page read for a
                                        page fault.
          .... .1..      PIOIOERR       X'04' 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' Indicates the first record
                                        of multi read requires a PCI.
          .... ...1      PIOMULTI       X'01' Indicates a multiple write
                                        or read CCW package.
          ...1 1111      PIOALLFG       PIOMRPCI+PIOIOERR+PIOMULTI+PIOPGF
                                        LT+PIOBADCC 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.
          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 (0)    - Define Extent -
0010   16 Bitstring    1 PIODEFXO       '63' - DEFINE EXTENT CCW OP code
0011   17 Address      1 PIODEFXF       CCWCC - DEFINE EXTENT CCW flag
                                        field
0012   18 Signed       2 PIODEFXC       '0010' - DEFINE EXTENT CCW byte
                                        count
0014   20 Address      4 PIODEFXA       (PAGDXDA) - DEFINE EXTENT CCW
                                        data address
0018   24 Signed       8 PIOLR (0)      - Locate Record -
0018   24 Bitstring    1 PIOLRO         '47' - LOCATE RECORD CCW OP code
0019   25 Address      1 PIOLRF         CCWCC - LOCATE RECORD CCW flag
                                        field
001A   26 Signed       2 PIOLRC         '0010' - LOCATE RECORD CCW byte
                                        count
001C   28 Address      4 PIOLRA         (PIOLRDA) - LOCATE RECORD CCW
                                        data address
     PIOBK definitions specifically for FBA paging devices
0000    0 Bitstring    8 PIOLCDA        - Locate CCW data area (mapped by
                                        LCDA DSECT)
0008    8 Bitstring    8 *              - Unused by FBA
0018   24 Signed       8 PIOLOC (0)     - Locate CCW
0018   24 Bitstring    1 PIOLOCO        - Locate opcode (x'43')
0019   25 Address      1 PIOLOCF        - Locate flag field (CCWCC)
001A   26 Signed       2 PIOLOCC        - Locate byte count (X'0008')
001C   28 Address      4 PIOLOCA        - Locate data address (PIOLDA)
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 (0)    - Seek CCW -
0000    0 Signed       4 PIOSEEKW (0)   - 1st word of CCW.
0000    0 Bitstring    1 PIOSEEKO       '07' - SEEK CCW OP code
0001    1 Address      1 PIOSEEKF       CCWCC - SEEK CCW flag field
0002    2 Signed       2 PIOSEEKC       '0006' - SEEK CCW byte count
0004    4 Address      4 PIOSEEKA       PIOSKDAT - SEEK CCW data address
0008    8 Signed       8 PIOSETS (0)    - Set Sector CCW -
0008    8 Bitstring    1 PIOSETSO       '23' - SET SECTOR CCW OP code
0009    9 Address      1 PIOSETSF       CCWCC - SET SECTOR CCW flag field
000A   10 Signed       2 PIOSETSC       '0001' - SET SECTOR CCW byte
                                        count
000C   12 Address      4 PIOSETSA       PIOSS - SET SECTOR CCW data
                                        address
0010   16 Signed       8 PIOSRCH (0)    - SearchID Equal CCW -
0010   16 Bitstring    1 PIOSRCHO       '31' - SearchID CCW OP code
0011   17 Address      1 PIOSRCHF       CCWCC - SearchID CCW flag field
0012   18 Signed       2 PIOSRCHC       '0005' - SearchID CCW byte count
0014   20 Address      4 PIOSRCHA       PIOCC - SearchID CCW data address
0018   24 Signed       8 PIOSTIC (0)    - Tic CCW to Search -
0018   24 Bitstring    1 PIOSTICO       '08' - TIC CCW OP code
0019   25 Address      1 PIOSTICF       Zeroes - TIC CCW must be zeroes
001A   26 Signed       2 PIOSTICC       Zeroes - TIC CCW must be zeroes
001C   28 Address      4 PIOSTICA       PIOSRCH - TIC CCW TIC to search
                                        address
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 |:DEFXO|:DEFXF|  PIODEFXC   |         PIODEFXA          |
*     +------+------+-------------+---------------------------+
*  18 |PIOLRO|PIOLRF|   PIOLRC    |          PIOLRA           |
*     +------+------+-------------+---------------------------+
*  20
*
*** Overlay for PIOINITL in PIOBK
          
*** Overlay for PIOINITL in PIOBK
*
*     +-------------------------------------------------------+
*   0 |                       PIOLCDA                         |
*     +-------------------------------------------------------+
*   8 |///////////////////////////////////////////////////////|
*     +-------------------------------------------------------+
*  10
*
*** Overlay for PIOINITL in PIOBK
          
*** Overlay for PIOLR in PIOBK
*
*     +------+------+-------------+---------------------------+
*  18 |:LOCO |:LOCF |  PIOLOCC    |         PIOLOCA           |
*     +------+------+-------------+---------------------------+
*  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 |:SEEKO|:SEEKF|  PIOSEEKC   |         PIOSEEKA          |
*     +------+------+-------------+---------------------------+
*   8 |:SETSO|:SETSF|  PIOSETSC   |         PIOSETSA          |
*     +------+------+-------------+---------------------------+
*  10 |:SRCHO|:SRCHF|  PIOSRCHC   |         PIOSRCHA          |
*     +------+------+-------------+---------------------------+
*  18 |:STICO|:STICF|  PIOSTICC   |         PIOSTICA          |
*     +------+------+-------------+---------------------------+
*  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
PIODEFXA       0014
PIODEFXC       0012
PIODEFXF       0011
PIODEFXO       0010
PIOFCC         0032
PIOFCCP        0032
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
PIOLOCA        001C
PIOLOCC        001A
PIOLOCF        0019
PIOLOCO        0018
PIOLR          0018
PIOLRA         001C
PIOLRC         001A
PIOLRDA        0000
PIOLRF         0019
PIOLRO         0018
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
PIOSEEKA       0004
PIOSEEKC       0002
PIOSEEKF       0001
PIOSEEKO       0000
PIOSEEKW       0000
PIOSETS        0008
PIOSETSA       000C
PIOSETSC       000A
PIOSETSF       0009
PIOSETSO       0008
PIOSHH         0034
PIOSIDCC       0036
PIOSIDHH       0038
PIOSIZE        0040 00000008
PIOSKDAT       0030
PIOSRCH        0010
PIOSRCHA       0014
PIOSRCHC       0012
PIOSRCHF       0011
PIOSRCHO       0010
PIOSTIC        0018
PIOSTICA       001C
PIOSTICC       001A
PIOSTICF       0019
PIOSTICO       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 V4R3.0. Last updated on 30 Apr 2002 at 17:19:38 EDT.
Copyright IBM Corporation, 1990, 2002