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
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
Last updated on 3 Aug 1999 at 11:56:33 EDT.
Copyright IBM Corporation, 1990, 1999