This document supports Version 4.6.0 of the DYNIX/ptx® operating system. Be sure to review this document before you install or run this release of DYNIX/ptx.
DYNIX/ptx V4.6.0 is supported on NUMA-Q® systems only.
Following are the minimum version requirements for system software and layered products. Earlier versions of these products are not supported on DYNIX/ptx V4.6.0.
Fibre Channel Switch Software V1.6c3 (SilkWorm® 1000 family of switches) or V2.1.7 (SilkWorm 2000 family of switches)
NUMA-Q Console Software V1.7.4
Backup Toolkit V4.4.3 (required for SAMS:Alexandria®)
cfwdl-Compatible Firmware Bundle V1.1.0
CommandPointTM Admin V4.6.0
CommandPoint Base V4.6.0
CommandPoint Clusters V2.3.0
CommandPoint SVM V2.3.0
EES V1.2.1
edb Debugger V3.4.1
Encryption Software V4.6.0 (U.S. and Canada only)
Micro Focus® COBOL Developer Suite V4.0
Micro Focus Application Server/OSX V4.0
ptx/AGENT V1.5.0
ptx/ATM V4.7.0
ptx/BaseComms V1.3.0
ptx/C++ V5.2.5
ptx/C++ Runtime V5.2.5
ptx/CFS V1.2.0.
ptx/Channel Attach V4.5.1
ptx/CLUSTERS V2.3.0
ptx/Configuration Assistant V1.1.0
ptx/CTC V1.3.0
ptx/EFS V1.5.0
ptx/ITX V4.5.1
ptx/JSE V3.0.2
ptx/LAN V4.8.0
ptx/LICENSE V2.0.0
ptx/NFS® V4.8.0
ptx/PDC V1.5.0
ptx/RAID V2.2.0
ptx/SESMON V1.2.0
ptx/SPDRIVERS V4.0.0
ptx/SVM V2.3.0
ptx/SYNC V4.6.0
ptx/TCP/IP V4.7.0
ptx/X.25 V4.5.1
ptx/XWM V4.6.2
ptx/XWM Contributed V4.6.2
Public Software V4.6.0
SequentLINKTM V4.3.2
The following products are not supported on DYNIX/ptx V4.6.0:
NetWare® for Sequent Information Servers
ptx/DNA
ptx/ESBM (replaced by SAMS:Alexandria and Backup Toolkit)
ptx/FTAM
ptx/LAT
ptx/LDAP
MQSeriesTM for DYNIX/ptx V2.1.0
ptx/Netscape FastTrack Server®
ptx/NWS
ptx/OSBM (replaced by SAMS:Alexandria and Backup Toolkit)
ptx/OSI
ptx/PEP (replaced by ptx/PDC)
ptx/SDI
ptx/VT
ptx/X.400 Base Services
ptx/X.400 Sendmail Gateway
The DYNIX/ptx operating system complies with the following standards:
ISO/IEC 9899:1990 Information technology - Programming Language C.
System V Interface Definition, Third Edition, Volume 1 (base system and kernel extension).
IEEE Standard 1003.1-1990 Portable Operating System Interface for Computer Environments (POSIXTM) and the Federal Information Processing Standards Publication (FIPS PUB 151-2) qualifications and extensions to the POSIX specification.
Portable Operating System Interface (POSIX) IEEE 1003.2-1992. Although not yet officially certified, DYNIX/ptx is compliant with this standard.
Threaded interfaces are compliant with those in POSIX 1003.1-1996.
X/Open Portability Guide (XPG4.2).
System V Application Binary Interface Third Edition and ABI+ extensions.
Operating Systems Programming Interface section of the Applications Environment Specification (AES) standard from OSF®.
The following platforms and their associated devices are not supported in DYNIX/ptx V4.6:
5.25" Pbays and devices are supported in the boot Pbay only.
The COFF compatibility development environment has been removed. The COFF libraries present in earlier versions of DYNIX/ptx are no longer available.
COFF binaries will continue to work unless one or more of the following conditions exists:
The binary accesses /dev/kmem.
The binary accesses a kernel component.
The binary relies on the DYNIX/ptx V2.x directory structure.
For information about installing this release of DYNIX/ptx, refer to the DYNIX/ptx V4.6.0 and Layered Products Release Notes.
The following restrictions must be followed when running DYNIX/ptx V4.6. In these restrictions, local refers to devices connected directly to the PCI/SCSI interface on NUMA-Q systems.
The root, dump, and primary swap partitions can be located on either local disks or shareable disks attached to the Fibre Channel; however, the disks must be labeled as node-owned. Disks requiring support from a layered product (such as ptx/RAID) cannot be used for this purpose.
The node ID and Master ID must be set on the system.
If the root and primary swap partitions are under ptx/SVM control, they must be a single complete plex (that is, they can be mirrored, but not striped or concatenated).
The miniroot partition can be located on either a local or shareable disk. Disks requiring support from a layered product (such as ptx/RAID) cannot be used for this purpose. The miniroot must occupy the entire partition.
The /etc/dumplist file, which lists devices that can be used for a memory dump, should not contain the primary swap partition. If you are using swap partitions as dump devices, you must have enough secondary swap partitions to accommodate an entire crash dump.
When powering up a NUMA-Q system, power on all Pbays before powering on the Fibre Channel Bridges. On power-up, the FC Bridge will attempt to spin up all disks. If the Pbay is off, the FC Bridge will not be able to register the disks.
In general, the stand-alone kernel should not be used for system maintenance operations. System maintenance operations should be done while running the standard kernel in single-user mode. The SAK is primarily a boot loader. It has limited memory availability and does not support the full set of services available in a standard kernel. Applications that rely on services that are not available or that use large amounts of memory may hang or panic the SAK. For details about running commands from the SAK, refer to the DYNIX/ptx System Administration Guide.
DYNIX/ptx V4.6 has been modified to comply more closely with Single UNIX Specification, Version 2, the standard for UNIX98.
The default shell is now the UNIX98 shell, which is similar to the 1993 release of the Korn shell. Previously, the Bourne shell was the default. You may need to modify existing Bourne and Korn shell programs to enable them to run properly with DYNIX/ptx V4.6. See Appendix A for a description of the UNIX98 shell and for details about converting scripts and making other shell-related changes.
The following changes have been made for compliance with UNIX98:
Minor features have been added to certain commands.
Minor corrections have been made to the behavior of certain commands.
A new utility, sccs, has been added.
Utilities have been internationalized, or improvements have been made to their internationalization capabilities.
Utilities have been modified to handle the correct limits for items such as the length of pathnames and text lines.
See the later section "Commands" for details about the changes made to specific commands. You may need to modify your shell scripts to reflect the changes.
The following changes have been made for compliance with UNIX98:
File, encryption, legacy, and dynamic-linking library interfaces have been modified. See the later section "System Calls and Libraries" for details.
The AIX-compatible curses library is now provided. See the curses(3W) man page for information about this library.
The previous DYNIX/ptx-compatible curses library is still available. To compile and link with this library, define the value SEQUENT_CURSES and link with the library liboldcurses.
With the exception of curses(3W), DYNIX/ptx does not include the AIX-compatible curses man pages. However, in most cases, the man pages for the old version of curses also apply to the AIX-compatible version.
The entry points for the routines in the realtime library are provided; however, their functionality is not implemented. The -lrt option links with the realtime library. See realtime(2) for more information.
Several modifications have been made to header files and to the math, I/O, XTI, and process control interfaces.
Several new interfaces have been added to libc. See the later section "Threads Support" for information about these interfaces.
In the DYNIX/ptx V4.4/V4.5 releases, the root and primary swap partitions had to be located on local SCSI disks connected to a bootable Pbay or boot bay. This restriction no longer applies.
In DYNIX/ptx V4.6, the root and primary swap partitions can be located on shareable disks attached to the Fibre Channel. On systems with multiple quads, the disks must be accessible from the first four quads. The system must be booted on V4.6 before installing the root filesystem on a shareable disk or moving the root filesystem to a shareable disk.
Disks that require the installation of a layered product, such as rd disks supported by ptx/RAID, cannot be used for root or swap partitions.
To support the ability to place the root and primary swap partitions on Fibre Channel devices, DYNIX/ptx V4.6 requires that the Master ID and Node ID be set on your system. Disk labels must also be used.
Disk labels specify whether disks are owned by a node or a cluster. DYNIX/ptx V4.6 uses these labels to control access to shareable disks (that is, disks that can be potentially accessed from multiple nodes). The operating system cannot open a disk that does not have a label.
Disks containing root, primary swap, secondary swap, and dump partitions must be node-owned. The root disk is labeled automatically when you install DYNIX/ptx V4.6.
ATTENTION Disks with disk labels cannot be opened under DYNIX/ptx V4.4/V4.5. The disk label must be removed if you need to use a labeled disk with DYNIX/ptx V4.4/V4.5.
A new command, diskown, is available for assigning labels to disks. You can also use this command to modify or delete a label, or to display disk label information.
You can also specify disk label information through the /etc/devlabel file. You will need to create this file during the V4.6 installation procedure as described in the DYNIX/ptx V4.6.0 and Layered Products Software Installation Release Notes.
Before installing DYNIX/ptx V4.6, you will need to set the Master ID and Node ID on your system. The Node ID is specified in your service contract. On a single-node system, the Master ID should mach the Node ID. On a clustered system, each node must have the same Master ID, which should be the lowest numbered Node ID of the nodes in the cluster. For information about setting these IDs, see the DYNIX/ptx V4.6.0 and Layered Products Software Installation Release Notes.
The bootpath uses a physical specifier to identify the root disk. In previous releases, the specifier was a physical path:
quad(0)pci(0)scsi(0)disk(3)
In DYNIX/ptx V4.6, you can also use the disk's user_defined_name or a combination of its vendor ID, product ID, and serial number as the physical specifier.
The user_defined_name is included in the disk label and is typically added with the diskown command during the V4.6 installation. If the root disk has a user_defined_name, you can use the nm token to represent it in the bootpath:
nm(user_defined_name)disk()
You can also use the sn token in the bootpath. This token specifies the vendor ID, product ID, and serial number for the device. To obtain the sn token for a particular device, use the mapdev -s option.
sn(vendor,product,serial_number)disk()
The following commands are equivalent:
# /etc/bootflags 'bootPath=quad(0)pci(0)scsi(0)disk(3)'
# /etc/bootflags 'bootPath=nm(user_defined_name)disk(3)'
# /etc/bootflags 'bootPath=sn(vendor,product,serial_number)disk(3)'
For more information about the boot syntax, see DYNIX/ptx System Administration.
For compliance with the UNIX98 standard, the nawk utility has been renamed to awk. The previous awk utility has been renamed to oawk.
These changes may affect your scripts. If a script refers to awk, the new implementation of awk (previously nawk) will be invoked. Old awk scripts should continue to run under the DYNIX/ptx V4.6 implementation of awk. However, if a script does not run correctly, the old version of awk is available as oawk.
The nawk utility still exists. If your scripts reference nawk, they will continue to work as in previous releases, with the exception of changes made for UNIX98 compliance.
The following changes have been made to awk (previously nawk) in V4.6:
The -F option now specifies the field separator. Previously, -f specified the field separator.
awk now flags a syntax error for logical operators used with two or more extended regular expressions. For example, the following command generates a syntax error:
awk -F: '!/^#/ && !/[ \t]/ {print $1}' ibms4m.geom
To fix the problem, modify the command as follows:
awk -F: '!/^[# \t]/ {print $1}' ibms4m.geom
Some scripts use match as an array name and pass it to split. Because match is now a function name in awk, an error will occur. To fix this problem, variables named match must be renamed.
oawk (previously awk) now handles uninitialized fields correctly. You can create uninitialized fields in a record by assigning a value to them. In this case, the NF variable will increase, any intervening fields will be created with a null string, and the value of $0 will be recomputed using the value of the OFS variable.
For example, when oawk reads this simple script:
#!/bin/ksh awk '{ $4 = "field4" print $0 print $NF }' <<EOF field1 field2 EOF
It now produces this output:
field1 field2 field4 4
Previously it produced this incorrect output:
field1 field2 2
When the mkvtoc command includes the -s option to specify the VTOC to be installed on the disk, it is no longer necessary to specify a disktype.
If the command does not include the -s flag, a disktype must be specified and the appropriate /etc/diskinfo/<disktype>.geom file must exist.
DYNIX/ptx V4.6 includes a new command, crtvtoc, that can be used to create a custom VTOC and install it on a disk. The command includes options to create root, swap, and dump partitions for a root disk.
For other partitions, you can use the following options:
Specify a size for the partitions. The space on the disk will be divided into partitions of that size. Any remaining space will be added to the last partition.
Specify the number of partitions to be created. The partitions will be of the same size; however, any remaining space will be added to the last partition.
Define each partition separately, including size, type, block size, and fragment size.
The ptx/ADMIN "Create a Custom VTOC File" option has been modified to use crtvtoc. For more information, see crvtoc(1M) and DYNIX/ptx System Administration.
The following changes have been made:
The operating system no longer uses the /etc/devtab file to store information that devbuild uses to build virtual devices on disks. Instead, the information is stored in the device naming database.
The CMPT virtual device is now obsolete. devbuild and devdestroy now operate with only the VTOC virtual device.
devbuild and devdestroy are now part of the devctl utility and are documented on the devctl(1M) man page.
devbuild and devdestroy now affect all nodes in a clustered system. You no longer need to issue the command on each node.
The options for devbuild and devdestroy are now as follows:
DYNIX/ptx now supports the "borrow" memory policy, which allows you to specify the minimum and maximum amounts of memory for a region. The minimum amount of memory is guaranteed to be available to the region. The region can borrow additional memory up to the maximum amount from the free pool maintained by the system. You can set the "borrow" memory policy with either ptx/ADMIN or the rgnctl command.
The operating system now reserves a minimum amount of memory for the system region. A new tunable kernel parameter, SYSRGN_MIN_RESERVE, specifies the minimum amount; the default is 64 MB. You can also use the rgnctl command to change the minimum amount of memory reserved for the system region:
rgnctl -m -R mem_min=amt system
The minimum reserve is in effect only when a user-defined region is active. Otherwise, the system region has all of the free memory on the system.
See DYNIX/ptx System Configuration and Performance and the rgnctl(1M) man page for more information about these features.
The /etc/sysdef command can now be used to tune many kernel parameters dynamically. The change takes effect when you run the command; you do not need to compile the kernel.
ATTENTION You can also tune these parameters with the ptx/ADMIN "Kernel Configuration" option; however, this method requires that you compile the kernel and reboot.
The sysdef command has the following options:
name value
You must be root to use this option.
When using sysdef to modify parameters, keep in mind that the change takes place at the time the command is executed; it cannot retroactively change a parameter. For example, the following command immediately increases the number of CDFS filesystem inodes allocated in the kernel.
# /etc/sysdef -a CDFS_NINODE 92
However, if the SHM_LOCK_OK flag is enabled and you then disable it with sysdef, the command will have no effect on operations that are already locked.
The following parameters can be tuned with sysdef. For more information about these parameters, see DYNIX/ptx System Configuration and Performance.
Semaphore Parameters:
IPC Message Parameters:
IPC Shared Memory Parameters:
Other Parameters:
Whether use of the chown() system call is restricted to the superuser.
The size of the frame used in the disksort algorithm. We recommend that you change this parameter only under the direction of customer support.
Whether a block write is scheduled when the operating system writes off its end. This parameter is enabled by default. We recommend that you change it only under the direction of customer support.
The interval (in seconds) between complaints about filesystem resource exhaustion. We recommend that you change this parameter only under the direction of customer support.
When you set a parameter with the sysdef command, the change stays in effect only until the next system boot. To save these changes and reinstate them at boot time, add a script containing the changes to the directory /etc/ktune.d.The script can contain multiple sysdef commands, one per line. You can give the script any name you want; however, it must be executable.
Alternatively, you can modify the parameter through ptx/ADMIN and recompile the kernel. The change will then be in effect each time the system is rebooted.
The following memory pools have been added:
The base.file memory pool, which specifies the maximum number of concurrently open files, was previously limited by the NFILE kernel parameter. This parameter has been removed in V4.6. Instead, a new script, base.file, sets the limit for this pool during system boot.
The base.file script is located in the /etc/ktune.d directory. This directory also contains the scripts base.sem, base.msg, and base.shm, which set the limits for the corresponding memory pools at boot time.
To dynamically adjust the value for a pool, use kmstune to modify the red attribute. To preserve the change across system boots, also modify the value in the corresponding script in the /etc/ktune.d directory.
Each structure pool has a size statistic that specifies the size of the structure. The size of a page is then calculated as 4096 divided by the pool's size. When you set the red zone for a structure pool, kmstune will round up the value you specified to the granularity of a page of memory.
The number of available process table slots can now be tuned dynamically. At boot time, the system allocates virtual memory for NPROC_MAX process table slots and physical memory for NPROC process table slots. If the system uses all NPROC table slots, it can dynamically allocate additional physical memory up to NPROC_RTIMAX slots.
The parameters have this relationship:
NPROC <= NPROC_RTIMAX <= NPROC_MAX
The NPROC_RTIMAX and NPROC_MAX parameters are new in V4.6.
The NPROC and NPROC_MAX parameters are located in the /usr/conf/uts/kernel/i386_space/config file and can be tuned with the ptx/ADMIN "Kernel Configuration" option. You will need to recompile the kernel after changing these parameters. You can tune the NPROC_RTIMAX parameter dynamically with the sysdef command.
A new parameter, SYSRGN_MIN_RESERVE, specifies the minimum amount of memory that will be reserved for the system region. The default value is 64 MB. This parameter can be tuned with the ptx/ADMIN "Kernel Configuration" option.
The following parameters are now obsolete. If these parameters are in your local site file (/usr/conf/uts/symmetry/sci/site.<machine.name>), remove them before you upgrade to DYNIX/ptx V4.6.
CDFS_NCDIV |
FLINO_MULT |
NFILE |
CDFS_NCMULT |
MFILE_DIV |
NMFILE |
CDFS_NCSIZE |
MFILE_MULT |
P_LOCK_DEBUG |
FDIV_BUG_FLAG |
MSGMAP |
SEMMAP |
FILCK_MULT |
MSGMNI |
SEMMNI |
FILE_DIV |
MSGSEG |
SHMMNI |
FILE_MULT |
MSGSSZ |
SHMSEG |
FIST_BUG |
Several interfaces have been added to libc for UNIX98 compliance. To compile code that calls any of the interfaces, either specify the compiler switch -Kthread or define the symbol _SEQUENT_THREADS. The compiler parameter -lpthread can be specified, but is not necessary.
pthread_condattr_getpshared()
Obtains the process-shared attribute of a condition variable attributes object.
pthread_condattr_setpshared()
Changes the process-shared attribute of a condition variable attributes object.
pthread_mutexattr_getpshared()
Obtains the process-shared attribute of a mutex attributes object.
pthread_mutexattr_setpshared()
Changes the process-shared attribute of a mutex attributes object.
pthread_rwlockattr_getpshared()
Obtains the process-shared attribute of a read-write lock attributes object.
pthread_rwlockattr_setpshared()
Changes the process-shared attribute of a read-write lock attributes object.
pthread_getconcurrency()
Obtains the level of thread concurrency.
pthread_setconcurrency()
Sets the level of thread concurrency.
pthread_attr_getguardsize()
Obtains the size of the current thread's stack guardsize.
pthread_attr_setguardsize()
Sets the size of the current thread's stack guardsize.
The following interfaces are not supported and return ENOSYS.
pthread_attr_getinheritsched()
pthread_attr_setscope()
pthread_attr_setinheritsched()
pthread_mutexattr_getprioceiling()
pthread_attr_getschedpolicy()
pthread_mutexattr_setprioceiling()
pthread_attr_setschedpolicy()
pthread_getschedparam()
pthread_setschedparam()
pthread_mutex_getprioceiling()
pthread_mutex_setprioceiling()
pthread_mutexattr_getprotocol()
pthread_attr_getscope()
pthread_mutexattr_setprotocol()
The following options on the Disk Drive Management menu (System Administration -> Disk Management) have changed:
The "Create a Compatibility Device" option has been replaced with the "Add a Virtual Device" option. The new option pushes a new VTOC onto the specified disk. The disk must already contain a VTOC. This option can be used when you have modified a VTOC and need to install the new version on a disk.
The "Create a Custom VTOC File" option now uses the crtvtoc(1M) command to create the VTOC. This command allows you to create boot, swap, and dump partitions for a boot disk, as well as other partitions.
The "Shut Down the System" form (System Operations -> Change System Run Level -> Shut Down the System) now asks whether the shutdown was planned or unplanned. This information is logged and can then be used to measure system availability.
The form for configuring a kernel now lets you specify whether you are configuring a standard or manufacturing (Mfg) kernel.
The following changes have been made:
The all storage mode is no longer supported for asm macros.
The following predefined macros have been added: _PTX, _IA32, __i386. These macros are defined as 1 in all modes.
The predefined macro _SEQUENT_ remains in ptx/C V4.6 for compatibility with previous releases, but its use in new code is discouraged.
When the create command is used, processes are now stopped at the starting address specified in the object file. Previously, they were stopped immediately after the exec system call was executed. Statically linked programs will see no change in behavior. For dynamically linked programs, the behavior is now similar to that of statically linked programs.
A new option, -h exec, causes debug to revert to the old behavior and stop after the exec. Another new option, -h init, stops in the dynamic linker before .so init sections are run, allowing you to debug C++ static constructors in shared objects.
You can specify a -h option with either the debug or the create command. If you enter a -h option on the debug command line, debug passes the option to the create command it executes automatically at startup.
The following changes have been made:
A new command, call, simulates a function call in the debugged process from the location where the debugger is currently stopped.
A new control option, wraplines, has been added to the edb option command. When wraplines is enabled, long lines of edb output are split into multiple lines. When it is disabled, long lines are allowed. wraplines is enabled by default, which is the same behavior as in previous releases of edb.
In the previous release, before changing the permanent name of a disk drive, you needed to run devdestroy to remove the VTOC driver from the disk. This step is no longer necessary.
IPC status as of Wed Jun 14 13:35:01 2000
IPC status from <running system> as of Wed Jun 14 13:35:01 EDT 2000
If the command does not include -s, a disktype must be specified and the appropriate /etc/diskinfo/<disktype>.geom file must exist.
If the file type is a directory or FIFO special file, the attempt fails and the file attributes are not changed.
If the file type is a regular file, the file is truncated to zero length and the st_ctime and st_mtime fields are updated. The user ID, group ID, and permission bits associated with the file are unchanged.
Previously, the existing file was unlinked and a new file was created.
These switches are optional in ordinary system installations. For high availability sites, one of these switches must be specified when shutting down the system. This is enforced by the file /etc/.log_shutdown. See shutdown(1M).
cfg_get_flags
Translates configuration flags to a string. See cfg_get_flags(3SEQ).
cfg_sys_misc
Provides support functions for the cfg_sys() system call. See cfg_sys_misc(3SEQ).
cgraph
Provides functions that give access to the system device-configuration information. See cgraph(3SEQ).
basename
This routine has moved to libc.
byteorder
The parameters and return values have changed. See byteorder(3N).
cfg_ctl
New command: CFG_CTL_GET_RME_INFO returns information for a Routing Matrix Element. See cfg_ctl(2SEQ).
cfg_info
The cfg_obj_info_t structure has several new fields. See cfg_info(3SEQ).
cfg_sys
New commands:
CFG_SYS_NORECURSE causes the system to configure only the immediate children of cfg_devname.
CFG_SYS_FORCE disables a deconfiguration check, making it possible to remove the last good route from child devices.
CFG_CONFIG_LINK is the same as CFG_CONFIG, except that it allows the caller to specify additional restrictions on what can be configured.
CFG_DECONFIG_LINK removes a particular link between two devices.
CFG_SYS_GRAPH retrieves the current hardware configuration graph and enables applications to determine which I/O requests flow through the graph.
CFG_GETLABELTYPE obtains the label type of the specified device.
CFG_GETLABELNAME obtains the label name of the specified device.
cfg_op_deconfig_link() now silently succeeds when the requested link does not exist. See cfg_sys(2SEQ).
crypt
The first argument, key, is now declared as const. See crypt(3X).
dirname
This routine moved to libc.
dlopen
The first argument, pathname, is now declared as const. New flags: RTLD_GLOBAL makes the object's symbols available for the relocation processing of any other object. RTLD_LOCAL does not make the object's symbols available for the relocation processing of any other object. RTLD_GLOBAL is the default. See dlopen(3X).
dlsym
The second argument, name, is now declared as const. See dlsym(3X).
get_disk_stats
ds_reads and ds_writes, which are members of disk_stats_t, now have the size ulonglong. See get_disk_stats(2SEQ).
getdtablesize
This routine has been moved from libseq to libc. You no longer need to specify the -lseq option to use this routine. See getdtablesize(2).
getkerndata
New command: KERNELBUILDINFO_DATAID returns the kernel build information and kernel environment to the calling process. See getkerndata(2SEQ).
getmsg, getpmsg
These functions now serve as cancellation points for multi-threaded applications. See getmsg(2).
getpagesize
This routine moved from libseq to libc. You no longer need to specify the -lseq option to use this routine. See getpagesize(2).
iconv, iconv_open, iconv_close
These routines have been moved to libc.
lockf, lockf64
These functions now serve as cancellation points for multithreaded applications and have a new [EINVAL] error value. See lockf(3C).
mbrtowc
The second argument is now const char. See mbrchar(2SEQ).
msgop, msgsnd, msgrcv
These functions now serve as cancellation points for multi-threaded applications. See msgop(2).
poll
This function now serves as a cancellation point for multi-threaded applications. See poll(2).
putmsg, putpmsg
These functions now serve as cancellation points for multi-threaded applications. See putmsg(2).
read, pread, readv
These functions now serve as cancellation points for multi-threaded applications. See read(2).
rgnctl
This function now supports configuring a minimum memory assignment for the system region. See rgnctl(2SEQ).
select
This function now serves as a cancellation point for multi-threaded applications. See select(3C).
setkey
The argument key is now declared as const. See crypt(3X).
sigpause
This function now serves as a cancellation point for multi-threaded applications. See sigset(2).
sigstack
This routine has been moved from libseq to libc. You no longer need to specify the -lseq option to use this routine. See sigstack(2).
strfmon
This routine is now thread-safe; however, it is locale sensitive. A change in locale by another thread can cause undefined behavior.
sysi86
New commands: SI86SYSIDSTR copies the system ID into the specified buffer (this command replaces SI86SYSID); SI86GETVCSFWINFO returns VCS firmware version information into the specified buffer. See sysi86(2).
usleep
This function now serves as a cancellation point for multi-threaded applications. See usleep(2).
write, pwrite, writev
These functions now serve as cancellation points for multi-threaded applications. See write(2).
wait3
This function now serves as a cancellation point for multi-threaded applications. See wait3(2).
waitid
This function now serves as a cancellation point for multi-threaded applications. See waitid(2).
DYNIX/ptx now provides support for POSIX threads. The traditional UNIX process model consisted of an address space and exactly one thread. POSIX threads extends this model to be an address space with one or more threads of control. Because of the shared nature of the address space among threads, multi-threaded applications must synchronize access to process global resources.
When compiling a threaded application, you must include the -Kthread option on the cc command line as described in the cc(1) man page.
For more information about the DYNIX/ptx implementation of threads, see DYNIX/ptx Programming and Tools.
The Application Region Manager has been enhanced to allow memory and process table resources to be assigned to an application region. Previously, only CPUs could be assigned to a region. When you create a region, you must assign at least one CPU to the region. Assigning memory and process table resources is optional.
Users can now be assigned to an application region. At login time, the user is placed in the specified region and all processes started by the user will execute there.
DYNIX/ptx is now compliant with the ISO/IEC 9899 Amendment 1, C Integrity standard.
For applications to be compliant with this standard, the __STRICT_ISO_C_AMM1__ macro must be used.
The following changes were made for compliance with this standard:
The API for the wcstok() function has been changed. Previously, wcstok() used the XPG4 interface:
wchar_t *wcstok(wchar_t *, const wchar_t *);
The new ISO C interface is as follows:
wchar_t *wcstok (wchar_t *, const wchar_t *, wchar_t **);
The definitions for fpos_t and fpos64_t in stdio.h have been changed from long to struct to include the mbstate_t object for wide character support.
The following new functions have been added. See the man pages for information about using these functions.
btowc() |
towctrans() |
wctob() |
fwide() |
wcscanf() |
wctrans() |
mbrstring() |
wcscoll() |
wcxfrm() |
mbsinit() |
wcsttombs() |
wmemory() |
mbstrwocs() |
wcsstr() |
The ISO C standard specifies that streams have an orientation. When a file is opened, the stream is considered unbound (or without any orientation). When byte I/O functions are applied on the stream, the stream is considered to be byte-oriented. Similarly, when wide character I/O functions are applied on a stream that is not oriented, the stream is considered to be wide-oriented. Wide character I/O functions are not allowed on byte-oriented streams and byte I/O functions are not allowed on wide-character streams (these functions fail with the error code EINVAL). A stream's orientation can be changed with either freopen(), which removes any orientation, or fwide(). Also, wide character streams include an mbstate_t object that maintains the current conversion state information of the stream. This mbstate_t object is used in locales that support shift-state-encoding.
DYNIX/ptx now includes Perl Version 5.005-03, the third maintenance release of V5.005. Perl is installed as /usr/bin/perl. The Perl Programmer's Reference Guide is provided in man-page format. See perl(1) for more information.
Changes have been made in the device autoconfiguration routines to greatly reduce the time required to boot the operating system. The improvement you will see is dependent on your hardware configuration. In general, machines with large Fibre Channel Bridge or Pbay configurations show the most improvement; devices on these machines will be configured several times faster than with DYNIX/ptx V4.4.
When the system is booted with the -v (verbose) option, the kernel messages are now displayed in a different order. The first messages, which begin with a plus sign, indicate the first devices to be configured. The second group of messages describe the available memory on the system. The third group of messages begin with processor numbers and indicate that the remaining devices are being configured.
+qlc0 pci port - (unit 0xb) found on +quad0 pci port 0 (unit -) +asy0 eisa port - (unit 0x0) found on +quad0 eisa port - (unit -) +asy1 eisa port - (unit 0x1) found on +quad0 eisa port - (unit -) +mdc0 eisa port - (unit 0x0) found on +quad0 eisa port - (unit -) real memory = 24544.00 megabytes. available memory = 23126.39 megabytes. using 131072 buffers containing 1024.00 megabytes of memory. 00: Configuring devices, please wait. 20: +scsibus0 mscsi port - (unit -) found on +qlc0 mscsi port 0 (unit 0x70) 16: +scsibus1 mscsi port - (unit -) found on +qlc1 mscsi port 0 (unit 0x70) 12: +scsibus2 mscsi port - (unit -) found on +qlc2 mscsi port 0 (unit 0x70) 16: +sd0 scsi port - (unit 0x0) found on +scsibus1 scsi port - (unit -) 09: +sd3 scsi port - (unit 0x30) found on +scsibus1 scsi port - (unit -) 10: +sd1 scsi port - (unit 0x20) found on +scsibus1 scsi port - (unit -) 11: +sd2 scsi port - (unit 0x10) found on +scsibus1 scsi port - (unit -) ...
Under the following scenarios, the operating system can be rebooted although the system console is not running.
User-initiated reboot
The system has been running normally, but the console or the VCS application has died sometime previously. When the user initiates a reboot with a command such as init 6 or shutdown, the system performs an orderly shutdown and then reboots using the normal reboot sequence:
runtime DYNIX/ptx -> ptxldr -> SAK -> runtime DYNIX/ptx
Reboot after a power failure
A power failure has shut down both the NUMA-Q system and the console. If the console fails to boot or to start VCS when the power comes back on, the operating system will use the normal reboot sequence to reboot without the console.
BIOS ->Lynxer -> ptxldr -> SAK -> runtime DYNIX/ptx
The following types of situations can cause a consoleless reboot to fail:
Unexpected runtime errors during the boot process.
The boot configuration does not allow a reboot to multiuser mode. For example, autoboot is set to 0, or the system is configured to boot to single-user mode.
Deliberate user interactions. For example, an rc script may ask a yes/no question on the console during boot and will not proceed without an answer.
In these cases, a working console will be needed to diagnose and fix any problems, to boot the system, or to perform the necessary user interactions.
In previous releases, /bin/login set the default path for the PATH environment variable to .:/bin:/usr/bin, which caused the home directory to be searched first. To provide better security, the default path is now /bin:/usr/bin:., which causes the current working directory to be searched last.
In previous releases, ksh accepted the syntax "((...)...)", but did not always interpret it correctly. This syntax has been replaced by "( (...)...)". (A space is now required between the left parentheses.) The shell now reports an error for the older syntax.
If your shell scripts rely on the older syntax, you will need to modify them to use the new "( (...)...)" syntax.
Each cylinder group now contains additional information that identifies the filesystem to which the cylinder group belongs. This information is used to help detect filesystem inconsistency. The cylinder groups in older filesystems are automatically upgraded with this information the first time that fsck is run on the filesystems.
Previously, memory (mfs) filesystems were temporary; when the filesystem was unmounted, its contents were lost. These filesystems can now be stored in a regular file. A new -I image_file option has been added to the mount_mfs command to allow you to specify the file where the image is to be stored. If image_file already exists, the -I option will mount it. The filesystem utilities have been enhanced as necessary to work with the image_file.
When an optical unit (GBIC or GLM) in a FC Host Adapter, Switch port, or Bridge begins to fail, it can intermittently, but repeatedly, corrupt data transfers to and from Fibre Channel components within the mass storage subsystem.
In previous DYNIX/ptx releases, when this situation occurred, the system could become bottlenecked and stall for long periods of time as it attempted to recover from I/O failures caused by the failing component. Although the system could sometimes eventually recover, critical applications may have timed-out and failed by then. These failures were characterized by a series of command sequence timeout messages logged by the Fibre Channel Host Adapter driver (ff).
In DYNIX/ptx V4.5, the affected SCSI bus initiator(s) and/or specific disk ports/routes will be disabled when the failure occurs. This enables the system to quickly route around the point of failure if possible and avoids system stalls. The SCSI bus driver and/or the disk driver will log error messages indicating that a SCSI bus initiator or a specific disk port/route has been disabled. The system will automatically attempt to reintegrate disabled SCSI bus initiators at five minute intervals. Disk ports will be quickly reenabled and reintegrated into the system if they pass a simple driver-provided diagnostic, but will be "permanently disabled" if they exhibit the behavior again within the next 10 minutes.
Once the source of the failure(s) has been determined and corrected, you can use OLR operations (with devctl(1M)) to restore disk access through the "permanently disabled" ports. Alternatively, you can use the revive option to the pbayid/diskid program to restore access. The revive option avoids the overhead of OLR, as you do not need to unmount filesystems, take disks out of SVM control, or destroy VTOCs.
To ensure that the system can route around disabled components, you can use the following configuration methods to provide alternate routes:
SVM mirrored disk volumes
Multiported disk devices with ports on unrelated buses and Fibre Channel fabrics
Dual-initiator SCSI buses with initiators on unrelated Host Adapters and Fibre Channel fabrics
Multiple Fibre Channel fabrics
The NUMA-Q online diagnostics product includes a new utility, /usr/onldiag/fcdcu, that collects diagnostic data from the Fibre Channel devices on the system. The utility is started automatically when the system is booted to multiuser mode. By default, it runs as a daemon and polls the FC devices every 30 minutes. fcdcu stores the data it collects in a log file in the /usr/adm/fclog directory. A shell script, /usr/onldiag/purgefclogs, is also provided to find old log files and remove them from the system. For more information, see DYNIX/ptx System Administration.
The NUMA-Q online diagnostics product includes a new utility, /usr/onldiag/swutil, that extracts the SES pages from a Switch. This utility makes it unnecessary to telnet into the Switch to obtain similar data through the standard command line interface. For more information about this utility, see the swutil man page.
In previous releases, when a user connected two streams using the ioctl() operations I_LINK or I_PLINK, any other user could unlink them with I_UNLINK or I_PUNLINK . To improve security, the I_UNLINK and I_PUNLINK operations are now restricted to the owner of the link (the user who created the link) and to the root user.
This restriction is enabled by the new configurable parameter muxunlink_restricted. When the parameter is set to 1, which is the default value, the restriction is in effect.
We recommend that you modify your applications to use the new behavior of these ioctls. However, if your site requires the previous unrestricted behavior, you can set the muxunlink_restricted parameter to 0 and then recompile the kernel and reboot. The parameter is located in /etc/conf/uts/kernel/i386_space/param_space.c.
The kernel now maintains files containing vmtune parameters for each user-defined application region defined on your system, allowing you to tune each region separately. The file for the system region contains global vmtune parameters.
The new vmtune -gregion option can be used to view or change the parameters for a specific region.
For information about maintaining parameter changes across system boots, see DYNIX/ptx System Configuration and Performance.
Starting in the DYNIX/ptx V4.4.4 release, a mechanism called eXtended Kernel Virtual Address space (XKVA) was provided to extend the range of KVA addresses possible on NUMA-Q systems configured with wide 64-bit PTEs. This mechanism overlayed an additional 3 GB of kernel virtual space on top of the standard 3 GB of user virtual space. The kernel then mapped and remapped user virtual space and XKVA as needed.
By default, this mechanism was enabled for all NUMA-Q systems running with wide 64-bit PTEs, providing support for up to 64 GB of physical memory. However, on systems that did not need the extra kernel virtual space (physical memory was 16 GB or less and the system was not running out of kernel virtual space in primary KVA), this mechanism could reduce system performance, as it required extra faults and TLB flushing. Systems that did not need the XKVA feature could disable it by patching the kernel variable xkva_alloc_enabled.
In the V4.5 release, the XKVA implementation has been improved. The operating system now uses XKVA for dynamic kernel virtual space allocations only when all primary KVA is completely used up. The xkva_alloc_enabled parameter is obsolete; systems that do not need the XKVA feature no longer need to disable it. The V4.5 release also includes several improvements in direct I/O page-locking, which improves the performance of direct I/O operations when XKVA usage is forced by the system workload.
The following kernel structures are now allocated dynamically:
Mount structures
CDFS mount structures
File descriptor tables
Session structures
Fifo structures
UFS disk quota structures
In previous releases, the allocation of most of these structures was controlled by tunable kernel parameters. The allocations can now be adjusted as necessary with the kmstune command. See the next section "Changes to kmstune" for information about the memory pools that are used to allocate these structures.
The following memory pools have been added in DYNIX/ptx V4.5:
Site modifications to kernel structure pools can be easily saved and reinstated at boot time. See DYNIX/ptx System Configuration and Performance for more information.
The fllowing parameters are now obsolete:
The default values have been changed for the following parameters. If your site file includes any of these parameters, you may want to reconfigure them.
The following parameters were added in the V4.5 release:
The existing MAXAIO parameter now provides a soft limit for the maximum number of pending asynchronous I/O requests per process. Its default value is also 50.
Whether the I_UNLINK and I_PUNLINK operations are restricted to the owner of the link and the root user. By default, the parameter is set to 1, which provides the restricted behavior.
The format used for core files has been changed. A core file now includes the following process information:
Process status
Status of every light-weight process (LWP) in the process
Every loadable and writeable memory segment that was part of the process's address space, including shared library segments
The size of the core file created by a process can be controlled by the user (see getrlimit(2)). Core files for multi-threaded processes are typically much larger than core files for single-threaded processes.
For more information about the new format, see core(4).
The Create a Region option now allows you to include memory and process table resources in an application region. The Modify a Region option allows you to modify those resources.
The Display Regions option now allows you to select the regions for which you want to display attributes.
A new option, Configure Region Options, allows you to specify the default login region.
The Add a User Account and Change a User Account options now allow you to specify the application region into which a user should be placed at login.
The following options can now be specified on the cc command line:
-K{thread | nothread}
Generates code for threaded or non-threaded applications. The default is -Knothread.
-W0,-xstring_merge_ro
Creates only one copy of identical read-only (const char *) literal strings.
-W0,-xstring_merge_rw
Creates only one copy of identical read/write (char *) literal strings.
-W0,-xstring_merge
Shorthand for specifying both -W0,-xstring_merge_ro and -W0,-xstring_merge_rw.
-W1,-no_red_zone
Suppresses the generation of stack probe code for multi-threaded applications.
Two new predefined macros, __STDC_VERSION__ and __STRICT_ANSI__, are now available. Table 1-3 shows how these macros are defined in each cc compilation mode.
Mode |
__STDC_VERSION__ |
__STRICT_ANSI__ |
-Wc,-seq |
undefined |
undefined |
-Xs |
undefined |
undefined |
-Xt |
199409L |
undefined |
-Xa |
199409L |
undefined |
-Xc |
199409L |
1 |
By default, ptx/C is compliant with most areas of the ISO/IEC 9899 Amendment 1, C Integrity standard. For complete compliance with the standard, specify -D __STRICT_ISO_C_AMM1__ on the cc command line. This macro causes different versions of the following functions to be used:
The assembler now supports the MMXTM and Streaming SIMD instruction set extensions. The MMX instructions are supported on both Pentium II Xeon and Pentium III Xeon processors; the SIMD instructions are supported only on Pentium III Xeon processors. If a system contains a mix of processor types, application writers can use a primitive to ensure that the MMX instructions are run only on processors that support those instructions. The SIMD instructions are restricted to systems containing only Pentium III Xeon processors. Another primitive is available to determine whether all processors on the system support SIMD instructions. For information about these primitives, see the engdata(3SEQ) man page. For descriptions of the instructions, see the DYNIX/ptx Assembly Language User's Manual.
The edb debugger is now provided with DYNIX/ptx. (This debugger was previously provided with ptx/C++.) edb must be used to control and debug multi-threaded programs and to analyze core files from them. The older debug debugger is still available and can be used to debug non-threaded programs only.
The following changes have been made since the previous release of edb.
New functionality:
Thread support on DYNIX/ptx 4.5
The commands continue and halt can use %j to control all threads %j.t
The commands cancel, signals, stack, and return can take an optional job argument
The show command allows types and expressions as arguments
Support for the C/C++ long long type
Support for debugging dynamically linked shared objects
The wait command waits for events on background jobs
New options:
Enhancements to the edb graphical user interface:
Three new commands have been added to the popup menu of the Source pane. Right click in the Source pane to see these items:
An X resource toggle to display icons has been added:
Edb*iconsPaneToggle.set: true
The edb control buttons can now be personalized:
Edb*viewer_run_button.labelString: |
Run |
Edb*viewer_continue_button.labelString: |
Continue |
Edb*viewer_step_button.labelString: |
Step |
Edb*viewer_step_over_button.labelString: |
Step over |
Edb*viewer_return_button.labelString: |
Return |
Edb*viewer_halt_button.labelString: |
Halt |
Edb*viewer_detach_button.labelString: |
Detach |
Edb*viewer_kill_button.labelString: |
Kill |
Edb*viewer_make_button.labelString: |
Make |
Edb*viewer_edit_button.labelString: |
Edit |
NAME CFGTYPE DEVNUM UNIT FLAGS OnBUS OnDEVICE ff0 ff 0 0x00000006 SP pci quad0 fabric8 fabric 8 0x00000001 SM fc ff0
If you need LUN information, you must use the -m option, which produces output in a machine-readable format. In this format, the units of Fibre Channel devices can contain very large numbers (22 hex-digits). The first six hex-digits are the N-PORT address; the remaining hex-digits are the LUN (NNNNNNLLLLLLLLLLLLLLLL). Programs should treat these unit values as strings because they are too large to fit in any machine-sized number, even the long long type in C.
A new -o modifyroot option has been added to allow fsck to modify the root filesystem at boot time and in certain disaster recovery situations. fsck will not modify the root filesystem if this option is not provided. See fsck_ufs(1M).
flockfile, ftrylockfile, funlockfile
Locks or unlocks a stream. See flockfile(3S).
fwide
Sets or obtains the orientation of the specified stream. See fwide(3C).
getprinfo
Returns process-related data, such as information that may be useful to the ps command. See getprinfo(2SEQ).
getrgnname
Returns the region name of the caller or the specified process. See getrgnname(2SEQ).
lwp_trace
Allows a process to observe and/or control other unrelated processes and light-weight processes within those processes. See lwp_trace(2SEQ).
mbsinit
Determines whether the conversion state described by ps represents an initial conversion state. See mbsinit(3C).
mbstrwocs
A restartable conversion function that converts a sequence of multibyte characters into the corresponding sequence of wide characters. See mbrstring(3C).
pread64
Reads from a file at a given offset without changing the file pointer. See pread64(2SEQ).
pthread_atfork
Registers fork handlers. See pthread_atfork(3C).
pthread_attr_init, pthread_attr_destroy
Initializes or destroys the threads attribute object. See pthread_attr_init(3C).
pthread_attr_setdetachstate, pthread_attr_getdetachstate
Sets or gets the detachstate attribute. See pthread_attr_getdetachstate(3C).
pthread_attr_setschedparam, pthread_attr_getschedparam
Sets or gets the schedparam attribute. See pthread_attr_getschedparam(3C).
pthread_attr_setstackaddr, pthread_attr_getstackaddr
Sets or gets the stackaddr attribute. See pthread_attr_getstackaddr(3C).
pthread_attr_setstacksize, pthread_attr_getstacksize
Sets or gets the stacksize attribute. See pthread_attr_getstacksize(3C).
pthread_cancel
Cancels the execution of a thread. See pthread_cancel(3C).
pthread_condattr_init, pthread_condattr_destroy
Initializes or destroys the condition variable attributes object. See pthread_condattr_init(3C).
pthread_cond_init, pthread_cond_destroy
Initializes or destroys condition variables. See pthread_cond_init(3C).
pthread_cond_signal, pthread_cond_broadcast
Signals or broadcasts a condition. See pthread_cond_signal(3C).
pthread_cond_wait, pthread_cond_timedwait
Waits on a condition. See pthread_cond_wait(3C).
pthread_cleanup_push, pthread_cleanup_pop
Establishes cancellation handlers. See pthread_cleanup_push(3C).
pthread_create
Creates a thread. See pthread_create(3C).
pthread_detach
Detaches a thread. See pthread_detach(3C).
pthread_equal
Compares thread IDs. See pthread_equal(3C).
pthread_exit
Terminates the calling thread. See pthread_exit(3C).
pthread_getspecific, pthread_setspecific
Thread-specific data management. See pthread_getspecific(3C).
pthread_join
Waits for a thread to terminate. See pthread_join(3C).
pthread_kill
Sends a signal to a thread. See pthread_kill(3C).
pthread_key_create
Creates a thread-specific data key. See pthread_key_create(3C).
pthread_key_delete
Deletes a thread-specific data key. See pthread_key_delete(3C).
pthread_mutexattr_init, pthread_mutexattr_destroy
Initializes or destroys the mutex attributes object. See pthread_mutexattr_init(3C).
pthread_mutex_init, pthread_mutex_destroy
Initializes or destroys a mutex. See pthread_mutex_init(3C).
pthread_mutex_lock, pthread_mutex_trylock, pthread_mutex_unlock
Locks or unlocks a mutex. See pthread_mutex_lock(3C).
pthread_once
Dynamic package initialization. See pthread_once(3C).
pthread_mutexattr_settype, pthread_mutexattr_gettype
Sets or gets a mutex type. See pthread_mutexattr_gettype(3C).
pthread_rwlockattr_init, pthread_rwlockattr_destroy
Initializes or destroys the read-write lock attributes object. See pthread_rwlockattr_init(3C).
pthread_rwlock_init, pthread_rwlock_destroy
Initializes or destroys a read-write lock object. See pthread_rwlock_init(3C).
pthread_rwlock_rdlock, pthread_rwlock_tryrdlock
Locks a read-write lock object for reading. See pthread_rwlock_rdlock(3C).
pthread_rwlock_unlock
Unlocks a read-write lock object. See pthread_rwlock_unlock(3C).
pthread_rwlock_wrlock, pthread_rwlock_trywrlock
Locks a read-write lock object for writing. See pthread_rwlock_wrlock(3C).
pthread_sched_get_priority_max_np, pthread_sched_get_priority_min_np
Gets the maximum or minimum valid thread priority values. See pthread_sched_get_priority_max_np(3C).
pthread_self
Gets the thread identifier of the calling thread. See pthread_self(3C).
pthread_setcancelstate, pthread_setcanceltype, pthread_testcancel
Sets the calling thread's cancelability state. See pthread_setcancelstate(3C).
pthread_sigmask
Examines and changes blocked signals for the current thread. See pthread_sigmask(3C).
pwrite64
Writes to a file at a given offset without changing the file pointer. See pwrite64(2SEQ).
rgnassign
Assigns a process or group of processes to an active region. See rgnassign(2SEQ).
rgn_cpus_online
Returns the number of processors currently configured and online in the caller's region. See rgn_cpus_online(2SEQ).
rgnctl
Activates, modifies, or deactivates a region. See rgnctl(2SEQ).
rgn_engfillset
Initializes the specified set of processors to include all processors that are currently online in the specified region. See engemptyset(2SEQ).
rgn_getkerndata
Provides kernel statistics for the specified region. See rgn_getkerndata(2SEQ).
rgninfo
Provides a snapshot of the attributes and statistics for active regions. See rgninfo(2SEQ).
rgn_quadfillset
Initializes the specified set of quads to include all quads that are currently configured in the specified region. See quademptyset(2SEQ).
sched_yield
Terminates a thread. See sched_yield(3C).
towctrans
Translates a given wide character according to the specified property. See wctrans(3C).
ups_ctl
Queries the system state of an uninterruptible power supply (UPS). See ups_ctl(2SEQ).
vfwprintf
Similar to fwprintf, but is called with an argument list instead of a variable number of arguments. See vwprintf(3S).
virtwin_synctlb, virtwinv_synctlb
Synchronizes virtually-windowed address translations to a mapped object. See virtwin_synctlb(2SEQ).
vm_rgnctl
Examines and changes virtual memory parameters for the caller's region. See vm_ctl(2SEQ).
vswprintf
Similar to swprintf, but is called with an argument list instead of a variable number of arguments. See vwprintf(3S).
vwprintf
Similar to wprintf, but is called with an argument list instead of a variable number of arguments. See vwprintf(3S).
wcscoll
Performs string comparisons using collating information. See wcscoll(3C).
wcsrtombs
A restartable conversion function that converts a sequence of wide characters into a sequence of corresponding multibyte characters. See mbrstring(3C).
wcsstr
Finds the first occurrence of a wide string. See wcsstr(3C).
wctrans
Performs extensible wide character mapping. See wctrans(3C).
wcxsfrm
Performs wide character string transformations. See wcxsfrm(3C).
wmemory
Functions that operate as efficiently as possible on arrays of wide characters stored in memory. See wmemory(3C).
wprintf, swprintf, fwprintf
Prints formatted output. See wprintf(3S).
wscanf, fwscanf, swscanf
Reads multibyte characters, interprets them according to a format, and stores the results. See wscanf(3S).
cfg_info
Additional search keys are now available. See cfg_info(3SEQ).
cfg_sys
New CFG_DEVT_TO_NAME command that obtains the name of a device when given a valid dev_t. See cfg_sys(2SEQ).
clnt_geterr()
The names of following fields in the rpc_err structure have been changed in the header file rpc/clnt.h. This structure is used by applications calling clnt_geterr(). The contents and use of the fields have not changed.
See rpc_clnt_calls(3N) for more information about clnt_geterr().
cpus_online
Now returns the number of processors currently online and configured in the caller's region only. See cpus_online(3PPS).
ctime
New asctime_r, ctime_t, gmtime_r, and localtime_r routines that are thread-safe versions of asctime, ctime, gmtime and localtime. See ctime(3C).
DIO_Apoll
Now returns the number of completed requests if the timeout expires, and accepts values other than 0 and -1 for the timeout. See DIO(2SEQ).
directory
New readdir_r function that is similar to readdir. See directory(3X).
engdata
New primitives all_processors_support_mmx() and all_processors_support_simdx() that return a non-zero value only if all processors on the system support the MMX and Streaming SIMD extension instructions, respectively. See engdata(3SEQ).
engfillset
Now initializes the specified processor set to include only those processors that are currently online in the caller's region. See engemptyset(2SEQ).
fpgetround
These functions now operate on the state of a thread, rather than the state of the process, as in earlier DYNIX/ptx releases. See fpgetround(3C).
getc
New getc_unlocked and getchar_unlocked macros are variants of getc and getchar that do not lock the stdio stream. See getc(3S).
getgrent
New getgrnam_r and getgrgid_r functions that return the requested group entry in the buffer provided by the caller. See getgrent(3C).
getlogin
New getlogin_r function that is a thread-safe version of the getlogin. See getlogin(3C).
getprpsinfo
New GETPS_BYRQID flag that gets information only for those processes having the specified run-queue ID. See getprpsinfo(2SEQ).
getpwent
New getpwnam_r and getpwuid_r interfaces for threads. See getpwent(3C).
getrlimit
A new extension, RLIMIT_AIO, specifies the maximum number of outstanding asynchronous I/O requests. See getrlimit(2).
grant_login_priv
Now assigns a user to the appropriate login region. If the region is inactive, the user's login fails. See grant_login_priv(3X).
mbchar
New btowc and wctob functions for converting multibyte characters. See mbchar(3C).
mmap, mmapq
The MAP_NORESERVE flag can now be specified for a private anonymous mmap (MAP_PRIVATE and MAP_ANONYMOUS are also used). This flag enables the mmap to use a dynamic swap allocation policy, even if the current system default is to preallocate all swap space.
When MAP_NORESERVE is specified for a private anonymous mmap, the system does not reserve the anonymous swap space backing this mmap at the time of the call. Instead, it is reserved only when and if the corresponding pages need to be swapped out. It is extremely important to note, though, that if the pages do need to be swapped out later and sufficient swap space cannot be allocated at that time, then the process will receive a SIGKILL.
The paging policy semantics have been changed to restrict the allocation of pages to the Quads whose memory is assigned to the caller's region. See mmap(2).
perror
Programs should obtain the definition of errno by including <errno.h>. The practice of explicitly defining errno in a program as extern int errno is obsolete. See perror(3C).
printf
New snprintf() routine has been added to the standard library. This version of sprintf checks for array bounds and ensures that the user-specified buffer does not overflow. See printf(3S).
putc
New putc_unlocked and putchar_unlocked macros that are variants of putc and putchar. These interfaces do not lock the stdio stream. See putc(3S).
quadfillset
Now initializes the specified Quad set to include only those Quads that are currently configured in the caller's region. See quademptyset(2SEQ).
rand
New rand_r function is a thread-safe version of rand. See rand(3C).
read
New pread system call that performs the same action as read(), with the exception that it reads from a given offset in the file without changing the file pointer. New pread64 system call that is similar to pread, but uses a 64-bit off64_t file offset type. See read(2).
regcomp
New REG_WORD flag compiles for beginning of word (BOW) matching/substitution and end of word (EOW) matching/substitution. See regcomp(3X).
shmget, shmgetq
The paging policy semantics have been changed to restrict the allocation of pages to the Quads whose memory is assigned to the caller's region. See shmget(2).
stat
For disk devices and ptx/SVM volumes, st_blocks now returns the total number of 512-byte physical blocks actually allocated on disk. See stat(2).
string
New strtok_r function is a thread-safe version of strtok. See string(3C).
sync_op
New SYNC_POST2VEC command that posts to a vector of processes. It is similar to SYNC_POSTVEC except for the return value. See sync_op(2SEQ).
sysconf
New configuration variables have been added for threads support. See sysconf(2).
tmp_ctl
New commands have been added to obtain information about the caller's region. See tmp_ctl(2SEQ).
ttyname
New ttyname_r function that is a thread-safe version of ttyname. See ttyname(3C).
virtwin
New virtwinv system call that is a vectored version of virtwin. It allows multiple virtual mappings to be processed at one time.
When virtwin() or virtwinv() is used and the application process is comprised of multiple lightweight processes (LWPs), the application may need to take additional steps before using the address translations instantiated by these system calls. See virtwin(2SEQ) for details.
vm_ctl
Now examines and changes virtual memory parameters only for the caller's region. See vm_ctl(2SEQ).
vprintf
New vsnprintf() routine has been added to the standard library. This version of vsprintf checks for array bounds and ensures that the user-specified buffer does not overflow. See vprintf(3S).
wcsftime
For compliance with the ICO C standard, the format parameter is now a wchar_t * instead of the char * specified by XPG4. See wcsftime(3C).
wcstok
The API has been changed from the XPG4 interface:
wchar_t *wcstok(wchar_t *, const wchar_t *);
wchar_t *wcstok (wchar_t *, const wchar_t *, wchar_t **);
See wcstring(3C).
write
New pwrite call that is similar to write(), but writes from a given offset in the file without changing the file pointer. New pwrite64 call that is similar to pwrite but uses a 64-bit off64_t file offset type. See write(2).
The following documentation is available on the documentation CD or at http://webdocs.sequent.com/:
DYNIX/ptx System Administration
DYNIX/ptx System Configuration and Performance
DYNIX/ptx Printer Management
ptx/INSTALL Software Installation
DYNIX/ptx V4.6 System Recovery and Troubleshooting Guide
DYNIX/ptx User's Information
DYNIX/ptx Error Messages
ptx/C User's Information
edb User's Guide
debug User's Information
DYNIX/ptx Programming and Tools
Assembly Language User's Manual
Link Editor (ld) Technical Reference
DYNIX/ptx STREAMS Programming Guide
DYNIX/ptx Network Programming Guide
DYNIX/ptx RPC Programming Guide
Extended Terminal Interface (ETI) Programming Guide
DYNIX/ptx Implementation Differences
POSIX Conformance Specification
X/Open Conformance Specification
ptx/ADMIN Development Guide
DYNIX/ptx FACE User's Guide
DYNIX/ptx FMLI Programming Guide