|
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
PGMGSTE field of the associated PGMBK (if any)
STLSTEPx fields of HCPSTLBK
VMDPSTD field of HCPVMDBK
VMDPXSOL field of HCPVMDBK for shadow tables
Note that STEs pointed to from the STLBK STLSTEPx
fields 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' SEGGSTBL A system reset
function occurred while the PGMBK
was paged out. This bit indicates
that the PGSTE entries for this
segment must all be set to stable
state when the PGMBK is next
paged in. 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' SEGGPROT Entire segment is
page protected
0007 7 Bitstring 1 SEGGSTAT Segment Table Entry Status
1... .... SEGGWAIT X'80' SEGGWAIT 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' SEGGTRAN 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' SEGGINVL 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' SEGGCOMN Common segment bit
.... 11.. SEGGTTBT X'0C' SEGGTTBT Table Type bits -
must be b'00'
.... ..1. SEGGXSTR X'02' SEGGXSTR 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' SEGGNULL 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, 2009