Programming Interface Information:
This information is NOT intended to be
used as Programming Interfaces of z/VM. |
VPGBK
Control Block Contents
VPGBK DSECT
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
Last updated on 5 Jun 2001 at 17:14:57 EDT.
Copyright IBM Corporation, 1990, 2001