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 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
Copyright IBM Corporation, 1990, 2002