FRMTE | Back to Index page

| Prolog Control Block Contents FRMTE DSECT Storage Layout Cross Reference (Contains links to field and bit definitions) |
Programming Interface Information: This information is NOT intended to be used as Programming Interfaces of z/VM.

FRMTE Prolog | Top of page

     NAME       : HCPFRMTE
     DESCRIPTION: FRAME TABLE ENTRY
     DSECT      : FRMTE
     FUNCTION   : A FRAME TABLE ENTRY DESCRIBES ONE 4K ALIGNED
                  BLOCK OF REAL STORAGE.
     LOCATED BY : 64-bit address
                  PFXFTBLG + (Host Real address of frame / 4096 * 32)
                  VMDGFR1ST User owned frame forward anchor
                  VMDGFRLST User owned frame backward anchor
                  FRMFPNTG  Field of HCPFRMTE for chained frames
                  FRMBPNTG  Field of HCPFRMTE for chained frames
                  FRMFRNXTG Free storage FRMTE forward pointer
                  SUBGANCH  SUBBK FRMTE list anchor
                  RSAFTOFTE host real address of FRMTE describing
                  frame used for first page of Frame Table.
                  RSASTOFTE host real address of FRMTE describing
                  frame used for first page of SXS page
                  management table.
                  FRMTENXT  host real address of FRMTE describing
                  next frame used for frame table or
                  SXS page management table.
                  Used for RSAFTOFTE and RSASTOFTE chains.
     CREATED BY : HCPISV    Entries allocated and initialize at ipl
                  from storage below the 8E line in the
                  System Execution Address Space.
     DELETED BY : NONE
     RELOCATION CONSIDERATIONS : None
     NOTES      : THE FRMTES ARE CONTAINED IN THE FRAME TABLE.
                  Space for the frame table is allocated at system
                  initialization.
                  THE SPACE FOR THE FRAME TABLE IS NEVER RELEASED.
                  The frame table is contiguous in the System Execution
                  Space (SXS), but NOT in real storage. Algorithms that
                  convert between FRMTE address and real frame address
                  must use the SXS address of the FRMTE.
     SERIALIZED :
       There are rules that dictate the order in which
       serialization can be obtained on PTEs, FRMTEs, and
       SXSTEs.  See HCPPGSER MACRO for more information.
       The following serialization discussion generally applies
       to FRMTEs with pageable FRMCSB0 frame codes (that is,
       frames where the FRMUSER x'80' bit is on in FRMCSB7G).
       Such FRMTEs are referred to as "pageable FRMTEs" in this
       discussion.  Note that this includes most available frames
       (frames which have the FRMAVAIL bit set in FRMCSB7G,
       whether they are actually on the global available list,
       one of the processor local available lists, or in some
       other "in transit" state), since the previous use frame
       codes are not changed while a frame is available.
       Pageable FRMTEs are serialized primarily by the four FRMTE
       serialization bits:  FRMAVAIL, FRMTRANS, FRMRELSE, and
       FRMSTEAL, all in FRMSTATEG FRMCSB7G.  These four bits are
       essentially mutually exclusive spin locks.  Under normal
       circumstances, they may be turned on *ONLY* one at a time
       and *ONLY* by a word concurrent interlocked instruction
       such as CS or CDS.  That is, only *ONE* of the four bits
       is allowed to be on at any given time.  If any one of the
       four serialization bits is on, none of the other three
       serialization bits may be turned on until it goes off, and
       no changes to the rest of the FRMTE are allowed by any
       task other than the one that currently "owns" the FRMTE
       (that is, the task that turned the current serialization
       bit on).
       Note while the four FRMTE serialization bits are somewhat
       similar to normal spin locks, they are unique in that the
       usual "no loss of control while a spin lock is held" rule
       does *NOT* necessarily apply.  The reason for this
       exception is that FRMTEs may need to be left in these
       serialized states for long periods of time, so spin loops
       attempting to obtain pageable FRMTE serialization must
       only spin if the current state is known to be a "short
       term" state, and must take into consideration possible
       status changes in the remainder of FRMSTATEG (and possibly
       FRMPTEG as well).
       Generally, only word concurrent interlocked instructions
       should be used to manipulate pageable FRMTEs' FRMCSB7G.
       However, for performance reasons, there are special cases
       where a task which currently holds exclusive ownership of
       a FRMTE (by having turned one of the FRMCSB7G serialization
       bits on via CS or CDS) may release FRMTE serialization
       using a non-interlocked byte concurrent instruction, such
       as ST or NI.  This technique is *ABSOLUTELY* dependent on
       mutual exclusivity of the four FRMCSB7G serialization bits,
       and use of word concurrent interlocked instructions in
       setting them on.
       During Demand Scan processing, queueing of FRMTEs is at
       times serialized by holding the global aging list lock
       rather than by using one of the four FRMTE serialization
       bits.  Because FRMTEs on the aging list have FRMAGING on,
       other tasks will have to attempt to get the Aging List
       lock to manipulate the FRMTEs, and these attempts will
       fail.
       A FRMCSB7G serialization bit may *ONLY* be turned off
       (regardless whether the instruction used is interlocked or
       not) if it is known without any doubt to be on and held by
       the running task.  Turning an FRMCSB7G serialization bit
       which is already zero off *again* with a non-interlocked
       instruction such as NI "just in case" or to combine code
       paths is a dangerous exposure to lost FRMCSB7G updates.
       Occasionally, FRMTEs which are not on any queue or
       associated with any active PTE are said to be under "task
       local" serialization.  In this case, the assumption is
       that no other task can get the address of the FRMTE, since
       no other control structures point to it.  However, it must
       *ALWAYS* be kept in mind that the frame table scan
       function in HCPALF can find *ANY* FRMTE, regardless of
       state, since it processes the entire frame table
       sequentially, looking for pageable FRMTEs which are in a
       "stealable" state.  Therefore, this "task local"
       serialization technique is only valid for non-pageable
       FRMTEs, where FRMCSB7G FRMUSER (x'80') is off.
       Also, it should be kept in mind that frame table scan
       approaches frame and page serialization backwards from
       most other code, in that it attempts to get the lowest
       level serialization first by (conditionally) obtaining
       FRMSTEAL, and working up (again, conditionally) from
       there.  Therefore, frame table scan must obtain all
       serialization conditionally, and be able to release all
       held serialization and abandon the current FRMTE, if any
       serialization conflict is encountered.  Otherwise,
       deadlocks with tasks obtain serialization in the normal
       "top down" fashion will result.
       This discussion not meant to be an exhaustive definition
       of FRMTE serialization.  There are special circumstances
       such as system initialization where these rules do not
       apply, and other non-pageable frame code types have their
       own serialization mechanisms depending on usage.  There
       are also some special pageable frame code types (such as
       MDC related FRMTEs and pageable page table FRMTEs) which
       are bound by these rules but have additional special
       serialization mechanisms as well.
       There may well be places in the existing code which do not
       abide by these rules and are not yet known to have caused
       any problems, but any such instances should be thoroughly
       investigated.  Any code that violates the FRMCSB7G
       serialization bit mutual exclusivity rule for pageable
       FRMTEs while the system is in a normal running state is
       very likely in error, though, and should be addressed as
       soon as possible.
       The reason for all of this paranoia is that FRMTE
       serialization problems (such as lost FRMCSB7G updates) are
       notoriously difficult to debug.  FRMTE serialization
       errors usually lead to unpredictable (but invariably bad)
       results which typically do not cause external symptoms
       immediately.  By the time external symptoms arise, most
       in-storage evidence of the root cause has usually been
       overwritten.  Known typical symptoms of FRMTE
       serialization errors include various loops and hangs,
       and MCW002 ABENDs, but other symptoms are quite possible.

FRMTE Control Block Content | Top of page

     FRMTE DSECT
    Top of page

    Hex   Dec Type/Val   Lng Label (dup)    Comments
    ---- ---- --------- ---- -------------- --------
    0000    0 Structure      FRMTE          FRAME TABLE ENTRY
    0000    0 Dbl-Word     8 FRMGORGIN (0)  Frame Table Entry Origin
    0000    0 Address      8 FRMFPNTG       64-bit host logical address FRMTE
                                            forward pointer
    0008    8 Address      8 FRMBPNTG       64-bit host logical address FRMTE
                                            backward pointer
    0010   16 Address      8 FRMPTEG        64-bit host real address pointer
                                            to corresponding Page Table Entry
                                            when FRMCSB0 contains a pageable
                                            type frame code. PTE address is
                                            the same as the VPG64 address for
                                            the 4K block of virtual storage.
                                            The VPG64 is a more convenient
                                            mapping. FRMPTEG must be zeroed
                                            whenever a FRMTE is put on the
                                            global or local available list.
                                            When FRMSXS is on and FRMCSB0
                                            does not contain a pageable type
                                            frame code, this field is
                                            redefined as FRMSXSTE, the 64-bit
                                            host logical address of the
                                            corresponding SXSTE. See FRMSXSTE
                                            redefinition of FRMPTEG.
    0018   24 Signed       8 FRMSTATEG      Frame status bits and flags. All
                                            bits are contained in a double
                                            word such that Compare & Swap-CSG
                                            can be used to serialize frame
                                            state changes.
          See the serialization section of this part prologue for a
          detailed discussion of FRMTE serialization rules.
          WARNING: Do *NOT* change any FRMTE serialization code
                   without first *THOROUGHLY* understanding the
                   FRMTE serialization rules
              00000020       FRMLENTH       *-FRMTE Length of frame table
                                            entry
              00000005       FRMLenSh       5 Shift amount equivalent to
                                            multiplying by FRMLENTH
              0000001F       FRMAdrMk       FRMLENTH-1 Mask to TMLL that the
                                            FRMTE address is properly
                                            aligned: TMLL Rx,FRMAdrMk BrNZ
                                            NotAligned
          Verify our requirements
    0020   32 Dbl-Word     8 FRMNEXTG (0)   Next sequential entry
    0008    8 Signed       4 *              High half of backward pointer
    000C   12 Signed       4 FRMBPNT1       Low half of backward pointer
          FRMBPNT1 is set by HCPHTTFF (front end of fast path
          page fault processor) to indicate to HCPPLPPL (back
          end of fastpath page processor) what type of page
          fault occurred.  For a page fault satisfied by PGIN
          of an XSTORE block from a non-alternate PGMBK, the
          XSTORE block number is stored in FRMBPNT1.  If the
          value in FRMBPNT1 is greater than X'FFFFFFFC', no
          XSTORE block was involved and FRMBFLAG will indicate
          the type of page fault that took place.
    000C   12 Bitstring    1 * (3)          High 3 bytes of block number
    000F   15 Bitstring    1 FRMBFLAG       Fast path status flag
              1111 11.1      FRMALTMV       X'FD' FRMALTMV Page in frame was
                                            moved from a page found in an
                                            alternate PGMBK
              1111 111.      FRMALTPG       X'FE' FRMALTPG Page in frame was
                                            PGIN'd from an XSTORE block found
                                            in an alternate PGMBK
              1111 1111      FRMFTPF        X'FF' FRMFTPF Page in frame was
                                            cleared to satisfy a first time
                                            page fault
                  These bits are static frame flag bits
          Redefinition for Minidisk Cache (FTC).
    0000    0 Address      8 *              Not redefined for MDC, original
                                            field name, FRMFPNTG, used
    0008    8 Signed       4 *              Skip high half of FRMBPNTG
    000C   12 Signed       2 FRMTCSTE       Offset within MDC segment table
                                            to the STE that this segment
                                            represents (Page table pages
                                            only)
    000E   14 Bitstring    1 FRMPSCT        Count of free PTE sets. Used in
                                            garbage collection only. (Page
                                            table pages only and must be
                                            initialized to 0)
    000F   15 Bitstring    1 FRMASSEL       Address space selector bits
              11.. ....      TCHASPAC       X'C0' TCHASPAC These bits
                                            identify the address space used
                                            for caching Note: TCMALMSK and
                                            TCMALSHF depend on these bits
              ..11 1111      TCHIXMSK       X'3F' TCHIXMSK Bits to hold DPSBK
                                            index See also TCMIXMSK.
    0010   16 Address      8 FRMSTOG (0)    STO for this address space
                                            (Segment table pages only)
    0010   16 Signed       4 *              Reserved for FRMSTOG high half
    0014   20 Address      4 FRMSTO         31-bit STO for this address space
    0018   24 Address      8 *              May not be redefined for use in
                                            any way by MDC. Original field
                                            name, FRMSTATEG, and
                                            subdefinitions are used.
    0010   16 Signed       4 *              High half skipped
    0014   20 Signed       2 FRMPS1ST       First PTE set queued on frame for
                                            MDC garbage collection. (Page
                                            table pages only. Must be
                                            initialized to 0 when frame is
                                            allocated as a page table.)
    0016   22 Signed       2 FRMPSLST       Last PTE set queued on frame for
                                            MDC garbage collection. (Page
                                            table pages only. Must be
                                            initialized to 0 when frame is
                                            allocated as a page table.)
    0010   16 Signed       4 *              High half skipped
    0014   20 Signed       4 FRMDCKEY       MDC hash key here for MDC frames
          End of redefinition for Minidisk Cache (FTC).
          Redefinition for Emergency PGMBK Pool
    0000    0 Address      8 *
    0008    8 Address      8 *
    0010   16 Address      8 FRMEMPGM       A(next emergency PGMBK FRMTE)
    0018   24 Address      8 *
          End of redefinition for Emergency PGMBK Pool
          Frame state word 0 contains the System Execution Space Page
          Number (bits 1:19) for a pageable type frame code if FRMSXS
          is also on.  FRMSXS on in a pageable type frame code FRMTE
          indicates that the pageable page is also "aliased" into the
          System Execution Space.  The SXPN allows code to locate the
          corresponding SXSTE (System Execution Space Management Table
          Entry, the structure by which System Execution Space Pages
          are managed) by ANDing off unrelated bits, then converting
          the resulting System Execution Space Page address to a SXSTE
          address using the SXSAE macro.
    0018   24 Signed       4 FRMSTAW0 (0)   Frame state word 0
    0018   24 Bitstring    3 FRMSXPN        System Execution Space Page
                                            Number (bits 1:19), when frame
                                            code is pageable and FRMSXS is on
                                            indicating the pageable page is
                                            aliased into the System Execution
                                            Space.
              00FFF000       FRMSXPNM       X'7FFFF000' Mask for isolating
                                            the System Execution Page Address
                                            from the SXPN.
              00007FFF       FRMSXPNMH      X'7FFF' Mask for isolating the
                                            System Execution Page Address
                                            from the SXPN (high half).
              0000F000       FRMSXPNML      X'F000' Mask for isolating the
                                            System Execution Page Address
                                            from the SXPN (low half).
    001B   27 Bitstring    1 *              Reserved for IBM use
          Redefinition for IBR state information.
          When a page is made IBR, the storage key of the frame is
          saved in FRMIBKEY.  While a page is IBR, the guest may
          perform a keyop to modify the frame's key information
          which will be stored in the PGSTE.  If the page is
          revalidated, FRMIBKEY will be used to determine if a SSKE
          is needed to set the real storage key to match the PGSTE
          value.  FRMIBKEY is cleared during revalidation, and
          also at frame reclaim time.
    0018   24 Bitstring    1 FRMIBKEY       Storage key from the frame at the
                                            time page was made IBR.
    0019   25 Bitstring    1 FRMIBFLG       Flags associated with IBR state
              ..1. ....      FRMRCPHC       X'20' FRMRCPHC Backup of PGSRCPHC
                                            (host change) when FRMTE is added
                                            to the aging list. This flag is
                                            reset when PGSRCPHC is reset,
                                            after the page is early written.
              .... ...1      FRMENCPT       X'01' FRMENCPT Frame contents are
                                            encrypted. This bit can be ON as
                                            long as the frame is IBR on the
                                            Global Aging List or in-flight.
                                            It cannot be ON if the FRMTE is
                                            IBR on the UFO. The bit goes ON
                                            during early writes when a frame
                                            is encrypted and written to
                                            auxiliary storage. It goes OFF:
                                            1. When pages are read in and
                                            decrypted as part of a block
                                            paging Read and put on the UFO.
                                            2. When an IBR frame on the
                                            Global Aging List is revalidated
                                            and decrypted. 3. When a frame is
                                            reclaimed for the frame manager.
                                            Serialization for this bit is
                                            Frame Serialization.
    001A   26 Signed       2 FRMAGLSV       For a frame on the Aging List
                                            that is locked but not dequeued,
                                            the high order 2 bytes of the
                                            FRMFPNTG will be saved here
          End of redefinition for IBR state information.
          The codes that include the x'80' (FRMUSER) bit in their
          definition indicate that the frame contains a pageable
          page.  For most such frame codes, it means the page is
          represented by (more or less) standard pageable address
          space structures.  Exceptions include the pageable PGMBK
          frame codes FRMPPGM (x'D1') and FRMPPGM2 (x'D5'), which
          are somewhat similar to normal address spaces, but with
          notable exceptions (such as each "page" really being an
          8K pageable PGMBK requiring two frames), and also MDC
          data page frame code FRMFTADD (x'88'), which aren't really
          "pageable" per se, but are more properly described as
          "discardable" or "reclaimable" and are represented by
          completely different special case MDC structures.
          The codes that include the x'01' in their definition
          are a function of the FRMCP bit and are usually considered
          to be CP frames.
          The codes that include X'81' (FRMSUSER) in their definition
          are pageable CP frames.  As such, PTIL is not applicable and
          IPTE must be used to invalidate the PTE.
          The dynamic paging area (DPA) is comprised of any pageable
          user or system frame, and all of the frames on the
          available lists.
          RSADmpCP is the count of CP frames to be included in a hard
          abend dump.
                                           Counted in     Counted in
                                              DPA?         RSADmpCP?
                                           ----------     ----------
          In general, when FRMCP ON:           No             Yes
          Exceptions:
           Crash-kernel frames                 No              No
           Crash-kernel frames (x01)           No              No
           FRMNOTI   (x05)                     No              No
           FRMSVDSK  (xC3)*                   Yes              No
           FRMPPGM1/FRMPPGM2 (xD1/xD5)*       Yes             Yes
           FRMSUSER  (x81)*                   Yes             Yes
             * FRMUSER is ON for these pageable frames.
            ** Although FRMSUSER frames are included in RSADmpCP,
               they are dumped only when we are certain they do not
               contain CP Directory data.
                                           Counted in     Counted in
                                              DPA?         RSADmpCP?
                                           ----------     ----------
          In general, when FRMCP OFF:         Yes              No
          Exceptions:
           FRMOFFLN                            No              No
           FRMOFFLN (x10)                      No              No
           CP non-dumpable frames (x_4)        No***           No
           Non-specific usage (x00)           Yes              No
            *** Will be included in DPA count when the FRMTE is on a
                global available list.
          When a frame with FRMCP ON is added to a global available
          Frame codes with x_4 (i.e. FRMCP is OFF, with a '4' in the
          low nibble) are CP-use frames that are not counted in
          RSADPACP.  However, because they contain CP data, they can
          be included in a soft abend dump when the frame address is
          in a register at the time of the soft abend, or the frame
          address is specified in a snap list.
          list, the frame code is changed to FRMCPAvl (x'04').  There
          list, the frame code is changed to FRMCPAvl (x04).  There
          FRMUSER because once the frame is added to the available
          list, we cannot determine whether it contains CP Directory
          data; and 2) a FRMSVDSK is unchanged because it always
          contains user data.
          Crash-kernel frames (frame code = FRMCP) are allocated at
          system initialization and are never released back to the
          available list.
          The codes that include the X'02' in their definition
          are a function of the FRMDS bit and are considered
          to be data space frames. FRMDS bit is only allowed to
          be used to combine with FRMUSER or FRMSUSER and FRMCP
          to form FRMDTSP or FRMSUTIL.
          FRMPPGM is identified by the X'80' bit as pageable.
          FRMNPGM and FRMPPGM are associated with each other by
          the X'50' bits.
          Free storage frames are associated with each other by
          the X'60' bits.
          Notes      : Any new frame code that contains the X'61' bits
          must be a type of free storage frame.  There are
          places in the system that check for the X'61' bits to
          determine whether or not a frame is a free storage frames.
          All Mini-Disk Cache frame codes have the X'08' bit
          set (Notes      : other frames codes that are not MDC may
          also use the x'08' bit).  FRMFTADD is identified as
          pageable (more properly discardable/reclaimable by the
          X'80' bit.
          The code X'FF' is never a valid frame usage code in
          FRMCSB0.  FRMNEVER is available to test whether a
          value is a frame usage code or not.  For example,
          whether a parameter passed in SAVER2B3 is a frame
          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.
          When a new frame code is assigned, make sure the TSTFRAME
          macro returns the expected output (see HCPUTRX3/XS).
    001C   28 Signed       4 FRMCSWRD (0)   Cover for the 4 state bytes
    001C   28 Bitstring    1 FRMCSB0 (0)
              00000004       FRMCPAvl       X'04' FRMCPAvl Frame was in use
                                            by CP, but is now on a global
                                            available list.
              00000005       FRMNOTI        X'05' FRMNOTI Frame is not
                                            initialized. TB/SSKE/ISKE has not
                                            been issued against this frame.
              00000009       FRMFTTBL       X'09' FRMFTTBL Frame used for MDC
                                            segment or page table.
              0000000D       FRMMDCHT       X'0D' FRMMDCHT Frame used for MDC
                                            hash table.
              00000010       FRMOFFLN       X'10' FRMOFFLN Frame is offline
                                            and unavailable
              00000011       FRMSXSTB       X'11' FRMSXSTB SXS page mgt table
                                            frame
              00000014       FRMIOAT        X'14' FRMIOAT IOAT frame
              00000031       FRMPRFX        X'31' FRMPRFX Prefix page frame
              00000040       FRMVR          X'40' FRMVR V=F user frame
              00000041       FRMFRMTB       X'41' FRMFRMTB Frame table frame
              00000051       FRMNPGM        X'51' FRMNPGM Frame is a
                                            non-pageable pgmbk
              00000051       FRMNPGM1       FRMNPGM FRMNPGM1 First frame of a
                                            non-pageable PGMBK
              00000055       FRMNPGM2       X'55' FRMNPGM2 Second frame of a
                                            non-pageable PGMBK Refer to
                                            FRMSXSTE to identify the SXSTE
                                            that describes the page. free
                                            storage
              00000082       FRMDTSP        X'82' FRMDTSP Frame used for a
                                            user's data space page
              00000083       FRMSUTIL       X'83' FRMSUTIL Frame used for CP
                                            utility address space page
              00000088       FRMFTADD       X'88' FRMFTADD Frame is part of
                                            the MDC address space. It
                                            contains user data.
              000000C3       FRMSVDSK       X'C3' FRMSVDSK Frame used for
                                            VDISK System Utility address
                                            space page
              000000D1       FRMPPGM        X'D1' FRMPPGM Frame is a pageable
                                            PGMBK
              000000D1       FRMPPGM1       FRMPPGM FRMPPGM1 First frame of a
                                            pageable PGMBK
              000000D5       FRMPPGM2       X'D5' FRMPPGM2 Second frame of a
                                            pageable PGMBK
              0000007D       FRMPDISO       X'7D' FRMPDISO Isolate FRMUSER
                                            and FRMDTSP fields of FRMCSB4G.
                                            This is done to allow code to
                                            test, for either FRMUSER *or*
                                            FRMDTSP being on with one
                                            instruction.
              000000FF       FRMNEVER       X'FF' FRMNEVER Equate to reserve
                                            a value which will never be a
                                            valid frame usage code.
    001C   28 Bitstring    1 FRMCSB4G (0)   Compare and swap dword byte 4.
                                            CSG not necessarily required to
                                            alter these bits.
              00000004       FRMCPAvl       X'04' FRMCPAvl Frame was in use
                                            by CP, but is now on a global
                                            available list.
              00000005       FRMNOTI        X'05' FRMNOTI Frame is not
                                            initialized. TB/SSKE/ISKE has not
                                            been issued against this frame.
              00000009       FRMFTTBL       X'09' FRMFTTBL Frame used for MDC
                                            segment or page table.
              0000000D       FRMMDCHT       X'0D' FRMMDCHT Frame used for MDC
                                            hash table.
              00000010       FRMOFFLN       X'10' FRMOFFLN Frame is offline
                                            and unavailable
              00000011       FRMSXSTB       X'11' FRMSXSTB SXS page mgt table
                                            frame
              00000014       FRMIOAT        X'14' FRMIOAT IOAT frame
              00000031       FRMPRFX        X'31' FRMPRFX Prefix page frame
              00000040       FRMVR          X'40' FRMVR V=F user frame
              00000041       FRMFRMTB       X'41' FRMFRMTB Frame table frame
              00000051       FRMNPGM        X'51' FRMNPGM Frame is a
                                            non-pageable pgmbk
              00000051       FRMNPGM1       FRMNPGM FRMNPGM1 First frame of a
                                            non-pageable PGMBK
              00000055       FRMNPGM2       X'55' FRMNPGM2 Second frame of a
                                            non-pageable PGMBK Refer to
                                            FRMSXSTE to identify the SXSTE
                                            that describes the page. free
                                            storage
              00000082       FRMDTSP        X'82' FRMDTSP Frame used for a
                                            user's data space page
              00000083       FRMSUTIL       X'83' FRMSUTIL Frame used for CP
                                            utility address space page
              00000088       FRMFTADD       X'88' FRMFTADD Frame is part of
                                            the MDC address space. It
                                            contains user data.
              000000C3       FRMSVDSK       X'C3' FRMSVDSK Frame used for
                                            VDISK System Utility address
                                            space page
              000000D1       FRMPPGM        X'D1' FRMPPGM Frame is a pageable
                                            PGMBK
              000000D1       FRMPPGM1       FRMPPGM FRMPPGM1 First frame of a
                                            pageable PGMBK
              000000D5       FRMPPGM2       X'D5' FRMPPGM2 Second frame of a
                                            pageable PGMBK
              0000007D       FRMPDISO       X'7D' FRMPDISO Isolate FRMUSER
                                            and FRMDTSP fields of FRMCSB4G.
                                            This is done to allow code to
                                            test, for either FRMUSER *or*
                                            FRMDTSP being on with one
                                            instruction.
              000000FF       FRMNEVER       X'FF' FRMNEVER Equate to reserve
                                            a value which will never be a
                                            valid frame usage code.
    001C   28 Bitstring    1 *              The actual byte
          These codes are primarily static frame use codes.
          Some codes are defined in HCPEQUAT (those which have their
          definitions commented out here).
          The following frames can be stolen by the steal task:
              FRMUSER  - Both private and shared frames
              FRMDTSP  - Data space frames (private and shared)
              FRMSUSER - System user frames
              FRMSVDSK - Vdisk space frames (system owned)
              FRMSUTIL - System utility frames
              FRMPPGM  - Pageable PGMBK blocks
              FRMPPGM1 - Pageable PGMBK blocks (1st page)
              FRMPPGM2 - Pageable PGMBK blocks (2nd page)
          The following frames can be stolen by the Mini-Disk-Cache
          (MDC) steal task:
              FRMFTADD - Mini-Disk Cache address space pages.
          All the rest cannot be stolen.
                                     never been passed out for use.
    001D   29 Bitstring    1 FRMCSB1 (0)
              .1.. ....      FRMAGING       X'40' FRMAGING Frame is on the
                                            global IBR aging list (mutually
                                            exclusive with FRMOWNED bit)
              ..1. ....      FRMOWNED       X'20' FRMOWNED Frame is on a user
                                            owned list
              ...1 ....      FRMSHARE       X'10' FRMSHARE Frame is shared
                                            storage frame
              .... 1...      FRMRONLY       X'08' FRMRONLY Frame is a read
                                            only frame (e.g., the frame is
                                            being used to back a read only
                                            page, PAGGPROT should be set in
                                            the associated PTE pointed to by
                                            FRMPTEG)
              .... .1..      FRMSXS         X'04' FRMSXS Frame is in SXS and
                                            managed via SXS page management
                                            table. If on for a pageable type
                                            frame code FRMTE, the pageable
                                            page is aliased into the System
                                            Execution Space. If on for a
                                            non-pageable type frame code
                                            FRMTE, the frame is backing an
                                            normal allocated System Execution
                                            Space page (such as free storage,
                                            for example)
              .... ..1.      FRMONQUE       X'02' FRMONQUE Frame is currently
                                            on a queue or list. Check the
                                            frame code to determine what
                                            queue frame is on. FRMAFR - The
                                            absolute aligned free storage
                                            queue. FRMPPGM - The deferred
                                            PGMBK paging list or the paged
                                            PGMBK aging list FRMNPGM - The
                                            list of FRMTEs containing
                                            previously deallocated PTRM PTEs
                                            below current pointer.
              .... ...1      FRMERROR       X'01' FRMERROR Frame is in error
                                            (storage check)
    001D   29 Bitstring    1 FRMCSB5G (0)   Compare and swap dword byte 5
                                            Compare and swap not necessarily
                                            required to alter these bits.
              .1.. ....      FRMAGING       X'40' FRMAGING Frame is on the
                                            global IBR aging list (mutually
                                            exclusive with FRMOWNED bit)
              ..1. ....      FRMOWNED       X'20' FRMOWNED Frame is on a user
                                            owned list
              ...1 ....      FRMSHARE       X'10' FRMSHARE Frame is shared
                                            storage frame
              .... 1...      FRMRONLY       X'08' FRMRONLY Frame is a read
                                            only frame (e.g., the frame is
                                            being used to back a read only
                                            page, PAGGPROT should be set in
                                            the associated PTE pointed to by
                                            FRMPTEG)
              .... .1..      FRMSXS         X'04' FRMSXS Frame is in SXS and
                                            managed via SXS page management
                                            table. If on for a pageable type
                                            frame code FRMTE, the pageable
                                            page is aliased into the System
                                            Execution Space. If on for a
                                            non-pageable type frame code
                                            FRMTE, the frame is backing an
                                            normal allocated System Execution
                                            Space page (such as free storage,
                                            for example)
              .... ..1.      FRMONQUE       X'02' FRMONQUE Frame is currently
                                            on a queue or list. Check the
                                            frame code to determine what
                                            queue frame is on. FRMAFR - The
                                            absolute aligned free storage
                                            queue. FRMPPGM - The deferred
                                            PGMBK paging list or the paged
                                            PGMBK aging list FRMNPGM - The
                                            list of FRMTEs containing
                                            previously deallocated PTRM PTEs
                                            below current pointer.
              .... ...1      FRMERROR       X'01' FRMERROR Frame is in error
                                            (storage check)
    001D   29 Bitstring    1 *              The actual byte
          These bits are primarily static frame flag bits
    001E   30 Bitstring    1 FRMCSB2 (0)
              1... ....      FRMFXASA       X'80' FRMFXASA Indicates PTE
                                            associated with this FRMTE has a
                                            fixed ASA. This flag is used by
                                            slot alloc (HCPPGT) to keep track
                                            of which FRMTEs need ASAs.
              .1.. ....      FRMNOOWN       X'40' FRMNOOWN Frame is no-owned.
              ..1. ....      FRMRFRSH       X'20' FRMRFRSH Frame data is
                                            invalid. The frame must be
                                            refreshed before being used.
              ...1 ....      FRMCTG         X'10' FRMCTG Frame resides on a
                                            contiguous uncleared available
                                            list
              .... ...1      FRMLAVL        X'01' FRMLAVL Frame resides on
                                            local available list. This bit
                                            can only be on for frames marked
                                            as available (FRMAVAIL bit is
                                            on.) Frames reside on the global
                                            available list when FRMAVAIL is
                                            on and FRMLAVL is off. Note:
                                            FRMLAVL+FRMAVAIL+FRMSTEAL is used
                                            by frame table scan to remember
                                            that a frame was removed from an
                                            available list. If the attempt is
                                            aborted, FRMLAVL is turned off,
                                            and the frame is returned to an
                                            available list.
    001E   30 Bitstring    1 FRMCSB6G (0)   Compare and swap dword byte 6
                                            Compare and swap not necessarily
                                            required to alter these bits.
              1... ....      FRMFXASA       X'80' FRMFXASA Indicates PTE
                                            associated with this FRMTE has a
                                            fixed ASA. This flag is used by
                                            slot alloc (HCPPGT) to keep track
                                            of which FRMTEs need ASAs.
              .1.. ....      FRMNOOWN       X'40' FRMNOOWN Frame is no-owned.
              ..1. ....      FRMRFRSH       X'20' FRMRFRSH Frame data is
                                            invalid. The frame must be
                                            refreshed before being used.
              ...1 ....      FRMCTG         X'10' FRMCTG Frame resides on a
                                            contiguous uncleared available
                                            list
              .... ...1      FRMLAVL        X'01' FRMLAVL Frame resides on
                                            local available list. This bit
                                            can only be on for frames marked
                                            as available (FRMAVAIL bit is
                                            on.) Frames reside on the global
                                            available list when FRMAVAIL is
                                            on and FRMLAVL is off. Note:
                                            FRMLAVL+FRMAVAIL+FRMSTEAL is used
                                            by frame table scan to remember
                                            that a frame was removed from an
                                            available list. If the attempt is
                                            aborted, FRMLAVL is turned off,
                                            and the frame is returned to an
                                            available list.
    001E   30 Bitstring    1 *              The actual byte
          These bits denote dynamic frame states
          FRMCSB7G FRMTE serialization byte.  Contains the four
          mutually exclusive FRMTE serialization bits.
          See the serialization section of this part prologue for a
          detailed discussion of FRMTE serialization rules.
          WARNING: Do *NOT* change any FRMTE serialization code
                   without first *THOROUGHLY* understanding the
                   FRMTE serialization rules!!!!!!!!!!!!!!!!!!!
    001F   31 Bitstring    1 FRMCSB3 (0)
              1... ....      FRMAVAIL       X'80' FRMAVAIL Frame is on the
                                            global available list, local
                                            available list, or a
                                            processor-local processed list.
                                            FRMPTEG must be cleared and
                                            FRMAVAIL must be set to one when
                                            a frame is on the global
                                            available list. FRMPTEG must be
                                            cleared plus FRMAVAIL, FRMLAVAL,
                                            and FRMUSER must be set to one
                                            when a frame is on the local
                                            available list. FRMPTEG must be
                                            non-zero plus FRMAVAIL, FRMLAVL,
                                            and FRMUSER must be set to one
                                            when a frame is on a processor
                                            local processed list.
              .1.. ....      FRMTRANS       X'40' FRMTRANS Frame is being
                                            translated
              ..1. ....      FRMRELSE       X'20' FRMRELSE Frame is being
                                            released
              ...1 ....      FRMSTEAL       X'10' FRMSTEAL Frame is being
                                            stolen Note: This state
                                            (FRMSTEAL) is sometimes used in
                                            situations where it is not
                                            feasible to use the locked/pinned
                                            frame interface. An example is
                                            HCPPAF saving pages on behalf of
                                            a guest request. Note: This state
                                            (FRMSTEAL) is used in situations
                                            where a FRMTE has just been
                                            removed from an available list,
                                            or is about to be coalesced back
                                            to the available lists, and is
                                            not otherwise serialized. END OF
                                            DEFINITION FOR FRAME TABLE
                                            ENTRIES
    001F   31 Bitstring    1 FRMCSB7G (0)   Compare and swap dword byte 7
              1... ....      FRMAVAIL       X'80' FRMAVAIL Frame is on the
                                            global available list, local
                                            available list, or a
                                            processor-local processed list.
                                            FRMPTEG must be cleared and
                                            FRMAVAIL must be set to one when
                                            a frame is on the global
                                            available list. FRMPTEG must be
                                            cleared plus FRMAVAIL, FRMLAVAL,
                                            and FRMUSER must be set to one
                                            when a frame is on the local
                                            available list. FRMPTEG must be
                                            non-zero plus FRMAVAIL, FRMLAVL,
                                            and FRMUSER must be set to one
                                            when a frame is on a processor
                                            local processed list.
              .1.. ....      FRMTRANS       X'40' FRMTRANS Frame is being
                                            translated
              ..1. ....      FRMRELSE       X'20' FRMRELSE Frame is being
                                            released
              ...1 ....      FRMSTEAL       X'10' FRMSTEAL Frame is being
                                            stolen Note: This state
                                            (FRMSTEAL) is sometimes used in
                                            situations where it is not
                                            feasible to use the locked/pinned
                                            frame interface. An example is
                                            HCPPAF saving pages on behalf of
                                            a guest request. Note: This state
                                            (FRMSTEAL) is used in situations
                                            where a FRMTE has just been
                                            removed from an available list,
                                            or is about to be coalesced back
                                            to the available lists, and is
                                            not otherwise serialized. END OF
                                            DEFINITION FOR FRAME TABLE
                                            ENTRIES
    001F   31 Bitstring    1 *              The actual byte
          These bits are used to serialize frame state changes
          Redefinition for frames that are not chained.
    0000    0 Signed       4 *              Reserved for IBM use
    0004    4 Signed       4 FRMID          4 character identifier
                                            Identifiers used in FRMID There
                                            identifiers are for visual
                                            recognition and are not intended
                                            to be used as flags. '*CP*' Frame
                                            in use by control program 'TRAC'
                                            CP trace table page 'FREE' Frame
                                            in use for free storage Refer to
                                            FRMSXSTE to identify the SXSTE
                                            that describes the page. 'AFR '
                                            Aligned absolute free storage
                                            'SXSA' SXS Page on available
                                            backed Q '*VF*' Virtual = Fixed
                                            user frame 'OFLN' Frame is
                                            offline and unavailable 'PRFX'
                                            Prefix page frame ' ' Locked user
                                            frame 'PPGM' Pageable PGMBK
                                            'NPGM' Non-pageable PGMBK 'FTBL'
                                            FTC segment or page table frame
                                            '*RFT' Host Region First Table
                                            frame '*RST' Host Region Second
                                            Table frame '*RTT' Host Region
                                            Third Table frame '*SEG' Host
                                            Segment Table frame 'XDAT' SXS
                                            DAT table frame 'MPWD' CP frame
                                            in use by HCPDMP for a contiguous
                                            ID-mapped buffer.
              00C4D4D7       FRMIDSDMP      C'SDMP' Stand-alone dump
                                            crashkernel reserved area.
                                     Note that FRMCSB4G still == FRMCP
                                     for FRMTEs marked with *RTF,
                                     *RTS, *RTT, *SEG, FRMT, SXST,
                                     XDAT, MPWB, and SDMP eyecatchers.
    0008    8 Signed       4 *              Reserved for IBM use
    000C   12 Signed       4 *              Reserved for IBM use
    0010   16 Address      8 *              Reserved for IBM use
    0018   24 Signed       8 *              FRMSTATEG (flags and status bits)
          Redefinition for absolute aligned free storage frames
    0000    0 Address      8 FRMFRNXTG      Next FRMTE with available blocks
    0008    8 Bitstring    1 FRMFSFLG       Free storage flag byte
              1... ....      FRMB2GANY      X'80' FRMB2GANY Free storage page
                                            <2G but was obtained for ANY
                                            request
    0009    9 Bitstring    1 * (3)          Reserved for IBM use
    000C   12 Signed       2 FRMVMFRG       Fragment size
    000E   14 Signed       2 FRMDWUSE       Doublewords of storage in use
    0010   16 Address      8 FRMCHNG        Pointer to first free storage
                                            available block in this frame for
                                            real aligned free storage frames.
    0010   16 Signed       4 *              Reserved for IBM use
    0014   20 Address      4 FRMCHN         The FRMCHN field is used when
                                            contiguous frames are allocated
                                            and released by HCPPTEMF and
                                            HCPPTECR respectively. When used
                                            for this reason, FRMCHN will
                                            contain a number indicating the
                                            total number of contiguous frames
                                            in a contiguous set (from lowest
                                            to highest FRMTE address.) An
                                            allocated single frame may have a
                                            FRMCHN value of zero (indicating
                                            it was allocated via HCPPTFGF) or
                                            one (indicating it was allocated
                                            via HCPPTEMF). For this usage,
                                            FRMCHN must be signed positive
                                            value.
                                     Also, bytes 0 and 1 of this field
                                     contain the offset of the 1st
                                     free page table entry available
                                     in this frame (for non-
                                     pageable PGMBK frames only - NPGM)
                                     which were previously deallocated.
    0018   24 Signed       8 *              FRMSTATEG (flags and status bits)
          Redefinition for host DAT (region/segment) table frames
          This redefinition does not apply to System Execution Space
          (SXS) DAT tables with FRMID='XDAT'.
    0000    0 Signed       4 *              Reserved for IBM use
    0004    4 Signed       4 *              FRMID: eyecatcher, see FRMID
                                            definition above
    0008    8 Address      8 FRMHDPBKG      Pointer to Host DAT table
                                            Programming area block for the
                                            DAT table associated with this
                                            frame. Filled in for each FRMTE
                                            for multi-frame DAT tables.
    0010   16 Address      8 *              FRMCHNG: for multi-frame host DAT
                                            tables, contains the number of
                                            contiguous frames starting at and
                                            including this frame, by
                                            ascending address
    0018   24 Signed       8 *              FRMSTATEG: as above
          Redefinition for non-pageable frame code types for frames
          used to back normal allocated System Execution Space pages
          (not alias SX pages of resident pageable pages).  These
          frames are mapped into the SXS and described by the System
          Execution Space Page Management Tables.
          This redefinition only applies when:
            FRMSXS   = 1
            FRMCSB0  = (any non-pageable frame code)
    0010   16 Address      8 FRMSXSTE       Address of the SXSTE that
                                            describes the SXS page that this
                                            frame is associated with in the
                                            SXS DAT tables.
          Redefinition for frame table and SXS page mgt table frames.
          This redefinition only applies when:
            FRMCSB0  = x'11' (FRMSXSTB) or x'41' (FRMFRMTB)
          This redefinition applies to frames used for both SXSTB and
          FRMTB, however the FRMTENXT chains are different for each.
          See RSAFTOFTE and RSASTOFTE chain anchors. These chains are
          used in dump processing.
          These FRMTEs are initialized during system initialization
          and remain unchanged for the life of the system.
    0000    0 Bitstring    1 *              Reserved for FRMDUMP
    0001    1 Bitstring    1 *              Reserved for IBM use.
    0002    2 Bitstring    2 *              Reserved for expansion of
                                            FRMPGNUM size.
    0004    4 Signed       4 FRMPGNUM       Frame count into FRMTB in the SXS
                                            address order. Frames that
                                            contain FRMTEs for the FRMTB have
                                            FRMTEs. Every frame is controlled
                                            by a FRMTE. Say that the first
                                            FRMTE is at HLA 300_00000000.
                                            That FRMTE is somewhere in
                                            storage. We can LRAG and get the
                                            HRA. Let's say HLA 300_00000000
                                            is backed by the real frame at
                                            83283000. That's a frame in
                                            storage, so there is a FRMTE that
                                            describes it. That FRMTE is found
                                            by AEFRM 83283000. Let's say that
                                            AEFRM gives us 300_01065060.
                                            300_01065060 is the FRMTE for the
                                            1st frame of the FRMTB. Its
                                            FRMPGNUM is 00000000. And where
                                            is this FRMTE in the dump? LRAG
                                            300_01065060 tells us. Let's
                                            pretend that LRAG gives us
                                            8279A060.
                  The 2nd frame of FRMTEs is at 300_00001000, the
                  next page HLA.  LRAG can get us its HRA.  Let's
                  say that HRA is 78987000.  Notice there is no
                  connection to the HRA of the first frame.  The
                  backing frames can be anywhere.  78987000 is
                  described by a FRMTE.  AEFRM 78987000 gives us
                  its FRMTE, 300_00F130E0.  300_00F130E0 is the
                  FRMTE for the 2nd frame of the FRMTB.  Its
                  FRMPGNUM is 00000001.  And where is this FRMTE in
                  the dump?  LRAG 300_00F130E0 tells us.  Let's
                  pretend that LRAG gives us 82F450E0.
                  If the DAT tables are broken, then we can't use
                  LRAG.  We might know from PFXFTBLG that the 1st
                  FRMTE is at HLA 300_00000000, but without LRAG
                  we'll never find it in the dump.  That's where
                  RSAFTOFTE and FRMTENXT come in.  When the FRMTB
                  was built, it was determined that the 1st frame
                  of FRMTEs was at HRA 83283000.  Dump processing,
                  and the VM Dump Tool, can use RSAFTOFTE to find
                  that 1st frame of FRMTEs.
                  At initialization RSAFTOFTE is initialized:
                    LRAG 300_00000000 --> 83283000,
                    AEFRM 83283000 --> 300_01065060.
                    LRAG 300_01065060 --> 8279A060.
                  This value 8279A060 is stored in RSAFTOFTE.
                  At HRA 8279A060, 128 FRMTEs of the FRMTB can be
                  found.  The next real frame of FRMTEs is found
                  from chained the 1st FRMTE of the FRMTB.
                  8279A060 points to the FRMTE for the 2nd frame of
                  the FRMTB, 82F450E0.
                  This is what these 2 FRMTEs would look like
                    R8279A060 00000000 00000000 00000000 82F450E0
                              00000000 83283000 00000000 41000000
                    R82F450E0 00000000 00000001 00000000 nxtFRMTE
                              00000000 78987000 00000000 41000000
                  The FRMTE at R8279A060 has HRA to the next FRMTE
                  00000000_82F450E0 as well as the HRA for the
                  original HLA (300_00000000 --> 00000000_83283000)
                  And so on.
                  So, if DAT does not work, one could chase the
                  chain anchored at RSAFTOFTE.  To find the frame
                  of FRMTEs for some page of FRMTEs, say
                  300_01000000), one would determine how many of
                  these chained FRMTEs to chase:
                      300_01200000 - PFXFTBLG, which is probably
                      300_01200000 - 300_00000000 = 01200000
                      shift right 12 bits = x1200
                  So, one would chase x1200 FRMTENXT pointers to
                  get to the FRMTE with FRMPGNUM = x11FF.
                  RSASTOFTE anchors an analogous chain for the FRMTEs
                  of the frames that contain the SXSTB.
    0008    8 Address      8 FRMTENXT       Host real address of the FRMTE
                                            describing the next frame used
                                            for the frame table in order by
                                            frame table logical address. End
                                            of chain is indicated by
                                            x'FFFFFFFFFFFFFFFF'.
    0010   16 Address      8 FRMFRMAD       Host real address of the frame
                                            described by this FRMTE.
    0018   24 Signed       8 *              FRMSTATEG: as above
          Redefinition used during CP dump processing.
          This redefinition should never be used to modify FRMTEs in
          the frame table that will continue to be used by CP because
          it overlays the first byte of the FRMTE regardless of what
          the FRMTE is being used for. It is intended as a means of
          passing information to the dump tool that is not otherwise
          in the dump. The dump tool will adjust its reading of FRMTEs
          using this redefinition. This means that any uses of the
          first word or doubleword need to omit the first byte.
          Snapdump will also want to include this information in the
          FRMTEs, but the real frame table contents need to be left
          unchanged because the system will continue to run. Snapdump
          will use a work area to modify frame table frames before
          writing them to the dump.
          This redefinition does not cause a loss of information for
          any current usage since the first byte is used as part of
          doubleword pointer. The valid range of addresses used in
          the pointer are currently below 128G and dependent on the
          supported real storage size. The pointer may also contain a
          x'FFFFFFFFFFFFFFFF' (-1).  Therefore the first byte will be
          either x'00' or x'FF' when it is used elsewhere. The data
          in the first byte is insignificant and can be discarded.
          Simple sign extension from the remaining portion of the
          address can be used to restore the first byte. If bit 8 is
          on then the pointer would have been a -1, otherwise the byte
          would have contained x'00'.  The approach of using sign
          extension out of bit 8 is valid until the supported size of
          real storage increases beyond the 16 petabyte range.
          Any changes to the FRMTE must ensure that they do not result
          in a loss of information needed in dump analysis because of
          the overlay on the first byte.
    0000    0 Bitstring    1 FRMDUMP        Frame info for dump processing.
              1111 111.      FRMKEY         X'FE' FRMKEY Mask to isolate key
                                            from FRMDUMP. Bits 0-6 for key +
                                            FRC bits.
              .... ...1      FRMDUMPD       X'01' FRMDUMPD Mask to isolate
                                            bit indicating whether frame
                                            contents are in the storage dump
                                            portion of CP dump.
          Redefinition for PTRM PTE serialization.  This is needed
          because a PTRM PTE represents 2 frames of data (a pageable
          PGMBK).  If these 2 frames of data are acted on by
          different threads (say for independent I/O operations),
          they can both think they hold the serialization reflected
          in the PTRM PTE.  To avoid this, any I/O process for
          pageable PGMBKs must first get this spin lock, thereby
          giving that thread the rights to the PTRM PTE and blocking
          all other processes from using the PTRM PTE.  After the
          process is finished with the PTRM PTE, this spin lock is
          released.
    0018   24 Signed       4 FRMPPPLK       Fullword spin lock field. Should
                                            either contain binary zeros, or
                                            the address of the instruction
                                            (or one near it) that acquired
                                            the lock. Simple spin lock,
                                            acquired by CS instruction and
                                            released by storing binary zeros.
                                            Note that this field will ONLY be
                                            used in the 2nd FRMTE of the
                                            contiguous pair of FRMTEs that
                                            represent the frames of the
                                            pageable PGMBK.
          Redefinition for stand-alone dump crashkernel memory FRMTEs
    0000    0 Signed       4 *              Reserved for IBM use.
    0004    4 Signed       4 *              FRMID=FRMIDSDMP 'SDMP'.
    0008    8 Signed       4 *              Reserved for IBM use.
    000C   12 Signed       4 FRMSDMPPG      Page index into the stand-alone
                                            dump crashkernel reserved area.
    0010   16 Address      8 *              Reserved for IBM use.
    0018   24 Signed       8 *              FRMSTATEG: FRMCP only.

FRMTE Storage Layout | Top of page

    *** FRMTE - FRAME TABLE ENTRY
    *
    *     +-------------------------------------------------------+
    *   0 |                       FRMFPNTG                        |
    *     +-------------------------------------------------------+
    *   8 |                       FRMBPNTG                        |
    *     +-------------------------------------------------------+
    *  10 |                       FRMPTEG                         |
    *     +-------------------------------------------------------+
    *  18 |                      FRMSTATEG                        |
    *     +-------------------------------------------------------+
    *
    *** FRMTE - FRAME TABLE ENTRY

    *** Overlay for FRMBPNTG in FRMTE
    *
    *     +---------------------------+---------------------------+
    *   8 |///////////////////////////|         FRMBPNT1          |
    *     +---------------------------+---------------------------+
    *  10
    *
    *** Overlay for FRMBPNTG in FRMTE

    *** Overlay for FRMBPNT1 in FRMTE
    *
    *                                 +--------------------+------+
    *   8 ...                       C |////////////////////|:BFLAG|
    *                                 +--------------------+------+
    *  10
    *
    *** Overlay for FRMBPNT1 in FRMTE

    *** Overlay for FRMFPNTG in FRMTE
    *
    *     +-------------------------------------------------------+
    *   0 |///////////////////////////////////////////////////////|
    *     +---------------------------+-------------+------+------+
    *   8 |///////////////////////////|  FRMTCSTE   |:PSCT |:ASSEL|
    *     +---------------------------+-------------+------+------+
    *  10 |///////////////////////////|          FRMSTO           |
    *     +---------------------------+---------------------------+
    *  18 |///////////////////////////////////////////////////////|
    *     +-------------------------------------------------------+
    *  20
    *
    *** Overlay for FRMFPNTG in FRMTE

    *** Overlay for FRMPTEG in FRMTE
    *
    *     +---------------------------+-------------+-------------+
    *  10 |///////////////////////////|  FRMPS1ST   |  FRMPSLST   |
    *     +---------------------------+-------------+-------------+
    *  18
    *
    *** Overlay for FRMPTEG in FRMTE

    *** Overlay for FRMPTEG in FRMTE
    *
    *     +---------------------------+---------------------------+
    *  10 |///////////////////////////|         FRMDCKEY          |
    *     +---------------------------+---------------------------+
    *  18
    *
    *** Overlay for FRMPTEG in FRMTE

    *** Overlay for FRMFPNTG in FRMTE
    *
    *     +-------------------------------------------------------+
    *   0 |///////////////////////////////////////////////////////|
    *     +-------------------------------------------------------+
    *   8 |///////////////////////////////////////////////////////|
    *     +-------------------------------------------------------+
    *  10 |                       FRMEMPGM                        |
    *     +-------------------------------------------------------+
    *  18 |///////////////////////////////////////////////////////|
    *     +-------------------------------------------------------+
    *  20
    *
    *** Overlay for FRMFPNTG in FRMTE

    *** Overlay for FRMSTATEG in FRMTE
    *
    *     +--------------------+------+
    *  18 |      FRMSXPN       |//////| 1C
    *     +--------------------+------+
    *
    *** Overlay for FRMSTATEG in FRMTE

    *** Overlay for FRMSTATEG in FRMTE
    *
    *     +------+------+-------------+------+------+------+------+
    *  18 |:IBKEY|:IBFLG|  FRMAGLSV   |//////|//////|//////|//////|
    *     +------+------+-------------+------+------+------+------+
    *  20
    *
    *** Overlay for FRMSTATEG in FRMTE

    *** Overlay for FRMGORGIN in FRMTE
    *
    *     +---------------------------+---------------------------+
    *   0 |///////////////////////////|          FRMID            |
    *     +---------------------------+---------------------------+
    *   8 |///////////////////////////|///////////////////////////|
    *     +---------------------------+---------------------------+
    *  10 |///////////////////////////////////////////////////////|
    *     +-------------------------------------------------------+
    *  18 |///////////////////////////////////////////////////////|
    *     +-------------------------------------------------------+
    *  20
    *
    *** Overlay for FRMGORGIN in FRMTE

    *** Overlay for FRMGORGIN in FRMTE
    *
    *     +-------------------------------------------------------+
    *   0 |                      FRMFRNXTG                        |
    *     +------+--------------------+-------------+-------------+
    *   8 |:FSFLG|////////////////////|  FRMVMFRG   |  FRMDWUSE   |
    *     +------+--------------------+-------------+-------------+
    *  10 |                       FRMCHNG                         |
    *     +-------------------------------------------------------+
    *  18
    *
    *** Overlay for FRMGORGIN in FRMTE

    *** Overlay for FRMCHNG in FRMTE
    *
    *     +---------------------------+---------------------------+
    *  10 |///////////////////////////|          FRMCHN           |
    *     +---------------------------+---------------------------+
    *  18 |///////////////////////////////////////////////////////|
    *     +-------------------------------------------------------+
    *  20
    *
    *** Overlay for FRMCHNG in FRMTE

    *** Overlay for FRMGORGIN in FRMTE
    *
    *     +---------------------------+---------------------------+
    *   0 |///////////////////////////|///////////////////////////|
    *     +---------------------------+---------------------------+
    *   8 |                      FRMHDPBKG                        |
    *     +-------------------------------------------------------+
    *  10 |///////////////////////////////////////////////////////|
    *     +-------------------------------------------------------+
    *  18 |///////////////////////////////////////////////////////|
    *     +-------------------------------------------------------+
    *  20
    *
    *** Overlay for FRMGORGIN in FRMTE

    *** Overlay for FRMPTEG in FRMTE
    *
    *     +-------------------------------------------------------+
    *  10 |                       FRMSXSTE                        |
    *     +-------------------------------------------------------+
    *  18
    *
    *** Overlay for FRMPTEG in FRMTE

    *** Overlay for FRMGORGIN in FRMTE
    *
    *     +------+------+-------------+---------------------------+
    *   0 |//////|//////|/////////////|         FRMPGNUM          |
    *     +------+------+-------------+---------------------------+
    *   8 |                       FRMTENXT                        |
    *     +-------------------------------------------------------+
    *  10 |                       FRMFRMAD                        |
    *     +-------------------------------------------------------+
    *  18 |///////////////////////////////////////////////////////|
    *     +-------------------------------------------------------+
    *  20
    *
    *** Overlay for FRMGORGIN in FRMTE

    *** Overlay for FRMGORGIN in FRMTE
    *
    *     +------+
    *   0 |:DUMP | 1
    *     +------+
    *
    *** Overlay for FRMGORGIN in FRMTE

    *** Overlay for FRMSTAW0 in FRMTE
    *
    *     +---------------------------+
    *  18 |         FRMPPPLK          | 1C
    *     +---------------------------+
    *
    *** Overlay for FRMSTAW0 in FRMTE

    *** Overlay for FRMGORGIN in FRMTE
    *
    *     +---------------------------+---------------------------+
    *   0 |///////////////////////////|///////////////////////////|
    *     +---------------------------+---------------------------+
    *   8 |///////////////////////////|        FRMSDMPPG          |
    *     +---------------------------+---------------------------+
    *  10 |///////////////////////////////////////////////////////|
    *     +-------------------------------------------------------+
    *  18 |///////////////////////////////////////////////////////|
    *     +-------------------------------------------------------+
    *  20
    *
    *** Overlay for FRMGORGIN in FRMTE

FRMTE Cross Reference | Top of page

    Symbol         Dspl Value
    -------------- ---- -----
    FRMAdrMk       0018 0000001F
    FRMAGING       001D 40
    FRMAGING       001D 40
    FRMAGLSV       001A
    FRMALTMV       000F FD
    FRMALTPG       000F FE
    FRMASSEL       000F
    FRMAVAIL       001F 80
    FRMAVAIL       001F 80
    FRMBFLAG       000F
    FRMBPNTG       0008
    FRMBPNT1       000C
    FRMB2GANY      0008 80
    FRMCHN         0014
    FRMCHNG        0010
    FRMCPAvl       001C 00000004
    FRMCPAvl       001C 00000004
    FRMCSB0        001C
    FRMCSB1        001D
    FRMCSB2        001E
    FRMCSB3        001F
    FRMCSB4G       001C
    FRMCSB5G       001D
    FRMCSB6G       001E
    FRMCSB7G       001F
    FRMCSWRD       001C
    FRMCTG         001E 10
    FRMCTG         001E 10
    FRMDCKEY       0014
    FRMDTSP        001C 00000082
    FRMDTSP        001C 00000082
    FRMDUMP        0000
    FRMDUMPD       0000 01
    FRMDWUSE       000E
    FRMEMPGM       0010
    FRMENCPT       0019 01
    FRMERROR       001D 01
    FRMERROR       001D 01
    FRMFPNTG       0000
    FRMFRMAD       0010
    FRMFRMTB       001C 00000041
    FRMFRMTB       001C 00000041
    FRMFRNXTG      0000
    FRMFSFLG       0008
    FRMFTADD       001C 00000088
    FRMFTADD       001C 00000088
    FRMFTPF        000F FF
    FRMFTTBL       001C 00000009
    FRMFTTBL       001C 00000009
    FRMFXASA       001E 80
    FRMFXASA       001E 80
    FRMGORGIN      0000
    FRMHDPBKG      0008
    FRMIBFLG       0019
    FRMIBKEY       0018
    FRMID          0004
    FRMIDSDMP      0004 00C4D4D7
    FRMIOAT        001C 00000014
    FRMIOAT        001C 00000014
    FRMKEY         0000 FE
    FRMLenSh       0018 00000005
    FRMLAVL        001E 01
    FRMLAVL        001E 01
    FRMLENTH       0018 00000020
    FRMMDCHT       001C 0000000D
    FRMMDCHT       001C 0000000D
    FRMNEVER       001C 000000FF
    FRMNEVER       001C 000000FF
    FRMNEXTG       0020
    FRMNOOWN       001E 40
    FRMNOOWN       001E 40
    FRMNOTI        001C 00000005
    FRMNOTI        001C 00000005
    FRMNPGM        001C 00000051
    FRMNPGM        001C 00000051
    FRMNPGM1       001C 00000051
    FRMNPGM1       001C 00000051
    FRMNPGM2       001C 00000055
    FRMNPGM2       001C 00000055
    FRMOFFLN       001C 00000010
    FRMOFFLN       001C 00000010
    FRMONQUE       001D 02
    FRMONQUE       001D 02
    FRMOWNED       001D 20
    FRMOWNED       001D 20
    FRMPDISO       001C 0000007D
    FRMPDISO       001C 0000007D
    FRMPGNUM       0004
    FRMPPGM        001C 000000D1
    FRMPPGM        001C 000000D1
    FRMPPGM1       001C 000000D1
    FRMPPGM1       001C 000000D1
    FRMPPGM2       001C 000000D5
    FRMPPGM2       001C 000000D5
    FRMPPPLK       0018
    FRMPRFX        001C 00000031
    FRMPRFX        001C 00000031
    FRMPSCT        000E
    FRMPSLST       0016
    FRMPS1ST       0014
    FRMPTEG        0010
    FRMRCPHC       0019 20
    FRMRELSE       001F 20
    FRMRELSE       001F 20
    FRMRFRSH       001E 20
    FRMRFRSH       001E 20
    FRMRONLY       001D 08
    FRMRONLY       001D 08
    FRMSDMPPG      000C
    FRMSHARE       001D 10
    FRMSHARE       001D 10
    FRMSTATEG      0018
    FRMSTAW0       0018
    FRMSTEAL       001F 10
    FRMSTEAL       001F 10
    FRMSTO         0014
    FRMSTOG        0010
    FRMSUTIL       001C 00000083
    FRMSUTIL       001C 00000083
    FRMSVDSK       001C 000000C3
    FRMSVDSK       001C 000000C3
    FRMSXPN        0018
    FRMSXPNM       0018 00FFF000
    FRMSXPNMH      0018 00007FFF
    FRMSXPNML      0018 0000F000
    FRMSXS         001D 04
    FRMSXS         001D 04
    FRMSXSTB       001C 00000011
    FRMSXSTB       001C 00000011
    FRMSXSTE       0010
    FRMTCSTE       000C
    FRMTENXT       0008
    FRMTRANS       001F 40
    FRMTRANS       001F 40
    FRMVMFRG       000C
    FRMVR          001C 00000040
    FRMVR          001C 00000040
    TCHASPAC       000F C0
    TCHIXMSK       000F 3F

This information is based on z/VM 7.2.0 Last updated on 24 Jun 2020 at 09:28:24 EDT.
Copyright IBM Corporation, 1990, 2020