Programming Interface Information: This information is NOT intended to be
used as Programming Interfaces of VM/ESA. It is to be used for diagnosis only.

FRMTE

Prolog  

Control Block Contents  

FRMTE DSECT

Storage Layout  

Cross Reference (Contains links to field and bit definitions)  

FRMTE Prolog

 NAME       : HCPFRMTE
 DESCRIPTION: FRAME TABLE ENTRY
 DSECT      : FRMTE
 FUNCTION   : A FRAME TABLE ENTRY DESCRIBES ONE 4K ALIGNED
              BLOCK OF REAL STORAGE.
 LOCATED BY : PFXFTBL + (REAL FRAME ADDRESS / 4096 * 16)
              VMDFR1ST  USER OWNED FRAME FORWARD ANCHOR
              VMDFRLST  USER OWNED FRAME BACKWARD ANCHOR
              FRMFPNT   FIELD OF HCPFRMTE FOR CHAINED FRAMES
              FRMBPNT   FIELD OF HCPFRMTE FOR CHAINED FRAMES
              FRMFRNXT  FREE STORAGE FRMTE FORWARD POINTER
              SUBANCH   SUBBK FRMTE LIST ANCHOR
 CREATED BY : HCPIST    ENTRIES INITIALIZED AT STORAGE INIT
 DELETED BY : NONE
 NOTES      : THE FRMTES ARE CONTAINED IN THE FRAME TABLE.
              SPACE FOR THE FRAME TABLE IS RESERVED AT
              SYSGEN BY HCPGENER.
              THE SPACE FOR THE FRAME TABLE IS NEVER RELEASED.
 Serialized :
                                                              *
    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 FRMCSB3).
    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 FRMCSB3,
    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 FRMCSWRD FRMCSB3.  (The remaining four
    FRMCSB3 bits comprise FRMLTRCT, the frame last translated
    count.  Interactions between FRMLTRCT and the FRMCSB3
    serialization bits are covered below.) 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 FRMCSWRD (and possibly
    FRMPTE as well).
    Generally, only word concurrent interlocked instructions
    should be used to manipulate pageable FRMTEs' FRMCSB3.
    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 FRMCSB3 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 FRMCSB3 serialization bits,
    and use of word concurrent interlocked instructions in
    setting them on.
    A FRMCSB3 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 FRMCSB3 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 FRMCSB3 updates.
    A FRMCSB3 serialization bit may *NOT* be turned off with a
    non-interlocked instruction such as NI if there is any
    possibility that any other task running on another
    processor might be attempting to increment or decrement
    FRMLTRCT (unless that other task will spin waiting for
    whatever FRMCSB3 serialization bit is currently on to be
    turned off).
    FRMLTRCT may only be updated with word concurrent
    interlocked instructions such as CS or CDS.  The CS|CDS
    *MUST* insist that any FRMCSB3 serialization bits *NOT*
    held by the running task be zero before attempting the
    update.  FRMLTRCT may *NOT* be updated, even with CS or
    CDS, if any of the FRMCSB3 serialization bits could be
    changing state; either all four of the bits must be off,
    or one of them (typically FRMRELSE) *MUST* be on and held
    by the executing task across the FRMLTRCT change.  This
    ensures that the running task sees the *RESULT* of any NI
    used to turn off any FRMCSB3 serialization bit that might
    have been held by a task running on another processor, and
    therefore prevents interleaving of processor fetches and
    stores with the execution of the NI on the other processor
    (and the attendant risk of lost FRMCSB3 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 FRMCSB3 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 FRMCSB3
    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 FRMCSB3 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 incorrect FRMLTRCT values
    (causing LTR001 ABENDs or permanently and excessively
    last-translated "locked" pages), various loops and hangs,
    and MCW002 ABENDs, but other symptoms are quite possible.

 

FRMTE Control Block Content


FRMTE DSECT

Hex Dec Type/Val Lng Label (dup) Comments ---- ---- --------- ---- -------------- -------- 0000 0 Structure FRMTE FRAME TABLE ENTRY 0000 0 Signed 4 FRMORGIN (0) FRAME TABLE ENTRY ORIGIN 0000 0 Signed 4 FRMFPNT CHAINED FRAME FORWARD POINTER 0004 4 Signed 4 FRMBPNT CHAINED FRAME BACKWARD POINTER 0008 8 Signed 4 FRMPTE POINTER TO PAGE TABLE ENTRY. THE PTE ADDRESS IS THE SAME AS THE VPGTE ADDRESS FOR THE 4K BLOCK OF VIRTUAL STORAGE, BUT THE VPGTE IS A MORE CONVENIENT MAPPING. FRMPTE must be cleared whenever a frame is put on the global or local available list. 000C 12 Signed 4 FRMCSWRD FRAME STATUS BITS AND FLAGS. ALL BITS ARE CONTAINED IN A SINGLE FULLWORD SO THAT COMPARE AND SWAP 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 00000010 FRMLENTH *-FRMTE LENGTH OF FRAME TABLE ENTRY 0010 16 Signed 4 FRMNEXT (0) NEXT SEQUENTIAL ENTRY FRMBPNT IS SET BY HCPPTTFF (FRONT END OF FASTPATH PAGE FAULT PROCESSOR) TO INDICATE TO HCPPGXPL (BACK END OF FASTPATH PAGE PROCESSOR) WHAT TYPE OF PAGE FAULT OCCURED. FOR A PAGE FAULT SATISFIED BY PGIN OF AN XSTORE BLOCK FROM A NON-ALTERNATE PGMBK, THE XSTORE BLOCK NUMBER IS STORED IN FRMBPNT. IF THE VALUE IN FRMBNTP IS GREATER THAN X'FFFFFFFC', NO XSTORE BLOCK WAS INVOLVED AND FRMBFLAG WILL INDICATE THE TYPE OF PAGE FAULT THAT TOOK PLACE. 0004 4 Bitstring 1 * (3) 0007 7 Bitstring 1 FRMBFLAG FASTPATH STATUS FLAG 1111 11.1 FRMALTMV X'FD' PAGE IN FRAME WAS MOVED FROM A PAGE FOUND IN AN ALTERNATE PGMBK THESE BITS ARE STATIC FRAME FLAG BITS 1111 111. FRMALTPG X'FE' PAGE IN FRAME WAS PGIN'D FROM AN XSTORE BLOCK FOUND IN AN ALTERNATE PGMBK 1111 1111 FRMFTPF X'FF' PAGE IN FRAME WAS CLEARED TO SATISFY A FIRST TIME PAGE FAULT Redefinition for Minidisk Cache (FTC). 0000 0 Signed 4 * Not redefined for MDC, original field name, FRMFPNT, used 0004 4 Signed 2 FRMTCSTE Offset within MDC segment table to the SEGTE that this segment represents (Page table pages only) 0006 6 Bitstring 1 FRMPSCT Count of free PTE sets. Used in garbage collection only. (Page table pages only and must be initialized to 0) 0007 7 Bitstring 1 FRMASSEL Address space selector bits 11.. .... TCHASPAC X'C0' These bits identify the address space used for caching Note: TCMALMSK and TCMALSHF depend on these bits ..11 1111 TCHIXMSK X'3F' Bits to hold DPSBK index See also TCMIXMSK. 0008 8 Signed 4 FRMSTO STO for this address space (Segment table pages only) 000C 12 Signed 4 * May not be redefined for use in any way by MDC. Original field name, FRMCSWRD, and subdefinitions are used. 0008 8 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.) 000A 10 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.) 0008 8 Signed 4 FRMDCKEY MDC hash key here for MDC frames End of redefinition for Minidisk Cache (FTC). The codes that include the x'01' in their definition are a function of the FRMCP bit and are considered to be CP frames. Only frames with FRMCP bit on are included in a CP dump. An exception is VDISK frames, identified by frame code x'C3' (FRMSUTIL + x'40'), which are CP System Utility address space frames, and are CP owned and managed, but contain user data, and are therefore *NOT* included in CP dumps. 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. USER FRAMES ARE ASSOCIATED WITH EACH OTHER BY THE X'80' BIT. 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 frame. 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 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. 000C 12 Bitstring 1 FRMCSB0 COMPARE AND SWAP WORD BYTE 0. COMPARE AND SWAP NOT NECESSARILY REQUIRED TO ALTER THESE BITS. THESE CODES ARE PRIMARILY STATIC FRAME USE CODES 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 USED FRAMES. FRMSUTIL - SYSTEM UTILITY FRAMES. FRMPPGM - PAGEABLE PGMBK BLOCKS. 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. FRMCP EQU X'01' FRAME IN USE BY CONTROL PROGRAM FRMDS EQU X'02' Frame in use for a data spaces .... 1..1 FRMFTTBL X'09' Frame used for MDC segment or page table. .... 11.1 FRMMDCHT X'0D' Frame used for MDC hash table. ...1 .... FRMOFFLN X'10' FRAME IS OFF-LINE AND UNAVAILABLE FRMTRACE EQU X'21' CP TRACE TABLE FRAME ..11 .... FRMR370 X'30' REAL I/O FRAME FOR 370 MODE GUEST FRMPRFX EQU X'31' PREFIX PAGE FRAME .1.. .... FRMVR X'40' VIRTUAL = REAL USER FRAME .1.1 ...1 FRMNPGM X'51' FRAME IS A NON-PAGEABLE PGMBK FRMFREE EQU X'61' FRAME USED FOR FREE STORAGE OR SAVE AREA FRAME .11. ..11 FRMFRVR X'63' FRAME IN USE FOR V=R FREE STORAGE .11. .1.1 FRMFRVM X'65' FRAME USED FOR USER VMDBK FREE Note that if the first (lowest address) block in the frame is not available (that is, is not on the FRMCHAIN chain of available blocks and does not have an active free storage header), it may be an active segment table. .11. .111 FRMFRSY X'67' FRAME USED FOR SYSTEM FREE .11. 1..1 FRMAFS X'69' FRAME USED FOR ALIGNED FREE STORAGE .11. 1.11 FRMVCB X'6B' FRAME USED FOR VERIFIABLE CONTROL BLOCK FREE STORAGE .11. 1111 FRMPERSY X'6F' Frame used for PERSYS (Persistent SYSPERM) free storage FRMUSER EQU X'80' FRAME USED AS USER PAGE FRMSUSER EQU X'81' IN USE AS SYSTEM VIRTUAL PAGE 1... ..1. FRMDTSP X'82' Frame used for a user's data space page 1... ..11 FRMSUTIL X'83' FRAME USED FOR CP UTILITY ADDRESS SPACE PAGE 1... 1... FRMFTADD X'88' Frame is part of the MDC address space. It contains user data. 11.. ..11 FRMSVDSK X'C3' Frame used for VDISK System Utility address space page 11.1 ...1 FRMPPGM X'D1' FRAME IS A PAGEABLE PGMBK .111 11.1 FRMPDISO X'7D' Isolate FRMUSER and FRMDTSP fields of FRMCSB0. This is done to allow code to test, for either FRMUSER *or* FRMDTSP being on with one instruction. 1111 1111 FRMNEVER X'FF' Equate to reserve a value which will never be a valid frame usage code. 000D 13 Bitstring 1 FRMCSB1 COMPARE AND SWAP WORD BYTE 1. COMPARE AND SWAP NOT NECESSARILY REQUIRED TO ALTER THESE BITS. 1... .... FRMLOCKD X'80' FRAME IS LOCKED IN REAL STORAGE (FRMLCNT IS GREATER THAN ZERO) .1.. .... FRMCPLOK X'40' FRAME LOCKED BY CP LOCK COMMAND (FRAME IS PART OF CP NUCLEUS) ..1. .... FRMOWNED X'20' FRAME IS ON A USER OWNED LIST ...1 .... FRMSHARE X'10' FRAME IS SHARED STORAGE FRAME .... 1... FRMRONLY X'08' FRAME IS A READ ONLY FRAME .... ..1. FRMONQUE X'02' FRAME IS CURRENTLY ON A QUEUE OR LIST. CHECK THE FRAME CODE TO DETERMINE WHAT QUEUE THE FRAME IS ON. FRMFRSY - THE SYSTEM FREE STORAGE FRAMES QUEUE. FRMFRVM - THE VMDBK FREE STORAGE FRAMES QUEUE. FRMPPGM - THE DEFERRED PGMBK PAGING LIST OR THE PAGED PGMBK AGING LIST FRMNPGM - THE LIST OF FRMTE'S CONTAINING PREVIOUSLY DEALLOCATED PTRM PTE'S BELOW CURRENT POINTER. .... ...1 FRMERROR X'01' FRAME IS IN ERROR (STORAGE CHECK) THESE BITS ARE PRIMARILY STATIC FRAME FLAG BITS 000E 14 Bitstring 1 FRMCSB2 COMPARE AND SWAP WORD BYTE 2. COMPARE AND SWAP NOT NECESSARILY REQUIRED TO ALTER THESE BITS. 1... .... FRMFXASA X'80' 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. .... FRMRFRSH X'20' Frame data is invalid. The frame must be refreshed before being used. .... ...1 FRMLAVL X'01' 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 THE FRMAVAIL BIT IS ON AND THE FRMLAVL BIT IS OFF. THESE BITS DENOTE DYNAMIC FRAME STATES FRMCSB3 FRMTE serialization byte. Contains the four mutually exclusive FRMTE serialization bits and also the four bit frame last translated count. 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!!!!!!!!!!!!!!!!!!! 000F 15 Bitstring 1 FRMCSB3 COMPARE AND SWAP WORD BYTE 3. 1... .... FRMAVAIL X'80' Frame is on the global available list, local available list, or the processor-local processed list. FRMPTE must be cleared and FRMAVAIL must be set to one when a frame is on the global available list. FRMPTE must be cleared plus FRMAVAIL, FRMLAVAL, and FRMUSER must be set to one when a frame is on the local available list. FRMPTE must be non-zero plus FRMAVAIL, FRMLAVL, and FRMUSER must be set to one when a frame is on the processor local processed list. .1.. .... FRMTRANS X'40' FRAME IS BEING TRANSLATED ..1. .... FRMRELSE X'20' FRAME IS BEING RELEASED ...1 .... FRMSTEAL X'10' FRAME IS BEING STOLEN NOTE. THIS STATE (FRMSTEAL) IS SOMETIMES USED IN LIEU OF FRMLOCKD IN SITUATIONS WHERE IT IS NOT FEASABLE TO USE THE LOCKED FRAME INTERFACE. AN EXAMPLE IS HCPPAF SAVING PAGES ON BEHALF OF A GUEST REQUEST. .... 1111 FRMLTRCT X'0F' Frame last translated count. These four bits are the count of CPUs which have this FRMTE as last translated. If any of these bits are one, the frame cannot be stolen. This equate is used as a mask to isolate the 4 bit frame last translated count. The maximum value (currently 15) of this count represents an upper limit on the number of concurrent online CPUs supported. END OF DEFINITION FOR FRAME TABLE ENTRIES THESE BITS ARE USED TO SERIALIZE FRAME STATE CHANGES REDEFINITION FOR FRAMES THAT ARE NOT CHAINED. 0000 0 Signed 4 FRMID 4 CHARACTER IDENTIFIER IDENTIFIERS USED IN FRMID THESE 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 'SAVE' FRAME IN USE BY SAVE AREA MANAGER '*VR*' VIRTUAL = REAL USER FRAME 'FRVR' FRAME IN USE FOR V=R FREE STORAGE 'OFLN' FRAME IS OFF-LINE AND UNAVAILABLE 'R370' FRAME IS RIO370 FRAME 'PRFX' PREFIX PAGE FRAME ' ' LOCKED USER FRAME 'PPGM' PAGEABLE PGMBK 'NPGM' NON-PAGEABLE PGMBK 'AFS ' ALIGNED FREE STORAGE 'VCB ' VERIFIABLE CONTROL BLOCK 0004 4 Signed 4 FRMLKCNT FRAME LOCK COUNT 0008 8 Signed 4 * 000C 12 Signed 4 * FRMCSWRD (FLAGS AND STATUS BITS) REDEFINITION FOR FREE STORAGE FRAMES. 0000 0 Signed 4 FRMFRNXT NEXT FRMTE WITH AVAILABLE BLOCKS 0004 4 Signed 2 FRMDHTOD TOD TIME STAMP (SECS) 0004 4 Signed 2 FRMVMFRG FRAGMENT SIZE WHEN USED BY FREVM 0006 6 Signed 2 FRMDWUSE DOUBLE WORDS OF STORAGE IN USE 0008 8 Address 4 FRMCHN POINTER TO FIRST FREE STORAGE AVAILABLE BLOCK IN THIS FRAME. THIS FIELD IS ALSO 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). ALSO, THE LEFT-MOST 2 BYTES OF THIS FIELD CONTAIN THE OFFSET OF THE FIRST FREE PAGE TABLE ENTRY AVAILABLE IN THIS FRAME (FOR NON PAGEABLE PGMBK FRAMES ONLY - NPGM) WHICH WERE PREVIOUSLY DEALLOCATED. 000C 12 Signed 4 * FRMCSWRD (FLAGS AND STATUS BITS) FRMCHN redefinitions used by fast subpooled free storage garbage collection (HCPFRFDX): Note that fast subpooled free storage frames do not otherwise use the typical free storage frame queueing techniques except during garbage collection processing (HCPFRFDX, SUBMTFTE queue, etc.). This means that FRMONQUE gets set even when subpooled free storage FRMTEs aren't on any queue. 0008 8 Signed 2 FRMBCT Count of returned blocks 000A 10 Signed 2 FRMLAST Last block queued

 

FRMTE Storage Layout

*** FRMTE - FRAME TABLE ENTRY
*
*     +---------------------------+---------------------------+
*   0 |         FRMFPNT           |         FRMBPNT           |
*     +---------------------------+---------------------------+
*   8 |          FRMPTE           |         FRMCSWRD          |
*     +---------------------------+---------------------------+
*  10 |                                                       |
*     =                       FRMNEXT                         =
*     |                                                       |
*     +-------------------------------------------------------+
*
*** FRMTE - FRAME TABLE ENTRY
*** Overlay for FRMBPNT in FRMTE
*
*                                 +--------------------+------+
*   0 ...                       4 |////////////////////|:BFLAG|
*                                 +--------------------+------+
*   8
*
*** Overlay for FRMBPNT in FRMTE
*** Overlay for FRMFPNT in FRMTE
*
*     +---------------------------+-------------+------+------+
*   0 |///////////////////////////|  FRMTCSTE   |:PSCT |:ASSEL|
*     +---------------------------+-------------+------+------+
*   8 |          FRMSTO           |///////////////////////////|
*     +---------------------------+---------------------------+
*  10
*
*** Overlay for FRMFPNT in FRMTE
*** Overlay for FRMPTE in FRMTE
*
*     +-------------+-------------+
*   8 |  FRMPS1ST   |  FRMPSLST   | C
*     +-------------+-------------+
*
*** Overlay for FRMPTE in FRMTE
*** Overlay for FRMPTE in FRMTE
*
*     +---------------------------+
*   8 |         FRMDCKEY          | C
*     +---------------------------+
*
*** Overlay for FRMPTE in FRMTE
*** Overlay for FRMCSWRD in FRMTE
*
*                                 +------+------+------+------+
*   8 ...                       C |:CSB0 |:CSB1 |:CSB2 |:CSB3 |
*                                 +------+------+------+------+
*  10
*
*** Overlay for FRMCSWRD in FRMTE
*** Overlay for FRMORGIN in FRMTE
*
*     +---------------------------+---------------------------+
*   0 |          FRMID            |         FRMLKCNT          |
*     +---------------------------+---------------------------+
*   8 |///////////////////////////|///////////////////////////|
*     +---------------------------+---------------------------+
*  10
*
*** Overlay for FRMORGIN in FRMTE
*** Overlay for FRMORGIN in FRMTE
*
*     +---------------------------+-------------+
*   0 |         FRMFRNXT          |  FRMDHTOD   | 6
*     +---------------------------+-------------+
*
*** Overlay for FRMORGIN in FRMTE
*** Overlay for FRMDHTOD in FRMTE
*
*                                 +-------------+-------------+
*   0 ...                       4 |  FRMVMFRG   |  FRMDWUSE   |
*     +---------------------------+-------------+-------------+
*   8 |          FRMCHN           |///////////////////////////|
*     +---------------------------+---------------------------+
*  10
*
*** Overlay for FRMDHTOD in FRMTE
*** Overlay for FRMCHN in FRMTE
*
*     +-------------+-------------+
*   8 |   FRMBCT    |  FRMLAST    | C
*     +-------------+-------------+
*
*** Overlay for FRMCHN in FRMTE

 

FRMTE Cross Reference

(contains links to field and bit definitions)
Symbol         Dspl Value
-------------- ---- -----

FRMAFS 000C 69

FRMALTMV 0007 FD

FRMALTPG 0007 FE

FRMASSEL 0007

FRMAVAIL 000F 80

FRMBCT 0008

FRMBFLAG 0007

FRMBPNT 0004

FRMCHN 0008

FRMCPLOK 000D 40

FRMCSB0 000C

FRMCSB1 000D

FRMCSB2 000E

FRMCSB3 000F

FRMCSWRD 000C

FRMDCKEY 0008

FRMDHTOD 0004

FRMDTSP 000C 82

FRMDWUSE 0006

FRMERROR 000D 01

FRMFPNT 0000

FRMFRNXT 0000

FRMFRSY 000C 67

FRMFRVM 000C 65

FRMFRVR 000C 63

FRMFTADD 000C 88

FRMFTPF 0007 FF

FRMFTTBL 000C 09

FRMFXASA 000E 80

FRMID 0000

FRMLAST 000A

FRMLAVL 000E 01

FRMLENTH 000C 00000010

FRMLKCNT 0004

FRMLOCKD 000D 80

FRMLTRCT 000F 0F

FRMMDCHT 000C 0D

FRMNEVER 000C FF

FRMNEXT 0010

FRMNPGM 000C 51

FRMOFFLN 000C 10

FRMONQUE 000D 02

FRMORGIN 0000

FRMOWNED 000D 20

FRMPDISO 000C 7D

FRMPERSY 000C 6F

FRMPPGM 000C D1

FRMPSCT 0006

FRMPSLST 000A

FRMPS1ST 0008

FRMPTE 0008

FRMRELSE 000F 20

FRMRFRSH 000E 20

FRMRONLY 000D 08

FRMR370 000C 30

FRMSHARE 000D 10

FRMSTEAL 000F 10

FRMSTO 0008

FRMSUTIL 000C 83

FRMSVDSK 000C C3

FRMTCSTE 0004

FRMTRANS 000F 40

FRMVCB 000C 6B

FRMVMFRG 0004

FRMVR 000C 40

TCHASPAC 0007 C0

TCHIXMSK 0007 3F


This information is based on VM/ESA 2.4.0.
Last updated on 3 Aug 1999 at 11:56:33 EDT.
Copyright IBM Corporation, 1990, 1999