HP OpenVMS Systems Documentation

Content starts here

HP OpenVMS Version 8.2 New Features and Documentation Overview


Previous Contents Index

4.12 New RTL LIB Routines

Table 4-2 lists the new routines provided with OpenVMS Version 8.2. The routines apply to both OpenVMS Alpha and OpenVMS I64 systems unless otherwise specified.

Table 4-2 RTL LIB Routines
Routine Description
LIB$CVTS_FROM_INTERNAL_TIME Convert internal time to external time (S-floating value).
LIB$CVTS_TO_INTERNAL_TIME Convert external time to internal time (S-floating value).
LIB$EMODS Perform extended multiply and integerize for S-floating values.
LIB$EMODT Perform extended multiply and integerize for T-floating values.
LIB$I64_CREATE_INVO_CONTEXT Allocate and initialize an invocation context block. (I64 only)
LIB$I64_FREE_INVO_CONTEXT Deallocate an invocation context block. (I64 only)
LIB$I64_GET_INVO_CONTEXT Get the invocation context of any active procedure. (I64 only)
LIB$I64_GET_CURR_INVO_CONTEXT Gets the current invocation context of any active procedure. (I64 only)
LIB$I64_GET_CURR_INVO_HANDLE Get current invocation handle. (I64 only)
LIB$I64_GET_FR Get floating-point register value. (I64 only)
LIB$I64_GET_GR Get general register value. (I64 only)
LIB$I64_GET_INVO_HANDLE Get invocation handle. (I64 only)
LIB$I64_GET_PREV_INVO_CONTEXT Get previous invocation context. (I64 only)
LIB$I64_GET_PREV_INVO_HANDLE Get previous invocation handle. (I64 only)
LIB$I64_GET_UNWIND_HANDLER_FV Given a pc_value, find the function value (address of the procedure descriptor) for the condition handler, if present, and write it to handler_fv. (I64 only)
LIB$I64_INIT_INVO_CONTEXT Initialize an invocation context block that has already been allocated. (I64 only)
LIB$GET_UIB_INFO Return information from the unwind information block.
LIB$I64_GET_GR Get general register value. (I64 only)
LIB$I64_GET_UNWIND_LSDA Find Address of Unwind Information Block Language-Specific Data. (I64 only)
LIB$I64_GET_UNWIND_OSSD Find address of the unwind information block operating system-specific data area. (I64 only)
LIB$I64_IS_AST_DISPATCH_FRAME Determine whether a given PC value represents an AST. (I64 only)
LIB$I64_IS_EXC_DISPATCH_FRAME Determine whether a given PC value represents an exception dispatch frame. I64 only.
LIB$I64_PREV_INVO_END Free memory used to process unwind descriptors. (I64 only)
LIB$I64_PUT_INVO_REGISTERS Put invocation registers.
LIB$I64_SET_FR Write context of invocation context block. (I64 only)
LIB$I64_SET_GR Write invocation block general register value. (I64 only)
LIB$I64_SET_PC Write pc_copy value of invocation context block. (I64 only)
LIB$LOCK_IMAGE Lock an image in the process working set.
LIB$MULTS_DELTA_TIME Multiply a delta time by an S-floating scalar.
LIB$POLYS Evaluate Polynomials routine (S-floating values).
LIB$POLYT Evaluate polynomials (T-floating values).
LIB$UNLOCK_IMAGE Unlock an image from the process working set.

See the HP OpenVMS RTL Library (LIB$) Manual for more information.

4.12.1 Change to LIB$GETDVI routine (I64 only)

A new argument, pathname, has been added to the RTL LIB routine LIB$GETDVI for use on OpenVMS I64 systems. See the HP OpenVMS RTL Library (LIB$) Manual for more information.

4.13 New RTL OTS Routines

Table 4-3 lists the new OTS routines. All routines are provided for both OpenVMS Alpha and OpenVMS I64 systems unless otherwise specified.

Table 4-3 RTL OTS Routines
Routine Description
OTS$CNVOUT_S Convert an S-floating value to a character string.
OTS$CNVOUT_T Convert a T-floating value to a character string.
OTS$CVT_T_S Convert numeric text to an S-floating value.
OTS$CVT_T_T Convert numeric text to a T-floating value.
OTS$DIVCS_R3 Return an S-floating complex result of a division on complex numbers.
OTS$DIVCT_R3 Return a T-floating complex result of a division on complex numbers.
OTS$MULCT_R3 Calculate the complex product of two complex values; returns a T-floating complex number.
OTS$POWCSCS_R3 Raise a complex base to an S-floating complex exponent.
OTS$POWCSCT_R3 Raise a complex base to a T-floating complex exponent.
OTS$POWCSJ return the complex result of raising an S-floating complex base to an integer exponent.
OTS$POWCTJ return the complex result of raising a T-floating complex base to an integer exponent.
OTS$POWSJ Raise an S-floating base to a longword exponent.
OTS$POWSLU Raise an S-floating-point base to an unsigned longword.
OTS$POWSS Raise an S-floating base to an S-floating or longword integer exponent.
OTS$POWTLU Raise a T-floating-point base to an unsigned longword.
OTS$POWTJ Raise an T-floating base to a longword integer exponent.
OTS$POWTT Raise a T-floating base to a T-floating or longword integer exponent.

For more information, see the HP OpenVMS RTL General Purpose (OTS$) Manual.

4.14 Patch Utility Now Available on OpenVMS Alpha and OpenVMS I64

The Patch utility, formerly only on OpenVMS VAX systems, is now available on OpenVMS Alpha and OpenVMS I64 systems. By default, PATCH/ABSOLUTE is involved, which patches a file at absolute virtual addresses. For more information about PATCH/ABSOLUTE and related parameters, see the HP OpenVMS DCL Dictionary. Additional documentation on the Patch utility can be found in the OpenVMS VAX Patch Utility Manual, available on the OpenVMS Documentation web site under Archived Manuals, or in online Help inside the Patch utility.

4.15 New and Revised System Services

Table 4-4 summarizes system services that are new in OpenVMS Version 8.2.

Table 4-4 New System Services
System Service Description
SYS$CLEAR_UNWIND_TABLE Clears unwind table (UT) information.
SYS$GET_UNWIND_ENTRY_INFO On I64 systems, gets fixed-up unwind entry information.
SYS$GOTO_UNWIND_64 On Alpha and I64 systems, unwinds the call stack.
SYS$IEEE_SET_PRECISION_MODE On I64 systems, modifies the IEEE precision mode and, optionally, returns the previous value.
SYS$IEEE_SET_ROUNDING_MODE On I64 systems, modifies the IEEE rounding mode and, optionally, returns the previous value.
SYS$RPCC_64 On Alpha and I64 systems, returns a 64-bit, process-based, high-resolution time counter.
SYS$SET_RETURN_VALUE On Alpha and I64 systems, sets the return values or condition codes in the Mechanism Array, independent of the architecture.
SYS$SET_UNWIND_TABLE On I64 systems, registers or extends unwind table (UT) information.

For more detailed information, refer to the HP OpenVMS System Services Reference Manual. For additional information about the UNWIND system service routines, refer to the HP OpenVMS Calling Standard.

Table 4-5 summarizes system services that have been revised in OpenVMS Version 8.2.

Table 4-5 Revised System Services
System Service Description
SYS$CHECK_FEN On I64 systems, the bitmask has two bits: bit 0 for the low floating-point bank and bit 1 for the high floating-point bank.
SYS$CREATE_GPFN SEC$M_UNCACHED flag applies only to I64 systems.
SYS$CRELNT LNM$M_NO_ALIAS does not apply to clusterwide logical name tables.
SYS$CREMBX Value of prmflg changed.
SYS$CRMPSC_GDZRO_64 SS$_INSF_SHM_REG condition value added.
SYS$CRMPSC_GPFN_64 Revised to reflect new behaviors of Alpha and I64 systems.
SYS$CRMPSC_PFN_64 SEC$M_UNCACHED flag applies only to I64 systems.
SYS$DEQ Extended Lock Value Block information added.
SYS$ENQ Extended Lock Value Block information added.
SYS$GETLKI Extended Lock Value Block information added.
SYS$GETDVI The following new item codes have been added:
ACCESSTIMES_RECORDED
AVAILABLE_PATH_COUNT
ERASE_ON_DELETE
ERROR_RESET_TIME
HARDLINKS_SUPPORTED
MOUNT_TIME
MOUNTVER_ELIGIBLE
MPDEV_AUTO_PATH_SW_CNT
MPDEV_MAN_PATH_SW_CNT
MVSUPMSG
NOCACHE_ON_VOLUME
NOHIGHWATER
NOSHARE_MOUNTED
ODS2_SUBSET0
ODS5
PATH_AVAILABLE
PATH_NOT_RESPONDING
PATH_POLL_ENABLED
PATH_SWITCH_FROM_TIME
PATH_SWITCH_TO_TIME
PATH_USER_DISABLED
PROT_SUBSYSTEM_ENABLED
SCSI_DEVICE_FIRMWARE_REV
TOTAL_PATH_COUNT
VOLUME_EXTEND_QUANTITY
VOLUME_MOUNT_GROUP
VOLUME_MOUNT_SYS
WRITETHRU_CACHE_ENABLED
SYS$GETRMI Many buffer length fields changed to 8 bytes.
SYS$IEEE_SET_FP_CONTROL Revised to reflect new behaviors of Alpha and I64 systems.
SYS$INIT_VOL New item codes added: INIT$_ERASE_ON_DELETE and INIT$_ERASE_ON_INIT, INIT$_VOLUME_LIMIT
SYS$LKWSET Revised to reflect new behaviors of Alpha and I64 systems.
SYS$LKWSET_64 Revised to reflect new behaviors of Alpha and I64 systems.
SYS$MGBLSC_GPFN_64 SEC$M_UNCACHED flag ignored on I64 systems.
SYS$MOUNT Item code $MNT$_DENSITY revised.
SYS$SETFLT Small change made to FLT$M_EXECUTABLE.
SYS$SETFLT_64 Small change made to FLT$M_EXECUTABLE.
SYS$SETRWN Added system resources and process quotas are affected by resource wait mode.
SYS$SET_DEVICE Added new condition values returned for SDV$_MP_SWITCH_PATH.
SYS$ULWSET Revised to reflect new behaviors of Alpha and I64 systems.
SYS$ULWSET_64 Revised to reflect new behaviors of Alpha and I64 systems.

Refer to the descriptions in the HP OpenVMS System Services Reference Manual for more information.

4.16 Time Zone Information Compiler (zic) Updates

New time indicators are added for AT field in Rule line. The letter "u" (or "g" or "z") indicates the time in AT field as UTC. The following is a detailed description of zic:

AT --- Gives the time of day at which the rule takes effect. Recognized forms include:
2 --- time in hours
2:00 --- time in hours and minutes
15:00 --- 24-hour format time (for times after noon)
1:28:14 --- time in hours, minutes, and seconds
minus sign (-) --- equivalent to 0

Hour 0 is midnight at the start of the day, and hour 24 is midnight at the end of the day. Any of these forms may be followed by the letter w if the given time is local "wall clock" time, the letter s if the given time is local "standard" time, or the letter u (or g or z) if the given time is universal time. In the absence of an indicator, wall clock time is assumed.

4.17 Traceback Facility

The Traceback facility for I64 systems includes a new symbolize routine, TBK$I64_SYMBOLIZE. This routine, which can be invoked at any time, allows an application to process a condition invoked by an exception.

The following information describes this routine.

TBK$I64_SYMBOLIZE

The Traceback symbolize routine, TBK$I64_SYMBOLIZE, allows an application program to process an exception condition.

Calling Convention


#pragma pointer_size save


#pragma pointer_size 64


int32 tbk$i64_symbolize(
   uint64 const pc,
   struct dsc64$descriptor * const filename_desc,
   struct dsc64$descriptor * const library_module_desc,
   uint64 * const record_number,
   struct dsc64$descriptor * const image_desc,
   struct dsc64$descriptor * const module_desc,
   struct dsc64$descriptor * const routine_desc,
   uint64 * const listing_lineno,
   uint64 * const rel_pc);
#pragma pointer_size restore

Input

pc Executable instruction to be "tracebacked" by value in process space.

Output

filename_desc String descriptor in which to return the name of the file containing the code, by reference.
library_module_desc String descriptor in which to return the name of the text library file containing the code, by reference. Returned only if applicable.
record_number A 64-bit unsigned integer in which to return the record number (that is, record number n specifies the nth line of the file specified by filename_desc), by reference.
image_desc String descriptor in which to return the image name, by reference.
module_desc String descriptor in which to return the module name, by reference.
routine_desc String descriptor in which to return the routine name, by reference.
listing_lineno A 64-bit unsigned integer in which to write the compiler listing line number, by reference.
rel_pc A 64-bit unsigned integer in which to write the relative PC value, by reference.

Return Value

TBK$_NORMAL is returned on successful completion Other unsuccessful completion codes may be returned if an error occurs.

Description

The Traceback facility for I64 systems includes a new symbolize routine, TBK$I64_SYMBOLIZE. This routine, which can be invoked at any time, allows an application to process a condition invoked by an exception in an alternate way. Normal traceback processing generates "traceback stack" information onto SYS$OUTPUT (that is, a series of pc values, one for each stack level). If an application wants to independently process traceback information, it can invoke the traceback handling directly.

An application can specify any executable pc value within its image address space and be returned any or all of the return arguments described in the Output section, above. The return information specifies the location of listing line and/or record number of the source code line that generated the object code that includes the pc value specified. This information can also specify the image name, the module name, and the routine name. A relative pc value, which specifies either the image relative or module relative value, is also returned.

The ability for Traceback to return the values requested is dependent upon whether traceback information was requested during the compilation and linker steps of image generation.

Notes

Specifying any output argument (value) as zero causes the argument to be ignored.

To link an application that refers to TBK$I64_SYMBOLIZE, include the following within a linker option file:


SYS$SHARE:TRACE.EXE/shareable

4.18 XDELTA New Features

The following list summarizes new features of the OpenVMS XDELTA Debugger running on OpenVMS Alpha and I64 systems:

  • New commands: ;D and ;T
  • Better symbolization
  • XDELTA supports access to the following Itanium® registers:
    • General registers: R0 through R127
    • Floating registers: FP0 through FP127
    • Application registers: AR0 through AR127
    • Branch registers: BR0 through BR7
    • Control registers: CR0 through CR63
    • Predicate registers: P0 through P63
    • Miscellaneous registers: PC, PS, CFM
    • Software implementation of Alpha hardware registers

For more information, see the HP OpenVMS Delta/XDelta Debugger Manual.


Previous Next Contents Index