/** @file  ../include/sys/unistd.h
@internalComponent
*/

/** @def _POSIX_ADVISORY_INFO

POSIX options and option groups we unconditionally do or don't implement.  Those options which are implemented (or not) entirely in user mode are defined in unistd.h.  

Anything which is defined as zero must have an implementation for the corresponding sysconf() which is able to determine conclusively whether or not the feature is supported.
Anything which is defined as other than -1 must have complete headers, types, and function declarations as specified by the POSIX standard; however, if the relevant sysconf() function returns -1, the functions may be stubbed out.

@publishedAll
@externallyDefinedApi
*/

/** @def _POSIX_ASYNCHRONOUS_IO

POSIX options and option groups we unconditionally do or don't implement.  Those options which are implemented (or not) entirely in user mode are defined in unistd.h.  

Anything which is defined as zero must have an implementation for the corresponding sysconf() which is able to determine conclusively whether or not the feature is supported.
Anything which is defined as other than -1 must have complete headers, types, and function declarations as specified by the POSIX standard; however, if the relevant sysconf() function returns -1, the functions may be stubbed out.

@publishedAll
@externallyDefinedApi
*/

/** @def _POSIX_CHOWN_RESTRICTED

POSIX options and option groups we unconditionally do or don't implement.  Those options which are implemented (or not) entirely in user mode are defined in unistd.h.  

Anything which is defined as zero must have an implementation for the corresponding sysconf() which is able to determine conclusively whether or not the feature is supported.
Anything which is defined as other than -1 must have complete headers, types, and function declarations as specified by the POSIX standard; however, if the relevant sysconf() function returns -1, the functions may be stubbed out.

@publishedAll
@externallyDefinedApi
*/

/** @def _POSIX_CLOCK_SELECTION

POSIX options and option groups we unconditionally do or don't implement.  Those options which are implemented (or not) entirely in user mode are defined in unistd.h.  

Anything which is defined as zero must have an implementation for the corresponding sysconf() which is able to determine conclusively whether or not the feature is supported.
Anything which is defined as other than -1 must have complete headers, types, and function declarations as specified by the POSIX standard; however, if the relevant sysconf() function returns -1, the functions may be stubbed out.

@publishedAll
@externallyDefinedApi
*/

/** @def _POSIX_CPUTIME

POSIX options and option groups we unconditionally do or don't implement.  Those options which are implemented (or not) entirely in user mode are defined in unistd.h.  

Anything which is defined as zero must have an implementation for the corresponding sysconf() which is able to determine conclusively whether or not the feature is supported.
Anything which is defined as other than -1 must have complete headers, types, and function declarations as specified by the POSIX standard; however, if the relevant sysconf() function returns -1, the functions may be stubbed out.

@publishedAll
@externallyDefinedApi
*/

/** @def _POSIX_FSYNC

POSIX options and option groups we unconditionally do or don't implement.  Those options which are implemented (or not) entirely in user mode are defined in unistd.h.  

Anything which is defined as zero must have an implementation for the corresponding sysconf() which is able to determine conclusively whether or not the feature is supported.
Anything which is defined as other than -1 must have complete headers, types, and function declarations as specified by the POSIX standard; however, if the relevant sysconf() function returns -1, the functions may be stubbed out.

@publishedAll
@externallyDefinedApi
*/

/** @def _POSIX_IPV6

POSIX options and option groups we unconditionally do or don't implement.  Those options which are implemented (or not) entirely in user mode are defined in unistd.h.  

Anything which is defined as zero must have an implementation for the corresponding sysconf() which is able to determine conclusively whether or not the feature is supported.
Anything which is defined as other than -1 must have complete headers, types, and function declarations as specified by the POSIX standard; however, if the relevant sysconf() function returns -1, the functions may be stubbed out.

@publishedAll
@externallyDefinedApi
*/

/** @def _POSIX_JOB_CONTROL

POSIX options and option groups we unconditionally do or don't implement.  Those options which are implemented (or not) entirely in user mode are defined in unistd.h.  

Anything which is defined as zero must have an implementation for the corresponding sysconf() which is able to determine conclusively whether or not the feature is supported.
Anything which is defined as other than -1 must have complete headers, types, and function declarations as specified by the POSIX standard; however, if the relevant sysconf() function returns -1, the functions may be stubbed out.

@publishedAll
@externallyDefinedApi
*/

/** @def _POSIX_MAPPED_FILES

POSIX options and option groups we unconditionally do or don't implement.  Those options which are implemented (or not) entirely in user mode are defined in unistd.h.  

Anything which is defined as zero must have an implementation for the corresponding sysconf() which is able to determine conclusively whether or not the feature is supported.
Anything which is defined as other than -1 must have complete headers, types, and function declarations as specified by the POSIX standard; however, if the relevant sysconf() function returns -1, the functions may be stubbed out.

@publishedAll
@externallyDefinedApi
*/

/** @def _POSIX_MEMLOCK

POSIX options and option groups we unconditionally do or don't implement.  Those options which are implemented (or not) entirely in user mode are defined in unistd.h.  

Anything which is defined as zero must have an implementation for the corresponding sysconf() which is able to determine conclusively whether or not the feature is supported.
Anything which is defined as other than -1 must have complete headers, types, and function declarations as specified by the POSIX standard; however, if the relevant sysconf() function returns -1, the functions may be stubbed out.

@publishedAll
@externallyDefinedApi
*/

/** @def _POSIX_MEMLOCK_RANGE

POSIX options and option groups we unconditionally do or don't implement.  Those options which are implemented (or not) entirely in user mode are defined in unistd.h.  

Anything which is defined as zero must have an implementation for the corresponding sysconf() which is able to determine conclusively whether or not the feature is supported.
Anything which is defined as other than -1 must have complete headers, types, and function declarations as specified by the POSIX standard; however, if the relevant sysconf() function returns -1, the functions may be stubbed out.

@publishedAll
@externallyDefinedApi
*/

/** @def _POSIX_MEMORY_PROTECTION

POSIX options and option groups we unconditionally do or don't implement.  Those options which are implemented (or not) entirely in user mode are defined in unistd.h.  

Anything which is defined as zero must have an implementation for the corresponding sysconf() which is able to determine conclusively whether or not the feature is supported.
Anything which is defined as other than -1 must have complete headers, types, and function declarations as specified by the POSIX standard; however, if the relevant sysconf() function returns -1, the functions may be stubbed out.

@publishedAll
@externallyDefinedApi
*/

/** @def _POSIX_MESSAGE_PASSING

POSIX options and option groups we unconditionally do or don't implement.  Those options which are implemented (or not) entirely in user mode are defined in unistd.h.  

Anything which is defined as zero must have an implementation for the corresponding sysconf() which is able to determine conclusively whether or not the feature is supported.
Anything which is defined as other than -1 must have complete headers, types, and function declarations as specified by the POSIX standard; however, if the relevant sysconf() function returns -1, the functions may be stubbed out.

@publishedAll
@externallyDefinedApi
*/

/** @def _POSIX_MONOTONIC_CLOCK

POSIX options and option groups we unconditionally do or don't implement.  Those options which are implemented (or not) entirely in user mode are defined in unistd.h.  

Anything which is defined as zero must have an implementation for the corresponding sysconf() which is able to determine conclusively whether or not the feature is supported.
Anything which is defined as other than -1 must have complete headers, types, and function declarations as specified by the POSIX standard; however, if the relevant sysconf() function returns -1, the functions may be stubbed out.

@publishedAll
@externallyDefinedApi
*/

/** @def _POSIX_NO_TRUNC

POSIX options and option groups we unconditionally do or don't implement.  Those options which are implemented (or not) entirely in user mode are defined in unistd.h.  

Anything which is defined as zero must have an implementation for the corresponding sysconf() which is able to determine conclusively whether or not the feature is supported.
Anything which is defined as other than -1 must have complete headers, types, and function declarations as specified by the POSIX standard; however, if the relevant sysconf() function returns -1, the functions may be stubbed out.

@publishedAll
@externallyDefinedApi
*/

/** @def _POSIX_PRIORITIZED_IO

POSIX options and option groups we unconditionally do or don't implement.  Those options which are implemented (or not) entirely in user mode are defined in unistd.h.  

Anything which is defined as zero must have an implementation for the corresponding sysconf() which is able to determine conclusively whether or not the feature is supported.
Anything which is defined as other than -1 must have complete headers, types, and function declarations as specified by the POSIX standard; however, if the relevant sysconf() function returns -1, the functions may be stubbed out.

@publishedAll
@externallyDefinedApi
*/

/** @def _POSIX_PRIORITY_SCHEDULING

POSIX options and option groups we unconditionally do or don't implement.  Those options which are implemented (or not) entirely in user mode are defined in unistd.h.  

Anything which is defined as zero must have an implementation for the corresponding sysconf() which is able to determine conclusively whether or not the feature is supported.
Anything which is defined as other than -1 must have complete headers, types, and function declarations as specified by the POSIX standard; however, if the relevant sysconf() function returns -1, the functions may be stubbed out.

@publishedAll
@externallyDefinedApi
*/

/** @def _POSIX_RAW_SOCKETS

POSIX options and option groups we unconditionally do or don't implement.  Those options which are implemented (or not) entirely in user mode are defined in unistd.h.  

Anything which is defined as zero must have an implementation for the corresponding sysconf() which is able to determine conclusively whether or not the feature is supported.
Anything which is defined as other than -1 must have complete headers, types, and function declarations as specified by the POSIX standard; however, if the relevant sysconf() function returns -1, the functions may be stubbed out.

@publishedAll
@externallyDefinedApi
*/

/** @def _POSIX_REALTIME_SIGNALS

POSIX options and option groups we unconditionally do or don't implement.  Those options which are implemented (or not) entirely in user mode are defined in unistd.h.  

Anything which is defined as zero must have an implementation for the corresponding sysconf() which is able to determine conclusively whether or not the feature is supported.
Anything which is defined as other than -1 must have complete headers, types, and function declarations as specified by the POSIX standard; however, if the relevant sysconf() function returns -1, the functions may be stubbed out.

@publishedAll
@externallyDefinedApi
*/

/** @def _POSIX_SEMAPHORES

POSIX options and option groups we unconditionally do or don't implement.  Those options which are implemented (or not) entirely in user mode are defined in unistd.h.  

Anything which is defined as zero must have an implementation for the corresponding sysconf() which is able to determine conclusively whether or not the feature is supported.
Anything which is defined as other than -1 must have complete headers, types, and function declarations as specified by the POSIX standard; however, if the relevant sysconf() function returns -1, the functions may be stubbed out.

@publishedAll
@externallyDefinedApi
*/

/** @def _POSIX_SHARED_MEMORY_OBJECTS

POSIX options and option groups we unconditionally do or don't implement.  Those options which are implemented (or not) entirely in user mode are defined in unistd.h.  

Anything which is defined as zero must have an implementation for the corresponding sysconf() which is able to determine conclusively whether or not the feature is supported.
Anything which is defined as other than -1 must have complete headers, types, and function declarations as specified by the POSIX standard; however, if the relevant sysconf() function returns -1, the functions may be stubbed out.

@publishedAll
@externallyDefinedApi
*/

/** @def _POSIX_SPORADIC_SERVER

POSIX options and option groups we unconditionally do or don't implement.  Those options which are implemented (or not) entirely in user mode are defined in unistd.h.  

Anything which is defined as zero must have an implementation for the corresponding sysconf() which is able to determine conclusively whether or not the feature is supported.
Anything which is defined as other than -1 must have complete headers, types, and function declarations as specified by the POSIX standard; however, if the relevant sysconf() function returns -1, the functions may be stubbed out.

@publishedAll
@externallyDefinedApi
*/

/** @def _POSIX_SYNCHRONIZED_IO

POSIX options and option groups we unconditionally do or don't implement.  Those options which are implemented (or not) entirely in user mode are defined in unistd.h.  

Anything which is defined as zero must have an implementation for the corresponding sysconf() which is able to determine conclusively whether or not the feature is supported.
Anything which is defined as other than -1 must have complete headers, types, and function declarations as specified by the POSIX standard; however, if the relevant sysconf() function returns -1, the functions may be stubbed out.

@publishedAll
@externallyDefinedApi
*/

/** @def _POSIX_TIMEOUTS

POSIX options and option groups we unconditionally do or don't implement.  Those options which are implemented (or not) entirely in user mode are defined in unistd.h.  

Anything which is defined as zero must have an implementation for the corresponding sysconf() which is able to determine conclusively whether or not the feature is supported.
Anything which is defined as other than -1 must have complete headers, types, and function declarations as specified by the POSIX standard; however, if the relevant sysconf() function returns -1, the functions may be stubbed out.

@publishedAll
@externallyDefinedApi
*/

/** @def _POSIX_TYPED_MEMORY_OBJECTS

POSIX options and option groups we unconditionally do or don't implement.  Those options which are implemented (or not) entirely in user mode are defined in unistd.h.  

Anything which is defined as zero must have an implementation for the corresponding sysconf() which is able to determine conclusively whether or not the feature is supported.
Anything which is defined as other than -1 must have complete headers, types, and function declarations as specified by the POSIX standard; however, if the relevant sysconf() function returns -1, the functions may be stubbed out.

@publishedAll
@externallyDefinedApi
*/

/** @def _POSIX_VDISABLE

POSIX options and option groups we unconditionally do or don't implement.  Those options which are implemented (or not) entirely in user mode are defined in unistd.h.  

Anything which is defined as zero must have an implementation for the corresponding sysconf() which is able to determine conclusively whether or not the feature is supported.
Anything which is defined as other than -1 must have complete headers, types, and function declarations as specified by the POSIX standard; however, if the relevant sysconf() function returns -1, the functions may be stubbed out.

@publishedAll
@externallyDefinedApi
*/

/** @def _XOPEN_SHM

POSIX options and option groups we unconditionally do or don't implement.  Those options which are implemented (or not) entirely in user mode are defined in unistd.h.  

Anything which is defined as zero must have an implementation for the corresponding sysconf() which is able to determine conclusively whether or not the feature is supported.
Anything which is defined as other than -1 must have complete headers, types, and function declarations as specified by the POSIX standard; however, if the relevant sysconf() function returns -1, the functions may be stubbed out.

@publishedAll
@externallyDefinedApi
*/

/** @def _XOPEN_STREAMS

POSIX options and option groups we unconditionally do or don't implement.  Those options which are implemented (or not) entirely in user mode are defined in unistd.h.  

Anything which is defined as zero must have an implementation for the corresponding sysconf() which is able to determine conclusively whether or not the feature is supported.
Anything which is defined as other than -1 must have complete headers, types, and function declarations as specified by the POSIX standard; however, if the relevant sysconf() function returns -1, the functions may be stubbed out.

@publishedAll
@externallyDefinedApi
*/

/** @def _POSIX_VERSION

Define the POSIX.1 version we target for compliance.

@publishedAll
@externallyDefinedApi
*/

/** @def F_OK

access function. test for existence of file.

@publishedAll
@externallyDefinedApi
*/

/** @def X_OK

access function. test for execute or search permission.

@publishedAll
@externallyDefinedApi
*/

/** @def W_OK

access function. est for write permission.

@publishedAll
@externallyDefinedApi
*/

/** @def R_OK

access function. test for read permission.

@publishedAll
@externallyDefinedApi
*/

/** @def _PC_LINK_MAX

configurable pathname variables.

@publishedAll
@externallyDefinedApi
*/

/** @def _PC_MAX_CANON

configurable pathname variables.

@publishedAll
@externallyDefinedApi
*/

/** @def _PC_MAX_INPUT

configurable pathname variables.

@publishedAll
@externallyDefinedApi
*/

/** @def _PC_NAME_MAX

configurable pathname variables.

@publishedAll
@externallyDefinedApi
*/

/** @def _PC_PATH_MAX

configurable pathname variables.

@publishedAll
@externallyDefinedApi
*/

/** @def _PC_PIPE_BUF

configurable pathname variables.

@publishedAll
@externallyDefinedApi
*/

/** @def _PC_CHOWN_RESTRICTED

configurable pathname variables.

@publishedAll
@externallyDefinedApi
*/

/** @def _PC_NO_TRUNC

configurable pathname variables.

@publishedAll
@externallyDefinedApi
*/

/** @def _PC_VDISABLE

configurable pathname variables.

@publishedAll
@externallyDefinedApi
*/

/** @def RFNAMEG

rfork() options. XXX currently, some operations without RFPROC set are not supported.
UNIMPL new plan9 `name space'

@publishedAll
@externallyDefinedApi
*/

/** @def RFENVG

rfork() options. XXX currently, some operations without RFPROC set are not supported.
UNIMPL copy plan9 `env space'

@publishedAll
@externallyDefinedApi
*/

/** @def RFFDG

rfork() options. XXX currently, some operations without RFPROC set are not supported.
copy fd table

@publishedAll
@externallyDefinedApi
*/

/** @def RFNOTEG

rfork() options. XXX currently, some operations without RFPROC set are not supported.
UNIMPL create new plan9 `note group'

@publishedAll
@externallyDefinedApi
*/

/** @def RFPROC

rfork() options. XXX currently, some operations without RFPROC set are not supported.
change child (else changes curproc)

@publishedAll
@externallyDefinedApi
*/

/** @def RFMEM

rfork() options. XXX currently, some operations without RFPROC set are not supported.
share `address space'

@publishedAll
@externallyDefinedApi
*/

/** @def RFNOWAIT

rfork() options. XXX currently, some operations without RFPROC set are not supported.
give child to init.

@publishedAll
@externallyDefinedApi
*/

/** @def RFCNAMEG

rfork() options. XXX currently, some operations without RFPROC set are not supported.
UNIMPL zero plan9 `name space'

@publishedAll
@externallyDefinedApi
*/

/** @def RFCENVG

rfork() options. XXX currently, some operations without RFPROC set are not supported.
UNIMPL zero plan9 `env space'

@publishedAll
@externallyDefinedApi
*/

/** @def RFCFDG

rfork() options. XXX currently, some operations without RFPROC set are not supported.
close all fds, zero fd table.

@publishedAll
@externallyDefinedApi
*/

/** @def RFTHREAD

rfork() options. XXX currently, some operations without RFPROC set are not supported.
enable kernel thread support.

@publishedAll
@externallyDefinedApi
*/

/** @def RFSIGSHARE

rfork() options. XXX currently, some operations without RFPROC set are not supported.
share signal handlers.

@publishedAll
@externallyDefinedApi
*/

/** @def RFLINUXTHPN

rfork() options. XXX currently, some operations without RFPROC set are not supported.
do linux clone exit parent notification.

@publishedAll
@externallyDefinedApi
*/

/** @def RFSTOPPED

rfork() options. XXX currently, some operations without RFPROC set are not supported.
leave child in a stopped state.

@publishedAll
@externallyDefinedApi
*/

/** @def RFHIGHPID

rfork() options. XXX currently, some operations without RFPROC set are not supported.
use a pid higher then 10 (idleproc)

@publishedAll
@externallyDefinedApi
*/

/** @def RFPPWAIT

rfork() options. XXX currently, some operations without RFPROC set are not supported.
parent sleeps until child exits (vfork).

@publishedAll
@externallyDefinedApi
*/

/** @def RFKERNELONLY

rfork() options. XXX currently, some operations without RFPROC set are not supported.

@publishedAll
@externallyDefinedApi
*/
