sl@0: // Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies). sl@0: // All rights reserved. sl@0: // This component and the accompanying materials are made available sl@0: // under the terms of the License "Eclipse Public License v1.0" sl@0: // which accompanies this distribution, and is available sl@0: // at the URL "http://www.eclipse.org/legal/epl-v10.html". sl@0: // sl@0: // Initial Contributors: sl@0: // Nokia Corporation - initial contribution. sl@0: // sl@0: // Contributors: sl@0: // sl@0: // Description: sl@0: // t_rmdebugclient.h sl@0: // Definitions for the run mode debug agent client side sessions. sl@0: // sl@0: // sl@0: sl@0: #ifndef RMDEBUGCLIENT_H sl@0: #define RMDEBUGCLIENT_H sl@0: sl@0: class TProcessInfo sl@0: { sl@0: public: sl@0: TUint iProcessID; sl@0: TInt iAttributes; sl@0: TUint32 iPriority; sl@0: TBuf iName; sl@0: }; sl@0: sl@0: class TThreadInfo sl@0: { sl@0: public: sl@0: TUint iThreadID; sl@0: TUint8 iPriority; sl@0: TUint8 iThreadType; sl@0: TBuf iName; sl@0: TUint iOwningProcessID; sl@0: sl@0: // Probably would want a state element here, under debug control, stopped etc sl@0: // such that additional information could be provided which was only valid for sl@0: // stopped threads. sl@0: sl@0: }; sl@0: sl@0: class TExecReq sl@0: { sl@0: public: sl@0: TUint32 iRequest; // Step, Step into, step threads sl@0: TUint32 iStartAddress; sl@0: TUint32 iStopAddress; sl@0: sl@0: }; sl@0: sl@0: class TMemoryInfo sl@0: { sl@0: public: sl@0: TUint32 iAddress; sl@0: TUint32 iSize; sl@0: TPtr8* iDataPtr; sl@0: }; sl@0: sl@0: sl@0: // Client Side session sl@0: class RDebugServSession : public RSessionBase sl@0: { sl@0: public: sl@0: RDebugServSession(); sl@0: TVersion Version() const; sl@0: sl@0: TInt Open(); sl@0: TInt Close(); sl@0: sl@0: TInt ReadMemory(const TUint32 aThreadId, TMemoryInfo* aInfo); sl@0: TInt WriteMemory(const TUint32 aThreadId, TMemoryInfo* aInfo); sl@0: sl@0: // TInt ReadThreadInfo(const TInt aIndex, const TInt aOwningProc, TThreadInfo* aInfo); sl@0: // TInt ReadProcessInfo(const TInt aIndex, TProcessInfo* aInfo); sl@0: TInt SuspendThread(const TInt ThreadID); sl@0: TInt ResumeThread(const TInt ThreadID); sl@0: sl@0: private: sl@0: RThread iServerThread; sl@0: }; sl@0: sl@0: // Function codes (opcodes) used in message passing between client and server sl@0: enum TDebugServRqst sl@0: { sl@0: EDebugServOpen = 1, sl@0: EDebugServClose, sl@0: sl@0: EDebugServSuspendThread, sl@0: EDebugServResumeThread, sl@0: // EDebugServReadProcessInfo, sl@0: // EDebugServReadThreadInfo, sl@0: EDebugServReadMemory, sl@0: EDebugServWriteMemory, sl@0: }; sl@0: sl@0: #endif // RMDEBUGCLIENT_H