SEG64 - 64-bit CP - V4R4.0

Programming Interface Information: This information is NOT intended to be used as Programming Interfaces of z/VM.

#### SEG64

Prolog

Control Block Contents
SEG64 DSECT

Storage Layout

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.

#### 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

#### 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
    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 V4R4.0. Last updated on 30 Jul 2003 at 13:12:16 EDT.
Copyright IBM Corporation, 1990, 2003