1/* Define POSIX options for Linux.
2   Copyright (C) 1996-2004, 2006 Free Software Foundation, Inc.
3   This file is part of the GNU C Library.
4
5   The GNU C Library is free software; you can redistribute it and/or
6   modify it under the terms of the GNU Lesser General Public License as
7   published by the Free Software Foundation; either version 2.1 of the
8   License, or (at your option) any later version.
9
10   The GNU C Library is distributed in the hope that it will be useful,
11   but WITHOUT ANY WARRANTY; without even the implied warranty of
12   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13   Lesser General Public License for more details.
14
15   You should have received a copy of the GNU Lesser General Public
16   License along with the GNU C Library; see the file COPYING.LIB.  If not,
17   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
18   Boston, MA 02111-1307, USA.  */
19
20#ifndef	_POSIX_OPT_H
21#define	_POSIX_OPT_H	1
22
23/* Job control is supported.  */
24#define	_POSIX_JOB_CONTROL	1
25
26/* Processes have a saved set-user-ID and a saved set-group-ID.  */
27#define	_POSIX_SAVED_IDS	1
28
29/* Priority scheduling is supported.  */
30#define	_POSIX_PRIORITY_SCHEDULING	200112L
31
32/* Synchronizing file data is supported.  */
33#define	_POSIX_SYNCHRONIZED_IO	200112L
34
35/* The fsync function is present.  */
36#define	_POSIX_FSYNC	200112L
37
38/* Mapping of files to memory is supported.  */
39#define	_POSIX_MAPPED_FILES	200112L
40
41/* Locking of all memory is supported.  */
42#define	_POSIX_MEMLOCK	200112L
43
44/* Locking of ranges of memory is supported.  */
45#define	_POSIX_MEMLOCK_RANGE	200112L
46
47/* Setting of memory protections is supported.  */
48#define	_POSIX_MEMORY_PROTECTION	200112L
49
50/* Only root can change owner of file.  */
51#define	_POSIX_CHOWN_RESTRICTED	1
52
53/* `c_cc' member of 'struct termios' structure can be disabled by
54   using the value _POSIX_VDISABLE.  */
55#define	_POSIX_VDISABLE	'\0'
56
57/* Filenames are not silently truncated.  */
58#define	_POSIX_NO_TRUNC	1
59
60/* X/Open realtime support is available.  */
61#define _XOPEN_REALTIME	1
62
63/* X/Open thread realtime support is available.  */
64#define _XOPEN_REALTIME_THREADS	1
65
66/* XPG4.2 shared memory is supported.  */
67#define	_XOPEN_SHM	1
68
69/* Tell we have POSIX threads.  */
70#define _POSIX_THREADS	200112L
71
72/* We have the reentrant functions described in POSIX.  */
73#define _POSIX_REENTRANT_FUNCTIONS      1
74#define _POSIX_THREAD_SAFE_FUNCTIONS	200112L
75
76/* We provide priority scheduling for threads.  */
77#define _POSIX_THREAD_PRIORITY_SCHEDULING	200112L
78
79/* We support user-defined stack sizes.  */
80#define _POSIX_THREAD_ATTR_STACKSIZE	200112L
81
82/* We support user-defined stacks.  */
83#define _POSIX_THREAD_ATTR_STACKADDR	200112L
84
85/* We support priority inheritence.  */
86#define _POSIX_THREAD_PRIO_INHERIT	200112L
87
88/* We support priority protection, though only for non-robust
89   mutexes.  */
90#define _POSIX_THREAD_PRIO_PROTECT	200112L
91
92/* We support POSIX.1b semaphores.  */
93#define _POSIX_SEMAPHORES	200112L
94
95/* Real-time signals are supported.  */
96#define _POSIX_REALTIME_SIGNALS	200112L
97
98/* We support asynchronous I/O.  */
99#define _POSIX_ASYNCHRONOUS_IO	200112L
100#define _POSIX_ASYNC_IO		1
101/* Alternative name for Unix98.  */
102#define _LFS_ASYNCHRONOUS_IO	1
103/* Support for prioritization is also available.  */
104#define _POSIX_PRIORITIZED_IO	200112L
105
106/* The LFS support in asynchronous I/O is also available.  */
107#define _LFS64_ASYNCHRONOUS_IO	1
108
109/* The rest of the LFS is also available.  */
110#define _LFS_LARGEFILE		1
111#define _LFS64_LARGEFILE	1
112#define _LFS64_STDIO		1
113
114/* POSIX shared memory objects are implemented.  */
115#define _POSIX_SHARED_MEMORY_OBJECTS	200112L
116
117/* CPU-time clocks support needs to be checked at runtime.  */
118#define _POSIX_CPUTIME	0
119
120/* Clock support in threads must be also checked at runtime.  */
121#define _POSIX_THREAD_CPUTIME	0
122
123/* GNU libc provides regular expression handling.  */
124#define _POSIX_REGEXP	1
125
126/* Reader/Writer locks are available.  */
127#define _POSIX_READER_WRITER_LOCKS	200112L
128
129/* We have a POSIX shell.  */
130#define _POSIX_SHELL	1
131
132/* We support the Timeouts option.  */
133#define _POSIX_TIMEOUTS	200112L
134
135/* We support spinlocks.  */
136#define _POSIX_SPIN_LOCKS	200112L
137
138/* The `spawn' function family is supported.  */
139#define _POSIX_SPAWN	200112L
140
141/* We have POSIX timers.  */
142#define _POSIX_TIMERS	200112L
143
144/* The barrier functions are available.  */
145#define _POSIX_BARRIERS	200112L
146
147/* POSIX message queues are available.  */
148#define	_POSIX_MESSAGE_PASSING	200112L
149
150/* Thread process-shared synchronization is supported.  */
151#define _POSIX_THREAD_PROCESS_SHARED	200112L
152
153/* The monotonic clock might be available.  */
154#define _POSIX_MONOTONIC_CLOCK	0
155
156/* The clock selection interfaces are available.  */
157#define _POSIX_CLOCK_SELECTION	200112L
158
159/* Advisory information interfaces are available.  */
160#define _POSIX_ADVISORY_INFO	200112L
161
162/* IPv6 support is available.  */
163#define _POSIX_IPV6	200112L
164
165/* Raw socket support is available.  */
166#define _POSIX_RAW_SOCKETS	200112L
167
168/* We have at least one terminal.  */
169#define _POSIX2_CHAR_TERM	200112L
170
171/* Neither process nor thread sporadic server interfaces is available.  */
172#define _POSIX_SPORADIC_SERVER	-1
173#define _POSIX_THREAD_SPORADIC_SERVER	-1
174
175/* trace.h is not available.  */
176#define _POSIX_TRACE	-1
177#define _POSIX_TRACE_EVENT_FILTER	-1
178#define _POSIX_TRACE_INHERIT	-1
179#define _POSIX_TRACE_LOG	-1
180
181/* Typed memory objects are not available.  */
182#define _POSIX_TYPED_MEMORY_OBJECTS	-1
183
184#endif /* posix_opt.h */
185