tracesrv/tracecore/btrace_handler/test/tracedataparser/inc/tracedataparser.h
author hgs
Fri, 08 Oct 2010 14:56:39 +0300
changeset 56 aa2539c91954
permissions -rw-r--r--
201041
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
56
hgs
parents:
diff changeset
     1
// Copyright (c) 2005-2010 Nokia Corporation and/or its subsidiary(-ies).
hgs
parents:
diff changeset
     2
// All rights reserved.
hgs
parents:
diff changeset
     3
// This component and the accompanying materials are made available
hgs
parents:
diff changeset
     4
// under the terms of "Eclipse Public License v1.0"
hgs
parents:
diff changeset
     5
// which accompanies this distribution, and is available
hgs
parents:
diff changeset
     6
// at the URL "http://www.eclipse.org/legal/epl-v10.html".
hgs
parents:
diff changeset
     7
//
hgs
parents:
diff changeset
     8
// Initial Contributors:
hgs
parents:
diff changeset
     9
// Nokia Corporation - initial contribution.
hgs
parents:
diff changeset
    10
//
hgs
parents:
diff changeset
    11
// Contributors:
hgs
parents:
diff changeset
    12
//
hgs
parents:
diff changeset
    13
// Description:
hgs
parents:
diff changeset
    14
// Trace Data parser
hgs
parents:
diff changeset
    15
//
hgs
parents:
diff changeset
    16
hgs
parents:
diff changeset
    17
#ifndef __TRACEDATAPARSER_H__
hgs
parents:
diff changeset
    18
#define __TRACEDATAPARSER_H__
hgs
parents:
diff changeset
    19
hgs
parents:
diff changeset
    20
#include <e32base.h>
hgs
parents:
diff changeset
    21
#include <opensystemtrace.h>
hgs
parents:
diff changeset
    22
#include <bautils.h> 
hgs
parents:
diff changeset
    23
hgs
parents:
diff changeset
    24
// Constants
hgs
parents:
diff changeset
    25
const TUint32 KHeaderVersion            = 0x01;
hgs
parents:
diff changeset
    26
const TUint32 KProtocolIdAscii          = 0x02;
hgs
parents:
diff changeset
    27
const TUint32 KProtocolIdSimpleTrace    = 0x03;
hgs
parents:
diff changeset
    28
const TUint32 KXtiHeaderVersion         = 0x1D;
hgs
parents:
diff changeset
    29
const TUint32 KXtiProtocolIdSimpleTrace = 0x08;
hgs
parents:
diff changeset
    30
const TInt KXtiTraceTypeIndex           = 20;
hgs
parents:
diff changeset
    31
const TInt KXtiLengthIndex              = 5;
hgs
parents:
diff changeset
    32
const TInt KMinimumPrimingTracesInBatch = 2;
hgs
parents:
diff changeset
    33
const TInt KMinMilliSecondsBatchGap     = 10;
hgs
parents:
diff changeset
    34
const TInt KExpectedPrintfMaxLength     = 32;
hgs
parents:
diff changeset
    35
const TInt KFileBufferSize              = 1024*10;
hgs
parents:
diff changeset
    36
const TInt KMaxNumberBufferLength       = 8;
hgs
parents:
diff changeset
    37
const TInt KMinSizeOstHeader            = 3;
hgs
parents:
diff changeset
    38
const TInt KMinSizeOstBinaryHeader      = 8;
hgs
parents:
diff changeset
    39
const TInt KMinSizeOstAsciiHeader       = 8;
hgs
parents:
diff changeset
    40
const TInt KMinSizeBinaryHeader         = 12;
hgs
parents:
diff changeset
    41
const TInt KMinSizeXtiHeader            = 20;
hgs
parents:
diff changeset
    42
hgs
parents:
diff changeset
    43
// Literals
hgs
parents:
diff changeset
    44
_LIT8(KDroppedTrace,            "* Dropped Trace");
hgs
parents:
diff changeset
    45
_LIT8(KFastMutexNameSystemLock, "System Lock");
hgs
parents:
diff changeset
    46
_LIT8(KFastMutexNameMsgLock,    "MsgLock");
hgs
parents:
diff changeset
    47
_LIT8(KFastMutexNameObjLock,    "ObjLock");
hgs
parents:
diff changeset
    48
_LIT8(KFastMutexNameLogonLock,  "LogonLock");
hgs
parents:
diff changeset
    49
_LIT8(KCodeSegsName1,           "EKern.exe");
hgs
parents:
diff changeset
    50
_LIT8(KCodeSegsName2,           "EFile.exe");
hgs
parents:
diff changeset
    51
hgs
parents:
diff changeset
    52
hgs
parents:
diff changeset
    53
// Class containing trace header settings
hgs
parents:
diff changeset
    54
class TTraceHeaderSettings
hgs
parents:
diff changeset
    55
{
hgs
parents:
diff changeset
    56
public:
hgs
parents:
diff changeset
    57
    TUint8          iCategory;
hgs
parents:
diff changeset
    58
    TUint8          iSubCategory;
hgs
parents:
diff changeset
    59
    TComponentId    iComponentID;
hgs
parents:
diff changeset
    60
    TUint32         iTraceWord;
hgs
parents:
diff changeset
    61
    TUint32         iTimestamp;
hgs
parents:
diff changeset
    62
    TInt            iLengthOfPayload;
hgs
parents:
diff changeset
    63
    TUint8          iHeaderFlags;
hgs
parents:
diff changeset
    64
    TInt            iMultiPartType;
hgs
parents:
diff changeset
    65
    TBool           iPrintfTrace;
hgs
parents:
diff changeset
    66
    TBool           iFromTestWriter;
hgs
parents:
diff changeset
    67
    TUint32         iMultiPartTraceID;
hgs
parents:
diff changeset
    68
};
hgs
parents:
diff changeset
    69
hgs
parents:
diff changeset
    70
/*
hgs
parents:
diff changeset
    71
 * Trace Data Parser class of static parsing functions
hgs
parents:
diff changeset
    72
 * 
hgs
parents:
diff changeset
    73
 * The following trace types are supported:
hgs
parents:
diff changeset
    74
 *     OST traces (ascii and binary)
hgs
parents:
diff changeset
    75
 *     XTIv3 traces (ascii and binary)
hgs
parents:
diff changeset
    76
 *     Traces from the Test Writer (ascii and binary)
hgs
parents:
diff changeset
    77
 */
hgs
parents:
diff changeset
    78
class TTraceDataParser
hgs
parents:
diff changeset
    79
{
hgs
parents:
diff changeset
    80
public:
hgs
parents:
diff changeset
    81
hgs
parents:
diff changeset
    82
    IMPORT_C static TUint32 Swap(TUint32 x);
hgs
parents:
diff changeset
    83
    IMPORT_C static TUint32 ReadUint32FromBuf(TUint8*& aBuf, TBool aFromTestWriter = EFalse);
hgs
parents:
diff changeset
    84
    IMPORT_C static TUint16 ReadUint16FromBuf(TUint8*& aBuf);
hgs
parents:
diff changeset
    85
hgs
parents:
diff changeset
    86
    
hgs
parents:
diff changeset
    87
/*
hgs
parents:
diff changeset
    88
 * Validate the trace data in buffer
hgs
parents:
diff changeset
    89
 *
hgs
parents:
diff changeset
    90
 * @param aBuffer the buffer containing the trace data
hgs
parents:
diff changeset
    91
 * @param aExpectedNum expected number of traces
hgs
parents:
diff changeset
    92
 * @param aComponentID component ID of traces
hgs
parents:
diff changeset
    93
 * @param aGroupID group ID of traces
hgs
parents:
diff changeset
    94
 * @param aData expected trace data
hgs
parents:
diff changeset
    95
 * @param aTraceWord trace word of traces
hgs
parents:
diff changeset
    96
 * @param aIdentical indicates that the payload of each trace packet should be identical
hgs
parents:
diff changeset
    97
 * @param aBufferMode The mode of the trace buffer.. 0=straight, 1=circular.
hgs
parents:
diff changeset
    98
 * @param aOrdinalData indicates whether the payload data reflects its position in the stream of trace packets
hgs
parents:
diff changeset
    99
 * @param aNumTraces number of traces written to circular buffer
hgs
parents:
diff changeset
   100
 * @param aMaxTraces maximum number of traces circular buffer can hold
hgs
parents:
diff changeset
   101
 * @return Standard Symbian error code
hgs
parents:
diff changeset
   102
 */
hgs
parents:
diff changeset
   103
    IMPORT_C static TInt ValidatePayload(TDesC8&        aBuffer,
hgs
parents:
diff changeset
   104
                                         TInt           aExpectedNum,
hgs
parents:
diff changeset
   105
                                         TComponentId   aComponentID,
hgs
parents:
diff changeset
   106
                                         TGroupId       aGroupID, 
hgs
parents:
diff changeset
   107
                                         TUint32        aData, 
hgs
parents:
diff changeset
   108
                                         TUint32        aTraceWord,
hgs
parents:
diff changeset
   109
                                         TBool          aIdentical      =EFalse, 
hgs
parents:
diff changeset
   110
                                         TInt           aBufferMode     =0, 
hgs
parents:
diff changeset
   111
                                         TBool          aOrdinalData    =EFalse,
hgs
parents:
diff changeset
   112
                                         TInt           aNumTraces      =0,
hgs
parents:
diff changeset
   113
                                         TInt           aMaxTraces      =0);
hgs
parents:
diff changeset
   114
hgs
parents:
diff changeset
   115
/*
hgs
parents:
diff changeset
   116
 * Validate the single trace data in buffer
hgs
parents:
diff changeset
   117
 * 
hgs
parents:
diff changeset
   118
 * @param aBuffer the buffer containing the trace data
hgs
parents:
diff changeset
   119
 * @param aTracePresent determines if trace data should be present or not
hgs
parents:
diff changeset
   120
 * @param aGroupID expected GID
hgs
parents:
diff changeset
   121
 * @param aComponentID expected CID
hgs
parents:
diff changeset
   122
 * @param aData expected trace data
hgs
parents:
diff changeset
   123
 * @param aPrintfTrace determines if trace data should be printf data or not
hgs
parents:
diff changeset
   124
 * @param aMissingTrace determines if trace data should indicate missing data or not
hgs
parents:
diff changeset
   125
 * @param aExpectedPrintfTrace expected printf trace data
hgs
parents:
diff changeset
   126
 * @return Standard Symbian error code
hgs
parents:
diff changeset
   127
 */
hgs
parents:
diff changeset
   128
    IMPORT_C static TInt ValidatePayload(TDesC8&        aBuffer, 
hgs
parents:
diff changeset
   129
                                         TBool          aTracePresent, 
hgs
parents:
diff changeset
   130
                                         TGroupId       aGroupID, 
hgs
parents:
diff changeset
   131
                                         TComponentId   aComponentID, 
hgs
parents:
diff changeset
   132
                                         TUint32        aData,
hgs
parents:
diff changeset
   133
                                         TBool          aPrintfTrace         =EFalse,
hgs
parents:
diff changeset
   134
                                         TBool          aMissingTrace        =EFalse,
hgs
parents:
diff changeset
   135
                                         TDesC8*        aExpectedPrintfTrace =NULL);
hgs
parents:
diff changeset
   136
hgs
parents:
diff changeset
   137
/*
hgs
parents:
diff changeset
   138
 * Parse trace data for kernel priming data
hgs
parents:
diff changeset
   139
 * 
hgs
parents:
diff changeset
   140
 * Note that this function can only verify priming data if the group ID is EThreadIdentification, EFastMutex or ECodeSegs,
hgs
parents:
diff changeset
   141
 * otherwise KErrNotSupported is returned if aVerifyData is ETrue
hgs
parents:
diff changeset
   142
 *
hgs
parents:
diff changeset
   143
 * @param aBuffer Buffer containing the trace data
hgs
parents:
diff changeset
   144
 * @param aGroupId Group ID of traces to parse
hgs
parents:
diff changeset
   145
 * @param aNumPrimingTraces Output parameter set to number of priming traces found for given group ID
hgs
parents:
diff changeset
   146
 * @param aNumTraces Output parameter set to total number of traces found for given group ID
hgs
parents:
diff changeset
   147
 * @param aVerifyData Flag indicating if priming data should be verified
hgs
parents:
diff changeset
   148
 * @param aVerificationData1 Optional first data required for verifying priming data
hgs
parents:
diff changeset
   149
 * @param aVerificationData1 Optional second data required for verifying priming data
hgs
parents:
diff changeset
   150
 * @return Standard Symbian error code
hgs
parents:
diff changeset
   151
 */
hgs
parents:
diff changeset
   152
    IMPORT_C static TInt ParsePrimingDataL(TDesC8&       aBuffer,
hgs
parents:
diff changeset
   153
                                           TGroupId      aGroupId,
hgs
parents:
diff changeset
   154
                                           TInt&         aNumPrimingTraces,
hgs
parents:
diff changeset
   155
                                           TInt&         aNumTraces,
hgs
parents:
diff changeset
   156
                                           TBool         aVerifyData         = EFalse, 
hgs
parents:
diff changeset
   157
                                           TUint32       aVerificationData1  = 0, 
hgs
parents:
diff changeset
   158
                                           TUint32       aVerificationData2  = 0);
hgs
parents:
diff changeset
   159
hgs
parents:
diff changeset
   160
/*
hgs
parents:
diff changeset
   161
 * Parse trace data for kernel priming data
hgs
parents:
diff changeset
   162
 * 
hgs
parents:
diff changeset
   163
 * Note that this function can only verify priming data if the group ID is EThreadIdentification, EFastMutex or ECodeSegs,
hgs
parents:
diff changeset
   164
 * otherwise KErrNotSupported is returned if aVerifyData is ETrue
hgs
parents:
diff changeset
   165
 *
hgs
parents:
diff changeset
   166
 * @param aFilePath Full path of file containing the trace data
hgs
parents:
diff changeset
   167
 * @param aFs File system object
hgs
parents:
diff changeset
   168
 * @param aGroupId Group ID of traces to parse
hgs
parents:
diff changeset
   169
 * @param aNumPrimingTraces Output parameter set to number of priming traces found for given group ID
hgs
parents:
diff changeset
   170
 * @param aNumTraces Output parameter set to total number of traces found for given group ID
hgs
parents:
diff changeset
   171
 * @param aVerifyData Flag indicating if priming data should be verified
hgs
parents:
diff changeset
   172
 * @param aVerificationData1 Optional first data required for verifying priming data
hgs
parents:
diff changeset
   173
 * @param aVerificationData1 Optional second data required for verifying priming data
hgs
parents:
diff changeset
   174
 * @return Standard Symbian error code
hgs
parents:
diff changeset
   175
 */
hgs
parents:
diff changeset
   176
    IMPORT_C static TInt ParsePrimingDataL(const TDesC&  aFilePath,
hgs
parents:
diff changeset
   177
                                           RFs&          aFs,
hgs
parents:
diff changeset
   178
                                           TGroupId      aGroupId,
hgs
parents:
diff changeset
   179
                                           TInt&         aNumPrimingTraces,
hgs
parents:
diff changeset
   180
                                           TInt&         aNumTraces,
hgs
parents:
diff changeset
   181
                                           TBool         aVerifyData         = EFalse, 
hgs
parents:
diff changeset
   182
                                           TUint32       aVerificationData1  = 0, 
hgs
parents:
diff changeset
   183
                                           TUint32       aVerificationData2  = 0);
hgs
parents:
diff changeset
   184
hgs
parents:
diff changeset
   185
/*
hgs
parents:
diff changeset
   186
 * Parse trace data for Printf data, returning the number of occurances of a given string
hgs
parents:
diff changeset
   187
 *
hgs
parents:
diff changeset
   188
 * @param aBuffer Buffer containing the trace data
hgs
parents:
diff changeset
   189
 * @param aFindString String to search for
hgs
parents:
diff changeset
   190
 * @param aNumFound Output parameter set to number of occurances of given string
hgs
parents:
diff changeset
   191
 * @return Standard Symbian error code
hgs
parents:
diff changeset
   192
 */
hgs
parents:
diff changeset
   193
    IMPORT_C static TInt DataHasPrintfString(TDesC8&        aBuffer,
hgs
parents:
diff changeset
   194
                                             const TDesC8&  aFindString,
hgs
parents:
diff changeset
   195
                                             TInt&          aNumFound);
hgs
parents:
diff changeset
   196
hgs
parents:
diff changeset
   197
    
hgs
parents:
diff changeset
   198
/*
hgs
parents:
diff changeset
   199
 * Parse trace data file for Printf data, returning the number of occurances of a given string
hgs
parents:
diff changeset
   200
 *
hgs
parents:
diff changeset
   201
 * @param aFilePath Full path of file containing the trace data
hgs
parents:
diff changeset
   202
 * @param aFs File system object
hgs
parents:
diff changeset
   203
 * @param aFindString String to search for
hgs
parents:
diff changeset
   204
 * @param aNumFound Output parameter set to number of occurances of given string
hgs
parents:
diff changeset
   205
 * @return Standard Symbian error code
hgs
parents:
diff changeset
   206
 */
hgs
parents:
diff changeset
   207
    IMPORT_C static TInt DataHasPrintfStringL(const TDesC&   aFilePath,
hgs
parents:
diff changeset
   208
                                              RFs&           aFs,
hgs
parents:
diff changeset
   209
                                              const TDesC8&  aFindString,
hgs
parents:
diff changeset
   210
                                              TInt&          aNumFound);
hgs
parents:
diff changeset
   211
hgs
parents:
diff changeset
   212
    
hgs
parents:
diff changeset
   213
/*
hgs
parents:
diff changeset
   214
 * Parse trace data file for a sequence of traces
hgs
parents:
diff changeset
   215
 *
hgs
parents:
diff changeset
   216
 * @param aFilePath Full path of file containing the trace data
hgs
parents:
diff changeset
   217
 * @param aFs File system object
hgs
parents:
diff changeset
   218
 * @param aLastNumberFound Output parameter set to number in last occurances of given string
hgs
parents:
diff changeset
   219
 * @param aNumDroppedTraces Output parameter set to number of dropped traces
hgs
parents:
diff changeset
   220
 * @param aFindPrintfPattern Pattern that indicates where in the printf string the number will be, using an asterisk
hgs
parents:
diff changeset
   221
 *                           This is only used if aGroupId = BTrace::ERDebugPrintf
hgs
parents:
diff changeset
   222
 * @param aGroupId Group ID of traces to parse
hgs
parents:
diff changeset
   223
 * @param aComponentID Component ID of traces to parse
hgs
parents:
diff changeset
   224
 * @return Standard Symbian error code
hgs
parents:
diff changeset
   225
 */
hgs
parents:
diff changeset
   226
    IMPORT_C static TInt DataHasTraceSequenceL(const TDesC&   aFilePath,
hgs
parents:
diff changeset
   227
                                               RFs&           aFs,
hgs
parents:
diff changeset
   228
                                               TInt&          aLastNumberFound,
hgs
parents:
diff changeset
   229
                                               TInt&          aNumDroppedTraces, 
hgs
parents:
diff changeset
   230
                                               TDesC8*        aFindPrintfPattern,
hgs
parents:
diff changeset
   231
                                               TGroupId       aGroupId = BTrace::ERDebugPrintf,
hgs
parents:
diff changeset
   232
                                               TComponentId   aComponentID = 0);
hgs
parents:
diff changeset
   233
hgs
parents:
diff changeset
   234
/*
hgs
parents:
diff changeset
   235
 * Get Printf string from single trace data
hgs
parents:
diff changeset
   236
 *
hgs
parents:
diff changeset
   237
 * @param aBuffer Buffer containing the trace data
hgs
parents:
diff changeset
   238
 * @param aPrintfString Output parameter set to the print string in the trace data
hgs
parents:
diff changeset
   239
 * @return Standard Symbian error code
hgs
parents:
diff changeset
   240
 */
hgs
parents:
diff changeset
   241
    IMPORT_C static TInt GetPrintfFromTrace(TDesC8& aBuffer, TDes8& aPrintfString);
hgs
parents:
diff changeset
   242
hgs
parents:
diff changeset
   243
/*
hgs
parents:
diff changeset
   244
 * Parse trace data for multipart data, returning the number of traces found and total size of trace data
hgs
parents:
diff changeset
   245
 * The data is expected to contain a sequence of integers, starting at 0
hgs
parents:
diff changeset
   246
 *
hgs
parents:
diff changeset
   247
 * @param aBuffer Buffer containing the trace data
hgs
parents:
diff changeset
   248
 * @param aGroupId Group ID of traces to parse
hgs
parents:
diff changeset
   249
 * @param aComponentID Component ID of traces to parse
hgs
parents:
diff changeset
   250
 * @param aMultipartDataSize Output parameter set to total size of data in multipart trace
hgs
parents:
diff changeset
   251
 * @param aNumMultipartTraces Output parameter set to number of traces that make up multipart trace
hgs
parents:
diff changeset
   252
 * @return Standard Symbian error code
hgs
parents:
diff changeset
   253
 */
hgs
parents:
diff changeset
   254
    IMPORT_C static TInt ValidateMultipartTraces(TDesC8&        aBuffer,
hgs
parents:
diff changeset
   255
                                                 TGroupId       aGroupID, 
hgs
parents:
diff changeset
   256
                                                 TComponentId   aComponentID, 
hgs
parents:
diff changeset
   257
                                                 TInt&          aMultipartDataSize, 
hgs
parents:
diff changeset
   258
                                                 TInt&          aNumMultipartTraces);
hgs
parents:
diff changeset
   259
hgs
parents:
diff changeset
   260
private:
hgs
parents:
diff changeset
   261
hgs
parents:
diff changeset
   262
    static TBool IsStartOfKernelPrimingBatch(TUint8* aBuffer, TGroupId aGroupId, TUint8 aCategory, TUint8 aSubCategory);
hgs
parents:
diff changeset
   263
    static TInt IsPotentialPrimingTrace(TUint8 aCategory, TUint8 aSubCategory, TBool& aIsPotentialPrimingTrace);
hgs
parents:
diff changeset
   264
    static TBool StringsMatch(const TDesC8& aString1, const TDesC8& aString2);
hgs
parents:
diff changeset
   265
    static TPtr8 ReadTracePrintf(TUint8* aData, TInt aSize);
hgs
parents:
diff changeset
   266
    static TInt ParseStringForNumber(const TDesC8& aBuffer, const TDesC8& aFindStringPattern, TInt& aNumberFound);
hgs
parents:
diff changeset
   267
hgs
parents:
diff changeset
   268
    static TInt ParseHeader(TUint8*&                aData, 
hgs
parents:
diff changeset
   269
                            TInt                    aSize, 
hgs
parents:
diff changeset
   270
                            TTraceHeaderSettings&   aTraceHeaderSettings);
hgs
parents:
diff changeset
   271
    
hgs
parents:
diff changeset
   272
    static TInt IsInPrimingBatch(TUint8  aCategory, 
hgs
parents:
diff changeset
   273
                                 TUint8  aSubCategory, 
hgs
parents:
diff changeset
   274
                                 TUint32 aTimeDifference, 
hgs
parents:
diff changeset
   275
                                 TBool&  aIsInPrimingBatch, 
hgs
parents:
diff changeset
   276
                                 TBool&  aFirstTrace, 
hgs
parents:
diff changeset
   277
                                 TBool&  aStartOfBatch);
hgs
parents:
diff changeset
   278
hgs
parents:
diff changeset
   279
    static TInt GetPrimingVerificationDataL(TUint8*  aBuffer, 
hgs
parents:
diff changeset
   280
                                            TInt     aSize, 
hgs
parents:
diff changeset
   281
                                            TGroupId aGroupId, 
hgs
parents:
diff changeset
   282
                                            TUint32& aVerificationData1, 
hgs
parents:
diff changeset
   283
                                            TUint32& aVerificationData2,
hgs
parents:
diff changeset
   284
                                            RFile*   aFile = NULL);
hgs
parents:
diff changeset
   285
hgs
parents:
diff changeset
   286
    static TInt GetThreadPrimingVerificationDataL(TUint8*  aBuffer, 
hgs
parents:
diff changeset
   287
                                                  TInt     aSize, 
hgs
parents:
diff changeset
   288
                                                  TUint32& aThreadAddr, 
hgs
parents:
diff changeset
   289
                                                  TUint32& aProcessAddr,
hgs
parents:
diff changeset
   290
                                                  RFile*   aFile = NULL);
hgs
parents:
diff changeset
   291
hgs
parents:
diff changeset
   292
    static TInt GetCodeSegsVerificationDataL(TUint8*  aBuffer, 
hgs
parents:
diff changeset
   293
                                             TInt     aSize, 
hgs
parents:
diff changeset
   294
                                             TUint32& aSegAddr1, 
hgs
parents:
diff changeset
   295
                                             TUint32& aSegAddr2,
hgs
parents:
diff changeset
   296
                                             RFile*   aFile = NULL);
hgs
parents:
diff changeset
   297
hgs
parents:
diff changeset
   298
    static TInt VerifyPrimingData(TUint8* aBuffer, 
hgs
parents:
diff changeset
   299
                                  TInt    aSize, 
hgs
parents:
diff changeset
   300
                                  TUint8  aCategory, 
hgs
parents:
diff changeset
   301
                                  TUint8  aSubCategory, 
hgs
parents:
diff changeset
   302
                                  TInt&   aElementsFound,
hgs
parents:
diff changeset
   303
                                  TBool   aFromTestWriter, 
hgs
parents:
diff changeset
   304
                                  TUint32 aVerificationData1, 
hgs
parents:
diff changeset
   305
                                  TUint32 aVerificationData2);    
hgs
parents:
diff changeset
   306
hgs
parents:
diff changeset
   307
    static TInt VerifyThreadPrimingData(TUint8* aBuffer, 
hgs
parents:
diff changeset
   308
                                        TInt    aSize, 
hgs
parents:
diff changeset
   309
                                        TUint8  aSubCategory, 
hgs
parents:
diff changeset
   310
                                        TInt&   aElementsFound,
hgs
parents:
diff changeset
   311
                                        TBool   aFromTestWriter, 
hgs
parents:
diff changeset
   312
                                        TUint32 aThreadAddr, 
hgs
parents:
diff changeset
   313
                                        TUint32 aProcessAddr);    
hgs
parents:
diff changeset
   314
hgs
parents:
diff changeset
   315
    static TInt VerifyFastMutexPrimingData(TUint8* aBuffer, 
hgs
parents:
diff changeset
   316
                                           TInt    aSize, 
hgs
parents:
diff changeset
   317
                                           TUint8  aSubCategory, 
hgs
parents:
diff changeset
   318
                                           TInt&   aElementsFound,
hgs
parents:
diff changeset
   319
                                           TBool   aFromTestWriter);    
hgs
parents:
diff changeset
   320
hgs
parents:
diff changeset
   321
    static TInt VerifyCodeSegsPrimingData(TUint8* aBuffer, 
hgs
parents:
diff changeset
   322
                                          TInt    aSize, 
hgs
parents:
diff changeset
   323
                                          TUint8  aSubCategory, 
hgs
parents:
diff changeset
   324
                                          TInt&   aElementsFound,
hgs
parents:
diff changeset
   325
                                          TBool   aFromTestWriter, 
hgs
parents:
diff changeset
   326
                                          TUint32 aSegAddr1, 
hgs
parents:
diff changeset
   327
                                          TUint32 aSegAddr2);    
hgs
parents:
diff changeset
   328
hgs
parents:
diff changeset
   329
    static TInt ReadNextChunkFromFile(TDes8&   aFileBuffer, 
hgs
parents:
diff changeset
   330
                                      RFile&   aFile, 
hgs
parents:
diff changeset
   331
                                      TInt&    aFilePosition,
hgs
parents:
diff changeset
   332
                                      TUint8*& aData,
hgs
parents:
diff changeset
   333
                                      TUint8*& aStartOfData,
hgs
parents:
diff changeset
   334
                                      TUint8*& aEndOfData);
hgs
parents:
diff changeset
   335
hgs
parents:
diff changeset
   336
    static TInt CreateFileBuffer(RBuf8&  aFileBuffer, 
hgs
parents:
diff changeset
   337
                                 RFile&  aFile);
hgs
parents:
diff changeset
   338
    
hgs
parents:
diff changeset
   339
};
hgs
parents:
diff changeset
   340
hgs
parents:
diff changeset
   341
#endif // __TRACEDATAPARSER_H__
hgs
parents:
diff changeset
   342