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

#### SXSTE

Prolog

Control Block Contents
SXSTE DSECT

Storage Layout

Cross Reference (Contains links to field and bit definitions)

#### SXSTE Prolog

     NAME       : HCPSXSTE
     DESCRIPTION: SXS Page Management Table Entry
     DSECT      : SXSTE
     FUNCTION   : A SXS Table Entry describes one 4K page of storage
                  in the System Execution Space (SXS) address space.
     LOCATED BY : 64-bit Host Logical (SXS) addresses:
                  PFXSTBLG + ((SXS Page ADDRESS / 4K) * SXSLENTH)
                  SXSFPNTG  Field of HCPSXSTE for chained pages
                  SXSBPNTG  Field of HCPSXSTE for chained pages
                  SXSFRNXTG Free storage SXSTE forward pointer
                  SUBANCHG  SUBBK SXSTE list anchor
                  FRMSXSTE  Field of HCPFRMTE for pages mapped in SXS
                  FRMSXPN   Indirectly since FRMSXPN is the page
                  number, not the SXSTE address.
     CREATED BY : HCPSXU
     DELETED BY : None
     NOTES      : SXSTEs are contained in the SXS page management table.
                  Space for the SXS page management table is allocated
                  at system initialization and never released.
                  The SXS page management table is contiguous in the
                  SXS, but NOT in real storage. Algorithms that convert
                  between SXSTE address and SXS storage address must use
                  the SXS addresses for the SXSTE and the storage address.
                  There is no relationship between the real addresses.
                  The SXS Page Management Table (SXSTB) describes the
                  usage of pages in the SXS for the range from zero to
                  SYSSXSSZ-1. This area is referred to as the System
                  Execution Area. The SXSTB and FRMTB both reside
                  within the SXS address space but are in separate
                  ranges of storage above 2G. They are permanently
                  allocated at initialization and the usage of the
                  individual pages in those ranges does not change.
                  Therefore the SXSTB and FRMTB pages are not described
                  by the SXSTB.
     SXSTE States and State Transitions:
                  The SXSTE is used to describe the state of a single page in
                  the System Execution Space (SXS). Each SXS page may be
                  either available or in use. In addition, each page may be
                  backed or unbacked. Unbacked pages are never in use. Backed
                  pages may be either in use or available. In use and
                  available pages can be distinguished by whether SXSAVAIL is
                  on. SXSBACKD identifies which pages are backed pages.
                  Backed pages are associated with frames. The backing frames
                  reside above or below 2G in real storage. This distinction
                  can be determined by inspection of SXSBKB2G which is only
                  meaningful if SXSBACKD is on.
                  AVAILABLE SXS PAGES:
                  Available pages are "owned" by the System Execution Space
                  Page Manager (SXSPM). Available pages are kept on one of
                  three queues depending on their backing characteristics:
                  - available unbacked page queue (RSASXQAN)
                  - available backed>2G page queue (RSASXAAN)
                  - available backed<2G page queue (RSASXBAN)
                  Available SXS pages always have SXSAVAIL on in the SXSTE.
                  When they are on one of the available queues they can be
                  taken only while holding the SXSPM Queue Lock (RSASXQLK).
                  SXSONQUE will be on in any SXSTE that is on one of the
                  available SXS queues.
                  If SXSAVAIL is on but SXSONQUE is not on then the SXSTE is
                  available but is in a transition state and is currently
                  owned by one of the SXSPM tasks which is either in the
                  process of consuming it or preparing it for return to a
                  queue. This is referred to as the "Transitory State" and is
                  needed by the SXSPM to allow task ownership of available
                  pages for SXSPM tasks when the task must release the SXSPM
                  Queue Lock. Transitory SXS pages may be backed or unbacked.
                  In addition, a Transitory SXS page may have been allocated
                  to satisfy a specific deferred request.  If so, SXSCPEBK
                  will contain the address of the CPEBK that was stacked to
                  complete the request. Transitory pages are not included
                  in the available page count (RSASXAVL) or any of the in-use
                  counts. The count of Transitory SXSTEs is the difference
                  between the total number of SXSTEs minus the sum of the
                  in use and available SXSTEs.
                  The Transitory state is also used as a stable intermediate
                  state within the SXSPM to reduce the complexity of state
                  conversions. When available SXS pages are taken from a
                  queue they are converted to the Transitory state. Aliases
                  that are removed or stolen, and CP pages that are returned
                  are converted to the Transitory state before any other
                  transition is performed. Creation of aliases and CP pages
                  is only done by using pages in the Transitory state. Pages
                  that are to be placed on the available queues must be in
                  the Transitory state before they are queued. Converting
                  between available, backed and available, unbacked pages is
                  only performed while the page is in the Transitory state.
                  The purpose for these rules is to provide consistent input
                  and output states for the functions responsible for making
                  the SXSTE state transitions.
                  Using information in SXSCSWRD it is possible to determine
                  which of these states an SXS page is in when SXSAVAIL is on:
                  - Transitory = SXSONQUE off, SXSBACKD "any", SXSBKB2G "any"
                  - RSASXQAN   = SXSONQUE on,  SXSBACKD off
                  - RSASXAAN   = SXSONQUE on,  SXSBACKD on,  SXSBKB2G off
                  - RSASXBAN   = SXSONQUE on,  SXSBACKD on,  SXSBKB2G on
                  This information is used in contiguous page searches to
                  determine whether it can take an available page (SXSONQUE
                  is on), and if so, which queue it needs to be dequeued
                  from. Pointer updates for dequeueing can be done without
                  knowing which queue the SXSTE is on, but update of the
                  counts requires knowledge of which queue it is on.
                  IN-USE SXS PAGES:
                  When SXSAVAIL is off the SXS page is considered in use.
                  The page may actually be in the process of being handed
                  out as a CP page or alias, or being returned. The counts
                  of in-use pages are updated when the pages are converted
                  between in-use pages and the Transitory state. In-use
                  pages are of two primary types: CP Pages and Aliases.
                  An alias is an in-use page that has SXSUSER on in SXSCSB0.
                  A CP page is an in-use page that has SXSUSER off in SXSCSB0
                  and SXSCP must be on if SXSUSER is off. If SXSCP is on
                  with SXSUSER then it is an Alias for a pageable space page,
                  not a CP page.
                  CP PAGES:
                  CP pages are allocated by HCPSXU during initialization for
                  permanently allocated pages such as the CP nucleus and the
                  alternate processor PFXPGs. HCPSXP allocates CP pages as
                  they are requested using HCPGETST, by Free Storage Manager
                  calls to HCPSXPFS, or by direct calls to specialized
                  HCPSXP entrypoints. See HCPSXP for additional information.
                  CP pages are guaranteed to remain resident at the same
                  location in real storage from the time they are allocated
                  until the time they are returned. They are never stolen.
                  In general, SXSCSB0 contains a value that matches FRMCSB0
                  since the associated frame must be in use for the same
                  purpose as the page. However, in the case of free storage
                  the FRMTE will have FRMCSB0=FRMFSTG while the SXSTE will
                  have a value in SXSCSB0 that identifies the type of free
                  storage that the page is currently in use as. This allows
                  the Free Storage Manager to convert SXS pages between types
                  of free storage without needing to return and re-obtain
                  them, or modify the FRMTE to indicate the new usage.
                  ALIASES:
                  Alias SXSTEs have no special "Alias indicator". They are
                  identified by SXSUSER being on in SXSCSB0 and SXSAVAIL
                  being off in SXSCSB3. An Alias is an SXS page associated
                  with a resident page of a pageable address space. It is
                  used to allow CP to inspect or modify the contents of the
                  pageable address space page as if it is part of Host
                  Logical storage. Aliases are created by HCPSXA when
                  requested by HCPHTR and HCPHTU, generally when processing
                  an HCPTRANS request. Aliases are generally left in place
                  as long as possible to reduce the need to recreate aliases
                  for future translation requests. Aliases can only be added
                  to resident pageable space pages and the pageable space
                  page is guaranteed to remain resident in the same frame as
                  long as the alias remains in place. Frames cannot be stolen
                  from pageable space pages without first removing the Alias.
                  Aliases are guaranteed to remain in place as long as the
                  page is last translated or locked in host logical, or if
                  it is a protected guest prefix page. No-owned aliases are
                  not allowed to be stolen.
                  Aliases can only be removed under the following conditions:
                  - SXSLKCNT=0 (not locked)
                  - SXSLOCKD is off (not locked)
                  - SXSCPLOK is off (not locked)
                  - SXSLTRCTG=0 (not last translated)
                  - SXSNOOWN is off (not no-owned) unless it is a specific
                  request to remove a no-owned Alias made to HCPSXARN.
                  - SXSPAGZP and SXSPAGZM are off (not a protected guest
                  prefix page)
                  - proper serialization is held which consists of:
                  - FRMTE serialization (FRMSTEAL or FRMRELSE)
                  - SXSTE serialization (SXSSTEAL or SXSRELSE)
                  - PTE serialization (SHORT or ERRSHORT)
     Serialized :
                  SXSTE serialization differs depending on the current state
                  of the SXSTE. The four state subsets of interest are:
                  - Available SXS page SXSTEs (non-Transitory) - these SXSTEs
                  are owned by the SXSPM and therefore serialized by the
                  SXSPM Queue Lock (RSASXQLK).
                  - Transitory SXSTEs - these SXSTEs have SXSAVAIL on so they
                  are owned by the SXSPM, but they have SXSONQUE off so
                  they are not serialized by the SXSPM Queue Lock. These
                  SXSTEs are in transition between states and are owned by
                  the task that placed them into the Transitory state. No
                  other task is allowed to manipulate these SXSTEs. SXSTEs
                  are in the Transitory state only within the SXSPM during
                  the processing of a specific SXSPM task. The SXSPM Queue
                  Lock is held while the SXSPM converts SXSTEs between the
                  Transitory and any other state. While this isn't always
                  necessary because some transitions can be done as atomic
                  operations, the SXSPM Queue Lock is often needed for
                  other reasons related to the transition such as queueing
                  or dequeueing or count updates. Most RSMBK counts are
                  serialized by the SXSPM Queue Lock to remove the need for
                  an interlocked update for each individual count in the
                  RSMBK.
                  - In-Use CP page SXSTEs - these SXSTEs are serialized by
                  the task that the page was allocated to. Often the SXSTEs
                  are not modified at all by the task. However, in the case
                  of free storage pages the Free Storage Manager maintains
                  information in the SXSTEs and has its own serialization
                  rules for updating the SXSTEs. The redefinitions below
                  give an indication of which fields are updated by the
                  Free Storage Manager. The SXSPM does not modify SXSTEs
                  for CP pages while they are allocated to the task.
                  - Alias SXSTEs - As soon as the SXSTE is marked as an Alias
                  it is subject to Alias SXSTE serialization rules so the
                  Alias is created in a serialized state. Serialization of
                  Aliases uses SXSTE-specific serialization defined in
                  SXSCSB3. The Alias serialization states of SXSTRANS,
                  SXSRELSE and SXSSTEAL are mutually exclusive and provide
                  an indication which type of task holds serialization and
                  clues about the transitions that may occur. Although
                  SXSAVAIL is in the same byte as the serialization bits,
                  it does not provide serialization but rather that the
                  SXSTE is either available or in the Transitory state and
                  different serialization mechanisms apply. The SXSCSB3
                  serialization bits apply only to Aliases and should
                  never be on when SXSUSER is off or SXSAVAIL is on.
                  - SXSTRANS - a translation type task is manipulating the
                  Alias. Since Aliases are only created as the result of
                  a translation request, they are created with SXSTRANS
                  already on via an atomic transition from the Transitory
                  to the Alias state.
                  - SXSRELSE is used during release processing when Aliases
                  are removed or made No-owned. The No-owned Manager also
                  uses SXSRELSE when reclaiming the No-owned Aliases.
                  - SXSSTEAL is used when an alias is being stolen by the
                  SXSPM or being removed so that a frame can be stolen
                  by the Frame Manager.
                  The creation and destruction of Aliases requires SXSTE,
                  FRMTE, and PTE serialization for the page which the
                  alias is being created or destroyed. See HCPPGSER MACRO
                  prolog for rules for obtaining serialization when PTE
                  serialization is also needed. SXSTRANS is also used by
                  translation and locking services for existing aliases.
                  When Aliases are destroyed they are converted to the
                  Transitory state in an atomic operation with SXSTE
                  serialization on initially, but off afterwards.
     Comments   :
                  The definition of the SXSTE was derived heavily from the
                  FRMTE to minimize impact to functions that manipulated
                  information in the FRMTE but were changed to use host
                  logical storage and SXSTEs instead. These functions are
                  free storage, page translation, release processing,
                  steal, etc. While there are significant similarities,
                  there are subtle but important differences, especially
                  in the area of serialization. Some fields in the SXSTE
                  are in different locations than they were in the FRMTE in
                  previous releases  For example, SXSLTRCTG and SXSLKCNT are
                  in the first word of SXSSTATEG. Fields that exist in both
                  the SXSTE and FRMTE are at the same displacements.
                  While SXSTEs are on an available list they retain some of
                  the state information from the prior usage, but may not
                  remain associated with the backing frame. When aliases are
                  removed they must be disassociated from the FRMTE. When
                  CP pages are returned and the available backed page queue
                  is at capacity the backing frame is removed. In both cases
                  the SXSTE is placed on the available unbacked SXS page
                  queue until it is reused. Although the backing frame has
                  been removed, the SXS PTE will be invalid but will still
                  contain the PFRA of the frame that the SXS page was last
                  associated with. The frame may still contain useful data,
                  however there is no guarantee that the frame has not been
                  reused after it was disassociated from the SXS page.
                  Several fields that exist in the SXSTE are for diagnostic
                  or performance reasons:
                  - Diagnostic information:
                  - SXSRET14 contains the callers return address for
                  CP pages that have been returned and the SXSTEs have
                  not been reused. It can be useful in diagnosing cases
                  where a page was expected to still be in use but had
                  already been returned.
                  - SXSOBT11 contains the R11 value (may be VMDBK) at
                  the time of the obtain of a page with SXSCSB0=SXSCP
                  and the CP page is still in use. It can be useful in
                  diagnosing cases where it appears SXS pages are not
                  being returned, or a page contains different contents
                  than expected.
                  - SXSOBT14 contains the callers return address from
                  the time of the obtain of a page with SXSCSB0=SXSCP
                  and the CP page is still in use. It can be useful in
                  diagnosing cases where it appears SXS pages are not
                  being returned, or a page contains different contents
                  than expected.
                  - SXSCPEBK contains the address of a CPEBK that is being
                  re-driven and has been given this SXSTE to use to
                  satisfy the deferred request. This information can be
                  used to determine whether Transitory SXSTEs are lost.
                  - Performance short-cuts
                  - SXSSXPTE contains the address of the SXS PTE for
                  available and Transitory SXS pages. It is used to
                  quickly locate the SXS PTE when validating or
                  invalidating the SXS PTE for the page. It is also to
                  quickly obtain the backing frame address for backed
                  available pages by getting the PFRA from the PTE.
                  - SXSFRMAD is used to pass the address of the backing
                  frame to HCPFRF when allocating a new free storage
                  page to avoid the expense of an LRAG instruction.

#### SXSTE Control Block Content

#### SXSTE DSECT

    Hex   Dec Type/Val   Lng Label (dup)    Comments
    ---- ---- --------- ---- -------------- --------
    0000    0 Structure      SXSTE          SXS Page Management Table Entry
    0000    0 Dbl-Word     8 SXSGORGIN (0)  SXS Table Entry Origin
    0000    0 Address      8 SXSFPNTG       SXSTE forward pointer
    0008    8 Address      8 SXSBPNTG       SXSTE backward pointer
    0010   16 Address      8 SXSPTEG        64-bit ptr to page table entry.
                                            PTE address is the same as the
                                            VPG64 address for the 4K block of
                                            virtual storage. The VPG64 is a
                                            more convenient mapping. This is
                                            a host real address.
    0018   24 Signed       8 SXSSTATEG      SXS page status bits and flags.
                                            All bits are contained in a
                                            double word such that Compare &
                                            Swap-CSG can be used to serialize
                                            SXS page state changes.
              00000020       SXSLENTH       *-SXSTE Length of SXS table entry
    0020   32 Dbl-Word     8 SXSNEXTG (0)   Next sequential entry
    0018   24 Bitstring    3 SXSLKCNT       SXS page lock count. Only applies
                                            to Aliases. Locked Aliases cannot
                                            be stolen.
    001B   27 Bitstring    1 SXSLTRCTG      SXS page last translated count.
                                            Count of CPUs which have this
                                            SXSTE last translated. If >0,
                                            the SXS page cannot be stolen.
                                            Supports up to 126 (x'7E')
                                            processors due to no-owned bit &
                                            HCPLTRDC's assumption x'FF' = -1
                                            Only applies to Aliases.
              1... ....      SXSLTRNOO      X'80' SXS Page no-owned last
                                            translated edge trigger. When a
                                            page is no-owned, decrement
                                            SXSLTRCTG by 1 and this bit is
                                            turned on. When SXSLTRCTG goes
                                            x'80'->'00', call the HCPNOOUT
                                            edge trigger. Only applies to
                                            Aliases.
          The codes that include the x'01' in their definition
          are a function of the SXSCP bit and are considered
          to be CP pages unless SXSUSER is also on. In that
          case they are Aliases for CP owned pageable space pages.
          The codes that include the X'02' in their definition
          are a function of the SXSDS bit and are considered
          to be data space pages. SXSDS bit is only allowed to
          be used to combine with SXSUSER or SXSSUSER and SXSCP
          to form SXSDTSP or SXSSUTIL. These are Aliases.
          All SXS pages used as aliases will have the X'80' bit
          indicating it is associated with a "pageable FRMTE".
          All in-use SXS pages that don't have SXSUSER set must
          have SXSCP set and are considered CP pages.
          Free storage pages are associated with each other by
          the X'61' bits.
          Notes      : Any new page code that contains the X'61' bits
          must be a type of free storage page.  There are
          places in the system that check for the X'61' bits to
          determine whether or not a page is a free storage page.
          The code X'FF' is never a valid page usage code in
          SXSCSB0.  SXSNEVER is available to test whether a
          value is a page usage code or not.  For example,
          whether a parameter passed in SAVER2B3 is a page
          usage code or not.
          When a frame is associated with a page in the System
          Execution Space (SXS), the frame use code in FRMCSB4G will
          match the page use code in SXSCSB4G of the SXSTE. All codes
          and bits should be kept in sync between FRMTE and SXSTE.
          The one exception is the case of free storage pages where
          FRMCSB0=FRMFSTG but SXSCSB0 has a value that indicates
          which type of free storage the page currently is.
    001C   28 Signed       4 SXSCSWRD (0)   Cover for the 4 state bytes
              ...1 11..      SXSCSB4G       SXSCSB0 SXSCSB4G Compare and swap
                                            dword byte 4.
    001C   28 Bitstring    1 SXSCSB0        Compare and swap word byte 0. CSG
                                            not necessarily required to alter
                                            these bits.
              00000002       SXSDS          X'02' SXSDS SXS page in use for a
                                            data spaces
              0000000D       SXSMDCHT       X'0D' SXSMDCHT Page used for MDC
                                            hash table.
              00000031       SXSPRFX        X'31' SXSPRFX Prefix page SXS
                                            page save area page
              00000065       SXSFRVM        X'65' SXSFRVM SXS page used for
                                            GUESTPERM free storage that is
                                            not satisfied out of VMDBK free
                                            storage (VMDLSPAC).
              00000067       SXSFRSY        X'67' SXSFRSY SXS page used for
                                            system free
              00000069       SXSAFS         X'69' SXSAFS SXS page used for
                                            host logical aligned free
                                            storage.
              0000006B       SXSVCB         X'6B' SXSVCB SXS page used for
                                            verifiable control block free
                                            storage. "pageable FRMTE"; user
                                            page.
              00000082       SXSDTSP        X'82' SXSDTSP SXS page used for a
                                            user's data space page.
              00000083       SXSSUTIL       X'83' SXSSUTIL SXS page used for
                                            CP utility address space page.
              000000C3       SXSSVDSK       X'C3' SXSSVDSK SXS page used for
                                            VDISK System Utility address
                                            space page.
              0000007D       SXSPDISO       X'7D' SXSPDISO Isolate SXSUSER
                                            and SXSDTSP fields of SXSCSB0.
                                            This is done to allow code to
                                            test, for either SXSUSER *or*
                                            SXSDTSP being on with one
                                            instruction.
              000000FF       SXSNEVER       X'FF' SXSNEVER Equate to reserve
                                            a value which will never be a
                                            valid SXS page usage code.
              00000001       SXSCP          FRMCP SXSCP Page in use by
                                            control program
              00000021       SXSTRACE       FRMTRACE SXSTRACE CP Trace Table
                                            Page
              00000061       SXSFREE        FRMFSTG SXSFREE Logical free
                                            storage page
              00000080       SXSUSER        FRMUSER SXSUSER SXS Alias for
                                            User Page SXS limit(s)
              00FFF000       SXSMAXSZ       X'7FFFF000' SXSMAXSZ
          These codes are primarily static page use codes.
          The exception is for free storage types which can be
          changed by the Free Storage Manager as the pages are reused
          for a different type of free storage than previously used.
          Some codes are defined in HCPEQUAT for use with HCPGETST.
          The following pages can be stolen by the steal task:
              SXSUSER  - Both private and shared pages (pageable)
              SXSDTSP  - Data space pages (private and shared)
              SXSSUSER - System user pages
              SXSSUTIL - System utility pages
              0000001D       SXSCSB5G       SXSCSB1 Compare and swap dword
                                            byte 5.
    001D   29 Bitstring    1 SXSCSB1        Compare and swap word byte 1.
                                            Compare and swap not necessarily
                                            required to alter these bits.
              1... ....      SXSLOCKD       X'80' SXSLOCKD SXS page is locked
                                            in real storage (SXSLKCNT is
                                            greater than zero) Only applies
                                            to Aliases. Locked Aliases can
                                            not be stolen.
              .1.. ....      SXSCPLOK       X'40' SXSCPLOK SXS page locked by
                                            CP Lock command Only applies to
                                            Aliases. Locked Aliases can not
                                            be stolen.
              .... 1...      SXSBKB2G       X'08' SXSBKB2G For a backed page
                                            indicates whether backing frame
                                            is below 2G or not.
              .... .1..      SXSBACKD       X'04' SXSBACKD SXS page has
                                            backing frame. This page may be
                                            an Alias for a "pageable FRMTE",
                                            a CP-use SXS page, or on an
                                            available, backed SXS page queue.
              .... ..1.      SXSONQUE       X'02' SXSONQUE SXS page is
                                            currently on a queue. Which queue
                                            the page is on depends on the
                                            page's current state. It may be
                                            on one of the SXSPM queues or on
                                            a queue specific to the SXSTE use
                                            code. SXSTEs for Aliases i.e. the
                                            SXS page is associated with a
                                            "pageable FRMTE"; may or may not
                                            be on the Potentially Stealable
                                            queue. SXSTEs for Aliases that
                                            are locked are initially left on
                                            that queue but may be removed by
                                            the SXSPM when looking for an
                                            available page to satisfy a
                                            request. Free storage also uses
                                            SXSONQUE to indicate that the
                                            page is on either: SXSFRSY - The
                                            system free storage SXS pages
                                            queue. SXSFRVM - The VMDBK free
                                            storage SXS pages queue.
              ...1 111.      SXSCSB6G       SXSCSB2 SXSCSB6G Compare and swap
                                            dword byte 6.
          These bits are primarily static SXS page flag bits
    001E   30 Bitstring    1 SXSCSB2        Compare and swap word byte 2.
                                            Compare and swap not necessarily
                                            required to alter these bits.
              .1.. ....      SXSNOOWN       X'40' SXSNOOWN SXS page is
                                            no-owned. Only applies to
                                            Aliases. No-owned Aliases cannot
                                            be stolen.
              .... 1...      SXSPAGZP       X'08' SXSPAGZP SXS page is an
                                            Alias for a guest prefix page
                                            that is protected from being
                                            stolen even if not locked or last
                                            translated. When set, some VMDBK
                                            has VMDPAGZP containing the
                                            address for the page described by
                                            this SXSTE. See HCPPZERO. Only
                                            for Aliases.
              .... .1..      SXSPAGZM       X'04' SXSPAGZM Modifier to
                                            SXSPAGZP indicating the Alias is
                                            a protected prefix page for more
                                            than one cpu in the virtual
                                            configuration. Must never be set
                                            without SXSPAGZP. Only applies to
                                            Aliases.
          SXSCSB7G SXSTE serialization byte.  Contains the four
          mutually exclusive SXSTE serialization bits.
          See the serialization section of this part prologue for a
          detailed discussion of SXSTE serialization rules.
              0000001F       SXSCSB7G       SXSCSB3 Compare and swap dword
                                            byte 7.
    001F   31 Bitstring    1 SXSCSB3        Compare and swap word byte 3.
              1... ....      SXSAVAIL       X'80' SXSAVAIL SXS page is not in
                                            use. The page will be on one of
                                            the available SXS page queues
                                            depending on SXSBACKD and
                                            SXSBKB2G settings unless SXSONQUE
                                            is off which indicates that the
                                            SXSTE is in the Transitory state.
                                            When SXSAVAIL is set the SXSTE
                                            may contain residual information
                                            from the prior usage.
              .1.. ....      SXSTRANS       X'40' SXSTRANS SXS page is being
                                            translated.
              ..1. ....      SXSRELSE       X'20' SXSRELSE SXS page is being
                                            released.
              ...1 ....      SXSSTEAL       X'10' SXSSTEAL SXS page is being
                                            stolen by the SXS page manager or
                                            the real frame manager is
                                            stealing frame which requires
                                            removal of Alias. END OF
                                            DEFINITION for SXS page mgt table
                                            entries
          These bits are used to serialize SXS page state changes.
          SXSTRANS, SXSRELSE and SXSSTEAL are used only for Aliases.
          SXSAVAIL indicates it is owned by the SXSPM and does not
          provide any serialization by itself. See the discussion
          of serialization in the prolog.
          Redefinition for SXS pages that are not chained.
    0000    0 Signed       4 *              Reserved for IBM use
    0004    4 Signed       4 SXSID          4 character identifier These
                                            identifiers are for visual
                                            recognition and are not intended
                                            to be used as flags. '*CP*' SXS
                                            page in use by control program
                                            'TRAC' CP trace table page 'FREE'
                                            SXS page in use for free storage
                                            'SAVE' SXS page in use by save
                                            area manager 'PRFX' Prefix page
                                            'AFS ' Aligned free storage 'VCB
                                            ' Verifiable control block
    0008    8 Signed       8 *              Reserved for IBM use
    0010   16 Address      8 *              Reserved for IBM use
    0018   24 Signed       8 *              SXSSTATEG (flags and status bits)
          Redefinition for free storage SXS pages
          A VMDBK is a CP page (SXSCSB0=SXSCP) that is also a free
          storage page because of the free storage area at the end
          of the VMDBK.  As such the redefinition for generic CP SXS
          pages applies when the VMDBK is first allocated, but once
          HCPFRGVI initializes the free storage within the VMDBK
          the redefinition for free storage SXS pages applies as well.
    0000    0 Address      8 SXSFRNXTG      Free storage SXSTE forward ptr.
                                            Only used for free storage types
                                            that are chained by SXSTE; i.e.
                                            non-SHORTTERM free storage.
    0008    8 Signed       4 *              Reserved for IBM use
    000C   12 Signed       2 SXSVMFRG       Meaning is dependent on what type
                                            of free storage page it is: -
                                            SXSAFS - contains block size. -
                                            SXSVCB - contains the VCB code
                                            input on the verifiable free
                                            storage request. See HCPEQUAT for
                                            a list of VCB codes. -
                                            SYSPERM/GUESTPERM - contains the
                                            size of the largest unallocated
                                            block remaining in this page. -
                                            VMDBK free storage - contains the
                                            size of space available in the
                                            VMDBK for GUESTPERM requests.
    000E   14 Signed       2 SXSDWUSE       Doublewords of storage in use
    0010   16 Address      8 SXSCHNG (0)    Generic name for this doubleword
    0010   16 Signed       4 *              Reserved for IBM use
    0014   20 Address      4 SXSCHN         31-bit ptr to 1st free storage
                                            available block in this page.
                                            This page is located in the
                                            system execution space; i.e. it
                                            is a host logical address. Only
                                            31-bit addresses from this space
                                            are allocated for use as free
                                            storage.
                                     This field is also used when
                                     contiguous pages are allocated
                                     and released by HCPSXPNM and
                                     HCPSXPRM respectively. When used
                                     for this reason, SXSCHNG will
                                     contain a number indicating the
                                     total number of contiguous pages
                                     in a contiguous set (from lowest
                                     to highest SXSTE address.)
                                     An allocated single page may
                                     have a SXSCHNG value of zero
                                     (indicating it was allocated via
                                     HCPSXPDF) or one (indicating it
                                     was allocated via HCPSXPNM).
                                     Note SXSCHNG is not used for the
                                     temporary queues of pages returned
                                     on calls like FRFDX -> HTFRQ.
    0018   24 Signed       8 *              SXSSTATEG (flags and status bits)
          SXSCHNG redefinitions used by the Free Storage Manager
          during garbage collection (HCPFRFDX) of SHORTTERM and
          fast allocated subpooled free storage (HCPFGST/HCPFRST).
    0010   16 Signed       4 *              Reserved for IBM use
    0014   20 Signed       2 SXSBCT         Count of returned blocks
    0016   22 Signed       2 SXSLAST        Last block queued
          Redefinition of SXSTEs handed out by HCPSXPFS. This is a
          temporary redefinition. HCPFRF converts the SXSTE format
          to the redefinition above.
    0010   16 Dbl-Word     8 SXSFRMAD       Real address of backing frames.
          Redefinition for generic CP SXS pages (SXSCSB0=SXSCP) that
          are handed out by HCPSXP. This redefinition does not apply
          for nucleus pages even though SXSCSB0=SXSCP. These fields
          are not set in the first SXSTE of a contiguous set since
          this area is redefined for FRMCHNG. The R11 and R14 values
          can be obtained from any other SXSTE in the range. Since
          it is possible to return a single page via the contiguous
          page return interface Bit 0 will be on in SXSOBT14 so it is
          negative and HCPSXPRC knows it isn't a valid SXSCHN value.
    0010   16 Signed       4 SXSOBT11       Obtainers' R11 from SVGR11.
    0014   20 Signed       4 SXSOBT14       Obtainers' R14 from SVGR14. When
                                            Set bit 0 is on to indicate this
                                            field does not contain FRMCHN.
          Redefinition for available SXS pages assigned to CPEBKs
          for redriven deferred requests.
    0008    8 Signed       4 SXSCPEBK       CPEBK SXSTE was given to.
          Redefinition for available SXS pages whether on a queue
          or while being processed in the SXSPM.
    0010   16 Dbl-Word     8 SXSSXPTE       SXS PTE for page SXSTE describes.
    0018   24 Signed       4 SXSRET14       SVGR14 from return of page. The
                                            value is zero if the page has
                                            never been used. May be overlaid
                                            by internal processes in SXSPM.

#### SXSTE Storage Layout

    *** SXSTE - SXS Page Management Table Entry
    *
    *     +-------------------------------------------------------+
    *   0 |                       SXSFPNTG                        |
    *     +-------------------------------------------------------+
    *   8 |                       SXSBPNTG                        |
    *     +-------------------------------------------------------+
    *  10 |                       SXSPTEG                         |
    *     +-------------------------------------------------------+
    *  18 |                      SXSSTATEG                        |
    *     +-------------------------------------------------------+
    *
    *** SXSTE - SXS Page Management Table Entry

    *** Overlay for SXSSTATEG in SXSTE
    *
    *     +--------------------+------+------+------+------+------+
    *  18 |     SXSLKCNT       |(01B) |:CSB0 |:CSB1 |:CSB2 |:CSB3 |
    *     +--------------------+------+------+------+------+------+
    *  20
    *
    *** Overlay for SXSSTATEG in SXSTE

    *** Overlay for SXSGORGIN in SXSTE
    *
    *     +---------------------------+---------------------------+
    *   0 |///////////////////////////|          SXSID            |
    *     +---------------------------+---------------------------+
    *   8 |///////////////////////////////////////////////////////|
    *     +-------------------------------------------------------+
    *  10 |///////////////////////////////////////////////////////|
    *     +-------------------------------------------------------+
    *  18 |///////////////////////////////////////////////////////|
    *     +-------------------------------------------------------+
    *  20
    *
    *** Overlay for SXSGORGIN in SXSTE

    *** Overlay for SXSGORGIN in SXSTE
    *
    *     +-------------------------------------------------------+
    *   0 |                      SXSFRNXTG                        |
    *     +---------------------------+-------------+-------------+
    *   8 |///////////////////////////|  SXSVMFRG   |  SXSDWUSE   |
    *     +---------------------------+-------------+-------------+
    *  10 |///////////////////////////|          SXSCHN           |
    *     +---------------------------+---------------------------+
    *  18 |///////////////////////////////////////////////////////|
    *     +-------------------------------------------------------+
    *  20
    *
    *** Overlay for SXSGORGIN in SXSTE

    *** Overlay for SXSCHNG in SXSTE
    *
    *     +---------------------------+-------------+-------------+
    *  10 |///////////////////////////|   SXSBCT    |  SXSLAST    |
    *     +---------------------------+-------------+-------------+
    *  18
    *
    *** Overlay for SXSCHNG in SXSTE

    *** Overlay for SXSPTEG in SXSTE
    *
    *     +-------------------------------------------------------+
    *  10 |                       SXSFRMAD                        |
    *     +-------------------------------------------------------+
    *  18
    *
    *** Overlay for SXSPTEG in SXSTE

    *** Overlay for SXSPTEG in SXSTE
    *
    *     +---------------------------+---------------------------+
    *  10 |         SXSOBT11          |         SXSOBT14          |
    *     +---------------------------+---------------------------+
    *  18
    *
    *** Overlay for SXSPTEG in SXSTE

    *** Overlay for SXSBPNTG in SXSTE
    *
    *     +---------------------------+
    *   8 |         SXSCPEBK          | C
    *     +---------------------------+
    *
    *** Overlay for SXSBPNTG in SXSTE

    *** Overlay for SXSPTEG in SXSTE
    *
    *     +-------------------------------------------------------+
    *  10 |                       SXSSXPTE                        |
    *     +-------------------------------------------------------+
    *  18
    *
    *** Overlay for SXSPTEG in SXSTE

    *** Overlay for SXSSTATEG in SXSTE
    *
    *     +---------------------------+
    *  18 |         SXSRET14          | 1C
    *     +---------------------------+
    *
    *** Overlay for SXSSTATEG in SXSTE

#### SXSTE Cross Reference

    Symbol         Dspl Value
    -------------- ---- -----
    SXSAFS         001C 00000069
    SXSAVAIL       001F 80
    SXSBACKD       001D 04
    SXSBCT         0014
    SXSBKB2G       001D 08
    SXSBPNTG       0008
    SXSCHN         0014
    SXSCHNG        0010
    SXSCP          001C 00000001
    SXSCPEBK       0008
    SXSCPLOK       001D 40
    SXSCSB0        001C
    SXSCSB1        001D
    SXSCSB2        001E
    SXSCSB3        001F
    SXSCSB4G       001C 1C
    SXSCSB5G       001C 0000001D
    SXSCSB6G       001D 1E
    SXSCSB7G       001E 0000001F
    SXSCSWRD       001C
    SXSDS          001C 00000002
    SXSDTSP        001C 00000082
    SXSDWUSE       000E
    SXSFPNTG       0000
    SXSFREE        001C 00000061
    SXSFRMAD       0010
    SXSFRNXTG      0000
    SXSFRSY        001C 00000067
    SXSFRVM        001C 00000065
    SXSGORGIN      0000
    SXSID          0004
    SXSLAST        0016
    SXSLENTH       0018 00000020
    SXSLKCNT       0018
    SXSLOCKD       001D 80
    SXSLTRCTG      001B
    SXSLTRNOO      001B 80
    SXSMAXSZ       001C 00FFF000
    SXSMDCHT       001C 0000000D
    SXSNEVER       001C 000000FF
    SXSNEXTG       0020
    SXSNOOWN       001E 40
    SXSOBT11       0010
    SXSOBT14       0014
    SXSONQUE       001D 02
    SXSPAGZM       001E 04
    SXSPAGZP       001E 08
    SXSPDISO       001C 0000007D
    SXSPRFX        001C 00000031
    SXSPTEG        0010
    SXSRELSE       001F 20
    SXSRET14       0018
    SXSSTATEG      0018
    SXSSTEAL       001F 10
    SXSSUTIL       001C 00000083
    SXSSVDSK       001C 000000C3
    SXSSXPTE       0010
    SXSTRACE       001C 00000021
    SXSTRANS       001F 40
    SXSUSER        001C 00000080
    SXSVCB         001C 0000006B
    SXSVMFRG       000C

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