1    	/* Define POSIX options for Linux.
2    	   Copyright (C) 1996-2015 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
17   	   not, see <http://www.gnu.org/licenses/>.  */
18   	
19   	#ifndef	_BITS_POSIX_OPT_H
20   	#define	_BITS_POSIX_OPT_H	1
21   	
22   	/* Job control is supported.  */
23   	#define	_POSIX_JOB_CONTROL	1
24   	
25   	/* Processes have a saved set-user-ID and a saved set-group-ID.  */
26   	#define	_POSIX_SAVED_IDS	1
27   	
28   	/* Priority scheduling is supported.  */
29   	#define	_POSIX_PRIORITY_SCHEDULING	200809L
30   	
31   	/* Synchronizing file data is supported.  */
32   	#define	_POSIX_SYNCHRONIZED_IO	200809L
33   	
34   	/* The fsync function is present.  */
35   	#define	_POSIX_FSYNC	200809L
36   	
37   	/* Mapping of files to memory is supported.  */
38   	#define	_POSIX_MAPPED_FILES	200809L
39   	
40   	/* Locking of all memory is supported.  */
41   	#define	_POSIX_MEMLOCK	200809L
42   	
43   	/* Locking of ranges of memory is supported.  */
44   	#define	_POSIX_MEMLOCK_RANGE	200809L
45   	
46   	/* Setting of memory protections is supported.  */
47   	#define	_POSIX_MEMORY_PROTECTION	200809L
48   	
49   	/* Some filesystems allow all users to change file ownership.  */
50   	#define	_POSIX_CHOWN_RESTRICTED	0
51   	
52   	/* `c_cc' member of 'struct termios' structure can be disabled by
53   	   using the value _POSIX_VDISABLE.  */
54   	#define	_POSIX_VDISABLE	'\0'
55   	
56   	/* Filenames are not silently truncated.  */
57   	#define	_POSIX_NO_TRUNC	1
58   	
59   	/* X/Open realtime support is available.  */
60   	#define _XOPEN_REALTIME	1
61   	
62   	/* X/Open thread realtime support is available.  */
63   	#define _XOPEN_REALTIME_THREADS	1
64   	
65   	/* XPG4.2 shared memory is supported.  */
66   	#define	_XOPEN_SHM	1
67   	
68   	/* Tell we have POSIX threads.  */
69   	#define _POSIX_THREADS	200809L
70   	
71   	/* We have the reentrant functions described in POSIX.  */
72   	#define _POSIX_REENTRANT_FUNCTIONS      1
73   	#define _POSIX_THREAD_SAFE_FUNCTIONS	200809L
74   	
75   	/* We provide priority scheduling for threads.  */
76   	#define _POSIX_THREAD_PRIORITY_SCHEDULING	200809L
77   	
78   	/* We support user-defined stack sizes.  */
79   	#define _POSIX_THREAD_ATTR_STACKSIZE	200809L
80   	
81   	/* We support user-defined stacks.  */
82   	#define _POSIX_THREAD_ATTR_STACKADDR	200809L
83   	
84   	/* We support priority inheritence.  */
85   	#define _POSIX_THREAD_PRIO_INHERIT	200809L
86   	
87   	/* We support priority protection, though only for non-robust
88   	   mutexes.  */
89   	#define _POSIX_THREAD_PRIO_PROTECT	200809L
90   	
91   	#ifdef __USE_XOPEN2K8
92   	/* We support priority inheritence for robust mutexes.  */
93   	# define _POSIX_THREAD_ROBUST_PRIO_INHERIT	200809L
94   	
95   	/* We do not support priority protection for robust mutexes.  */
96   	# define _POSIX_THREAD_ROBUST_PRIO_PROTECT	-1
97   	#endif
98   	
99   	/* We support POSIX.1b semaphores.  */
100  	#define _POSIX_SEMAPHORES	200809L
101  	
102  	/* Real-time signals are supported.  */
103  	#define _POSIX_REALTIME_SIGNALS	200809L
104  	
105  	/* We support asynchronous I/O.  */
106  	#define _POSIX_ASYNCHRONOUS_IO	200809L
107  	#define _POSIX_ASYNC_IO		1
108  	/* Alternative name for Unix98.  */
109  	#define _LFS_ASYNCHRONOUS_IO	1
110  	/* Support for prioritization is also available.  */
111  	#define _POSIX_PRIORITIZED_IO	200809L
112  	
113  	/* The LFS support in asynchronous I/O is also available.  */
114  	#define _LFS64_ASYNCHRONOUS_IO	1
115  	
116  	/* The rest of the LFS is also available.  */
117  	#define _LFS_LARGEFILE		1
118  	#define _LFS64_LARGEFILE	1
119  	#define _LFS64_STDIO		1
120  	
121  	/* POSIX shared memory objects are implemented.  */
122  	#define _POSIX_SHARED_MEMORY_OBJECTS	200809L
123  	
124  	/* CPU-time clocks support needs to be checked at runtime.  */
125  	#define _POSIX_CPUTIME	0
126  	
127  	/* Clock support in threads must be also checked at runtime.  */
128  	#define _POSIX_THREAD_CPUTIME	0
129  	
130  	/* GNU libc provides regular expression handling.  */
131  	#define _POSIX_REGEXP	1
132  	
133  	/* Reader/Writer locks are available.  */
134  	#define _POSIX_READER_WRITER_LOCKS	200809L
135  	
136  	/* We have a POSIX shell.  */
137  	#define _POSIX_SHELL	1
138  	
139  	/* We support the Timeouts option.  */
140  	#define _POSIX_TIMEOUTS	200809L
141  	
142  	/* We support spinlocks.  */
143  	#define _POSIX_SPIN_LOCKS	200809L
144  	
145  	/* The `spawn' function family is supported.  */
146  	#define _POSIX_SPAWN	200809L
147  	
148  	/* We have POSIX timers.  */
149  	#define _POSIX_TIMERS	200809L
150  	
151  	/* The barrier functions are available.  */
152  	#define _POSIX_BARRIERS	200809L
153  	
154  	/* POSIX message queues are available.  */
155  	#define	_POSIX_MESSAGE_PASSING	200809L
156  	
157  	/* Thread process-shared synchronization is supported.  */
158  	#define _POSIX_THREAD_PROCESS_SHARED	200809L
159  	
160  	/* The monotonic clock might be available.  */
161  	#define _POSIX_MONOTONIC_CLOCK	0
162  	
163  	/* The clock selection interfaces are available.  */
164  	#define _POSIX_CLOCK_SELECTION	200809L
165  	
166  	/* Advisory information interfaces are available.  */
167  	#define _POSIX_ADVISORY_INFO	200809L
168  	
169  	/* IPv6 support is available.  */
170  	#define _POSIX_IPV6	200809L
171  	
172  	/* Raw socket support is available.  */
173  	#define _POSIX_RAW_SOCKETS	200809L
174  	
175  	/* We have at least one terminal.  */
176  	#define _POSIX2_CHAR_TERM	200809L
177  	
178  	/* Neither process nor thread sporadic server interfaces is available.  */
179  	#define _POSIX_SPORADIC_SERVER	-1
180  	#define _POSIX_THREAD_SPORADIC_SERVER	-1
181  	
182  	/* trace.h is not available.  */
183  	#define _POSIX_TRACE	-1
184  	#define _POSIX_TRACE_EVENT_FILTER	-1
185  	#define _POSIX_TRACE_INHERIT	-1
186  	#define _POSIX_TRACE_LOG	-1
187  	
188  	/* Typed memory objects are not available.  */
189  	#define _POSIX_TYPED_MEMORY_OBJECTS	-1
190  	
191  	#endif /* bits/posix_opt.h */
192