sbsv2/raptor/test/smoke_suite/test_resources/long/paths/e32def.h
author Mike Kinghan <mikek@symbian.org>
Wed, 06 Oct 2010 15:13:17 +0100
changeset 28 b8fa7dfeeaa1
parent 13 c327db0664bb
permissions -rw-r--r--
Update Raptor to v2.15.2
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
13
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
     1
/*
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
     2
* Copyright (c) 1994-2009 Nokia Corporation and/or its subsidiary(-ies).
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
     3
* All rights reserved.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
     4
* This component and the accompanying materials are made available
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
     5
* under the terms of the License "Eclipse Public License v1.0"
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
     6
* which accompanies this distribution, and is available
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
     8
*
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
     9
* Initial Contributors:
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    11
*
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    12
* Contributors:
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    13
*
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    14
* Description: 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    15
* e32\include\e32def.h
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    16
* NOTE: THIS FILE SHOULD BE ACCEPTABLE TO A C COMPILER
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    17
*
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    18
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    19
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    20
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    21
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    22
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    23
#ifndef __E32DEF_H__
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    24
#define __E32DEF_H__
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    25
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    26
/*
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    27
 * __LEAVE_EQUALS_THROW__ requires the compiler to support C++ exceptions
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    28
 */
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    29
#ifndef __SUPPORT_CPP_EXCEPTIONS__
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    30
#undef __LEAVE_EQUALS_THROW__
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    31
#endif
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    32
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    33
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    34
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    35
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    36
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    37
#ifdef __PROFILING__
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    38
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    39
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    40
@publishedPartner
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    41
@removed
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    42
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    43
#define __PROFILE_START(aBin) RDebug::ProfileStart(aBin)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    44
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    45
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    46
@publishedPartner
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    47
@removed
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    48
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    49
#define __PROFILE_END(aBin)   RDebug::ProfileEnd(aBin)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    50
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    51
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    52
@publishedPartner
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    53
@removed
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    54
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    55
#define __PROFILE_RESET(aNumberOfBins) RDebug::ProfileReset(0,aNumberOfBins)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    56
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    57
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    58
@publishedPartner
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    59
@removed
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    60
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    61
#define __PROFILE_DISPLAY(aNumberOfBins) \
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    62
			{	TFixedArray<TProfile, aNumberOfBins> result; \
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    63
				RDebug::ProfileResult(result.Begin(), 0, aNumberOfBins); \
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    64
				for (TInt i=0; i<aNumberOfBins; i++)   \
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    65
				RDebug::Print(_L("Profile bin %d:  Calls: %d, Clock ticks: %d\n" ),i,res[i].iCount,result[i].iTime);  \
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    66
			}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    67
#else /* __PROFILING__ */
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    68
#define __PROFILE_START(aBin) 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    69
#define __PROFILE_END(aBin)   
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    70
#define __PROFILE_RESET(aNumberOfBins) 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    71
#define __PROFILE_DISPLAY(aNumberOfBins)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    72
#endif
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    73
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    74
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    75
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    76
#if defined(__VC32__)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    77
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    78
@publishedAll
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    79
@released
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    80
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    81
#define __NO_CLASS_CONSTS__
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    82
#if (_MSC_VER >= 1200)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    83
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    84
@publishedAll
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    85
@released
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    86
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    87
#define __NORETURN__ __declspec(noreturn)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    88
#else
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    89
#define __NORETURN__
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    90
#endif
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    91
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    92
@publishedAll
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    93
@released
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    94
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    95
#define __NORETURN_TERMINATOR()
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    96
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    97
@publishedAll
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    98
@released
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
    99
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   100
#define IMPORT_C __declspec(dllexport)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   101
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   102
@publishedAll
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   103
@released
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   104
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   105
#define EXPORT_C __declspec(dllexport)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   106
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   107
@publishedAll
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   108
@released
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   109
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   110
#define NONSHARABLE_CLASS(x) class x
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   111
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   112
@publishedAll
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   113
@released
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   114
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   115
#define NONSHARABLE_STRUCT(x) struct x
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   116
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   117
@publishedAll
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   118
@released
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   119
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   120
#define __NO_THROW throw()
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   121
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   122
@publishedAll
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   123
@released
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   124
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   125
#define __THROW(t) throw(t)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   126
#pragma warning( disable : 4355 )	/* 'this' used in base member initializer list */
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   127
#pragma warning( disable : 4511 )	/* copy constructor could not be generated */
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   128
#pragma warning( disable : 4512 )	/* assignment operator could not be generated */
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   129
#pragma warning( disable : 4514 )	/* unreferenced inline function has been removed */
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   130
#pragma warning( disable : 4699 )	/* Note: Using precompiled header %s */
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   131
#pragma warning( disable : 4710 )	/* function not inlined */
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   132
#pragma warning( disable : 4121 )	/* alignment sensitive to packing */
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   133
#pragma warning( disable : 4273 )
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   134
#pragma warning( disable : 4097 )	/* typedef-name 'identifier1' used as synonym for class-name 'identifier2' */
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   135
#pragma warning( disable : 4291 )	/* 'TAny *CBase::operator new(TUint,TLeave)' : no matching operator delete found; memory will not be freed if initialization throws an exception */
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   136
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   137
#if _MSC_VER  >= 1100
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   138
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   139
@publishedAll
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   140
@released
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   141
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   142
#define TEMPLATE_SPECIALIZATION template<>
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   143
#else
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   144
#define TEMPLATE_SPECIALIZATION
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   145
#endif
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   146
#endif
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   147
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   148
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   149
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   150
#if defined(__CW32__)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   151
#undef __embedded_cplusplus
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   152
/** @internalTechnology */
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   153
#define __embedded_cplusplus	1
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   154
#define __NO_CLASS_CONSTS__
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   155
#define __NORETURN__
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   156
#define __NORETURN_TERMINATOR()
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   157
#define IMPORT_C __declspec(dllexport)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   158
#define EXPORT_C __declspec(dllexport)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   159
#define NONSHARABLE_CLASS(x) class x
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   160
#define NONSHARABLE_STRUCT(x) struct x
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   161
#define __NO_THROW throw()
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   162
#define __THROW(t) throw(t)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   163
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   164
#define TEMPLATE_SPECIALIZATION template<>
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   165
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   166
@publishedAll
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   167
@released
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   168
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   169
#define _asm	asm
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   170
#ifndef __int64
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   171
#pragma longlong on
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   172
/** @internalTechnology */
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   173
#define __int64  long long
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   174
#endif
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   175
#ifndef __SUPPORT_CPP_EXCEPTIONS__
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   176
#pragma exceptions off    /* no support for C++ exception handling */
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   177
#pragma RTTI off          /* no support for C++ runtime type information */
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   178
#endif
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   179
#if __MWERKS__ >= 0x3200
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   180
#pragma warning off (10480)	/* deleteing void pointer is undefined */
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   181
#pragma warning off (10350) /* N pad byte(s) inserted after data member */
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   182
#endif
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   183
#endif
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   184
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   185
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   186
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   187
#if defined(__GCC32__)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   188
#define __NO_CLASS_CONSTS__
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   189
#define __NORETURN__  __attribute__ ((noreturn))
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   190
#ifdef __GCCV3__
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   191
#define __NORETURN_TERMINATOR()
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   192
#else
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   193
#define __NORETURN_TERMINATOR()		abort()
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   194
#endif
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   195
#define IMPORT_C
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   196
#if !defined __WINS__ && defined _WIN32 /* VC++ Browser Hack */
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   197
#define EXPORT_C
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   198
/** @internalTechnology */
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   199
#define asm(x)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   200
#else
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   201
#define EXPORT_C __declspec(dllexport)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   202
#endif
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   203
#define NONSHARABLE_CLASS(x) class x
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   204
#define NONSHARABLE_STRUCT(x) struct x
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   205
#define __NO_THROW
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   206
#define __THROW(t)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   207
#ifdef __EABI__
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   208
#define TEMPLATE_SPECIALIZATION template<>
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   209
#else
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   210
#define TEMPLATE_SPECIALIZATION
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   211
#endif
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   212
#endif
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   213
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   214
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   215
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   216
#ifdef __GCC32__
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   217
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   218
@publishedAll
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   219
@released
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   220
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   221
#define __DOUBLE_WORDS_SWAPPED__
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   222
#endif
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   223
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   224
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   225
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   226
/** @internalTechnology */
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   227
#define __NO_MUTABLE_KEYWORD
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   228
#if defined(__NO_MUTABLE_KEYWORD)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   229
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   230
@publishedAll
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   231
@deprecated
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   232
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   233
#define __MUTABLE
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   234
#else
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   235
#define __MUTABLE mutable
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   236
#endif
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   237
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   238
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   239
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   240
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   241
@publishedAll
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   242
@deprecated
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   243
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   244
#define CONST_CAST(type,exp) (const_cast<type>(exp))
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   245
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   246
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   247
@publishedAll
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   248
@deprecated
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   249
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   250
#define STATIC_CAST(type,exp) (static_cast<type>(exp))
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   251
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   252
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   253
@publishedAll
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   254
@deprecated
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   255
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   256
#define REINTERPRET_CAST(type,exp) (reinterpret_cast<type>(exp))
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   257
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   258
#if defined(__NO_MUTABLE_KEYWORD)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   259
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   260
@publishedAll
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   261
@deprecated
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   262
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   263
#define MUTABLE_CAST(type,exp) (const_cast<type>(exp))
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   264
#else
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   265
#define MUTABLE_CAST(type,exp) (exp)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   266
#endif
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   267
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   268
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   269
@publishedAll
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   270
@deprecated
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   271
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   272
#define GLREF_D extern
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   273
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   274
@publishedAll
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   275
@deprecated
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   276
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   277
#define GLDEF_D
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   278
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   279
@publishedAll
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   280
@deprecated
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   281
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   282
#define LOCAL_D static
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   283
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   284
@publishedAll
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   285
@deprecated
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   286
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   287
#define GLREF_C extern
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   288
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   289
@publishedAll
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   290
@deprecated
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   291
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   292
#define GLDEF_C
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   293
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   294
@publishedAll
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   295
@deprecated
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   296
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   297
#define LOCAL_C static
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   298
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   299
@publishedAll
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   300
@deprecated
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   301
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   302
#define FOREVER for(;;)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   303
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   304
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   305
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   306
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   307
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   308
@publishedAll
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   309
@released
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   310
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   311
Symbolic definition for a true value.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   312
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   313
#define TRUE 1
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   314
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   315
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   316
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   317
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   318
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   319
@publishedAll
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   320
@released
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   321
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   322
Symbolic definition for a false value.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   323
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   324
#define FALSE 0
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   325
#ifndef NULL
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   326
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   327
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   328
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   329
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   330
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   331
@publishedAll
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   332
@released
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   333
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   334
Symbolic definition for a NULL value.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   335
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   336
#define NULL 0
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   337
#endif
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   338
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   339
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   340
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   341
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   342
#ifndef VA_START
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   343
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   344
@publishedAll
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   345
@released
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   346
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   347
A macro used by Symbian OS code for handling a variable argument list
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   348
in a function call.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   349
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   350
Sets a pointer to point to the first of the variable arguments.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   351
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   352
Typical usage:
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   353
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   354
@code
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   355
Foo(CAbcdef aAbcdef,...)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   356
   {
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   357
   VA_LIST list;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   358
   VA_START(list, aAbcdef);
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   359
   // other code
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   360
   } 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   361
@endcode
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   362
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   363
@param ap   A pointer used to hold the address of an argument in
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   364
            the variable argument list. After execution of the code generated 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   365
            by this macro, the pointer points to the first argument in
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   366
            the variable argument list.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   367
            This symbol is usually declared as a VA_LIST type. 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   368
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   369
@param pn   The argument that immediately precedes the variable argument list.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   370
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   371
@see VA_LIST
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   372
@see VA_ARG
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   373
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   374
#define VA_START(ap,pn) ((ap)[0]=(TInt8 *)&pn+((sizeof(pn)+sizeof(TInt)-1)&~(sizeof(TInt)-1)),(void)0)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   375
#endif
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   376
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   377
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   378
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   379
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   380
#ifndef VA_ARG
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   381
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   382
@publishedAll
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   383
@released
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   384
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   385
A macro used by Symbian OS code for handling a variable argument list
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   386
in a function call.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   387
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   388
Increments a pointer to a variable argument list to point to the next argument
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   389
in the list. The current argument is assumed to be of a type defined by
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   390
the second parameter to this macro.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   391
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   392
Typical usage:
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   393
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   394
@code
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   395
Foo(CAbcdef aAbcdef,...)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   396
   {
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   397
   VA_LIST list;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   398
   VA_START(list, aAbcdef);
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   399
   ...
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   400
   TInt x = VA_ARG(list,TInt);
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   401
   ...
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   402
   const TDesC *pS=VA_ARG(aList,const TDesC*);
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   403
   ... 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   404
   etc
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   405
   } 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   406
@endcode
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   407
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   408
@param ap   A pointer used to hold the address of an argument in
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   409
            the variable argument list. It is assumed to point to the current
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   410
            argument in the variable argument list. After execution of the code
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   411
            generated by this macro, the pointer points to the next argument in
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   412
            the list. This symbol is usually declared as a VA_LIST type. 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   413
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   414
@param type The type of the current argument.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   415
            This can be any valid type, for example, TInt, const TDesC*, etc.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   416
            
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   417
@see VA_LIST
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   418
@see VA_START            
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   419
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   420
#define VA_ARG(ap,type) ((ap)[0]+=((sizeof(type)+sizeof(TInt)-1)&~(sizeof(TInt)-1)),(*(type *)((ap)[0]-((sizeof(type)+sizeof(TInt)-1)&~(sizeof(TInt)-1)))))
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   421
#endif
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   422
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   423
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   424
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   425
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   426
#ifndef VA_END
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   427
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   428
@publishedAll
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   429
@released
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   430
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   431
A macro used by Symbian OS code for handling a variable argument list
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   432
in a function call.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   433
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   434
Sets a pointer to zero.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   435
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   436
@param ap   A pointer used to hold the address of an argument in
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   437
            the variable argument list. After execution of the code generated 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   438
            by this macro, the pointer is reset to 0.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   439
            This symbol is usually declared as a VA_LIST type. 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   440
            
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   441
@see VA_LIST
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   442
@see VA_START
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   443
@see VA_ARG            
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   444
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   445
#define VA_END(ap) ((ap)[0]=0,(void)0)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   446
#endif
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   447
	
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   448
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   449
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   450
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   451
@publishedAll
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   452
@released
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   453
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   454
Calculates the offset of member f within class c.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   455
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   456
This is used in the TSglQue and TDblQue constructors to set the offset of
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   457
the link object from the start of a list element.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   458
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   459
@param c The name of the class.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   460
@param f The name of the member within the specified class.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   461
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   462
@see TSglQue
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   463
@see TDblQue
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   464
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   465
#ifndef _FOFF
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   466
#define _FOFF(c,f)			(((TInt)&(((c *)0x1000)->f))-0x1000)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   467
#endif
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   468
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   469
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   470
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   471
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   472
@internalTechnology
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   473
@released
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   474
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   475
#define _ALIGN_DOWN(x,a)	((x)&~((a)-1))
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   476
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   477
@internalTechnology
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   478
@released
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   479
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   480
#define _ALIGN_UP(x,a)		_ALIGN_DOWN((x)+(a)-1, a)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   481
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   482
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   483
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   484
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   485
/** 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   486
@publishedAll
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   487
@released
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   488
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   489
Pointer to any type.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   490
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   491
TAny* is equivalent to void* in standard C or C++. TAny* is used in preference 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   492
to void* because it is more suggestive of the actual meaning,
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   493
e.g. TAny* foo();.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   494
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   495
TAny is not used where it really means "nothing", as in the declaration of 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   496
functions which do not return a value; void is used instead, e.g. void Foo();.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   497
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   498
typedef void TAny;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   499
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   500
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   501
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   502
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   503
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   504
@publishedAll
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   505
@released
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   506
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   507
8-bit signed integer type, used in Symbian OS to mean an 8-bit
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   508
signed integer, independent of the implementation.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   509
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   510
typedef signed char TInt8;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   511
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   512
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   513
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   514
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   515
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   516
@publishedAll
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   517
@released
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   518
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   519
8-bit unsigned integer type; used in Symbian OS to mean an 8-bit
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   520
unsigned integer, independent of the implementation.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   521
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   522
typedef unsigned char TUint8;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   523
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   524
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   525
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   526
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   527
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   528
@publishedAll
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   529
@released
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   530
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   531
16-bit signed integer type, used in Symbian OS to mean a 16-bit
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   532
signed integer, independent of the implementation.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   533
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   534
typedef short int TInt16;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   535
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   536
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   537
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   538
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   539
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   540
@publishedAll
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   541
@released
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   542
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   543
16-bit unsigned integer type. used in Symbian OS to mean a 16-bit
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   544
unsigned integer, independent of the implementation.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   545
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   546
typedef unsigned short int TUint16;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   547
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   548
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   549
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   550
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   551
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   552
@publishedAll
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   553
@released
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   554
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   555
32-bit signed integer type, used in Symbian OS to mean a 32-bit
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   556
signed integer, independent of the implementation.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   557
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   558
typedef long int TInt32;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   559
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   560
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   561
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   562
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   563
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   564
@publishedAll
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   565
@released
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   566
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   567
32-bit unsigned integer type; used in Symbian OS to mean a 32-bit
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   568
unsigned integer, independent of the implementation.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   569
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   570
typedef unsigned long int TUint32;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   571
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   572
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   573
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   574
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   575
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   576
@publishedAll
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   577
@released
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   578
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   579
Signed integer type of the natural machine word length.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   580
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   581
This is as defined by the C++ implementation's int type. In all
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   582
implementations, this is guaranteed to be at least 32 bits.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   583
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   584
A TInt should be used in preference to a sized integer (TInt32, TInt16) for 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   585
all general use. Sized integers should only be used when packing is essential. 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   586
C++'s type conversion rules imply that all sized integers smaller than the 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   587
natural machine word are in any case broadened to the natural machine word 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   588
size when passed as function parameters.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   589
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   590
A TInt should be used in preference to an unsigned integer (TUint) for all 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   591
general use. Unsigned integers should only be used for flags (which use Boolean 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   592
operations but not arithmetic) and, in very rare cases, for numbers whose 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   593
range exceeds that available from signed integers. Although it is natural 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   594
to attempt to use unsigned integers for quantities which cannot by nature 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   595
be negative, the C++ language does not provide the support necessary to enforce 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   596
the "expected" behaviour in these circumstances, and experience has shown 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   597
that it is better to use signed integers unless there is good reason not to.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   598
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   599
@see TUint
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   600
@see TInt32
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   601
@see TInt16
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   602
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   603
typedef signed int TInt;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   604
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   605
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   606
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   607
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   608
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   609
@publishedAll
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   610
@released
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   611
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   612
Unsigned integer type of the natural machine word length. 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   613
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   614
This is guaranteed to be at least 32 bits in all implementations.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   615
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   616
In almost all circumstances, a TInt should be used in preference to a TUint. 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   617
The main exception is in flags bytes.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   618
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   619
@see TInt
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   620
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   621
typedef unsigned int TUint;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   622
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   623
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   624
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   625
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   626
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   627
@publishedAll
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   628
@released
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   629
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   630
32-bit floating point number, providing IEEE754 single precision on all Symbian 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   631
OS implementations.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   632
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   633
TReal should normally be used in preference to TReal32.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   634
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   635
Use of floating-point numbers should generally be avoided unless a natural 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   636
part of the problem specification. Most Symbian OS implementations do not 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   637
have a hardware floating point unit: as a result, their floating-point performance 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   638
is hundreds of times slower than integer performance.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   639
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   640
typedef float TReal32;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   641
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   642
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   643
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   644
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   645
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   646
@publishedAll
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   647
@released
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   648
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   649
64-bit floating point number, providing IEEE754 double precision on all Symbian 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   650
OS implementations.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   651
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   652
Use of floating-point numbers should generally be avoided unless a natural 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   653
part of the problem specification. Most Symbian OS implementations do not 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   654
have a hardware floating point unit: as a result, their floating-point performance 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   655
is hundreds of times slower than integer performance.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   656
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   657
This type is identical to TReal.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   658
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   659
@see TReal
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   660
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   661
typedef double TReal64;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   662
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   663
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   664
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   665
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   666
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   667
@publishedAll
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   668
@released
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   669
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   670
64-bit floating point number; identical to TReal64.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   671
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   672
Use of floating-point numbers should generally be avoided unless a natural 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   673
part of the problem specification. Most Symbian OS implementations do not 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   674
have a hardware floating point unit: as a result, their floating-point performance 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   675
is hundreds of times slower than integer performance.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   676
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   677
Most serious floating-point calculations require double-precision. All standard 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   678
math functions (see Math class) take double-precision arguments. Single-precision 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   679
should only be used where space and performance are at a premium, and when 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   680
their limited precision is acceptable.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   681
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   682
@see TReal64
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   683
@see Math
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   684
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   685
typedef double TReal;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   686
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   687
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   688
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   689
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   690
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   691
@publishedAll
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   692
@released
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   693
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   694
8-bit unsigned character.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   695
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   696
Use instead of C++ built-in char type because it is guaranteed to be unsigned. 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   697
Use instead of TInt8 where the application is really for text rather than 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   698
8-bit arithmetic or binary quantities.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   699
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   700
For most purposes, you should use TText rather than TText8. TText is mapped 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   701
onto either TText8 or TText16 depending on whether a non-Unicode or Unicode 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   702
variant is being built. Use TText8 only when you are dealing explicitly with 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   703
8-bit text, regardless of build.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   704
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   705
@see TText */
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   706
typedef unsigned char TText8;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   707
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   708
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   709
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   710
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   711
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   712
@publishedAll
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   713
@released
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   714
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   715
16-bit unsigned character.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   716
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   717
Use instead of C++ wchar_t type because it is guaranteed to be unsigned. Use 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   718
instead of TInt16 where the application is really for text rather than 8-bit 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   719
arithmetic or binary quantities.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   720
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   721
For most purposes, you should use TText rather than TText16. TText is mapped 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   722
onto either TText8 or TText16 depending on whether a non-Unicode or Unicode 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   723
variant is being built. Use TText16 only when you are dealing explicitly with 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   724
16-bit text, regardless of build.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   725
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   726
@see TText
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   727
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   728
typedef unsigned short int TText16;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   729
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   730
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   731
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   732
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   733
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   734
@publishedAll
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   735
@released
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   736
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   737
Boolean type which takes the value either ETrue or EFalse.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   738
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   739
Although only a single bit would theoretically be necessary to represent a 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   740
Boolean, a machine word is used instead, so that these quantities can be easily 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   741
passed. Also, TBool must map onto int because of C++'s interpretation of 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   742
operands in conditional expressions.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   743
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   744
On implementations of Symbian OS in which the compiler supports the ANSI-recommended 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   745
bool type, TBool will be typedef'ed to bool instead of int.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   746
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   747
typedef int TBool;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   748
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   749
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   750
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   751
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   752
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   753
@publishedPartner
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   754
@released
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   755
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   756
Defines a linear (virtual) address type.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   757
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   758
typedef TUint32 TLinAddr;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   759
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   760
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   761
@internalTechnology
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   762
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   763
A sorted list of all the code segments in ROM that contain an Exception Descriptor.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   764
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   765
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   766
typedef struct TRomExceptionSearchTable
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   767
	{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   768
	/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   769
	The number of entries in the following table.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   770
	*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   771
	TInt32 iNumEntries;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   772
	
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   773
	/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   774
	Address of the code segment of each TRomImageHeader that has an Exception Descriptor.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   775
	*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   776
	TLinAddr iEntries[1];
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   777
	} TRomExceptionSearchTable;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   778
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   779
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   780
@internalComponent
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   781
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   782
typedef struct TExceptionDescriptor 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   783
	{
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   784
	TLinAddr iExIdxBase;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   785
	TLinAddr iExIdxLimit;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   786
	TLinAddr iROSegmentBase;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   787
	TLinAddr iROSegmentLimit;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   788
	} TExceptionDescriptor;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   789
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   790
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   791
#if defined(__GCC32__)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   792
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   793
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   794
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   795
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   796
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   797
@publishedAll
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   798
@released
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   799
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   800
Defines a 64-bit signed integer type.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   801
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   802
typedef long long Int64;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   803
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   804
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   805
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   806
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   807
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   808
@publishedAll
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   809
@released
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   810
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   811
Defines a 64-bit unsigned integer type.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   812
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   813
typedef unsigned long long Uint64;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   814
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   815
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   816
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   817
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   818
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   819
@publishedAll
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   820
@released
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   821
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   822
#define	I64LIT(x)	x##LL
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   823
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   824
@publishedAll
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   825
@released
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   826
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   827
#define	UI64LIT(x)	x##ULL
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   828
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   829
#elif defined(__VC32__)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   830
typedef __int64 Int64;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   831
typedef unsigned __int64 Uint64;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   832
#define	I64LIT(x)	(__int64)##x
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   833
#define	UI64LIT(x)	(unsigned __int64)##x
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   834
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   835
#elif defined(__CW32__)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   836
#pragma longlong on
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   837
typedef long long Int64;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   838
typedef unsigned long long Uint64;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   839
#define	I64LIT(x)	x##LL
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   840
#define	UI64LIT(x)	x##ULL
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   841
#endif
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   842
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   843
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   844
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   845
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   846
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   847
@publishedAll
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   848
@released
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   849
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   850
Defines a 64-bit signed integer type.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   851
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   852
NOTE: For those migrating from versions of Symbian OS before 8.1b (i.e. 8.1a, 7.0s etc)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   853
TInt64 is now defined as a built-in type instead of as a class type. This means
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   854
that the member functions of the old TInt64 class are no longer exported
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   855
from EUSER.LIB, and represents a compatibility break.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   856
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   857
To ease migration of source code, a number of macros are provided. Similar
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   858
macros have also been defined in Symbian OS versions 7.0s and 8.1a, but
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   859
implemented in terms of the old TInt64 class. This is important for code that
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   860
is common to : one or both of these Symbian OS versions, and to 8.1b and
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   861
subsequent versions.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   862
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   863
The following list shows the new macros and the functions that they replace.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   864
It also shows some alternative techniques.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   865
In this list: x, v and r are declared as TInt64, c is declared as TInt, High
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   866
and Low are declared as TUint.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   867
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   868
@code
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   869
OLD USAGE						REPLACEMENT
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   870
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   871
TInt64(High,Low);				MAKE_TINT64(High,Low);
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   872
x.Set(High,Low);				MAKE_TINT64(High,Low);
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   873
x.Low();						I64LOW(x);
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   874
x.High();						I64HIGH(x); 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   875
x.GetTInt();					I64INT(x); 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   876
x.GetTReal();					I64REAL(x); 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   877
x.Lsr(c);						I64LSR(x,c); 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   878
x.Mul10();						x*=10; 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   879
x.MulTop(a);					I64MULTOP(x,a); 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   880
x.DivMod(v,r);					r=x%v; x/=v;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   881
@endcode 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   882
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   883
typedef	Int64	TInt64;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   884
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   885
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   886
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   887
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   888
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   889
@publishedAll
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   890
@released
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   891
 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   892
Defines a 64-bit unsigned integer type.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   893
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   894
typedef	Uint64	TUint64;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   895
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   896
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   897
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   898
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   899
/** @internalComponent */
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   900
#define _MAKE_TINT64_ZX(x)	((TInt64)((TUint32)(x)))
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   901
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   902
/** @internalComponent */
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   903
#define _MAKE_TUINT64_ZX(x)	((TUint64)((TUint32)(x)))
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   904
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   905
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   906
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   907
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   908
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   909
@publishedAll
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   910
@released
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   911
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   912
#define MAKE_TINT64(h,l)	( (_MAKE_TINT64_ZX(h)<<32) | _MAKE_TINT64_ZX(l) )
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   913
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   914
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   915
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   916
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   917
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   918
@publishedAll
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   919
@released
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   920
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   921
#define MAKE_TUINT64(h,l)	( (_MAKE_TUINT64_ZX(h)<<32) | _MAKE_TUINT64_ZX(l) )
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   922
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   923
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   924
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   925
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   926
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   927
@publishedAll
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   928
@released
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   929
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   930
Generates code to access the high order 32 bits of a 64 bit number.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   931
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   932
#define	I64HIGH(x)			( (TUint32)((x)>>32) )
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   933
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   934
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   935
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   936
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   937
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   938
@publishedAll
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   939
@released
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   940
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   941
Generates code to access the low order 32 bits of a 64 bit number.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   942
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   943
#define	I64LOW(x)			( (TUint32)(x) )
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   944
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   945
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   946
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   947
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   948
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   949
@publishedAll
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   950
@released
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   951
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   952
Generates code to cast a 64 bit value as an signed integer.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   953
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   954
#define	I64INT(x)			( (TInt)(x) )
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   955
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   956
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   957
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   958
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   959
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   960
@publishedAll
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   961
@released
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   962
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   963
Generates code to cast a 64 bit value as a TReal type.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   964
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   965
#define	I64REAL(x)			( (TReal)(x) )
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   966
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   967
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   968
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   969
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   970
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   971
@publishedAll
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   972
@released
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   973
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   974
Generates code to logically shift a 64 bit integer right.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   975
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   976
#define	I64LSR(x, shift)	( *reinterpret_cast<TUint64*>(&(x)) >>= (shift) )
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   977
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   978
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   979
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   980
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   981
@publishedAll
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   982
@released
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   983
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   984
Generates code to multiply a 64 bit integer by 10.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   985
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   986
#define	I64MUL10(x)			( (x) *= 10 )
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   987
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   988
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   989
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   990
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   991
@publishedAll
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   992
@released
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   993
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   994
Generates code to divide a 64 bit integer by another and find the remainder.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   995
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   996
#define	I64DIVMOD(x, divisor, remainder)	( ((remainder) = (x) % (divisor), (x) /= (divisor)) )
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   997
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   998
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
   999
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1000
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1001
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1002
@publishedAll
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1003
@released
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1004
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1005
Generates code to cast a double to a 64 bit integer.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1006
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1007
#define	I64DOUBLECAST(x)	( static_cast<TInt64>(x) )
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1008
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1009
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1010
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1011
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1012
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1013
@publishedAll
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1014
@deprecated Use _LIT8 instead.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1015
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1016
8-bit literal.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1017
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1018
The macro defines an explicit 8-bit constant literal which is suitable
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1019
for non-Unicode literal text, regardless of the build.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1020
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1021
@see _L
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1022
@see _LIT8
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1023
@see _LIT
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1024
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1025
#define _L8(a) (TPtrC8((const TText8 *)(a)))
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1026
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1027
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1028
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1029
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1030
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1031
@publishedAll
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1032
@released
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1033
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1034
Defines an explicit 8-bit string which is suitable when non-Unicode text
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1035
is required, regardless of the build.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1036
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1037
This is used by the deprecated literal descriptor _L8.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1038
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1039
#define _S8(a) ((const TText8 *)a)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1040
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1041
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1042
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1043
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1044
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1045
@publishedAll
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1046
@released
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1047
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1048
Constructs a constant literal descriptor of type TLitC8<TInt> with
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1049
the specified name and text.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1050
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1051
The 8-bit build variant is generated for both non-Unicode and Unicode builds.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1052
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1053
@param name The name of the C++ variable to be generated.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1054
@param s    The literal text enclosed within a pair of double quotes. 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1055
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1056
@see _LIT
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1057
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1058
#define _LIT8(name,s) const static TLitC8<sizeof(s)> name={sizeof(s)-1,s}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1059
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1060
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1061
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1062
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1063
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1064
@publishedAll
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1065
@deprecated Use _LIT16 instead.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1066
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1067
16-bit literal.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1068
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1069
The macro defines an explicit 16-bit constant literal which is suitable
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1070
for Unicode literal text, regardless of the build.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1071
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1072
@see _L
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1073
@see _LIT16
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1074
@see _LIT
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1075
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1076
#define _L16(a) (TPtrC16((const TText16 *)L ## a))
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1077
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1078
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1079
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1080
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1081
@publishedAll
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1082
@released
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1083
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1084
Defines an explicit 16-bit string which is suitable when Unicode text
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1085
is required, regardless of the build.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1086
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1087
This is used by the deprecated literal descriptor _L16.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1088
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1089
#define _S16(a) ((const TText16 *)L ## a)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1090
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1091
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1092
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1093
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1094
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1095
@publishedAll
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1096
@released
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1097
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1098
Constructs a constant literal descriptor of type TLitC16<TInt> with
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1099
the specified name and text.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1100
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1101
The 16-bit build variant is generated for both non-Unicode and Unicode builds.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1102
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1103
@param name The name of the C++ variable to be generated.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1104
@param s    The literal text enclosed within a pair of double quotes. 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1105
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1106
@see _LIT
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1107
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1108
#define _LIT16(name,s) const static TLitC16<sizeof(L##s)/2> name={sizeof(L##s)/2-1,L##s}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1109
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1110
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1111
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1112
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1113
#if defined(_UNICODE) && !defined(__KERNEL_MODE__)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1114
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1115
@publishedAll
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1116
@released
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1117
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1118
Build independent general text character.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1119
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1120
In non-Unicode builds, this is mapped to TText8. In Unicode builds, this is 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1121
mapped to TText16. Use the classes with explicit width only when you wish 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1122
the width to be independent of the build variant.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1123
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1124
Use this class rather than TChar for general use.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1125
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1126
typedef TText16 TText;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1127
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1128
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1129
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1130
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1131
@publishedAll
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1132
@deprecated Use _LIT instead.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1133
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1134
Build independent literal. 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1135
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1136
The macro defines either an 8-bit constant literal (for non-Unicode text),
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1137
or a 16-bit constant literal (for Unicode text) depending on the build.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1138
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1139
@see _LIT
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1140
@see _L16
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1141
@see _L8
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1142
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1143
#define _L(a) (TPtrC((const TText *)L ## a))
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1144
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1145
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1146
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1147
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1148
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1149
@publishedAll
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1150
@released
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1151
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1152
Defines either an 8-bit string (for non-Unicode text),
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1153
or a 16-bit string (for Unicode text) depending on the build.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1154
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1155
This is used by the deprecated build independent literal _L.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1156
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1157
#define _S(a) ((const TText *)L ## a)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1158
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1159
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1160
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1161
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1162
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1163
@publishedAll
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1164
@released
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1165
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1166
Constructs a build independent constant literal descriptor of type TLitC<TInt>
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1167
with the specified name and text.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1168
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1169
An 8-bit build variant is generated for a non-Unicode build;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1170
A 16-bit build variant is generated for a Unicode build.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1171
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1172
@param name The name of the C++ variable to be generated.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1173
@param s    The literal text enclosed within a pair of double quotes. 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1174
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1175
@see _LIT16
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1176
@see _LIT8
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1177
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1178
#define _LIT(name,s) const static TLitC<sizeof(L##s)/2> name={sizeof(L##s)/2-1,L##s}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1179
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1180
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1181
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1182
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1183
#else
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1184
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1185
@publishedAll
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1186
@released
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1187
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1188
Build independent general text character.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1189
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1190
In non-Unicode builds, this is mapped to TText8. In Unicode builds, this is 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1191
mapped to TText16. Use the classes with explicit width only when you wish 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1192
the width to be independent of the build variant.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1193
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1194
Use this class rather than TChar for general use.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1195
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1196
typedef TText8 TText;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1197
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1198
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1199
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1200
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1201
@publishedAll
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1202
@released
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1203
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1204
@deprecated Use _LIT instead.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1205
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1206
Build independent literal. 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1207
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1208
The macro defines either an 8-bit constant literal (for non-Unicode text),
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1209
or a 16-bit constant literal (for Unicode text) depending on the build.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1210
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1211
@see _LIT
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1212
@see _L16
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1213
@see _L8
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1214
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1215
#define _L(a) (TPtrC((const TText *)(a)))
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1216
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1217
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1218
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1219
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1220
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1221
@publishedAll
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1222
@released
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1223
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1224
Defines either an 8-bit string (for non-Unicode text),
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1225
or a 16-bit string (for Unicode text) depending on the build.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1226
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1227
This is used by the deprecated build independent literal _L.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1228
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1229
#define _S(a) ((const TText *)a)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1230
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1231
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1232
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1233
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1234
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1235
@publishedAll
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1236
@released
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1237
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1238
Constructs a build independent constant literal descriptor of type TLitC<TInt>
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1239
with the specified name and text.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1240
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1241
An 8-bit build variant is generated for a non-Unicode build;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1242
A 16-bit build variant is generated for a Unicode build.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1243
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1244
@param name The name of the C++ variable to be generated.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1245
@param s    The literal text enclosed within a pair of double quotes. 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1246
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1247
@see _LIT16
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1248
@see _LIT8
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1249
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1250
#define _LIT(name,s) const static TLitC<sizeof(s)> name={sizeof(s)-1,s}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1251
#endif
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1252
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1253
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1254
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1255
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1256
#ifndef __VA_LIST_defined
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1257
/** 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1258
@publishedAll
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1259
@released
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1260
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1261
Defines a 'C' style array of pointers to TInt8 types.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1262
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1263
The type is most commonly used by code that needs to deal with a variable
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1264
number of arguments passed to a function.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1265
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1266
@see TInt8
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1267
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1268
typedef TInt8 *VA_LIST[1];
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1269
#endif
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1270
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1271
/** 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1272
@publishedAll
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1273
@released
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1274
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1275
Asserts that a condition is true.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1276
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1277
Code is generated for all builds.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1278
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1279
This macro is used as a C++ statement to assert the truth of some condition,
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1280
and to take appropriate action if the condition is false. Unlike __ASSERT_DEBUG
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1281
it is defined in both release and debug builds.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1282
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1283
The most common use for this macro is to check that the external environment of
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1284
a function or class is behaving as expected; for example, that parameters
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1285
passed to a function are credible, or that called functions are behaving as
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1286
expected; the macro is commonly placed at the beginning of a function.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1287
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1288
The effect of the macro is to generate code which tests
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1289
the conditional expression c; if the expression is false, then
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1290
function p is called. In the majority of cases, the function p is one that
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1291
raises a panic.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1292
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1293
Note that the macro definition is, in effect, equivalent to: 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1294
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1295
@code
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1296
if !(c)p;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1297
@endcode
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1298
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1299
@param c a conditional expression which results in true or false.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1300
@param p a function which is called if the conditional expression c is false.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1301
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1302
@see __ASSERT_DEBUG
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1303
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1304
#define __ASSERT_ALWAYS(c,p) (void)((c)||(p,0))
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1305
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1306
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1307
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1308
#ifdef __WINS__
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1309
#ifdef __CW32__
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1310
/** 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1311
@internalAll
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1312
@released
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1313
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1314
#define __BREAKPOINT()			\
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1315
	{							\
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1316
	__asm { byte 0xcc };		\
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1317
	}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1318
#else // !__CW32__
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1319
/** 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1320
@internalAll
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1321
@released
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1322
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1323
#define __BREAKPOINT()			\
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1324
	{							\
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1325
	__asm { int 3 };			\
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1326
	}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1327
#endif //__CW32__
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1328
#else
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1329
/** 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1330
@internalAll
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1331
@released
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1332
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1333
#define __BREAKPOINT()
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1334
#endif
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1335
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1336
#if defined(_DEBUG)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1337
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1338
/** 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1339
@internalComponent
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1340
@deprecated
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1341
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1342
#define __ASSERT_DEBUG_MB(aCond,aPanicNo) (void)((aCond)||(PanicMB(aPanicNo,_L(#aPanicNo),_L(#aCond)),0))
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1343
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1344
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1345
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1346
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1347
/** 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1348
@publishedAll
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1349
@released
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1350
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1351
Asserts that a condition is true.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1352
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1353
Code is generated for debug builds only.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1354
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1355
This macro is used as a C++ statement to assert the truth of some condition,
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1356
and to take appropriate action if the condition is false. It is used in
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1357
the same way as __ASSERT_ALWAYS, except that it is only defined for debug builds.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1358
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1359
The macro may be used to insert extra checks at various points in source code
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1360
as desired; the code will only be generated in debug builds and not in release
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1361
builds.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1362
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1363
@param c A conditional expression which results in true or false.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1364
@param p A function which is called if the conditional expression c is false.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1365
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1366
@see __ASSERT_ALWAYS
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1367
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1368
#define __ASSERT_DEBUG(c,p) (void)((c)||(p,0))
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1369
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1370
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1371
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1372
/** 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1373
@internalAll
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1374
@removed
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1375
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1376
#define __DECLARE_NAME(t)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1377
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1378
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1379
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1380
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1381
/** 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1382
@publishedAll
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1383
@released
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1384
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1385
Calls the function for testing object invariance.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1386
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1387
Classes can define a standard member function __DbgTestInvariant(),
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1388
which checks that the object is in a valid state, and panics if it is not.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1389
In debug builds, this macro simply expands to call that function. For details on how
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1390
to define __DbgTestInvariant(), and an example of its use, see __DECLARE_TEST.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1391
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1392
The macro is typically invoked at the beginning of all the member functions of
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1393
the class. For non-const functions (those which can change the object’s state),
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1394
you can ensure that the object has been left in a stable state by invoking
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1395
the macro at the end of the function.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1396
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1397
In release builds, no code is generated for the macro. 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1398
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1399
#define __TEST_INVARIANT __DbgTestInvariant()
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1400
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1401
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1402
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1403
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1404
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1405
@publishedAll
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1406
@released
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1407
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1408
Marks the start of checking the current thread's heap. 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1409
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1410
This macro is defined only for debug builds.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1411
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1412
This macro must be matched by a corresponding call to __UHEAP_MARKEND or __UHEAP_MARKENDC.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1413
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1414
Calls to this macro can be nested but each call must be matched by corresponding 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1415
call to __UHEAP_MARKEND or __UHEAP_MARKENDC.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1416
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1417
@see User::__DbgMarkStart()
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1418
@see __UHEAP_MARKEND
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1419
@see __UHEAP_MARKENDC
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1420
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1421
#define __UHEAP_MARK User::__DbgMarkStart(FALSE)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1422
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1423
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1424
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1425
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1426
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1427
@publishedAll
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1428
@released
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1429
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1430
Checks that the number of allocated cells at the current nested level on the 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1431
current thread's heap is the same as the specified value.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1432
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1433
This macro is defined only for debug builds.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1434
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1435
The macro also takes the name of the file containing this source code statement 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1436
and the line number of this source code statement; they are displayed as part 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1437
of the panic category, if the checks fail.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1438
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1439
The macro assumes that:
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1440
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1441
1. the heap being checked is a user heap
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1442
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1443
2. checking is being done for the number of allocated cells at the current nested 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1444
   level; i.e. that aCountAll is set to false
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1445
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1446
3. the line number is the line number of this source code statement.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1447
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1448
4. the file name is the full path name of the file containing this source statement
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1449
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1450
@param aCount The number of heap cells expected to be allocated at
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1451
              the current nest level.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1452
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1453
@see User::__DbgMarkCheck()
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1454
@see __KHEAP_CHECK
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1455
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1456
#define __UHEAP_CHECK(aCount) User::__DbgMarkCheck(FALSE,FALSE,aCount,(TText8*)__FILE__,__LINE__)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1457
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1458
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1459
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1460
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1461
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1462
@publishedAll
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1463
@released
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1464
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1465
Checks that the total number of allocated cells on the current thread's heap 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1466
is the same as the specified value.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1467
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1468
This macro is defined only for debug builds.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1469
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1470
The macro also takes the name of the file containing this source code statement 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1471
and the line number of this source code statement; they are displayed as part 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1472
of the panic category, if the checks fail.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1473
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1474
@param aCount The total number of heap cells expected to be allocated.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1475
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1476
@see User::__DbgMarkCheck()
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1477
@see __KHEAP_CHECKALL
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1478
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1479
#define __UHEAP_CHECKALL(aCount) User::__DbgMarkCheck(FALSE,TRUE,aCount,(TText8*)__FILE__,__LINE__)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1480
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1481
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1482
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1483
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1484
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1485
@publishedAll
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1486
@released
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1487
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1488
Marks the end of checking the current thread's heap. 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1489
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1490
The macro expects zero heap cells to remain allocated at the current nest 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1491
level. This macro is defined only for debug builds.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1492
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1493
This macro must match an earlier call to __UHEAP_MARK.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1494
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1495
@see User::__DbgMarkEnd()
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1496
@see __UHEAP_MARK
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1497
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1498
#define __UHEAP_MARKEND User::__DbgMarkEnd(FALSE,0)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1499
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1500
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1501
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1502
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1503
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1504
@publishedAll
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1505
@released
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1506
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1507
Marks the end of checking the current thread's heap. 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1508
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1509
The macro expects aCount heap cells to remain allocated at the current nest 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1510
level.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1511
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1512
This macro must match an earlier call to __UHEAP_MARK.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1513
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1514
@param aCount The number of heap cells expected to remain allocated at
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1515
              the current nest level.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1516
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1517
@see User::__DbgMarkEnd()
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1518
@see __UHEAP_MARK
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1519
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1520
#define __UHEAP_MARKENDC(aCount) User::__DbgMarkEnd(FALSE,aCount)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1521
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1522
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1523
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1524
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1525
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1526
@publishedAll
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1527
@released
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1528
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1529
Simulates heap allocation failure for the current thread's heap.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1530
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1531
The failure occurs on the next call to new or any of the functions which 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1532
allocate memory from the heap. This macro is defined only for debug builds.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1533
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1534
@param aCount Determines when the allocation will fail.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1535
              Heap allocation fails on attempt number aCount - later
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1536
              allocations will succeed.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1537
              For example, if aCount is 3, then heap allocation fails
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1538
              on the 3rd attempt, but all subsequent allocations succeed. 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1539
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1540
@see User::__DbgSetAllocFail()
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1541
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1542
#define __UHEAP_FAILNEXT(aCount) User::__DbgSetAllocFail(FALSE,RAllocator::EFailNext,aCount)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1543
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1544
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1545
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1546
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1547
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1548
@publishedAll
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1549
@released
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1550
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1551
Simulates heap allocation failure for the current thread's heap. 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1552
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1553
The failure occurs on subsequent calls to new or any of the functions which 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1554
allocate memory from the heap. This macro is defined only for debug builds.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1555
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1556
@param aType  The type of failure to be simulated.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1557
@param aValue The failure rate.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1558
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1559
@see User::__DbgSetAllocFail()
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1560
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1561
#define __UHEAP_SETFAIL(aType,aValue) User::__DbgSetAllocFail(FALSE,aType,aValue)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1562
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1563
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1564
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1565
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1566
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1567
@publishedAll
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1568
@released
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1569
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1570
Cancels simulated heap allocation failure for the current thread's heap. 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1571
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1572
This macro is defined only for debug builds.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1573
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1574
@see User::__DbgSetAllocFail()
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1575
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1576
#define __UHEAP_RESET User::__DbgSetAllocFail(FALSE,RAllocator::ENone,1)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1577
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1578
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1579
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1580
@publishedAll
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1581
@released
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1582
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1583
Cancels simulated heap allocation failure for the current thread's heap. 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1584
It walks the the heap and sets the nesting level for all allocated
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1585
cells to zero.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1586
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1587
This macro is defined only for debug builds.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1588
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1589
#define __UHEAP_TOTAL_RESET User::__DbgSetAllocFail(FALSE,RAllocator::EReset,1)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1590
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1591
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1592
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1593
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1594
@publishedPartner
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1595
@released
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1596
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1597
Marks the start of Kernel heap checking. 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1598
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1599
Checking the Kernel heap is only useful when developing Kernel side code such 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1600
as device drivers and media drivers.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1601
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1602
This macro is defined only for debug builds.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1603
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1604
This macro must be matched by a corresponding call to __KHEAP_MARKEND or __KHEAP_MARKENDC. 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1605
Calls to this macro can be nested but each call must be matched by corresponding 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1606
call to __KHEAP_MARKEND or __KHEAP_MARKENDC.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1607
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1608
@see User::__DbgMarkStart()
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1609
@see __KHEAP_MARKEND
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1610
@see __KHEAP_MARKENDC
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1611
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1612
#define __KHEAP_MARK User::__DbgMarkStart(TRUE)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1613
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1614
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1615
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1616
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1617
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1618
@publishedPartner
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1619
@released
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1620
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1621
Checks that the number of allocated cells at the current nested level of the 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1622
Kernel heap is the same as the specified value. This macro is defined only 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1623
for debug builds. Checking the Kernel heap is only useful when developing 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1624
Kernel side code such as device drivers and media drivers.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1625
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1626
The macro also takes the name of the file containing this source code statement 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1627
and the line number of this source code statement; they are displayed as part 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1628
of the panic category, if the checks fail.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1629
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1630
@param aCount The number of heap cells expected to be allocated at
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1631
              the current nest level.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1632
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1633
@see User::__DbgMarkCheck()
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1634
@see __UHEAP_CHECK
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1635
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1636
#define __KHEAP_CHECK(aCount) User::__DbgMarkCheck(TRUE,FALSE,aCount,(TText8*)__FILE__,__LINE__)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1637
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1638
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1639
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1640
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1641
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1642
@publishedPartner
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1643
@released
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1644
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1645
Checks that the total number of allocated cells on the Kernel heap is the same 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1646
as the specified value.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1647
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1648
It is only useful when developing Kernel side code such as device drivers 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1649
and media drivers. 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1650
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1651
The macro also takes the name of the file containing this source code statement 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1652
and the line number of this source code statement; they are displayed as part 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1653
of the panic category, if the checks fail.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1654
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1655
This macro is defined only for debug builds.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1656
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1657
@param aCount The total number of heap cells expected to be allocated
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1658
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1659
@see User::__DbgMarkCheck()
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1660
@see __UHEAP_CHECKALL
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1661
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1662
#define __KHEAP_CHECKALL(aCount) User::__DbgMarkCheck(TRUE,TRUE,aCount,(TText8*)__FILE__,__LINE__)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1663
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1664
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1665
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1666
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1667
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1668
@publishedPartner
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1669
@released
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1670
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1671
Marks the end of Kernel heap checking. The macro expects zero heap cells to 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1672
remain allocated at the current nest level.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1673
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1674
This macro is defined only for debug builds. Checking the Kernel heap is only 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1675
useful when developing Kernel side code such as device drivers and media drivers.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1676
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1677
This macro must match an earlier call to __KHEAP_MARK.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1678
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1679
@see User::__DbgMarkEnd()
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1680
@see __KHEAP_MARK
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1681
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1682
#define __KHEAP_MARKEND User::__DbgMarkEnd(TRUE,0)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1683
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1684
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1685
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1686
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1687
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1688
@publishedPartner
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1689
@released
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1690
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1691
Marks the end of Kernel heap checking. The macro expects aCount heap cells 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1692
to remain allocated at the current nest level.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1693
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1694
This macro is defined only for debug builds.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1695
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1696
This macro must match an earlier call to __KHEAP_MARK.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1697
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1698
@param aCount The number of heap cells expected to remain allocated at
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1699
              the current nest level.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1700
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1701
@see User::__DbgMarkEnd()
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1702
@see __KHEAP_MARK
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1703
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1704
#define __KHEAP_MARKENDC(aCount) User::__DbgMarkEnd(TRUE,aCount)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1705
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1706
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1707
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1708
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1709
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1710
@publishedPartner
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1711
@released
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1712
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1713
Simulates Kernel heap allocation failure. The failure occurs on the next call 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1714
to new or any of the functions which allocate memory from the heap. This macro 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1715
is defined only for debug builds.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1716
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1717
Checking the Kernel heap is only useful when developing Kernel side code such 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1718
as device drivers and media drivers.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1719
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1720
@param aCount The rate of failure - heap allocation fails every aCount attempt.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1721
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1722
@see User::__DbgSetAllocFail()
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1723
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1724
#define __KHEAP_FAILNEXT(aCount) User::__DbgSetAllocFail(TRUE,RAllocator::EFailNext,aCount)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1725
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1726
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1727
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1728
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1729
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1730
@publishedPartner
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1731
@released
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1732
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1733
Simulates Kernel heap allocation failure. 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1734
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1735
The failure occurs on subsequent calls to new or any of the functions which 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1736
allocate memory from this heap.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1737
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1738
This macro is defined only for debug builds.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1739
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1740
@param aType  The type of failure to be simulated.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1741
@param aValue The failure rate.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1742
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1743
@see User::__DbgSetAllocFail()
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1744
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1745
#define __KHEAP_SETFAIL(aType,aValue) User::__DbgSetAllocFail(TRUE,aType,aValue)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1746
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1747
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1748
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1749
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1750
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1751
@publishedPartner
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1752
@released
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1753
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1754
Cancels simulated Kernel heap allocation failure. 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1755
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1756
Checking the Kernel heap is only useful when developing Kernel side code such 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1757
as device drivers and media drivers.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1758
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1759
This macro is defined only for debug builds.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1760
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1761
@see User::__DbgSetAllocFail()
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1762
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1763
#define __KHEAP_RESET User::__DbgSetAllocFail(TRUE,RAllocator::ENone,1)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1764
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1765
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1766
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1767
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1768
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1769
@publishedPartner
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1770
@released
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1771
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1772
Cancels simulated kernel heap allocation failure. 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1773
It walks the the heap and sets the nesting level for all allocated
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1774
cells to zero.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1775
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1776
Checking the kernel heap is only useful when developing kernel side code such 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1777
as device drivers and media drivers.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1778
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1779
This macro is defined only for debug builds.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1780
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1781
#define __KHEAP_TOTAL_RESET User::__DbgSetAllocFail(TRUE,RAllocator::EReset,1)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1782
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1783
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1784
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1785
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1786
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1787
@publishedAll
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1788
@released
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1789
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1790
Marks the start of heap checking for the specific heap. 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1791
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1792
This macro is defined only for debug builds.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1793
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1794
This macro must be matched by a corresponding call to __RHEAP_MARKEND or __RHEAP_MARKENDC.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1795
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1796
Calls to this macro can be nested but each call must be matched by corresponding 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1797
call to __RHEAP_MARKEND or __RHEAP_MARKENDC.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1798
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1799
@param aHeap A pointer to the specific RHeap
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1800
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1801
@see RHeap
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1802
@see RAllocator::__DbgMarkStart()
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1803
@see __RHEAP_MARKEND
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1804
@see __RHEAP_MARKENDC
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1805
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1806
#define __RHEAP_MARK(aHeap) (aHeap)->__DbgMarkStart()
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1807
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1808
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1809
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1810
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1811
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1812
@publishedAll
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1813
@released
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1814
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1815
Checks that the number of allocated cells at the current nested level on the 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1816
specified heap is the same as the specified value. 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1817
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1818
The macro also takes the name of the file containing this source code statement 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1819
and the line number of this source code statement; they are displayed as part 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1820
of the panic category, if the checks fail. 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1821
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1822
This macro is defined only for debug builds.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1823
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1824
@param aHeap  A pointer to the specific RHeap.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1825
@param aCount The number of heap cells expected to be allocated at
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1826
              the current nest level.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1827
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1828
@see RAllocator::__DbgMarkCheck()
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1829
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1830
#define __RHEAP_CHECK(aHeap,aCount) (aHeap)->__DbgMarkCheck(FALSE,aCount,(TText8*)__FILE__,__LINE__)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1831
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1832
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1833
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1834
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1835
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1836
@publishedAll
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1837
@released
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1838
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1839
Checks that the total number of allocated cells on the specified heap is the 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1840
same as the specified value.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1841
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1842
The macro also takes the name of the file containing this source code statement 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1843
and the line number of this source code statement; they are displayed as part 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1844
of the panic category, if the checks fail.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1845
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1846
This macro is defined only for debug builds.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1847
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1848
@param aHeap  A pointer to the specific RHeap.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1849
@param aCount The total number of heap cells expected to be allocated.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1850
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1851
@see RAllocator::__DbgMarkCheck()
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1852
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1853
#define __RHEAP_CHECKALL(aHeap,aCount) (aHeap)->__DbgMarkCheck(TRUE,aCount,(TText8*)__FILE__,__LINE__)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1854
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1855
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1856
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1857
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1858
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1859
@publishedAll
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1860
@released
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1861
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1862
Marks the end of heap checking for the specific heap.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1863
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1864
The macro expects zero heap cells to remain allocated at the current nest 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1865
level. This macro is defined only for debug builds.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1866
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1867
This macro must match an earlier call to __RHEAP_MARK.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1868
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1869
@param aHeap A pointer to the specific RHeap.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1870
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1871
@see RAllocator::__DbgMarkEnd()
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1872
@see __RHEAP_MARK
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1873
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1874
#define __RHEAP_MARKEND(aHeap) (aHeap)->__DbgMarkEnd(0)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1875
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1876
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1877
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1878
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1879
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1880
@publishedAll
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1881
@released
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1882
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1883
Marks the end of heap checking for the specific heap.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1884
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1885
The macro expects aCount heap cells to remain allocated at the current nest 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1886
level. This macro is defined only for debug builds.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1887
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1888
This macro must match an earlier call to __RHEAP_MARK.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1889
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1890
@param aHeap  A pointer to the specific RHeap.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1891
@param aCount The number of heap cells expected to remain allocated at
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1892
              the current nest level
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1893
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1894
@see RAllocator::__DbgMarkEnd()
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1895
@see __RHEAP_MARK
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1896
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1897
#define __RHEAP_MARKENDC(aHeap,aCount) (aHeap)->__DbgMarkEnd(aCount)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1898
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1899
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1900
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1901
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1902
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1903
@publishedAll
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1904
@released
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1905
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1906
Simulates an allocation failure for the specific heap.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1907
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1908
The failure occurs on the next call to new or any of the functions which allocate 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1909
memory from the heap. This macro is defined only for debug builds.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1910
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1911
@param aHeap  A pointer to the specific RHeap.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1912
@param aCount The rate of failure - heap allocation fails every aCount attempt.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1913
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1914
@see RAllocator::__DbgSetAllocFail()
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1915
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1916
#define __RHEAP_FAILNEXT(aHeap,aCount) (aHeap)->__DbgSetAllocFail(RAllocator::EFailNext,aCount)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1917
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1918
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1919
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1920
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1921
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1922
@publishedAll
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1923
@released
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1924
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1925
Simulates an allocation failure for the specific heap. 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1926
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1927
The failure occurs on subsequent calls to new or any of the functions which 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1928
allocate memory from the heap. This macro is defined only for debug builds.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1929
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1930
@param aHeap  A pointer to the specific RHeap.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1931
@param aType  The type of failure to be simulated. 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1932
@param aValue The failure rate.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1933
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1934
@see RAllocator::__DbgSetAllocFail()
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1935
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1936
#define __RHEAP_SETFAIL(aHeap,aType,aValue) (aHeap)->__DbgSetAllocFail(aType,aValue)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1937
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1938
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1939
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1940
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1941
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1942
@publishedAll
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1943
@released
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1944
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1945
Cancels simulated allocation failure for the specific heap.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1946
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1947
This macro is defined only for debug builds.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1948
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1949
@param aHeap A pointer to the specific RHeap.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1950
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1951
@see RAllocator::__DbgSetAllocFail()
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1952
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1953
#define __RHEAP_RESET(aHeap) (aHeap)->__DbgSetAllocFail(RAllocator::ENone,1)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1954
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1955
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1956
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1957
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1958
@publishedAll
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1959
@released
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1960
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1961
Cancels simulated allocation failure for the specific heap.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1962
It walks the the heap and sets the nesting level for all allocated
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1963
cells to zero.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1964
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1965
This macro is defined only for debug builds.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1966
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1967
@param aHeap A pointer to the specific RHeap.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1968
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1969
@see RAllocator::__DbgSetAllocFail()
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1970
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1971
#define __RHEAP_TOTAL_RESET(aHeap) (aHeap)->__DbgSetAllocFail(RAllocator::EReset,1)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1972
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1973
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1974
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1975
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1976
#if defined (__WINS__) 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1977
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1978
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1979
@publishedAll
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1980
@released
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1981
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1982
#define __DEBUGGER() {if (User::JustInTime()) __BREAKPOINT()}
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1983
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1984
#else
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1985
#define __DEBUGGER()
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1986
#endif
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1987
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1988
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1989
#if defined(__DLL__)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1990
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1991
@publishedAll
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1992
@released
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1993
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1994
Declares a function for testing object invariance.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1995
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1996
For complex classes, it is often useful to provide a function that can
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1997
be called to check that the object is in a valid state.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1998
The __DECLARE_TEST macro supplies a standard prototype for such a function
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  1999
named __DbgTestInvariant(). A companion macro __TEST_INVARIANT is provided
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2000
to call the function.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2001
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2002
For DLLs, as opposed to EXEs, __DbgTestInvariant() is exported,
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2003
i.e. the macro expands to:
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2004
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2005
@code
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2006
public: IMPORT_C void __DbgTestInvariant() const; void __DbgTest(TAny *aPtr) const
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2007
@endcode
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2008
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2009
This macro should placed as the last item in a class declaration (as it 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2010
switches back to public access). Note that a terminating semi-colon must be used.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2011
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2012
You should define the __DbgTestInvariant() function to check that the object
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2013
is in a healthy state. If it finds an error, it should call User::Invariant(),
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2014
which will cause a panic. 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2015
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2016
If a class is derived from a base class, then the base class __DbgTestInvariant()
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2017
should be called first, and then any further checking done. 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2018
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2019
The second function declared, __DbgTest(), is intended to allow test code a way
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2020
of directly accessing non-public members of a class. The function is
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2021
implemented by any test code that requires it, rather than in the class’s own
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2022
source code. The function is therefore not exported.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2023
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2024
__DECLARE_TEST is defined for both debug and release builds. This point is
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2025
particularly important for DLLs, as otherwise the exported interfaces would
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2026
differ between the build versions, giving potential binary compatibility
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2027
problems. To avoid using memory unnecessarily in release builds, you can,
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2028
however, use preprocessor directives to define the code within
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2029
__DbgTestInvariant() only for debug builds. __DbgTestInvariant() is never
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2030
called in release builds.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2031
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2032
@see __TEST_INVARIANT
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2033
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2034
#define __DECLARE_TEST public: IMPORT_C void __DbgTestInvariant() const; void __DbgTest(TAny *aPtr) const
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2035
#else
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2036
#define __DECLARE_TEST public: void __DbgTestInvariant() const; void __DbgTest(TAny *aPtr) const
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2037
#endif
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2038
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2039
#else
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2040
#define __ASSERT_DEBUG(c,p)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2041
#define __DECLARE_NAME(t)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2042
#define __TEST_INVARIANT
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2043
#if defined(__DLL__)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2044
#define __DECLARE_TEST public: IMPORT_C void __DbgTestInvariant() const; void __DbgTest(TAny *aPtr) const
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2045
#else
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2046
#define __DECLARE_TEST public: void __DbgTestInvariant() const; void __DbgTest(TAny *aPtr) const
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2047
#endif
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2048
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2049
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2050
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2051
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2052
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2053
@publishedAll
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2054
@released
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2055
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2056
Marks the start of checking the current thread's heap. 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2057
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2058
This macro is defined only for debug builds.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2059
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2060
This macro must be matched by a corresponding call to __UHEAP_MARKEND or __UHEAP_MARKENDC.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2061
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2062
Calls to this macro can be nested but each call must be matched by corresponding 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2063
call to __UHEAP_MARKEND or __UHEAP_MARKENDC.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2064
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2065
@see User::__DbgMarkStart()
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2066
@see __UHEAP_MARKEND
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2067
@see __UHEAP_MARKENDC
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2068
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2069
#define __UHEAP_MARK
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2070
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2071
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2072
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2073
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2074
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2075
@publishedAll
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2076
@released
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2077
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2078
Checks that the number of allocated cells at the current nested level on the 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2079
current thread's heap is the same as the specified value.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2080
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2081
This macro is defined only for debug builds.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2082
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2083
The macro also takes the name of the file containing this source code statement 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2084
and the line number of this source code statement; they are displayed as part 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2085
of the panic category, if the checks fail.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2086
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2087
The macro assumes that:
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2088
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2089
1. the heap being checked is a user heap
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2090
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2091
2. checking is being done for the number of allocated cells at the current nested 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2092
   level; i.e. that aCountAll is set to false
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2093
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2094
3. the line number is the line number of this source code statement.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2095
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2096
4. the file name is the full path name of the file containing this source statement
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2097
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2098
@param aCount The number of heap cells expected to be allocated at
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2099
              the current nest level.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2100
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2101
@see User::__DbgMarkCheck()
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2102
@see __KHEAP_CHECK
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2103
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2104
#define __UHEAP_CHECK(aCount)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2105
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2106
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2107
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2108
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2109
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2110
@publishedAll
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2111
@released
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2112
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2113
Checks that the total number of allocated cells on the current thread's heap 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2114
is the same as the specified value.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2115
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2116
This macro is defined only for debug builds.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2117
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2118
The macro also takes the name of the file containing this source code statement 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2119
and the line number of this source code statement; they are displayed as part 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2120
of the panic category, if the checks fail.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2121
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2122
@param aCount The total number of heap cells expected to be allocated.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2123
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2124
@see User::__DbgMarkCheck()
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2125
@see __KHEAP_CHECKALL
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2126
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2127
#define __UHEAP_CHECKALL(aCount)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2128
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2129
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2130
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2131
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2132
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2133
@publishedAll
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2134
@released
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2135
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2136
Marks the end of checking the current thread's heap. 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2137
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2138
The macro expects zero heap cells to remain allocated at the current nest 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2139
level. This macro is defined only for debug builds.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2140
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2141
This macro must match an earlier call to __UHEAP_MARK.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2142
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2143
@see User::__DbgMarkEnd()
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2144
@see __UHEAP_MARK
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2145
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2146
#define __UHEAP_MARKEND
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2147
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2148
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2149
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2150
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2151
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2152
@publishedAll
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2153
@released
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2154
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2155
Marks the end of checking the current thread's heap. 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2156
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2157
The macro expects aCount heap cells to remain allocated at the current nest 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2158
level.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2159
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2160
This macro must match an earlier call to __UHEAP_MARK.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2161
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2162
@param aCount The number of heap cells expected to remain allocated at
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2163
              the current nest level.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2164
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2165
@see User::__DbgMarkEnd()
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2166
@see __UHEAP_MARK
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2167
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2168
#define __UHEAP_MARKENDC(aCount)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2169
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2170
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2171
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2172
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2173
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2174
@publishedAll
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2175
@released
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2176
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2177
Simulates heap allocation failure for the current thread's heap.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2178
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2179
The failure occurs on the next call to new or any of the functions which 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2180
allocate memory from the heap. This macro is defined only for debug builds.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2181
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2182
@param aCount Determines when the allocation will fail.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2183
              Heap allocation fails on attempt number aCount - later
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2184
              allocations will succeed.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2185
              For example, if aCount is 3, then heap allocation fails
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2186
              on the 3rd attempt, but all subsequent allocations succeed. 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2187
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2188
@see User::__DbgSetAllocFail()
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2189
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2190
#define __UHEAP_FAILNEXT(aCount)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2191
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2192
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2193
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2194
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2195
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2196
@publishedAll
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2197
@released
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2198
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2199
Simulates heap allocation failure for the current thread's heap. 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2200
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2201
The failure occurs on subsequent calls to new or any of the functions which 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2202
allocate memory from the heap. This macro is defined only for debug builds.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2203
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2204
@param aType  The type of failure to be simulated.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2205
@param aValue The failure rate.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2206
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2207
@see User::__DbgSetAllocFail()
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2208
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2209
#define __UHEAP_SETFAIL(aType,aValue)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2210
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2211
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2212
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2213
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2214
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2215
@publishedAll
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2216
@released
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2217
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2218
Cancels simulated heap allocation failure for the current thread's heap. 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2219
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2220
This macro is defined only for debug builds.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2221
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2222
@see User::__DbgSetAllocFail()
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2223
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2224
#define __UHEAP_RESET
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2225
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2226
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2227
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2228
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2229
@publishedAll
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2230
@released
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2231
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2232
Cancels simulated heap allocation failure for the current thread's heap. 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2233
It walks the the heap and sets the nesting level for all allocated
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2234
cells to zero.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2235
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2236
This macro is defined only for debug builds.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2237
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2238
#define __UHEAP_TOTAL_RESET
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2239
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2240
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2241
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2242
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2243
@publishedPartner
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2244
@released
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2245
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2246
Marks the start of Kernel heap checking. 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2247
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2248
Checking the Kernel heap is only useful when developing Kernel side code such 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2249
as device drivers and media drivers.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2250
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2251
This macro is defined only for debug builds.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2252
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2253
This macro must be matched by a corresponding call to __KHEAP_MARKEND or __KHEAP_MARKENDC. 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2254
Calls to this macro can be nested but each call must be matched by corresponding 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2255
call to __KHEAP_MARKEND or __KHEAP_MARKENDC.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2256
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2257
@see User::__DbgMarkStart()
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2258
@see __KHEAP_MARKEND
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2259
@see __KHEAP_MARKENDC
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2260
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2261
#define __KHEAP_MARK
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2262
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2263
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2264
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2265
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2266
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2267
@publishedPartner
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2268
@released
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2269
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2270
Checks that the number of allocated cells at the current nested level of the 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2271
Kernel heap is the same as the specified value. This macro is defined only 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2272
for debug builds. Checking the Kernel heap is only useful when developing 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2273
Kernel side code such as device drivers and media drivers.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2274
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2275
The macro also takes the name of the file containing this source code statement 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2276
and the line number of this source code statement; they are displayed as part 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2277
of the panic category, if the checks fail.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2278
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2279
@param aCount The number of heap cells expected to be allocated at
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2280
              the current nest level.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2281
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2282
@see User::__DbgMarkCheck()
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2283
@see __UHEAP_CHECK
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2284
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2285
#define __KHEAP_CHECK(aCount)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2286
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2287
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2288
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2289
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2290
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2291
@publishedPartner
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2292
@released
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2293
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2294
Checks that the total number of allocated cells on the Kernel heap is the same 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2295
as the specified value.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2296
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2297
It is only useful when developing Kernel side code such as device drivers 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2298
and media drivers. 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2299
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2300
The macro also takes the name of the file containing this source code statement 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2301
and the line number of this source code statement; they are displayed as part 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2302
of the panic category, if the checks fail.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2303
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2304
This macro is defined only for debug builds.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2305
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2306
@param aCount The total number of heap cells expected to be allocated
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2307
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2308
@see User::__DbgMarkCheck()
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2309
@see __UHEAP_CHECKALL
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2310
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2311
#define __KHEAP_CHECKALL(aCount)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2312
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2313
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2314
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2315
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2316
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2317
@publishedPartner
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2318
@released
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2319
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2320
Marks the end of Kernel heap checking. The macro expects zero heap cells to 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2321
remain allocated at the current nest level.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2322
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2323
This macro is defined only for debug builds. Checking the Kernel heap is only 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2324
useful when developing Kernel side code such as device drivers and media drivers.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2325
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2326
This macro must match an earlier call to __KHEAP_MARK.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2327
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2328
@see User::__DbgMarkEnd()
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2329
@see __KHEAP_MARK
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2330
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2331
#define __KHEAP_MARKEND
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2332
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2333
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2334
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2335
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2336
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2337
@publishedPartner
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2338
@released
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2339
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2340
Marks the end of Kernel heap checking. The macro expects aCount heap cells 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2341
to remain allocated at the current nest level.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2342
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2343
This macro is defined only for debug builds.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2344
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2345
This macro must match an earlier call to __KHEAP_MARK.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2346
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2347
@param aCount The number of heap cells expected to remain allocated at
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2348
              the current nest level.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2349
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2350
@see User::__DbgMarkEnd()
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2351
@see __KHEAP_MARK
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2352
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2353
#define __KHEAP_MARKENDC(aCount)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2354
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2355
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2356
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2357
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2358
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2359
@publishedPartner
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2360
@released
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2361
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2362
Simulates Kernel heap allocation failure. The failure occurs on the next call 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2363
to new or any of the functions which allocate memory from the heap. This macro 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2364
is defined only for debug builds.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2365
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2366
Checking the Kernel heap is only useful when developing Kernel side code such 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2367
as device drivers and media drivers.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2368
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2369
@param aCount The rate of failure - heap allocation fails every aCount attempt.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2370
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2371
@see User::__DbgSetAllocFail()
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2372
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2373
#define __KHEAP_FAILNEXT(aCount)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2374
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2375
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2376
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2377
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2378
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2379
@publishedPartner
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2380
@released
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2381
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2382
Simulates Kernel heap allocation failure. 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2383
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2384
The failure occurs on subsequent calls to new or any of the functions which 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2385
allocate memory from this heap.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2386
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2387
This macro is defined only for debug builds.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2388
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2389
@param aType  The type of failure to be simulated.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2390
@param aValue The failure rate.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2391
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2392
@see User::__DbgSetAllocFail()
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2393
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2394
#define __KHEAP_SETFAIL(aType,aValue)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2395
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2396
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2397
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2398
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2399
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2400
@publishedPartner
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2401
@released
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2402
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2403
Cancels simulated Kernel heap allocation failure. 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2404
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2405
Checking the Kernel heap is only useful when developing Kernel side code such 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2406
as device drivers and media drivers.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2407
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2408
This macro is defined only for debug builds.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2409
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2410
@see User::__DbgSetAllocFail()
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2411
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2412
#define __KHEAP_RESET
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2413
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2414
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2415
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2416
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2417
@publishedPartner
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2418
@released
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2419
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2420
Cancels simulated kernel heap allocation failure. 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2421
It walks the the heap and sets the nesting level for all allocated
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2422
cells to zero.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2423
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2424
Checking the kernel heap is only useful when developing kernel side code such 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2425
as device drivers and media drivers.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2426
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2427
This macro is defined only for debug builds.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2428
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2429
#define __KHEAP_TOTAL_RESET
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2430
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2431
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2432
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2433
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2434
@publishedAll
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2435
@released
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2436
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2437
Marks the start of heap checking for the specific heap. 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2438
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2439
This macro is defined only for debug builds.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2440
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2441
This macro must be matched by a corresponding call to __RHEAP_MARKEND or __RHEAP_MARKENDC.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2442
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2443
Calls to this macro can be nested but each call must be matched by corresponding 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2444
call to __RHEAP_MARKEND or __RHEAP_MARKENDC.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2445
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2446
@param aHeap A pointer to the specific RHeap
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2447
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2448
@see RHeap
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2449
@see RAllocator::__DbgMarkStart()
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2450
@see __RHEAP_MARKEND
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2451
@see __RHEAP_MARKENDC
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2452
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2453
#define __RHEAP_MARK(aHeap)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2454
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2455
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2456
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2457
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2458
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2459
@publishedAll
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2460
@released
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2461
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2462
Checks that the number of allocated cells at the current nested level on the 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2463
specified heap is the same as the specified value. 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2464
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2465
The macro also takes the name of the file containing this source code statement 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2466
and the line number of this source code statement; they are displayed as part 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2467
of the panic category, if the checks fail. 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2468
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2469
This macro is defined only for debug builds.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2470
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2471
@param aHeap  A pointer to the specific RHeap.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2472
@param aCount The number of heap cells expected to be allocated at
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2473
              the current nest level.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2474
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2475
@see RAllocator::__DbgMarkCheck()
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2476
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2477
#define __RHEAP_CHECK(aHeap,aCount)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2478
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2479
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2480
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2481
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2482
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2483
@publishedAll
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2484
@released
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2485
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2486
Checks that the total number of allocated cells on the specified heap is the 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2487
same as the specified value.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2488
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2489
The macro also takes the name of the file containing this source code statement 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2490
and the line number of this source code statement; they are displayed as part 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2491
of the panic category, if the checks fail.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2492
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2493
This macro is defined only for debug builds.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2494
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2495
@param aHeap  A pointer to the specific RHeap.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2496
@param aCount The total number of heap cells expected to be allocated.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2497
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2498
@see RAllocator::__DbgMarkCheck()
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2499
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2500
#define __RHEAP_CHECKALL(aHeap,aCount)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2501
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2502
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2503
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2504
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2505
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2506
@publishedAll
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2507
@released
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2508
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2509
Marks the end of heap checking for the specific heap.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2510
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2511
The macro expects zero heap cells to remain allocated at the current nest 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2512
level. This macro is defined only for debug builds.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2513
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2514
This macro must match an earlier call to __RHEAP_MARK.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2515
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2516
@param aHeap A pointer to the specific RHeap.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2517
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2518
@see RAllocator::__DbgMarkEnd()
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2519
@see __RHEAP_MARK
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2520
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2521
#define __RHEAP_MARKEND(aHeap)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2522
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2523
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2524
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2525
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2526
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2527
@publishedAll
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2528
@released
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2529
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2530
Marks the end of heap checking for the specific heap.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2531
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2532
The macro expects aCount heap cells to remain allocated at the current nest 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2533
level. This macro is defined only for debug builds.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2534
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2535
This macro must match an earlier call to __RHEAP_MARK.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2536
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2537
@param aHeap  A pointer to the specific RHeap.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2538
@param aCount The number of heap cells expected to remain allocated at
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2539
              the current nest level
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2540
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2541
@see RAllocator::__DbgMarkEnd()
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2542
@see __RHEAP_MARK
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2543
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2544
#define __RHEAP_MARKENDC(aHeap,aCount)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2545
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2546
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2547
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2548
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2549
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2550
@publishedAll
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2551
@released
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2552
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2553
Simulates an allocation failure for the specific heap.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2554
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2555
The failure occurs on the next call to new or any of the functions which allocate 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2556
memory from the heap. This macro is defined only for debug builds.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2557
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2558
@param aHeap  A pointer to the specific RHeap.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2559
@param aCount The rate of failure - heap allocation fails every aCount attempt.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2560
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2561
@see RAllocator::__DbgSetAllocFail()
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2562
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2563
#define __RHEAP_FAILNEXT(aHeap,aCount)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2564
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2565
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2566
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2567
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2568
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2569
@publishedAll
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2570
@released
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2571
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2572
Simulates an allocation failure for the specific heap. 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2573
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2574
The failure occurs on subsequent calls to new or any of the functions which 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2575
allocate memory from the heap. This macro is defined only for debug builds.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2576
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2577
@param aHeap  A pointer to the specific RHeap.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2578
@param aType  The type of failure to be simulated. 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2579
@param aValue The failure rate.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2580
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2581
@see RAllocator::__DbgSetAllocFail()
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2582
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2583
#define __RHEAP_SETFAIL(aHeap,aType,aValue)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2584
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2585
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2586
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2587
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2588
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2589
@publishedAll
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2590
@released
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2591
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2592
Cancels simulated allocation failure for the specific heap.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2593
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2594
This macro is defined only for debug builds.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2595
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2596
@param aHeap A pointer to the specific RHeap.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2597
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2598
@see RAllocator::__DbgSetAllocFail()
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2599
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2600
#define __RHEAP_RESET(aHeap)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2601
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2602
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2603
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2604
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2605
@publishedAll
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2606
@released
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2607
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2608
Cancels simulated allocation failure for the specific heap.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2609
It walks the the heap and sets the nesting level for all allocated
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2610
cells to zero.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2611
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2612
This macro is defined only for debug builds.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2613
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2614
@param aHeap A pointer to the specific RHeap.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2615
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2616
@see RAllocator::__DbgSetAllocFail()
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2617
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2618
#define __RHEAP_TOTAL_RESET(aHeap)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2619
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2620
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2621
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2622
#define __DEBUGGER()
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2623
#endif
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2624
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2625
#if defined (__WINS__)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2626
/** @internalTechnology */
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2627
#define __EMULATOR_IMAGE_HEADER2(aUid0,aUid1,aUid2,aPriority,aCap0,aCap1,aSid,aVid,aVer,aFlags)	TEmulatorImageHeader uid={{aUid0,aUid1,aUid2},aPriority,{aSid,aVid,{aCap0,aCap1}},0,0,aVer,aFlags};
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2628
/** @internalTechnology */
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2629
#define __EMULATOR_IMAGE_HEADER(aUid0,aUid1,aUid2,aPriority,aCap,aFlags)					TEmulatorImageHeader uid={{aUid0,aUid1,aUid2},aPriority,{aUid2,0,{aCap,0}},0,0,0x00010000u,aFlags};
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2630
#else
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2631
#define __EMULATOR_IMAGE_HEADER2(aUid0,aUid1,aUid2,aPriority,aCap0,aCap1,aSid,aVer,aFlags)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2632
#define __EMULATOR_IMAGE_HEADER(aUid0,aUid1,aUid2,aPriority,aCap,aFlags)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2633
#endif
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2634
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2635
#if defined(__OPT__)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2636
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2637
@internalComponent
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2638
@deprecated
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2639
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2640
#define __ASSERT_OPT(c,p) (void)((c)||(p,0))
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2641
#else
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2642
#define __ASSERT_OPT(c,p)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2643
#endif
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2644
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2645
#if defined(_UNICODE)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2646
#if !defined(UNICODE)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2647
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2648
@publishedAll
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2649
@deprecated
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2650
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2651
#define UNICODE
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2652
#endif
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2653
#endif
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2654
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2655
#if defined(_DEBUG)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2656
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2657
@internalComponent
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2658
@deprecated
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2659
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2660
#define __DECLARE_TEST_DEBUG __DECLARE_TEST
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2661
#else
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2662
#define __DECLARE_TEST_DEBUG
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2663
#endif
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2664
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2665
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2666
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2667
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2668
#if !defined(ASSERT)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2669
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2670
@publishedAll
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2671
@released
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2672
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2673
Generates _ASSERT_DEBUG code that calls User::Invariant() if the specified
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2674
condition is not true.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2675
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2676
@param x A conditional expression which results in true or false.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2677
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2678
#define ASSERT(x) __ASSERT_DEBUG(x,User::Invariant())
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2679
#endif
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2680
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2681
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2682
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2683
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2684
#ifndef __VALUE_IN_REGS__ 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2685
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2686
@publishedPartner
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2687
@released
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2688
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2689
#define __VALUE_IN_REGS__ 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2690
#endif
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2691
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2692
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2693
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2694
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2695
#if defined(_DEBUG)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2696
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2697
@publishedAll
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2698
@released
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2699
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2700
#define __DEBUG_ONLY(x) x
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2701
#else
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2702
#define __DEBUG_ONLY(x)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2703
#endif
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2704
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2705
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2706
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2707
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2708
#ifdef __KERNEL_MODE__
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2709
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2710
/** @internalComponent */
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2711
#define	KIMPORT_C	IMPORT_C
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2712
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2713
/** @internalComponent */
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2714
#define	KEXPORT_C	EXPORT_C
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2715
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2716
/** @internalComponent */
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2717
#define	UIMPORT_C
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2718
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2719
/** @internalComponent */
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2720
#define	UEXPORT_C
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2721
#else
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2722
#define	KIMPORT_C
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2723
#define	KEXPORT_C
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2724
#define	UIMPORT_C	IMPORT_C
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2725
#define	UEXPORT_C	EXPORT_C
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2726
#endif
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2727
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2728
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2729
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2730
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2731
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2732
@publishedAll
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2733
@released
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2734
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2735
Asserts that a condition is true at compilation time.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2736
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2737
@param x Condition to assert
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2738
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2739
#define __ASSERT_COMPILE(x)		void __compile_time_assert(int __check[(x)?1:-1])
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2740
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2741
#ifdef __REMOVE_PLATSEC_DIAGNOSTICS__
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2742
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2743
@publishedPartner
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2744
@released
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2745
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2746
#ifndef __REMOVE_PLATSEC_DIAGNOSTIC_STRINGS__
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2747
#define __REMOVE_PLATSEC_DIAGNOSTIC_STRINGS__
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2748
#endif /*__REMOVE_PLATSEC_DIAGNOSTIC_STRINGS__*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2749
#endif /*__REMOVE_PLATSEC_DIAGNOSTICS__*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2750
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2751
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2752
@internalComponent
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2753
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2754
static const char* const KSuppressPlatSecDiagnosticMagicValue = (const char*)1;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2755
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2756
#ifndef __REMOVE_PLATSEC_DIAGNOSTIC_STRINGS__
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2757
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2758
@internalComponent
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2759
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2760
#define __PLATSEC_DIAGNOSTIC_FILE_AND_LINE_HELPER(l) #l
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2761
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2762
@internalComponent
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2763
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2764
#define __PLATSEC_DIAGNOSTIC_FILE_AND_LINE_HELPER2(f,l) f "(" __PLATSEC_DIAGNOSTIC_FILE_AND_LINE_HELPER(l) ")"
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2765
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2766
@publishedPartner
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2767
@released
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2768
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2769
#define __PLATSEC_DIAGNOSTIC_FILE_AND_LINE __PLATSEC_DIAGNOSTIC_FILE_AND_LINE_HELPER2(__FILE__,__LINE__)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2770
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2771
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2772
@publishedPartner
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2773
@released
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2774
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2775
A macro that should be used to enclose a platform security diagnostic
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2776
'C' style string that can be passed to a capability checking function such
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2777
as RThread::HasCapability() and Kern::CurrentThreadHasCapability().
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2778
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2779
The content of the string is emitted if the capability test finds that
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2780
the capability is not present.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2781
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2782
The macro provides a convenient mechanism that allows the strings to
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2783
be removed from future versions of Symbian OS.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2784
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2785
For example:
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2786
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2787
@code
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2788
if(!Kern::CurrentThreadHasCapability(ECapabilityPowerMgmt,__PLATSEC_DIAGNOSTIC_STRING("Checked by Hal function EDisplayHalSetState")))
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2789
    {
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2790
    return KErrPermissionDenied;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2791
    }			
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2792
@endcode
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2793
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2794
In this example, the string:
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2795
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2796
@code
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2797
Checked by Hal function EDisplayHalSetState
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2798
@endcode
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2799
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2800
is emitted if the calling process does not have the ECapabilityPowerMgmt capability.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2801
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2802
@param s A C-style string.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2803
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2804
@see RProcess::HasCapability()
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2805
@see RThread::HasCapability()
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2806
@see RMessagePtr2::HasCapability()
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2807
@see User::CreatorHasCapability()
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2808
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2809
#define __PLATSEC_DIAGNOSTIC_STRING(s) s
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2810
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2811
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2812
When this value is used in Platform Security APIs as the value for the aDiagnosticText
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2813
argument, these APIs will not emit any form of diagnostic message.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2814
@publishedPartner
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2815
@released
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2816
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2817
// Note this value is the same as KSuppressPlatSecDiagnosticMagicValue
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2818
// and used to be a set by it but that caused an error with GCCE compiler
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2819
static const char* const KSuppressPlatSecDiagnostic = (const char*)1;
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2820
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2821
#else /* __REMOVE_PLATSEC_DIAGNOSTIC_STRINGS__ */
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2822
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2823
#define __PLATSEC_DIAGNOSTIC_STRING(s) NULL
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2824
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2825
#ifndef __KERNEL_MODE__
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2826
#ifndef __REMOVE_PLATSEC_DIAGNOSTICS__
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2827
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2828
When this value is used in Platform Security APIs as the value for the aDiagnostic
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2829
argument, these APIs will not emit any form of diagnostic message.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2830
@publishedPartner
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2831
@released
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2832
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2833
#define KSuppressPlatSecDiagnostic		NULL, NULL
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2834
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2835
#else /* __REMOVE_PLATSEC_DIAGNOSTICS__ */
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2836
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2837
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2838
When this value is used in Platform Security APIs as the value for the aDiagnostic
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2839
argument, these APIs will not emit any form of diagnostic message.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2840
@publishedPartner
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2841
@release
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2842
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2843
#define KSuppressPlatSecDiagnostic		NULL
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2844
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2845
#endif /* !__REMOVE_PLATSEC_DIAGNOSTICS__ */
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2846
#endif /* !__KERNEL_MODE__ */
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2847
#endif /* !__REMOVE_PLATSEC_DIAGNOSTIC_STRINGS__ */
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2848
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2849
/*
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2850
 * MSVC operator new and operator new[] header guards
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2851
 */
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2852
#ifdef __PLACEMENT_NEW
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2853
#define __PLACEMENT_NEW_INLINE
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2854
#endif /* __PLACEMENT_NEW */
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2855
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2856
#if defined(__VC32__) && (_MSC_VER < 1300)
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2857
#define __PLACEMENT_VEC_NEW_INLINE
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2858
#endif /* version of MSVC that doesn't support overloaded operator new[] */
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2859
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2860
/**
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2861
Calling convention qualifier for functions involving floating point 
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2862
variables passed or returned by value.
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2863
@publishedAll
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2864
@released
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2865
*/
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2866
#ifndef __SOFTFP
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2867
#define __SOFTFP
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2868
#endif /* __SOFTFP */
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2869
c327db0664bb Upgrading Raptor from 2.10 to 2.13
mikek
parents:
diff changeset
  2870
#endif /* __E32DEF_H__ */