1 /* 2 * Written by Joel Sherrill <joel@OARcorp.com>. 3 * 4 * COPYRIGHT (c) 1989-2000. 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: features.h,v 1.7 2005/10/18 18:39:46 corinna Exp $ 19 */ 20 21 #ifndef _SYS_FEATURES_H 22 #define _SYS_FEATURES_H 23 24 #ifdef __cplusplus 25 extern "C" { 26 #endif 27 28 /* RTEMS adheres to POSIX -- 1003.1b with some features from annexes. */ 29 30 #ifdef __rtems__ 31 #define _POSIX_JOB_CONTROL 1 32 #define _POSIX_SAVED_IDS 1 33 #define _POSIX_VERSION 199309L 34 #define _POSIX_ASYNCHRONOUS_IO 1 35 #define _POSIX_FSYNC 1 36 #define _POSIX_MAPPED_FILES 1 37 #define _POSIX_MEMLOCK 1 38 #define _POSIX_MEMLOCK_RANGE 1 39 #define _POSIX_MEMORY_PROTECTION 1 40 #define _POSIX_MESSAGE_PASSING 1 41 #define _POSIX_PRIORITIZED_IO 1 42 #define _POSIX_PRIORITY_SCHEDULING 1 43 #define _POSIX_REALTIME_SIGNALS 1 44 #define _POSIX_SEMAPHORES 1 45 #define _POSIX_SHARED_MEMORY_OBJECTS 1 46 #define _POSIX_SYNCHRONIZED_IO 1 47 #define _POSIX_TIMERS 1 48 49 50 /* In P1003.1b but defined by drafts at least as early as P1003.1c/D10 */ 51 #define _POSIX_THREADS 1 52 #define _POSIX_THREAD_ATTR_STACKADDR 1 53 #define _POSIX_THREAD_ATTR_STACKSIZE 1 54 #define _POSIX_THREAD_PRIORITY_SCHEDULING 1 55 #define _POSIX_THREAD_PRIO_INHERIT 1 56 #define _POSIX_THREAD_PRIO_PROTECT 1 57 #define _POSIX_THREAD_PROCESS_SHARED 1 58 #define _POSIX_THREAD_SAFE_FUNCTIONS 1 59 60 /* P1003.4b/D8 defines the constants below this comment. */ 61 #define _POSIX_SPAWN 1 62 #define _POSIX_TIMEOUTS 1 63 #define _POSIX_CPUTIME 1 64 #define _POSIX_THREAD_CPUTIME 1 65 #define _POSIX_SPORADIC_SERVER 1 66 #define _POSIX_THREAD_SPORADIC_SERVER 1 67 #define _POSIX_DEVICE_CONTROL 1 68 #define _POSIX_DEVCTL_DIRECTION 1 69 #define _POSIX_INTERRUPT_CONTROL 1 70 #define _POSIX_ADVISORY_INFO 1 71 72 #endif 73 74 #ifdef __svr4__ 75 # define _POSIX_JOB_CONTROL 1 76 # define _POSIX_SAVED_IDS 1 77 # define _POSIX_VERSION 199009L 78 #endif 79 80 #ifdef __CYGWIN__ 81 # define _POSIX_JOB_CONTROL 1 82 # define _POSIX_SAVED_IDS 0 83 # define _POSIX_VERSION 199009L 84 # define _POSIX_THREADS 1 85 # define _POSIX_THREAD_PROCESS_SHARED 1 86 # define _POSIX_THREAD_SAFE_FUNCTIONS 1 87 # define _POSIX_THREAD_PRIORITY_SCHEDULING 1 88 # define _POSIX_THREAD_ATTR_STACKSIZE 1 89 # define _POSIX_SEMAPHORES 1 90 # define _POSIX_TIMERS 1 91 # define _POSIX_MEMLOCK_RANGE 1 92 #endif 93 94 #ifdef __cplusplus 95 } 96 #endif 97 #endif /* _SYS_FEATURES_H */ 98