perfsrv/memspy/Driver/Shared/MemSpyDriverObjectsInternal.h
author hgs
Mon, 06 Sep 2010 15:00:47 +0300
changeset 51 98307c651589
child 52 c2f44e33b468
permissions -rw-r--r--
201035
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
51
hgs
parents:
diff changeset
     1
/*
hgs
parents:
diff changeset
     2
* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). 
hgs
parents:
diff changeset
     3
* All rights reserved.
hgs
parents:
diff changeset
     4
* This component and the accompanying materials are made available
hgs
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
hgs
parents:
diff changeset
     6
* which accompanies this distribution, and is available
hgs
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
hgs
parents:
diff changeset
     8
*
hgs
parents:
diff changeset
     9
* Initial Contributors:
hgs
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
hgs
parents:
diff changeset
    11
*
hgs
parents:
diff changeset
    12
* Contributors:
hgs
parents:
diff changeset
    13
*
hgs
parents:
diff changeset
    14
* Description:
hgs
parents:
diff changeset
    15
*
hgs
parents:
diff changeset
    16
*/
hgs
parents:
diff changeset
    17
hgs
parents:
diff changeset
    18
#ifndef MEMSPYDRIVEROBJECTSINTERNAL_H
hgs
parents:
diff changeset
    19
#define MEMSPYDRIVEROBJECTSINTERNAL_H
hgs
parents:
diff changeset
    20
hgs
parents:
diff changeset
    21
// System includes
hgs
parents:
diff changeset
    22
#include <e32cmn.h>
hgs
parents:
diff changeset
    23
hgs
parents:
diff changeset
    24
// User includes
hgs
parents:
diff changeset
    25
#include <memspy/driver/memspydriverobjectsshared.h>
hgs
parents:
diff changeset
    26
#include <memspy/driver/memspydriverenumerationsshared.h>
hgs
parents:
diff changeset
    27
#include "MemSpyDriverEnumerationsInternal.h"
hgs
parents:
diff changeset
    28
hgs
parents:
diff changeset
    29
hgs
parents:
diff changeset
    30
hgs
parents:
diff changeset
    31
hgs
parents:
diff changeset
    32
class TMemSpyDriverInternalHeapRequestParameters
hgs
parents:
diff changeset
    33
    {
hgs
parents:
diff changeset
    34
public:
hgs
parents:
diff changeset
    35
    inline TMemSpyDriverInternalHeapRequestParameters()
hgs
parents:
diff changeset
    36
        : iTid(0), iRHeapVTable(0), iBuildFreeCellList(EFalse), iBuildAllocCellList(EFalse), iDebugAllocator(EFalse), iMasterInfo(NULL)
hgs
parents:
diff changeset
    37
        {
hgs
parents:
diff changeset
    38
        }
hgs
parents:
diff changeset
    39
hgs
parents:
diff changeset
    40
public: // Params IN
hgs
parents:
diff changeset
    41
    TUint iTid;
hgs
parents:
diff changeset
    42
    TUint32 iRHeapVTable;
hgs
parents:
diff changeset
    43
    TBool iBuildFreeCellList;
hgs
parents:
diff changeset
    44
	TBool iBuildAllocCellList;
hgs
parents:
diff changeset
    45
hgs
parents:
diff changeset
    46
public: // Params IN or OUT (IN in User heap requests, OUT in Kernel heap requests)
hgs
parents:
diff changeset
    47
    TBool iDebugAllocator;
hgs
parents:
diff changeset
    48
hgs
parents:
diff changeset
    49
public: // Params IN and OUT
hgs
parents:
diff changeset
    50
    TMemSpyHeapInfo* iMasterInfo;
hgs
parents:
diff changeset
    51
    };
hgs
parents:
diff changeset
    52
hgs
parents:
diff changeset
    53
hgs
parents:
diff changeset
    54
hgs
parents:
diff changeset
    55
hgs
parents:
diff changeset
    56
hgs
parents:
diff changeset
    57
	
hgs
parents:
diff changeset
    58
hgs
parents:
diff changeset
    59
hgs
parents:
diff changeset
    60
hgs
parents:
diff changeset
    61
/**
hgs
parents:
diff changeset
    62
 * Parameters for User & Kernel heap data fetch
hgs
parents:
diff changeset
    63
 */
hgs
parents:
diff changeset
    64
struct TMemSpyDriverInternalHeapDataParams
hgs
parents:
diff changeset
    65
    {
hgs
parents:
diff changeset
    66
    TUint iTid;
hgs
parents:
diff changeset
    67
    TUint iRHeapVTable;
hgs
parents:
diff changeset
    68
    TDes8* iDes; // Not used during kernel heap fetch
hgs
parents:
diff changeset
    69
    TInt iRemaining; // Not used during kernel heap fetch
hgs
parents:
diff changeset
    70
    TUint iReadAddress;
hgs
parents:
diff changeset
    71
    TUint32 iChecksum;
hgs
parents:
diff changeset
    72
    TBool iDebugAllocator;
hgs
parents:
diff changeset
    73
    };
hgs
parents:
diff changeset
    74
hgs
parents:
diff changeset
    75
hgs
parents:
diff changeset
    76
hgs
parents:
diff changeset
    77
/**
hgs
parents:
diff changeset
    78
 *
hgs
parents:
diff changeset
    79
 */
hgs
parents:
diff changeset
    80
struct TMemSpyDriverInternalStackDataParams
hgs
parents:
diff changeset
    81
    {
hgs
parents:
diff changeset
    82
    TUint iTid;
hgs
parents:
diff changeset
    83
    TDes8* iDes;
hgs
parents:
diff changeset
    84
    TMemSpyDriverDomainType iDomain;
hgs
parents:
diff changeset
    85
    TBool iEntireStack;
hgs
parents:
diff changeset
    86
    TInt iRemaining;
hgs
parents:
diff changeset
    87
    };
hgs
parents:
diff changeset
    88
hgs
parents:
diff changeset
    89
hgs
parents:
diff changeset
    90
/**
hgs
parents:
diff changeset
    91
 *
hgs
parents:
diff changeset
    92
 */
hgs
parents:
diff changeset
    93
struct TMemSpyDriverInternalChunkHandleParams
hgs
parents:
diff changeset
    94
	{
hgs
parents:
diff changeset
    95
	TUint iId;
hgs
parents:
diff changeset
    96
	TMemSpyDriverPrivateObjectType iType;
hgs
parents:
diff changeset
    97
	TAny** iHandles;
hgs
parents:
diff changeset
    98
	TInt* iCountPtr;
hgs
parents:
diff changeset
    99
    TInt iMaxCount;
hgs
parents:
diff changeset
   100
	};
hgs
parents:
diff changeset
   101
hgs
parents:
diff changeset
   102
hgs
parents:
diff changeset
   103
/**
hgs
parents:
diff changeset
   104
 *
hgs
parents:
diff changeset
   105
 */
hgs
parents:
diff changeset
   106
struct TMemSpyDriverInternalChunkInfoParams
hgs
parents:
diff changeset
   107
	{
hgs
parents:
diff changeset
   108
	TAny* iHandle;
hgs
parents:
diff changeset
   109
	TAny* iBaseAddress;
hgs
parents:
diff changeset
   110
	TInt iSize;
hgs
parents:
diff changeset
   111
	TInt iMaxSize;
hgs
parents:
diff changeset
   112
	TUint iOwnerId;
hgs
parents:
diff changeset
   113
	TBuf8<KMaxFullName> iName;
hgs
parents:
diff changeset
   114
    TMemSpyDriverChunkType iType;
hgs
parents:
diff changeset
   115
    TInt iAttributes;
hgs
parents:
diff changeset
   116
	};
hgs
parents:
diff changeset
   117
hgs
parents:
diff changeset
   118
hgs
parents:
diff changeset
   119
/**
hgs
parents:
diff changeset
   120
 *
hgs
parents:
diff changeset
   121
 */
hgs
parents:
diff changeset
   122
struct TMemSpyDriverInternalCodeSnapshotParams
hgs
parents:
diff changeset
   123
	{
hgs
parents:
diff changeset
   124
	TUint iFilter;
hgs
parents:
diff changeset
   125
	TAny** iHandles;
hgs
parents:
diff changeset
   126
	TInt* iCountPtr;
hgs
parents:
diff changeset
   127
    TInt iMaxCount;
hgs
parents:
diff changeset
   128
	};
hgs
parents:
diff changeset
   129
hgs
parents:
diff changeset
   130
hgs
parents:
diff changeset
   131
hgs
parents:
diff changeset
   132
/**
hgs
parents:
diff changeset
   133
 *
hgs
parents:
diff changeset
   134
 */
hgs
parents:
diff changeset
   135
struct TMemSpyDriverInternalCodeSegParams
hgs
parents:
diff changeset
   136
	{
hgs
parents:
diff changeset
   137
	TUint iPid;
hgs
parents:
diff changeset
   138
	TAny* iHandle;
hgs
parents:
diff changeset
   139
	TMemSpyDriverCodeSegInfo* iInfoPointer;
hgs
parents:
diff changeset
   140
	};
hgs
parents:
diff changeset
   141
hgs
parents:
diff changeset
   142
hgs
parents:
diff changeset
   143
hgs
parents:
diff changeset
   144
hgs
parents:
diff changeset
   145
/**
hgs
parents:
diff changeset
   146
 *
hgs
parents:
diff changeset
   147
 */
hgs
parents:
diff changeset
   148
struct TMemSpyDriverInternalContainerHandleParams
hgs
parents:
diff changeset
   149
	{
hgs
parents:
diff changeset
   150
    TInt iTidOrPid;
hgs
parents:
diff changeset
   151
    TMemSpyDriverThreadOrProcess iHandleSource;
hgs
parents:
diff changeset
   152
    TMemSpyDriverContainerType iContainer;
hgs
parents:
diff changeset
   153
	TAny** iHandles;
hgs
parents:
diff changeset
   154
	TInt* iCountPtr;
hgs
parents:
diff changeset
   155
    TInt iMaxCount;
hgs
parents:
diff changeset
   156
	};
hgs
parents:
diff changeset
   157
hgs
parents:
diff changeset
   158
hgs
parents:
diff changeset
   159
hgs
parents:
diff changeset
   160
hgs
parents:
diff changeset
   161
/**
hgs
parents:
diff changeset
   162
 *
hgs
parents:
diff changeset
   163
 */
hgs
parents:
diff changeset
   164
struct TMemSpyDriverInternalServerSessionHandleParams
hgs
parents:
diff changeset
   165
	{
hgs
parents:
diff changeset
   166
    TAny* iServerHandle;
hgs
parents:
diff changeset
   167
	TAny** iSessionHandles;
hgs
parents:
diff changeset
   168
	TInt* iSessionCountPtr;
hgs
parents:
diff changeset
   169
    TInt iMaxCount;
hgs
parents:
diff changeset
   170
	};
hgs
parents:
diff changeset
   171
hgs
parents:
diff changeset
   172
hgs
parents:
diff changeset
   173
hgs
parents:
diff changeset
   174
/**
hgs
parents:
diff changeset
   175
 *
hgs
parents:
diff changeset
   176
 */
hgs
parents:
diff changeset
   177
struct TMemSpyDriverInternalContainerObjectParams
hgs
parents:
diff changeset
   178
	{
hgs
parents:
diff changeset
   179
    TUint iTid;
hgs
parents:
diff changeset
   180
	TAny* iHandle;
hgs
parents:
diff changeset
   181
	TBuf8<KMaxFullName> iFullName;
hgs
parents:
diff changeset
   182
	};
hgs
parents:
diff changeset
   183
hgs
parents:
diff changeset
   184
hgs
parents:
diff changeset
   185
hgs
parents:
diff changeset
   186
hgs
parents:
diff changeset
   187
hgs
parents:
diff changeset
   188
/**
hgs
parents:
diff changeset
   189
 *
hgs
parents:
diff changeset
   190
 */
hgs
parents:
diff changeset
   191
struct TMemSpyDriverInternalReadMemParams
hgs
parents:
diff changeset
   192
	{
hgs
parents:
diff changeset
   193
	TUint iTid;
hgs
parents:
diff changeset
   194
	TLinAddr iAddr;
hgs
parents:
diff changeset
   195
	TDes8* iDes;
hgs
parents:
diff changeset
   196
	};
hgs
parents:
diff changeset
   197
hgs
parents:
diff changeset
   198
hgs
parents:
diff changeset
   199
/**
hgs
parents:
diff changeset
   200
 *
hgs
parents:
diff changeset
   201
 */
hgs
parents:
diff changeset
   202
struct TMemSpyDriverInternalThreadInfoParams : public TMemSpyDriverThreadInfoBase
hgs
parents:
diff changeset
   203
	{
hgs
parents:
diff changeset
   204
    // In:
hgs
parents:
diff changeset
   205
    TUint iRHeapVTable;
hgs
parents:
diff changeset
   206
	TBool iDebugAllocator;
hgs
parents:
diff changeset
   207
hgs
parents:
diff changeset
   208
    // Out:
hgs
parents:
diff changeset
   209
	TBuf8<KMaxFullName> iFullName;
hgs
parents:
diff changeset
   210
hgs
parents:
diff changeset
   211
    /*
hgs
parents:
diff changeset
   212
	TUint iPid;
hgs
parents:
diff changeset
   213
	TLinAddr iStackBase;
hgs
parents:
diff changeset
   214
	TInt iStackSize;
hgs
parents:
diff changeset
   215
	TMemSpyDriverRegSet iCpu;
hgs
parents:
diff changeset
   216
	TLinAddr iSupervisorStackBase;
hgs
parents:
diff changeset
   217
	TInt iSupervisorStackSize;
hgs
parents:
diff changeset
   218
    CActiveScheduler* iScheduler;
hgs
parents:
diff changeset
   219
	RAllocator* iAllocator;
hgs
parents:
diff changeset
   220
hgs
parents:
diff changeset
   221
	TBuf8<KMaxExitCategoryName> iExitCategory;
hgs
parents:
diff changeset
   222
	TInt iExitReason;
hgs
parents:
diff changeset
   223
    TThreadPriority iThreadPriority;
hgs
parents:
diff changeset
   224
    TInt iDefaultPriority;
hgs
parents:
diff changeset
   225
    TExitType iExitType;
hgs
parents:
diff changeset
   226
    TInt iIpcCount;
hgs
parents:
diff changeset
   227
	RAllocator* iCreatedAllocator;
hgs
parents:
diff changeset
   228
    TInt iThreadType;
hgs
parents:
diff changeset
   229
    TInt iLeaveDepth;
hgs
parents:
diff changeset
   230
    TUint32 iFlags;
hgs
parents:
diff changeset
   231
    */
hgs
parents:
diff changeset
   232
	};
hgs
parents:
diff changeset
   233
hgs
parents:
diff changeset
   234
hgs
parents:
diff changeset
   235
/**
hgs
parents:
diff changeset
   236
 *
hgs
parents:
diff changeset
   237
 */
hgs
parents:
diff changeset
   238
struct TMemSpyDriverInternalWalkHeapParamsInit
hgs
parents:
diff changeset
   239
	{
hgs
parents:
diff changeset
   240
	TUint iTid;
hgs
parents:
diff changeset
   241
	TUint iRHeapVTable;
hgs
parents:
diff changeset
   242
	TBool iDebugAllocator;
hgs
parents:
diff changeset
   243
	};
hgs
parents:
diff changeset
   244
hgs
parents:
diff changeset
   245
hgs
parents:
diff changeset
   246
/**
hgs
parents:
diff changeset
   247
 *
hgs
parents:
diff changeset
   248
 */
hgs
parents:
diff changeset
   249
struct TMemSpyDriverInternalWalkHeapParamsCell
hgs
parents:
diff changeset
   250
	{
hgs
parents:
diff changeset
   251
	TInt iCellType;
hgs
parents:
diff changeset
   252
	TAny* iCellAddress;
hgs
parents:
diff changeset
   253
	TInt iLength;
hgs
parents:
diff changeset
   254
	TInt iNestingLevel;
hgs
parents:
diff changeset
   255
	TInt iAllocNumber;
hgs
parents:
diff changeset
   256
	};
hgs
parents:
diff changeset
   257
hgs
parents:
diff changeset
   258
hgs
parents:
diff changeset
   259
/**
hgs
parents:
diff changeset
   260
 *
hgs
parents:
diff changeset
   261
 */
hgs
parents:
diff changeset
   262
struct TMemSpyDriverInternalWalkHeapCellDataReadParams
hgs
parents:
diff changeset
   263
    {
hgs
parents:
diff changeset
   264
    TAny* iCellAddress;
hgs
parents:
diff changeset
   265
    TInt iReadLen;
hgs
parents:
diff changeset
   266
    TDes8* iDes;
hgs
parents:
diff changeset
   267
    };
hgs
parents:
diff changeset
   268
hgs
parents:
diff changeset
   269
hgs
parents:
diff changeset
   270
hgs
parents:
diff changeset
   271
hgs
parents:
diff changeset
   272
hgs
parents:
diff changeset
   273
hgs
parents:
diff changeset
   274
/**
hgs
parents:
diff changeset
   275
 *
hgs
parents:
diff changeset
   276
 */
hgs
parents:
diff changeset
   277
struct TMemSpyDriverInternalEventMonitorParams
hgs
parents:
diff changeset
   278
	{
hgs
parents:
diff changeset
   279
	TUint iHandle;
hgs
parents:
diff changeset
   280
	TRequestStatus* iStatus;
hgs
parents:
diff changeset
   281
	TAny* iContext;
hgs
parents:
diff changeset
   282
	};
hgs
parents:
diff changeset
   283
hgs
parents:
diff changeset
   284
hgs
parents:
diff changeset
   285
hgs
parents:
diff changeset
   286
hgs
parents:
diff changeset
   287
/**
hgs
parents:
diff changeset
   288
 *
hgs
parents:
diff changeset
   289
 */
hgs
parents:
diff changeset
   290
struct TMemSpyDriverInternalCondVarSuspendedThreadParams
hgs
parents:
diff changeset
   291
    {
hgs
parents:
diff changeset
   292
    TAny* iCondVarHandle;
hgs
parents:
diff changeset
   293
    TAny** iThrHandles;
hgs
parents:
diff changeset
   294
    TInt* iThrCountPtr;
hgs
parents:
diff changeset
   295
    TInt iMaxCount;
hgs
parents:
diff changeset
   296
    };
hgs
parents:
diff changeset
   297
hgs
parents:
diff changeset
   298
#endif