EXPBK Back to Index page
 
Prolog 
Control Block Contents 
   EXPBK DSECT
   EXPQUENT DSECT
Storage Layout 
Cross Reference (Contains links to field and bit definitions)
Programming Interface Information:
This information is NOT intended to be
used as Programming Interfaces of z/VM.


  EXPBK Prolog Top of page
 
 NAME       : HCPEXPBK
 DESCRIPTION: EXPOSURE BLOCK
 DSECT      : EXPBK
 FUNCTION   : The exposure block contains necessary information
              about a CP volume for paging information.
 LOCATED BY : CPVEXPBK - Points to the exposure block.
 CREATED BY : HCPRDAAT - When the CP owned volume is brought on
              line at IPL time and during the ATTACH
              command processing.
 DELETED BY : HCPRDADT - When the CP owned volume is DETACHed from
              the system.
 SERIALIZED : EXPLCKFG - A Test and Set instruction is used to set
              the lock flag on to serialize this control
              block and the IORBK control block for the
              exposure.
 RELOCATION CONSIDERATIONS : None
 COMMENTS   :
 
 
  EXPBK Control Block Content Top of page
 

 EXPBK DSECT Top of page
Hex Dec Type/Val Lng Label (dup) Comments ---- ---- --------- ---- -------------- -------- 0000 0 Structure EXPBK EXPOSURE BLOCK Flags for the exposure block. 0000 0 Bitstring 1 EXPLCKFG Exposure lock byte. Obtained - TSGET X'FF' Released - TSREL X'00' 0001 1 Bitstring 1 EXPTYPEF Exposure type flag ..1. .... EXPSCSI X'20' EXPSCSI Native SCSI (FBA on SCSI) .... ..1. EXPFBA X'02' EXPFBA This is an FBA device .... ...1 EXPECKD X'01' EXPECKD Indicates this is an ECKD paging device These flags keep the status information for this exposure. This flag contains bits, but is also manipulated with a MVI so care must be taken to understand the relationship of the bits. 0002 2 Bitstring 1 EXPSTAT1 Exposure status flag one .... .... EXPIDLE X'00' EXPIDLE Value when exposure is idle, and unsuspended, as far as paging subsystem is aware. 1... .... EXPINTE X'80' EXPINTE Interrupt is expected. Turned on when: - a SSCH is stacked - a RSCH is issued - a CSCH is issued Turned off when: - PAHIN receives a "final" interrupt. (Suspended NOP, or an interrupt for a non-suspended NOP, or CSCH.) Left on when: - PCI only interrupt is received. .1.. .... EXPSUSPN X'40' EXPSUSPN Indicates that the device is suspended and a RSCH is needed. Turned on when EXPINTE is turned off, and the device is suspended. Turned off when a RSCH or CSCH is issued. ..1. .... EXPRSCHBC X'20' EXPRSCHBC RSCH Bad Condition code. RSCH was issued but a CC1 or CC2 was received. Turned on when a RSCH is issued and results in a CC1 or a CC2. Turned off when an interrupt is received and PAH issues a SSCH to restart the previously built package. ...1 .... EXPCSCHDN X'10' EXPCSCHDN CSCH DoNe. Turned on when a CSCH is issued. Turned off when EXPINTE is turned off. .... 1... EXPAQ X'08' EXPAQ RAS: Call has been stacked to HCPPAUAQ after a RSCH CC=3. .... .1.. EXPNOPS X'04' EXPNOPS RAS: Suspend is on in the final NOP CCW. Turned on when the final CCW has suspend indicated. Turned off when EXPINTE is turned off, or the the suspend bit is turned off and ESPSTAT2.DQINP is turned on. .... ..1. EXPSSCHDN X'02' EXPSSCHDN RAS: SSCH was stacked or gone to. Turned on when a SSCH is stacked. Turned off when EXPINTE is turned off. .... ...1 EXPRSCHDN X'01' EXPRSCHDN RAS: RSCH was issued. Turned on when a RSCH is issued. Turned off when EXPINTE is turned off. 0003 3 Bitstring 1 EXPSTAT2 Exposure status flag two 1... .... EXPDQINP X'80' EXPDQINP Indicates a DEQUEUE in progress. Turned on when it is determined that a device needs to come to an unsuspended state. Turned off when EXPSTAT1.EXPINTE is turned off and the device is not suspended. 0004 4 Signed 4 * Reserved for future IBM use. The PIOBK array (array of PIOBKs) contains the channel program for this exposure. Therefore it is allocated below the 2G line. Most PIOBK "work" is done using host absolute addresses. Any reference to the "previous" PIOBK in the comments refers to the PIOBK that tics to a CCW within this PIOBK. Any reference to the "next" PIOBK in the comments refers to the PIOBK that is TICed to by the TIC/NOP in this PIOBK. See PIOBK for more information concerning each PIOBK. 0008 8 Address 4 EXPPIOARHL PIOBK Array Host Logical. Host logical address of the array of PIOBKs. 000C 12 Address 4 EXPPIOARHA PIOBK Array Host Absolute. Host absolute address of the array of PIOBKs. 0010 16 Address 4 EXPPIOAREND PIOBK Array End. Host absolute address of the last byte of the array of PIOBKs. 0014 20 Signed 4 * Reserved for future IBM use. The "executing" PIOBKs for this exposure These next two pointers define the first through last PIOBKS that have been "sent" to the channel. The second pointer is updated as the channel program is being built though. Initial state - PIOEF = PIOEL = First PIOBK in Array (Arbitrary, could be any) I/O Executing state - see comments below Suspended (idle) state - PIOEF=PIOEL (suspended PIOBK) Idle (Unsuspended) state - PIOEF = PIOEL (last processed) PIOEF and PIOEL will never be zero. 0018 24 Address 4 EXPPIOEF PIOBK Executing First. Host absolute address of the first executing PIOBK. This is the HA address of the PIOBK in the current channel program that has not been processed by HCPPAHIN (or is currently suspended). Note: In the case of a RSCH, this points to the PIOBK that is pointed into by the TIC that was resumed. In the case of a SSCH, this points to the PIOBK that has the Define Extent pointed to by CPA in the ORB. In the case when a PCI interrupt is received, this points to the next PIOBK that is not yet processed. 001C 28 Address 4 EXPPIOEL Executing Last. "Suspended" Host absolute address of the PIOBK in the executing channel program that contains the last R/W CCW and has (ends in) either a NOP/suspend, or a NOP. 0020 32 Address 4 EXPGATE This is the address of the PIOBK that was executed by the channel subsystem and has a suspended NOP. Set when construction of a new segment of channel program begins. Just before a segment is executed (SSCH or RSCH) the NOP in this PIOBK is changed to a TIC to the next appropriate CCW, and this field is set to 0. Its important this is not done earlier as the I/O subsystem may do a RSCH while we are still building the next CCW segment. 0024 36 Signed 4 * Reserved for IBM use The "built" PIOBKs for this exposure These next two pointers define the first through last PIOBKS that have unprocessed CCWs that have been built, but not yet sent to the channel. When an SSCH is scheduled or a RSCH receives a CC0 then these built PIOBKs become the executing PIOBKs. Initial state - PIOBF = 0 PIOBL = 0 Reset to initial state when a SSCH is scheduled, or a RSCH receives a CC0. BKT didn't actually use/need the first 2. To be deleted. 0028 40 Address 4 EXPPIOBF Built first. Host absolute address of the first PIOBK as a new channel program is being built. This PIOBK has a R/W CCW that is waiting to be executed. The "previous" PIOBK NOP address has been updated to point to the define extent, but is still a NOP (till just before SSCH or RSCH.) This field may be zero indicating a channel program is not currently being built. 002C 44 Address 4 EXPPIOBL Built last. Host absolute address of the last PIOBK as a new channel program is being built. This PIOBK has a R/W CCW that is waiting to be executed. The "previous" PIOBK TIC/NOP address has been updated to point to the define extent, locate record, or R/W and has been changed to a TIC unless this is also EXPPIOBF. 0030 48 Address 4 EXPeffLR Host absolute address of the PIOBK with the effective Locate record as a channel program is being built. The "available" PIOBKs for this exposure These next two pointers define the first through last PIOBKS that are available. These pointers may not be zero When EXPPIOAF and EXPPIOAL are equal, no PIOBKs are available (We can not use the last "available" one since it contains a TIC that the channel may want to look at if a RSCH is issued. Think - Suspended, but idle case.) When all are available, then EXPPIOAL will be the PIOBK that tics into the PIOBK at EXPIOLAF. Initial state - EXPIOAF = EXPPIOARHA EXPIOAL = HA Address of the last PIOBK in the array. Full (no PIOBKs available) EXPIOAF=EXPIOAL BKT didn't actually use/need these two pointers. to be ded. 0034 52 Address 4 EXPPIOAF Available First. Host absolute address of the first available PIOBK. This PIOBK has the processed flag on and is available to be used to build or continue building a channel program. 0038 56 Address 4 EXPPIOAL Available Last. Host absolute address of the last available PIOBK. This PIOBK has the processed flag on and is available to be used to build or continue building a channel program. 003C 60 Signed 4 EXPAVAIL Number of PIOBKs available. The number of PIOBKs available. The last one, must not be used, so this will bottom out at 1. (therefore, 1 => none available.) 0040 64 Signed 4 EXPBUILT Number of PIOBKs built. 0044 68 Signed 4 EXPEXEC Number of PIOBKs executing. Note: This is the number of outstanding read/write CCWs that have not been processed, but have been sent to the channel. (PIORDWRO.PIOFINIS=0) RAS. Debug only? BKT 0048 72 Dbl-Word 8 EXPLRSAVES Number of mid i/o Locate records 0050 80 Dbl-Word 8 EXPMAXED Number of times we could have used more PIOBKs. 0058 88 Dbl-Word 8 EXPSTATS (9) MinMaxAvg stats for number of PIOBKs in use at SSCH/RSCH time. 00A0 160 Signed 4 * Reserved for IBM use These are deferred saveareas when all CCW packages are in use for this exposure. The queues are described in the general comments section of HCPPAGRV. 00A4 164 Address 4 EXPSFDSV First deferred savearea for single reads and writes. (A PPIBK) 00A8 168 Address 4 EXPSLDSV Last deferred savearea for single reads and writes. (A PPIBK) 00AC 172 Signed 4 EXPCURQS Count of deferred PPIBKs on EXPSFDSV each representing 1 page read or 1 page write. 00B0 176 Address 4 EXPMRDFQ Host logical address of the 00B4 180 Signed 4 EXPCURQMR PPIBK that contains the queue of deferred FRMTEs (PPIFRMQG) to be read for a multiple read request. Followed by the count of pages on that queue. Mapped by EXPQUENT DSECT. 00B8 184 Address 4 EXPMWDFQ Host logical address of the 00BC 188 Signed 4 EXPCURQMW PPIBK that contains the queue of deferred FRMTEs (PPIFRMQG) to be written for a multiple write request. Followed by the count of pages on that queue. Mapped by EXPQUENT DSECT. 00C0 192 Signed 4 EXPRedriving When we redrive a multi-read or multi-write we will move the count dequeued to here, and keep track of them. If we requeue left overs, after filling the PIOBK array, we will know how many are left. 00C4 196 Bitstring 1 EXPPossArrow A binary switch. 1... .... EXPWriteNext X'80' EXPWriteNext Write next time. .... .... EXPReadNext X'00' EXPReadNext Read next time. 00C5 197 Bitstring 3 * Reserved for IBM use 00C8 200 Signed 4 * Reserved for IBM use 00CC 204 Signed 4 * Reserved for IBM use Monitor counters. 00D0 208 Signed 4 EXPCTPRD Total count of page read operations for this device. Note that page read operations may be directed to devices without any cylinders specifically defined as type PAGE. 00D4 212 Signed 4 EXPCTPWR Total count of page write operations for this device. Note that page write operations may be directed to devices without any cylinders specifically defined as type PAGE. 00D8 216 Signed 4 EXPCTSRD Total count of spooling reads for this device. 00DC 220 Signed 4 EXPCTSWR Total count of spooling writes for this device. 00E0 224 Signed 2 * Reserved for IBM use. 00E2 226 Signed 2 EXPQCNEG Number of times EXPCURQC went neg. 00E4 228 Signed 4 EXPCURQC Cardinal count of all outstanding paging/spooling reads/writes for this device. 00E8 232 Signed 4 EXP2BQED Count of slots that have been assigned on this CPVOL but have not yet been added to EXPCURQC, updated using CS logic 00EC 236 Address 4 EXPPAGIOR IORBK for this exposure. PAGBK for this exposure. The IORBK is always at the beginning of the PAGBK so this field does double duty. 00F0 240 Signed 4 EXPCTUSI Total count of the number of times the channel program had to be terminated to allow user I/O. This is an indicator of interference between user and paging/spooling I/O. 00F4 244 Signed 4 EXPDEVST Exposure service time. 00F8 248 Signed 4 EXPMLOAD Exposure MLOAD. 00FC 252 Signed 4 EXPTIMER Exposure timestamp for SSCH/RSCH. 0100 256 Signed 4 EXPINTIM Exposure timestamp at I/O interrupt time. 0104 260 Signed 4 EXPNMPIO Number of active PIOBKS at I/O interrupt time used to calc service time. 0108 264 Address 4 EXPRDCBK Address of the RDCBK. 010C 268 Signed 4 EXPCONT (20) Count of 20 contiguous free spaces allocated from 1 to 20 plus. 015C 348 Signed 4 * Reserved for IBM use 0160 352 Signed 4 * Reserved for future use. 0164 356 Signed 4 EXPBKEND (0) End of EXPBK. 00000164 EXPBSIZE *-EXPBK Size of this DSECT in Bytes 0000002D EXPSIZE (((*-EXPBK)+7)/8) Size in double-words MLOAD constants 00FFFFFF EXPMXTOT X'7FFFFFFF' Maximum total MLOAD value 007FFFFF EXPMXAVG X'007FFFFF' Maximum average MLOAD value The next two statements EXPQUENT, and EXPQANCH are used to map the multiple read and write queue fields EXPMRDFQ and EXPMWDFQ.
 EXPQUENT DSECT Top of page
Hex Dec Type/Val Lng Label (dup) Comments ---- ---- --------- ---- -------------- -------- 0000 0 Structure EXPQUENT EXPOSURE BLOCK 0000 0 Address 4 EXPQANCH Anchor for multiple defer queues. 0004 4 Signed 4 EXPCount Count of pages on that queue.
 
 
  EXPBK Storage Layout Top of page
 
          
*** EXPBK - EXPOSURE BLOCK
*
*     +------+------+------+------+---------------------------+
*   0 |:LCKFG|:TYPEF|:STAT1|:STAT2|///////////////////////////|
*     +------+------+------+------+---------------------------+
*   8 |        EXPPIOARHL         |        EXPPIOARHA         |
*     +---------------------------+---------------------------+
*  10 |       EXPPIOAREND         |///////////////////////////|
*     +---------------------------+---------------------------+
*  18 |         EXPPIOEF          |         EXPPIOEL          |
*     +---------------------------+---------------------------+
*  20 |         EXPGATE           |///////////////////////////|
*     +---------------------------+---------------------------+
*  28 |         EXPPIOBF          |         EXPPIOBL          |
*     +---------------------------+---------------------------+
*  30 |         EXPEFFLR          |         EXPPIOAF          |
*     +---------------------------+---------------------------+
*  38 |         EXPPIOAL          |         EXPAVAIL          |
*     +---------------------------+---------------------------+
*  40 |         EXPBUILT          |         EXPEXEC           |
*     +---------------------------+---------------------------+
*  48 |                      EXPLRSAVES                       |
*     +-------------------------------------------------------+
*  50 |                       EXPMAXED                        |
*     +-------------------------------------------------------+
*  58 |                                                       |
*     =                       EXPSTATS                        =
*     |                                                       |
*     +---------------------------+---------------------------+
*  A0 |///////////////////////////|         EXPSFDSV          |
*     +---------------------------+---------------------------+
*  A8 |         EXPSLDSV          |         EXPCURQS          |
*     +---------------------------+---------------------------+
*  B0 |         EXPMRDFQ          |        EXPCURQMR          |
*     +---------------------------+---------------------------+
*  B8 |         EXPMWDFQ          |        EXPCURQMW          |
*     +---------------------------+------+--------------------+
*  C0 |       EXPREDRIVING        |(0C4) |////////////////////|
*     +---------------------------+------+--------------------+
*  C8 |///////////////////////////|///////////////////////////|
*     +---------------------------+---------------------------+
*  D0 |         EXPCTPRD          |         EXPCTPWR          |
*     +---------------------------+---------------------------+
*  D8 |         EXPCTSRD          |         EXPCTSWR          |
*     +-------------+-------------+---------------------------+
*  E0 |/////////////|  EXPQCNEG   |         EXPCURQC          |
*     +-------------+-------------+---------------------------+
*  E8 |         EXP2BQED          |        EXPPAGIOR          |
*     +---------------------------+---------------------------+
*  F0 |         EXPCTUSI          |         EXPDEVST          |
*     +---------------------------+---------------------------+
*  F8 |         EXPMLOAD          |         EXPTIMER          |
*     +---------------------------+---------------------------+
* 100 |         EXPINTIM          |         EXPNMPIO          |
*     +---------------------------+---------------------------+
* 108 |         EXPRDCBK          |                           |
*     +---------------------------+                           |
* 110 |                                                       |
*     =                       EXPCONT                         =
*     |                           +---------------------------+
* 158 |                           |///////////////////////////|
*     +---------------------------+---------------------------+
* 160 |///////////////////////////|
*     +---------------------------+
*
*** EXPBK - EXPOSURE BLOCK
          
*** EXPQUENT - EXPOSURE BLOCK
*
*     +---------------------------+---------------------------+
*   0 |         EXPQANCH          |         EXPCOUNT          |
*     +---------------------------+---------------------------+
*   8
*
*** EXPQUENT - EXPOSURE BLOCK
 
 
  EXPBK Cross Reference Top of page
 
 
Symbol         Dspl Value
-------------- ---- -----
EXPeffLR       0030
EXPAQ          0002 08
EXPAVAIL       003C
EXPBKEND       0164
EXPBSIZE       0164 00000164
EXPBUILT       0040
EXPCount       0004
EXPCONT        010C
EXPCSCHDN      0002 10
EXPCTPRD       00D0
EXPCTPWR       00D4
EXPCTSRD       00D8
EXPCTSWR       00DC
EXPCTUSI       00F0
EXPCURQC       00E4
EXPCURQMR      00B4
EXPCURQMW      00BC
EXPCURQS       00AC
EXPDEVST       00F4
EXPDQINP       0003 80
EXPECKD        0001 01
EXPEXEC        0044
EXPFBA         0001 02
EXPGATE        0020
EXPIDLE        0002 00
EXPINTE        0002 80
EXPINTIM       0100
EXPLCKFG       0000
EXPLRSAVES     0048
EXPMAXED       0050
EXPMLOAD       00F8
EXPMRDFQ       00B0
EXPMWDFQ       00B8
EXPMXAVG       0164 007FFFFF
EXPMXTOT       0164 00FFFFFF
EXPNMPIO       0104
EXPNOPS        0002 04
EXPPossArrow   00C4
EXPPAGIOR      00EC
EXPPIOAF       0034
EXPPIOAL       0038
EXPPIOAREND    0010
EXPPIOARHA     000C
EXPPIOARHL     0008
EXPPIOBF       0028
EXPPIOBL       002C
EXPPIOEF       0018
EXPPIOEL       001C
EXPQANCH       0000
EXPQCNEG       00E2
EXPReadNext    00C4 00
EXPRedriving   00C0
EXPRDCBK       0108
EXPRSCHBC      0002 20
EXPRSCHDN      0002 01
EXPSCSI        0001 20
EXPSFDSV       00A4
EXPSIZE        0164 0000002D
EXPSLDSV       00A8
EXPSSCHDN      0002 02
EXPSTATS       0058
EXPSTAT1       0002
EXPSTAT2       0003
EXPSUSPN       0002 40
EXPTIMER       00FC
EXPTYPEF       0001
EXPWriteNext   00C4 80
EXP2BQED       00E8
 
This information is based on z/VM 6.3.0 Last updated on 22 May 2013 at 13:55:07 EDT.
Copyright IBM Corporation, 1990, 2013