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
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
Last updated on 3 Aug 1999 at 12:23:01 EDT.
Copyright IBM Corporation, 1990, 1999