HP-UX 11i December 2002 Release Notes
Programming
Miscellaneous
Chapter 15
294
Also, since CMA threads are being obsoleted, it is recommended that all applications
using CMA threads start migrating to kernel threads and use libdcekt. (See “Kernel
Threads vs. CMA Threads” on page 205 for additional information.)
Compatibility Issues
All applications using the 64-bit library libdcekt may need to include
/usr/include/dce/dce64.h.
DCE server products are not supported on workstations (Series 700 machines).
Documentation
The site http://devresource.hp.com/STK contains 64-bit porting concepts and 64-bit
compiler and linker changes needed to port the application to 64-bit.
Extensions to pstat()
This extension provides new functionality to the pstat() system call, enabling various
system management and measurement tools to eliminate their dependency on the
/dev/kmem pseudo-driver.
Today, many system management and measurement tools read kernel data structures
through unsupported interfaces, such as the /dev/kmem pseudo-driver, to get
information about open files, resource usage, process activity, and so on. Because kernel
data structures change from release to release, this access method is fragile, incurring a
high maintenance cost. To insulate these applications from the release-to-release
variability in private kernel data structures, HP-UX 11i provides the enhanced pstat
system call and a new set of wrappers.
The pstat interface is designed to allow future expansion of the interface, while
preserving source and binary compatibility of programs written using pstat wrappers.
The pstat interface is available in both 64-bit and 32-bit versions. Replacing the
/dev/kmem access with calls to pstat wrappers will eliminate the need to re-release
applications with each new HP-UX release.
Currently, the pstat() system call provides information about various system contexts,
such as static, dynamic, virtual memory, process, open files, etc. HP-UX provides a
number of libc wrappers (pstat_get()*) and corresponding structures (struct
pst_()*) to get information from the kernel using pstat(). As part of this
enhancement, new pstat() wrappers and corresponding structures are added and some
existing ones are extended.
Compatibility is significantly improved by introducing a well documented interface that
guarantees binary compatibility for kernel intrusive applications between releases.
There is no impact to legacy behavior of current pstat() services.
There is no impact to application performance as compared to obtaining the data from
/dev/kmem. No impact to system performance is expected from these pstat extensions.
NOTE This release includes an enhanced version of pstat(). This version repairs some
existing defects by adding more fields in pst_status struct to return process children
usage information. The pstat (2) manpage reflects this added functionality. The
enhancement poses no problem for 11.0 executables running on 11.0 Extension Pack or
11i, nor for any executables running on 11.0 Extension Pack, as long as they do not rely
on the additional functionality.