OpenVMS Record Management Services (RMS) are generalized routines that assist user programs in processing and managing files and records. RMS provides transparent network processing between DECnet for OpenVMS nodes. RMS also includes a set of macro instructions that you can use to initialize control blocks, store values in control blocks, and call RMS services. For more information about RMS, see the OpenVMS Record Management Services Reference Manual and the FDL Facility in the OpenVMS Record Management Utilities Reference Manual.
1 – FAB
The file access block (FAB) defines file characteristics, file access, and certain run-time options. It also indicates whether other control blocks are associated with the file. The following table lists the symbolic offset, the size in bytes, the FDL equivalent, and a brief description of each FAB field. Field Offset Size FDL Equivalent Description FAB$B_ 1 None File access modes ACMODES FAB$L_ALQ 4 FILE ALLOCATION Allocation quantity (blocks) FAB$B_BID 1 None Block identifier FAB$B_BKS 1 FILE BUCKET_SIZE Bucket size FAB$B_BLN 1 None Block length FAB$W_BLS 2 FILE MT_BLOCK_SIZE Magnetic tape block size FAB$V_CHAN_ - None Channel access mode MODE protection FAB$L_CTX 4 FILE CONTEXT Context FAB$W_DEQ 2 FILE EXTENSION Default file extension quantity FAB$L_DEV 4 None Device characteristics FAB$L_DNA 4 FILE DEFAULT_NAME Default file specification string address FAB$B_DNS 1 FILE DEFAULT_NAME Default file specification string size FAB$B_FAC 1 ACCESS File access FAB$L_FNA 4 FILE NAME File specification string address FAB$B_FNS 1 FILE NAME File specification string size FAB$L_FOP 4 FILE File-processing options FAB$B_FSZ 1 RECORD CONTROL_FIELD_ Fixed-length control SIZE area size FAB$W_GBC 2 FILE GLOBAL_BUFFER_ Global buffer count COUNT FAB$W_IFI 2 None Internal file identifier FAB$B_ 1 None Journal flags status JOURNAL FAB$V_LNM_ - None Logical name MODE translation access mode FAB$L_MRN 4 FILE MAX_RECORD_ Maximum record NUMBER number FAB$W_MRS 2 RECORD SIZE Maximum record size FAB$L_NAM 4 None Name (NAM) or long name (NAML) block address FAB$B_ORG 1 FILE ORGANIZATION File organization FAB$B_RAT 1 RECORD Record attributes FAB$B_RFM 1 RECORD FORMAT Record format FAB$B_RTV 1 FILE WINDOW_SIZE Retrieval window size FAB$L_SDC 4 None Secondary device characteristics FAB$B_SHR 1 SHARING File sharing FAB$L_STS 4 None Completion status code FAB$L_STV 4 None Status values FAB$L_XAB 4 None Extended attribute block address
2 – NAM
The name (NAM) block provides additional fields for extended file specification use, including parsing and obtaining the actual file specification used for a file operation. On Alpha systems, the long name block (NAML) can optionally take the place of a NAM block (see NAML). The following table lists the symbolic offset, the size in bytes, and a brief description of each field. Offset Size Description NAM$B_BID 1 Block identifier NAM$B_BLN 1 Block length NAM$B_DEV 1 Device string length NAM$L_DEV 4 Device string address NAM$W_DID 6 Directory identification NAM$B_DIR 1 Directory string length NAM$L_DIR 4 Directory string address NAM$T_DVI 16 Device identification NAM$L_ESA 4 Expanded string area address NAM$B_ESL 1 Expanded string length NAM$B_ESS 1 Expanded string area size NAM$W_FID 6 File identification NAM$W_FIRST_WILD_ 2 The topmost directory level DIR to contain a wildcard. NAM$L_FNB 4 File name status bits NAM$W_LONG_DIR_ 2 Total number directories LEVELS NAM$B_NAME 1 File name string length NAM$L_NAME 4 File name string address NAM$B_NMC 1 Name characteristics NAM$B_NODE 1 Node name string length NAM$L_NODE 4 Node name string address NAM$B_NOP 1 Name block options NAM$L_RLF 4 Related file NAM or NAML block address NAM$L_RSA 4 Resultant string area address NAM$B_RSL 1 Resultant string length NAM$B_RSS 1 Resultant string area size NAM$B_TYPE 1 File type string length NAM$L_TYPE 4 File type string address NAM$B_VER 1 File version string length NAM$L_VER 4 File version string address NAM$L_WCC 4 Wildcard context
3 – NAML
On Alpha systems, the long name block (NAML) can optionally take the place of a NAM block. The NAML allows OpenVMS Alpha users to locate and use file specifications that are longer than 255 bytes. The following table describes the NAML field offset, size, corresponding NAM or FAB field, and description. Corresponding NAM or FAB Field Offset Size Field Description NAML$B_BID 1 None Block identifier NAML$B_BLN 1 None Block length NAML$L_FILESYS_ 4 None File system name NAME buffer address. NAML$L_FILESYS_ 4 None File system name NAME_ALLOC buffer allocated size NAML$L_FILESYS_ 4 None File system name NAME_SIZE length NAML$L_INPUT_FLAGS 4 None Additional flags specified as input NAML$L_LONG_ 4 FAB$L_DNA Long default file DEFNAME specification string address specified as input (used if FAB$L_DNA contains -1) NAML$L_LONG_ 4 FAB$B_DNS Long default file DEFNAME_SIZE specification string size specified as input NAML$L_LONG_DEV 4 NAM$L_DEV Long device string address NAML$L_LONG_DEV_ 4 NAM$B_DEV Long device string SIZE length NAML$L_LONG_DIR 4 NAM$L_DIR Long directory string address NAML$L_LONG_DIR_ 4 NAM$B_DIR Long directory SIZE string length NAML$L_LONG_EXPAND 4 NAM$L_ESA Long expanded string area address NAML$L_LONG_ 4 NAM$B_ESS Long expanded string EXPAND_ALLOC area size NAML$L_LONG_ 4 NAM$B_ESL Long expanded string EXPAND_SIZE length NAML$L_LONG_ 4 FAB$L_FNA Long file FILENAME specification string address NAML$L_LONG_ 4 FAB$B_FNS Long file FILENAME_SIZE specification string size NAML$L_LONG_NAME 4 NAM$L_NAME Long file name string address NAML$L_LONG_NAME_ 4 NAM$B_NAME Long file name SIZE string length NAML$L_LONG_NODE 4 NAM$L_NODE Long node name string address NAML$L_LONG_NODE_ 4 NAM$B_NODE Long node name SIZE string length NAML$L_LONG_RESULT 4 NAM$L_RSA Long resultant string area address NAML$L_LONG_ 4 NAM$B_RSS Long resultant RESULT_ALLOC string area size NAML$L_LONG_ 4 NAM$B_RSL Long resultant RESULT_SIZE string length NAML$L_LONG_TYPE 4 NAM$L_TYPE Long file type string length NAML$L_LONG_TYPE_ 4 NAM$B_TYPE Long file type SIZE string address NAML$L_LONG_VER 4 NAM$L_VER Long file version string address NAML$L_LONG_VER_ 4 NAM$B_VER Long file version SIZE string length NAML$L_OUTPUT_ 4 None Additional status FLAGS bits passed as output NAML$L_USER_ 8 None User context CONTEXT NAML Fields Equivalent to NAM Fields NAML$B_DEV 1 NAM$B_DEV Device string length NAML$L_DEV 4 NAM$L_DEV Device string address NAML$W_DID 6 NAM$W_DID Directory identification NAML$B_DIR 1 NAM$B_DIR Directory string length NAML$L_DIR 4 NAM$L_DIR Directory string address NAML$T_DVI 16 NAM$T_DVI Device identification NAML$L_ESA 4 NAM$L_ESA Expanded string area address NAML$B_ESL 1 NAM$B_ESL Expanded string length NAML$B_ESS 1 NAM$B_ESS Expanded string area size NAML$W_FID 6 NAM$W_FID File identification NAML$W_FIRST_WILD_ 2 NAM$W_FIRST_ The topmost DIR WILD_DIR directory level to contain a wildcard. NAML$L_FNB 4 NAM$L_FNB File name status bits NAML$W_LONG_DIR_ 2 NAM$W_LONG_DIR_ Total number LEVELS LEVELS directories NAML$B_NAME 1 NAM$B_NAME File name string length NAML$L_NAME 4 NAM$L_NAME File name string address NAML$B_NMC 1 NAM$B_NMC Name characteristics NAML$B_NODE 1 NAM$B_NODE Node name string length NAML$L_NODE 4 NAM$L_NODE Node name string address NAML$B_NOP 1 NAM$B_NOP Name block options NAML$L_RLF 4 NAM$L_RLF Related file NAM or NAML block address NAML$L_RSA 4 NAM$L_RSA Resultant string area address NAML$B_RSL 1 NAM$B_RSL Resultant string length NAML$B_RSS 1 NAM$B_RSS Resultant string area size NAML$B_TYPE 1 NAM$L_TYPE File type string length NAML$L_TYPE 4 NAM$B_TYPE File type string address NAML$B_VER 1 NAM$B_VER File version string length NAML$L_VER 4 NAM$L_VER File version string address NAML$L_WCC 4 NAM$L_WCC Wildcard context
4 – RAB
The record access block (RAB) defines run-time options for a record stream and for individual operations within a predefined record stream context. After you connect the file to a record stream and associate the record stream with a FAB, you use the RAB fields to specify the next record you want to access and to identify appropriate record characteristics. NOTE: If you are using 64-bit addressing on an OpenVMS Alpha system, you must use RAB64 instead of RAB. The following table lists the symbolic offset, the size in bytes, the FDL equivalent and a brief description of each field. Offset Size FDL Equivalent Description RAB$B_BID 1 None Block identifier RAB$L_BKT 4 CONNECT BUCKET_CODE Bucket code RAB$B_BLN 1 None Block length RAB$L_CTX 4 CONNECT CONTEXT User context RAB$L_FAB 4 None File access block address RAB$W_ISI 2 None Internal stream identifier RAB$L_KBF 4 None Key buffer address RAB$B_KRF 1 CONNECT KEY_OF_ Key of reference REFERENCE RAB$B_KSZ 1 None Key size RAB$B_MBC 1 CONNECT MULTIBLOCK_ Multiblock count COUNT RAB$B_MBF 1 CONNECT MULTIBUFFER_ Multibuffer count COUNT RAB$L_PBF 4 None Prompt buffer address RAB$B_PSZ 1 None Prompt buffer size RAB$B_RAC 1 CONNECT Record access mode RAB$L_RBF 4 None Record buffer address RAB$W_RFA 6 None Record file address RAB$L_RHB 4 None Record header buffer address RAB$L_ROP 4 CONNECT Record-processing options RAB$W_RSZ 2 None Record size RAB$L_STS 4 None Completion status code RAB$L_STV 4 None Status value RAB$W_STV0 2 None Low-order word status value RAB$W_STV2 2 None High-order word status value RAB$B_TMO 1 CONNECT TIMEOUT_PERIOD Timeout period RAB$L_UBF 4 None User record buffer address RAB$W_USZ 2 None User record buffer size RAB$L_XAB 4 None Next XAB address
5 – 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.
6 – XABALL
The allocation control XAB (XABALL) provides additional control over file or area space allocation on disk devices in order to optimize performance. When RMS uses a XAB to create or extend an area, the following XABALL fields duplicate and take precedence over associated fields in the related FAB: o The allocation quantity (ALQ) field, XAB$L_ALQ, overrides FAB$L_ALQ o The bucket size (BKZ) field, XAB$B_BKZ, overrides FAB$B_BKS o The default extension quantity (DEQ) field, XAB$W_DEQ, overrides FAB$W_DEQ o The XAB$V_CBT and XAB$V_CTG options of the allocation options field, XAB$B_AOP, override the FAB$V_CBT and FAB$V_CTG options of the file-processing options field, FAB$L_FOP The following table lists the symbolic offset, the size in bytes, the FDL equivalent, and a brief description of each field. Offset Size FDL Equivalent Description XAB$B_AID 1 AREA n Area identification number XAB$B_ALN 1 AREA POSITION Alignment boundary type XAB$L_ALQ 4 AREA ALLOCATION Allocation quantity XAB$B_AOP 1 AREA Allocation options XAB$B_BKZ 1 AREA BUCKET_SIZE Bucket size XAB$B_BLN 1 None Block length XAB$B_COD 1 None Type code XAB$W_DEQ 2 AREA EXTENSION Default extension quantity XAB$L_LOC 4 AREA POSITION Location XAB$L_NXT 4 None Next XAB address XAB$W_RFI 6 AREA POSITION Related file identifier FILE_ID or FILE_NAME XAB$W_VOL 2 AREA VOLUME Related volume number
7 – XABDAT
On Alpha systems for Files-11 B (ODS-2) media, the date and time XAB (XABDAT) block provides extended control of the date and time of the file's creation, revision (update), backup, and expiration. The following table lists the symbolic offset, the size in bytes, FDL equivalent, and a brief description of each field. FDL Offset Size Equivalent Description XAB$Q_BDT 8 DATE BACKUP Backup date and time XAB$B_BLN 1 None Block length XAB$Q_CDT 8 DATE Creation date and time CREATION XAB$B_COD 1 None Type code XAB$Q_EDT 8 DATE Expiration date and time EXPIRATION XAB$L_NXT 4 None Next XAB address XAB$Q_RDT 8 DATE Revision date and time REVISION XAB$W_RVN 2 FILE Revision number REVISION XAB$Q_ACC 8 None Last time file accessed XAB$Q_ATT 8 None Last time file attribute modified XAB$Q_MOD 8 None Last time file data modified
8 – XABFHC
The file header characteristic XAB (XABFHC) contains file header information that is output by the Open service and the Display service. The Create service can output information in this XAB when it opens an existing file through use of the Create-if option. The only input field is the longest record length (XAB$W_LRL) field. The Create service uses this field when it creates a sequential file that does not use a fixed-length record format. Note that, for unshared sequential files or sequential files shared using the FAB$V_UPI option, the values in the end-of- file block (XAB$L_EBK), first free byte in the end-of-file block (XAB$W_FFB), and longest record length (XAB$W_LRL) fields correspond to the values at the time of the last Close or Flush service. The following table lists the symbolic offset, the size in bytes, and a brief description of each field. Offset Size Description XAB$B_ATR 1 Record attributes; equivalent to FAB$B_RAT XAB$B_BKZ 1 Bucket size; equivalent to FAB$B_BKS XAB$B_BLN 1 Block length XAB$B_COD 1 Type code XAB$W_DXQ 2 Default file extension quantity; equivalent to FAB$W_DEQ XAB$L_EBK 4 End-of-file block XAB$W_FFB 2 First free byte in the end-of-file block XAB$W_GBC 2 Default global buffer count XAB$L_HBK 4 Highest virtual block in the file; equivalent to FAB$L_ALQ XAB$B_HSZ 1 Fixed-length control header size; equivalent to FAB$B_FSZ XAB$W_LRL 2 Longest record length XAB$W_MRZ 2 Maximum record size; equivalent to FAB$W_ MRS XAB$L_NXT 4 Next XAB address XAB$B_RFO 1 File organization and record format; combines FAB$B_RFM and FAB$B_ORG XAB$L_SBN 4 Starting logical block number for the file if it is contiguous; otherwise this field is 0 XAB$W_ 2 Version limit for the file VERLIMIT
9 – XABITM
The item list XAB (XABITM) provides a convenient means for using item list information to support RMS functions. Each XABITM points to an item list that includes one or more entries representing either a set function or a sense function that can be passed to the application program by way of the RMS interface. Because the mode field in a XABITM can be used to either set or sense the items in the list, you cannot use a single XABITM to both set and sense a particular function. However, you may use multiple XABITMs, some for setting functions and other for sensing functions. RMS logically ignores items that are irrelevant to any particular function while acting on any item that is relevant. Each entry in the item list includes three longwords, and a longword 0 terminates the list. Also note that RMS does not validate the item list. If the item list is invalid, RMS indicates that the XABITM is not valid by returning the invalid XAB status (RMS$_XAB) in the RAB$L_STS field. You can store the item list anywhere within process readable address space, but any buffers required by the related function must be in read/write memory. The XABITM control block currently supports the following functions: o Enhancements to network file access functions o Passing of file user characteristic information o Enhancements to RMS performance monitoring functions o Support for compound documents o Specifying the number of local buffers o Expiration date and time suppression o Support for file size in heterogeneous environments The following table lists the symbolic offset and a brief description of each field. Offset Description XAB$B_BLN Block length XAB$B_COD Type code XAB$L_ Item list address ITEMLIST XAB$B_MODE Set/sense control XAB$L_NXT Next XAB address
10 – Extended File Cache (XAB$ CACHE OPTIONS) (Alpha Only)
The ODS-2 and ODS-5 volumes of the Files-11 file system can use a caching technique to improve performance. In using caching, the file system keeps a copy of data that it recently read from disk in an area of memory called a cache. When an application reads data, for example, the file system checks whether the data is in its cache. The file system only issues an I/O to read the data from disk if the data is not in the cache. Caching improves read performance, because reading data from cache memory is much faster than reading it from disk. The extended file cache (XFC) is a virtual block cache, which caches both data and image files, and is available only on Alpha Systems. The extended file cache allows you to specify the following caching options: o Write-through caching o No caching You can control the files that the Extended File Cache option caches by setting and showing the current caching option. This is described in the following section. Setting and Showing the Current Caching Option When you access a file, you can specify the caching option that you would like for the current process. If you want the file to be cached, select write-through caching. This is the default. The write-through cache allows an application to write data to a file and straight through to disk. When this occurs, the application waits until the disk I/O is done and the data is on the disk. You can set the caching option by supplying a set mode XAB$_ CACHING_OPTIONS XABITM when you do the following: o When you create a file using SYS$CREATE o When you open an existing file using SYS$OPEN If you do not supply a XABITM or, if you supply a XABITM whose value is zero (0), the file system uses the value in the file's caching attribute. If another process on your computer is accessing the file, and you ask for write-through caching, your request is ignored if the file's current caching option is no caching. When more than one process is accessing a file on a single node, the most restrictive caching option takes effect on that node. Write-through caching is least restrictive; no caching is most restrictive. When more than one node in an OpenVMS Cluster is accessing a file, its caching option may be different on different nodes. It may be write-through on one node and no caching on another. To show the caching option, supply a sense mode XABITM on a call to SYS$DISPLAY.
11 – POSIX-Compliant Access Dates (Alpha Only)
To support POSIX-compliant file timestamps on ODS-5 disks, file attributes have been extended to include the following three access dates: o The last access date (XAB$Q_ACC) o The last attribute modification date (XAB$Q_ATT) o The last data modification date (XAB$Q_MOD) The XABITM SENSEMODE interface can be used with the following item codes on $OPEN or $DISPLAY operations to sense each of these three access dates: o XAB$_ACCDATE o XAB$_ATTDATE o XAB$_MODDATE Sensing these dates requires that access date support be enabled on the ODS-5 volume. (See the DCL SET VOLUME/VOLUME_ CHARACTERISTICS command in the OpenVMS DCL Dictionary: N-Z.) A SETMODE can be used with a $CLOSE operation with any of these item codes to update these dates regardless of the volume setting. A user may inhibit the update of the access dates by using the XAB$_NORECORD XABITM. Each of these item codes requires a quadword buffer. If a SENSEMODE using any of these item codes is requested for a non-ODS-5 file, a zero is returned. A SETMODE using any of these item codes for a non-ODS-5 file will be ignored. These items are ignored for DECnet operations. If a SENSEMODE is attempted for any of these items, the user buffer is left unchanged.
12 – XABJNL
The journaling XAB (XABJNL) control block supports file journaling operations. See the RMS Journaling for OpenVMS Manual for details.
13 – XABKEY
You must provide a key definition XAB (XABKEY) for each key in an indexed file in order to define the key's characteristics. Before you create an indexed file, you must establish the contents of the XABKEY fields for the primary key and for each alternate key. When you invoke an Open or Display service for an existing indexed file, you can use XABKEYs if you want to provide your program with one or more of the key definitions specified when the file was created. Alternatively, the summary XAB provides the number of keys, the number of allocated areas, and the prolog version assigned to the file. The following table lists the symbolic offset, the size in bytes, FDL equivalent, and a brief description of each field. Offset Size FDL Equivalent Description XAB$B_BLN 1 None Block length XAB$B_COD 1 None Type code XAB$L_COLNAM 4 None Collating sequence name XAB$L_COLSIZ 4 None Collating sequence table size XAB$L_COLTBL 4 COLLATING_ Collating sequence table SEQUENCE address XAB$B_DAN 1 KEY DATA_AREA Data bucket area number XAB$B_DBS 1 None Data bucket size XAB$W_DFL 2 KEY DATA_FILL Data bucket fill size XAB$B_DTP 1 KEY TYPE Data type of the key XAB$L_DVB 4 None First data bucket virtual block number XAB$B_FLG 1 KEY Key options flag XAB$B_IAN 1 KEY INDEX_AREA Index bucket area number XAB$B_IBS 1 None Index bucket size XAB$W_IFL 2 KEY INDEX_FILL Index bucket file size XAB$L_KNM 4 KEY NAME Key name buffer address XAB$B_LAN 1 KEY LEVEL1_ Lowest level of index INDEX_AREA area number XAB$B_LVL 1 None Level of root bucket XAB$W_MRL 2 None Minimum record length XAB$B_NSG 1 None Number of key segments XAB$B_NUL 1 KEY NULL_VALUE Null key value XAB$L_NXT 4 None Next XAB address XAB$W_POSn 2 KEY POSITION and Key position, XAB$W_POS0 SEGn_POSITION to XAB$W_POS7 XAB$B_PROLOG 1 KEY PROLOG Prolog level XAB$B_REF 1 KEY n Key of reference XAB$L_RVB 4 None Root bucket virtual block number XAB$B_SIZn 1 KEY LENGTH and Key size XAB$B_SIZ0 to SEGn_LENGTH XAB$B_SIZ7 XAB$B_TKS 1 None Total key field size
14 – XABPRO
The protection XAB (XABPRO) specifies the ownership, accessibility, and protection for a file. Although an application program typically uses a XABPRO as input to establish file protection when it creates a file, it can also use the XABPRO to change file protection when it closes a file. The program that opened the file can change file protection when it closes the file only if it accessed the file to make modifications and has control access. The following table lists the symbolic offset, the size in bytes, FDL equivalent, and a brief description of each field. Offset FDL Equivalent Description XAB$L_ACLBUF None Address of buffer that contains ACL XAB$L_ACLCTX None ACL positioning context XAB$W_ACLLEN None Receives the length of an ACL during an Open or Display service XAB$W_ACLSIZ None Length of buffer containing binary ACEs XAB$L_ACLSTS None System error status for ACL processing XAB$B_BLN None Block length XAB$B_COD None Type code XAB$W_GRP FILE OWNER Group number of file owner XAB$W_MBM FILE OWNER Member number of file owner XAB$B_MTACC FILE MT_ Magnetic tape accessibility PROTECTION XAB$L_NXT None Next XAB address XAB$W_PRO FILE PROTECTION File protection; contains four separate fields denoting protection for system, owner, group, and world XAB$B_PROT_ None File protection options OPT XAB$L_UIC FILE OWNER User identification code; contains both the group and member fields
15 – XABRDT
The revision date and time XAB (XABRDT) complements the date and time XAB (XABDAT) by providing revision time and date input to the Close service when RMS closes a file that has been modified. Like the XABDAT, the XABRDT can be used as input to the Create Service or can be used to store revision data returned by the Open service or the Display service. The distinction is that XABDAT cannot be used to modify the revision data. Only the XABRDT can be used to update revision data when a file is closed after being modified. Typically, a process would use the two data structures when it wants to sense and set revision data within a single file operation. To change the revision data, the process must have Control access to the file and must have opened the file for modification using the Put, Update, Truncate, or Delete service. The two XABRDT fields that specify revision values are the XABQ_ RDT (revision date and time) field and the XAB$W_RVN (revision number) field. o The 64-bit XAB$Q_RDT binary field indicates the date and time when the file was last opened for modifications. o The XAB$W_RVN field indicates how many times the file is opened for modifications. The following table indicates how RMS uses the XABRDT fields for various file-processing services. Service Input/Output Close Input Create Input Display Output Erase Not used Extend Not used Open Output The Open service overwrites the XAB$Q_RDT and XAB$W_RVN fields with the file's existing revision values. If you do not change these values, the existing values are subsequently input to the Close service and the file's revision data is not updated. To change the revision data, you must set the fields between the time you open the file and the time you close the file. If you specify a revision date and time of 0 or if you do not include a XABRDT as input to the Close service, RMS uses the current date and time for the revision date and time and increments the revision number. To sense the contents of the XAB$Q_RDT and XAB$W_RVN fields before you specify new values with the XABRDT, examine the XAB$Q_ RDT field and the XAB$W_RVN field in the XABDAT block. The following table lists the symbolic offset, the size in bytes, FDL equivalent, and a brief description of each field. FDL Offset Size Equivalent Description XAB$B_BLN 1 None Block length XAB$B_COD 1 None Type code XAB$L_NXT 4 None Next XAB address XAB$Q_RDT 8 DATE Revision date and time REVISION XAB$W_RVN 2 FILE Revision number REVISION
16 – XABRU
The recovery unit XAB (XABRU) control block supports the use of recovery units to assure data file integrity. See the RMS Journaling for OpenVMS Manual for details.
17 – XABSUM
The summary XAB (XABSUM) can be associated with a FAB at the time a Create, Open, or Display service is invoked. The presence of this XAB during these calls allows RMS to return to your program the total number of keys and allocation areas defined and the version number when the file was created. Note that a XABSUM is used only with indexed files. The following table lists the symbolic offset, the size in bytes, and a brief description of each field. Offset Size Description XAB$B_BLN Byte Block length XAB$B_COD Byte Type code XAB$B_NOA Byte Number of allocation areas defined for the file XAB$B_NOK Byte Numbers of keys defined for the file XAB$L_NXT Longword Next XAB address XAB$W_PVN Word Prolog version number
18 – XABTRM
The terminal XAB (XABTRM) allows extended terminal read operations to occur when a Get service is used for a terminal device. Unlike most other XABs, the XABTRM is associated with a RAB (record stream). The XABTRM provides information that the terminal driver uses to process a user-defined item list that defines the terminal read operation. The following table lists the symbolic offset, the size in bytes, and a brief description of each field. Offset Size Description XAB$B_BLN 1 Block length XAB$B_COD 1 Type code XAB$L_ITMLST 4 Item list address XAB$W_ITMLST_ 2 Item list length LEN XAB$L_NXT 4 Next XAB address To perform the extended terminal read operation, the following information is required: o In the RAB, the RAB$L_ROP field RAB$V_ETO option must be specified (set). o In the RAB, the RAB$L_XAB field must contain the address of the XABTRM. o In the XABTRM, the XAB$L_ITMLST and XAB$W_ITMLST_LEN fields must contain the starting address and length of a valid terminal driver read function item list. o The item list must be supplied according to the conventions described for creating an item list for the terminal driver in the OpenVMS I/O User's Reference Manual. An item list consists of one or more item list entries, where each item defines an attribute of the terminal read operation. Instead of defining terminal read arguments in the RAB, all such arguments (including certain arguments only available with the item list method) are defined in the item list. The following list shows the RAB$L_ROP options related to a terminal read operation and the equivalent item codes: Option Item Code RAB$V_CVT TRM$_MODIFIERS, bit TRM$M_TM_CVTLOW RAB$V_PMT TRM$_PROMPT RAB$V_PTA TRM$_MODIFIERS, bit TRM$M_TM_PURGE RAB$V_RNE TRM$_MODIFIERS, bit TRM$M_TM_NOECHO RAB$V_RNF TRM$_MODIFIERS, bit TRM$M_TM_NOFILTR RAB$V_TMO TRM$_TIMEOUT
19 – $CLOSE
The Close service terminates file processing and closes the file. This service performs an implicit Disconnect service for all record streams associated with the file. Format SYS$CLOSE fab [,[err] [,suc]]
19.1 – Returns
OpenVMS usage:cond_value type: longword access: write only mechanism: by value The value is returned in symbolic offset FAB$L_STS. Symbolic offset FAB$L_STV may contain additional status information.
19.2 – Arguments
fab OpenVMS usage:fab type: longword (unsigned) access: modify mechanism: by reference FAB control block whose contents are to be used as indirect arguments for the Close service call. The fab argument is the address of the FAB control block. err OpenVMS usage:ast_procedure type: procedure value access: call without stack unwinding mechanism: by reference AST-level error completion routine that the service invokes if the operation is unsuccessful. The err argument is the address of the entry mask of this user-written completion routine. suc OpenVMS usage:ast_procedure type: procedure value access: call without stack unwinding mechanism: by reference AST-level success completion routine that the service invokes if the operation is successful. The suc argument is the address of the entry mask of this user-written completion routine.
19.3 – Condition Values Returned
The following condition values can be returned. Use the Help Message utility to access online message descriptions.
20 – $CONNECT
The Connect service establishes a record stream by associating and connecting a RAB with a FAB. You can invoke the Connect service only for files that are already open. The maximum number of record streams that can be connected within an image at one time is 16383. RAB64 USERS RAB64 can replace the RAB or RAB prefix wherever it is used with the Connect service on OpenVMS Alpha systems. Format SYS$CONNECT rab [,[err] [,suc]]
20.1 – Returns
OpenVMS usage:cond_value type: longword access: write only mechanism: by value The value is returned in symbolic offset RAB$L_STS. Symbolic offset RAB$L_STV may contain additional status information.
20.2 – Arguments
rab OpenVMS usage:rab type: longword (unsigned) access: modify mechanism: by reference RAB control block whose contents are to be used as indirect arguments for the Connect service call. The rab argument is the address of the RAB control block. err OpenVMS usage:ast_procedure type: procedure value access: call without stack unwinding mechanism: by reference AST-level error completion routine that the Connect service invokes if the operation is unsuccessful. The err argument is the address of the entry mask of this user-written completion routine. suc OpenVMS usage:ast_procedure type: procedure value access: call without stack unwinding mechanism: by reference AST-level success completion routine that the Connect service invokes if the operation is successful. The suc argument is the address of the entry mask of this user-written completion routine.
20.3 – Condition Values Returned
The following condition values can be returned. Use the Help Message utility to access online message descriptions.
21 – $CREATE
The Create service constructs a new file according to the attributes you specify in the FAB. If any XABs are chained to the FAB, then the characteristics described in the XABs are applied to the file. This service performs implicit Open and Display services. Format SYS$CREATE fab [,[err] [,suc]]
21.1 – Returns
OpenVMS usage:cond_value type: longword access: write only mechanism: by value The value is returned in symbolic offset FAB$L_STS. Symbolic offset FAB$L_STV may contain additional status information.
21.2 – Arguments
fab OpenVMS usage:fab type: longword (unsigned) access: modify mechanism: by reference FAB control block whose contents are to be used as indirect arguments for the Create service call. The fab argument is the address of the FAB control block. err OpenVMS usage:ast_procedure type: procedure value access: call without stack unwinding mechanism: by reference AST-level error completion routine that the service invokes if the operation is unsuccessful. The err argument is the address of the entry mask of this user-written completion routine. suc OpenVMS usage:ast_procedure type: procedure value access: call without stack unwinding mechanism: by reference AST-level success completion routine that the service invokes if the operation is successful. The suc argument is the address of the entry mask of this user-written completion routine.
21.3 – Condition Values Returned
The following condition values can be returned. Use the Help Message utility to access online message descriptions.
22 – $DELETE
The Delete service removes an existing record from a relative or indexed file. You cannot use this service when processing sequential files. RAB64 USERS (ALPHA ONLY) On Alpha systems, RAB64 can replace the RAB or RAB prefix wherever it is used with the Delete service on OpenVMS Alpha systems. Format SYS$DELETE rab [,[err] [,suc]]
22.1 – Returns
OpenVMS usage:cond_value type: longword access: write only mechanism: by value The value is returned in symbolic offset RAB$L_STS. Symbolic offset RAB$L_STV may contain additional status information.
22.2 – Arguments
rab OpenVMS usage:rab type: longword (unsigned) access: modify mechanism: by reference RAB control block whose contents are to be used as indirect arguments for the Delete service call. The rab argument is the address of the RAB control block. err OpenVMS usage:ast_procedure type: procedure value access: call without stack unwinding mechanism: by reference AST-level error completion routine that the service invokes if the operation is unsuccessful. The err argument is the address of the entry mask of this user-written completion routine. suc OpenVMS usage:ast_procedure type: procedure value access: call without stack unwinding mechanism: by reference AST-level success completion routine that the service invokes if the operation is successful. The suc argument is the address of the entry mask of this user-written completion routine.
22.3 – Condition Values Returned
The following condition values can be returned. Use the Help Message utility to access online message descriptions.
23 – $DISCONNECT
The Disconnect service breaks the connection between a RAB and a FAB, thereby terminating a record stream. All system resources, such as I/O buffers and data structure space, are deallocated. RAB64 USERS (ALPHA ONLY) On Alpha systems, RAB64 can replace the RAB or RAB prefix wherever it is used with the Disconnect service on OpenVMS Alpha systems. Format SYS$DISCONNECT rab [,[err] [,suc]]
23.1 – Returns
OpenVMS usage:cond_value type: longword access: write only mechanism: by value The value is returned in symbolic offset RAB$L_STS. Symbolic offset RAB$L_STV may contain additional status information.
23.2 – Arguments
rab OpenVMS usage:rab type: longword (unsigned) access: modify mechanism: by reference RAB control block whose contents are to be used as indirect arguments for the Disconnect service call. The rab argument is the address of the RAB control block. err OpenVMS usage:ast_procedure type: procedure value access: call without stack unwinding mechanism: by reference AST-level error completion routine that the service invokes if the operation is unsuccessful. The err argument is the address of the entry mask of this user-written completion routine. suc OpenVMS usage:ast_procedure type: procedure value access: call without stack unwinding mechanism: by reference AST-level success completion routine that the service invokes if the operation is successful. The suc argument is the address of the entry mask of this user-written completion routine.
23.3 – Condition Values Returned
The following condition values can be returned. Use the Help Message utility to access online message descriptions.
24 – $DISPLAY
The Display service retrieves file attribute information about a file and places this information in fields in the FAB, in XABs chained to the FAB, and in a NAM or NAML block (if one is requested). Format SYS$DISPLAY fab [,[err] [,suc]]
24.1 – Returns
OpenVMS usage:cond_value type: longword access: write only mechanism: by value The value is returned in symbolic offset FAB$L_STS. Symbolic offset FAB$L_STV may contain additional status information.
24.2 – Arguments
fab OpenVMS usage:fab type: longword (unsigned) access: modify mechanism: by reference FAB control block whose contents are to be used as indirect arguments for the Display service call. The fab argument is the address of the FAB control block. err OpenVMS usage:ast_procedure type: procedure value access: call without stack unwinding mechanism: by reference AST-level error completion routine that the service invokes if the operation is unsuccessful. The err argument is the address of the entry mask of this user-written completion routine. suc OpenVMS usage:ast_procedure type: procedure value access: call without stack unwinding mechanism: by reference AST-level success completion routine that the service invokes if the operation is successful. The suc argument is the address of the entry mask of this user-written completion routine.
24.3 – Condition Values Returned
The following condition values can be returned. Use the Help Message utility to access online message descriptions.
25 – $ENTER
The Enter service inserts a file name in a directory. NOTE The $ENTER service is not supported for DECnet. Format SYS$ENTER fab [,[err] [,suc]]
25.1 – Returns
OpenVMS usage:cond_value type: longword access: write only mechanism: by value The value is returned in symbolic offset FAB$L_STS. Symbolic offset FAB$L_STV may contain additional status information.
25.2 – Arguments
fab OpenVMS usage:fab type: longword (unsigned) access: modify mechanism: by reference FAB control block whose contents are to be used as indirect arguments for the Enter service call. The fab argument is the address of the FAB control block. err OpenVMS usage:ast_procedure type: procedure value access: call without stack unwinding mechanism: by reference AST-level error completion routine that the service invokes if the operation is unsuccessful. The err argument is the address of the entry mask of this user-written completion routine. suc OpenVMS usage:ast_procedure type: procedure value access: call without stack unwinding mechanism: by reference AST-level success completion routine that the service invokes if the operation is successful. The suc argument is the address of the entry mask of this user-written completion routine.
25.3 – Condition Values Returned
The following condition values can be returned. Use the Help Message utility to access online message descriptions.
26 – $ERASE
The Erase service deletes a disk file and removes the file's directory entry specified in the path to the file. If additional directory entries have been created for this file by the Enter service, you must use the Remove service to delete them. Format SYS$ERASE fab [,[err] [,suc]]
26.1 – Returns
OpenVMS usage:cond_value type: longword access: write only mechanism: by value The value is returned in symbolic offset FAB$L_STS. Symbolic offset FAB$L_STV may contain additional status information.
26.2 – Arguments
fab OpenVMS usage:fab type: longword (unsigned) access: modify mechanism: by reference FAB control block whose contents are to be used as indirect arguments for the Erase service call. The fab argument is the address of the FAB control block. err OpenVMS usage:ast_procedure type: procedure value access: call without stack unwinding mechanism: by reference AST-level error completion routine that the service invokes if the operation is unsuccessful. The err argument is the address of the entry mask of this user-written completion routine. suc OpenVMS usage:ast_procedure type: procedure value access: call without stack unwinding mechanism: by reference AST-level success completion routine that the service invokes if the operation is successful. The suc argument is the address of the entry mask of this user-written completion routine.
26.3 – Condition Values Returned
The following condition values can be returned. Use the Help Message utility to access online message descriptions.
27 – $EXTEND
The Extend service increases the amount of space allocated to a disk file. This service is most useful for extending relative files and indexed files when you are doing block I/O transfers using the Write service. Format SYS$EXTEND fab [,[err] [,suc]]
27.1 – Returns
OpenVMS usage:cond_value type: longword access: write only mechanism: by value The value is returned in symbolic offset FAB$L_STS. Symbolic offset FAB$L_STV may contain additional status information.
27.2 – Arguments
fab OpenVMS usage:fab type: longword (unsigned) access: modify mechanism: by reference FAB control block whose contents are to be used as indirect arguments for the Extend service call. The fab argument is the address of the FAB control block. err OpenVMS usage:ast_procedure type: procedure value access: call without stack unwinding mechanism: by reference AST-level error completion routine that the service invokes if the operation is unsuccessful. The err argument is the address of the entry mask of this user-written completion routine. suc OpenVMS usage:ast_procedure type: procedure value access: call without stack unwinding mechanism: by reference AST-level success completion routine that the service invokes if the operation is successful. The suc argument is the address of the entry mask of this user-written completion routine.
27.3 – Condition Values Returned
The following condition values can be returned. Use the Help Message utility to access online message descriptions.
28 – $FIND
The Find service locates a specified record in a file and returns its record file address in the RAB$W_RFA field of the RAB. The Find service can be used with all file organizations. RAB64 USERS (ALPHA ONLY) On Alpha systems, RAB64 can replace the RAB or RAB prefix wherever it is used with the Find service on OpenVMS Alpha systems. Format SYS$FIND rab [,[err] [,suc]]
28.1 – Returns
OpenVMS usage:cond_value type: longword access: write only mechanism: by value The value is returned in symbolic offset RAB$L_STS. Symbolic offset RAB$L_STV may contain additional status information.
28.2 – Arguments
rab OpenVMS usage:rab type: longword (unsigned) access: modify mechanism: by reference RAB control block whose contents are to be used as indirect arguments for the Find service call. The rab argument is the address of the RAB control block. err OpenVMS usage:ast_procedure type: procedure value access: call without stack unwinding mechanism: by reference AST-level error completion routine that the service invokes if the operation is unsuccessful. The err argument is the address of the entry mask of this user-written completion routine. suc OpenVMS usage:ast_procedure type: procedure value access: call without stack unwinding mechanism: by reference AST-level success completion routine that the service invokes if the operation is successful. The suc argument is the address of the entry mask of this user-written completion routine.
28.3 – Condition Values Returned
The following condition values can be returned. Use the Help Message utility to access online message descriptions.
29 – $FLUSH
The Flush service writes out all modified I/O buffers and file attributes associated with the file. This ensures that all record activity up to the point at which the Flush service executes is actually reflected in the file. RAB64 USERS (ALPHA ONLY) On Alpha systems, RAB64 can replace the RAB or RAB prefix wherever it is used with the Flush service on OpenVMS Alpha systems. Format SYS$FLUSH rab [,[err] [,suc]]
29.1 – Returns
OpenVMS usage:cond_value type: longword access: write only mechanism: by value The value is returned in symbolic offset RAB$L_STS. Symbolic offset RAB$L_STV may contain additional status information.
29.2 – Arguments
rab OpenVMS usage:rab type: longword (unsigned) access: modify mechanism: by reference RAB control block whose contents are to be used as indirect arguments for the Flush service call. The rab argument is the address of the RAB control block. err OpenVMS usage:ast_procedure type: procedure value access: call without stack unwinding mechanism: by reference AST-level error completion routine that the service invokes if the operation is unsuccessful. The err argument is the address of the entry mask of this user-written completion routine. suc OpenVMS usage:ast_procedure type: procedure value access: call without stack unwinding mechanism: by reference AST-level success completion routine that the service invokes if the operation is successful. The suc argument is the address of the entry mask of this user-written completion routine.
29.3 – Condition Values Returned
The following condition values can be returned. Use the Help Message utility to access online message descriptions.
30 – $FREE
The Free service unlocks all records that were previously locked for the record stream. RAB64 USERS (ALPHA ONLY) On Alpha systems, RAB64 can replace the RAB or RAB prefix wherever it is used with the Free service on OpenVMS Alpha systems. Format SYS$FREE rab [,[err] [,suc]]
30.1 – Returns
OpenVMS usage:cond_value type: longword access: write only mechanism: by value The value is returned in symbolic offset RAB$L_STS. Symbolic offset RAB$L_STV may contain additional status information.
30.2 – Arguments
rab OpenVMS usage:rab type: longword (unsigned) access: modify mechanism: by reference RAB control block whose contents are to be used as indirect arguments for the Free service call. The rab argument is the address of the RAB control block. err OpenVMS usage:ast_procedure type: procedure value access: call without stack unwinding mechanism: by reference AST-level error completion routine that the service invokes if the operation is unsuccessful. The err argument is the address of the entry mask of this user-written completion routine. suc OpenVMS usage:ast_procedure type: procedure value access: call without stack unwinding mechanism: by reference AST-level success completion routine that the service invokes if the operation is successful. The suc argument is the address of the entry mask of this user-written completion routine.
30.3 – Condition Values Returned
The following condition values can be returned. Use the Help Message utility to access online message descriptions.
31 – $GET
The Get service retrieves a record from a file. NOTE When you invoke the Get service, RMS takes control of the record buffer and may modify it. RMS returns the record size and guarantees the contents only from where it accessed the record to the completion of the record. RAB64 USERS (ALPHA ONLY) On Alpha systems, RAB64 can replace the RAB or RAB prefix wherever it is used with the Get service on OpenVMS Alpha systems. Format SYS$GET rab [,[err] [,suc]]
31.1 – Returns
OpenVMS usage:cond_value type: longword access: write only mechanism: by value The value is returned in symbolic offset RAB$L_STS. Symbolic offset RAB$L_STV may contain additional status information.
31.2 – Arguments
rab OpenVMS usage:rab type: longword (unsigned) access: modify mechanism: by reference RAB control block whose contents are to be used as indirect arguments for the Get service call. The rab argument is the address of the RAB control block. err OpenVMS usage:ast_procedure type: procedure value access: call without stack unwinding mechanism: by reference AST-level error completion routine that the service invokes if the operation is unsuccessful. The err argument is the address of the entry mask of this user-written completion routine. suc OpenVMS usage:ast_procedure type: procedure value access: call without stack unwinding mechanism: by reference AST-level success completion routine that the service invokes if the operation is successful. The suc argument is the address of the entry mask of this user-written completion routine.
31.3 – Condition Values Returned
The following condition values can be returned. Use the Help Message utility to access online message descriptions.
32 – $NXTVOL
The Next Volume service allows you to process the next tape volume in a multiple volume set. This service applies only to files on magnetic tape volumes. RAB64 USERS (ALPHA ONLY) On Alpha systems, RAB64 can replace the RAB or RAB prefix wherever it is used with the Next Volume service on OpenVMS Alpha systems. Format SYS$NXTVOL rab [,[err] [,suc]]
32.1 – Returns
OpenVMS usage:cond_value type: longword access: write only mechanism: by value The value is returned in symbolic offset RAB$L_STS. Symbolic offset RAB$L_STV may contain additional status information.
32.2 – Arguments
rab OpenVMS usage:rab type: longword (unsigned) access: modify mechanism: by reference RAB control block whose contents are to be used as indirect arguments for the Next Volume service call. The rab argument is the address of the RAB control block. err OpenVMS usage:ast_procedure type: procedure value access: call without stack unwinding mechanism: by reference AST-level error completion routine that the service invokes if the operation is unsuccessful. The err argument is the address of the entry mask of this user-written completion routine. suc OpenVMS usage:ast_procedure type: procedure value access: call without stack unwinding mechanism: by reference AST-level success completion routine that the service invokes if the operation is successful. The suc argument is the address of the entry mask of this user-written completion routine.
32.3 – Condition Values Returned
The following condition values can be returned. Use the Help Message utility to access online message descriptions.
33 – $OPEN
The Open service makes an existing file available for processing by your program. The Open service specifies the type of record access to be used and determines whether the file can be shared. The Open service also performs an implicit Display service. The maximum number of files that can be open within an image at one time is 16383. Format SYS$OPEN fab [,[err] [,suc]]
33.1 – Returns
OpenVMS usage:cond_value type: longword access: write only mechanism: by value The value is returned in symbolic offset FAB$L_STS. Symbolic offset FAB$L_STV may contain additional status information.
33.2 – Arguments
fab OpenVMS usage:fab type: longword (unsigned) access: modify mechanism: by reference FAB control block whose contents are to be used as indirect arguments for the Open service call. The fab argument is the address of the FAB control block. err OpenVMS usage:ast_procedure type: procedure value access: call without stack unwinding mechanism: by reference AST-level error completion routine that the service invokes if the operation is unsuccessful. The err argument is the address of the entry mask of this user-written completion routine. suc OpenVMS usage:ast_procedure type: procedure value access: call without stack unwinding mechanism: by reference AST-level success completion routine that the service invokes if the operation is successful. The suc argument is the address of the entry mask of this user-written completion routine.
33.3 – Condition Values Returned
The following condition values can be returned. Use the Help Message utility to access online message descriptions.
34 – $PARSE
The Parse service analyzes the file specification string and fills in various NAM or NAML block fields. Format SYS$PARSE fab [,[err] [,suc]]
34.1 – Returns
OpenVMS usage:cond_value type: longword access: write only mechanism: by value The value is returned in symbolic offset FAB$L_STS. Symbolic offset FAB$L_STV may contain additional status information.
34.2 – Arguments
fab OpenVMS usage:fab type: longword (unsigned) access: modify mechanism: by reference FAB control block whose contents are to be used as indirect arguments for the Parse service call. The fab argument is the address of the FAB control block. err OpenVMS usage:ast_procedure type: procedure value access: call without stack unwinding mechanism: by reference AST-level error completion routine that the service invokes if the operation is unsuccessful. The err argument is the address of the entry mask of this user-written completion routine. suc OpenVMS usage:ast_procedure type: procedure value access: call without stack unwinding mechanism: by reference AST-level success completion routine that the service invokes if the operation is successful. The suc argument is the address of the entry mask of this user-written completion routine.
34.3 – Condition Values Returned
The following condition values can be returned. Use the Help Message utility to access online message descriptions.
35 – $PUT
The Put service inserts a record into a file. RAB64 USERS RAB64 can replace the RAB or RAB prefix wherever it is used with the Put service on OpenVMS Alpha systems. Format SYS$PUT rab [,[err] [,suc]]
35.1 – Returns
OpenVMS usage:cond_value type: longword access: write only mechanism: by value The value is returned in symbolic offset RAB$L_STS. Symbolic offset RAB$L_STV may contain additional status information.
35.2 – Arguments
rab OpenVMS usage:rab type: longword (unsigned) access: modify mechanism: by reference RAB control block whose contents are to be used as indirect arguments for the Put service call. The rab argument is the address of the RAB control block. err OpenVMS usage:ast_procedure type: procedure value access: call without stack unwinding mechanism: by reference AST-level error completion routine that the service invokes if the operation is unsuccessful. The err argument is the address of the entry mask of this user-written completion routine. suc OpenVMS usage:ast_procedure type: procedure value access: call without stack unwinding mechanism: by reference AST-level success completion routine that the service invokes if the operation is successful. The suc argument is the address of the entry mask of this user-written completion routine.
35.3 – Condition Values Returned
The following condition values can be returned. Use the Help Message utility to access online message descriptions.
36 – $READ
The Read service retrieves a specified number of bytes from a file (beginning on a block boundary) and transfers them to memory. A Read service using block I/O can be performed on any file organization. RAB64 USERS (ALPHA ONLY) On Alpha systems, RAB64 can replace the RAB or RAB prefix wherever it is used with the Read service on OpenVMS Alpha systems. Format SYS$READ rab [,[err] [,suc]]
36.1 – Returns
OpenVMS usage:cond_value type: longword access: write only mechanism: by value The value is returned in symbolic offset RAB$L_STS. Symbolic offset RAB$L_STV may contain additional status information.
36.2 – Arguments
rab OpenVMS usage:rab type: longword (unsigned) access: modify mechanism: by reference RAB control block whose contents are to be used as indirect arguments for the Read service call. The rab argument is the address of the RAB control block. err OpenVMS usage:ast_procedure type: procedure value access: call without stack unwinding mechanism: by reference AST-level error completion routine that the service invokes if the operation is unsuccessful. The err argument is the address of the entry mask of this user-written completion routine. suc OpenVMS usage:ast_procedure type: procedure value access: call without stack unwinding mechanism: by reference AST-level success completion routine that the service invokes if the operation is successful. The suc argument is the address of the entry mask of this user-written completion routine.
36.3 – Condition Values Returned
The following condition values can be returned. Use the Help Message utility to access online message descriptions.
37 – $RELEASE
The Release service unlocks the record specified by the contents of the record file address (RAB$W_RFA) field of the RAB. RAB64 USERS RAB64 can replace the RAB or RAB prefix wherever it is used with the Release service on OpenVMS Alpha systems. Format SYS$RELEASE rab [,[err] [,suc]]
37.1 – Returns
OpenVMS usage:cond_value type: longword access: write only mechanism: by value The value is returned in symbolic offset RAB$L_STS. Symbolic offset RAB$L_STV may contain additional status information.
37.2 – Arguments
rab OpenVMS usage:rab type: longword (unsigned) access: modify mechanism: by reference RAB control block whose contents are to be used as indirect arguments for the Release service call. The rab argument is the address of the RAB control block. err OpenVMS usage:ast_procedure type: procedure value access: call without stack unwinding mechanism: by reference AST-level error completion routine that the service invokes if the operation is unsuccessful. The err argument is the address of the entry mask of this user-written completion routine. suc OpenVMS usage:ast_procedure type: procedure value access: call without stack unwinding mechanism: by reference AST-level success completion routine that the service invokes if the operation is successful. The suc argument is the address of the entry mask of this user-written completion routine.
37.3 – Condition Values Returned
The following condition values can be returned. Use the Help Message utility to access online message descriptions.
38 – $REMOVE
The Remove service deletes a file name from a directory. It is the reverse of the Enter service. NOTE The $REMOVE service is not supported for DECnet. Format SYS$REMOVE fab [,[err] [,suc]]
38.1 – Returns
OpenVMS usage:cond_value type: longword access: write only mechanism: by value The value is returned in symbolic offset FAB$L_STS. Symbolic offset FAB$L_STV may contain additional status information.
38.2 – Arguments
fab OpenVMS usage:fab type: longword (unsigned) access: modify mechanism: by reference FAB control block whose contents are to be used as indirect arguments for the Remove service call. The fab argument is the address of the FAB control block. err OpenVMS usage:ast_procedure type: procedure value access: call without stack unwinding mechanism: by reference AST-level error completion routine that the service invokes if the operation is unsuccessful. The err argument is the address of the entry mask of this user-written completion routine. suc OpenVMS usage:ast_procedure type: procedure value access: call without stack unwinding mechanism: by reference AST-level success completion routine that the service invokes if the operation is successful. The suc argument is the address of the entry mask of this user-written completion routine.
38.3 – Condition Values Returned
The following condition values can be returned. Use the Help Message utility to access online message descriptions.
39 – $RENAME
You can use this service to change the name, type, or version of a file, or to move a file to another directory by changing its directory specification. However, note that you cannot use this service to move a file to another device. Format SYS$RENAME old-fab ,[err] ,[suc] ,new-fab
39.1 – Returns
OpenVMS usage:cond_value type: longword access: write only mechanism: by value The value is returned in symbolic offset FAB$L_STS. Symbolic offset FAB$L_STV may contain additional status information.
39.2 – Arguments
old-fab OpenVMS usage:fab type: longword (unsigned) access: modify mechanism: by reference FAB control block whose contents are to be used as indirect arguments for the Rename service call. The old-fab argument is the address of the FAB control block that specifies the old file name. err OpenVMS usage:ast_procedure type: procedure value access: call without stack unwinding mechanism: by reference AST-level error completion routine that the service invokes if the operation is unsuccessful. The err argument is the address of the entry mask of this user-written completion routine. suc OpenVMS usage:ast_procedure type: procedure value access: call without stack unwinding mechanism: by reference AST-level success completion routine that the service invokes if the operation is successful. The suc argument is the address of the entry mask of this user-written completion routine. new-fab OpenVMS usage:fab type: longword (unsigned) access: modify mechanism: by reference The new-fab argument is the address of the FAB control block that specifies the new file name. NOTE If you invoke the Rename service using the $RENAME macro and if you do not specify arguments, you must construct an additional field within your argument list to contain the address of the FAB that specifies the new file name. This additional field is placed in the argument list following the field for the success completion routine and the argument count is set to 4.
39.3 – Condition Values Returned
The following condition values can be returned. Use the Help Message utility to access online message descriptions.
40 – $REWIND
The Rewind service sets the context of a record stream to the first record in the file. RMS alters the context of the next record to indicate the first record as being the next record. RAB64 USERS (ALPHA ONLY) On Alpha systems, RAB64 can replace the RAB or RAB prefix wherever it is used with the Rewind service on OpenVMS Alpha systems. Format SYS$REWIND rab [,[err] [,suc]]
40.1 – Returns
OpenVMS usage:cond_value type: longword access: write only mechanism: by value The value is returned in symbolic offset RAB$L_STS. Symbolic offset RAB$L_STV may contain additional status information.
40.2 – Arguments
rab OpenVMS usage:rab type: longword (unsigned) access: modify mechanism: by reference RAB control block whose contents are to be used as indirect arguments for the Rewind service call. The rab argument is the address of the RAB control block. err OpenVMS usage:ast_procedure type: procedure value access: call without stack unwinding mechanism: by reference AST-level error completion routine that the service invokes if the operation is unsuccessful. The err argument is the address of the entry mask of this user-written completion routine. suc OpenVMS usage:ast_procedure type: procedure value access: call without stack unwinding mechanism: by reference AST-level success completion routine that the service invokes if the operation is successful. The suc argument is the address of the entry mask of this user-written completion routine.
40.3 – Condition Values Returned
The following condition values can be returned. Use the Help Message utility to access online message descriptions.
41 – $SEARCH
The Search service scans a directory file and fills in various NAM or NAML block fields. This service should be preceded by the Parse service, in order to initialize the NAM or NAML block appropriately. Format SYS$SEARCH fab [,[err] [,suc]]
41.1 – Returns
OpenVMS usage:cond_value type: longword access: write only mechanism: by value The value is returned in symbolic offset FAB$L_STS. Symbolic offset FAB$L_STV may contain additional status information.
41.2 – Arguments
fab OpenVMS usage:fab type: longword (unsigned) access: modify mechanism: by reference FAB control block whose contents are to be used as indirect arguments for the Search service call. The fab argument is the address of the FAB control block. err OpenVMS usage:ast_procedure type: procedure value access: call without stack unwinding mechanism: by reference AST-level error completion routine that the service invokes if the operation is unsuccessful. The err argument is the address of the entry mask of this user-written completion routine. suc OpenVMS usage:ast_procedure type: procedure value access: call without stack unwinding mechanism: by reference AST-level success completion routine that the service invokes if the operation is successful. The suc argument is the address of the entry mask of this user-written completion routine.
41.3 – Condition Values Returned
The following condition values can be returned. Use the Help Message utility to access online message descriptions.
42 – $SPACE
The Space service lets you space (skip) a tape file forward or backward a specified number of blocks. RAB64 USERS (ALPHA ONLY) On Alpha systems, RAB64 can replace the RAB or RAB prefix wherever it is used with the Space service on OpenVMS Alpha systems. Format SYS$SPACE rab [,[err] [,suc]]
42.1 – Returns
OpenVMS usage:cond_value type: longword access: write only mechanism: by value The value is returned in symbolic offset RAB$L_STS. Symbolic offset RAB$L_STV may contain additional status information.
42.2 – Arguments
rab OpenVMS usage:rab type: longword (unsigned) access: modify mechanism: by reference RAB control block whose contents are to be used as indirect arguments for the Space service call. The rab argument is the address of the RAB control block. err OpenVMS usage:ast_procedure type: procedure value access: call without stack unwinding mechanism: by reference AST-level error completion routine that the service invokes if the operation is unsuccessful. The err argument is the address of the entry mask of this user-written completion routine. suc OpenVMS usage:ast_procedure type: procedure value access: call without stack unwinding mechanism: by reference AST-level success completion routine that the service invokes if the operation is successful. The suc argument is the address of the entry mask of this user-written completion routine.
42.3 – Condition Values Returned
The following condition values can be returned. Use the Help Message utility to access online message descriptions.
43 – $TRUNCATE
The Truncate service shortens a sequential file. RAB64 USERS (ALPHA ONLY) On Alpha systems, RAB64 can replace the RAB or RAB prefix wherever it is used with the Truncate service on OpenVMS Alpha systems. Format SYS$TRUNCATE rab [,[err] [,suc]]
43.1 – Returns
OpenVMS usage:cond_value type: longword access: write only mechanism: by value The value is returned in symbolic offset RAB$L_STS. Symbolic offset RAB$L_STV may contain additional status information.
43.2 – Arguments
rab OpenVMS usage:rab type: longword (unsigned) access: modify mechanism: by reference RAB control block whose contents are to be used as indirect arguments for the Truncate service call. The rab argument is the address of the RAB control block. err OpenVMS usage:ast_procedure type: procedure value access: call without stack unwinding mechanism: by reference AST-level error completion routine that the service invokes if the operation is unsuccessful. The err argument is the address of the entry mask of this user-written completion routine. suc OpenVMS usage:ast_procedure type: procedure value access: call without stack unwinding mechanism: by reference AST-level success completion routine that the service invokes if the operation is successful. The suc argument is the address of the entry mask of this user-written completion routine.
43.3 – Condition Values Returned
The following condition values can be returned. Use the Help Message utility to access online message descriptions.
44 – $UPDATE
The Update service allows you to modify the contents of an existing record in a file residing on a disk device. RAB64 USERS (ALPHA ONLY) On Alpha systems, RAB64 can replace the RAB or RAB prefix wherever it is used with the Update service on OpenVMS Alpha systems. Format SYS$UPDATE rab [,[err] [,suc]]
44.1 – Returns
OpenVMS usage:cond_value type: longword access: write only mechanism: by value The value is returned in symbolic offset RAB$L_STS. Symbolic offset RAB$L_STV may contain additional status information.
44.2 – Arguments
rab OpenVMS usage:rab type: longword (unsigned) access: modify mechanism: by reference RAB control block whose contents are to be used as indirect arguments for the Update service call. The rab argument is the address of the RAB control block. err OpenVMS usage:ast_procedure type: procedure value access: call without stack unwinding mechanism: by reference AST-level error completion routine that the service invokes if the operation is unsuccessful. The err argument is the address of the entry mask of this user-written completion routine. suc OpenVMS usage:ast_procedure type: procedure value access: call without stack unwinding mechanism: by reference AST-level success completion routine that the service invokes if the operation is successful. The suc argument is the address of the entry mask of this user-written completion routine.
44.3 – Condition Values Returned
The following condition values can be returned. Use the Help Message utility to access online message descriptions.
45 – $WAIT
The Wait service suspends image execution until an asynchronous file or record service completes. The same control block that is used with the asynchronous file or record service call is specified as the parameter for the Wait service. If it is an asynchronous file service, the control block is a FAB; if it is an asynchronous record service, the control block is a RAB. Upon completion of the service, RMS returns control to your program at the point following the Wait service call. RAB64 USERS (ALPHA ONLY) On Alpha systems, RAB64 can replace the RAB or RAB prefix wherever it is used with the Wait service on OpenVMS Alpha systems. Format SYS$WAIT control-block
45.1 – Returns
OpenVMS usage:cond_value type: longword access: write only mechanism: by value The value is returned in symbolic offset FAB$L_STS or RAB$L_STS. Symbolic offset FAB$L_STV or RAB$L_STV may contain additional status information.
45.2 – Argument
control-block type: access: mechanism: 0 fab or rab OpenVMS usage:fab or rab type: longword (unsigned) access: modify mechanism: by reference FAB or RAB control block whose contents are to be used as indirect arguments for the Open service call. The fab or rab argument is the address of the FAB or RAB control block.
45.3 – Condition Values Returned
The following condition values can be returned. Use the Help Message utility to access online message descriptions. The RMS completion status codes for the Wait service are determined by the service being awaited, unless the address of the FAB or RAB specified for the wait is different from that specified for the awaited operation. In this case, RMS$_NORMAL is returned.
46 – $WRITE
The Write service transfers a user-specified number of bytes (beginning on a block boundary) to an RMS file of any file organization. RAB64 USERS (ALPHA ONLY) On Alpha systems, RAB64 can replace the RAB or RAB prefix wherever it is used with the Write service on OpenVMS Alpha systems. Format SYS$WRITE rab [,[err] [,suc]]
46.1 – Returns
OpenVMS usage:cond_value type: longword access: write only mechanism: by value The value is returned in symbolic offset RAB$L_STS. Symbolic offset RAB$L_STV may contain additional status information.
46.2 – Arguments
rab OpenVMS usage:rab type: longword (unsigned) access: modify mechanism: by reference RAB control block whose contents are to be used as indirect arguments for the Write service call. The rab argument is the address of the RAB control block. err OpenVMS usage:ast_procedure type: procedure value access: call without stack unwinding mechanism: by reference AST-level error completion routine that the service invokes if the operation is unsuccessful. The err argument is the address of the entry mask of this user-written completion routine. suc OpenVMS usage:ast_procedure type: procedure value access: call without stack unwinding mechanism: by reference AST-level success completion routine that the service invokes if the operation is successful. The suc argument is the address of the entry mask of this user-written completion routine.
46.3 – Condition Values Returned
The following condition values can be returned. Use the Help Message utility to access online message descriptions.
47 – RMS Control Block Macros
This topic provides you with the format of each RMS control block macro.
47.1 – $FAB
The $FAB macro allocates storage for a FAB and initializes certain FAB fields with defaults and user-specified values. No value is returned for this assembly-time operation. Format $FAB ALQ=allocation-quantity, BKS=bucket-size, BLS=block-size, CHAN_MODE=channel-access-mode CTX=user-context-value, DEQ=extension-quantity, DNA=default-filespec-address, DNM=<filespec>, DNS=default-filespec-string-size, FAC=<BIO BRO DEL GET PUT TRN UPD>, FNA=filespec-string-address, FNM=<filespec>, FNS=filespec-string-size, FOP=<CBT CIF CTG DFW DLT MXV NAM NEF NFS OFP POS RCK RWC RWO SCF SPL SQO SUP TEF TMD TMP UFO WCK>, FSZ=header-size, GBC=global-buffer-count, LNM_MODE=logical-name-translation-access-mode, MRN=maximum-record-number, MRS=maximum-record-size, NAM=nam-address, ORG={IDX|REL|SEQ}, RAT=<BLK{CR|FTN|PRN}>, RFM={FIX|STM|STMCR|STMLF|UDF|VAR|VFC}, RTV=window-size, SHR=<DEL GET MSE NIL PUT UPD UPI NQL>, XAB=xab-address
47.2 – $FAB STORE
The $FAB_STORE macro moves user-specified values into fields of the specified FAB. The expanded $FAB_STORE code executes at run time on a previously initialized (allocated) FAB, in contrast to the $FAB macro, which initializes the FAB at assembly time. The $FAB_STORE macro must reside in a code program section. Format $FAB_STORE fab=fab-address, ALQ=#allocation-quantity, BKS=#bucket-size, BLS=#block-size, CHAN_MODE=#channel-access-mode CTX=user-context-value, DEQ=#extension-quantity, DNA=default-filespec-address, DNS=#default-filespec-string-size, FAC=<BIO BRO DEL GET PUT TRN UPD>, FNA=filespec-string-address, FNS=#filespec-string-size, FOP=<CBT CIF CTG DFW DLT MXV NAM NEF NFS OFP POS RCK RWC RWO SCF SPL SQO SUP TEF TMD TMP UFO WCK>, FSZ=#header-size, GBC=#global-buffer-count, LNM_MODE=#logical-name-translation-access-mode, MRN=#maximum-record-number, MRS=#maximum-record-size, NAM=nam-address, ORG={IDX|REL|SEQ}, RAT=<BLK{CR|FTN|PRN}>, RFM={FIX|STM|STMCR|STMLF|UDF|VAR|VFC}, RTV=#window-size, SHR=<DEL GET MSE NIL PUT UPD UPI NQL>, XAB=xab-address
47.3 – $NAM
The $NAM macro allocates storage for a NAM block and initializes certain NAM fields with default values and user-specified values. No value is returned for this assembly-time operation. Format $NAM ESA=expanded-string-address, ESS=expanded-string-size, NOP=<NOCONCEAL PWD NO_SHORT_UPCASE SRCHXABS SYNCHK>, RLF=related-file-nam-block-address, RSA=resultant-string-address, RSS=resultant-string-size
47.4 – $NAM STORE
The $NAM_STORE macro moves user-specified values into fields of the specified NAM block. The expanded $NAM_STORE code executes at run time on a previously initialized (allocated) NAM block, in contrast to the $NAM macro, which initializes a NAM block at assembly time. The $NAM_STORE macro must reside in a code program section. Format $NAM_STORE NAM=nam-address, DID=#directory-identification, DVI=#device-identification, ESA=expanded-string-address, ESS=#expanded-string-size, FID=#file-identification, NOP=<NOCONCEAL NO_SHORT_UPCASE PWD SRCHXABS SYNCHK>, RLF=related-file-nam-block-address, RSA=resultant-string-address, RSS=#resultant-string-size
47.5 – $NAML
The $NAML macro allocates storage for a NAML block and initializes certain NAML fields with default values and user- specified values. Format $NAML ESA=expanded-string-address, ESS=expanded-string-size, NOP=<NOCONCEAL PWD NO_SHORT_UPCASE SRCHXABS SYNCHK>, RLF=related-file-nam-block-address, RSA=resultant-string-address, RSS=resultant-string-size, FILESYS_NAME=file system name buffer address, FILESYS_NAME_ALLOC=file system name buffer size, INPUT_FLAGS=<NO_SHORT_OUTPUT>, LONG_DEFNAME=long default file specification string address, LONG_DEFNAME_SIZE=long default file specification string size, LONG_FILENAME=long file specification string address, LONG_FILENAME_SIZE=long file specification string size, LONG_EXPAND=long expanded string area address, LONG_EXPAND_ALLOC=long expanded string area size, LONG_RESULT=long resultant string area address, LONG_RESULT_ALLOC=long resultant string area size, USER_CONTEXT=user context
47.6 – $NAML STORE
The $NAML_STORE macro moves user-specified values into fields of the specified NAML block. The expanded $NAML_STORE code executes at run time on a previously initialized (allocated) NAML block, in contrast to the $NAML macro, which initializes a NAML block at assembly time. The $NAML_STORE macro must reside in a code program section. Format $NAML_STORE NAM=naml-address, DID=#directory-identification, DVI=#device-identification, ESA=expanded-string-address, ESS=#expanded-string-size, FID=#file-identification, NOP=<NOCONCEAL NO_SHORT_UPCASE PWD SRCHXABS SYNCHK>, RLF=related-file-nam-block-address, RSA=resultant-string-address, RSS=#resultant-string-size, FILESYS_NAME=file system name buffer address, FILESYS_NAME_ALLOC=#file system name buffer size, INPUT_FLAGS=<NO_SHORT_OUTPUT>, LONG_DEFNAME=long default file specification string address, LONG_DEFNAME_SIZE=#long default file specification string size, LONG_FILENAME=long file specification string address, LONG_FILENAME_SIZE=#long file specification string size, LONG_EXPAND=long expanded string area address, LONG_EXPAND_ALLOC=#long expanded string area size, LONG_RESULT=long resultant string area address, LONG_RESULT_ALLOC=#long resultant string area size, USER_CONTEXT=#user context
47.7 – $RAB
The $RAB macro allocates storage for a RAB and initializes certain RAB fields with defaults and user-specified values. You cannot use this macro within a sequence of executable instructions. No value is returned for this assembly-time operation. Format $RAB BKT=bucket-code-number, CTX=user-context-value, FAB=fab-address, KBF=key-buffer-address, KRF=key-of-reference-number, KSZ=key-size, MBC=multiblock-count-number, MBF=multibuffer-count-number, PBF=prompt-buffer-address, PSZ=prompt-buffer-size, RAC={KEY|RFA|SEQ}, RBF=record-buffer-address, RHB=record-header-buffer-address, ROP=<ASY BIO CCO CDK CVT EOF EQNXT ETO FDL KGE KGT LIM LOA LOC NLK NXR NXT PMT PTA RAH REA REV RLK RNE RNF RRL TMO TPT UIF ULK WAT WBH>, ROP_2=<NQL NODLCKWT NODLCKBLK>, RSZ=record-size, TMO=time-out-number-of-seconds, UBF=user-record-buffer-address, USZ=user-record-buffer-size, XAB=xab-address
47.8 – $RAB STORE
The $RAB_STORE macro moves user-specified values into fields of the specified RAB. The expanded $RAB_STORE code executes at run time on a previously initialized (allocated) RAB, in contrast to the $RAB macro, which allocates and initializes the RAB at assembly time. The $RAB_STORE macro must reside in a code program section. Format $RAB_STORE RAB=rab-address, BKT=#bucket-code-number, CTX=user-context-value, FAB=fab-address, KBF=key-buffer-address, KRF=#key-of-reference-number, KSZ=#key-size, MBC=#multiblock-count-number, MBF=#multibuffer-count-number, PBF=prompt-buffer-address, PSZ=#prompt-buffer-size, RAC={KEY|RFA|SEQ}, RBF=record-buffer-address, RFA=#record-file-address, RHB=record-header-buffer-address, ROP=<ASY BIO CCO CDK CVT EOF EQNXT ETO FDL KGE KGT LIM LOA LOC NLK NXR NXT PMT PTA RAH REA REV RLK RNE RNF RRL TMO TPT UIF ULK WAT WBH>, ROP_2=<NQL NODLCKWT NODLCKBLK>, RSZ=#record-size, TMO=#time-out-number-of-seconds, UBF=user-record-buffer-address, USZ=#user-record-buffer-size, XAB=xab-address
47.9 – $RAB64 (Alpha Only)
On Alpha systems, the $RAB64 macro allocates storage for a RAB64 and initializes certain RAB64 fields with defaults and user- specified values. You cannot use this macro within a sequence of executable instructions. No value is returned for this assembly- time operation. The defaults unique to $RAB64 are as follows: o RAB64$B_BLN is initialized to RAB64$C_BLN64. o The original longword I/O buffers (KBF, RHB, RBF, and UBF) are initialized to -1; USZ and RSZ word sizes are initialized to 0. User-specified values using the CTX, KBF, RHB, RBF, RSZ, UBF, or USZ keywords are moved into the quadword fields for these keywords. In contrast, the $RAB macro moves them into the longword (or word) fields for these keywords. Format $RAB64 BKT=bucket-code-number, CTX=user-context-value, FAB=fab-address, KBF=key-buffer-address, KRF=key-of-reference-number, KSZ=key-size, MBC=multiblock-count-number, MBF=multibuffer-count-number, PBF=prompt-buffer-address, PSZ=prompt-buffer-size, RAC={KEY|RFA|SEQ}, RBF=record-buffer-address, RHB=record-header-buffer-address, ROP=<ASY BIO CCO CDK CVT EOF EQNXT ETO FDL KGE KGT LIM LOA LOC NLK NXR NXT PMT PTA RAH REA REV RLK RNE RNF RRL TMO TPT UIF ULK WAT WBH>, ROP_2=<NQL NODLCKWT NODLCKBLK>, RSZ=record-size, TMO=time-out-number-of-seconds, UBF=user-record-buffer-address, USZ=user-record-buffer-size, XAB=xab-address
47.10 – $RAB64 STORE (Alpha Only)
On Alpha systems, the $RAB64_STORE macro moves user-specified values into fields of the specified RAB64. The expanded $RAB64_ STORE code executes at run time on a previously initialized (allocated) RAB64. In contrast, the $RAB64 macro allocates and initializes the RAB64 at assembly time. The $RAB64_STORE macro must reside in a code program section. User-specified values that use the CTX, KBF, RHB, RBF, RSZ, UBF, or USZ keywords are moved into the quadword fields for these keywords. In contrast, the $RAB_STORE macro moves them into the longword (or word) fields for these keywords. Format $RAB64_STORE RAB=rab64-address, BKT=#bucket-code-number, CTX=user-context-value, FAB=fab-address, KBF=key-buffer-address, KRF=#key-of-reference-number, KSZ=#key-size, MBC=#multiblock-count-number, MBF=#multibuffer-count-number, PBF=prompt-buffer-address, PSZ=#prompt-buffer-size, RAC={KEY|RFA|SEQ}, RBF=record-buffer-address, RFA=#record-file-address, RHB=record-header-buffer-address, ROP=<ASY BIO CCO CDK CVT EOF EQNXT ETO FDL KGE KGT LIM LOA LOC NLK NXR NXT PMT PTA RAH REA REV RLK RNE RNF RRL TMO TPT UIF ULK WAT WBH>, ROP_2=<NQL NODLCKWT NODLCKBLK>, RSZ=#record-size, TMO=#time-out-number-of-seconds, UBF=user-record-buffer-address, USZ=#user-record-buffer-size, XAB=xab-address
47.11 – $XABALL
The $XABALL macro allocates and initializes a XABALL, which allows extended control of file disk space allocation, both for initial allocation and later extension. No value is returned for this assembly-time operation. Format $XABALL AID=area-identification-number, ALN={ANY|CYL|LBN|RFI|VBN}, ALQ=allocation-quantity, AOP=<CBT CTG HRD ONC>, BKZ=bucket-size, DEQ=extension-quantity, LOC=location-number, NXT=next-xab-address, RFI=<f(1), f(2), f(3)>, VOL=volume-number
47.12 – $XABALL STORE
The $XABALL_STORE macro moves user-specified values into fields of the specified XABALL. The expanded $XABALL_STORE code executes at run time on a previously initialized (allocated) XABALL, in contrast to the $XABALL macro, which initializes a XABALL at assembly time. The $XABALL_STORE macro must reside in a code program section. Format $XABALL_STORE XAB=xaball-address, AID=#area-identification-number, ALN={ANY|CYL|LBN|RFI|VBN}, ALQ=#allocation-quantity, AOP=<CBT CTG HRD ONC>, BKZ=#bucket-size, DEQ=#extension-quantity, LOC=#location-number, NXT=next-xab-address, RFI=#related-file-identification, VOL=#volume-number
47.13 – $XABDAT
The $XABDAT macro allocates and initializes a XABDAT. No value is returned for this assembly-time operation. Format $XABDAT EDT=date-time, NXT=next-xab-address
47.14 – $XABDAT STORE
The $XABDAT_STORE macro moves user-specified values into fields of the specified XABDAT. The expanded $XABDAT_STORE code executes at run time on a previously initialized (allocated) XABDAT, in contrast to the $XABDAT macro, which initializes a XABDAT at assembly time. The $XABDAT_STORE macro must reside in a code program section. Format $XABDAT_STORE XAB=xabdat-address, CDT=#creation-date-time, EDT=#expiration-date-time, RDT=#revision-date-time, RVN=#revision-number, NXT=next-xab-address
47.15 – $XABFHC
The $XABFHC macro allocates and initializes a XABFHC. No value is returned for this assembly-time operation. Format $XABFHC NXT=next-xab-address
47.16 – $XABFHC STORE
The $XABFHC_STORE macro moves user-specified values into fields of the specified XABFHC. The expanded $XABFHC_STORE code executes at run time on a previously initialized (allocated) XABFHC, in contrast to the $XABFHC macro, which initializes a XABFHC at assembly time. The $XABFHC_STORE macro must reside in a code program section. Format $XABFHC_STORE XAB=xabfhc-address, NXT=next-xab-address
47.17 – $XABITM
The $XABITM macro allocates and initializes a XABITM. No value is returned for this assembly-time operation. Format $XABITM ITEMLIST=item-list-address, MODE={sensemode|setmode}, NXT=next-xab-address
47.18 – $XABKEY
The $XABKEY macro allocates and initializes a XABKEY. No value is returned for this assembly-time operation. Format $XABKEY COLTBL=collating-table-address, DAN=data-bucket-area-number, DFL=data-bucket-fill-size, DTP={BN2|DBN2|BN4|DBN4|BN8|DBN8|IN2 |DIN2|IN4|DIN4|IN8|DIN8|COL|DCOL |PAC|DPAC|STG|DSTG}, FLG=<CHG DAT_NCMPR DUP IDX_NCMPR KEY_NCMPR NUL>, IAN=index-bucket-area-number, IFL=index-bucket-file-size, KNM=key-name-buffer-address, LAN=lowest-level-index-area-number, NUL=null-key-value, NXT=next-xab-address, POS=<position,...>, PROLOG=prolog-level, REF=key-of-reference-value, SIZ=<size,...>
47.19 – $XABKEY STORE
The $XABKEY_STORE macro moves user-specified values into fields of the specified XABKEY. The expanded $XABKEY_STORE code executes at run time on a previously initialized (allocated) XABKEY, in contrast to the $XABKEY macro, which initializes the XABKEY at assembly time. The $XABKEY_STORE macro must reside in a code program section. Format $XABKEY_STORE XAB=xabkey-address, COLTBL=#collating-table-address, DAN=#data-bucket-area-number, DFL=#data-bucket-fill-size, DTP={BN2|DBN2|BN4|DBN4|BN8|DBN8|IN2 |DIN2|IN4|DIN4|IN8|DIN8|COL|DCOL |PAC|DPAC|STG|DSTG}, FLG=<CHG DAT_NCMPR DUP IDX_NCMPR KEY_NCMPR NUL>, IAN=#index-bucket-area-number, IFL=#index-bucket-fill-size, KNM=key-name-buffer-address, LAN=#lowest-level-index-area-number, NUL=#null-key-value, NXT=next-xab-address, POS=<position,...>, PROLOG=#prolog-level, REF=#key-of-reference-value, SIZ=<size,...>
47.20 – $XABPRO
The $XABPRO macro allocates and initializes a XABPRO. No value is returned for this assembly-time operation. Format $XABPRO ACLBUF=ACL-buffer-address, ACLCTX=<ACL-context>, ACLSIZ=ACL-buffer-size, MTACC=magnetic-tape-accessibility, NXT=next-xab-address, PRO=<system, owner, group, world>, PROT_OPT=<PROPAGATE>, UIC=<group, member>
47.21 – $XABPRO STORE
The $XABPRO_STORE macro moves user-specified values into fields of the specified XABPRO. The expanded $XABPRO_STORE code executes at run time on a previously initialized (allocated) XABPRO, in contrast to the $XABPRO macro, which initializes a XABPRO at assembly time. The $XABPRO_STORE macro must reside in a code program section. Format $XABPRO_STORE XAB=xabpro-address, ACLBUF=ACL-buffer-address, ACLCTX=#<ACL-context>, ACLSIZ=#ACL-buffer-size, MTACC=#magnetic-tape-accessibility, NXT=next-xab-address, PRO=<system, owner, group, world>, PROT_OPT=<PROPAGATE>, UIC=#uic-value
47.22 – $XABRDT
The $XABRDT macro allocates and initializes a XABRDT. No value is returned for this assembly-time operation. Format $XABRDT NXT=next-xab-address
47.23 – $XABRDT STORE
The $XABRDT_STORE macro moves user-specified values into fields of the specified XABRDT. The expanded $XABRDT_STORE code executes at run time on a previously initialized (allocated) XABRDT, in contrast to the $XABRDT macro, which initializes the XABRDT at assembly time. The $XABRDT_STORE macro must reside in a code program section. Format $XABRDT_STORE XAB=xabrdt-address, RDT=#revision-date-time, RVN=#revision-number, NXT=next-xab-address
47.24 – $XABSUM
The $XABSUM macro allocates and initializes a XABSUM. No value is returned for this assembly-time operation. Format $XABSUM NXT=next-xab-address
47.25 – $XABSUM STORE
The $XABSUM_STORE macro moves user-specified values into fields of the specified XABSUM. The expanded $XABSUM_STORE code executes at run time on a previously initialized (allocated) XABSUM, in contrast to the $XABSUM macro, which initializes the XABSUM at assembly time. The $XABSUM_STORE macro must reside in a code program section. Format $XABSUM_STORE XAB=xabsum-address, NXT=next-xab-address
47.26 – $XABTRM
The $XABTRM macro allocates and initializes a XABTRM. No value is returned for this assembly-time operation. Format $XABTRM ITMLST=item-list-address, ITMLST_LEN=item-list-length, NXT=next-xab-address
47.27 – $XABTRM STORE
The $XABTRM_STORE macro moves user-specified values into fields of the specified XABTRM. The expanded $XABTRM_STORE code executes at run time on a previously initialized (allocated) XABTRM, in contrast to the $XABTRM macro, which initializes a XABTRM at assembly time. The $XABTRM_STORE macro must reside in a code program section. Format $XABTRM_STORE XAB=xabtrm-address, ITMLST=item-list-address, ITMLST_LEN=#item-list-length, NXT=next-xab-address