| HP OpenVMS Version 8.4 New Features and 
Documentation Overview
 
 8.7.1.1 Partial Dump Copies Qualifiers
Two new qualifiers /PARTIAL and /CONFIRM, have been added to the SDA 
COPY command.
 
/PARTIAL = (section[,...])
 
The /PARTIAL qualifier is used to specify the list of sections of the 
dump to be copied. The sections to be copied must be separated by 
commas. At least one section must be specified. If only one section is 
specified, the parentheses may be omitted. Table 8-2 lists of 
sections of the dump that can be copied.  
 
  Table 8-2 Dump Sections
  
    | PT | System Page Table Space |  
    | S0S1 | 32-bit System Space |  
    | S2 | 64-bit System Space |  
    | REPLICATED_SYS | Replicated System Space (only applies to Alpha systems with RADs 
      enabled) |  
    | PROCESS=option | Process Space for one or more processes. Options are: 
      ALL - All processes. This is the default.
      KEY - All key processes.
      OTHER - All other processes other than key processes.
      NAME=(list) - Specific named processes.
       |  
    | GLOBAL=option | Global Pages. Options are: 
      ALL - All global pages mapped by processes. This is the default 
      option.
      KEY - All global pages mapped by key processes.
      OTHER - All other (not key) global pages mapped by processes.
       |  
    | KEY | Equivalent to: PT, S0S1, S2, REPLICATED_SYS, PROCESS = KEY, GLOBAL = KEY
 |  
    | OTHER | Equivalent to: PROCESS = OTHER, GLOBAL = OTHER
 |  
    | SYSTEM | Equivalent to: PT, S0S1, S2, REPLICATED_SYS
 |  
If /PARTIAL=PROCESS=NAME=(list) is specified:
 
  Multiple process names must separated by commas. If only one 
  process name is given, the parentheses may be omitted.
  Process names can include "%" and "*" wildcards.
  The comparison of the given name to actual process names in the 
  dump is performed case-blind, and trailing spaces and tabs are ignored.
  Process names can include characters, such as "," and "/". You can 
  enclose the process name in quotes to include these special characters 
  in the name you specify. You can also use the "%" wildcard instead of 
  special characters.
 
/CONFIRM
 
The /CONFIRM qualifier can be used with /PARTIAL=PROCESS=option, 
/PARTIAL=KEY, or /PARTIAL=OTHER to choose specific processes instead of 
copying all processes. For each possible process to be copied, the user 
is prompted as follows:
 
 
  
    | 
 
Copy process "SWAPPER"? (Y/[N]/A/Q): 
 |  
where:
 
A response of YES includes the process in the copy.
A response of NO excludes the process from the copy. The default 
response is NO.
 A response of ALL includes the process and all remaining processes in 
the copy.
 A response of QUIT excludes the process and all remaining processes 
from the copy.
 8.7.1.2 DUMP Keyword for /FILEThe DUMP keyword for the /FILE qualifier of the SDA SHOW DUMP command 
can now accept a value. This is the file number assigned by SDA as it 
opens the files that make up the dump. The files are numbered in 
ascending order, starting at 1. If no value exists, the default file is 
1. 
8.7.1.3 DCL ANALYZE /CRASH_DUMP CommandThe following changes have been made to the DCL ANALYZE /CRASH_DUMP 
command: 
  A new qualifier /LOG causes SDA to display the names of the files 
  opened as SDA initializes itself. This does not affect the behavior of 
  commands within SDA, such as READ, but only files are opened when SDA 
  starts. /LOG can also be used on ANALYZE/SYSTEM.
  The filename parameter of ANALYZE/CRASH now accepts a 
  comma-separated list of files and/or wildcards. All matching files are 
  opened in the order they are specified. The following restrictions 
  apply:
  
    The file that contains System Page Tables (section PT) must be the 
    first file opened. This is the "Primary" dump file. Usually, this file 
    contains other sections as well (for example, all KEY sections).
    If a wildcard is used to specify filenames, the primary dump file 
    must be the first file to match the wildcard.
    All the files specified must be part of the same original crash 
    dump.
    If any section of the dump is found in multiple input files, SDA 
    issues a warning but continues.
    If the file or unwind data collection is in a separate file, it 
    must have the same name as the primary dump file, with file type 
    .COLLECT, or be specified using the /COLLECTION qualifier.
    The files specified must either be all compressed or all 
    uncompressed. They cannot be mixed.
   8.7.1.4 Other Notes for Partial Dump Copies
  Partial Dump Copies can only be used with selective system dumps 
  (both compressed and uncompressed). It cannot be used with full system 
  dumps or with process dumps.
  In a selective system dump, processes are dumped in two sections: 
  Process Page Table Space and Process Memory. If a process is copied as 
  part of a COPY /PARTIAL, the two sections are always copied together.
  In a selective system dump from an Alpha system with RADs enabled, 
  there is a Replicated System Space section for each RAD other than the 
  base RAD. If replicated system space is copied as part of a COPY 
  /PARTIAL, all replicated system space sections are always copied 
  together.
  The /PARTIAL qualifier cannot be combined with /COMPRESS or 
  /DECOMPRESS. Such a copy must be performed as two separate COPY 
  commands, and requires exiting from SDA and re-invoking it on the 
  intermediate copy.
 8.7.2 Non-truncated Index Pages
 The index page generated for the SET OUTPUT command is no longer 
 truncated when the page is full, but additional pages are created with 
 links.
 
In earlier releases of OpenVMS, the index page in an SDA output file 
could hold a maximum of 45 page headings, and each heading could be a 
maximum of 64 characters. Longer page headings were truncated, and any 
additional page headings were not recorded in the index.
 
OpenVMS Version 8.4 has been enhanced with the following changes:
 
  If the index page is full, a new page is created and its page 
  number is recorded in the initial index page.
  Index pages now record the page number of the previous and the next 
  index page.
  The number of page headings in each index page has been increased 
  to 51.
  To limit truncation of page headings in the index, the maximum 
  length of each heading has been increased to 100 characters.
 8.7.3 SHOW_PFN_DATA Command: New Qualifier
A new /SUMMARY [=keyword] qualifier has been added to the SDA command 
SHOW PFN_DATA. The SHOW PFN_DATA /SUMMARY command produces a 
single-page summary of all pages on the system. The optional keywords 
are ALL, PROCESS, GLOBAL, and RAD.
 
If ALL is specified, it must be the only keyword. The other optional 
keywords can be provided as a combination, separated by commas and 
enclosed in parentheses.
 
The PROCESS keyword causes SDA to generate the following additional 
lists:
 
  A list of all processes in the system displaying the breakdown of 
  its active pages.
  A list of all processes that contain non-active pages. For example, 
  pages on the modified list.
 
The GLOBAL keyword causes SDA to generate an additional list with the 
breakdown for each global section of its in-memory pages, which pages 
are active, and which are on the free list or modified list.
 
The RAD keyword causes SDA to generate an additional list for each RAD, 
if RADs are enabled on the system, with the breakdown of all pages in 
the RAD sorted by location and type.
 
The ALL keyword causes SDA to generate summaries for each of the 
PROCESS, GLOBAL, and RAD (if RADs are enabled on the system) categories.
 
Example:
 
 
  
    | 
 
SDA> SHOW PFN /SUMMARY = (PROCESS, GLOBAL) 
 |  8.7.4 Optional Filter Address for /RING_BUFFER[=n]
The SDA commands SHOW POOL /RING_BUFFER and SHOW PROCESS /POOL 
/RING_BUFFER now allow an optional address expression on the 
/RING_BUFFER qualifier. If the optional address is specified, SDA 
displays only the ring buffer entries for pool packets that contain the 
specified address.
 
For SHOW PROCESS /POOL, use of /RING_BUFFER=address to limit the 
display also implies /RING_BUFFER=ALL - all entries for packets 
containing the address are displayed including matched allocations and 
deallocations.
 
Example:
 
 
  
    | 
 
SDA> SHOW POOL /RING_BUFFER = 83A01234 
 |  8.7.5 SHOW SYMBOL Command: New Qualifier
A new /BASE_ADDRESS=n qualifier has been added to the SDA command SHOW 
SYMBOL. Without this qualifier, SDA displays the value of the symbol, 
and, if the value is a valid address in the system or dump being 
analyzed, it displays the contents of that address. With the new 
/BASE_ADDRESS=n qualifier, the value n is added to the symbol's value 
and SDA displays the contents of the resulting address if it is valid.
 
Example:
 
 
  
    | 
 
SDA> SHOW SYMBOL CPU*BC* /BASE = CPUDB 
 |  8.7.6 SHOW ACPI /NAMESPACE and SHOW ACPI /TABLES Commands
 Two new commands have been added to SDA to display ACPI data 
 structures: SHOW ACPI /TABLES and SHOW ACPI /NAMESPACE. You must 
 specify either /TABLES or /NAMESPACE, but not both the qualifiers. By 
 default, the command displays a summary of the ACPI tables or 
 namespace. These commands can also be specified with optional 
 qualifiers and parameters.
 
SHOW ACPI /TABLES name displays the details of the specified 
table. If there are multiple ACPI tables with the same name, details 
will be displayed for all such tables.
 
SHOW ACPI /NAMESPACE name displays summary information for all 
namespace entries with the specified name.
 
The following qualifiers can also be specified with these commands:
 
  /ALL - outputs a detailed display of each item instead of summary 
  only.
  /ADDRESS - outputs a detailed display of the item at the specified 
  address. For /TABLES, this is a physical address; for /NAMESPACE, this 
  is a virtual address. The address of each item can be found in the 
  summary display.
  /CHILDREN (only valid with /NAMESPACE and when a name or an address 
  is also specified) - displays the summary of all namespace entries that 
  are children of the specified entry. You can combine /CHILDREN and /ALL 
  to see the details of the entries.
 
Examples:
 
 
  
    | 
 
SDA> SHOW ACPI /TABLES XSDT 
SDA> SHOW ACPI /NAMESPACE _HID 
SDA> SHOW ACPI /NAMESPACE CPU0 /CHILDREN 
 |  8.7.7 SHOW SPINLOCKS Command: New qualifiers
Two new qualifiers have been added to the SDA command SHOW SPINLOCKS: 
/DEVICE and /MISCELLANEOUS.
 
The /DEVICE qualifier causes SDA to display the device spinlocks, which 
are a subset of the dynamic spinlocks.
 
The /MISCELLANEOUS qualifier causes SDA to display all spinlocks that 
are not included in existing groupings, such as mailbox and PCB 
spinlocks. Miscellaneous spinlocks include those of XFC, PEDRIVER, 
TCP/IP, and various other spinlocks, and vary from system to system.
 
Note that the /DYNAMIC qualifier is unchanged. It causes SDA to display 
all dynamic spinlocks, which are now a superset of device, port, 
mailbox, PCB, cached PCB, process-shared (pthreads) and miscellaneous 
spinlocks.
8.7.8 SHOW RESOURCE /CONTENTION Command: New qualifier 
A new /FULL qualifier has been added to the SDA command SHOW RESOURCE 
/CONTENTION. If /FULL is specified, an expanded display of each 
resource that is in contention is output. If /FULL is not specified, 
the default display is a one line summary of the resource, with an 
additional line for each lock associated with it. The /FULL qualifier 
can be used with both SHOW RESOURCE /CONTENTION and SHOW RESOURCE 
/CONTENTION = ALL.
8.7.9 SET CPU and SHOW CPU Command: New qualifier 
A new /PRIMARY qualifier has been added to the SDA SET CPU and SHOW CPU 
commands, which sets or shows the primary CPU.
8.7.10 SHOW RAD Command: New qualifier (Integrity servers Only) 
On Integrity server systems, a new /PXML qualifier has been added to 
the SDA command SHOW RAD. The SHOW RAD/PXML command displays the 
proximity database. The proximity database contains the information 
obtained from the ACPI tables. The proximity database is used to 
determine the RADs to be created on the system, and which CPUs and 
memory ranges make up each RAD.
 
Example:
 
 8.8 Memory Disk Booting from InfoServer (Integrity servers Only)
OpenVMS Version 8.4 supports "Memory Disk" booting from an InfoServer 
server. This feature eliminates the need for an OpenVMS LAN boot driver 
to boot over the network. It uses the existing Memory Disk boot 
functionality used for Integrity server satellite boots. For more 
information about memory disk booting from InfoServer, see the HP 
OpenVMS Version 8.4 for Integrity Servers Upgrade and Installation 
Manual.
8.9 Availability Manager Support for Cluster over IP 
Availability Manager Version 3.1 has been enhanced to support the 
Cluster over IP functionality. This new release of Availability Manager 
provides functionality to manage and monitor LAN or IP path (channels) 
data, IP interface (IP bus) used for cluster communication, and virtual 
circuit formed using IP channels.
 
 
 Chapter 9Programming Features
This chapter describes new features relating to application and system 
programming in OpenVMS Version 8.4.
9.1 OpenVMS Callable Mail Enhancement 
The OpenVMS callable mail API, MAIL$SEND_MESSAGE has been enhanced to 
send mails directly to the specified folder using the new send item 
code, MAIL$_SEND_RECIP_FOLDER.
 
If the recipient is VMSmail, and if the specified folder does not 
exist, a new folder with the name specified by the send item code is 
created. The folder name is case sensitive.
 
If you specify the MAIL$_SEND_RECIP_FOLDER item code, the new mail is 
placed in the folder specified by this item code. By default, if the 
item code is not specified, the mail is placed in the NEWMAIL folder. 
Using this feature, new mails can be directly sent to folders, such as 
JUNK or SPAM.
 
If the target mail server is a non OpenVMS server, the folder to which 
it is delivered depends on the protocol used by the recipient.
9.2 C Run-Time Library Enhancements 
The following sections describe the C Run-Time Library (C RTL) 
enhancements included in OpenVMS Version 8.4. These enhancements 
provide improved UNIX portability, standards compliance, and the 
flexibility of additional user-controlled feature selections. New C RTL 
functions are also included. For more information about the C RTL 
functions, see the HP C Run-Time Library Reference Manual for 
OpenVMS Systems.
9.2.1 C RTL Support for Unicode - UTF-8 Encoding for Filenames 
C RTL APIs now support filenames in UTF-8 (8-bit UCS/Unicode 
Transformation Format) encoding format when given in UNIX syntax. UTF-8 
is a variable-length character encoding for Unicode.
 
UTF-8 is the most preferred encoding for email, web pages, and other 
places where characters are stored or streamed. For example, on an 
ODS-5 disk, the OpenVMS DIRECTORY command supports a filename with the 
following characters:
/disk/mydir/^U65E5^U672C^U8A9E.txt
 
With UTF-8 support enabled, a C program can read the filename from the 
OpenVMS directory and use the filename as an UTF-8 encoded string. For 
example, opendir("/disk/mydir") followed by an readdir() places 
"\xE6\x97\xA5\xE6\x9C\xAC\xE8\xAA\x9E.txt" in the d_name field of the 
supplied directory structure. An 
open("/disk/mydir/\xE6\x97\xA5\xE6\x9C\xAC\xE8\xAA\x9E.txt",O_RDWR,0) 
or open("/disk/mydir/xxxyyyzzz.txt", O_RDWR,0) opens this file.
 
Where; "\xE6\x97\xA5" is the E697A5 byte stream, which represents the 
xxx character in UTF-8 encoding.
 
This feature enhances the UNIX portability of international software 
with UTF-8 encoded filenames.
 
DECC$FILENAME_ENCODING_UTF8 logical name is introduced to enable this 
feature. To enable the UTF-8 encoding, define 
DECC$FILENAME_ENCODING_UTF8 and DECC$EFS_CHARSET logical names. If 
DECC$FILENAME_ENCODING_UTF8 is not defined, the default behavior is to 
accept filenames in ASCII and Latin-1 format. Note this feature works 
only on an ODS-5 disk.
 
For more information about UTF-8 encoding, see HP C Run-Time 
Library Reference Manual for OpenVMS Systems.
9.2.2 Enhanced strcmp() and memcmp() for Performance Improvements 
C RTL strcmp() and memcmp() APIs have been enhanced to improve 
performance on Integrity servers, which reduces the compute time.
 
Approximately 56% performance improvement was seen with the newer 
implementation and thus, enhances the performance throughput of many 
business critical applications.
9.2.3 Semaphore Support 
C RTL supports the following Open Group semaphore control operations in 
C RTL:
System V semaphore routines supported:
 
semctl()
  semget()
 semop()
 ftok()
 
POSIX semaphore routines supported:
 
sem_close()
  sem_destroy()
 sem_getvalue()
 sem_init()
 sem_open()
 sem_post()
 sem_timedwait()
 sem_trywait()
 sem_unlink()
 sem_wait()
 9.2.4 DECC$PRINTF_USES_VAX_ROUND Feature Switch
A new feature switch, DECC$PRINTF_USES_VAX_ROUND, has been added to the 
C RTL.
 
With this switch set, the F and E format specifiers of
printf
 use VAX rounding rules for programs compiled with IEEE float.
9.3 Linker Utility Enhancement 
New /CBT and /NOCBT qualifiers are added to the LINK command. The 
linker creates image files using /NOCONTIGUOUS (default) or 
/CONTIGUOUS. However, the default /NOCONTIGUOUS does not create a 
non-contiguous file; it creates a contiguous best try (CBT) file.
 
In some build environments, for example, if the target disk is heavily 
fragmented and is also heavily used from other nodes in a cluster 
environment, it is often impossible to write contiguous files. 
Attempting to do so can impact the I/O performance for this disk on all 
nodes in the cluster.
 
To make the new qualifiers compatible with the existing default, the 
new default is /NOCONTIGUOUS and /CBT. To disable the default and have 
the linker create a non-contiguous file, /NOCBT must be specified. The 
combination of /CONTIGUOUS and /NOCBT is contradictory and is not 
allowed. Specifying /CONTIGUOUS/CBT or /CONTIGUOUS gives the same 
result.
9.4 System Services New Information 
The following new system service has been added to OpenVMS Version 8.4:
 
  $POWER_CONTROL - $POWER_CONTROL system service is added on all 
  Integrity server system platforms to change the platform's power and 
  performance settings to a desired value. The setting applies to the 
  entire system as though commanded using the iLO web interface. For 
  information about $POWER_CONTROL, see the HP OpenVMS System 
  Services Reference Manual.
 9.5 New Item Codes
The following new item codes have been added to the $GETDVI system 
service:
 
  DVI$_NOXFCCACHE_ON_VOLUME - returns a boolean value indicating 
  status of whether XFC caching is enabled on the volume. A value of 0 
  indicates that XFC caching is enabled for the volume. A value of 1 
  indicates that XFC caching is disabled for the volume.
  DVI$_XFC_DEPOSING - returns a boolean value indicating whether the 
  XFC volume depose operation is in progress or not. A value of 0 
  indicates that the XFC volume depose operation is not in progress. A 
  value of 1 indicates that the XFC volume depose operation is in 
  progress.
 
The following new item codes have been added to the $MOUNT system 
service:
 
  MNT$_DATA---specifies if the XFC must be enabled on a disk. By 
  default, MNT$_DATA is passed with MOUNT, except when NOQUOTA, 
  NOFILEDID, NOEXTENT, and WRITETHROUGH values are passed.
  MNT$_NODATA---specifies if the XFC must be disabled on a disk. This 
  value is the default value when NOQUOTA, NOFILEID, NOEXTENT, and 
  WRITETHROUGH values are passed with the MOUNT command.
 
        For more information, see the HP OpenVMS System Services Reference Manual.
 
 
 |