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.6 2004/02/09 02:22:01 cgf 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: #endif 92: 93: #ifdef __cplusplus 94: } 95: #endif 96: #endif /* _SYS_FEATURES_H */ 97: