debugsrv/runmodedebug/rmdriver/inc/rm_debug_kerneldriver.h
branchRCL_3
changeset 21 52e343bb8f80
parent 20 ca8a1b6995f6
child 22 e26895079d7c
--- a/debugsrv/runmodedebug/rmdriver/inc/rm_debug_kerneldriver.h	Tue Aug 31 16:45:49 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,777 +0,0 @@
-// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
-// All rights reserved.
-// This component and the accompanying materials are made available
-// under the terms of the License "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:
-//
-
-
-
-/**
- @file
- @internalTechnology
- @released
-*/
-
-#ifndef __RM_DEBUG_KERNELDRIVER_H__
-#define __RM_DEBUG_KERNELDRIVER_H__
-
-#include <rm_debug_api.h>
-
-/**
-Used to store a value read from or written to an ARM register
-*/
-typedef TUint32 T4ByteRegisterValue;
-
-
-/** 
-Provides static methods for accessing the information stored in a TRegisterInfo
-object.
-*/
-class Register
-	{
-public:
-	static TBool IsCoreReg(const Debug::TRegisterInfo aRegister);
-	static TBool IsCoproReg(const Debug::TRegisterInfo aRegister);
-	static TUint32 GetCoreRegId(const Debug::TRegisterInfo aRegister);
-	static TUint32 GetCRm(const Debug::TRegisterInfo aRegister);
-	static TUint32 GetCRn(const Debug::TRegisterInfo aRegister);
-	static TUint32 GetOpcode1(const Debug::TRegisterInfo aRegister);
-	static TUint32 GetOpcode2(const Debug::TRegisterInfo aRegister);
-	static TUint32 GetCoproNum(const Debug::TRegisterInfo aRegister);
-	};
-
-/**
-Identify whether aRegister is a core register
-@param aRegister register ID to analyse
-@return ETrue if core register, EFalse otherwise
-*/
-inline TBool Register::IsCoreReg(const Debug::TRegisterInfo aRegister)
-	{
-	return ((aRegister & 0xff) == 0x0);
-	}
-
-/**
-Identify whether aRegister is a coprocessor register
-@param aRegister register ID to analyse
-@return ETrue if coprocessor register, EFalse otherwise
-*/
-inline TBool Register::IsCoproReg(const Debug::TRegisterInfo aRegister)
-	{
-	return ((aRegister & 0xff) == 0x1);
-	}
-
-/**
-Get the ID of the core register
-@param aRegister register ID to analyse
-@return ID of the core register
-*/
-inline TUint32 Register::GetCoreRegId(const Debug::TRegisterInfo aRegister)
-	{
-	return ((aRegister >> 8) & 0xff);
-	}
-
-/**
-Get the CRm value of a coprocessor register
-@param aRegister register ID to analyse
-@return the CRm value of a coprocessor register
-*/
-inline TUint32 Register::GetCRm(const Debug::TRegisterInfo aRegister)
-	{
-	return ((aRegister >> 16) & 0xf);
-	}
-
-/**
-Get the CRm value of a coprocessor register
-@param aRegister register ID to analyse
-@return the CRm value of a coprocessor register
-*/
-inline TUint32 Register::GetCRn(const Debug::TRegisterInfo aRegister)
-	{
-	return ((aRegister >> 20) & 0xf);
-	}
-
-/**
-Get the Opcode1 value of a coprocessor register
-@param aRegister register ID to analyse
-@return the Opcode1 value of a coprocessor register
-*/
-inline TUint32 Register::GetOpcode1(const Debug::TRegisterInfo aRegister)
-	{
-	return ((aRegister >> 24) & 0x8);
-	}
-	
-/**
-Get the Opcode2 value of a coprocessor register
-@param aRegister register ID to analyse
-@return the Opcode2 value of a coprocessor register
-*/
-inline TUint32 Register::GetOpcode2(const Debug::TRegisterInfo aRegister)
-	{
-	return ((aRegister >> 27) & 0x8);
-	}
-
-/**
-Get the coprocessor number of a coprocessor register
-@param aRegister register ID to analyse
-@return the coprocessor number of a coprocessor register
-*/
-inline TUint32 Register::GetCoproNum(const Debug::TRegisterInfo aRegister)
-	{
-	return ((aRegister >> 8) & 0xff);
-	}
-
-//
-// class TCapsRM_DebugDriver
-//
-class TCapsRM_DebugDriver
-{
-public:
-	TVersion	iVersion;
-};
-
-/**
-Stores listings information for passing between the DSS and the kernel driver
-*/
-class TListInformation
-{
-public:
-	inline TListInformation(const Debug::TListId aType=(Debug::TListId)NULL, const Debug::TListScope aListScope=(Debug::TListScope)NULL, TDes8* aBuffer=NULL, TUint32* aDataSize=NULL, TUint64 aTargetId=0)
-		: iType(aType),
-		  iListScope(aListScope),
-		  iBuffer(aBuffer),
-		  iDataSize(aDataSize),
-		  iTargetId(aTargetId) {};
-public:
-	Debug::TListId iType;
-	Debug::TListScope iListScope;
-	TDes8* iBuffer;
-	TUint32* iDataSize;
-	TUint64 iTargetId;
-};
-
-/**
-Data structure to hold information to the crash flash
-(Possibly: Could be expanded to hold on configuration data too)
-*/
-class TFlashInfo
-{
-public:
-	inline TFlashInfo(TUint32 aPos, TUint32* aSize, TDes8* aData)
-		:iPos(aPos),
-		iSize(aSize),
-		iData(aData){};
-public:
-	TUint32 iPos;
-	TUint32* iSize;	
-	 TDes8* iData;	
-};
-//
-// class TRM_DebugMemoryInfo
-//
-class TRM_DebugMemoryInfo
-{
-public:
-
-	inline TRM_DebugMemoryInfo(const TUint32 aAddress, const TUint32 aLength, TDesC8 *aData)
-				: iAddress(aAddress),
-				  iLength(aLength),
-				  iData(aData) {};
-	
-public:
-
-	TUint32 iAddress;
-	TUint32	iLength;
-	TDesC8*	iData;
-};
-
-
-/**
-@deprecated
-This class is only used by TRK phase 1 functions.
-
-@see TRM_DebugRegisterInformation which offers similar storage suitable for use
-with the TRK pahse 2 API.
-*/
-class TRM_DebugRegisterInfo
-{
-public:
-
-	inline TRM_DebugRegisterInfo(const TInt16 aFirstRegister, const TInt16 aLastRegister, TDesC8 *aValues)
-				: iFirstRegister(aFirstRegister),
-				  iLastRegister(aLastRegister),
-				  iValues(aValues) {};
-	
-public:
-
-	TInt16	iFirstRegister;
-	TInt16	iLastRegister;
-	TDesC8*	iValues;
-};
-
-/**
-Structure used to store information about registers
-*/
-class TRM_DebugRegisterInformation
-{
-public:
-
-	inline TRM_DebugRegisterInformation(const TDes8 *aRegisterIds=NULL, TDes8 *aRegisterValues=NULL, TDes8 *aRegisterFlags=NULL)
-		: iRegisterIds(aRegisterIds),
-		  iRegisterValues(aRegisterValues),
-		  iRegisterFlags(aRegisterFlags) {};
-	
-public:
-
-	const TDes8* iRegisterIds;
-	TDes8* iRegisterValues;
-	TDes8* iRegisterFlags;
-};
-
-//
-// class TRM_DebugTaskInfo
-//
-class TRM_DebugTaskInfo
-{
-public:
-
-	inline TRM_DebugTaskInfo(TUint32 aOtherId)
-				: iId(0),
-				  iOtherId(aOtherId),
-				  iPriority(0) { iName.FillZ(); };
-
-public:
-
-	TUint32 iId;
-	TUint32 iOtherId;
-	TUint32 iPriority;	
-	TBuf8<KMaxName> iName;
-};
-
-//
-// class TRM_DebugStepInfo
-//
-class TRM_DebugStepInfo
-{
-public:
-
-	inline TRM_DebugStepInfo(const TUint32 aStartAddress, const TUint32 aStopAddress, const TBool aStepInto)
-				: iStartAddress(aStartAddress),
-				  iStopAddress(aStopAddress),
-				  iStepInto(aStepInto) {};
-
-public:
-
-	TUint32 iStartAddress;
-	TUint32 iStopAddress;
-	TBool iStepInto;
-};
-
-
-//
-// class TRM_DebugDriverInfo
-//
-class TRM_DebugDriverInfo
-{
-public:
-
-	TUint32 iPanic1Address;
-	TUint32 iPanic2Address;
-	TUint32 iException1Address;
-	TUint32 iException2Address;
-	TUint32 iLibraryLoadedAddress;
-	TUint32 iUserLibraryEnd;
-};
-
-
-//
-// class TRM_DebugProcessInfo
-//
-class TRM_DebugProcessInfo
-{
-public:
-
-	inline TRM_DebugProcessInfo(TUint32 *aCodeAddress, TUint32 *aDataAddress)
-				: iCodeAddress(aCodeAddress),
-				  iDataAddress(aDataAddress) {};
-
-public:
-
-	TUint32* iCodeAddress;
-	TUint32* iDataAddress;
-};
-
-//
-// class TRM_DebugEventActionInfo
-//
-class TRM_DebugEventActionInfo
-{
-public:
-	inline TRM_DebugEventActionInfo(TUint32 aEvent, TUint32 aAction, TUint64 aAgentId)
-		: iEvent(aEvent),
-		iAction(aAction),
-		iAgentId(aAgentId) {};
-public:
-	TUint32 iEvent;
-	TUint32 iAction;
-	TUint64 iAgentId;
-};
-
-//
-// class TRM_DebugEventInfo
-//
-class TRM_DebugEventInfo
-{
-public:
-	inline TRM_DebugEventInfo(TDesC8& aProcessName, TUint32& aBufSize)
-		: iProcessName(aProcessName),
-		iBufSize(aBufSize) {};
-
-public:
-	TDesC8& iProcessName;
-	TUint32& iBufSize;
-};
-
-//
-// class TRMD_DebugAgentId
-//
-class TRM_DebugAgentId
-{
-public:
-	inline TRM_DebugAgentId(TUint64 aAgentId)
-		: iAgentId(aAgentId) {};
-
-public:
-	TUint64 iAgentId;
-};
-
-//
-// Class TRMD_DebugCancelInfo
-//
-class TRMD_DebugCancelInfo
-{
-public:
-	inline TRMD_DebugCancelInfo(TUint32 aCancelRequest,TDesC8& aProcessName, TUint64 aAgentId)
-		: iCancelRequest(aCancelRequest),
-		iProcessName(aProcessName),
-		iAgentId(aAgentId) {};
-
-	inline TRMD_DebugCancelInfo(void)
-		: iCancelRequest(0),
-	iAgentId(0)
-	{
-	};
-
-public:
-	TUint32 iCancelRequest;
-	TBuf8<KMaxName> iProcessName;
-	TUint64 iAgentId;
-};
-
-class TEventMetaData
-	{
-public:
-	TBuf8<KMaxName> iTargetProcessName;
-	TUint64 iDebugAgentProcessId;
-	};
-
-/**
-@internalComponent
-*/
-class TSetBreakInfo
-{
-public:
-
-	inline TSetBreakInfo(Debug::TBreakId* aBreakId,
-		TUint64 aId,\
-		TUint32 aAddress,\
-		Debug::TArchitectureMode aMode,
-		TBool aThreadSpecific)
-				: iBreakId(aBreakId),
-				  iId(aId),
-				  iAddress(aAddress),
-				  iMode(aMode),
-       				  iThreadSpecific(aThreadSpecific) {};
-
-inline TSetBreakInfo(void)
-			: iBreakId((Debug::TBreakId*)0),
-			  iId(0),
-			  iAddress(0),
-			  iMode(Debug::EArmMode),
-       			  iThreadSpecific(ETrue) {};
-
-
-public:
-	Debug::TBreakId* iBreakId;
-	TUint64 iId;
-	TUint32 iAddress;
-	Debug::TArchitectureMode iMode;
-	TBool iThreadSpecific;
-};
-
-/**
-@internalComponent
-*/
-class TModifyBreakInfo
-{
-public:
-
-	inline TModifyBreakInfo(Debug::TBreakId aBreakId,\
-		const TUint64 aThreadId,\
-		const TUint32 aAddress,\
-		const Debug::TArchitectureMode aMode)
-				: iBreakId(aBreakId),
-				  iThreadId(aThreadId),
-				  iAddress(aAddress),
-				  iMode(aMode) {};
-
-public:
-	const Debug::TBreakId iBreakId;
-	const TUint64 iThreadId;
-	const TUint32 iAddress;
-	const Debug::TArchitectureMode iMode;
-};
-
-/**
-@internalComponent
-*/
-class TModifyProcessBreakInfo
-{
-public:
-
-	inline TModifyProcessBreakInfo(Debug::TBreakId aBreakId,\
-		const TUint64 aProcessId,\
-		const TUint32 aAddress,\
-		const Debug::TArchitectureMode aMode)
-				: iBreakId(aBreakId),
-				  iProcessId(aProcessId),
-				  iAddress(aAddress),
-				  iMode(aMode) {};
-
-public:
-	const Debug::TBreakId iBreakId;
-	const TUint64 iProcessId;
-	const TUint32 iAddress;
-	const Debug::TArchitectureMode iMode;
-};
-
-/**
-@internalComponent
-*/
-class TGetBreakInfo
-{
-public:
-
-	inline TGetBreakInfo(Debug::TBreakId aBreakId,\
-		TUint64& aId,\
-		TUint32& aAddress,\
-		Debug::TArchitectureMode& aMode,
-		TBool& aThreadSpecific)
-				: iBreakId(aBreakId),
-				  iId(&aId),
-				  iAddress(&aAddress),
-				  iMode(&aMode),
-       				  iThreadSpecific(&aThreadSpecific) {};
-
-	inline TGetBreakInfo()
-				: iBreakId((Debug::TBreakId)0),
-				  iId((TUint64*)0),
-				  iAddress((TUint32*)0),
-				  iMode((Debug::TArchitectureMode*)0),
-       				  iThreadSpecific((TBool*)0)	{};
-
-public:
-	const Debug::TBreakId iBreakId;
-	TUint64* iId;
-	TUint32* iAddress;
-	Debug::TArchitectureMode* iMode;
-	TBool* iThreadSpecific;
-};
-
-//
-// class RRM_DebugDriver
-//
-class RRM_DebugDriver : public RBusLogicalChannel
-{
-public:
-
-	enum TControl
-	{
-		EControlSetBreak = 0,
-		EControlClearBreak,
-		EControlModifyBreak,
-		EControlBreakInfo,
-		EControlSuspendThread,
-		EControlResumeThread,
-		EControlStepRange,
-		EControlReadMemory,
-		EControlWriteMemory,
-		EControlReadRegisters,
-		EControlWriteRegisters,
-		EControlGetStaticLibraryInfo,
-		EControlGetDebugFunctionalityBufSize,
-		EControlGetDebugFunctionality,
-		EControlReadRegistersLegacy,
-		EControlWriteRegistersLegacy,		
-		EControlGetMemoryOperationMaxBlockSize,		
-		EControlAttachProcess,
-		EControlDetachProcess,
-		EControlDetachAgent,
-		EControlSetEventAction,
-		EControlGetList,
-		EControlStep,
-		EControlIsDebuggable,
-		EControlKillProcess,		
-		EControlModifyProcessBreak,
-	};
-	
-	enum TRequest
-	{
-		ERequestGetEvent=0x0, ERequestGetEventCancel=0x1
-	};	
-		
-public:
-
-	inline TInt Open(const TRM_DebugDriverInfo aDriverInfo);
-
-	inline TInt	SetBreak(Debug::TBreakId &aBreakId,const TUint32 aThreadId, const TUint32 aAddress, const Debug::TArchitectureMode aThumbMode );
-	inline TInt	SetProcessBreak(Debug::TBreakId &aBreakId,const TUint32 aProcessId, const TUint32 aAddress, const Debug::TArchitectureMode aThumbMode );
-	
-	inline TInt	ClearBreak(const TInt32 aBreakId);
-	
-	inline TInt	ModifyBreak(const Debug::TBreakId aBreakId, const TUint32 aThreadId, const TUint32 aAddress, const Debug::TArchitectureMode aArchitectureMode );
-	inline TInt	ModifyProcessBreak(const Debug::TBreakId aBreakId, const TUint32 aProcessId, const TUint32 aAddress, const Debug::TArchitectureMode aArchitectureMode );
-	
-	inline TInt BreakInfo(const Debug::TBreakId aBreakId, TUint64& aId, TUint32& aAddress, Debug::TArchitectureMode& aMode, TBool& aThreadSpecific);
-	
-	inline TInt	SuspendThread(const TUint32 aThreadId);
-	inline TInt	ResumeThread(const TUint32 aThreadId);
-	inline TInt	StepRange(const TUint32 aThreadId, const TUint32 aStartAddress, const TUint32 aStopAddress, TBool aStepInto);
-	inline TInt ReadMemory(const TUint32 aThreadId, const TUint32 aAddress, const TUint32 aLength, TDes8 &aData);
-	inline TInt WriteMemory(const TUint32 aThreadId, const TUint32 aAddress, const TUint32 aLength, const TDesC8 &aData);
-	inline TInt ReadRegisters(const TUint32 aThreadId, const TDes8 &aRegisterIds, TDes8 &aRegisterValues, TDes8 &aRegisterFlags);
-	inline TInt WriteRegisters(const TUint32 aThreadId, const TDes8 &aRegisterIds, const TDes8 &aRegisterValues, TDes8 &aRegisterFlags);
-	inline TInt ReadRegisters(const TUint32 aThreadId, const TInt32 aFirstRegister, const TInt32 aLastRegister, TDes8 &aValues);
-	inline TInt WriteRegisters(const TUint32 aThreadId, const TInt32 aFirstRegister, const TInt32 aLastRegister, TDesC8 &aValues);
-	inline void GetEvent(TDesC8& aProcessName, TUint64 aAgentId, TRequestStatus &aStatus, Debug::TEventInfo &aEventInfo);
-	inline void CancelGetEvent(TDesC8& aProcessName, TUint64 aAgentId);
-//	inline TInt GetProcessInfo(const TInt aIndex, TRM_DebugTaskInfo &aInfo);
-//	inline TInt GetThreadInfo(const TInt aIndex, TRM_DebugTaskInfo &aInfo);
-	inline TInt GetStaticLibraryInfo(const TInt aIndex, Debug::TEventInfo &aInfo);
-	inline TInt GetDebugFunctionalityBufSize(TUint32 &aBufSize);
-	inline TInt GetDebugFunctionality(TDes8& aDebugFunctionality);
-	inline TInt GetMemoryOperationMaxBlockSize(TUint32 &aMaxSize);
-	inline TInt AttachProcess(TDesC8& aProcessName, TUint64 aAgentId);
-	inline TInt DetachProcess(TDesC8& aProcessName, TUint64 aAgentId);
-	inline TInt DetachAgent(TUint64 aAgentId);
-	inline TInt SetEventAction(TDesC8& aProcessName, Debug::TEventType aEvent, Debug::TKernelEventAction aEventAction, TUint64 aAgentId);
-	inline TInt GetList(const Debug::TListId aType, const Debug::TListScope aListScope, const TUint64 aTargetId, const TUint64 aDebugProcessId, TDes8& aBuffer, TUint32& aDataSize);
-	inline TInt Step(const TUint32 aThreadId, const TUint32 aNumSteps);
-	inline TInt IsDebuggable(const TUint32 aProcessId);
-	inline TInt KillProcess(const TUint32 aProcessId, const TInt32 aReason);
-};
-
-_LIT(KRM_DebugDriverName,"RM Debug Driver");
-
-//priority set equal to that of KDfcThread0Priority defined in e32/kernel/sinit.cpp
-const TInt KRmDebugDriverThreadPriority = 27;
-
-// Version information
-const TInt KMajorVersionNumber=2;
-const TInt KMinorVersionNumber=1;
-const TInt KBuildVersionNumber=0;
-
-
-inline TInt RRM_DebugDriver::Open(const TRM_DebugDriverInfo aDriverInfo)
-{
-	TBuf8<32> buf;
-	buf.Append((TUint8*)&aDriverInfo.iPanic1Address, 4);
-	buf.Append((TUint8*)&aDriverInfo.iPanic2Address, 4);
-	buf.Append((TUint8*)&aDriverInfo.iException1Address, 4);
-	buf.Append((TUint8*)&aDriverInfo.iException2Address, 4);
-	buf.Append((TUint8*)&aDriverInfo.iLibraryLoadedAddress, 4);
-	buf.Append((TUint8*)&aDriverInfo.iUserLibraryEnd, 4);
-	
-	#ifdef EKA2
-	return DoCreate(KRM_DebugDriverName, TVersion(KMajorVersionNumber, KMinorVersionNumber, KBuildVersionNumber), KNullUnit, NULL, &buf);
-	#else
-	return DoCreate(KRM_DebugDriverName, TVersion(KMajorVersionNumber, KMinorVersionNumber, KBuildVersionNumber), NULL, KNullUnit, NULL, &buf);
-	#endif
-}
-
-inline TInt RRM_DebugDriver::SetBreak(Debug::TBreakId &aBreakId, const TUint32 aThreadId, const TUint32 aAddress, const Debug::TArchitectureMode aMode )
-{
-	TSetBreakInfo info(&aBreakId, aThreadId, aAddress, aMode, ETrue);
-	return DoSvControl(EControlSetBreak, reinterpret_cast<TAny*>(&info),0);
-}
-inline TInt RRM_DebugDriver::SetProcessBreak(Debug::TBreakId &aBreakId, const TUint32 aProcessId, const TUint32 aAddress, const Debug::TArchitectureMode aMode )
-{
-	TSetBreakInfo info(&aBreakId, aProcessId, aAddress, aMode, EFalse);
-	return DoSvControl(EControlSetBreak, reinterpret_cast<TAny*>(&info),0);
-}
-
-inline TInt RRM_DebugDriver::ClearBreak(const Debug::TBreakId aBreakId)
-{
-	return DoSvControl(EControlClearBreak, reinterpret_cast<TAny*>(aBreakId), 0);
-}
-
-inline TInt RRM_DebugDriver::ModifyBreak(const Debug::TBreakId aBreakId, const TUint32 aThreadId, const TUint32 aAddress, const Debug::TArchitectureMode aMode)
-{
-	TModifyBreakInfo info(aBreakId, aThreadId, aAddress, aMode);
-	return DoControl(EControlModifyBreak, reinterpret_cast<TAny*>(&info), 0);
-}
-
-inline TInt RRM_DebugDriver::ModifyProcessBreak(const Debug::TBreakId aBreakId, const TUint32 aProcessId, const TUint32 aAddress, const Debug::TArchitectureMode aMode)
-{
-	TModifyProcessBreakInfo info(aBreakId, aProcessId, aAddress, aMode);
-	return DoControl(EControlModifyProcessBreak, reinterpret_cast<TAny*>(&info), 0);
-}
-
-inline TInt RRM_DebugDriver::BreakInfo(const Debug::TBreakId aBreakId, TUint64& aId, TUint32& aAddress, Debug::TArchitectureMode& aMode, TBool& aThreadSpecific)
-{
-	TGetBreakInfo info(aBreakId, aId, aAddress, aMode, aThreadSpecific);
-	return DoControl(EControlBreakInfo, reinterpret_cast<TAny*>(&info), 0);
-}
-
-inline TInt RRM_DebugDriver::SuspendThread(const TUint32 aThreadId)
-{
-	return DoControl(EControlSuspendThread, reinterpret_cast<TAny*>(aThreadId));
-}
-
-inline TInt RRM_DebugDriver::ResumeThread(const TUint32 aThreadId)
-{
-	return DoSvControl(EControlResumeThread, reinterpret_cast<TAny*>(aThreadId));
-}
-
-inline TInt RRM_DebugDriver::StepRange(const TUint32 aThreadId, const TUint32 aStartAddress, const TUint32 aStopAddress, TBool aStepInto)
-{
-	TRM_DebugStepInfo info(aStartAddress, aStopAddress, aStepInto);
-	return DoSvControl(EControlStepRange, reinterpret_cast<TAny*>(aThreadId), (TAny*)&info);
-}
-
-inline TInt RRM_DebugDriver::ReadMemory(const TUint32 aThreadId, const TUint32 aAddress, const TUint32 aLength, TDes8 &aData)
-{
-	TRM_DebugMemoryInfo info(aAddress, aLength, &aData);
-	return DoControl(EControlReadMemory, reinterpret_cast<TAny*>(aThreadId), (TAny*)&info);
-}
-
-inline TInt RRM_DebugDriver::WriteMemory(const TUint32 aThreadId, const TUint32 aAddress, const TUint32 aLength, const TDesC8 &aData)
-{
-	TRM_DebugMemoryInfo info(aAddress, aLength, (TDesC8*)&aData);
-	return DoControl(EControlWriteMemory, reinterpret_cast<TAny*>(aThreadId), (TAny*)&info);
-}
-
-inline TInt RRM_DebugDriver::ReadRegisters(const TUint32 aThreadId, const TDes8 &aRegisterIds, TDes8 &aRegisterValues, TDes8 &aRegisterFlags)
-	{
-	TRM_DebugRegisterInformation info(&aRegisterIds, &aRegisterValues, &aRegisterFlags);
-	return DoControl(EControlReadRegisters, reinterpret_cast<TAny*>(aThreadId), (TAny*)&info);	
-	}
-
-inline TInt RRM_DebugDriver::WriteRegisters(const TUint32 aThreadId, const TDes8 &aRegisterIds, const TDes8 &aRegisterValues, TDes8 &aRegisterFlags)
-	{
-	TRM_DebugRegisterInformation info(&aRegisterIds, (TDes8*)&aRegisterValues, &aRegisterFlags);
-	return DoControl(EControlWriteRegisters, reinterpret_cast<TAny*>(aThreadId), (TAny*)&info);
-	}
-
-inline TInt RRM_DebugDriver::ReadRegisters(const TUint32 aThreadId, const TInt32 aFirstRegister, const TInt32 aLastRegister, TDes8 &aValues)
-{
-	TRM_DebugRegisterInfo info(aFirstRegister, aLastRegister, &aValues);
-	return DoControl(EControlReadRegistersLegacy, reinterpret_cast<TAny*>(aThreadId), (TAny*)&info);
-}
-
-inline TInt RRM_DebugDriver::WriteRegisters(const TUint32 aThreadId, const TInt32 aFirstRegister, const TInt32 aLastRegister, TDesC8 &aValues)
-{
-	TRM_DebugRegisterInfo info(aFirstRegister, aLastRegister, &aValues);
-	return DoControl(EControlWriteRegistersLegacy, reinterpret_cast<TAny*>(aThreadId), (TAny*)&info);
-}
-
-inline void RRM_DebugDriver::GetEvent(TDesC8& aProcessName, TUint64 aAgentId, TRequestStatus &aStatus, Debug::TEventInfo &aEventInfo)
-{
-	// temporary object not needed beyond the DoRequest call
-	TEventMetaData eventMetaData;
-	eventMetaData.iTargetProcessName.Copy(aProcessName);
-	eventMetaData.iDebugAgentProcessId = aAgentId;
-	DoRequest(ERequestGetEvent, aStatus, (TAny*)&aEventInfo, (TAny*)&eventMetaData);
-}
-
-inline void RRM_DebugDriver::CancelGetEvent(TDesC8& aProcessName, TUint64 aAgentId)
-{
-	TRMD_DebugCancelInfo info(ERequestGetEventCancel,aProcessName,aAgentId);
-	DoCancel(reinterpret_cast<TInt>(&info));
-}
-
-inline TInt RRM_DebugDriver::GetStaticLibraryInfo(const TInt aIndex, Debug::TEventInfo &aInfo)
-{
-	return DoControl(EControlGetStaticLibraryInfo, reinterpret_cast<TAny*>(aIndex), (TAny*)&aInfo);
-}
-
-inline TInt RRM_DebugDriver::GetDebugFunctionalityBufSize(TUint32 &aBufSize)
-{
-	return DoControl(EControlGetDebugFunctionalityBufSize, reinterpret_cast<TAny*>(&aBufSize));
-}
-
-inline TInt RRM_DebugDriver::GetDebugFunctionality(TDes8& aDebugFunctionality)
-{
-	return DoControl(EControlGetDebugFunctionality,reinterpret_cast<TAny*>(&aDebugFunctionality));
-}
-
-inline TInt RRM_DebugDriver::GetMemoryOperationMaxBlockSize(TUint32 &aMaxSize)
-{
-	return DoControl(EControlGetMemoryOperationMaxBlockSize, reinterpret_cast<TAny*>(&aMaxSize));
-}
-
-inline TInt RRM_DebugDriver::AttachProcess(TDesC8& aProcessName, TUint64 aAgentId)
-{
-	TRM_DebugAgentId info(aAgentId);
-	return DoControl(EControlAttachProcess,reinterpret_cast<TAny*>(&aProcessName),reinterpret_cast<TAny*>(&info));
-}
-
-inline TInt RRM_DebugDriver::DetachProcess(TDesC8& aProcessName, TUint64 aAgentId)
-{
-	TRM_DebugAgentId info(aAgentId);
-	return DoControl(EControlDetachProcess,reinterpret_cast<TAny*>(&aProcessName),reinterpret_cast<TAny*>(&info));
-}
-
-inline TInt RRM_DebugDriver::DetachAgent(TUint64 aAgentId)
-{
-	TRM_DebugAgentId info(aAgentId);
-	return DoControl(EControlDetachAgent,reinterpret_cast<TAny*>(&info),0);
-}
-
-inline TInt RRM_DebugDriver::SetEventAction(TDesC8& aProcessName, Debug::TEventType aEvent, Debug::TKernelEventAction aEventAction, TUint64 aAgentId)
-{
-	TRM_DebugEventActionInfo info (aEvent,aEventAction, aAgentId);
-	return DoControl(EControlSetEventAction,reinterpret_cast<TAny*>(&aProcessName),(TAny*)&info);
-}
-
-inline TInt RRM_DebugDriver::GetList(const Debug::TListId aType, const Debug::TListScope aListScope, const TUint64 aTargetId, const TUint64 aDebugProcessId, TDes8& aBuffer, TUint32& aDataSize)
-{
-	TListInformation info(aType, aListScope, &aBuffer, &aDataSize, aTargetId);
-	return DoControl(EControlGetList, (TAny*)&info);
-}
-
-inline TInt RRM_DebugDriver::Step(const TUint32 aThreadId, const TUint32 aNumSteps)
-{
-	return DoControl(EControlStep,reinterpret_cast<TAny*>(aThreadId),reinterpret_cast<TAny*>(aNumSteps));
-}
-
-inline TInt RRM_DebugDriver::IsDebuggable(const TUint32 aProcessId)
-{
-	return DoControl(EControlIsDebuggable,reinterpret_cast<TAny*>(aProcessId),NULL);
-}
-
-inline TInt RRM_DebugDriver::KillProcess(const TUint32 aProcessId, const TInt32 aReason)
-{
-	return DoControl(EControlKillProcess,reinterpret_cast<TAny*>(aProcessId),reinterpret_cast<TAny*>(aReason));
-}
-
-#endif // __RM_DEBUG_KERNELDRIVER_H__
-