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

_watcom.h
Go to the documentation of this file.
00001 // STLport configuration file
00002 // It is internal STLport header - DO NOT include it directly
00003 
00004 #define _STLP_COMPILER "Watcom"
00005 
00006 #if (__WATCOMC__ < 1250)
00007 #  error Not supported!
00008 #endif
00009 
00010 #ifndef _CPPRTTI
00011 #  define _STLP_NO_RTTI 1
00012 #endif
00013 
00014 // for switches (-xs,  -xss,  -xst)
00015 #if !(defined (__SW_XS) || defined (__SW_XSS) || defined(__SW_XST))
00016 #  define _STLP_HAS_NO_EXCEPTIONS 1
00017 #endif
00018 
00019 #if defined (_MT) && !defined (_NOTHREADS)
00020 #  define _STLP_THREADS 1
00021 #endif
00022 
00023 #define _STLP_NO_VENDOR_STDLIB_L
00024 #define _STLP_NO_VENDOR_MATH_F
00025 #define _STLP_NO_VENDOR_MATH_L
00026 
00027 #define _STLP_LONG_LONG long long
00028 
00029 #define _STLP_CALL __cdecl
00030 #define _STLP_IMPORT_DECLSPEC __declspec(dllimport)
00031 
00032 #define _STLP_NO_CONST_IN_PAIR
00033 
00034 //#define _STLP_DONT_USE_PRIV_NAMESPACE
00035 //#define _STLP_NO_MOVE_SEMANTIC
00036 //#define _STLP_NO_TYPENAME_IN_TEMPLATE_HEADER
00037 #define _STLP_DONT_SUPPORT_REBIND_MEMBER_TEMPLATE
00038 
00039 #define _STLP_NO_RELOPS_NAMESPACE
00040 
00041 #define _STLP_NEEDS_EXTRA_TEMPLATE_CONSTRUCTORS
00042 #define _STLP_NO_STATIC_CONST_DEFINITION
00043 
00044 //#define _STLP_HAS_SPECIFIC_PROLOG_EPILOG
00045 #define _STLP_DONT_SIMULATE_PARTIAL_SPEC_FOR_TYPE_TRAITS
00046 //#define _STLP_USE_OLD_HP_ITERATOR_QUERIES
00047 
00048 #define _STLP_NO_FUNCTION_TMPL_PARTIAL_ORDER 1
00049 #define _STLP_NO_CLASS_PARTIAL_SPECIALIZATION 1
00050 //#define _STLP_NO_MEMBER_TEMPLATE_KEYWORD 1
00051 //#define _STLP_NO_MEMBER_TEMPLATES 1
00052 //#define _STLP_NO_MEMBER_TEMPLATE_CLASSES 1
00053 
00054 //#define _STLP_LIMITED_DEFAULT_TEMPLATES 1
00055 //#define _STLP_HAS_NO_NAMESPACES 1
00056 //#define _STLP_NEED_TYPENAME 1
00057 
00058 #define _STLP_NO_EXPLICIT_FUNCTION_TMPL_ARGS 1
00059 
00060 //#define _STLP_STATIC_CONST_INIT_BUG 1
00061 // #define _STLP_THROW_RETURN_BUG 1
00062 //#define _STLP_NO_TEMPLATE_CONVERSIONS 1
00063 
00064 #define _STLP_BASE_TYPEDEF_OUTSIDE_BUG 1
00065 
00066 #define _STLP_NO_DEFAULT_NON_TYPE_PARAM 1
00067 #define _STLP_NON_TYPE_TMPL_PARAM_BUG 1
00068 
00069 //#define _STLP_NONTEMPL_BASE_MATCH_BUG
00070 //#define _STLP_NO_EXCEPTION_HEADER 1
00071 #define _STLP_NO_BAD_ALLOC 1
00072 
00073 //#define _STLP_NO_TYPENAME_ON_RETURN_TYPE
00074 //#define _STLP_NESTED_TYPE_PARAM_BUG 1
00075 
00076 //#define _STLP_NO_USING_FOR_GLOBAL_FUNCTIONS 1
00077 
00078 #define _STLP_NO_ARROW_OPERATOR 1
00079 // This one is present in 11, but apparently has bugs (with auto_ptr).
00080 //#define _STLP_NO_NEW_STYLE_CASTS 1
00081 
00082 // Get rid of Watcom's min and max macros
00083 #undef min
00084 #undef max
00085 
00086 // On QNX, headers are supposed to be found in /usr/include,
00087 // so default "../include" should work.
00088 #ifndef __QNX__
00089 #  define _STLP_NATIVE_INCLUDE_PATH ../h
00090 #else
00091 // boris : is this true or just the header is not in /usr/include ?
00092 #  define _STLP_NO_TYPEINFO 1
00093 #endif
00094 
00095 // Inline replacements for locking calls under Watcom
00096 // Define _STLP_NO_WATCOM_INLINE_INTERLOCK to keep using
00097 // standard WIN32 calls
00098 // Define _STL_MULTIPROCESSOR to enable lock
00099 #define _STLP_NO_WATCOM_INLINE_INTERLOCK
00100 #if !defined(_STLP_NO_WATCOM_INLINE_INTERLOCK)
00101 
00102 long    __stl_InterlockedIncrement( long *var );
00103 long    __stl_InterlockedDecrement( long *var );
00104 
00105 #ifdef _STL_MULTIPROCESSOR
00106 // Multiple Processors, add lock prefix
00107 #pragma aux __stl_InterlockedIncrement parm [ ecx ] = \
00108         ".586"                  \
00109         "mov eax, 1"            \
00110         "lock xadd [ecx], eax"       \
00111         "inc eax"               \
00112         value [eax];
00113 
00114 
00115 #pragma aux __stl_InterlockedDecrement parm [ ecx ] = \
00116         ".586"                  \
00117         "mov eax, 0FFFFFFFFh"   \
00118         "lock xadd [ecx], eax"       \
00119         "dec eax"               \
00120         value [eax];
00121 #else
00122 // Single Processor, lock prefix not needed
00123 #pragma aux __stl_InterlockedIncrement parm [ ecx ] = \
00124         ".586"                  \
00125         "mov eax, 1"            \
00126         "xadd [ecx], eax"       \
00127         "inc eax"               \
00128         value [eax];
00129 
00130 #pragma aux __stl_InterlockedDecrement parm [ ecx ] = \
00131         ".586"                  \
00132         "mov eax, 0FFFFFFFFh"   \
00133         "xadd [ecx], eax"       \
00134         "dec eax"               \
00135         value [eax];
00136 #endif // _STL_MULTIPROCESSOR
00137 
00138 long    __stl_InterlockedExchange( long *Destination, long Value );
00139 
00140 // xchg has auto-lock
00141 #pragma aux __stl_InterlockedExchange parm [ecx] [eax] = \
00142         ".586"                  \
00143         "xchg eax, [ecx]"       \
00144         value [eax];
00145 
00146 #  define _STLP_ATOMIC_INCREMENT(__x) __stl_InterlockedIncrement((long*)__x)
00147 #  define _STLP_ATOMIC_DECREMENT(__x) __stl_InterlockedDecrement((long*)__x)
00148 #  define _STLP_ATOMIC_EXCHANGE(__x, __y) __stl_InterlockedExchange((long*)__x, (long)__y)
00149 #  define _STLP_ATOMIC_EXCHANGE_PTR(__x, __y) __stl_InterlockedExchange((long*)__x, (long)__y)
00150 #endif /* INLINE INTERLOCK */
00151 

Generated on Sat May 26 2012 04:28:24 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.