|   | 
 NAME       : HCPFTXBK
 DESCRIPTION: Frame Table Extent Block
 DSECT      : FTXBK
 FUNCTION   : Contain Frame Table scan range addresses
 CREATED BY : HCPIFTIX
 DELETED BY : NA
 LOCATED BY : RSAFTXFL - FTXBK chain for frames < 2G
              RSAFTXFG - FTXBK chain for frames >= 2G
              RSAFTXGC - Global FTXBK chain (contains all FTXBKs in
              no guaranteed order)
 RELOCATION CONSIDERATIONS : None
 NOTES      :
              The RSMBK contains 2 FTXBks, one for <2G and one for
              >2G.  In a system with nothing >2G, there will still be
              these 2 FTXBKs.  In order to indicate that an FTXBK is
              not actually describing anything, a bogus value will be
              used for the FRMTE ranges.  Any bogus value would do.
              FTXSTART = zero is the chosen bogus value.
 SERIALIZED :
              Changes to the FTXBK fwd/bwd pointers are serialized
              by virtue of a single processor running in HCPSYNSV
              and all the other processors spinning in HCPSYNWT.
              FTXBK lo/hi values are serialized by virtue of being
              updated before the FTXBK is added to the chain of
              FTXBKs, and never changed thereafter.
              FTXBK start/end values are not serialized.  They are
              initialized to the FTXBK hi/lo values respectively,
              before the FTXBK is added to the chain of FTXBKs.
              Subsequent updates will only lower FTXStart or raise
              FTXEnd.  The start/end pair will always describe a
              valid range.
              Storage is accessed in block-concurrent blocks of 8
              bytes each.  That means a STMG or LMG operates on each
              8-byte block one at a time.
              Consider simultaneous tasks: 1 updating, 1 reading.
              If Updater completes the STMG updating of the FTXBK
              before Reader reads the new values, then Reader will
              LMG a valid start-end pair.
              Since FTXSTART/FTXEND are not serialized, we need to
              consider incomplete updates.  If Updater does not
              complete the STMG updating of the FTXBK before Reader
              reads the new values, then Reader will LMG a start-end
              pair that may not be accurate.  The issue is:  will
              that pair be dangerous?
              Let's consider four scenarios.
              - scenario 1, storage initialization has not made any
              frames available yet.
              - scenario 2, the last frame in the lo/hi range is the
              first to be made available.
              - scenario 3, some frame in the midst of the lo/hi
              range is the first to be made available.
              - scenario 4, some lower frame in the lo/hi range is
              the next to be made available.
              Scenario 1, the Reader executes LMG and sees that the
              starting address is higher that the ending address.
              This tells the frame table scanner that processing of
              this FTXBK has been completed.
              updater          start/end         reader
              10   1          LMG 10/1
              Scenario 2, frame 10 is the first to be made available.
              Updater's STMG and Reader's LMG execute simultaneously.
              The timing of the processors is such that the LMG reads
              storage before the STMG completes.  The result for
              Reader is the same as scenario 1.
              updater          start/end         reader
              10   1
              STMG 10/10         10   1          LMG 10/1
              Scenario 3, frame 5 is the first to be made available.
              Updater's STMG and Reader's LMG execute simultaneously.
              The timing of the processors is such that the LMG reads
              storage before the STMG completes.  The result for
              Reader is the same as scenario 1.
              updater          start/end         reader
              10   1
              STMG 5/5           5    1          LMG 5/1
              Scenario 4, frame 4 is the next to be made available.
              Updater's STMG and Reader's LMG execute simultaneously.
              The timing of the processors is such that the LMG reads
              storage before the STMG completes.  The result for
              Reader is a valid range 4-5.
              updater          start/end         reader
              5    5
              STMG 4/5           4    5          LMG 4/5
  |   |