Programming Interface Information: This information is NOT intended to be used as Programming Interfaces of z/VM.

#### PGMBK

Prolog

Control Block Contents
PGMBK DSECT

Storage Layout

Cross Reference (Contains links to field and bit definitions)

#### PGMBK Prolog

     Name       : HCPPGMBK
     Description: Page Management Block
     DSECT      : PGMBK
     Function   : The page management block describes 1 megabyte
                  of virtual storage.  It contains the page table,
                  the page status table, and the auxiliary storage
                  address table for the megabyte.
                  The PGMBK is a 4K aligned 4K block for ESA/390
                  mode.  For ESAME mode, the PGMBK is a 4K aligned
                  8K block.
     Located by : SEGENTRY/SEGGENTR field of HCPSEGTE
                  In ESA/390 mode, bits 1-25 of a valid
                  segment table (with 6 "0" bits appended
                  on the right) determine the 31 bit address
                  Page-Table Origin (bits 20-25 must be zero).
                  In ESAME mode, bits 0-52 (with 11 "0" bits
                  appended on the right) determine the 64
                  bit address Page-Table Origin.  Note that
                  in the 64-bit image of CP this PTO is NOT
                  the address of the PGMBK itself.
                  FRMPTE    THE FRAME TABLE ENTRY POINTS TO A PAGE TABLE
                  ENTRY WITHIN THE PAGE TABLE. THE PGMBK ADDRESS
                  CAN BE FOUND BY ZEROING THE DISPLACEMENT
                  OF THE PAGE TABLE ENTRY'S ADDRESS SINCE THE PAGE
                  table is located in the same page as the
                  PGMBK.
     CREATED BY : HCPBPBCU
                  HCPBPBIE
                  HCPBPBIM
                  HCPBPBSL
                  and their clones
     DELETED BY : HCPRCIRL
                  HCPRPBPA
                  HCPRPBPS
                  HCPRPBRM
                  HCPRPBSL
                  and their clones

#### PGMBK Control Block Content

#### PGMBK DSECT

    Hex   Dec Type/Val   Lng Label (dup)    Comments
    ---- ---- --------- ---- -------------- --------
    0000    0 Structure      PGMBK          Page Management Block
         ESA/390 mode PGMBK format
    0000    0 Signed       4 PGMPAGTB (256) PAGE TABLE-CONTAINS 256 4 BYTE
                                            ENTRIES. EACH ENTRY IS USED TO
                                            DESCRIBE 4K OF VIRTUAL STORAGE.
                                            THE COMPLETE 256-ENTRY TABLE WILL
                                            DESCRIBE 1 MEGABYTE OF GUEST
                                            ABSOLUTE STORAGE, OR 1 MEGABYTE
                                            OF SYSTEM STORAGE AREA. THE
                                            ARCHITECTED DEFINITION OF ONE
                                            ENTRY IS CONTAINED IN THE
                                            HCPPAGTE COPY FILE.
              00000004       PGMPTELN       4 LENGTH OF A PAGE TABLE ENTRY IN
                                            THE PGMPAGTB (IN BYTES)
              00000004       PGMPTBP1       PGMPAGTB+PGMPTELN OFFSET OF THE
                                            2ND ENTRY IN THE PAGTB, USED FOR
                                            AN MVC TO COPY THE FIRST ENTRY
                                            THRU THE REST OF THE FIRST
                                            QUARTER OF THE PAGTB
              00000100       PGMPTBP2       PGMPAGTB+PGMPTELN*64 THE SECOND
                                            QUARTER OF THE PAGTB STARTS AT
                                            THIS OFFSET INTO THE PGMBK
              00000200       PGMPTBP3       PGMPAGTB+PGMPTELN*128 THE THIRD
                                            QUARTER OF THE PAGTB STARTS AT
                                            THIS OFFSET INTO THE PGMBK
              00000300       PGMPTBP4       PGMPAGTB+PGMPTELN*192 THE FOURTH
                                            QUARTER OF THE PAGTB STARTS AT
                                            THIS OFFSET INTO THE PGMBK
              00000000       PGMOFPAG       PGMPAGTB-PGMBK OFFSET OF PAGTB IN
                                            PGMBK
    0400 1024 Signed       4 PGMPGSTB (256) PAGE STATUS TABLE. 256 ENTRIES, 4
                                            BYTES IN EACH ENTRY. EACH ENTRY
                                            DESCRIBES THE STATUS OF THE
                                            VIRTUAL STORAGE. THE DEFINITION
                                            OF ONE ENTRY IS CONTAINED IN THE
                                            HCPPGSTE COPY FILE.
              00000004       PGMPGSLN       4 LENGTH OF A PAGE STATUS TABLE
                                            ENTRY IN THE PGMPAGTB (IN BYTES)
              00000404       PGMPSTP1       PGMPGSTB+PGMPGSLN OFFSET OF THE
                                            2ND ENTRY IN THE PGSTB, USED FOR
                                            AN MVC TO COPY THE FIRST ENTRY
                                            THRU THE REST OF THE FIRST
                                            QUARTER OF THE PGSTB
              00000500       PGMPSTP2       PGMPGSTB+PGMPGSLN*64 THE SECOND
                                            QUARTER OF THE PGSTB STARTS AT
                                            THIS OFFSET INTO THE PGMBK
              00000600       PGMPSTP3       PGMPGSTB+PGMPGSLN*128 THE THIRD
                                            QUARTER OF THE PAGTB STARTS AT
                                            THIS OFFSET INTO THE PGMBK
              00000700       PGMPSTP4       PGMPGSTB+PGMPGSLN*192 THE FOURTH
                                            QUARTER OF THE PGSTB STARTS AT
                                            THIS OFFSET INTO THE PGMBK
              00000400       PGMOFPGS       PGMPGSTB-PGMBK OFFSET OF PGSTB IN
                                            PGMBK
    0800 2048 Signed       4 PGMASATB (256) AUXILIARY STORAGE ADDRESS TABLE.
                                            256 ENTRIES, 4 BYTES IN EACH
                                            ENTRY. EACH ENTRY IS THE LOCATION
                                            ON AUXILIARY STORAGE WHERE THE
                                            VIRTUAL STORAGE IS BACKED UP. THE
                                            DEFINITION OF ONE ENTRY IS
                                            CONTAINED IN THE HCPASATE COPY
                                            FILE.
              00000800       PGMOFASA       PGMASATB-PGMBK OFFSET OF ASATB IN
                                            PGMBK
              00000800       PGMPABSZ       *-PGMPGSTB SIZE OF PGSTB AND
                                            ASATB IN BYTES
    0C00 3072 Bitstring   32 PGMPRBNM       BIT MAP TO INDICATE IF THE ASA IS
                                            A POOL-RELATIVE-BLOCK-NUMBER. IF
                                            THE BIT IS ONE THEN THE ASA IS A
                                            PRBN. THERE ARE 256 ASAs.
    0C20 3104 Signed       4 PGMVM          VMDBK ADDRESS OF PGMBK OWNER (OR
                                            SNTBK ADDRESS FOR A SHARED
                                            SEGMENT OR SYSTEM OR DUMMY VMDBK
                                            FOR AN ADDRESS SPACE)
    0C24 3108 Signed       4 PGMUVIRT       VIRTUAL ADDRESS OF STORAGE
                                            DESCRIBED BY THIS BLOCK
    0C28 3112 Signed       4 PGMMIGCT       COUNT OF PAGES CURRENTLY BEING
                                            MIGRATED FROM XSTORE TO DASD
    0C2C 3116 Address      4 PGMDEFAN       DEFERRED PAGE TRANSLATIONS QUEUE
                                            ANCHOR (POINTS TO CPEBK OR 0)
    0C30 3120 Signed       4 PGMBKLK        PGMBK multiple PTE serialization
                                            lock. This lock must be held when
                                            obtaining or releasing page
                                            serialization for multiple PTEs
                                            to prevent deadlocks. It also
                                            serializes the PGMBK page
                                            serialization deferral queue
                                            based at PGMDEFAN. It contains 0
                                            when the lock is available, or
                                            the address of the CS loop that
                                            obtained the lock in the routine
                                            that currently holds the lock.
         Note that PGMBKLK does NOT serialize the PGMBK itself in any way. The
         high order halfword of the PGMFRMCT field is used (via the HCPLKPGM and
         HCPULPGM macros) to lock the PGMBK itself into storage.
    0C34 3124 Signed       4 PGMSNTCT       COUNT OF USERS SHARING THIS
                                            MEGABYTE
    0C38 3128 Bitstring    1 PGMSTAT        STATUS INDICATORS
              1... ....      PGMSVSEG       X'80' PGMBK REPRESENTS STORAGE
                                            FOR A SAVED SEGMENT
              .1.. ....      PGMIGRTE       X'40' PGMBK WAS PAGED IN DURING
                                            XSTORE MIGRATION
    0C39 3129 Bitstring    1 *              RESERVED FOR FUTURE IBM USE
    0C3A 3130 Signed       2 PGMEPOCH       Epoch for this PGMBK. The time
                                            stamps in this PGMBK have been
                                            adjusted to this epoch.
    0C3C 3132 Signed       4 PGMXSTCT       COUNT OF XSTORE PTE'S
    0C40 3136 Signed       4 PGMALTPT       Pointer to the alternate PGMBK
                                            which contains the source
                                            alternate PTEs for any target
                                            alternate PTEs (with PGSALTPT
                                            set) in this PGMBK.
    0C44 3140 Address      4 PGMASCBK       ASCBK ADDRESS.
    0C48 3144 Signed       4 PGMFRMCT       Frames in use count in low-order
                                            halfword and PGMBK lock count in
                                            high-order halfword. Update
                                            counts using Compare and Swap
                                            logic.
    0C4C 3148 Address      4 PGMMPEBK       ADDRESS OF THE MINIDISK POOL
                                            EXTENT BLOCK FOR CONVERTING AN
                                            ASA INTO A CCHHR.
         The following two fields are serialized by the available list
         replenishment demand scan lock, and are used to sort outbound FRMTEs
         for NSS/DCSS shared segment pages by segment (virtual address
         megabyte). They are not used for other types of pages (normal user page
         FRMTEs and VDISK FRMTEs are sorted by address space, but not megabyte,
         other non-blocked page FRMTEs are not sorted at all).
    0C50 3152 Address      4 PGMNXPGM       Address of the next PGMBK in the
                                            steal sort PGMBK list. Contains
                                            x'00000000' if the PGMBK is not
                                            yet on the list, x'FFFFFFFF' if
                                            the PGMBK is last on the list.
                                            Used only when processing
                                            NSS/DCSS shared segment FRMTEs.
    0C54 3156 Address      4 PGMLTFRM       Points to the last FRMTE so far
                                            chained (sorted) for this PGMBK.
                                            Used only when processing
                                            NSS/DCSS shared segment FRMTEs.
    0C58 3160 Signed       4 *              Reserved for IBM use
    0C5C 3164 Signed       4 PGMPA4EX       Virtual Free Storage Manager
                                            virtual address of saved copy of
                                            the original PGSTB/ASATB for this
                                            megabyte - only used in NSS/DCSS
                                            saved segment STLBK PGMBKs for
                                            megabytes which contain shared
                                            writeable pages. The saved ASATEs
                                            point to the original spool
                                            slots, so that original shared
                                            writeable page contents can be
                                            provided for non-shared loads.
                                            Must be zero in normal user
                                            PGMBKs or STLBK PGMBKs which do
                                            not contain any shared writeable
                                            pages.
    0C60 3168 Signed       8 PGMSITOD       TOD CLOCK VALUE AT WHICH THE
                                            SEGTE FOR THIS PAGEABLE PGMBK WAS
                                            INVALIDATED.
    0C68 3176 Signed       4 PGMMTARG       MIGRATE TARGET LAST USED AGAINST
                                            THIS PGMBK
    0C6C 3180 Signed       4 PGMSEGTE       Address of the STE associated
                                            with this PGMBK (valid only for
                                            "live" PGMBKs associated with
                                            attached STEs; may be zero
                                            otherwise). In pageable PGMBKs,
                                            is only reliable if the PGMBK is
                                            resident and attached to the STE
                                            and at least a share of VMDPTIL
                                            is held or if serialization
                                            (VMDPTIL and/or PTRM PTE PCL) has
                                            been held continuously since the
                                            STE was invalidated (to keep the
                                            segment table from being moved).
                                            Must be set to the current STE
                                            address whenever the STE is
                                            validated, and must be relocated
                                            for any valid STEs and/or valid
                                            PTRM PTEs whenever a segment
                                            table is moved.
    0C70 3184 Signed       4 PGMPTLNG       Page table length field for this
                                            PGMBK, in SEGTE SEGPTLNG format
                                            (SEGPTLNG value in bits 28-31,
                                            all other PGMPTLNG bits are 0).
                                            Used to restore the SEGPTLNG
                                            field value when validating or
                                            clearing the SEGTE. STEPTLNG bits
                                            are redefined as status bits when
                                            the PGMBK is paged out (the STE
                                            is invalid with SEGINVAL=1 and
                                            also contains a PTRM "virtual
                                            address"). Valid only when
                                            PGMSEGTE is non- zero, indicating
                                            that the PGMBK is associated with
                                            an attached SEGTE.
    0C74 3188 Signed       4 * (99)         Reserved for IBM use
    0E00 3584 Signed       2 PGMAUXTB (256) AUXILIARY TABLE. CONTAINS 256 HW
                                            TIME STAMP ENTRIES THAT
                                            CORRESPOND TO THE TIME THE PAGE
                                            WAS MOVED TO XSTORE.
              00001000       PGMBKLEN       (*-PGMBK) SIZE OF PGM BLOCK IN
                                            BYTES
              00000200       PGMBKSIZ       (*-PGMBK+7)/8 SIZE OF PGM BLOCK
                                            IN DOUBLEWORDS
         The following macro invocation ensures the length of the PGMBK is
         exactly 4096 bytes (one 4K page).

#### PGMBK Storage Layout

    *** PGMBK - Page Management Block
    *
    *     +-------------------------------------------------------+
    *   0 |                                                       |
    *     =                       PGMPAGTB                        =
    *     |                                                       |
    *     +-------------------------------------------------------+
    * 400 |                                                       |
    *     =                       PGMPGSTB                        =
    *     |                                                       |
    *     +-------------------------------------------------------+
    * 800 |                                                       |
    *     =                       PGMASATB                        =
    *     |                                                       |
    *     +-------------------------------------------------------+
    * C00 |                                                       |
    *     =                       PGMPRBNM                        =
    *     |                                                       |
    *     +---------------------------+---------------------------+
    * C20 |          PGMVM            |         PGMUVIRT          |
    *     +---------------------------+---------------------------+
    * C28 |         PGMMIGCT          |         PGMDEFAN          |
    *     +---------------------------+---------------------------+
    * C30 |         PGMBKLK           |         PGMSNTCT          |
    *     +------+------+-------------+---------------------------+
    * C38 |:STAT |//////|  PGMEPOCH   |         PGMXSTCT          |
    *     +------+------+-------------+---------------------------+
    * C40 |         PGMALTPT          |         PGMASCBK          |
    *     +---------------------------+---------------------------+
    * C48 |         PGMFRMCT          |         PGMMPEBK          |
    *     +---------------------------+---------------------------+
    * C50 |         PGMNXPGM          |         PGMLTFRM          |
    *     +---------------------------+---------------------------+
    * C58 |///////////////////////////|         PGMPA4EX          |
    *     +---------------------------+---------------------------+
    * C60 |                       PGMSITOD                        |
    *     +---------------------------+---------------------------+
    * C68 |         PGMMTARG          |         PGMSEGTE          |
    *     +---------------------------+---------------------------+
    * C70 |         PGMPTLNG          |///////////////////////////|
    *     +---------------------------+///////////////////////////|
    * C78 |///////////////////////////////////////////////////////|
    *     =///////////////////////////////////////////////////////=
    *     |///////////////////////////////////////////////////////|
    *     +-------------------------------------------------------+
    * E00 |                                                       |
    *     =                       PGMAUXTB                        =
    *     |                                                       |
    *     +-------------------------------------------------------+
    *1000
    *
    *** PGMBK - Page Management Block

#### PGMBK Cross Reference

    Symbol         Dspl Value
    -------------- ---- -----
    PGMALTPT       0C40
    PGMASATB       0800
    PGMASCBK       0C44
    PGMAUXTB       0E00
    PGMBKLEN       0E00 00001000
    PGMBKLK        0C30
    PGMBKSIZ       0E00 00000200
    PGMDEFAN       0C2C
    PGMEPOCH       0C3A
    PGMFRMCT       0C48
    PGMIGRTE       0C38 40
    PGMLTFRM       0C54
    PGMMIGCT       0C28
    PGMMPEBK       0C4C
    PGMMTARG       0C68
    PGMNXPGM       0C50
    PGMOFASA       0800 00000800
    PGMOFPAG       0000 00000000
    PGMOFPGS       0400 00000400
    PGMPABSZ       0800 00000800
    PGMPAGTB       0000
    PGMPA4EX       0C5C
    PGMPGSLN       0400 00000004
    PGMPGSTB       0400
    PGMPRBNM       0C00
    PGMPSTP1       0400 00000404
    PGMPSTP2       0400 00000500
    PGMPSTP3       0400 00000600
    PGMPSTP4       0400 00000700
    PGMPTBP1       0000 00000004
    PGMPTBP2       0000 00000100
    PGMPTBP3       0000 00000200
    PGMPTBP4       0000 00000300
    PGMPTELN       0000 00000004
    PGMPTLNG       0C70
    PGMSEGTE       0C6C
    PGMSITOD       0C60
    PGMSNTCT       0C34
    PGMSTAT        0C38
    PGMSVSEG       0C38 80
    PGMUVIRT       0C24
    PGMVM          0C20
    PGMXSTCT       0C3C

This information is based on z/VM V4R3.0. Last updated on 30 Apr 2002 at 17:19:16 EDT.
Copyright IBM Corporation, 1990, 2002