memspy/Driver/Shared/MemSpyDriverObjectsInternal.h
author Pat Downey <patd@symbian.org>
Wed, 01 Sep 2010 12:37:10 +0100
branchRCL_3
changeset 21 52e343bb8f80
parent 20 ca8a1b6995f6
permissions -rw-r--r--
Revert incorrect RCL_3 drop: Revision: 201033 Kit: 201035

/*
* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). 
* All rights reserved.
* This component and the accompanying materials are made available
* under the terms of "Eclipse Public License v1.0"
* which accompanies this distribution, and is available
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
*
* Initial Contributors:
* Nokia Corporation - initial contribution.
*
* Contributors:
*
* Description:
*
*/

#ifndef MEMSPYDRIVEROBJECTSINTERNAL_H
#define MEMSPYDRIVEROBJECTSINTERNAL_H

// System includes
#include <e32cmn.h>

// User includes
#include <memspy/driver/memspydriverobjectsshared.h>
#include <memspy/driver/memspydriverenumerationsshared.h>
#include "MemSpyDriverEnumerationsInternal.h"




class TMemSpyDriverInternalHeapRequestParameters
    {
public:
    inline TMemSpyDriverInternalHeapRequestParameters()
        : iTid( 0 ), iRHeapVTable( 0 ), iBuildFreeCellList( EFalse ), iDebugAllocator( EFalse ), 
          iMasterInfo( NULL )
        {
        }

public: // Params IN
    TUint iTid;
    TUint32 iRHeapVTable;
    TBool iBuildFreeCellList;

public: // Params IN or OUT (IN in User heap requests, OUT in Kernel heap requests)
    TBool iDebugAllocator;

public: // Params IN and OUT
    TMemSpyHeapInfo* iMasterInfo;
    };





	



/**
 * Parameters for User & Kernel heap data fetch
 */
struct TMemSpyDriverInternalHeapDataParams
    {
    TUint iTid;
    TUint iRHeapVTable;
    TDes8* iDes; // Not used during kernel heap fetch
    TInt iRemaining; // Not used during kernel heap fetch
    TUint iReadAddress;
    TUint32 iChecksum;
    TBool iDebugAllocator;
    };



/**
 *
 */
struct TMemSpyDriverInternalStackDataParams
    {
    TUint iTid;
    TDes8* iDes;
    TMemSpyDriverDomainType iDomain;
    TBool iEntireStack;
    TInt iRemaining;
    };


/**
 *
 */
struct TMemSpyDriverInternalChunkHandleParams
	{
	TUint iId;
	TMemSpyDriverPrivateObjectType iType;
	TAny** iHandles;
	TInt* iCountPtr;
    TInt iMaxCount;
	};


/**
 *
 */
struct TMemSpyDriverInternalChunkInfoParams
	{
	TAny* iHandle;
	TAny* iBaseAddress;
	TInt iSize;
	TInt iMaxSize;
	TUint iOwnerId;
	TBuf8<KMaxFullName> iName;
    TMemSpyDriverChunkType iType;
    TInt iAttributes;
	};


/**
 *
 */
struct TMemSpyDriverInternalCodeSnapshotParams
	{
	TUint iFilter;
	TAny** iHandles;
	TInt* iCountPtr;
    TInt iMaxCount;
	};



/**
 *
 */
struct TMemSpyDriverInternalCodeSegParams
	{
	TUint iPid;
	TAny* iHandle;
	TMemSpyDriverCodeSegInfo* iInfoPointer;
	};




/**
 *
 */
struct TMemSpyDriverInternalContainerHandleParams
	{
    TInt iTidOrPid;
    TMemSpyDriverThreadOrProcess iHandleSource;
    TMemSpyDriverContainerType iContainer;
	TAny** iHandles;
	TInt* iCountPtr;
    TInt iMaxCount;
	};




/**
 *
 */
struct TMemSpyDriverInternalServerSessionHandleParams
	{
    TAny* iServerHandle;
	TAny** iSessionHandles;
	TInt* iSessionCountPtr;
    TInt iMaxCount;
	};



/**
 *
 */
struct TMemSpyDriverInternalContainerObjectParams
	{
    TUint iTid;
	TAny* iHandle;
	TBuf8<KMaxFullName> iFullName;
	};





/**
 *
 */
struct TMemSpyDriverInternalReadMemParams
	{
	TUint iTid;
	TLinAddr iAddr;
	TDes8* iDes;
	};


/**
 *
 */
struct TMemSpyDriverInternalThreadInfoParams : public TMemSpyDriverThreadInfoBase
	{
    // In:
    TUint iRHeapVTable;
	TBool iDebugAllocator;

    // Out:
	TBuf8<KMaxFullName> iFullName;

    /*
	TUint iPid;
	TLinAddr iStackBase;
	TInt iStackSize;
	TMemSpyDriverRegSet iCpu;
	TLinAddr iSupervisorStackBase;
	TInt iSupervisorStackSize;
    CActiveScheduler* iScheduler;
	RAllocator* iAllocator;

	TBuf8<KMaxExitCategoryName> iExitCategory;
	TInt iExitReason;
    TThreadPriority iThreadPriority;
    TInt iDefaultPriority;
    TExitType iExitType;
    TInt iIpcCount;
	RAllocator* iCreatedAllocator;
    TInt iThreadType;
    TInt iLeaveDepth;
    TUint32 iFlags;
    */
	};


/**
 *
 */
struct TMemSpyDriverInternalWalkHeapParamsInit
	{
	TUint iTid;
	TUint iRHeapVTable;
	TBool iDebugAllocator;
	};


/**
 *
 */
struct TMemSpyDriverInternalWalkHeapParamsCell
	{
	TInt iCellType;
	TAny* iCellAddress;
	TInt iLength;
	TInt iNestingLevel;
	TInt iAllocNumber;
	};


/**
 *
 */
struct TMemSpyDriverInternalWalkHeapCellDataReadParams
    {
    TAny* iCellAddress;
    TInt iReadLen;
    TDes8* iDes;
    };






/**
 *
 */
struct TMemSpyDriverInternalEventMonitorParams
	{
	TUint iHandle;
	TRequestStatus* iStatus;
	TAny* iContext;
	};




/**
 *
 */
struct TMemSpyDriverInternalCondVarSuspendedThreadParams
    {
    TAny* iCondVarHandle;
    TAny** iThrHandles;
    TInt* iThrCountPtr;
    TInt iMaxCount;
    };

#endif