diff -r 000000000000 -r a41df078684a kerneltest/e32test/dll/d_ldrtst.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/kerneltest/e32test/dll/d_ldrtst.h Mon Oct 19 15:55:17 2009 +0100 @@ -0,0 +1,100 @@ +// Copyright (c) 1998-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: +// f32test\loader\d_ldrtst.h +// +// + +#ifndef __D_LDRTST_H__ +#define __D_LDRTST_H__ +#include + +_LIT(KLdrTestLddName, "LdrTest"); + + +#ifndef TMODULEHANDLE_DEFINED +#define TMODULEHANDLE_DEFINED +class TModuleHandle_dummy_class; +typedef TModuleHandle_dummy_class* TModuleHandle; +#endif + +/** +@internalComponent +*/ +class TCapsTestV01 + { +public: + TVersion iVersion; + }; + +/** +@internalComponent +*/ +class RLdrTest : public RBusLogicalChannel + { +public: + enum TControl + { + EControlGetCodeSegInfo, + EControlProcessCodeSeg, + EControlLibraryCodeSeg, + EControlModuleCodeSeg, + EControlGetCodeSegList, + EControlCodeSegFromAddr, + EControlModuleHandleFromAddr, + EControlProcessSMPUnsafeCount, + }; + +/** +@internalComponent +*/ + struct SEntry + { + TAny* iHandle; + TUint32 iUid3; + }; +public: + inline TInt Open(); + inline TInt GetCodeSegInfo(TAny* aHandle, TCodeSegCreateInfo& aInfo); + inline TAny* ProcessCodeSeg(TInt aProcessHandle); + inline TAny* LibraryCodeSeg(TInt aLibraryHandle); + inline TAny* ModuleCodeSeg(TModuleHandle aModuleHandle); + inline TInt GetCodeSegList(SEntry* aList, TInt aMax); + inline TAny* CodeSegFromAddr(TLinAddr aAddr); + inline TModuleHandle ModuleHandleFromAddr(TLinAddr aAddr); + inline TInt ProcessSMPUnsafeCount(TInt aProcessHandle); + }; + +#ifndef __KERNEL_MODE__ +inline TInt RLdrTest::Open() + { return DoCreate(KLdrTestLddName, TVersion(0,1,1), KNullUnit, NULL, NULL); } +inline TInt RLdrTest::GetCodeSegInfo(TAny* aHandle, TCodeSegCreateInfo& aInfo) + { return DoControl(EControlGetCodeSegInfo, aHandle, &aInfo); } +inline TAny* RLdrTest::ProcessCodeSeg(TInt aProcessHandle) + { return (TAny*)DoControl(EControlProcessCodeSeg, (TAny*)aProcessHandle); } +inline TAny* RLdrTest::LibraryCodeSeg(TInt aLibraryHandle) + { return (TAny*)DoControl(EControlLibraryCodeSeg, (TAny*)aLibraryHandle); } +inline TAny* RLdrTest::ModuleCodeSeg(TModuleHandle aModuleHandle) + { return (TAny*)DoControl(EControlModuleCodeSeg, (TAny*)aModuleHandle); } +inline TInt RLdrTest::GetCodeSegList(SEntry* aList, TInt aMax) + { return DoControl(EControlGetCodeSegList, aList, (TAny*)aMax); } +inline TAny* RLdrTest::CodeSegFromAddr(TLinAddr aAddr) + { return (TAny*)DoControl(EControlCodeSegFromAddr, (TAny*)aAddr); } +inline TModuleHandle RLdrTest::ModuleHandleFromAddr(TLinAddr aAddr) + { return (TModuleHandle)DoControl(EControlModuleHandleFromAddr, (TAny*)aAddr); } +inline TInt RLdrTest::ProcessSMPUnsafeCount(TInt aProcessHandle) + { return DoControl(EControlProcessSMPUnsafeCount, (TAny*)aProcessHandle); } +#endif + +#endif +