epoc32/include/tools/stlport/stl/config/_watcom.h
author William Roberts <williamr@symbian.org>
Tue, 16 Mar 2010 16:12:26 +0000 (2010-03-16)
branchSymbian2
changeset 2 2fe1408b6811
child 4 837f303aceeb
permissions -rw-r--r--
Final list of Symbian^2 public API header files
     1 // STLport configuration file
     2 // It is internal STLport header - DO NOT include it directly
     3 
     4 #define _STLP_COMPILER "Watcom"
     5 
     6 # ifndef _STLP_USE_NO_IOSTREAMS
     7 #  define _STLP_USE_NO_IOSTREAMS
     8 # endif
     9 
    10 # define _STLP_NO_RELOPS_NAMESPACE
    11 # define _STLP_NO_PARTIAL_SPECIALIZATION_SYNTAX
    12 
    13 #  define _STLP_HAS_SPECIFIC_PROLOG_EPILOG
    14 #  define _STLP_DONT_SIMULATE_PARTIAL_SPEC_FOR_TYPE_TRAITS
    15 #  define _STLP_USE_OLD_HP_ITERATOR_QUERIES
    16 
    17 // On QNX, headers are supposed to be found in /usr/include,
    18 // so default "../include" should work.
    19 # ifndef __QNX__
    20 #  define _STLP_NATIVE_INCLUDE_PATH ../h
    21 # endif
    22 
    23 // Inline replacements for locking calls under Watcom
    24 // Define _STLP_NO_WATCOM_INLINE_INTERLOCK to keep using
    25 // standard WIN32 calls
    26 // Define _STL_MULTIPROCESSOR to enable lock
    27 #if !defined(_STLP_NO_WATCOM_INLINE_INTERLOCK)
    28 
    29 long    __stl_InterlockedIncrement( long *var );
    30 long    __stl_InterlockedDecrement( long *var );
    31 
    32 #ifdef _STL_MULTIPROCESSOR
    33 // Multiple Processors, add lock prefix
    34 #pragma aux __stl_InterlockedIncrement parm [ ecx ] = \
    35         ".586"                  \
    36         "mov eax, 1"            \
    37         "lock xadd [ecx], eax"       \
    38         "inc eax"               \
    39         value [eax];
    40 
    41 
    42 #pragma aux __stl_InterlockedDecrement parm [ ecx ] = \
    43         ".586"                  \
    44         "mov eax, 0FFFFFFFFh"   \
    45         "lock xadd [ecx], eax"       \
    46         "dec eax"               \
    47         value [eax];
    48 #else
    49 // Single Processor, lock prefix not needed
    50 #pragma aux __stl_InterlockedIncrement parm [ ecx ] = \
    51         ".586"                  \
    52         "mov eax, 1"            \
    53         "xadd [ecx], eax"       \
    54         "inc eax"               \
    55         value [eax];
    56 
    57 #pragma aux __stl_InterlockedDecrement parm [ ecx ] = \
    58         ".586"                  \
    59         "mov eax, 0FFFFFFFFh"   \
    60         "xadd [ecx], eax"       \
    61         "dec eax"               \
    62         value [eax];
    63 #endif // _STL_MULTIPROCESSOR
    64 
    65 long    __stl_InterlockedExchange( long *Destination, long Value );
    66 
    67 // xchg has auto-lock
    68 #pragma aux __stl_InterlockedExchange parm [ecx] [eax] = \
    69         ".586"                  \
    70         "xchg eax, [ecx]"       \
    71         value [eax];
    72 #else
    73 
    74 #define __stl_InterlockedIncrement      InterlockedIncrement
    75 #define __stl_InterlockedDecrement      InterlockedDecrement
    76 #define __stl_InterlockedExchange       InterlockedExchange
    77 #endif /* INLINE INTERLOCK */
    78 
    79 #define _STLP_ATOMIC_INCREMENT(__x) __stl_InterlockedIncrement((long*)__x)
    80 #define _STLP_ATOMIC_DECREMENT(__x) __stl_InterlockedDecrement((long*)__x)
    81 #define _STLP_ATOMIC_EXCHANGE(__x, __y) __stl_InterlockedExchange((long*)__x, (long)__y)
    82 
    83 // boris : is this true or just the header is not in /usr/include ?
    84 # ifdef __QNX__
    85 #  define _STLP_NO_TYPEINFO 1
    86 # endif
    87 
    88 #  define _STLP_NO_FUNCTION_TMPL_PARTIAL_ORDER 1
    89 #  define _STLP_NO_CLASS_PARTIAL_SPECIALIZATION 1
    90 #  define _STLP_NO_MEMBER_TEMPLATE_KEYWORD 1
    91 #  define _STLP_NO_MEMBER_TEMPLATES 1
    92 #  define _STLP_NO_FRIEND_TEMPLATES 1
    93 #  define _STLP_NO_MEMBER_TEMPLATE_CLASSES 1
    94 
    95 
    96 #  define _STLP_LIMITED_DEFAULT_TEMPLATES 1
    97 #  define _STLP_HAS_NO_NAMESPACES 1
    98 #  define _STLP_NEED_TYPENAME 1
    99 
   100 #  if __WATCOMC__ < 1100
   101 #  define _STLP_NO_WCHAR_T 1
   102 #  define _STLP_NO_PARTIAL_SPECIALIZATION_SYNTAX 1
   103 #  endif
   104 
   105 #  define _STLP_NO_EXPLICIT_FUNCTION_TMPL_ARGS 1
   106 
   107 #  define _STLP_STATIC_CONST_INIT_BUG 1
   108 // #  define _STLP_THROW_RETURN_BUG 1
   109 #  define _STLP_NO_TEMPLATE_CONVERSIONS 1
   110 
   111 #  define _STLP_BASE_TYPEDEF_OUTSIDE_BUG 1
   112 
   113 #  define _STLP_HAS_NO_NEW_IOSTREAMS 1
   114 #  define _STLP_HAS_NO_NEW_C_HEADERS 1
   115 #  define _STLP_NO_NEW_NEW_HEADER 1
   116 #  define _STLP_VENDOR_GLOBAL_STD
   117 
   118 #  define _STLP_NO_DEFAULT_NON_TYPE_PARAM 1
   119 #  define _STLP_NON_TYPE_TMPL_PARAM_BUG 1
   120 #  define _STLP_NONTEMPL_BASE_MATCH_BUG
   121 #  define _STLP_NO_EXCEPTION_HEADER 1
   122 #  define _STLP_NO_BAD_ALLOC 1
   123 
   124 #  define _STLP_NESTED_TYPE_PARAM_BUG 1
   125 
   126 #  define _STLP_NO_USING_FOR_GLOBAL_FUNCTIONS 1
   127 
   128 #  if (__WATCOM_CPLUSPLUS__ < 1100 )
   129 #   define _STLP_NO_BOOL 1
   130 #   define _STLP_NEED_EXPLICIT 1
   131 #   define _STLP_NEED_MUTABLE 1
   132 #   define _STLP_NO_ARROW_OPERATOR 1
   133 #  endif
   134 // This one is present in 11, but apparently has bugs (with auto_ptr).
   135 #   define _STLP_NO_NEW_STYLE_CASTS 1
   136 
   137 // Get rid of Watcom's min and max macros
   138 #undef min
   139 #undef max
   140 
   141 // for switches (-xs,  -xss,  -xst)
   142 //
   143 #if !(defined (__SW_XS) || defined (__SW_XSS) || defined(__SW_XST))
   144 #    define _STLP_HAS_NO_EXCEPTIONS 1
   145 # endif
   146 
   147 # if defined ( _MT ) && !defined (_NOTHREADS) && !defined (_REENTRANT)
   148 # define _REENTRANT 1
   149 # endif
   150 
   151 
   152 
   153 
   154