VMS Help  —  RMS  RAB64 (Alpha Only)
    On an Alpha system, the 64-bit record access block (RAB64) is
    an extension of the RAB that allows OpenVMS Alpha users to use
    64-bit addresses for the following I/O buffers:

    o  UBF (user record buffer)

    o  RBF (record buffer)

    o  RHB (fixed-length record header buffer; fixed portion of VFC
       record format)

    o  KBF (key buffer containing the key value for random access)

    RAB64 has fields corresponding to all the RAB fields, plus
    seven additional fields to accommodate 64-bit addressing. The
    additional fields are listed first in the following table; none
    have FDL equivalents. All the other RAB64 fields are equivalent
    to their RAB counterparts and have the same FDL equivalents.

    For each field, this table lists the symbolic offset, the size in
    bytes, the RAB equivalent, and a brief description.

                          RAB
    Offset         Size   Equivalent     Description

    Alpha-Only RAB64 Fields:

    RAB64$Q_CTX    8      None           User context (64-bit)
    RAB64$PQ_KBF   8      None           Key buffer 64-bit address
    RAB64$PQ_RBF   8      None           Record buffer 64-bit address
    RAB64$PQ_RHB   8      None           Record header buffer 64-bit
                                         address
    RAB64$Q_RSZ    8      None           Record buffer size
    RAB64$PQ_UBF   8      None           User record buffer 64-bit
                                         address
    RAB64$Q_USZ    8      None           User record buffer size

    RAB64 Fields Equivalent to RAB Fields:

    RAB64$B_BID    1      RAB$B_BID      Block identifier
    RAB64$L_BKT    4      RAB$L_BKT      Bucket code
    RAB64$B_BLN    1      RAB$B_BLN      Block length
    RAB64$L_CTX    4      RAB$L_CTX      User context
    RAB64$L_FAB    4      RAB$L_FAB      File access block address
    RAB64$W_ISI    2      RAB$W_ISI      Internal stream identifier
    RAB64$L_KBF    4      RAB$L_KBF      Key buffer address
    RAB64$B_KRF    1      RAB$B_KRF      Key of reference
    RAB64$B_KSZ    1      RAB$B_KSZ      Key size
    RAB64$B_MBC    1      RAB$B_MBC      Multiblock count
    RAB64$B_MBF    1      RAB$B_MBF      Multibuffer count
    RAB64$L_PBF    4      RAB$L_PBF      Prompt buffer address
    RAB64$B_PSZ    1      RAB$B_PSZ      Prompt buffer size
    RAB64$B_RAC    1      RAB$B_RAC      Record access mode
    RAB64$L_RBF    4      RAB$L_RBF      Record buffer address
    RAB64$W_RFA    6      RAB$W_RFA      Record file address
    RAB64$L_RHB    4      RAB$L_RHB      Record header buffer address
    RAB64$L_ROP    4      RAB$L_ROP      Record-processing options
    RAB64$W_ROP_   2      Extended
    2                     record-
                          processing
                          options
    RAB64$W_RSZ    2      RAB$W_RSZ      Record buffer size
    RAB64$L_STS    4      RAB$L_STS      Completion status code
    RAB64$L_STV    4      RAB$L_STV      Status value
    RAB64$W_STV0   2      RAB$W_STV0     Low-order word status value
    RAB64$W_STV2   2      RAB$W_STV2     High-order word status value
    RAB64$B_TMO    1      RAB$B_TMO      Timeout period
    RAB64$L_UBF    4      RAB$L_UBF      User record buffer address
    RAB64$W_USZ    2      RAB$W_USZ      User record buffer size
    RAB64$L_XAB    4      RAB$L_XAB      Next XAB address

    The RAB64 $PQ_ fields can hold either 64-bit addresses or 32-bit
    addresses sign-extended to 64-bits. Therefore, you can use these
    fields in all applications whether or not you are using 64-bit
    addresses.

    If your application already uses RAB fields, only minimal source
    code changes are required to use 64-bit RMS support. The RAB64
    64-bit counterpart to a 32-bit address field is used only if the
    following two conditions exist:

    o  The RAB64$B_BLN field has been initialized to RAB64$C_BLN64.

    o  The 32-bit address cell in the 32-bit portion of the RAB64
       contains -1.

    Because the RAB64 is an upwardly compatible version of the RAB,
    RMS allows you to use the RAB64 wherever you can use a RAB.
Close Help