Programming Interface Information:
This information is NOT intended to be used as Programming Interfaces of z/VM. |
SEG64
Control Block Contents
SEG64 DSECT
Cross Reference (Contains links to field and bit definitions)
SEG64 Prolog
NAME : HCPSEGTE DESCRIPTION: SEGMENT TABLE ENTRY DSECT : SEG64 Function : There is one segment table entry for each megabyte of address space. A segment table is made up of contiguous segment table entries. For details on the segment table, see the SEGTB DSECT definition below. The format of the segment table entry is ARCHITECTED and cannot be changed in any way which violates the architecture. Located by : ASTSTD field of HCPASTE CONTROL REGISTER 1 CONTROL REGISTER 7 PGMSEGTE field of the associated PGMBK (if any) STLSTEPT field of HCPSTLBK STLSTE2 field of HCPSTLBK VMDPSTD field of HCPVMDBK VMDPXSOL field of HCPVMDBK for shadow tables Note that STEs pointed to from the STLBK fields STLSTEPT and STLSTE2 are only "templates" used during saved segment processing, and are never *attached* (accessible by DAT hardware) in the architectural sense. Created by : HCPBVMBK when a VMDBK is built HCPWLGET when a shadow segment table is built Deleted by : HCPSTKFG when a VMDBK is released HCPWLBRE when a shadow segment table is released
SEG64 Control Block Content
SEG64 DSECT
Hex Dec Type/Val Lng Label (dup) Comments ---- ---- --------- ---- -------------- -------- 0000 0 Structure SEG64 SEGMENT TABLE ENTRY 00FFFFFF SEGGPTMH X'FFFFFFFF' Isolate page-table origin - High 00FFF800 SEGGPTML X'FFFFF800' Isolate page-table origin - Low 0000F800 SEGGPTMLL X'F800' Isolate PTO - LowLow 64-bit mask X'FFFFFFFF80000000' 00FFFFFF SEGG2GMH X'FFFFFFFF' Isolate STE bits which must be zero in a <2G STE - High .... .... SEGG2GML X'80000000' Isolate STE bits which must be zero in a <2G STE - Low 64-bit mask X'0000000000000200' 32-bit high X'00000000' 00000200 SEGGPROM X'00000200' Isolate segment page protect bit 64-bit mask X'0000000000000020' 32-bit high X'00000000' ..1. .... SEGGINVM X'00000020' Isolate invalid bit 64-bit mask X'0000000000000010' 32-bit high X'00000000' ...1 .... SEGGCOMM X'00000010' Isolate common-segment bit 0000 0 Dbl-Word 8 SEGGENTR Segment table entry 00000008 SEGGLEN *-SEGGENTR Length of one STE 0008 8 Dbl-Word 8 SEGGNEXT (0) Next segment table entry 0000 0 Signed 4 SEG64W0 (0) Word 0 of STE Bits 0-31 of PTO 0000 0 Bitstring 1 SEG64B0 Byte 0 of STE NOTES : The following bit definition occupies bit 0 of the STE since there are no more unused bits in either SEGGSTAT or SEGGSTA2. Even though SEGGSTA2 appears to have spare bits, they may never be used for segments whose PGMBK is paged out, since that byte is used as part of the ASA information. 1... .... SEGGSTBL X'80' A system reset function occurred while the PGMBK was paged out. This bit only has meaning when SEGGINVL=1 0001 1 Bitstring 1 * (3) Bytes 1-3 of STE 0004 4 Signed 4 SEG64W1 Word 1 of STE 0004 4 Bitstring 1 * (2) Bits 32-47 of PTO 0006 6 Bitstring 1 SEGGSTA2 Bits 48-52 of PTO, plus the following three bits: .... ..1. SEGGPROT X'02' Entire segment is page protected 0007 7 Bitstring 1 SEGGSTAT Segment Table Entry Status 1... .... SEGGWAIT X'80' Segment has translation requests waiting. SEGGINVL must be = 1. In order to enqueue a deferred STE serialization request, CS must be used to insist that both SEGGINVL and SEGGTRAN are on continuously while either turning SEGGWAIT on, or finding it on and leaving it on. This bit is a non-architected software definition. .1.. .... SEGGTRAN X'40' Segment is being translated This bit is used by software to serialize segment translation. SEGGINVL must be = 1. This bit is a non-architected software definition. Note that TMLL is used to test SEGGINVL and SEGGNULL at the same time. This creates a dependency on SEGGINVL being to the left of and in the same halfword as SEGGNULL. ..1. .... SEGGINVL X'20' Segment Table Entry is invalid Bits 0-52 of the Segment Table entry do NOT contain a valid Page-Table Origin ...1 .... SEGGCOMN X'10' Common segment bit .... 11.. SEGGTTBT X'0C' Table Type bits - must be b'00' .... ..1. SEGGXSTR X'02' Used by CP to indicate that a PGMBK that resides on XSTORE supports pages that also reside on XSTORE. This bit is a non-architected software definition. .... ...1 SEGGNULL X'01' Segment cannot be allocated for guest storage, it is not addressable by the user. SEGGINVL must be = 1. This bit is a non-architected software definition. z/Arch segment table entry contains no page table length information. All page tables represent a full megabyte of virtual storage (256 page table entries). 00000014 SEGGSHFT 20 Bits to shift by to convert between segment number and virtual address. 00000800 SEGGPTUN 2048 Number of bytes in a page-table. All page tables are "full" page tables containing 256 8 byte entries, representing 1M of virtual storage. 0000000B SEGGPTUS 11 Number of bits to shift left in order to multiply by SEGGPTUN. 00000009 SEGGPXDS 12-3 Bits to shift to convert between an isolated page index and the displacement into the page table of the applicable 8 byte PTE. 00000008 SEGGPTRM 8 Bits to shift to determine if an invalid STE contains a PTRM virtual address.
SEG64 Storage Layout
*** SEG64 - SEGMENT TABLE ENTRY * * +-------------------------------------------------------+ * 0 | SEGGENTR | * +-------------------------------------------------------+ * *** SEG64 - SEGMENT TABLE ENTRY *** Overlay for SEGGENTR in SEG64 * * +------+--------------------+---------------------------+ * 0 |:64B0 |////////////////////| SEG64W1 | * +------+--------------------+---------------------------+ * 8 * *** Overlay for SEGGENTR in SEG64 *** Overlay for SEG64W1 in SEG64 * * +-------------+------+------+ * 0 ... 4 |/////////////|:GSTA2|:GSTAT| * +-------------+------+------+ * 8 * *** Overlay for SEG64W1 in SEG64
SEG64 Cross Reference
Symbol Dspl Value -------------- ---- ----- SEGGCOMM 0000 10 SEGGCOMN 0007 10 SEGGENTR 0000 SEGGINVL 0007 20 SEGGINVM 0000 20 SEGGLEN 0000 00000008 SEGGNEXT 0008 SEGGNULL 0007 01 SEGGPROM 0000 00000200 SEGGPROT 0006 02 SEGGPTMH 0000 00FFFFFF SEGGPTML 0000 00FFF800 SEGGPTMLL 0000 0000F800 SEGGPTRM 0007 00000008 SEGGPTUN 0007 00000800 SEGGPTUS 0007 0000000B SEGGPXDS 0007 00000009 SEGGSHFT 0007 00000014 SEGGSTAT 0007 SEGGSTA2 0006 SEGGSTBL 0000 80 SEGGTRAN 0007 40 SEGGTTBT 0007 0C SEGGWAIT 0007 80 SEGGXSTR 0007 02 SEGG2GMH 0000 00FFFFFF SEGG2GML 0000 00 SEG64B0 0000 SEG64W0 0000 SEG64W1 0004
Copyright IBM Corporation, 1990, 2005