ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

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 doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.