[444] | 1 | /* |
---|
| 2 | * Written by Joel Sherrill <joel@OARcorp.com>. |
---|
| 3 | * |
---|
| 4 | * COPYRIGHT (c) 1989-2014. |
---|
| 5 | * |
---|
| 6 | * On-Line Applications Research Corporation (OAR). |
---|
| 7 | * |
---|
| 8 | * Permission to use, copy, modify, and distribute this software for any |
---|
| 9 | * purpose without fee is hereby granted, provided that this entire notice |
---|
| 10 | * is included in all copies of any software which is or includes a copy |
---|
| 11 | * or modification of this software. |
---|
| 12 | * |
---|
| 13 | * THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR IMPLIED |
---|
| 14 | * WARRANTY. IN PARTICULAR, THE AUTHOR MAKES NO REPRESENTATION |
---|
| 15 | * OR WARRANTY OF ANY KIND CONCERNING THE MERCHANTABILITY OF THIS |
---|
| 16 | * SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE. |
---|
| 17 | * |
---|
| 18 | * $Id$ |
---|
| 19 | */ |
---|
| 20 | |
---|
| 21 | #ifndef _SYS_FEATURES_H |
---|
| 22 | #define _SYS_FEATURES_H |
---|
| 23 | |
---|
| 24 | #ifdef __cplusplus |
---|
| 25 | extern "C" { |
---|
| 26 | #endif |
---|
| 27 | |
---|
| 28 | #include <_newlib_version.h> |
---|
| 29 | |
---|
| 30 | /* Macro to test version of GCC. Returns 0 for non-GCC or too old GCC. */ |
---|
| 31 | #ifndef __GNUC_PREREQ |
---|
| 32 | # if defined __GNUC__ && defined __GNUC_MINOR__ |
---|
| 33 | # define __GNUC_PREREQ(maj, min) \ |
---|
| 34 | ((__GNUC__ << 16) + __GNUC_MINOR__ >= ((maj) << 16) + (min)) |
---|
| 35 | # else |
---|
| 36 | # define __GNUC_PREREQ(maj, min) 0 |
---|
| 37 | # endif |
---|
| 38 | #endif /* __GNUC_PREREQ */ |
---|
| 39 | /* Version with trailing underscores for BSD compatibility. */ |
---|
| 40 | #define __GNUC_PREREQ__(ma, mi) __GNUC_PREREQ(ma, mi) |
---|
| 41 | |
---|
| 42 | |
---|
| 43 | /* |
---|
| 44 | * Feature test macros control which symbols are exposed by the system |
---|
| 45 | * headers. Any of these must be defined before including any headers. |
---|
| 46 | * |
---|
| 47 | * __STRICT_ANSI__ (defined by gcc -ansi, -std=c90, -std=c99, or -std=c11) |
---|
| 48 | * ISO C |
---|
| 49 | * |
---|
| 50 | * _POSIX_SOURCE (deprecated by _POSIX_C_SOURCE=1) |
---|
| 51 | * _POSIX_C_SOURCE >= 1 |
---|
| 52 | * POSIX.1-1990 |
---|
| 53 | * |
---|
| 54 | * _POSIX_C_SOURCE >= 2 |
---|
| 55 | * POSIX.2-1992 |
---|
| 56 | * |
---|
| 57 | * _POSIX_C_SOURCE >= 199309L |
---|
| 58 | * POSIX.1b-1993 Real-time extensions |
---|
| 59 | * |
---|
| 60 | * _POSIX_C_SOURCE >= 199506L |
---|
| 61 | * POSIX.1c-1995 Threads extensions |
---|
| 62 | * |
---|
| 63 | * _POSIX_C_SOURCE >= 200112L |
---|
| 64 | * POSIX.1-2001 and C99 |
---|
| 65 | * |
---|
| 66 | * _POSIX_C_SOURCE >= 200809L |
---|
| 67 | * POSIX.1-2008 |
---|
| 68 | * |
---|
| 69 | * _XOPEN_SOURCE |
---|
| 70 | * POSIX.1-1990 and XPG4 |
---|
| 71 | * |
---|
| 72 | * _XOPEN_SOURCE_EXTENDED |
---|
| 73 | * SUSv1 (POSIX.2-1992 plus XPG4v2) |
---|
| 74 | * |
---|
| 75 | * _XOPEN_SOURCE >= 500 |
---|
| 76 | * SUSv2 (POSIX.1c-1995 plus XSI) |
---|
| 77 | * |
---|
| 78 | * _XOPEN_SOURCE >= 600 |
---|
| 79 | * SUSv3 (POSIX.1-2001 plus XSI) and C99 |
---|
| 80 | * |
---|
| 81 | * _XOPEN_SOURCE >= 700 |
---|
| 82 | * SUSv4 (POSIX.1-2008 plus XSI) |
---|
| 83 | * |
---|
| 84 | * _ISOC99_SOURCE or gcc -std=c99 or g++ |
---|
| 85 | * ISO C99 |
---|
| 86 | * |
---|
| 87 | * _ISOC11_SOURCE or gcc -std=c11 or g++ -std=c++11 |
---|
| 88 | * ISO C11 |
---|
| 89 | * |
---|
| 90 | * _ATFILE_SOURCE (implied by _POSIX_C_SOURCE >= 200809L) |
---|
| 91 | * "at" functions |
---|
| 92 | * |
---|
| 93 | * _LARGEFILE_SOURCE (deprecated by _XOPEN_SOURCE >= 500) |
---|
| 94 | * fseeko, ftello |
---|
| 95 | * |
---|
| 96 | * _GNU_SOURCE |
---|
| 97 | * All of the above plus GNU extensions |
---|
| 98 | * |
---|
| 99 | * _BSD_SOURCE (deprecated by _DEFAULT_SOURCE) |
---|
| 100 | * _SVID_SOURCE (deprecated by _DEFAULT_SOURCE) |
---|
| 101 | * _DEFAULT_SOURCE (or none of the above) |
---|
| 102 | * POSIX-1.2008 with BSD and SVr4 extensions |
---|
| 103 | * |
---|
| 104 | * _FORTIFY_SOURCE = 1 or 2 |
---|
| 105 | * Object Size Checking function wrappers |
---|
| 106 | */ |
---|
| 107 | |
---|
| 108 | #ifdef _GNU_SOURCE |
---|
| 109 | #undef _ATFILE_SOURCE |
---|
| 110 | #define _ATFILE_SOURCE 1 |
---|
| 111 | #undef _DEFAULT_SOURCE |
---|
| 112 | #define _DEFAULT_SOURCE 1 |
---|
| 113 | #undef _ISOC99_SOURCE |
---|
| 114 | #define _ISOC99_SOURCE 1 |
---|
| 115 | #undef _ISOC11_SOURCE |
---|
| 116 | #define _ISOC11_SOURCE 1 |
---|
| 117 | #undef _POSIX_SOURCE |
---|
| 118 | #define _POSIX_SOURCE 1 |
---|
| 119 | #undef _POSIX_C_SOURCE |
---|
| 120 | #define _POSIX_C_SOURCE 200809L |
---|
| 121 | #undef _XOPEN_SOURCE |
---|
| 122 | #define _XOPEN_SOURCE 700 |
---|
| 123 | #undef _XOPEN_SOURCE_EXTENDED |
---|
| 124 | #define _XOPEN_SOURCE_EXTENDED 1 |
---|
| 125 | #endif /* _GNU_SOURCE */ |
---|
| 126 | |
---|
| 127 | #if defined(_BSD_SOURCE) || defined(_SVID_SOURCE) || \ |
---|
| 128 | (!defined(__STRICT_ANSI__) && !defined(_ANSI_SOURCE) && \ |
---|
| 129 | !defined(_ISOC99_SOURCE) && !defined(_POSIX_SOURCE) && \ |
---|
| 130 | !defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) |
---|
| 131 | #undef _DEFAULT_SOURCE |
---|
| 132 | #define _DEFAULT_SOURCE 1 |
---|
| 133 | #endif |
---|
| 134 | |
---|
| 135 | #if defined(_DEFAULT_SOURCE) |
---|
| 136 | #undef _POSIX_SOURCE |
---|
| 137 | #define _POSIX_SOURCE 1 |
---|
| 138 | #undef _POSIX_C_SOURCE |
---|
| 139 | #define _POSIX_C_SOURCE 200809L |
---|
| 140 | #endif |
---|
| 141 | |
---|
| 142 | #if !defined(_POSIX_SOURCE) && !defined(_POSIX_C_SOURCE) && \ |
---|
| 143 | ((!defined(__STRICT_ANSI__) && !defined(_ANSI_SOURCE)) || \ |
---|
| 144 | (_XOPEN_SOURCE - 0) >= 500) |
---|
| 145 | #define _POSIX_SOURCE 1 |
---|
| 146 | #if !defined(_XOPEN_SOURCE) || (_XOPEN_SOURCE - 0) >= 700 |
---|
| 147 | #define _POSIX_C_SOURCE 200809L |
---|
| 148 | #elif (_XOPEN_SOURCE - 0) >= 600 |
---|
| 149 | #define _POSIX_C_SOURCE 200112L |
---|
| 150 | #elif (_XOPEN_SOURCE - 0) >= 500 |
---|
| 151 | #define _POSIX_C_SOURCE 199506L |
---|
| 152 | #elif (_XOPEN_SOURCE - 0) < 500 |
---|
| 153 | #define _POSIX_C_SOURCE 2 |
---|
| 154 | #endif |
---|
| 155 | #endif |
---|
| 156 | |
---|
| 157 | #if defined(_POSIX_C_SOURCE) && _POSIX_C_SOURCE >= 200809 |
---|
| 158 | #undef _ATFILE_SOURCE |
---|
| 159 | #define _ATFILE_SOURCE 1 |
---|
| 160 | #endif |
---|
| 161 | |
---|
| 162 | /* |
---|
| 163 | * The following private macros are used throughout the headers to control |
---|
| 164 | * which symbols should be exposed. They are for internal use only, as |
---|
| 165 | * indicated by the leading double underscore, and must never be used outside |
---|
| 166 | * of these headers. |
---|
| 167 | * |
---|
| 168 | * __POSIX_VISIBLE |
---|
| 169 | * any version of POSIX.1; enabled by default, or with _POSIX_SOURCE, |
---|
| 170 | * any value of _POSIX_C_SOURCE, or _XOPEN_SOURCE >= 500. |
---|
| 171 | * |
---|
| 172 | * __POSIX_VISIBLE >= 2 |
---|
| 173 | * POSIX.2-1992; enabled by default, with _POSIX_C_SOURCE >= 2, |
---|
| 174 | * or _XOPEN_SOURCE >= 500. |
---|
| 175 | * |
---|
| 176 | * __POSIX_VISIBLE >= 199309 |
---|
| 177 | * POSIX.1b-1993; enabled by default, with _POSIX_C_SOURCE >= 199309L, |
---|
| 178 | * or _XOPEN_SOURCE >= 500. |
---|
| 179 | * |
---|
| 180 | * __POSIX_VISIBLE >= 199506 |
---|
| 181 | * POSIX.1c-1995; enabled by default, with _POSIX_C_SOURCE >= 199506L, |
---|
| 182 | * or _XOPEN_SOURCE >= 500. |
---|
| 183 | * |
---|
| 184 | * __POSIX_VISIBLE >= 200112 |
---|
| 185 | * POSIX.1-2001; enabled by default, with _POSIX_C_SOURCE >= 200112L, |
---|
| 186 | * or _XOPEN_SOURCE >= 600. |
---|
| 187 | * |
---|
| 188 | * __POSIX_VISIBLE >= 200809 |
---|
| 189 | * POSIX.1-2008; enabled by default, with _POSIX_C_SOURCE >= 200809L, |
---|
| 190 | * or _XOPEN_SOURCE >= 700. |
---|
| 191 | * |
---|
| 192 | * __XSI_VISIBLE |
---|
| 193 | * XPG4 XSI extensions; enabled with any version of _XOPEN_SOURCE. |
---|
| 194 | * |
---|
| 195 | * __XSI_VISIBLE >= 4 |
---|
| 196 | * SUSv1 XSI extensions; enabled with both _XOPEN_SOURCE and |
---|
| 197 | * _XOPEN_SOURCE_EXTENDED together. |
---|
| 198 | * |
---|
| 199 | * __XSI_VISIBLE >= 500 |
---|
| 200 | * SUSv2 XSI extensions; enabled with _XOPEN_SOURCE >= 500. |
---|
| 201 | * |
---|
| 202 | * __XSI_VISIBLE >= 600 |
---|
| 203 | * SUSv3 XSI extensions; enabled with _XOPEN_SOURCE >= 600. |
---|
| 204 | * |
---|
| 205 | * __XSI_VISIBLE >= 700 |
---|
| 206 | * SUSv4 XSI extensions; enabled with _XOPEN_SOURCE >= 700. |
---|
| 207 | * |
---|
| 208 | * __ISO_C_VISIBLE >= 1999 |
---|
| 209 | * ISO C99; enabled with gcc -std=c99 or newer (on by default since GCC 5), |
---|
| 210 | * any version of C++, or with _ISOC99_SOURCE, _POSIX_C_SOURCE >= 200112L, |
---|
| 211 | * or _XOPEN_SOURCE >= 600. |
---|
| 212 | * |
---|
| 213 | * __ISO_C_VISIBLE >= 2011 |
---|
| 214 | * ISO C11; enabled with gcc -std=c11 or newer (on by default since GCC 5), |
---|
| 215 | * g++ -std=c++11 or newer (on by default since GCC 6), or with |
---|
| 216 | * _ISOC11_SOURCE. |
---|
| 217 | * |
---|
| 218 | * __ATFILE_VISIBLE |
---|
| 219 | * "at" functions; enabled by default, with _ATFILE_SOURCE, |
---|
| 220 | * _POSIX_C_SOURCE >= 200809L, or _XOPEN_SOURCE >= 700. |
---|
| 221 | * |
---|
| 222 | * __LARGEFILE_VISIBLE |
---|
| 223 | * fseeko, ftello; enabled with _LARGEFILE_SOURCE or _XOPEN_SOURCE >= 500. |
---|
| 224 | * |
---|
| 225 | * __BSD_VISIBLE |
---|
| 226 | * BSD extensions; enabled by default, or with _BSD_SOURCE. |
---|
| 227 | * |
---|
| 228 | * __SVID_VISIBLE |
---|
| 229 | * SVr4 extensions; enabled by default, or with _SVID_SOURCE. |
---|
| 230 | * |
---|
| 231 | * __MISC_VISIBLE |
---|
| 232 | * Extensions found in both BSD and SVr4 (shorthand for |
---|
| 233 | * (__BSD_VISIBLE || __SVID_VISIBLE)), or newlib-specific |
---|
| 234 | * extensions; enabled by default. |
---|
| 235 | * |
---|
| 236 | * __GNU_VISIBLE |
---|
| 237 | * GNU extensions; enabled with _GNU_SOURCE. |
---|
| 238 | * |
---|
| 239 | * __SSP_FORTIFY_LEVEL |
---|
| 240 | * Object Size Checking; defined to 0 (off), 1, or 2. |
---|
| 241 | * |
---|
| 242 | * In all cases above, "enabled by default" means either by defining |
---|
| 243 | * _DEFAULT_SOURCE, or by not defining any of the public feature test macros. |
---|
| 244 | */ |
---|
| 245 | |
---|
| 246 | #ifdef _ATFILE_SOURCE |
---|
| 247 | #define __ATFILE_VISIBLE 1 |
---|
| 248 | #else |
---|
| 249 | #define __ATFILE_VISIBLE 0 |
---|
| 250 | #endif |
---|
| 251 | |
---|
| 252 | #ifdef _DEFAULT_SOURCE |
---|
| 253 | #define __BSD_VISIBLE 1 |
---|
| 254 | #else |
---|
| 255 | #define __BSD_VISIBLE 0 |
---|
| 256 | #endif |
---|
| 257 | |
---|
| 258 | #ifdef _GNU_SOURCE |
---|
| 259 | #define __GNU_VISIBLE 1 |
---|
| 260 | #else |
---|
| 261 | #define __GNU_VISIBLE 0 |
---|
| 262 | #endif |
---|
| 263 | |
---|
| 264 | #if defined(_ISOC11_SOURCE) || \ |
---|
| 265 | (__STDC_VERSION__ - 0) >= 201112L || (__cplusplus - 0) >= 201103L |
---|
| 266 | #define __ISO_C_VISIBLE 2011 |
---|
| 267 | #elif defined(_ISOC99_SOURCE) || (_POSIX_C_SOURCE - 0) >= 200112L || \ |
---|
| 268 | (__STDC_VERSION__ - 0) >= 199901L || defined(__cplusplus) |
---|
| 269 | #define __ISO_C_VISIBLE 1999 |
---|
| 270 | #else |
---|
| 271 | #define __ISO_C_VISIBLE 1990 |
---|
| 272 | #endif |
---|
| 273 | |
---|
| 274 | #if defined(_LARGEFILE_SOURCE) || (_XOPEN_SOURCE - 0) >= 500 |
---|
| 275 | #define __LARGEFILE_VISIBLE 1 |
---|
| 276 | #else |
---|
| 277 | #define __LARGEFILE_VISIBLE 0 |
---|
| 278 | #endif |
---|
| 279 | |
---|
| 280 | #ifdef _DEFAULT_SOURCE |
---|
| 281 | #define __MISC_VISIBLE 1 |
---|
| 282 | #else |
---|
| 283 | #define __MISC_VISIBLE 0 |
---|
| 284 | #endif |
---|
| 285 | |
---|
| 286 | #if (_POSIX_C_SOURCE - 0) >= 200809L |
---|
| 287 | #define __POSIX_VISIBLE 200809 |
---|
| 288 | #elif (_POSIX_C_SOURCE - 0) >= 200112L |
---|
| 289 | #define __POSIX_VISIBLE 200112 |
---|
| 290 | #elif (_POSIX_C_SOURCE - 0) >= 199506L |
---|
| 291 | #define __POSIX_VISIBLE 199506 |
---|
| 292 | #elif (_POSIX_C_SOURCE - 0) >= 199309L |
---|
| 293 | #define __POSIX_VISIBLE 199309 |
---|
| 294 | #elif (_POSIX_C_SOURCE - 0) >= 2 || defined(_XOPEN_SOURCE) |
---|
| 295 | #define __POSIX_VISIBLE 199209 |
---|
| 296 | #elif defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) |
---|
| 297 | #define __POSIX_VISIBLE 199009 |
---|
| 298 | #else |
---|
| 299 | #define __POSIX_VISIBLE 0 |
---|
| 300 | #endif |
---|
| 301 | |
---|
| 302 | #ifdef _DEFAULT_SOURCE |
---|
| 303 | #define __SVID_VISIBLE 1 |
---|
| 304 | #else |
---|
| 305 | #define __SVID_VISIBLE 0 |
---|
| 306 | #endif |
---|
| 307 | |
---|
| 308 | #if (_XOPEN_SOURCE - 0) >= 700 |
---|
| 309 | #define __XSI_VISIBLE 700 |
---|
| 310 | #elif (_XOPEN_SOURCE - 0) >= 600 |
---|
| 311 | #define __XSI_VISIBLE 600 |
---|
| 312 | #elif (_XOPEN_SOURCE - 0) >= 500 |
---|
| 313 | #define __XSI_VISIBLE 500 |
---|
| 314 | #elif defined(_XOPEN_SOURCE) && defined(_XOPEN_SOURCE_EXTENDED) |
---|
| 315 | #define __XSI_VISIBLE 4 |
---|
| 316 | #elif defined(_XOPEN_SOURCE) |
---|
| 317 | #define __XSI_VISIBLE 1 |
---|
| 318 | #else |
---|
| 319 | #define __XSI_VISIBLE 0 |
---|
| 320 | #endif |
---|
| 321 | |
---|
| 322 | #if _FORTIFY_SOURCE > 0 && !defined(__cplusplus) && !defined(__lint__) && \ |
---|
| 323 | (__OPTIMIZE__ > 0 || defined(__clang__)) && __GNUC_PREREQ__(4, 1) |
---|
| 324 | # if _FORTIFY_SOURCE > 1 |
---|
| 325 | # define __SSP_FORTIFY_LEVEL 2 |
---|
| 326 | # else |
---|
| 327 | # define __SSP_FORTIFY_LEVEL 1 |
---|
| 328 | # endif |
---|
| 329 | #else |
---|
| 330 | # define __SSP_FORTIFY_LEVEL 0 |
---|
| 331 | #endif |
---|
| 332 | |
---|
| 333 | /* RTEMS adheres to POSIX -- 1003.1b with some features from annexes. */ |
---|
| 334 | |
---|
| 335 | #ifdef __rtems__ |
---|
| 336 | #define _POSIX_JOB_CONTROL 1 |
---|
| 337 | #define _POSIX_SAVED_IDS 1 |
---|
| 338 | #define _POSIX_VERSION 199309L |
---|
| 339 | #define _POSIX_ASYNCHRONOUS_IO 1 |
---|
| 340 | #define _POSIX_FSYNC 1 |
---|
| 341 | #define _POSIX_MAPPED_FILES 1 |
---|
| 342 | #define _POSIX_MEMLOCK 1 |
---|
| 343 | #define _POSIX_MEMLOCK_RANGE 1 |
---|
| 344 | #define _POSIX_MEMORY_PROTECTION 1 |
---|
| 345 | #define _POSIX_MESSAGE_PASSING 1 |
---|
| 346 | #define _POSIX_MONOTONIC_CLOCK 200112L |
---|
| 347 | #define _POSIX_CLOCK_SELECTION 200112L |
---|
| 348 | #define _POSIX_PRIORITIZED_IO 1 |
---|
| 349 | #define _POSIX_PRIORITY_SCHEDULING 1 |
---|
| 350 | #define _POSIX_REALTIME_SIGNALS 1 |
---|
| 351 | #define _POSIX_SEMAPHORES 1 |
---|
| 352 | #define _POSIX_SHARED_MEMORY_OBJECTS 1 |
---|
| 353 | #define _POSIX_SYNCHRONIZED_IO 1 |
---|
| 354 | #define _POSIX_TIMERS 1 |
---|
| 355 | #define _POSIX_BARRIERS 200112L |
---|
| 356 | #define _POSIX_READER_WRITER_LOCKS 200112L |
---|
| 357 | #define _POSIX_SPIN_LOCKS 200112L |
---|
| 358 | |
---|
| 359 | |
---|
| 360 | /* In P1003.1b but defined by drafts at least as early as P1003.1c/D10 */ |
---|
| 361 | #define _POSIX_THREADS 1 |
---|
| 362 | #define _POSIX_THREAD_ATTR_STACKADDR 1 |
---|
| 363 | #define _POSIX_THREAD_ATTR_STACKSIZE 1 |
---|
| 364 | #define _POSIX_THREAD_PRIORITY_SCHEDULING 1 |
---|
| 365 | #define _POSIX_THREAD_PRIO_INHERIT 1 |
---|
| 366 | #define _POSIX_THREAD_PRIO_PROTECT 1 |
---|
| 367 | #define _POSIX_THREAD_PROCESS_SHARED 1 |
---|
| 368 | #define _POSIX_THREAD_SAFE_FUNCTIONS 1 |
---|
| 369 | |
---|
| 370 | /* P1003.4b/D8 defines the constants below this comment. */ |
---|
| 371 | #define _POSIX_SPAWN 1 |
---|
| 372 | #define _POSIX_TIMEOUTS 1 |
---|
| 373 | #define _POSIX_CPUTIME 1 |
---|
| 374 | #define _POSIX_THREAD_CPUTIME 1 |
---|
| 375 | #define _POSIX_SPORADIC_SERVER 1 |
---|
| 376 | #define _POSIX_THREAD_SPORADIC_SERVER 1 |
---|
| 377 | #define _POSIX_DEVICE_CONTROL 1 |
---|
| 378 | #define _POSIX_DEVCTL_DIRECTION 1 |
---|
| 379 | #define _POSIX_INTERRUPT_CONTROL 1 |
---|
| 380 | #define _POSIX_ADVISORY_INFO 1 |
---|
| 381 | |
---|
| 382 | /* UNIX98 added some new pthread mutex attributes */ |
---|
| 383 | #define _UNIX98_THREAD_MUTEX_ATTRIBUTES 1 |
---|
| 384 | |
---|
| 385 | /* POSIX 1003.26-2003 defined device control method */ |
---|
| 386 | #define _POSIX_26_VERSION 200312L |
---|
| 387 | |
---|
| 388 | #endif |
---|
| 389 | |
---|
| 390 | /* XMK loosely adheres to POSIX -- 1003.1 */ |
---|
| 391 | #ifdef __XMK__ |
---|
| 392 | #define _POSIX_THREADS 1 |
---|
| 393 | #define _POSIX_THREAD_PRIORITY_SCHEDULING 1 |
---|
| 394 | #endif |
---|
| 395 | |
---|
| 396 | |
---|
| 397 | #ifdef __svr4__ |
---|
| 398 | # define _POSIX_JOB_CONTROL 1 |
---|
| 399 | # define _POSIX_SAVED_IDS 1 |
---|
| 400 | # define _POSIX_VERSION 199009L |
---|
| 401 | #endif |
---|
| 402 | |
---|
| 403 | #ifdef __CYGWIN__ |
---|
| 404 | |
---|
| 405 | #if __POSIX_VISIBLE >= 200809 |
---|
| 406 | #define _POSIX_VERSION 200809L |
---|
| 407 | #define _POSIX2_VERSION 200809L |
---|
| 408 | #elif __POSIX_VISIBLE >= 200112 |
---|
| 409 | #define _POSIX_VERSION 200112L |
---|
| 410 | #define _POSIX2_VERSION 200112L |
---|
| 411 | #elif __POSIX_VISIBLE >= 199506 |
---|
| 412 | #define _POSIX_VERSION 199506L |
---|
| 413 | #define _POSIX2_VERSION 199506L |
---|
| 414 | #elif __POSIX_VISIBLE >= 199309 |
---|
| 415 | #define _POSIX_VERSION 199309L |
---|
| 416 | #define _POSIX2_VERSION 199209L |
---|
| 417 | #elif __POSIX_VISIBLE >= 199209 |
---|
| 418 | #define _POSIX_VERSION 199009L |
---|
| 419 | #define _POSIX2_VERSION 199209L |
---|
| 420 | #elif __POSIX_VISIBLE |
---|
| 421 | #define _POSIX_VERSION 199009L |
---|
| 422 | #endif |
---|
| 423 | #if __XSI_VISIBLE >= 4 |
---|
| 424 | #define _XOPEN_VERSION __XSI_VISIBLE |
---|
| 425 | #endif |
---|
| 426 | |
---|
| 427 | #define _POSIX_ADVISORY_INFO 200809L |
---|
| 428 | /* #define _POSIX_ASYNCHRONOUS_IO -1 */ |
---|
| 429 | #define _POSIX_BARRIERS 200809L |
---|
| 430 | #define _POSIX_CHOWN_RESTRICTED 1 |
---|
| 431 | #define _POSIX_CLOCK_SELECTION 200809L |
---|
| 432 | #define _POSIX_CPUTIME 200809L |
---|
| 433 | #define _POSIX_FSYNC 200809L |
---|
| 434 | #define _POSIX_IPV6 200809L |
---|
| 435 | #define _POSIX_JOB_CONTROL 1 |
---|
| 436 | #define _POSIX_MAPPED_FILES 200809L |
---|
| 437 | /* #define _POSIX_MEMLOCK -1 */ |
---|
| 438 | #define _POSIX_MEMLOCK_RANGE 200809L |
---|
| 439 | #define _POSIX_MEMORY_PROTECTION 200809L |
---|
| 440 | #define _POSIX_MESSAGE_PASSING 200809L |
---|
| 441 | #define _POSIX_MONOTONIC_CLOCK 200809L |
---|
| 442 | #define _POSIX_NO_TRUNC 1 |
---|
| 443 | /* #define _POSIX_PRIORITIZED_IO -1 */ |
---|
| 444 | #define _POSIX_PRIORITY_SCHEDULING 200809L |
---|
| 445 | #define _POSIX_RAW_SOCKETS 200809L |
---|
| 446 | #define _POSIX_READER_WRITER_LOCKS 200809L |
---|
| 447 | #define _POSIX_REALTIME_SIGNALS 200809L |
---|
| 448 | #define _POSIX_REGEXP 1 |
---|
| 449 | #define _POSIX_SAVED_IDS 1 |
---|
| 450 | #define _POSIX_SEMAPHORES 200809L |
---|
| 451 | #define _POSIX_SHARED_MEMORY_OBJECTS 200809L |
---|
| 452 | #define _POSIX_SHELL 1 |
---|
| 453 | #define _POSIX_SPAWN 200809L |
---|
| 454 | #define _POSIX_SPIN_LOCKS 200809L |
---|
| 455 | /* #define _POSIX_SPORADIC_SERVER -1 */ |
---|
| 456 | #define _POSIX_SYNCHRONIZED_IO 200809L |
---|
| 457 | #define _POSIX_THREAD_ATTR_STACKADDR 200809L |
---|
| 458 | #define _POSIX_THREAD_ATTR_STACKSIZE 200809L |
---|
| 459 | #define _POSIX_THREAD_CPUTIME 200809L |
---|
| 460 | /* #define _POSIX_THREAD_PRIO_INHERIT -1 */ |
---|
| 461 | /* #define _POSIX_THREAD_PRIO_PROTECT -1 */ |
---|
| 462 | #define _POSIX_THREAD_PRIORITY_SCHEDULING 200809L |
---|
| 463 | #define _POSIX_THREAD_PROCESS_SHARED 200809L |
---|
| 464 | #define _POSIX_THREAD_SAFE_FUNCTIONS 200809L |
---|
| 465 | /* #define _POSIX_THREAD_SPORADIC_SERVER -1 */ |
---|
| 466 | #define _POSIX_THREADS 200809L |
---|
| 467 | #define _POSIX_TIMEOUTS 200809L |
---|
| 468 | #define _POSIX_TIMERS 200809L |
---|
| 469 | /* #define _POSIX_TRACE -1 */ |
---|
| 470 | /* #define _POSIX_TRACE_EVENT_FILTER -1 */ |
---|
| 471 | /* #define _POSIX_TRACE_INHERIT -1 */ |
---|
| 472 | /* #define _POSIX_TRACE_LOG -1 */ |
---|
| 473 | /* #define _POSIX_TYPED_MEMORY_OBJECTS -1 */ |
---|
| 474 | #define _POSIX_VDISABLE '\0' |
---|
| 475 | |
---|
| 476 | #if __POSIX_VISIBLE >= 2 |
---|
| 477 | #define _POSIX2_C_VERSION _POSIX2_VERSION |
---|
| 478 | #define _POSIX2_C_BIND _POSIX2_VERSION |
---|
| 479 | #define _POSIX2_C_DEV _POSIX2_VERSION |
---|
| 480 | #define _POSIX2_CHAR_TERM _POSIX2_VERSION |
---|
| 481 | /* #define _POSIX2_FORT_DEV -1 */ |
---|
| 482 | /* #define _POSIX2_FORT_RUN -1 */ |
---|
| 483 | /* #define _POSIX2_LOCALEDEF -1 */ |
---|
| 484 | /* #define _POSIX2_PBS -1 */ |
---|
| 485 | /* #define _POSIX2_PBS_ACCOUNTING -1 */ |
---|
| 486 | /* #define _POSIX2_PBS_CHECKPOINT -1 */ |
---|
| 487 | /* #define _POSIX2_PBS_LOCATE -1 */ |
---|
| 488 | /* #define _POSIX2_PBS_MESSAGE -1 */ |
---|
| 489 | /* #define _POSIX2_PBS_TRACK -1 */ |
---|
| 490 | #define _POSIX2_SW_DEV _POSIX2_VERSION |
---|
| 491 | #define _POSIX2_UPE _POSIX2_VERSION |
---|
| 492 | #endif /* __POSIX_VISIBLE >= 2 */ |
---|
| 493 | |
---|
| 494 | #define _POSIX_V6_ILP32_OFF32 -1 |
---|
| 495 | #ifdef __LP64__ |
---|
| 496 | #define _POSIX_V6_ILP32_OFFBIG -1 |
---|
| 497 | #define _POSIX_V6_LP64_OFF64 1 |
---|
| 498 | #define _POSIX_V6_LPBIG_OFFBIG 1 |
---|
| 499 | #else |
---|
| 500 | #define _POSIX_V6_ILP32_OFFBIG 1 |
---|
| 501 | #define _POSIX_V6_LP64_OFF64 -1 |
---|
| 502 | #define _POSIX_V6_LPBIG_OFFBIG -1 |
---|
| 503 | #endif |
---|
| 504 | #define _POSIX_V7_ILP32_OFF32 _POSIX_V6_ILP32_OFF32 |
---|
| 505 | #define _POSIX_V7_ILP32_OFFBIG _POSIX_V6_ILP32_OFFBIG |
---|
| 506 | #define _POSIX_V7_LP64_OFF64 _POSIX_V6_LP64_OFF64 |
---|
| 507 | #define _POSIX_V7_LPBIG_OFFBIG _POSIX_V6_LPBIG_OFFBIG |
---|
| 508 | #define _XBS5_ILP32_OFF32 _POSIX_V6_ILP32_OFF32 |
---|
| 509 | #define _XBS5_ILP32_OFFBIG _POSIX_V6_ILP32_OFFBIG |
---|
| 510 | #define _XBS5_LP64_OFF64 _POSIX_V6_LP64_OFF64 |
---|
| 511 | #define _XBS5_LPBIG_OFFBIG _POSIX_V6_LPBIG_OFFBIG |
---|
| 512 | |
---|
| 513 | #if __XSI_VISIBLE |
---|
| 514 | #define _XOPEN_CRYPT 1 |
---|
| 515 | #define _XOPEN_ENH_I18N 1 |
---|
| 516 | /* #define _XOPEN_LEGACY -1 */ |
---|
| 517 | /* #define _XOPEN_REALTIME -1 */ |
---|
| 518 | /* #define _XOPEN_REALTIME_THREADS -1 */ |
---|
| 519 | #define _XOPEN_SHM 1 |
---|
| 520 | /* #define _XOPEN_STREAMS -1 */ |
---|
| 521 | /* #define _XOPEN_UNIX -1 */ |
---|
| 522 | #endif /* __XSI_VISIBLE */ |
---|
| 523 | |
---|
| 524 | /* The value corresponds to UNICODE version 5.2, which is the current |
---|
| 525 | state of newlib's wide char conversion functions. */ |
---|
| 526 | #define __STDC_ISO_10646__ 200910L |
---|
| 527 | |
---|
| 528 | #endif /* __CYGWIN__ */ |
---|
| 529 | |
---|
| 530 | #ifdef __cplusplus |
---|
| 531 | } |
---|
| 532 | #endif |
---|
| 533 | #endif /* _SYS_FEATURES_H */ |
---|