Home | Info | Community | Development | myReactOS | Contact Us
ReactOS Development > Doxygen_linux.h
Go to the documentation of this file.
00001 #ifndef __stl_config__linux_h 00002 #define __stl_config__linux_h 00003 00004 #define _STLP_PLATFORM "Linux" 00005 00006 #include <features.h> 00007 00008 /* This is defined wether library in use is glibc or not. 00009 This may be treated as presence of GNU libc compatible 00010 header files (these define is not really intended to check 00011 for the presence of a particular library, but rather is used 00012 to define an INTERFACE.) */ 00013 #ifndef _STLP_USE_GLIBC 00014 # define _STLP_USE_GLIBC 1 00015 #endif 00016 00017 #ifndef _STLP_USE_STDIO_IO 00018 # define _STLP_USE_UNIX_IO 00019 #endif 00020 00021 /* #define _STLP_USE_STDIO_IO */ 00022 00023 /* If not explicitly specified otherwise, work with threads 00024 */ 00025 #if !defined(_STLP_NO_THREADS) && !defined(_REENTRANT) 00026 # define _REENTRANT 00027 #endif 00028 00029 #if defined(_REENTRANT) && !defined(_PTHREADS) 00030 # define _PTHREADS 00031 #endif 00032 00033 #ifdef __UCLIBC__ /* uClibc 0.9.27 */ 00034 # define _STLP_USE_UCLIBC 1 00035 # if !defined(__UCLIBC_HAS_WCHAR__) 00036 # ifndef _STLP_NO_WCHAR_T 00037 # define _STLP_NO_WCHAR_T 00038 # endif 00039 # ifndef _STLP_NO_NATIVE_MBSTATE_T 00040 # define _STLP_NO_NATIVE_MBSTATE_T 00041 # endif 00042 # ifndef _STLP_NO_NATIVE_WIDE_STREAMS 00043 # define _STLP_NO_NATIVE_WIDE_STREAMS 00044 # endif 00045 # endif /* __UCLIBC_HAS_WCHAR__ */ 00046 /* Hmm, bogus _GLIBCPP_USE_NAMESPACES seems undefined... */ 00047 # define _STLP_VENDOR_GLOBAL_CSTD 1 00048 #endif 00049 00050 00051 #if defined(_PTHREADS) 00052 # define _STLP_THREADS 00053 # define _STLP_PTHREADS 00054 /* 00055 # ifndef __USE_UNIX98 00056 # define __USE_UNIX98 00057 # endif 00058 */ 00059 /* This feature exist at least since glibc 2.2.4 */ 00060 /* # define __FIT_XSI_THR */ /* Unix 98 or X/Open System Interfaces Extention */ 00061 # ifdef __USE_XOPEN2K 00062 /* The IEEE Std. 1003.1j-2000 introduces functions to implement spinlocks. */ 00063 # ifndef __UCLIBC__ /* There are no spinlocks in uClibc 0.9.27 */ 00064 # define _STLP_USE_PTHREAD_SPINLOCK 00065 # else 00066 # ifndef _STLP_DONT_USE_PTHREAD_SPINLOCK 00067 /* in uClibc (0.9.26) pthread_spinlock* declared in headers 00068 * but absent in library */ 00069 # define _STLP_DONT_USE_PTHREAD_SPINLOCK 00070 # endif 00071 # endif 00072 # ifndef _STLP_DONT_USE_PTHREAD_SPINLOCK 00073 # define _STLP_USE_PTHREAD_SPINLOCK 00074 # define _STLP_STATIC_MUTEX _STLP_mutex 00075 # endif 00076 /* # define __FIT_PSHARED_MUTEX */ 00077 # endif 00078 #endif 00079 00080 /* Endiannes */ 00081 #include <endian.h> 00082 #if !defined(__BYTE_ORDER) || !defined(__LITTLE_ENDIAN) || !defined(__BIG_ENDIAN) 00083 # error "One of __BYTE_ORDER, __LITTLE_ENDIAN and __BIG_ENDIAN undefined; Fix me!" 00084 #endif 00085 00086 #if ( __BYTE_ORDER == __LITTLE_ENDIAN ) 00087 # define _STLP_LITTLE_ENDIAN 1 00088 #elif ( __BYTE_ORDER == __BIG_ENDIAN ) 00089 # define _STLP_BIG_ENDIAN 1 00090 #else 00091 # error "__BYTE_ORDER neither __BIG_ENDIAN nor __LITTLE_ENDIAN; Fix me!" 00092 #endif 00093 00094 #if defined(__GNUC__) && (__GNUC__ < 3) 00095 # define _STLP_NO_NATIVE_WIDE_FUNCTIONS 1 00096 #endif 00097 00098 #ifdef __GLIBC__ 00099 # if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 3) || (__GLIBC__ > 2) 00100 /* From glibc 2.3.x default allocator is malloc_alloc, if was not defined other */ 00101 # if !defined(_STLP_USE_MALLOC) && !defined(_STLP_USE_NEWALLOC) && !defined(_STLP_USE_PERTHREAD_ALLOC) && !defined(_STLP_USE_NODE_ALLOC) 00102 # define _STLP_USE_MALLOC 1 00103 # endif 00104 # endif 00105 /* Following platforms has no long double: 00106 * - Alpha 00107 * - PowerPC 00108 * - SPARC, 32-bits (64-bits platform has long double) 00109 * - MIPS, 32-bits 00110 * - ARM 00111 * - SH4 00112 */ 00113 # if defined(__alpha__) || \ 00114 defined(__ppc__) || defined(PPC) || defined(__powerpc__) || \ 00115 ((defined(__sparc) || defined(__sparcv9) || defined(__sparcv8plus)) && !defined ( __WORD64 ) && !defined(__arch64__)) /* ? */ || \ 00116 (defined(_MIPS_SIM) && (_MIPS_SIM == _ABIO32)) || \ 00117 defined(__arm__) || \ 00118 defined(__sh__) 00119 /* # if defined(__NO_LONG_DOUBLE_MATH) */ 00120 # define _STLP_NO_LONG_DOUBLE 00121 # endif 00122 #endif 00123 00124 00125 #endif /* __stl_config__linux_h */ Generated on Thu May 24 2012 04:30:27 for ReactOS by
1.7.6.1
|