1    	/* Define POSIX options for Linux.
2    	   Copyright (C) 1996-2004, 2006, 2008, 2009 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	_BITS_POSIX_OPT_H
21   	#define	_BITS_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	200809L
31   	
32   	/* Synchronizing file data is supported.  */
33   	#define	_POSIX_SYNCHRONIZED_IO	200809L
34   	
35   	/* The fsync function is present.  */
36   	#define	_POSIX_FSYNC	200809L
37   	
38   	/* Mapping of files to memory is supported.  */
39   	#define	_POSIX_MAPPED_FILES	200809L
40   	
41   	/* Locking of all memory is supported.  */
42   	#define	_POSIX_MEMLOCK	200809L
43   	
44   	/* Locking of ranges of memory is supported.  */
45   	#define	_POSIX_MEMLOCK_RANGE	200809L
46   	
47   	/* Setting of memory protections is supported.  */
48   	#define	_POSIX_MEMORY_PROTECTION	200809L
49   	
50   	/* Some filesystems allow all users to change file ownership.  */
51   	#define	_POSIX_CHOWN_RESTRICTED	0
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	200809L
71   	
72   	/* We have the reentrant functions described in POSIX.  */
73   	#define _POSIX_REENTRANT_FUNCTIONS      1
74   	#define _POSIX_THREAD_SAFE_FUNCTIONS	200809L
75   	
76   	/* We provide priority scheduling for threads.  */
77   	#define _POSIX_THREAD_PRIORITY_SCHEDULING	200809L
78   	
79   	/* We support user-defined stack sizes.  */
80   	#define _POSIX_THREAD_ATTR_STACKSIZE	200809L
81   	
82   	/* We support user-defined stacks.  */
83   	#define _POSIX_THREAD_ATTR_STACKADDR	200809L
84   	
85   	/* We support priority inheritence.  */
86   	#define _POSIX_THREAD_PRIO_INHERIT	200809L
87   	
88   	/* We support priority protection, though only for non-robust
89   	   mutexes.  */
90   	#define _POSIX_THREAD_PRIO_PROTECT	200809L
91   	
92   	#ifdef __USE_XOPEN2K8
93   	/* We support priority inheritence for robust mutexes.  */
94   	# define _POSIX_THREAD_ROBUST_PRIO_INHERIT	200809L
95   	
96   	/* We do not support priority protection for robust mutexes.  */
97   	# define _POSIX_THREAD_ROBUST_PRIO_PROTECT	-1
98   	#endif
99   	
100  	/* We support POSIX.1b semaphores.  */
101  	#define _POSIX_SEMAPHORES	200809L
102  	
103  	/* Real-time signals are supported.  */
104  	#define _POSIX_REALTIME_SIGNALS	200809L
105  	
106  	/* We support asynchronous I/O.  */
107  	#define _POSIX_ASYNCHRONOUS_IO	200809L
108  	#define _POSIX_ASYNC_IO		1
109  	/* Alternative name for Unix98.  */
110  	#define _LFS_ASYNCHRONOUS_IO	1
111  	/* Support for prioritization is also available.  */
112  	#define _POSIX_PRIORITIZED_IO	200809L
113  	
114  	/* The LFS support in asynchronous I/O is also available.  */
115  	#define _LFS64_ASYNCHRONOUS_IO	1
116  	
117  	/* The rest of the LFS is also available.  */
118  	#define _LFS_LARGEFILE		1
119  	#define _LFS64_LARGEFILE	1
120  	#define _LFS64_STDIO		1
121  	
122  	/* POSIX shared memory objects are implemented.  */
123  	#define _POSIX_SHARED_MEMORY_OBJECTS	200809L
124  	
125  	/* CPU-time clocks support needs to be checked at runtime.  */
126  	#define _POSIX_CPUTIME	0
127  	
128  	/* Clock support in threads must be also checked at runtime.  */
129  	#define _POSIX_THREAD_CPUTIME	0
130  	
131  	/* GNU libc provides regular expression handling.  */
132  	#define _POSIX_REGEXP	1
133  	
134  	/* Reader/Writer locks are available.  */
135  	#define _POSIX_READER_WRITER_LOCKS	200809L
136  	
137  	/* We have a POSIX shell.  */
138  	#define _POSIX_SHELL	1
139  	
140  	/* We support the Timeouts option.  */
141  	#define _POSIX_TIMEOUTS	200809L
142  	
143  	/* We support spinlocks.  */
144  	#define _POSIX_SPIN_LOCKS	200809L
145  	
146  	/* The `spawn' function family is supported.  */
147  	#define _POSIX_SPAWN	200809L
148  	
149  	/* We have POSIX timers.  */
150  	#define _POSIX_TIMERS	200809L
151  	
152  	/* The barrier functions are available.  */
153  	#define _POSIX_BARRIERS	200809L
154  	
155  	/* POSIX message queues are available.  */
156  	#define	_POSIX_MESSAGE_PASSING	200809L
157  	
158  	/* Thread process-shared synchronization is supported.  */
159  	#define _POSIX_THREAD_PROCESS_SHARED	200809L
160  	
161  	/* The monotonic clock might be available.  */
162  	#define _POSIX_MONOTONIC_CLOCK	0
163  	
164  	/* The clock selection interfaces are available.  */
165  	#define _POSIX_CLOCK_SELECTION	200809L
166  	
167  	/* Advisory information interfaces are available.  */
168  	#define _POSIX_ADVISORY_INFO	200809L
169  	
170  	/* IPv6 support is available.  */
171  	#define _POSIX_IPV6	200809L
172  	
173  	/* Raw socket support is available.  */
174  	#define _POSIX_RAW_SOCKETS	200809L
175  	
176  	/* We have at least one terminal.  */
177  	#define _POSIX2_CHAR_TERM	200809L
178  	
179  	/* Neither process nor thread sporadic server interfaces is available.  */
180  	#define _POSIX_SPORADIC_SERVER	-1
181  	#define _POSIX_THREAD_SPORADIC_SERVER	-1
182  	
183  	/* trace.h is not available.  */
184  	#define _POSIX_TRACE	-1
185  	#define _POSIX_TRACE_EVENT_FILTER	-1
186  	#define _POSIX_TRACE_INHERIT	-1
187  	#define _POSIX_TRACE_LOG	-1
188  	
189  	/* Typed memory objects are not available.  */
190  	#define _POSIX_TYPED_MEMORY_OBJECTS	-1
191  	
192  	/* Streams are not available.  */
193  	#define _XOPEN_STREAMS	-1
194  	
195  	#endif /* bits/posix_opt.h */
196