Programming Interface Information: This information is NOT intended to be used as Programming Interfaces of z/VM.

#### OFBK

Prolog

Control Block Contents
OFBK DSECT

Storage Layout

Cross Reference (Contains links to field and bit definitions)

#### OFBK Prolog

     Name       : HCPOFBK
     Description: CP Open File Block
     DSECT      : OFBK
     Function   : The OFBK contains information about each
                  open CMS file on CP accessed minidisks
     Located by : ACSBK.ACSOFB
                  OFBK.OFBFWD
                  DRBK.DRBOFB
     Created by : HCPZIA
                  HCPZIO
     Deleted by : HCPZIC
                  HCPZIR

#### OFBK Control Block Content

#### OFBK DSECT

    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' This is a Pseudo-OPEN OFBK
              ...1 ....      OFBUNIQE       X'10' Only 1 OPEN against this
                                            OFBK
    001B   27 Bitstring    1 OFBFLAG2       Flags
              1... ....      OFBOUTPT       X'80' This is an output OFBK
              .1.. ....      OFBBUFFR       X'40' Delay write till buffer
                                            full
              .... ..1.      OFBCPVF        X'02' 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' 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' 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

#### OFBK Storage Layout

    *** OFBK - CP Open File Block
    *
    *     +---------------------------+---------------------------+
    *   0 |          OFBFWD           |          OFBDRB           |
    *     +---------------------------+---------------------------+
    *   8 |         OFBMLEBK          |         OFBIOBUF          |
    *     +---------------------------+---------------------------+
    *  10 |         OFBVFSB           |///////////////////////////|
    *     +-------------+------+------+---------------------------+
    *  18 |  OFBSIZE    |:FLAG1|:FLAG2|          OFBIOR           |
    *     +-------------+------+------+---------------------------+
    *  20 |                                                       |
    *     =                       OFBLOCK                         =
    *     |                                                       |
    *     +---------------------------+---------------------------+
    *  38 |         OFBUSER1          |         OFBUSER2          |
    *     +---------------------------+---------------------------+
    *  40 |                                                       |
    *     =                        OFBFSB                         =
    *     |                                                       |
    *     +---------------------------+---------------------------+
    *  80 |///////////////////////////|         OFBVFSZ           |
    *     +---------------------------+---------------------------+
    *  88 |                       OFBBBUFF                        |
    *     +-------------------------------------------------------+
    *  90 |                       OFBWBUFF                        |
    *     +---------------------------+---------------------------+
    *  98 |         OFBGBUFF          |         OFBABUFF          |
    *     +---------------------------+---------------------------+
    *  A0 |         OFBDBLK           |         OFBDCPTR          |
    *     +---------------------------+---------------------------+
    *  A8 |         OFBDBUFF          |///////////////////////////|
    *     +---------------------------+---------------------------+
    *
    *** OFBK - CP Open File Block

    *** Overlay for OFBPTRS in OFBK
    *
    *     +---------------------------+---------------------------+
    *  B0 |         OFBPBLK           |         OFBPCPTR          |
    *     +---------------------------+---------------------------+
    *  B8 |         OFBPBUFF          |///////////////////////////|
    *     +---------------------------+---------------------------+
    *  C0
    *
    *** Overlay for OFBPTRS in OFBK

#### OFBK Cross Reference

    Symbol         Dspl Value
    -------------- ---- -----
    OFBaBUFF       009C
    OFBbBUFF       0088
    OFBdBLK        00A0
    OFBdBUFF       00A8
    OFBdCPTR       00A4
    OFBdDATA       00A8 01
    OFBdPTR        00A0
    OFBgBUFF       0098
    OFBpBLK        00B0
    OFBpBUFF       00B8
    OFBpCPTR       00B4
    OFBpDATA       00B8 01
    OFBvFSB        0010
    OFBwBUFF       0090
    OFBBUFFR       001B 40
    OFBCPVF        001B 02
    OFBDRB         0004
    OFBFLAG1       001A
    OFBFLAG2       001B
    OFBFSB         0040
    OFBFWD         0000
    OFBIOBUF       000C
    OFBIOR         001C
    OFBLOCK        0020
    OFBMLEBK       0008
    OFBOUTPT       001B 80
    OFBPTR         00B0
    OFBPTRL        00C0 00000010
    OFBPTRS        00B0
    OFBSEUDO       001A 80
    OFBSIZE        0018
    OFBSIZEB       00B0 000000B0
    OFBSIZED       00B0 00000016
    OFBUNIQE       001A 10
    OFBUSER1       0038
    OFBUSER2       003C
    OFBVFsz        0084

This information is based on z/VM V5R2.0. Last updated on 12 Apr 2006 at 17:13:36 EDT.
Copyright IBM Corporation, 1990, 2005