HP OpenVMS Systems Documentation

Content starts here

OpenVMS Record Management Services Reference Manual


Previous Contents Index

10.7 XAB$L_NXT Field

The next XAB address (NXT) field contains the symbolic address of the next XAB to be used. A value of 0 (the default) indicates that the current XAB is the last (or only) XAB in the chain.

10.8 XAB$Q_RDT Field

The revision date and time (RDT) field contains a 64-bit binary value representing the date and time when the file was last revised. The Open and Display services use this field to read the revision date and time. The Create service uses this field to set the revision date and time. However, a subsequent Close service overrides the value set by the Create service by using the value in the XAB$Q_RDT field of the XABRDT.

Note

The Close service uses the current date and time when the XAB$Q_RDT field of the XABRDT contains 0 or no value.
If you want to avoid having the Close service override the revision date and time, use the XAB$Q_RDT field in the XABRDT (see Chapter 16) to establish the revision date and time.

If the application program specifies this field as 0 (either explicitly or by default), the Create service uses the current date and time as the revision date and time. Note that this field is limited to a granularity of 1 second for remote files.

This field corresponds to the FDL attribute DATE REVISION.

10.9 XAB$W_RVN Field

The revision number (RVN) field contains a numeric value that indicates the number of times this file was opened for write operations.

This field corresponds to the FDL attribute FILE REVISION.

10.10 XAB$Q_RCD Field (VAX Only)

On VAX systems, the XAB$Q_RCD (RCD) field contains a 64-bit binary value expressing the date and time that the file was recorded.

This field is applicable only to ISO 9660 files and has no corresponding FDL attribute.

10.11 XAB$Q_EFF Field (VAX Only)

On VAX systems, the XAB$Q_EFF (EFF) field contains a 64-bit binary value expressing the date and time when the file information may be used. If no value is specified in this field, the data may be used immediately.

This field is applicable only to ISO 9660 files and has no corresponding FDL attribute.

10.12 POSIX--Compliant Access Dates (Alpha Only)

To support POSIX-compliant file timestamps on ODS--5 disks, the XABDAT structure has been extended to include the following three access timestamps:

  • The last access date (XAB$Q_ACC)
  • The last attribute modification date (XAB$Q_ATT)
  • The last data modification date (XAB$Q_MOD)

Because these access dates must be written out to disk, there is a performance impact when these dates are used. The SET VOLUME command can be used to either limit the frequency of the updates or disable support for this set of access dates. (See the DCL SET VOLUME/VOLUME_ CHARACTERISTICS command.) A SETMODE XABITM access date interface can be used to update these dates on a $CLOSE operation regardless of the volume setting. (See Chapter 12 in this manual.)

10.12.1 XAB$Q_ACC Field

On Alpha systems, the XAB$Q_ACC field contains a 64-bit binary value expressing the date and time that the file was last assessed (corresponding to POSIX st_atime). This field is restricted to ODS--5 disks; if specified for a non-ODS--5 disk, the field will contain zero.

This field cannot be initialized by the $XABDAT macro and has no corresponding FDL attribute. It is not supported for DECnet for OpenVMS operations; it is ignored.

10.12.2 XAB$Q_ATT Field

On Alpha systems, the XAB$Q_ATT field contains a 64-bit binary value expressing the date and time that a file attribute was last modified (corresponding to POSIX st_ctime). This field is restricted to ODS--5 disks; if specified for a non-ODS--5 disk, the field will contain zero.

This field cannot be initialized by the $XABDAT macro and has no corresponding FDL attribute. It is not supported for DECnet for OpenVMS operations; it is ignored.

10.12.3 XAB$Q_MOD Field

On Alpha systems, the XAB$Q_MOD field contains a 64-bit binary value expressing the date and time that file data was last modified (corresponding to POSIX st_mtime). This field is restricted to ODS--5 disks; if specified for a non-ODS--5 disk, the field will contain zero.

This field cannot be initialized by the $XABDAT macro and has no corresponding FDL attribute. It is not supported for DECnet for OpenVMS operations; it is ignored.


Chapter 11
File Header Characteristic XAB (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.

11.1 Summary of Fields

The symbolic offset, size, and a brief description of each RAB field are presented in Table 11-1. Note that many of these fields are also available in the FAB.

Table 11-1 XABFHC Fields
Field Offset Size
(Bytes)
Description
XAB$B_ATR 1 1 Record attributes; equivalent to FAB$B_RAT
XAB$B_BKZ 1 1 Bucket size; equivalent to FAB$B_BKS
XAB$B_BLN 2 1 Block length
XAB$B_COD 2 1 Type code
XAB$W_DXQ 1 2 Default file extension quantity; equivalent to FAB$W_DEQ
XAB$L_EBK 1 4 End-of-file block
XAB$W_FFB 1 2 First free byte in the end-of-file block
XAB$W_GBC 1 2 Default global buffer count
XAB$L_HBK 1 4 Highest virtual block in the file; equivalent to FAB$L_ALQ
XAB$B_HSZ 1 1 Fixed-length control header size; equivalent to FAB$B_FSZ
XAB$W_LRL 1 2 Longest record length
XAB$W_MRZ 1 2 Maximum record size; equivalent to FAB$W_MRS
XAB$L_NXT 4 Next XAB address
XAB$B_RFO 1 1 File organization and record format; combines FAB$B_RFM and FAB$B_ORG
XAB$L_SBN 1 4 Starting logical block number for the file if it is contiguous; otherwise this field is 0
XAB$W_VERLIMIT 1 2 Version limit for the file

1This field cannot be initialized by the $XABFHC macro.
2This field is statically initialized by the $XABFHC macro to identify this control block as a XABFHC.

There are no FDL equivalents for the XABFHC fields. Unless otherwise indicated, each field is supported for DECnet for OpenVMS operations on files at remote OpenVMS systems. See the DECnet for OpenVMS Networking Manual for information about the support of RMS options for remote file access to other systems.

11.2 XAB$B_ATR Field

The record attributes (ATR) field indicates the record attributes (special control information) associated with each record in this file. This field is equivalent to the FAB$B_RAT field.

This field is a binary options field where each record attribute has a corresponding bit assignment. Options are identified using mnemonics. Each option in the field has its own symbolic offset and constant value. For example, the CR record attribute has the symbolic offset XAB$V_CR and the mask value XAB$M_CR. The record attribute options are described in the following list.


Options

XAB$V_BLK

Records do not cross block boundaries in sequential files.

XAB$V_CR

Each record is preceded by a line feed and followed by a carriage return.

XAB$V_FTN

Each record contains a FORTRAN (ASA) carriage return in the first byte.

XAB$V_PRN

Print file format.

For more information about the XAB$B_ATR field, refer to the description of the FAB$B_RAT field in Section 4.27.

11.3 XAB$B_BKZ Field

The bucket size (BKZ) field specifies the number of blocks in each bucket of the file. It is equivalent to the FAB$B_BKS (or XAB$B_BKZ) field and is used only for relative or indexed files.

This field contains a numeric value in the range of 0 to 63.

For more information about the XAB$B_BKZ field, refer to the description of the FAB$B_BKS field in Section 4.5 and the description of the XAB$B_BKZ field in Section 9.6.

11.4 XAB$B_BLN Field

The block length (BLN) field is a static field that defines the length of the XABFHC, in bytes. Once set, this field must not be altered unless the control block is no longer needed. This field must be initialized to the symbolic value XAB$C_FHCLEN (this is done by the $XABFHC macro).

11.5 XAB$B_COD Field

The type code (COD) field is a static field that identifies this control block as a XABFHC. Once set, this field must not be altered unless the control block is no longer needed. This field must be initialized to the symbolic value XAB$C_FHC (this is done by the $XABFHC macro).

11.6 XAB$W_DXQ Field

The default file extension quantity (DXQ) field specifies the number of blocks to be added when a disk file is extended automatically. This automatic extension occurs whenever your program performs a Put or Write service and the currently allocated file space is exhausted.

This field is equivalent to the FAB$W_DEQ (or XAB$W_DEQ) field; it contains a numeric value in the range 0 through 65,535, which is rounded up to the value of the next cluster boundary.

For more information about the XAB$W_DXQ field, refer to the description of the FAB$W_DEQ field in Section 4.10 and the description of the XAB$W_DEQ field in Section 9.9.

11.7 XAB$L_EBK Field

When you open a file, RMS stores the VBN of the physical block where the next record will be written in the XAB$L_EBK field. For example, assume that a file is allocated five physical blocks and that the last record written to the file is at byte 0FF _16 in the file's second physical block. When your program opens this file, RMS stores the VBN of the second physical block in XAB$L_EBK and it stores 100_16 in the XAB$W_FFB field.

If the previous block is full when you open the file, RMS stores the first location ( 000_16 ) of the next block in XAB$W_FFB and the VBN of the next block in XAB$L_EBK. By way of contrast, in a similar situation RMS-11 stores the last byte ( 200_16 ) of the filled block in the XAB$W_FFB field and the VBN of the filled block in the XAB$L_EBK field.

The XAB$L_EBK field is meaningful for sequential files only.

11.8 XAB$W_FFB Field

The first free byte in the end-of-file block (FFB) field contains the byte location in the end-of-file block where the next record will be written. The XAB$W_FFB field is meaningful for sequential files only.

11.9 XAB$W_GBC Field

The default global buffer count (GBC) field contains the current global buffer count for this file. For more information about the XAB$W_GBC field, refer to the description of the FAB$W_GBC field in Section 4.19.

This field is not supported for DECnet for OpenVMS operations; it is ignored.

11.10 XAB$L_HBK Field

The highest virtual block (HBK) field contains the virtual block number currently allocated to this file. It is equivalent to the FAB$L_ALQ field after a Create, Open, or Display service executes. For sequential files, the difference between XAB$L_HBK and XAB$L_EBK equals the number of blocks in the file available for additional records without extending the file.

11.11 XAB$B_HSZ Field

The fixed-length control header size (HSZ) field indicates the length of the fixed portion for records in the VFC format. It is equivalent to the FAB$B_FSZ field.

This field contains a numeric value (1 to 255) that indicates, in bytes, the size of the fixed-length control area. This field is not applicable to indexed files.

For more information about the XAB$B_HSZ field, refer to the description of the FAB$B_FSZ field in Section 4.18.

11.12 XAB$W_LRL Field

The longest record length (LRL) field contains a numeric value that indicates the longest record currently in the file, in bytes. This value is meaningful for sequential files only. If you specify the XAB$W_MRZ field, the LRL field takes the same value as the XAB$W_MRZ field.

11.13 XAB$W_MRZ Field

The maximum record size (MRZ) field indicates the size of all records in a file with fixed-length records, the maximum size of variable-length records, the maximum size of the data area for variable with fixed-length control records, and the cell size for relative files. It is equivalent to the FAB$W_MRS field.

This field contains a numeric value in the range applicable to the file type and record format (see Table 4-4), in bytes.

For fixed-length records, the value represents the actual size of each record in the file.

For variable-length records, the value represents the size of the largest record that can be written into the file. If the file is not a relative file, a value of 0 is used to suppress record size checking, thus indicating that there is no user limit on record size.

For variable with fixed-length control records, the value includes only the data portion; it does not include the size of the fixed control area.

For more information about the XAB$W_MRZ field, refer to the description of the FAB$W_MRS field in Section 4.24.

11.14 XAB$L_NXT Field

The next XAB address (NXT) field contains the symbolic address of the next XAB. A value of 0 (the default) indicates that the current XAB is the last (or only) XAB in the chain.

11.15 XAB$B_RFO Field

The file organization and record format (RFO) field combines the FAB$B_RFM and FAB$B_ORG fields using an inclusive OR.

The following table lists the record formats.

Record Format Description
FIX Fixed length
STM Stream, delimited by FF, VT, LF, or CR LF
STMCR Stream, delimited by CR
STMLF Stream, delimited by LF
UDF Undefined
VAR Variable length
VFC Variable length with fixed control area

The following table lists the file organizations.

File Organization Description
IDX Indexed sequential
REL Relative
SEQ Sequential

For more information about the XAB$B_RFO field, refer to the description of the FAB$B_ORG field and the FAB$B_RFM field in Section 4.28.

11.16 XAB$L_SBN Field

The starting logical block number (SBN) field contains the starting logical block number for a contiguous file; if the file is not contiguous, this field contains 0.

11.17 XAB$W_VERLIMIT Field

The file version limit (VERLIMIT) field contains the version limit for this file. This value is not available if the file was opened by file ID.

This field is not supported for DECnet for OpenVMS operations; it is ignored.


Previous Next Contents Index