1 RMS
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. 2 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 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. 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$L_FNB 4 File name status bits NAM$B_NAME 1 File name string length NAM$L_NAME 4 File name string address 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 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 2 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 2 RAB64_(Alpha_Only) On 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_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. 2 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 2 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 2 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 2 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. 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 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 2 XABJNL The journaling XAB (XABJNL) control block supports file journaling operations. See the RMS Journaling for OpenVMS Manual for details. 2 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 2 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 2 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 various 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 2 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. 2 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 2 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 2 $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]] 3 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. 3 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. 2 $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. 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]] 3 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. 3 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. 2 $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]] 3 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. 3 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. 2 $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]] 3 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. 3 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. 2 $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]] 3 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. 3 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. 2 $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 block (if one is requested). Format SYS$DISPLAY fab [,[err] [,suc]] 3 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. 3 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. 2 $ENTER The Enter service inserts a file name in a directory. Format SYS$ENTER fab [,[err] [,suc]] 3 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. 3 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. 2 $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]] 3 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. 3 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. 2 $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]] 3 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. 3 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. 2 $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]] 3 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. 3 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. 2 $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]] 3 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. 3 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. 2 $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]] 3 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. 3 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. 2 $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]] 3 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. 3 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. 2 $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]] 3 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. 3 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. 2 $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. Format SYS$OPEN fab [,[err] [,suc]] 3 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. 3 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. 2 $PARSE The Parse service analyzes the file specification string and fills in various NAM block fields. Format SYS$PARSE fab [,[err] [,suc]] 3 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. 3 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. 2 $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]] 3 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. 3 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. 2 $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]] 3 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. 3 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. 2 $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]] 3 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. 3 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. 2 $REMOVE The Remove service deletes a file name from a directory. It is the reverse of the Enter service. Format SYS$REMOVE fab [,[err] [,suc]] 3 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. 3 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. 2 $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 3 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. 3 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. 2 $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]] 3 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. 3 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. 2 $SEARCH The Search service scans a directory file and fills in various NAM block fields. This service should be preceded by the Parse service, in order to initialize the NAM block appropriately. Format SYS$SEARCH fab [,[err] [,suc]] 3 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. 3 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. 2 $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]] 3 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. 3 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. 2 $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]] 3 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. 3 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. 2 $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]] 3 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. 3 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. 2 $WAIT The Wait service suspends image execution until an asynchronous file or record service completes. The same control block that was used with the asynchronous file or record service call is specified as the parameter for the Wait service. If it was an asynchronous file service, the control block is a FAB; if it was 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 3 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. 3 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. 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. 2 $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]] 3 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. 3 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. 2 RMS_Control_Block_Macros This topic provides you with the format of each RMS control block macro. 3 $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, <CBT CIF CTG DFW DLT MXV NAM NEF NFS OFP FOP= 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, { IDX } ORG= { REL } , { SEQ } { } { CR } RAT= { <BLK FTN> } , { PRN } { } { FIX } { STM } { STMCR } { } RFM= { STMLF } , { UDF } { VAR } { } { VFC } RTV=window-size, SHR=<DEL GET MSE NIL PUT UPD UPI>, XAB=xab-address 3 $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, <CBT CIF CTG DFW DLT MXV NAM NEF NFS OFP FOP= 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, { IDX } ORG= { REL } , { SEQ } { } { CR } RAT= { <BLK FTN> } , { PRN } { } { FIX } { STM } { STMCR } { } RFM= { STMLF } , { UDF } { VAR } { } { VFC } RTV=#window-size, SHR=<DEL GET MSE NIL PUT UPD UPI>, XAB=xab-address 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 SRCHXABS SYNCHK>, RLF=related-file-nam-block-address, RSA=resultant-string-address, RSS=resultant-string-size 3 $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 PWD SRCHXABS SYNCHK>, RLF=related-file-nam-block-address, RSA=resultant-string-address, RSS=#resultant-string-size 3 $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, { KEY } RAC= { RFA } , { SEQ } { } RBF=record-buffer-address, RHB=record-header-buffer-address, <ASY BIO CCO CDK CVT EOF EQNXT ETO FDL KGE KGT LIM ROP= LOA LOC NLK NXR NXT PMT PTA RAH REA REV RLK RNE RNF RRL TMO TPT UIF ULK WAT WBH>, RSZ=record-size, TMO=time-out-number-of-seconds, UBF=user-record-buffer-address, USZ=user-record-buffer-size, XAB=xab-address 3 $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, { KEY } RAC= { RFA } , { SEQ } { } RBF=record-buffer-address, RFA=#record-file-address, RHB=record-header-buffer-address, <ASY BIO CCO CDK CVT EOF EQNXT ETO FDL KGE KGT LIM ROP= LOA LOC NLK NXR NXT PMT PTA RAH REA REV RLK RNE RNF RRL TMO TPT UIF ULK WAT WBH>, RSZ=#record-size, TMO= #time-out-number-of- seconds, UBF=user-record-buffer-address, USZ=#user-record-buffer-size, XAB=xab-address 3 $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, { KEY } RAC= { RFA } , { SEQ } { } RBF=record-buffer-address, RHB=record-header-buffer-address, <ASY BIO CCO CDK CVT EOF EQNXT ETO FDL KGE KGT LIM ROP= LOA LOC NLK NXR NXT PMT PTA RAH REA REV RLK RNE RNF RRL TMO TPT UIF ULK WAT WBH>, RSZ=record-size, TMO=time-out-number-of-seconds, UBF=user-record-buffer-address, USZ=user-record-buffer-size, XAB=xab-address 3 $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, { KEY } RAC= { RFA } , { SEQ } { } RBF=record-buffer-address, RFA=#record-file-address, RHB=record-header-buffer-address, <ASY BIO CCO CDK CVT EOF EQNXT ETO FDL KGE KGT LIM ROP= LOA LOC NLK NXR NXT PMT PTA RAH REA REV RLK RNE RNF RRL TMO TPT UIF ULK WAT WBH>, RSZ=#record-size, TMO= #time-out-number-of- seconds, UBF=user-record-buffer-address, USZ=#user-record-buffer-size, XAB=xab-address 3 $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, { ANY } { CYL } ALN= { 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 3 $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, { ANY } { CYL } ALN= { 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 3 $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 3 $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 3 $XABFHC The $XABFHC macro allocates and initializes a XABFHC. No value is returned for this assembly-time operation. Format $XABFHC NXT=next-xab-address 3 $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 3 $XABITM The $XABITM macro allocates and initializes a XABITM. No value is returned for this assembly-time operation. Format $XABITM ITEMLIST=item-list-address, { sensemode } MODE= { setmode } , { } NXT=next-xab-address 3 $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, { BN2 } { DBN2 } { BN4 } { } { DBN4 } { BN8 } { DBN8 } { } { IN2 } { DIN2 } { IN4 } DTP= { } , { DIN4 } { IN8 } { DIN8 } { } { COL } { DCOL } { PAC } { } { DPAC } { STG } { DSTG } { } <CHG DAT_NCMPR DUP FLG= 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,...> 3 $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, { BN2 } { DBN2 } { BN4 } { } { DBN4 } { BN8 } { DBN8 } { } { IN2 } { DIN2 } { IN4 } DTP= { } , { DIN4 } { IN8 } { DIN8 } { } { COL } { DCOL } { PAC } { } { DPAC } { STG } { DSTG } { } <CHG DAT_NCMPR FLG= 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,...> 3 $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> 3 $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 3 $XABRDT The $XABRDT macro allocates and initializes a XABRDT. No value is returned for this assembly-time operation. Format $XABRDT NXT=next-xab-address 3 $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 3 $XABSUM The $XABSUM macro allocates and initializes a XABSUM. No value is returned for this assembly-time operation. Format $XABSUM NXT=next-xab-address 3 $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 3 $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 3 $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