RMS, RAB64 (Alpha Only)
*Conan The Librarian
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.