|
Programming Interface Information:
This information is NOT intended to be used as Programming Interfaces of z/VM. |
SEG64
Control Block Contents
SEG64 DSECT
SEGTB64 DSECT
Cross Reference (Contains links to field and bit definitions)
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
64-bit mask X'FFFFFFFF80000000'
00FFFFFF SEGG2GMH X'FFFFFFFF' Isolate STE bits
which must be zero in a <2G
ESAME STE - High
.... .... SEGG2GML X'80000000' Isolate STE bits
which must be zero in a <2G
ESAME 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 ESAME format segment table entry
00000008 SEGGLEN *-SEGGENTR Length of one ESAME
format segment table entry
0008 8 Dbl-Word 8 SEGGNEXT (0) Next segment table entry
0000 0 Signed 4 SEG64W0 Word 0 of ESAME STE Bits 0-31 of
ESAME PTO
0004 4 Signed 4 SEG64W1 Word 1 of ESAME STE
0004 4 Bitstring 1 * (2) Bits 32-47 of ESAME PTO
0006 6 Bitstring 1 SEGGSTA2 Bits 48-52 of ESAME 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. SEGINVAL must
be = 1. 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.
SEGINVAL 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.
Note that unlike the ESA/390 segment table entry, the
ESAME segment table entry contains no page table length
information. In ESAME mode, 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. In ESAME, 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 ESAME PTE.
00000008 SEGGPTRM 8 Bits to shift to determine if
an invalid STE contains a PTRM
virtual address.
FUNCTION : The segment table describes a virtual address
space. A segment table is made up of contiguous
segment table entries. Segment tables must begin
on 4K page boundaries, and must be of integral
multiples of the minimum segment table size,
64 bytes for ESA/390 and 1024 bytes for ESAME.
For guest primary address spaces of 512MB or
less, or for non-primary virtual address
spaces of 512MB or less, the segment table is
allocated either as a seperate page of storage
or out of the low addresses of a GUESTPERM type
VMDBK free storage frame.
For non-guest primary address spaces, such as VM
data spaces and system address spaces, if the
address space is 512MB or smaller, the segment
table is always allocated either from a seperate
page of storage or out of the low addresses of a
GUESTPERM type VMDBK free storage frame.
When a virtual address space is defined greater
than 512MB in size, up to four contiguous pages
are allocated.
The SYSTEM virtual address space is always
defined to be 2048MB in size and its segment
table is always allocated as four contiguous
frames of storage at system initialization.
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 (ESA/390)
ASTASCE field of HCPASTE (ESAME)
CONTROL REGISTER 1
CONTROL REGISTER 7
PGMSEGTE field of the associated PGMBK (if any)
VMDPSTD field of HCPVMDBK (ESA/390)
VMDPASCE field of HCPVMDBK (ESAME)
VMDPXSOL field of HCPVMDBK for shadow tables
Created by :
HCPBVMBK when a VMDBK is built
HCPFTUSG when an FTC address space is built
HCPSEGAS when a normal segment table is built
HCPWLGET when a shadow segment table is built
For guest primary address space addressability less
than or equal to 32 MB, the segment table created by
HCPBVM (imbedded in the beginning of the VMDBK)
which was created during LOGON processing is
used. HCPBVM always builds this segment table
regardless of the guest primary virtual address
space storage size, but it is only used if the
actual addressability needed is 32MB or less.
For guest primary address space storage sizes
from 33 Megabytes to 1024 MB, and for all other
address spaces less than or equal to 1024 MB, the
segment table is allocated either as a seperate page
or from the low addresses of a GUESTPERM type VMDBK
free storage page.
For all address spaces from 1024 MB to 2048 MB in
size, two contiguous pages are allocated to contain
the segment table. If there is enough unused storage
in the secong page past the end of the segment table,
the second page may be used for GUESTPERM type VMDBK
free storage (with the low addresses allocated for
use as the segment table).
Deleted by :
HCPSTKFG when a VMDBK is released
HCPSEGRS when a normal segment table is released
HCPWLBRE when a shadow segment table is released
The segment table in guest primary VMDBKs is not
deleted until the VMDBK itself is deleted (after the
guest is logged off). If the guest primary virtual
storage size at the time of logoff is 32MB or less,
this is the actual segment table. Normal segment
tables allocated outside the VMDBK are released
whenever the address space is destroyed or reset, and
may be released when an address space is resized due
to saved segment imbed/unimbed processing.
Shadow segment tables are deleted when the owning
RGuest base VMDBK is destroyed.
SEGTB64 DSECT
Hex Dec Type/Val Lng Label (dup) Comments
---- ---- --------- ---- -------------- --------
0000 0 Structure SEGTB64 SEGMENT TABLE
0000 0 Signed 4 SEGGORIG (0) Segment Table Origin
0000 0 Bitstring 1 * (0) First STE / SEGTE
SEG64 Storage Layout
*** SEG64 - SEGMENT TABLE ENTRY
*
* +-------------------------------------------------------+
* 0 | SEGGENTR |
* +-------------------------------------------------------+
*
*** SEG64 - SEGMENT TABLE ENTRY
*** Overlay for SEGGENTR in SEG64
*
* +---------------------------+---------------------------+
* 0 | SEG64W0 | SEG64W1 |
* +---------------------------+---------------------------+
* 8
*
*** Overlay for SEGGENTR in SEG64
*** Overlay for SEG64W1 in SEG64
*
* +-------------+------+------+
* 0 ... 4 |/////////////|:GSTA2|:GSTAT|
* +-------------+------+------+
* 8
*
*** Overlay for SEG64W1 in SEG64
*** SEGTB64 - SEGMENT TABLE
*
*
*** SEGTB64 - SEGMENT TABLE
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
SEGGORIG 0000
SEGGPROM 0000 00000200
SEGGPROT 0006 02
SEGGPTMH 0000 00FFFFFF
SEGGPTML 0000 00FFF800
SEGGPTRM 0007 00000008
SEGGPTUN 0007 00000800
SEGGPTUS 0007 0000000B
SEGGPXDS 0007 00000009
SEGGSHFT 0007 00000014
SEGGSTAT 0007
SEGGSTA2 0006
SEGGTRAN 0007 40
SEGGTTBT 0007 0C
SEGGWAIT 0007 80
SEGGXSTR 0007 02
SEGG2GMH 0000 00FFFFFF
SEGG2GML 0000 00
SEG64W0 0000
SEG64W1 0004
This information is
based on z/VM V5R1.0.
Last updated on 8 Sep 2004 at 14:28:42 EDT.
Copyright IBM Corporation, 1990, 2004