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 in the ESA/390 image of CP.
              For ESAME, the VPGBK now spans more than 4096
              bytes.  The PTEs and PGSTEs remain within 4K of
              addressability but the ASATEs are no longer
              reachable with a single base register pointing
              to a PTE.
 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
          .1.. ....      PGSSHARE       X'40' PAGE IS A SHARED PAGE
          ..1. ....      PGS1READ       X'20' ASA MAY BE READ ONLY ONCE.
                                        USED FOR SHARED PAGES. AFTER THE
                                        FIRST READ, THIS SDF (SYSTEM DATA
                                        FILE) ASA IS TO BE IGNORED AND
                                        THE PAGE LEFT AS CHANGED. WHEN
                                        THE PAGE IS FIRST WRITTEN, IT
                                        WILL GO TO A PAGING SPACE ASA AND
                                        THIS FLAG WILL BE TURNED OFF.
                                        PGS1READ ON IMPLIES THAT PAGE IS
                                        READ ONLY FOR THE USER.
          ...1 ....      PGSALLOC       X'10' PAGE IN THE SYSTEM ADDRESS
                                        SPACE (OR A SYSTEM OWNED UTILITY
                                        ADDRESS SPACE) THAT IS ALLOCATED,
                                        OR A SHARED CP PAGE IN THE
                                        MONITOR DCSS THAT CP HAS
                                        TRANSLATED AND THAT HAS NOT YET
                                        BEEN RELEASED BY THE USER
                                        CONNECTED TO THE DCSS. WHEN THIS
                                        BIT IS ON: 1) THE PAGE IS NEVER
                                        PART OF A DASD BLOCK; 2) THE
                                        ASSOCIATED PGMBK IS NEVER PAGED
                                        OUT.
          .... 1...      PGSFIXED       X'08' STORAGE SLOT PERMANENTLY
                                        ASSIGNED
          .... .11.      PGSXSREP       X'06' MASK FOR THE TWO BITS OF
                                        THE XSTORE BLOCK NUMBER THAT ARE
                                        KEPT IN THE PGSTE INSTEAD OF THE
                                        PAGTE. (THE PAGTE ALWAYS CONTAINS
                                        THE TRUE INVALID AND PAGE PROTECT
                                        BITS.)
          .... ...1      PGSREADO       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. Notes :
                                        PGSALTPT indicates that the PTE
                                        is part of an alternate PTE
                                        structure, either as an as yet
                                        unresolved invalid "target"
                                        alternate PTE imbedded in a
                                        user's address space, or as the
                                        "source" page alternate PTE owned
                                        by an NSS/DCSS STLBK. If PGSALTPT
                                        is set in a PTE which is imbedded
                                        in a user's address space and
                                        which is otherwise in the "never
                                        referenced page of zeros" state
                                        (the page is not valid in real
                                        storage or in xstore or on DASD,
                                        PAGINVAL=1, PGSXSTOR=0,
                                        PGSINVAL=1), then it is an
                                        unresolved "target" alternate
                                        PTE, and the source page is
                                        defined by the corresponding
                                        source alternate PTE residing at
                                        the same offset in the source
                                        alternate PGMBK pointed to by
                                        PGMALTPT. If PGSALTPT is set in a
                                        PTE which is owned by an STLBK,
                                        and which is either valid in real
                                        storage or resides in xstore or
                                        on DASD (any of: PAGINVAL=0, or
                                        PAGINVAL=1 and PGSXSTOR=1, or
                                        PAGINVAL=1 and PGSXSTOR=0 and
                                        PGSINVAL=0), then it is a source
                                        alternate PTE, from which the
                                        page contents may be logically
                                        copied to target alternate PTEs
                                        (which are then "unhooked" and
                                        have their PGSALTPT bit set off).
                                        The PGMALTPT field is not set in
                                        source alternate PGMBKs. Also, in
                                        source alternate PGMBKs, the
                                        PGSALTPT bit is only set for
                                        pages for which data was saved;
                                        if it is not set in a particular
                                        source PTE, then no data was
                                        saved for that page, and the page
                                        is logically in the "never
                                        referenced page of zeros" stage.
                                        Therefore, PGSALTPT in source
                                        PTEs can be used to determine if
                                        data was saved for that page.
          .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
-------------- ---- -----
PAGINVAL       0002 04
PAGPROT        0002 02
PGSALLOC       0402 10
PGSALTPT       0403 80
PGSBLOCK       0403 04
PGSERROR       0403 01
PGSFIXED       0402 08
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
PGSREADO       0402 01
PGSSHARE       0402 40
PGSTRANS       0403 40
PGSVKACC       0400 F0
PGSVKACF       0400 F8
PGSVKFET       0400 08
PGSVMSLK       0403 10
PGSXSREP       0402 06
PGSXSTMB       0403 02
PGSXSTOR       0403 08
PGS1READ       0402 20
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 V4R3.0. Last updated on 30 Apr 2002 at 18:26:41 EDT.
Copyright IBM Corporation, 1990, 2002