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.1.0 Last updated on 22 Jun 2018 at 11:49:52 EDT.
Copyright IBM Corporation, 1990, 2018