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.

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:                                                 *
                                                              *
    HEX  HEX                                                  *
    ADDR OPCODE                                               *
     0   07/8B (SEEK or SET PAGE PARAMETER cache only)        *
     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   - this CCW will either be a NOP for the last *
                   CCW or a TIC to the next package if it is  *
                   a previous CCW from the last CCW.          *
    30   SAVEAREA or RETURN ADDRESS                           *
                                                              *
    34   Seek data BBCCHH (phsyical layout of DASD)           *
         Where BB = Bin number (zeroes)                       *
               CC = Cylinder number                           *
               HH = Head/Track number                         *
                                                              *
    3A   SearchID data CCHHR (logical layout of DASD minidisk)*
         Where CC = Cylinder number                           *
               HH = Head/Track number                         *
                R = Record number                             *
                                                              *
    3F   FLAG BYTE                                            *
                                                              *
    40   07 of the next package                               *
                                                              *
  ECKD format:                                                *
                                                              *
    HEX  HEX                                                  *
    ADDR OPCODE                                               *
     0   LOCATE RECORD data area (two doublewords)            *
    10   63    (DEFINE EXTENT CCW)                            *
    18   47    (LOCATE RECORD CCW)                            *
    20   8x    (86/85 Read data or write update data)         *
    28   03/08   - this CCW will either be a NOP for the last *
                   CCW or a TIC to the next package if it is  *
                   a previous CCW from the last CCW.          *
    30   SAVEAREA or RETURN ADDRESS                           *
    34   Unused word                                          *
    38   Unused 7 bytes                                       *
    3F   FLAG BYTE                                            *
    40   Locate record data area of next package              *
                                                              *
  FBA format:                                                 *
                                                              *
    HEX  HEX                                                  *
    ADDR OPCODE                                               *
     0   LOCATE CCW data area   (mapped by HCPLCDA)           *
     8   Unused doubleword                                    *
    10   63    (DEFINE EXTENT CCW)                            *
    18   43    (LOCATE CCW)                                   *
    20   4x    (42/41 Read or Write CCW)                      *
    28   03/08   - this CCW will either be a NOP for the last *
                   CCW or a TIC to the next package if it is  *
                   a previous CCW from the last CCW.          *
    30   SAVEAREA or RETURN ADDRESS                           *
    34   Unused halfword                                      *
    36   Cylinder number corresponding to starting block num  *
    38   Page number corresponding to starting block number   *
    39   Unused 6 bytes                                       *
    3F   Flag byte                                            *
    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. 0000 0 Dbl-Word 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 Dbl-Word 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 Dbl-Word 8 PIOSRCH (0) - Search ID Equal CCW - 0010 16 Bitstring 1 PIOSRCHO '31' - SEARCH ID CCW OP code 0011 17 Address 1 PIOSRCHF CCWCC - SEARCH ID CCW flag field 0012 18 Signed 2 PIOSRCHC '0005' - SEARCH ID CCW byte count 0014 20 Address 4 PIOSRCHA PIOCC - SEARCH ID CCW data address 0018 24 Dbl-Word 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 0020 32 Dbl-Word 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'66' for a CKD read, x'65' for a CKD write, x'E6' for an ECKD read, x'E5' 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'76' for a CKD read, x'75' for a CKD write, x'F6' for an ECKD read, x'F5' 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 equates are neither bits nor codes. They are turned on 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. 0021 33 Address 1 PIORDWRF CCWCC - READ OR WRITE CCW flag field 0022 34 Signed 2 PIORDWRC '1000' - READ OR WRITE CCW count 0024 36 Address 4 PIORDWRA - READ OR WRITE CCW data address 0028 40 Dbl-Word 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 CCW 0030 48 Address 4 PIOSVRTN Address of saveara or return address (MW) 0034 52 Character 6 PIOSKDAT (0) - SEEK argument - 0034 52 Signed 2 PIOBB - BB Bin number 0036 54 Bitstring 4 PIOSCCHH (0) - Picks up both fields below 0036 54 Signed 2 PIOSCC - CC Cylinder number 0038 56 Signed 2 PIOSHH - HH Head number 003A 58 Bitstring 5 PIOCCHHR (0) - SEARCHID argument 003A 58 Signed 2 PIOSIDCC - SearchID cylinder number 003C 60 Signed 2 PIOSIDHH - SearchID head number 003E 62 Bitstring 1 PIOREC - R Record number 003F 63 Bitstring 1 PIOFLAG - flags ...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 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. Partial Redefinition of PIOBK for ECKD paging devices. 0000 0 Bitstring 16 PIOLRDA - Locate Record Parameter This area mapped by LRDA DSECT 0010 16 Dbl-Word 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 Dbl-Word 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 Partial Redefinition of PIOBK 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 Dbl-Word 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) 0036 54 Bitstring 3 PIOFCCP (0) CCP for block number 0036 54 Signed 2 PIOFCC Cylinder number 0038 56 Bitstring 1 PIOFP Page number

 

PIOBK Storage Layout

*** PIOBK - Paging I/O CCW packages.
*
*     +------+------+-------------+---------------------------+
*   0 |:SEEKO|:SEEKF|  PIOSEEKC   |         PIOSEEKA          |
*     +------+------+-------------+---------------------------+
*   8 |:SETSO|:SETSF|  PIOSETSC   |         PIOSETSA          |
*     +------+------+-------------+---------------------------+
*  10 |:SRCHO|:SRCHF|  PIOSRCHC   |         PIOSRCHA          |
*     +------+------+-------------+---------------------------+
*  18 |:STICO|:STICF|  PIOSTICC   |         PIOSTICA          |
*     +------+------+-------------+---------------------------+
*  20 |:RDWRO|:RDWRF|  PIORDWRC   |         PIORDWRA          |
*     +------+------+-------------+---------------------------+
*  28 |:3OR8O|:3OR8F|  PIO3OR8C   |         PIO3OR8A          |
*     +------+------+-------------+-------------+-------------+
*  30 |         PIOSVRTN          |   PIOBB     |   PIOSCC    |
*     +-------------+-------------+-------------+------+------+
*  38 |   PIOSHH    |  PIOSIDCC   |  PIOSIDHH   |PIOREC|:FLAG |
*     +-------------+-------------+-------------+------+------+
*  40
*
*** PIOBK - Paging I/O CCW packages.
*** Overlay for PIOSEEK in PIOBK
*
*     +-------------------------------------------------------+
*   0 |                       PIOLRDA                         |
*     |                                                       |
*     +------+------+-------------+---------------------------+
*  10 |:DEFXO|:DEFXF|  PIODEFXC   |         PIODEFXA          |
*     +------+------+-------------+---------------------------+
*  18 |PIOLRO|PIOLRF|   PIOLRC    |          PIOLRA           |
*     +------+------+-------------+---------------------------+
*  20
*
*** Overlay for PIOSEEK in PIOBK
*** Overlay for PIOSEEK in PIOBK
*
*     +-------------------------------------------------------+
*   0 |                       PIOLCDA                         |
*     +-------------------------------------------------------+
*   8 |///////////////////////////////////////////////////////|
*     +-------------------------------------------------------+
*  10
*
*** Overlay for PIOSEEK in PIOBK
*** Overlay for PIOLR in PIOBK
*
*     +------+------+-------------+---------------------------+
*  18 |:LOCO |:LOCF |  PIOLOCC    |         PIOLOCA           |
*     +------+------+-------------+---------------------------+
*  20
*
*** Overlay for PIOLR in PIOBK
*** Overlay for PIOSCCHH in PIOBK
*
*                                               +-------------+
*  30 ...                                    36 |   PIOFCC    |
*     +------+----------------------------------+-------------+
*  38 |PIOFP | 39
*     +------+
*
*** Overlay for PIOSCCHH in PIOBK

 

PIOBK Cross Reference

(contains links to field and bit definitions)
Symbol         Dspl Value
-------------- ---- -----

PIOALLFG 003F 1F

PIOBADCC 003F 10

PIOBB 0034

PIOBSIZE 003F 00000040

PIOCCHHR 003A

PIOCTPIO 003F 00000020

PIODEFX 0010

PIODEFXA 0014

PIODEFXC 0012

PIODEFXF 0011

PIODEFXO 0010

PIOFCC 0036

PIOFCCP 0036

PIOFINIS 0020 20

PIOFLAG 003F

PIOFP 0038

PIOINERR 0020 30

PIOIOERR 003F 04

PIOISOLA 003F 00FFF800

PIOISOLB 003F 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

PIOMRPCI 003F 02

PIOMULTI 003F 01

PIOPAGSZ 003F 00000100

PIOPGFLT 003F 08

PIORDWR 0020

PIORDWRA 0024

PIORDWRC 0022

PIORDWRF 0021

PIORDWRO 0020

PIOREC 003E

PIOSCC 0036

PIOSCCHH 0036

PIOSEEK 0000

PIOSEEKA 0004

PIOSEEKC 0002

PIOSEEKF 0001

PIOSEEKO 0000

PIOSEEKW 0000

PIOSETS 0008

PIOSETSA 000C

PIOSETSC 000A

PIOSETSF 0009

PIOSETSO 0008

PIOSHH 0038

PIOSIDCC 003A

PIOSIDHH 003C

PIOSIZE 003F 00000008

PIOSKDAT 0034

PIOSRCH 0010

PIOSRCHA 0014

PIOSRCHC 0012

PIOSRCHF 0011

PIOSRCHO 0010

PIOSTIC 0018

PIOSTICA 001C

PIOSTICC 001A

PIOSTICF 0019

PIOSTICO 0018

PIOSVRTN 0030

PIOTOTBS 003F 00000800

PIO3OR8 0028

PIO3OR8A 002C

PIO3OR8C 002A

PIO3OR8F 0029

PIO3OR8O 0028

PIO3OR8W 0028


This information is based on VM/ESA 2.4.0.
Last updated on 3 Aug 1999 at 12:23:01 EDT.
Copyright IBM Corporation, 1990, 1999