HP OpenVMS Systems Documentation |
Upgrading Privileged-Code Applications on OpenVMS Alpha and OpenVMS I64 Systems
4.4.1 Drivers Written in CDrivers written in C use theini_fdt_act macro to initialize an FDT entry for an I/O function. This macro uses the DRIVER$INI_FDT_ACT routine. Both the macro and the routine have been enhanced for OpenVMS Alpha Version 7.0. The format of the macro in releases prior to OpenVMS Alpha Version 7.0 was:
where thebufflag parameter must be one of the following:
The use of thebufflag parameter has been enhanced to include the declaration of 64-bit support by allowing 3 additional values:
If a driver does not support a 64-bit address on any of its functions, there is no need to change its use of theini_fdt_act macro. For example, the following C code segment declares that the IO$_READVBLK and IO$_READLBLK functions support 64-bit addresses.
The interpretation of thebufflag parameter to
the DRIVER$INI_FDT_ACT routine has been enhanced to support the new values
and the setting of the 64-bit support mask in the FDT data structure.
As of OpenVMS Alpha Version 7.0, drivers written in MACRO-32 use a new FDT_64 macro to declare the set of I/O functions for which the driver supports 64-bit addresses. The use of the FDT_64 macro is similar to the use of the existing FDT_BUF macro. If a driver does not support a 64-bit address on any of its functions, there is no need to use the new FDT_64 macro. For example, the following MACRO-32 code segment declares that the IO$_READVBLK and IO$_READLBLK functions support 64-bit addresses.
4.4.3 Drivers Written in BLISSAs of OpenVMS Alpha Version 7.0, drivers written in BLISS-32 and BLISS-64 use a new optional keyword parameter, FDT_64, to the existing FDTAB macro to declare the set of I/O functions that support 64-bit addresses. The use of the new FDT_64 parameter is similar to the use of the existing FDT_BUF parameter. If a driver does not support a 64-bit address on any of its functions, there is no need to use the new FDT_64 parameter. For example, the following BLISS code segment declares that the IO$_READVBLK and IO$_READLBLK functions support 64-bit addresses.
4.5 I/O MechanismsTable 4-2 summarizes the I/O mechanisms that support 64-bit addresses.
4.5.1 Simple Buffered I/OFigure 4-1 shows a 32-bit buffered I/O packet header. Figure 4-1 32-Bit Buffered I/O Packet Header
A 64-bit buffered packet header is as shown in Figure 4-2. Figure 4-2 New 64-Bit Buffered I/O Packet Header
|