diff -r 000000000000 -r a41df078684a kerneltest/e32test/defrag/d_pagemove.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/kerneltest/e32test/defrag/d_pagemove.h Mon Oct 19 15:55:17 2009 +0100 @@ -0,0 +1,106 @@ +// Copyright (c) 2006-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: +// e32test\defrag\d_pagemove.h +// +// + +#if !defined(__D_PAGEMOVE_H__) +#define __D_PAGEMOVE_H__ +#include +#ifndef __KERNEL_MODE__ +#include +#endif + + +class TCapsPageMoveV01 + { +public: + TVersion iVersion; + }; + +class RPageMove : public RBusLogicalChannel + { +public: + enum TControl + { + EControlTryMovingKHeap, + EControlTryMovingKStack, + EControlTryMovingUserPage, + EControlTryMovingKCode, + EControlTryMovingLocale, + EControlPerfMovingKData, + EControlGetPhysAddr, + EControlTryMovingPhysAddr, + EControlTryMovingPageTable, + EControlTryMovingPageTableInfo, + EControlNumberOfCpus, + }; + +public: + inline TInt Open(); + inline TInt TryMovingKHeap(); + inline TInt TryMovingKStack(); + inline TInt TryMovingUserPage(TAny* aAddr, TBool aEchoOff=EFalse); + inline TInt TryMovingKCode(); + inline TInt TryMovingLocaleDll(TAny *aAddr); + inline TInt TestKernelDataMovePerformance(void); + inline TInt GetPhysAddr(TAny* aLinAddr, TAny* aPhysAddr); + inline TInt TryMovingPhysAddr(TAny* aPhysAddr, TAny* aNewPhysAddr); + inline TInt TryMovingPageTable(TAny* aAddr); + inline TInt TryMovingPageTableInfo(TAny* aAddr); + inline TUint NumberOfCpus(); + }; + + +#ifndef __KERNEL_MODE__ +inline TInt RPageMove::Open() + { + return DoCreate(_L("PageMove"),TVersion(0,1,1),KNullUnit,NULL,NULL); + } + +inline TInt RPageMove::TryMovingKHeap() + { return DoControl(EControlTryMovingKHeap); } + +inline TInt RPageMove::TryMovingKStack() + { return DoControl(EControlTryMovingKStack); } + +inline TInt RPageMove::TryMovingUserPage(TAny* aAddr, TBool aEchoOff) + { return DoControl(EControlTryMovingUserPage, aAddr, (TAny*)aEchoOff); } + +inline TInt RPageMove::TryMovingKCode() + { return DoControl(EControlTryMovingKCode); } + +inline TInt RPageMove::TryMovingLocaleDll(TAny* aAddr) + { return DoControl(EControlTryMovingLocale, aAddr, (TAny*)EFalse); } + +inline TInt RPageMove::TestKernelDataMovePerformance(void) + { return DoControl(EControlPerfMovingKData); } + +inline TInt RPageMove::GetPhysAddr(TAny* aLinAddr, TAny* aPhysAddr) + { return DoControl(EControlGetPhysAddr, aLinAddr, aPhysAddr); } + +inline TInt RPageMove::TryMovingPhysAddr(TAny* aPhysAddr, TAny* aNewPhysAddr) + { return DoControl(EControlTryMovingPhysAddr, aPhysAddr, aNewPhysAddr); } + +inline TInt RPageMove::TryMovingPageTable(TAny* aLinAddr) + { return DoControl(EControlTryMovingPageTable, aLinAddr); } + +inline TInt RPageMove::TryMovingPageTableInfo(TAny* aLinAddr) + { return DoControl(EControlTryMovingPageTableInfo, aLinAddr); } + +inline TUint RPageMove::NumberOfCpus() + { return DoControl(EControlNumberOfCpus);} +#endif + +#endif