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