author | mikaruus <mika.a.ruuskanen@nokia.com> |
Wed, 21 Apr 2010 14:29:55 +0300 | |
changeset 8 | 6295dc2169f3 |
parent 0 | 63b37f68c1ce |
child 9 | 8486d82aef45 |
permissions | -rw-r--r-- |
0 | 1 |
/* |
2 |
* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). |
|
3 |
* All rights reserved. |
|
4 |
* This component and the accompanying materials are made available |
|
5 |
* under the terms of the License "Eclipse Public License v1.0" |
|
6 |
* which accompanies this distribution, and is available |
|
7 |
* at the URL "http://www.eclipse.org/legal/epl-v10.html". |
|
8 |
* |
|
9 |
* Initial Contributors: |
|
10 |
* Nokia Corporation - initial contribution. |
|
11 |
* |
|
12 |
* Contributors: |
|
13 |
* |
|
14 |
* Description: |
|
15 |
* |
|
16 |
*/ |
|
17 |
||
18 |
||
19 |
||
20 |
#ifndef IADTRACE_H |
|
21 |
#define IADTRACE_H |
|
22 |
||
23 |
// INCLUDES |
|
24 |
#include <kernel.h> |
|
25 |
||
26 |
// CONSTANTS |
|
27 |
||
28 |
const TUint8 KFaultIdentifierShift = 8; |
|
29 |
const TUint8 KChannelNumberShift = 16; |
|
30 |
const TUint8 KExtraInfoShift = 24; |
|
31 |
||
32 |
enum TIADFaultCategories |
|
33 |
{ |
|
34 |
EIADMemoryAllocationFailure = 1, // 0x01 Ident 23 |
|
35 |
EIADNullParameter, // 0x02 Ident 30 |
|
36 |
EIADWrongParameter, // 0x03 Ident 19 |
|
37 |
EIADQueueOutOfSync, // 0x04 ident 15 |
|
38 |
EIADWrongRequest, // 0x05 ident 14 |
|
39 |
EIADSameRequestTwice, // 0x06 ident 0 |
|
40 |
EIADChannelNumberNotSpecifiedInInfo, // 0x07 ident 1 |
|
41 |
EIADWrongDFCQueueUsed, // 0x08 ident 4 |
|
42 |
EIADDoNotCallInISRContext, // 0x09 ident 0 |
|
43 |
EIADDFCAlreadyQueued, // 0x0a ident 2 |
|
44 |
EIADWrongKernelResponse, // 0x0b ident 0 |
|
8
6295dc2169f3
New release based on our 2010wk15 release
mikaruus <mika.a.ruuskanen@nokia.com>
parents:
0
diff
changeset
|
45 |
EIADDesReadFailed, // 0x0c ident 9 |
6295dc2169f3
New release based on our 2010wk15 release
mikaruus <mika.a.ruuskanen@nokia.com>
parents:
0
diff
changeset
|
46 |
EIADConfigurationInvalid, // 0x0d ident 0 |
6295dc2169f3
New release based on our 2010wk15 release
mikaruus <mika.a.ruuskanen@nokia.com>
parents:
0
diff
changeset
|
47 |
EIADInvalidCtrlMessage, // 0x0e ident 4 |
6295dc2169f3
New release based on our 2010wk15 release
mikaruus <mika.a.ruuskanen@nokia.com>
parents:
0
diff
changeset
|
48 |
EIADCmtConnectionNotInit, // 0x0f ident 0 |
6295dc2169f3
New release based on our 2010wk15 release
mikaruus <mika.a.ruuskanen@nokia.com>
parents:
0
diff
changeset
|
49 |
EIADCmtConnectionLost, // 0x10 ident 4 |
6295dc2169f3
New release based on our 2010wk15 release
mikaruus <mika.a.ruuskanen@nokia.com>
parents:
0
diff
changeset
|
50 |
EIADTooManyBytesToPresent, // 0x11 ident 0 |
6295dc2169f3
New release based on our 2010wk15 release
mikaruus <mika.a.ruuskanen@nokia.com>
parents:
0
diff
changeset
|
51 |
EIADChannelOpenedBeforePhysicalLayerInit, // 0x12 ident 0 |
6295dc2169f3
New release based on our 2010wk15 release
mikaruus <mika.a.ruuskanen@nokia.com>
parents:
0
diff
changeset
|
52 |
EIADWrongTypeOfOpenPending, // 0x13 ident 2 |
6295dc2169f3
New release based on our 2010wk15 release
mikaruus <mika.a.ruuskanen@nokia.com>
parents:
0
diff
changeset
|
53 |
EIADBufferNotReleased, // 0x14 ident 0 |
6295dc2169f3
New release based on our 2010wk15 release
mikaruus <mika.a.ruuskanen@nokia.com>
parents:
0
diff
changeset
|
54 |
EIADUnknownPipeFCType, // 0x15 ident 2 |
6295dc2169f3
New release based on our 2010wk15 release
mikaruus <mika.a.ruuskanen@nokia.com>
parents:
0
diff
changeset
|
55 |
EIADWrongPipeHandle, // 0x16 ident 10 |
6295dc2169f3
New release based on our 2010wk15 release
mikaruus <mika.a.ruuskanen@nokia.com>
parents:
0
diff
changeset
|
56 |
EIADUnknownPipeOrPepMsg, // 0x17 ident 2 |
6295dc2169f3
New release based on our 2010wk15 release
mikaruus <mika.a.ruuskanen@nokia.com>
parents:
0
diff
changeset
|
57 |
EIADUnkownMedia, // 0x18 ident 0 |
6295dc2169f3
New release based on our 2010wk15 release
mikaruus <mika.a.ruuskanen@nokia.com>
parents:
0
diff
changeset
|
58 |
EIADIndicationOrderFailed, // 0x19 ident 0 |
6295dc2169f3
New release based on our 2010wk15 release
mikaruus <mika.a.ruuskanen@nokia.com>
parents:
0
diff
changeset
|
59 |
EIADNotSupported, // 0x1a ident 5 |
6295dc2169f3
New release based on our 2010wk15 release
mikaruus <mika.a.ruuskanen@nokia.com>
parents:
0
diff
changeset
|
60 |
EIADCommon, // 0x1b ident 0 |
6295dc2169f3
New release based on our 2010wk15 release
mikaruus <mika.a.ruuskanen@nokia.com>
parents:
0
diff
changeset
|
61 |
EIADOverTheLimits, // 0x1c ident 43 |
6295dc2169f3
New release based on our 2010wk15 release
mikaruus <mika.a.ruuskanen@nokia.com>
parents:
0
diff
changeset
|
62 |
EIADDesWriteFailed, // 0x1d ident 4 |
0 | 63 |
}; |
64 |
// Used to identify code line where reset happens |
|
65 |
enum TIADFaultIdentifier |
|
66 |
{ |
|
67 |
EIADFaultIdentifier1 = 1, // 0x01 |
|
68 |
EIADFaultIdentifier2, // 0x02 |
|
69 |
EIADFaultIdentifier3, // 0x03 |
|
70 |
EIADFaultIdentifier4, // 0x04 |
|
71 |
EIADFaultIdentifier5, // 0x05 |
|
72 |
EIADFaultIdentifier6, // 0x06 |
|
73 |
EIADFaultIdentifier7, // 0x07 |
|
74 |
EIADFaultIdentifier8, // 0x08 |
|
75 |
EIADFaultIdentifier9, // 0x09 |
|
76 |
EIADFaultIdentifier10, // 0x0a |
|
77 |
EIADFaultIdentifier11, // 0x0b |
|
78 |
EIADFaultIdentifier12, // 0x0c |
|
79 |
EIADFaultIdentifier13, // 0x0d |
|
80 |
EIADFaultIdentifier14, // 0x0e |
|
81 |
EIADFaultIdentifier15, // 0x0f |
|
82 |
EIADFaultIdentifier16, // 0x10 |
|
83 |
EIADFaultIdentifier17, // 0x11 |
|
84 |
EIADFaultIdentifier18, // 0x12 |
|
85 |
EIADFaultIdentifier19, // 0x13 |
|
86 |
EIADFaultIdentifier20, // 0x14 |
|
87 |
EIADFaultIdentifier21, // 0x15 |
|
88 |
EIADFaultIdentifier22, // 0x16 |
|
89 |
EIADFaultIdentifier23, // 0x17 |
|
90 |
EIADFaultIdentifier24, // 0x18 |
|
91 |
EIADFaultIdentifier25, // 0x19 |
|
8
6295dc2169f3
New release based on our 2010wk15 release
mikaruus <mika.a.ruuskanen@nokia.com>
parents:
0
diff
changeset
|
92 |
EIADFaultIdentifier26, // 0x1a |
6295dc2169f3
New release based on our 2010wk15 release
mikaruus <mika.a.ruuskanen@nokia.com>
parents:
0
diff
changeset
|
93 |
EIADFaultIdentifier27, // 0x1b |
6295dc2169f3
New release based on our 2010wk15 release
mikaruus <mika.a.ruuskanen@nokia.com>
parents:
0
diff
changeset
|
94 |
EIADFaultIdentifier28, // 0x1c |
6295dc2169f3
New release based on our 2010wk15 release
mikaruus <mika.a.ruuskanen@nokia.com>
parents:
0
diff
changeset
|
95 |
EIADFaultIdentifier29, // 0x1d |
6295dc2169f3
New release based on our 2010wk15 release
mikaruus <mika.a.ruuskanen@nokia.com>
parents:
0
diff
changeset
|
96 |
EIADFaultIdentifier30, // 0x1e |
6295dc2169f3
New release based on our 2010wk15 release
mikaruus <mika.a.ruuskanen@nokia.com>
parents:
0
diff
changeset
|
97 |
EIADFaultIdentifier31, // 0x1f |
6295dc2169f3
New release based on our 2010wk15 release
mikaruus <mika.a.ruuskanen@nokia.com>
parents:
0
diff
changeset
|
98 |
EIADFaultIdentifier32, // 0x20 |
6295dc2169f3
New release based on our 2010wk15 release
mikaruus <mika.a.ruuskanen@nokia.com>
parents:
0
diff
changeset
|
99 |
EIADFaultIdentifier33, // 0x21 |
6295dc2169f3
New release based on our 2010wk15 release
mikaruus <mika.a.ruuskanen@nokia.com>
parents:
0
diff
changeset
|
100 |
EIADFaultIdentifier34, // 0x22 |
6295dc2169f3
New release based on our 2010wk15 release
mikaruus <mika.a.ruuskanen@nokia.com>
parents:
0
diff
changeset
|
101 |
EIADFaultIdentifier35, // 0x23 |
6295dc2169f3
New release based on our 2010wk15 release
mikaruus <mika.a.ruuskanen@nokia.com>
parents:
0
diff
changeset
|
102 |
EIADFaultIdentifier36, // 0x24 |
6295dc2169f3
New release based on our 2010wk15 release
mikaruus <mika.a.ruuskanen@nokia.com>
parents:
0
diff
changeset
|
103 |
EIADFaultIdentifier37, // 0x25 |
6295dc2169f3
New release based on our 2010wk15 release
mikaruus <mika.a.ruuskanen@nokia.com>
parents:
0
diff
changeset
|
104 |
EIADFaultIdentifier38, // 0x26 |
6295dc2169f3
New release based on our 2010wk15 release
mikaruus <mika.a.ruuskanen@nokia.com>
parents:
0
diff
changeset
|
105 |
EIADFaultIdentifier39, // 0x27 |
6295dc2169f3
New release based on our 2010wk15 release
mikaruus <mika.a.ruuskanen@nokia.com>
parents:
0
diff
changeset
|
106 |
EIADFaultIdentifier40, // 0x28 |
6295dc2169f3
New release based on our 2010wk15 release
mikaruus <mika.a.ruuskanen@nokia.com>
parents:
0
diff
changeset
|
107 |
EIADFaultIdentifier41, // 0x29 |
6295dc2169f3
New release based on our 2010wk15 release
mikaruus <mika.a.ruuskanen@nokia.com>
parents:
0
diff
changeset
|
108 |
EIADFaultIdentifier42, // 0x2a |
6295dc2169f3
New release based on our 2010wk15 release
mikaruus <mika.a.ruuskanen@nokia.com>
parents:
0
diff
changeset
|
109 |
EIADFaultIdentifier43, // 0x2b |
0 | 110 |
}; |
111 |
||
112 |
//ISCE |
|
113 |
enum TClassIdentifier |
|
114 |
{ |
|
115 |
EDISILinkTraceId = 0x00, |
|
116 |
}; |
|
117 |
const TUint8 KClassIdentifierShift( 8 ); |
|
118 |
||
119 |
//ISCE |
|
120 |
||
121 |
// MACROS |
|
122 |
#define _T( a ) a |
|
123 |
#define __TRACE_PRINTF(a) Kern::Printf a |
|
124 |
||
125 |
#ifdef _DEBUG //UNCOMMENT THESE SOON TO ABLE TRACES ONLY IN UDEB |
|
126 |
||
127 |
void BuildTraceFunc( const TDesC& aPrefix ); |
|
128 |
void DataDumpTraceFunc( const TDesC8& aPtr, TBool aSend ); |
|
129 |
||
130 |
#define BUILD_TRACE( a ) BuildTraceFunc( a ) |
|
131 |
#if defined FULL_DATA_DUMP |
|
132 |
#define FULL_DATA_TRACE_DUMP |
|
133 |
#endif |
|
134 |
#if defined DATA_DUMP |
|
135 |
#define DATA_DUMP_TRACE( a, b ) DataDumpTraceFunc( a, b ) |
|
136 |
#else |
|
137 |
#define DATA_DUMP_TRACE( a, b ) |
|
138 |
#endif |
|
139 |
#if defined COMPONENT_TRACE_FLAG |
|
140 |
#define C_TRACE(a) __TRACE_PRINTF(a) |
|
141 |
#else |
|
142 |
#define C_TRACE(a) |
|
143 |
#endif // COMPONENT_TRACE_FLAG |
|
144 |
||
145 |
#if defined API_TRACE_FLAG |
|
146 |
#define A_TRACE(a) __TRACE_PRINTF(a) |
|
147 |
#else |
|
148 |
#define A_TRACE(a) |
|
149 |
#endif // API_TRACE_FLAG |
|
150 |
||
151 |
#if defined EXTENDED_TRACE_FLAG |
|
152 |
#define E_TRACE(a) __TRACE_PRINTF(a) |
|
153 |
#else |
|
154 |
#define E_TRACE(a) |
|
155 |
#endif // EXTENDED_TRACE_FLAG |
|
156 |
#else |
|
157 |
#define C_TRACE(a) |
|
158 |
#define A_TRACE(a) |
|
159 |
#define E_TRACE(a) |
|
160 |
#define BUILD_TRACE(a) |
|
161 |
#define DATA_DUMP_TRACE(a, b) |
|
162 |
#endif // _DEBUG |
|
163 |
// |
|
164 |
// Resets are made both in UDEB and UREL (traces only in udeb) |
|
165 |
#define ASSERT_RESET_ALWAYS(a,b) if(!(a)) { __TRACE_PRINTF(("Assertion failed: file=" __FILE__ ", line=%d, compiled="__DATE__" "__TIME__, __LINE__)); Kern::Fault( "IAD Fault:", b ); } |
|
166 |
#define TRACE_ASSERT_ALWAYS __TRACE_PRINTF( ("Assertion failed: file=" __FILE__ ", line=%d, compiled="__DATE__" "__TIME__, __LINE__) ) |
|
167 |
#define TRACE_ASSERT(a) if (!(a)) __TRACE_PRINTF(("Assertion failed: file=" __FILE__ ", line=%d, compiled=" __DATE__" "__TIME__, __LINE__ )) |
|
168 |
#define TRACE_ASSERT_WITH_MSG(a, b) if (!(a)) __TRACE_PRINTF(("Assertion failed: file=" __FILE__ ", line=%d, compiled=" __DATE__" "__TIME__, __LINE__ ));__TRACE_PRINTF((b)); |
|
169 |
#define TRACE_ASSERT_INFO(a, b) if (!(a)) __TRACE_PRINTF(("Assertion failed: file=" __FILE__ ", line=%d, extra info 0x%08x, compiled=" __DATE__" "__TIME__, __LINE__, b )); |
|
170 |
#define TRACE_WARNING(a, b) if (!(a)) __TRACE_PRINTF(("Warning: file=" __FILE__ ", line=%d, extra info 0x%x, compiled=" __DATE__" "__TIME__, __LINE__, b )); |
|
171 |
||
172 |
// Give appropriate context as param, fault if current context different. |
|
173 |
#define ASSERT_CONTEXT_ALWAYS( a, b )NKern::TContext current_context=(NKern::TContext)NKern::CurrentContext();ASSERT_RESET_ALWAYS( current_context == a, EIADDoNotCallInISRContext | b<<KChannelNumberShift); |
|
174 |
#define ASSERT_PANIC_USER_THREAD_ALWAYS( a, b, c ) if(!(a)){__TRACE_PRINTF(("Assertion failed: file=" __FILE__ ", line=%d, compiled="__DATE__" "__TIME__, __LINE__));Kern::ThreadKill( b, EExitPanic, c, _L8("IAD Fault") );} |
|
175 |
||
176 |
//MIST2IADAPI asserts |
|
177 |
#define IAD_ASSERT_RESET_ALWAYS( a, b, c ) if(!(a)) { __TRACE_PRINTF(("Assertion failed: file=" __FILE__ ", line=%d, compiled="__DATE__" "__TIME__, __LINE__)); Kern::Fault( c, b ); } |
|
178 |
#define IAD_ASSERT_THREAD_CONTEXT_ALWAYS( a, b )IAD_ASSERT_RESET_ALWAYS( NKern::CurrentContext() == NKern::EThread, a, b ); |
|
179 |
||
180 |
||
181 |
// DATA TYPES |
|
182 |
||
183 |
// FUNCTION PROTOTYPES |
|
184 |
||
185 |
// FORWARD DECLARATIONS |
|
186 |
||
187 |
#endif // IADTRACE_H |
|
188 |
||
189 |
// End of File |