os/kernelhwsrv/kernel/eka/compsupp/rvct2_0/rvct2_0.h
author sl@SLION-WIN7.fritz.box
Fri, 15 Jun 2012 03:10:57 +0200
changeset 0 bde4ae8d615e
permissions -rw-r--r--
First public contribution.
sl@0
     1
// Copyright (c) 2002-2009 Nokia Corporation and/or its subsidiary(-ies).
sl@0
     2
// All rights reserved.
sl@0
     3
// This component and the accompanying materials are made available
sl@0
     4
// under the terms of the License "ARM EABI LICENCE.txt"
sl@0
     5
// which accompanies this distribution, and is available
sl@0
     6
// in kernel/eka/compsupp.
sl@0
     7
//
sl@0
     8
// Initial Contributors:
sl@0
     9
// Nokia Corporation - initial contribution.
sl@0
    10
//
sl@0
    11
// Contributors:
sl@0
    12
//
sl@0
    13
// Description:
sl@0
    14
// e32\compsupp\rvct2_0\rvct2_0.h
sl@0
    15
// This is the preinclude file for the rvct 2.0 compiler
sl@0
    16
// It contains all the compiler specific definitions required by the SOS source
sl@0
    17
// 
sl@0
    18
//
sl@0
    19
sl@0
    20
sl@0
    21
#if defined(__PRODUCT_INCLUDE__)
sl@0
    22
#include __PRODUCT_INCLUDE__
sl@0
    23
#endif
sl@0
    24
sl@0
    25
sl@0
    26
// stuff from e32def.h
sl@0
    27
/**
sl@0
    28
@publishedAll
sl@0
    29
@released
sl@0
    30
*/
sl@0
    31
#define __NO_CLASS_CONSTS__
sl@0
    32
sl@0
    33
/**
sl@0
    34
@publishedAll
sl@0
    35
@released
sl@0
    36
*/
sl@0
    37
#define __NORETURN__
sl@0
    38
sl@0
    39
/**
sl@0
    40
@publishedAll
sl@0
    41
@released
sl@0
    42
*/
sl@0
    43
#define __NORETURN_TERMINATOR()
sl@0
    44
sl@0
    45
/**
sl@0
    46
@publishedAll
sl@0
    47
@released
sl@0
    48
*/
sl@0
    49
#define IMPORT_C __declspec(dllimport) 
sl@0
    50
sl@0
    51
/**
sl@0
    52
@publishedAll
sl@0
    53
@released
sl@0
    54
*/
sl@0
    55
#define EXPORT_C __declspec(dllexport)
sl@0
    56
sl@0
    57
/**
sl@0
    58
@publishedAll
sl@0
    59
@released
sl@0
    60
*/
sl@0
    61
#define IMPORT_VT __declspec(dllimport) 
sl@0
    62
sl@0
    63
/**
sl@0
    64
@publishedAll
sl@0
    65
@released
sl@0
    66
*/
sl@0
    67
#define __NO_THROW throw ()
sl@0
    68
sl@0
    69
/**
sl@0
    70
@publishedAll
sl@0
    71
@released
sl@0
    72
*/
sl@0
    73
#define __THROW(t) throw (t)
sl@0
    74
sl@0
    75
/**
sl@0
    76
@publishedAll
sl@0
    77
@released
sl@0
    78
*/
sl@0
    79
#define TEMPLATE_SPECIALIZATION template<>
sl@0
    80
sl@0
    81
#ifndef __int64
sl@0
    82
/**
sl@0
    83
@internalComponent
sl@0
    84
*/
sl@0
    85
#define __int64  long long
sl@0
    86
#endif
sl@0
    87
sl@0
    88
/**
sl@0
    89
@internalComponent
sl@0
    90
*/
sl@0
    91
#define __VALUE_IN_REGS__ __value_in_regs
sl@0
    92
sl@0
    93
/**
sl@0
    94
@publishedAll
sl@0
    95
@released
sl@0
    96
*/
sl@0
    97
#define	I64LIT(x)	x##LL
sl@0
    98
sl@0
    99
/**
sl@0
   100
@publishedAll
sl@0
   101
@released
sl@0
   102
*/
sl@0
   103
#define	UI64LIT(x)	x##ULL
sl@0
   104
sl@0
   105
// __TText from e32cmn.h also e32des16.h
sl@0
   106
#ifdef __cplusplus
sl@0
   107
/**
sl@0
   108
@internalComponent
sl@0
   109
*/
sl@0
   110
typedef wchar_t __TText;	// Only ISO C++ has wchar_t as a primitive type
sl@0
   111
sl@0
   112
/**
sl@0
   113
@internalComponent
sl@0
   114
*/
sl@0
   115
#define __wchar_t_defined
sl@0
   116
#else
sl@0
   117
/**
sl@0
   118
@internalComponent
sl@0
   119
*/
sl@0
   120
typedef unsigned short __TText;	
sl@0
   121
#endif
sl@0
   122
sl@0
   123
/**
sl@0
   124
@internalComponent
sl@0
   125
*/
sl@0
   126
#define __TText_defined
sl@0
   127
sl@0
   128
// __NAKED__ from cpudefs.h
sl@0
   129
/**
sl@0
   130
@publishedAll
sl@0
   131
@released
sl@0
   132
*/
sl@0
   133
#define __NAKED__ __asm
sl@0
   134
sl@0
   135
/**
sl@0
   136
@internalComponent
sl@0
   137
*/
sl@0
   138
#define ____ONLY_USE_NAKED_IN_CIA____ __asm
sl@0
   139
sl@0
   140
// Int64 and Uint64 from nkern\nklib.h
sl@0
   141
/**
sl@0
   142
@publishedAll
sl@0
   143
@released
sl@0
   144
*/
sl@0
   145
typedef long long Int64;
sl@0
   146
sl@0
   147
/**
sl@0
   148
@publishedAll
sl@0
   149
@released
sl@0
   150
*/
sl@0
   151
typedef unsigned long long Uint64;
sl@0
   152
sl@0
   153
// Here are RVCT 2.0's definitions for stdarg.h
sl@0
   154
// These should be used by e.g. stdlib
sl@0
   155
sl@0
   156
// see if we're using the BETA B compiler
sl@0
   157
#if (__ARMCC_VERSION == 200022)
sl@0
   158
#define RVCTBETA
sl@0
   159
#endif
sl@0
   160
sl@0
   161
#ifdef __cplusplus
sl@0
   162
    namespace std {
sl@0
   163
        extern "C" {
sl@0
   164
#endif  /* __cplusplus */
sl@0
   165
sl@0
   166
#ifdef RVCTBETA
sl@0
   167
/**
sl@0
   168
@internalComponent
sl@0
   169
*/
sl@0
   170
	  typedef int *va_list[1];
sl@0
   171
#else
sl@0
   172
/**
sl@0
   173
@internalComponent
sl@0
   174
*/
sl@0
   175
	  typedef struct __va_list { void *__ap; } va_list;
sl@0
   176
#endif
sl@0
   177
sl@0
   178
#ifdef __cplusplus
sl@0
   179
	}  /* extern "C" */
sl@0
   180
    }  /* namespace std */
sl@0
   181
sl@0
   182
    using ::std::va_list;
sl@0
   183
#endif
sl@0
   184
sl@0
   185
/**
sl@0
   186
@internalComponent
sl@0
   187
*/
sl@0
   188
#define va_start(ap, parmN) __va_start(ap, parmN)
sl@0
   189
sl@0
   190
/**
sl@0
   191
@internalComponent
sl@0
   192
*/
sl@0
   193
#define va_arg(ap, type) __va_arg(ap, type)
sl@0
   194
sl@0
   195
/**
sl@0
   196
@internalComponent
sl@0
   197
*/
sl@0
   198
#define va_end(ap) ((void)0)
sl@0
   199
sl@0
   200
// These are for Symbian OS C++ code
sl@0
   201
/**
sl@0
   202
@publishedAll
sl@0
   203
@released
sl@0
   204
*/
sl@0
   205
#define VA_START(ap,pn) va_start(ap, pn)
sl@0
   206
sl@0
   207
/**
sl@0
   208
@publishedAll
sl@0
   209
@released
sl@0
   210
*/
sl@0
   211
#define VA_ARG(ap,type) va_arg(ap,type)
sl@0
   212
sl@0
   213
/**
sl@0
   214
@publishedAll
sl@0
   215
@released
sl@0
   216
*/
sl@0
   217
#define VA_END(ap)      va_end(ap)
sl@0
   218
sl@0
   219
/**
sl@0
   220
@publishedAll
sl@0
   221
@released
sl@0
   222
*/
sl@0
   223
#define VA_LIST va_list
sl@0
   224
sl@0
   225
/**
sl@0
   226
@internalComponent
sl@0
   227
*/
sl@0
   228
#define __VA_LIST_defined
sl@0
   229
// This should prevent /stdlib/linc/stdarg.h from doing damage.
sl@0
   230
#define _STDARG_H
sl@0
   231
sl@0
   232
// now deal with stdarg_e.h
sl@0
   233
/**
sl@0
   234
@internalComponent
sl@0
   235
*/
sl@0
   236
typedef va_list __e32_va_list;
sl@0
   237
sl@0
   238
/**
sl@0
   239
@internalComponent
sl@0
   240
*/
sl@0
   241
#define _STDARG_E_H
sl@0
   242
sl@0
   243
// This is an EABI compliant compiler
sl@0
   244
#ifndef __EABI__
sl@0
   245
/**
sl@0
   246
@publishedAll
sl@0
   247
@released
sl@0
   248
*/
sl@0
   249
#define __EABI__
sl@0
   250
#endif
sl@0
   251
sl@0
   252
// these are hopefully temporary
sl@0
   253
sl@0
   254
// defining this means we don't get __NAKED__ ctors
sl@0
   255
#ifndef __EABI_CTORS__
sl@0
   256
/**
sl@0
   257
@publishedAll
sl@0
   258
@released
sl@0
   259
*/
sl@0
   260
#define __EABI_CTORS__
sl@0
   261
#endif
sl@0
   262
sl@0
   263
//#define __EARLY_DEBUG__
sl@0
   264