Update contrib.
1 // Copyright (c) 2002-2009 Nokia Corporation and/or its subsidiary(-ies).
2 // All rights reserved.
3 // This component and the accompanying materials are made available
4 // under the terms of the License "ARM EABI LICENCE.txt"
5 // which accompanies this distribution, and is available
6 // in kernel/eka/compsupp.
8 // Initial Contributors:
9 // Nokia Corporation - initial contribution.
14 // e32\compsupp\rvct2_0\rvct2_0.h
15 // This is the preinclude file for the rvct 2.0 compiler
16 // It contains all the compiler specific definitions required by the SOS source
21 #if defined(__PRODUCT_INCLUDE__)
22 #include __PRODUCT_INCLUDE__
26 // stuff from e32def.h
31 #define __NO_CLASS_CONSTS__
43 #define __NORETURN_TERMINATOR()
49 #define IMPORT_C __declspec(dllimport)
55 #define EXPORT_C __declspec(dllexport)
61 #define IMPORT_VT __declspec(dllimport)
67 #define __NO_THROW throw ()
73 #define __THROW(t) throw (t)
79 #define TEMPLATE_SPECIALIZATION template<>
85 #define __int64 long long
91 #define __VALUE_IN_REGS__ __value_in_regs
97 #define I64LIT(x) x##LL
103 #define UI64LIT(x) x##ULL
105 // __TText from e32cmn.h also e32des16.h
110 typedef wchar_t __TText; // Only ISO C++ has wchar_t as a primitive type
115 #define __wchar_t_defined
120 typedef unsigned short __TText;
126 #define __TText_defined
128 // __NAKED__ from cpudefs.h
133 #define __NAKED__ __asm
138 #define ____ONLY_USE_NAKED_IN_CIA____ __asm
140 // Int64 and Uint64 from nkern\nklib.h
145 typedef long long Int64;
151 typedef unsigned long long Uint64;
153 // Here are RVCT 2.0's definitions for stdarg.h
154 // These should be used by e.g. stdlib
156 // see if we're using the BETA B compiler
157 #if (__ARMCC_VERSION == 200022)
164 #endif /* __cplusplus */
170 typedef int *va_list[1];
175 typedef struct __va_list { void *__ap; } va_list;
180 } /* namespace std */
182 using ::std::va_list;
188 #define va_start(ap, parmN) __va_start(ap, parmN)
193 #define va_arg(ap, type) __va_arg(ap, type)
198 #define va_end(ap) ((void)0)
200 // These are for Symbian OS C++ code
205 #define VA_START(ap,pn) va_start(ap, pn)
211 #define VA_ARG(ap,type) va_arg(ap,type)
217 #define VA_END(ap) va_end(ap)
223 #define VA_LIST va_list
228 #define __VA_LIST_defined
229 // This should prevent /stdlib/linc/stdarg.h from doing damage.
232 // now deal with stdarg_e.h
236 typedef va_list __e32_va_list;
243 // This is an EABI compliant compiler
252 // these are hopefully temporary
254 // defining this means we don't get __NAKED__ ctors
255 #ifndef __EABI_CTORS__
260 #define __EABI_CTORS__
263 //#define __EARLY_DEBUG__