|
Hex Dec Type/Val Lng Label (dup) Comments
---- ---- --------- ---- -------------- --------
0000 0 Structure OFBK CP Open File Block
0000 0 Address 4 OFBFWD Host logical address of next OFB.
0004 4 Address 4 OFBDRB HL-address of chain of open DRBKs
0008 8 Address 4 OFBMLEBK HL-address of MLEBK chain.
000C 12 Signed 4 OFBIOBUF Host logical address of I/O
buffer. May be backed anywhere
since format 2 IDAW lists will be
used.
0010 16 Address 4 OFBvFSB Virt Free Storage addr of FSBK
0014 20 Signed 4 * Reserved for future IBM use
0018 24 Signed 2 OFBSIZE Size of OFBK in bytes
001A 26 Bitstring 1 OFBFLAG1 Flags
1... .... OFBSEUDO X'80' OFBSEUDO This is a
Pseudo-OPEN OFBK
...1 .... OFBUNIQE X'10' OFBUNIQE Only 1 OPEN
against this OFBK
001B 27 Bitstring 1 OFBFLAG2 Flags
1... .... OFBOUTPT X'80' OFBOUTPT This is an output
OFBK
.1.. .... OFBBUFFR X'40' OFBBUFFR Delay write till
buffer full
.... ..1. OFBCPVF X'02' OFBCPVF Backed in "CP
Virtual Free"
001C 28 Address 4 OFBIOR Host logical address of IORBK if
any.
0020 32 Dbl-Word 8 OFBLOCK (3) Lock for file I/O
0038 56 Signed 4 OFBUSER1 Reserved for non-IBM use
003C 60 Signed 4 OFBUSER2 Reserved for non-IBM use
0040 64 Bitstring 64 OFBFSB Interesting FSBK pieces
0080 128 Signed 4 * Reserved for IBM use
0084 132 Signed 4 OFBVFsz CP V F size allocated. Used if
OFBCPVF is on.
0088 136 Bitstring 8 OFBbBUFF 64 bits, 1 per block in CPVF.
Used if OFBCPVF is on.
0090 144 Bitstring 8 OFBwBUFF 64 bits, 1 per block in CPVF.
Used if OFBCPVF is on. On if
block was written.
0098 152 Address 4 OFBgBUFF CP Virt Free Storage addr of blk
Used if OFBCPVF is on.
009C 156 Address 4 OFBaBUFF CP Virt Free Storage page align.
Used if OFBCPVF is on. When we
read a block of the CMS file, we
copy that block to CP Virt Free,
such that the block's RBA is the
offset from OFBaBUFF. The
corresponding bit in OFBbBUFF is
set on to indicate data exists in
CP V F. OFBwBUFF is set if the
block is to be written.
This section (OFBd ) describes fields that locate
the buffer for level 0, the data level. The layout of
the OFBPTR section is identical to this. These two
sections replicate each other so that we can readily
refer directly to the data section, or through pointer
levels to level 0, this same data level. Which section
to use is left to the convenience of the programmer.
00A0 160 Dbl-Word 8 OFBdPTR (0) Ensure d-word boundary
00A0 160 Signed 4 OFBdBLK CMS file block number of block
00A4 164 Signed 4 OFBdCPTR Subscript to child pointer
00A8 168 Address 4 OFBdBUFF A(I/O buffer)
.... ...1 OFBdDATA X'01' OFBdDATA OFBpBUFF must be
written
00AC 172 Address 4 * Reserved for IBM use
00B0 176 Dbl-Word 8 * (0) Ensure d-word boundary
00B0 176 Dbl-Word 8 OFBPTRS (0) Start of variable length data
Pointers to DASD blocks
000000B0 OFBSIZEB (*-OFBK+7)/8*8 Size in bytes
00000016 OFBSIZED (*-OFBK+7)/8 Size in d-words
This section is subscripted (1:FSB#LVL).
This section mirrors the definition of OFBdPTR above.
00B0 176 Dbl-Word 8 OFBPTR (0) Pointers to DASD blocks
00B0 176 Signed 4 OFBpBLK CMS file block number of block
00B4 180 Signed 4 OFBpCPTR Subscript to child pointer
00B8 184 Address 4 OFBpBUFF A(I/O buffer)
.... ...1 OFBpDATA X'01' OFBpDATA OFBpBUFF must be
written
00BC 188 Address 4 * Reserved for IBM use
00C0 192 Dbl-Word 8 * (0) Round up to d-word boundary
00000010 OFBPTRL *-OFBPTR Length of these fields
| |