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

VPGBK

Prolog  

Control Block Contents  
   VPGBK DSECT

Storage Layout  

Cross Reference (Contains links to field and bit definitions)  


VPGBK Prolog

 NAME       : HCPVPGBK
 DESCRIPTION: VIRTUAL PAGE BLOCK
 DSECT      : VPGBK
 FUNCTION   : THE VPGBK IS USED TO MAP A PAGTE, PGSTE AND
              ASATE FOR ONE VIRTUAL PAGE.
              IT EXISTS SOLELY FOR ADDRESSABILITY.
              THE ADDRESS OF A PAGTE IS USED AS A
              VPGBK ADDRESS SO THAT THE CORRESPONDING PGSTE
              AND ASATE CAN BE ACCESSED USING ONLY ONE
              BASE REGISTER.
              For ESAME, the VPGBK now spans two pages, 8192
              bytes.  Since the PAGTEs and PGSTEs remain in
              the same page, this is not an issue.  However,
              the ASATEs are now not reachable with a single
              base register pointing to a PAGTE.
 LOCATED BY :
              THE VPGBK IS NOT A FIXED BLOCK. ITS ADDRESS IS
              THE SAME AS THE ADDRESS FOR ANY PAGTE.
 CREATED BY : A VPGBK IS USED FOR ADDRESSABILITY ONLY. IT IS
              NOT CREATED OR DELETED.
 DELETED BY : SEE CREATED BY

 

VPGBK Control Block Content


VPGBK DSECT

Hex   Dec Type/Val   Lng Label (dup)    Comments
---- ---- --------- ---- -------------- --------
0000    0 Structure      VPGBK          VIRTUAL PAGE BLOCK
0000    0 Signed       4 VPGPAG         PAGE TABLE ENTRY
0004    4 Signed       4 VPGNEXT (0)    ADDRESS FOR NEXT VPGBK
0004    4 Signed       4 * (255)
0400 1024 Signed       4 VPGPGS         PAGE STATUS TABLE ENTRY
0404 1028 Signed       4 * (255)
0800 2048 Signed       4 VPGASA         AUXILIARY STORAGE ADDRESS ENTRY
0804 2052 Signed       4 * (255)
0C00 3072 Signed       2 *
0C02 3074 Signed       2 VPGPAUX2       AUXILARY FIELD USED IF PTE >
                                        128
0C04 3076 Signed       4 * (127)
0E00 3584 Signed       2 VPGPAUX1       AUXILARY FIELD USED IF PTE <
                                        128
     MAPPING FOR A PAGTE
          00000000       VPGPAGTE       * VPGBK PAGE TABLE ENTRY
0000    0 Signed       4 VPGPNTRY       HARDWARE PAGE TABLE ENTRY
0000    0 Signed       2 VPGPLINK (0)   THIS FIELD IS USED TO POINT TO
                                        THE NEXT FREE PAGE TABLE ENTRY
                                        AVAILABLE IN THIS PGMBK (FOR NON
                                        PAGEABLE PGMBK FRAMES ONLY -
                                        NPGM) WHICH WERE PREVIOUSLY
                                        DEALLOCATED.
0000    0 Bitstring    1 *              BITS 1-19 ARE ARCHITECTED AS THE
0001    1 Bitstring    1 *              4K ALIGNED PAGE FRAME ADDRESS.
0002    2 Bitstring    1 VPGPSTAT       BITS 0, 20, AND 23 MUST BE ZERO,
                                        BITS 21 AND 22 ARE DEFINED BELOW
          .... .1..      PAGINVAL       X'04' PAGE TABLE ENTRY IS INVALID
          .... ..1.      PAGPROT        X'02' PAGE PROTECTED (READ ONLY)
0003    3 Bitstring    1 VPGPBYT3       THIS BYTE IS NOT ARCHITECTED AND
                                        IS AVAILABLE FOR SOFTWARE USE. IT
                                        IS RECOMMENDED THAT SOFTWARE
                                        REFRAIN FROM USING THIS BYTE
                                        UNLESS IT IS TO STORE THE GUEST
                                        STORAGE KEY.
     MAPPING FOR A PGSTE
          00000400       VPGPGSTE       * VPGBK PAGE STATUS ENTRY
0400 1024 Signed       4 VPGSNTRY       VIRTUAL PAGE STATUS ENTRY
0400 1024 Bitstring    3 VPGSVKCF       FIELD CONTAINING VPGSVKEY,VPGSRCP
                                        AND VPGSFLAG
0403 1027 Bitstring    1 *              RESERVED FOR FUTURE IBM USE
0400 1024 Bitstring    1 VPGSVKEY       GUEST STORAGE KEY BITS 0-4
          1111 ....      PGSVKACC       X'F0' Access-control key value
          .... 1...      PGSVKFET       X'08' Fetch-protection control
          1111 1...      PGSVKACF       PGSVKACC+PGSVKFET Acc-ctrl &
                                        fetch-prot bits
0401 1025 Bitstring    1 VPGSRCP        ARCHITECTED AREA FOR RCP BYTE IF
                                        THE STORAGE KEY ASSIST IS BEING
                                        UTILIZED. (SEE THE PGSTE AND
                                        RCPTE CONTROL BLOCKS FOR FURTHER
                                        DETAILS)
          1... ....      RCPLOCK        X'80' RCP LOCK HELD
          .1.. ....      RCPHREF        X'40' HOST BACKUP REFERENCE BIT
          ..1. ....      RCPHCH         X'20' HOST BACKUP CHANGE BIT
          .11. ....      RCPHOST        RCPHREF+RCPHCH MASK FOR HOST BITS
          .... .1..      RCPGREF        X'04' GUEST BACKUP REFERENCE BIT
          .... ..1.      RCPGCH         X'02' GUEST BACKUP CHANGE BIT
          .... .11.      RCPGUEST       RCPGREF+RCPGCH MASK FOR GUEST
                                        BITS
          1... ....      PGSPCL         X'80' PAGE CONTROL LOCK
          .1.. ....      PGSRCPHR       X'40' HOST BACKUP REFERENCE BIT
                                        USED FOR SYSTEM PAGES
          ..1. ....      PGSRCPHC       X'20' HOST BACKUP CHANGE BIT USED
                                        FOR SYSTEM PAGES
          .11. ....      PGSHOST        PGSRCPHR+PGSRCPHC MASK FOR HOST
                                        BITS
          .... .1..      PGSGREF        X'04' GUEST BACKUP REFERENCE BIT
          .... ..1.      PGSGCH         X'02' GUEST BACKUP CHANGE BIT
          .... .11.      PGSGUEST       PGSGREF+PGSGCH MASK FOR GUEST
                                        BITS
0402 1026 Bitstring    1 VPGSFLAG       VIRTUAL PAGE FLAGS
          1... ....      PGSINVAL       X'80' No auxiliary storage
                                        assigned
          VPGSFLAG       *              PTE: PAGINVAL=0 (page is valid
                                        and resident) PGSTE: PGSINVAL=1
                                        (no DASD slot assigned)
                                        PGSRCPHR=0 (unreferenced) *
                                        PGSRCPHC=0 (unchanged) Real frame
                                        storage key: Reference=0
                                        (unreferenced) * Change =0
                                        (unchanged)
          .... P.*      *               Any resident page in this state
                                        is assumed to be
          .... P.*      *               unchanged zeros, and therefore
                                        simply discardable
          .... P.*      *               by steal. No page with non-zero
                                        contents should
          .... P.*      *               ever be allowed to be in this
                                        state, or a lost page
          .... P.*      *               will eventually result. The host
                                        change bit,
          .... P.*      *               PGSRCPHC, should be used to
                                        indicate that a page
          .... P.*      *               which is unchanged, not already
                                        on DASD, and
          .... P.*      *               non-zero, must be eventually
                                        written to DASD.
          .... ....      *
          .... P.*      *               * Note that both reference bits
                                        (PGSRCPHR and the
          .... P.*      *               real storage frame reference bit)
                                        can "evaporate"
          .... P.*      *               to zero over time due to the
                                        action of the
          .... P.*      *               reorder function. Therefore, the
                                        fact that a
          .... P.*      *               frame has been referenced, or
                                        setting PGSRCPHR
          .... P.*      *               on, can not prevent a page from
                                        eventually
          .... P.*      *               entering this "first time
                                        reference page of
          .... P.*      *               zeros" state.
          .... ....      *
          .1.. ....      *              EQU X'40' PAGE IS A SHARED PAGE
          ..1. ....      *              EQU X'20' ASA MAY BE READ ONLY
                                        ONCE. USED
          .... P.*      *               FOR SHARED PAGES. AFTER THE FIRST
          .... P.*      *               READ, THIS SDF (SYSTEM DATA FILE)
          .... P.*      *               ASA IS TO BE IGNORED AND THE PAGE
          .... P.*      *               LEFT AS CHANGED. WHEN THE PAGE
          .... P.*      *               IS FIRST WRITTEN, IT WILL GO TO A
          .... P.*      *               PAGING SPACE ASA AND THIS FLAG
                                        WILL
          .... P.*      *               BE TURNED OFF.
          .... P.*      *               PGS1READ ON IMPLIES THAT PAGE IS
          .... P.*      *               READ ONLY FOR THE USER.
          ...1 ....      *              EQU X'10' PAGE IN THE SYSTEM
                                        ADDRESS SPACE
          .... P.*      *               (OR A SYSTEM OWNED UTILITY
                                        ADDRESS
          .... P.*      *               SPACE) THAT IS ALLOCATED,
          .... P.*      *               OR
          .... P.*      *               A SHARED CP PAGE IN THE MONITOR
          .... P.*      *               DCSS THAT CP HAS TRANSLATED AND
          .... P.*      *               THAT HAS NOT YET BEEN RELEASED
          .... P.*      *               BY THE USER CONNECTED TO THE
                                        DCSS.
          .... ....      *
          .... P.*      *               WHEN THIS BIT IS ON: 1) THE PAGE
          .... P.*      *               IS NEVER PART OF A DASD BLOCK;
          .... P.*      *               2) THE ASSOCIATED PGMBK IS NEVER
          .... P.*      *               PAGED OUT.
          .... 1...      *              EQU X'08' STORAGE SLOT
                                        PERMANENTLY ASSIGNED
          .... .11.      *              EQU X'06' MASK FOR THE TWO BITS
                                        OF THE
          .... P.*      *               XSTORE BLOCK NUMBER THAT ARE KEPT
          .... P.*      *               IN THE PGSTE INSTEAD OF THE
                                        PAGTE.
          .... P.*      *               (THE PAGTE ALWAYS CONTAINS THE
          .... P.*      *               TRUE INVALID AND PAGE PROTECT
          .... P.*      *               BITS.)
          .... ...1      *              EQU X'01' STORAGE SLOT (DASD) IS
                                        READ ONLY
          .... ....      *
          .... ....
0403 1027 Bitstring    1 VPGSSTAT       VIRTUAL PAGE STATUS BITS
          1... ....      PGSALTPT       X'80' This PTE is part of an
                                        alternate PTE structure.
          .1.. ....      PGSTRANS       X'40' PAGE IS SERIALIZED IN LONG
                                        TERM
          ...1 ....      PGSVMSLK       X'10' VIRTUAL MACHINE STORAGE
                                        LOCK MODE
          .... 1...      PGSXSTOR       X'08' PAGE IS IN XSTORE - THE
                                        BLOCK NUMBER IS IN THE PAGTE WITH
                                        BITS 21 & 22 REPLACED WITH THOSE
                                        BITS FROM THE PGSTE (PGSXSREP)
          .... .1..      PGSBLOCK       X'04' THIS PAGE IS ONE PAGE IN A
                                        BLOCK OF PAGES
          .... ..1.      PGSRABI        X'02' This page was read in as
                                        part of a block of pages. This
                                        bit can NOT be checked for PTRM
                                        pages, as it is redefined as
                                        PGSXSTMB in that case.
          .... ...1      PGSERROR       X'01' PAGE IS IN ERROR. A STORAGE
                                        ERROR WAS DETECTED IN THIS PAGE
                                        AND THE page could not be
                                        recovered. When this bit is set,
                                        VMDRSSFG.VMDRSSUE must be set in
                                        the VMDBK that owns the space.
0403 1027 Bitstring    1 VPGMSTAT       VIRTUAL PAGE (PGMBK) STATUS BITS
          .... ..1.      PGSXSTMB       X'02' This page (a pageable
                                        PGMBK) itself supports pages in
                                        XSTORE. This bit is only used for
                                        PTRM pages that currently reside
                                        in XSTORE (PGSXSTOR must also be
                                        on if PGSXSTMB is on). Note that
                                        this bit is a redefinition of the
                                        PGSRABI bit, which is acceptable
                                        since pageable PGMBKs (PTRM
                                        pages) are never blocked.
     MAPPING FOR AN ASATE
          00000800       VPGASATE       * VPGBK AUX STORAGE ADDRESS
0800 2048 Signed       4 VPGANTRY       AUXILIARY STORAGE ADDRESS
0800 2048 Signed       2 VPGACNUM       AUXILIARY STORAGE CYLINDER NUMBER
0802 2050 Bitstring    1 VPGAPNUM       AUXILIARY STORAGE PAGE NUMBER
0803 2051 Bitstring    1 VPGAVOL        AUXILIARY STORAGE VOLUME CODE
     * BIT MASKS FOR PAGE SERIALIZATION
     DEFINE MULTIPLIERS TO SHIFT BITS INTO CORRECT BYTE:
          00000001       VPGBYTE3       1 MULTIPLIER FOR VPGSNTRY BYTE 3
          00000100       VPGBYTE2       (256*VPGBYTE3) MULTIPLIER FOR
                                        VPGSNTRY BYTE 2
          00010000       VPGBYTE1       (256*VPGBYTE2) MULTIPLIER FOR
                                        VPGSNTRY BYTE 1
          00000000       VPGBYTE0       (256*VPGBYTE1) MULTIPLIER FOR
                                        VPGSNTRY BYTE 0
     MASK FOR SETTING LONG TERM SERIALIZATION:
          00800040       VPGLON         ((PGSPCL*VPGBYTE1)+(PGSTRANS*VPGB
                                        YTE3))
     MASK FOR SETTING SHORT TERM SERIALIZATION:
          00800000       VPGSON         (PGSPCL*VPGBYTE1)
     MASK FOR SETTING 'PAGE IN ERROR':
          00800001       VPGEON         ((PGSPCL*VPGBYTE1)+(PGSERROR*VPGB
                                        YTE3))
     MASK FOR RESETTING PAGE SERIALIZATION BITS:
          007FFFBE       VPGFOFF        X'FFFFFFFF'-((PGSPCL*VPGBYTE1)+((
                                        PGSTRANS+PGSERROR)*VPGB YTE3))
     * *

 

VPGBK Storage Layout

          
*** VPGBK - VIRTUAL PAGE BLOCK
*
*     +---------------------------+---------------------------+
*   0 |          VPGPAG           |///////////////////////////|
*     +---------------------------+///////////////////////////|
*   8 |///////////////////////////////////////////////////////|
*     =///////////////////////////////////////////////////////=
*     |///////////////////////////////////////////////////////|
*     +---------------------------+---------------------------+
* 400 |          VPGPGS           |///////////////////////////|
*     +---------------------------+///////////////////////////|
* 408 |///////////////////////////////////////////////////////|
*     =///////////////////////////////////////////////////////=
*     |///////////////////////////////////////////////////////|
*     +---------------------------+---------------------------+
* 800 |          VPGASA           |///////////////////////////|
*     +---------------------------+///////////////////////////|
* 808 |///////////////////////////////////////////////////////|
*     =///////////////////////////////////////////////////////=
*     |///////////////////////////////////////////////////////|
*     +-------------+-------------+---------------------------+
* C00 |/////////////|  VPGPAUX2   |///////////////////////////|
*     +-------------+-------------+///////////////////////////|
* C08 |///////////////////////////////////////////////////////|
*     =///////////////////////////////////////////////////////=
*     |///////////////////////////////////////////////////////|
*     +-------------+-----------------------------------------+
* E00 |  VPGPAUX1   | E02
*     +-------------+
*
*** VPGBK - VIRTUAL PAGE BLOCK
          
*** Overlay for VPGPAG in VPGBK
*
*     +---------------------------+
*   0 |         VPGPNTRY          | 4
*     +---------------------------+
*
*** Overlay for VPGPAG in VPGBK
          
*** Overlay for VPGPNTRY in VPGBK
*
*     +------+------+------+------+
*   0 |//////|//////|:PSTAT|:PBYT3| 4
*     +------+------+------+------+
*
*** Overlay for VPGPNTRY in VPGBK
          
*** Overlay for VPGPGS in VPGBK
*
*     +---------------------------+
* 400 |         VPGSNTRY          | 404
*     +---------------------------+
*
*** Overlay for VPGPGS in VPGBK
          
*** Overlay for VPGSNTRY in VPGBK
*
*     +--------------------+------+
* 400 |     VPGSVKCF       |//////| 404
*     +--------------------+------+
*
*** Overlay for VPGSNTRY in VPGBK
          
*** Overlay for VPGSNTRY in VPGBK
*
*     +------+------+------+------+
* 400 |:SVKEY|:SRCP |:SFLAG|:SSTAT| 404
*     +------+------+------+------+
*
*** Overlay for VPGSNTRY in VPGBK
          
*** Overlay for VPGSSTAT in VPGBK
*
*                          +------+
* 400 ...              403 |:MSTAT| 404
*                          +------+
*
*** Overlay for VPGSSTAT in VPGBK
          
*** Overlay for VPGASA in VPGBK
*
*     +---------------------------+
* 800 |         VPGANTRY          | 804
*     +---------------------------+
*
*** Overlay for VPGASA in VPGBK
          
*** Overlay for VPGANTRY in VPGBK
*
*     +-------------+------+------+
* 800 |  VPGACNUM   |:APNUM|:AVOL | 804
*     +-------------+------+------+
*
*** Overlay for VPGANTRY in VPGBK

 

VPGBK Cross Reference

Symbol         Dspl Value
-------------- ---- -----
               0402 00
*              0402 VPGSFLAG
*              0402 0*
*              0402 0*
*              0402 0*
*              0402 0*
*              0402 0*
*              0402 0*
*              0402 0*
*              0402 0*
*              0402 00
*              0402 0*
*              0402 0*
*              0402 0*
*              0402 0*
*              0402 0*
*              0402 0*
*              0402 0*
*              0402 0*
*              0402 00
*              0402 40
*              0402 20
*              0402 0*
*              0402 0*
*              0402 0*
*              0402 0*
*              0402 0*
*              0402 0*
*              0402 0*
*              0402 0*
*              0402 0*
*              0402 10
*              0402 0*
*              0402 0*
*              0402 0*
*              0402 0*
*              0402 0*
*              0402 0*
*              0402 0*
*              0402 00
*              0402 0*
*              0402 0*
*              0402 0*
*              0402 0*
*              0402 08
*              0402 06
*              0402 0*
*              0402 0*
*              0402 0*
*              0402 0*
*              0402 0*
*              0402 01
*              0402 00
PAGINVAL       0002 04
PAGPROT        0002 02
PGSALTPT       0403 80
PGSBLOCK       0403 04
PGSERROR       0403 01
PGSGCH         0401 02
PGSGREF        0401 04
PGSGUEST       0401 06
PGSHOST        0401 60
PGSINVAL       0402 80
PGSPCL         0401 80
PGSRABI        0403 02
PGSRCPHC       0401 20
PGSRCPHR       0401 40
PGSTRANS       0403 40
PGSVKACC       0400 F0
PGSVKACF       0400 F8
PGSVKFET       0400 08
PGSVMSLK       0403 10
PGSXSTMB       0403 02
PGSXSTOR       0403 08
RCPGCH         0401 02
RCPGREF        0401 04
RCPGUEST       0401 06
RCPHCH         0401 20
RCPHOST        0401 60
RCPHREF        0401 40
RCPLOCK        0401 80
VPGACNUM       0800
VPGANTRY       0800
VPGAPNUM       0802
VPGASA         0800
VPGASATE       0403 00000800
VPGAVOL        0803
VPGBYTE0       0803 00000000
VPGBYTE1       0803 00010000
VPGBYTE2       0803 00000100
VPGBYTE3       0803 00000001
VPGEON         0803 00800001
VPGFOFF        0803 007FFFBE
VPGLON         0803 00800040
VPGMSTAT       0403
VPGNEXT        0004
VPGPAG         0000
VPGPAGTE       0E00 00000000
VPGPAUX1       0E00
VPGPAUX2       0C02
VPGPBYT3       0003
VPGPGS         0400
VPGPGSTE       0003 00000400
VPGPLINK       0000
VPGPNTRY       0000
VPGPSTAT       0002
VPGSFLAG       0402
VPGSNTRY       0400
VPGSON         0803 00800000
VPGSRCP        0401
VPGSSTAT       0403
VPGSVKCF       0400
VPGSVKEY       0400

This information is based on z/VM V4R1.0.
Last updated on 5 Jun 2001 at 17:14:57 EDT.
Copyright IBM Corporation, 1990, 2001