The Single UNIX ® Specification, Version 2
Copyright © 1997 The Open Group

 Feature Groups

The system may provide one or more of the following Feature Groups:

When an implementation claims that a feature is provided, all of its constituent parts shall be provided and shall comply with this specification.

For all Feature Groups, interfaces to all elements of the Feature Group shall exist. On implementations that do not support individual interfaces, each unsupported interface shall indicate an error, with errno set to [ENOSYS] unless otherwise specified.

If individual interfaces are supported, but the whole Feature Group is not supported, the interfaces will behave as defined in this specification.

Encryption

The Encryption Feature Group includes the following interfaces:
crypt() encrypt() setkey()
These are marked CRYPT.

Due to U.S. Government export restrictions on the decoding algorithm, implementations are restricted in making these functions available. All the functions in the Encryption Feature Group may therefore return [ENOSYS] or alternatively, encrypt() shall return [ENOSYS] for the decryption operation.

An implementation that claims conformance to this Feature Group shall set _XOPEN_CRYPT to a value other than -1. An implementation that does not claim conformance to this Feature Group shall set _XOPEN_CRYPT to -1.

Realtime

This document includes all the interfaces defined in the POSIX Realtime Extension.

Where entire manual pages have been added, they are marked REALTIME. Where additional semantics have been added to existing manual pages, the new material is identified by use of the RT margin legend.

An implementation that claims conformance to this Feature Group shall set the macro _XOPEN_REALTIME to a value other than -1. An implementation that does not claim conformance shall set _XOPEN_REALTIME to -1.

The POSIX Realtime Extension defines the following symbolic constants and their meaning:

_POSIX_ASYNCHRONOUS_IO
Implementation supports the Asynchronous Input and Output option.
_POSIX_FSYNC
Implementation supports the File Synchronisation option. XSI-conformant systems always support the functionality associated with this symbol.
_POSIX_MAPPED_FILES
Implementation supports the Memory Mapped Files option. XSI-conformant systems always support the functionality associated with this symbol.
_POSIX_MEMLOCK
Implementation supports the Process Memory Locking option.
_POSIX_MEMLOCK_RANGE
Implementation supports the Range Memory Locking option.
_POSIX_MEMORY_PROTECTION
Implementation supports the Memory Protection option. XSI-conformant systems always support the functionality associated with this symbol.
_POSIX_MESSAGE_PASSING
Implementation supports the Message Passing option.
_POSIX_PRIORITIZED_IO
Implementation supports the Prioritized Input and Output option.
_POSIX_PRIORITY_SCHEDULING
Implementation supports the Process Scheduling option.
_POSIX_REALTIME_SIGNALS
Implementation supports the Realtime Signals Extension option.
_POSIX_SEMAPHORES
Implementation supports the Semaphores option.
_POSIX_SHARED_MEMORY_OBJECTS
Implementation supports the Shared Memory Objects option.
_POSIX_SYNCHRONIZED_IO
Implementation supports the Synchronised Input and Output option.
_POSIX_TIMERS
Implementation supports the Timers option.

If the symbol _XOPEN_REALTIME is defined to have a value other than -1, then the following symbolic constants will be defined to an unspecified value:

_POSIX_ASYNCHRONOUS_IO _POSIX_MEMLOCK _POSIX_MEMLOCK_RANGE _POSIX_MESSAGE_PASSING _POSIX_PRIORITY_SCHEDULING _POSIX_REALTIME_SIGNALS _POSIX_SEMAPHORES _POSIX_SHARED_MEMORY_OBJECTS _POSIX_SYNCHRONIZED_IO _POSIX_TIMERS

Interfaces in the _XOPEN_REALTIME Feature Group are marked REALTIME.

The functionality associated with _POSIX_MAPPED_FILES, _POSIX_MEMORY_PROTECTION and _POSIX_FSYNC is always present on XSI-conformant systems.

Support of _POSIX_PRIORITIZED_IO is optional. If this functionality is supported, then _POSIX_PRIORITIZED_IO will be set to a value other than -1. Otherwise it will be undefined.

If _POSIX_PRIORITIZED_IO is supported, then asynchronous I/O operations performed by aio_read(), aio_write() and lio_listio() will be submitted at a priority equal to the scheduling priority of the process minus aiocbp->aio_reqprio. The implementation will also document for which files I/O prioritization is supported.

Realtime Threads

The Realtime Threads Feature Group includes the interfaces covered by the POSIX Threads compile-time symbolic constants _POSIX_THREAD_PRIO_INHERIT, _POSIX_THREAD_PRIO_PROTECT and _POSIX_THREAD_PRIORITY_SCHEDULING as defined in <unistd.h>. This includes the following interfaces:

pthread_attr_getinheritsched() pthread_attr_getschedpolicy() pthread_attr_getscope() pthread_attr_setinheritsched() pthread_attr_setschedpolicy() pthread_attr_setscope() pthread_getschedparam() pthread_mutex_getprioceiling() pthread_mutex_setprioceiling() pthread_mutexattr_getprioceiling() pthread_mutexattr_getprotocol() pthread_mutexattr_setprioceiling() pthread_mutexattr_setprotocol() pthread_setschedparam()

Where applicable, pages are marked REALTIME THREADS, together with the RTT margin legend for the SYNOPSIS section.

An implementation that claims conformance to this Feature Group shall set _XOPEN_REALTIME_THREADS to a value other than -1. An implementation that does not claim conformance to this Feature Group shall set the value of _XOPEN_REALTIME_THREADS to -1.

If the symbol _XOPEN_REALTIME_THREADS is defined to have a value other than -1, then the symbols:

_POSIX_THREAD_PRIORITY_SCHEDULING _POSIX_THREAD_PRIO_PROTECT _POSIX_THREAD_PRIO_INHERIT

will also be defined; otherwise these symbols will be undefined.

Legacy

The Legacy Feature Group includes the interfaces and headers which were mandatory in previous versions of this specification but are optional in this version of the specification.

These interfaces and headers are retained in this specification because of their widespread use. Application writers should not rely on the existence of these interfaces or headers in new applications, but should follow the migration path detailed in the APPLICATION USAGE sections of the relevant pages.

Various factors may have contributed to the decision to mark an interface or header LEGACY. In all cases, the specific reasons for the withdrawal of an interface or header are documented on the relevant pages.

Once an interface or header is marked LEGACY, no modifications will be made to the specifications of such interfaces or headers other than to the APPLICATION USAGE sections of the relevant pages.

The interfaces and headers which form this Feature Group are as follows:
Legacy Interfaces, Headers and External Variables
advance() brk() chroot() compile() cuserid() gamma() getdtablesize() getpagesize() getpass() getw() putw() re_comp() re_exec() regcmp() regex() sbrk() sigstack() step() ttyslot() valloc() wait3()
<regexp.h>  <varargs.h>  <re_comp.h>     
loc1  __loc1  loc2  locs   

An implementation that claims conformance to this Feature Group shall set the macro _XOPEN_LEGACY to a value other than -1. An implementation that does not claim conformance shall set _XOPEN_LEGACY to -1.


UNIX ® is a registered Trademark of The Open Group.
Copyright © 1997 The Open Group
[ Main Index | XSH | XCU | XBD | XCURSES | XNS ]