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 : RDEVEXPB - 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          Paging Information Header Block
    0000    0 Signed       8 EXPPHDBK (22)  Header area mapped by PHDBK
            Flags for the exposure block.
    00B0  176 Bitstring    1 EXPLCKFG       Exposure lock byte. Obtained -
                                            TSGET X'FF' Released - TSREL
                                            X'00'
    00B1  177 Bitstring    1 *              Reserved for IBM use
          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.
    00B2  178 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.
    00B3  179 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.
    00B4  180 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.
    00B8  184 Address      4 EXPPIOARHL     PIOBK Array Host Logical. Host
                                            logical address of the array of
                                            PIOBKs.
    00BC  188 Address      4 EXPPIOARHA     PIOBK Array Host Absolute. Host
                                            absolute address of the array of
                                            PIOBKs.
    00C0  192 Address      4 EXPPIOAREND    PIOBK Array End. Host absolute
                                            address of the last byte of the
                                            array of PIOBKs.
    00C4  196 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.
    00C8  200 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.
    00CC  204 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.
    00D0  208 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.
    00D4  212 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.
    00D8  216 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.
    00DC  220 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.
    00E0  224 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.
    00E4  228 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.
    00E8  232 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.
    00EC  236 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.)
    00F0  240 Signed       4 EXPBUILT       Number of PIOBKs built.
    00F4  244 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
    00F8  248 Dbl-Word     8 EXPLRSAVES     Number of mid i/o Locate records
    0100  256 Dbl-Word     8 EXPMAXED       Number of times we could have
                                            used more PIOBKs.
    0108  264 Dbl-Word     8 EXPSTATS (9)   MinMaxAvg stats for number of
                                            PIOBKs in use at SSCH/RSCH time.
    0150  336 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.
    0154  340 Address      4 EXPSFDSV       First deferred savearea for
                                            single reads and writes. (A
                                            PPIBK)
    0158  344 Address      4 EXPSLDSV       Last deferred savearea for single
                                            reads and writes. (A PPIBK)
    015C  348 Signed       4 EXPCURQS       Count of deferred PPIBKs on
                                            EXPSFDSV each representing 1 page
                                            read or 1 page write.
    0160  352 Address      4 EXPMRDFQ       Host logical address of the
    0164  356 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.
    0168  360 Address      4 EXPMWDFQ       Host logical address of the
    016C  364 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.
    0170  368 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.
    0174  372 Bitstring    1 EXPPossArrow   A binary switch.
              1... ....      EXPWriteNext   X'80' EXPWriteNext Write next
                                            time.
              .... ....      EXPReadNext    X'00' EXPReadNext Read next time.
    0175  373 Bitstring    3 *              Reserved for IBM use
    0178  376 Signed       4 *              Reserved for IBM use
    017C  380 Signed       4 *              Reserved for IBM use
          Monitor counters.
    0180  384 Signed       2 *              Reserved for IBM use.
    0182  386 Signed       2 EXPQCNEG       Number of times EXPCURQC went
                                            neg.
    0184  388 Signed       4 EXPCURQC       Cardinal count of all outstanding
                                            paging/spooling reads/writes for
                                            this device. Used directly by
                                            Perfkit. Do not change offset.
    0188  392 Signed       4 *              Reserved for IBM use
    018C  396 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.
    0190  400 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. Used
                                            directly by Perfkit. Do not
                                            change offset.
    0194  404 Signed       4 EXPTIMER       Exposure timestamp for SSCH/RSCH.
    0198  408 Signed       4 EXPINTIM       Exposure timestamp at I/O
                                            interrupt time.
    019C  412 Signed       4 EXPNMPIO       Number of active PIOBKS at I/O
                                            interrupt time used to calc
                                            service time.
    01A0  416 Signed       4 *              Reserved for IBM use
    01A4  420 Signed       4 *              Reserved for IBM use
    01A8  424 Signed       4 *              Reserved for future use.
    01AC  428 Signed       4 EXPBKEND (0)   End of EXPBK.
              000001AC       EXPBSIZE       *-EXPBK Size of this DSECT in
                                            Bytes
              00000036       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       Paging Information Header 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 - Paging Information Header Block
    *
    *     +-------------------------------------------------------+
    *   0 |                                                       |
    *     =                       EXPPHDBK                        =
    *     |                                                       |
    *     +------+------+------+------+---------------------------+
    *  B0 |:LCKFG|//////|:STAT1|:STAT2|///////////////////////////|
    *     +------+------+------+------+---------------------------+
    *  B8 |        EXPPIOARHL         |        EXPPIOARHA         |
    *     +---------------------------+---------------------------+
    *  C0 |       EXPPIOAREND         |///////////////////////////|
    *     +---------------------------+---------------------------+
    *  C8 |         EXPPIOEF          |         EXPPIOEL          |
    *     +---------------------------+---------------------------+
    *  D0 |         EXPGATE           |///////////////////////////|
    *     +---------------------------+---------------------------+
    *  D8 |         EXPPIOBF          |         EXPPIOBL          |
    *     +---------------------------+---------------------------+
    *  E0 |         EXPEFFLR          |         EXPPIOAF          |
    *     +---------------------------+---------------------------+
    *  E8 |         EXPPIOAL          |         EXPAVAIL          |
    *     +---------------------------+---------------------------+
    *  F0 |         EXPBUILT          |         EXPEXEC           |
    *     +---------------------------+---------------------------+
    *  F8 |                      EXPLRSAVES                       |
    *     +-------------------------------------------------------+
    * 100 |                       EXPMAXED                        |
    *     +-------------------------------------------------------+
    * 108 |                                                       |
    *     =                       EXPSTATS                        =
    *     |                                                       |
    *     +---------------------------+---------------------------+
    * 150 |///////////////////////////|         EXPSFDSV          |
    *     +---------------------------+---------------------------+
    * 158 |         EXPSLDSV          |         EXPCURQS          |
    *     +---------------------------+---------------------------+
    * 160 |         EXPMRDFQ          |        EXPCURQMR          |
    *     +---------------------------+---------------------------+
    * 168 |         EXPMWDFQ          |        EXPCURQMW          |
    *     +---------------------------+------+--------------------+
    * 170 |       EXPREDRIVING        |(174) |////////////////////|
    *     +---------------------------+------+--------------------+
    * 178 |///////////////////////////|///////////////////////////|
    *     +-------------+-------------+---------------------------+
    * 180 |/////////////|  EXPQCNEG   |         EXPCURQC          |
    *     +-------------+-------------+---------------------------+
    * 188 |///////////////////////////|        EXPPAGIOR          |
    *     +---------------------------+---------------------------+
    * 190 |         EXPCTUSI          |         EXPTIMER          |
    *     +---------------------------+---------------------------+
    * 198 |         EXPINTIM          |         EXPNMPIO          |
    *     +---------------------------+---------------------------+
    * 1A0 |///////////////////////////|///////////////////////////|
    *     +---------------------------+---------------------------+
    * 1A8 |///////////////////////////|
    *     +---------------------------+
    *
    *** EXPBK - Paging Information Header Block

    *** EXPQUENT - Paging Information Header Block
    *
    *     +---------------------------+---------------------------+
    *   0 |         EXPQANCH          |         EXPCOUNT          |
    *     +---------------------------+---------------------------+
    *   8
    *
    *** EXPQUENT - Paging Information Header Block

EXPBK Cross Reference | Top of page

    Symbol         Dspl Value
    -------------- ---- -----
    EXPeffLR       00E0
    EXPAQ          00B2 08
    EXPAVAIL       00EC
    EXPBKEND       01AC
    EXPBSIZE       01AC 000001AC
    EXPBUILT       00F0
    EXPCount       0004
    EXPCSCHDN      00B2 10
    EXPCTUSI       0190
    EXPCURQC       0184
    EXPCURQMR      0164
    EXPCURQMW      016C
    EXPCURQS       015C
    EXPDQINP       00B3 80
    EXPEXEC        00F4
    EXPGATE        00D0
    EXPIDLE        00B2 00
    EXPINTE        00B2 80
    EXPINTIM       0198
    EXPLCKFG       00B0
    EXPLRSAVES     00F8
    EXPMAXED       0100
    EXPMRDFQ       0160
    EXPMWDFQ       0168
    EXPMXAVG       01AC 007FFFFF
    EXPMXTOT       01AC 00FFFFFF
    EXPNMPIO       019C
    EXPNOPS        00B2 04
    EXPPossArrow   0174
    EXPPAGIOR      018C
    EXPPHDBK       0000
    EXPPIOAF       00E4
    EXPPIOAL       00E8
    EXPPIOAREND    00C0
    EXPPIOARHA     00BC
    EXPPIOARHL     00B8
    EXPPIOBF       00D8
    EXPPIOBL       00DC
    EXPPIOEF       00C8
    EXPPIOEL       00CC
    EXPQANCH       0000
    EXPQCNEG       0182
    EXPReadNext    0174 00
    EXPRedriving   0170
    EXPRSCHBC      00B2 20
    EXPRSCHDN      00B2 01
    EXPSFDSV       0154
    EXPSIZE        01AC 00000036
    EXPSLDSV       0158
    EXPSSCHDN      00B2 02
    EXPSTATS       0108
    EXPSTAT1       00B2
    EXPSTAT2       00B3
    EXPSUSPN       00B2 40
    EXPTIMER       0194
    EXPWriteNext   0174 80

This information is based on z/VM 7.2.0 Last updated on 24 Jun 2020 at 09:29:30 EDT.
Copyright IBM Corporation, 1990, 2020