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

This information is based on z/VM V6R1.0. Last updated on 18 Feb 2010 at 09:03:53 EDT.
Copyright IBM Corporation, 1990, 2008