diff -r 000000000000 -r 96e5fb8b040d kerneltest/e32test/system/d_dobject.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/kerneltest/e32test/system/d_dobject.h Thu Dec 17 09:24:54 2009 +0200 @@ -0,0 +1,144 @@ +// 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: +// e32test\system\d_dobject.h +// +// + +#ifndef __D_DOBJECT_H__ +#define __D_DOBJECT_H__ +#include +#ifndef __KERNEL_MODE__ +#include +#endif + + +struct SParam + { + TInt duration; + TUint iSeed[2]; + TBool iPerformanceTest; + }; + +class RTestDObject : public RBusLogicalChannel + { +public: + enum TControl + { + ERObjectIxTest1, + ERObjectIxTest2, + ERObjectIxTest3, + ERObjectIxTest4, + ERObjectIxThreadTestCreateIx, + ERObjectIxThreadTestExerciseIx, + ERObjectIxThreadTestFreeIx, + ERObjectIxInvalidHandleLookupTest, + EDObjectNameTest, + }; +public: + inline TInt Open(); + +public: + inline TInt RObjectIxTest1(TInt& aTime); + inline TInt RObjectIxTest2(TInt& aTime); + inline TInt RObjectIxTest3(SParam& aParam); + inline TInt RObjectIxTest4(TInt& aTime); + inline TInt RObjectIxThreadTestCreateIx(void*& aRObjectIxPtr); + inline TInt RObjectIxThreadTestExerciseIx(void* aRObjectIxPtr); + inline TInt RObjectIxThreadTestFreeIx(void* aRObjectIxPtr); + inline TInt InvalidHandleLookupTest(); + inline TInt DObjectNameTest(); + }; + +_LIT(KDObjectTestLddName,"D_DOBJECT"); + + +#ifndef __KERNEL_MODE__ +inline TInt RTestDObject::Open() + { return DoCreate(KDObjectTestLddName,TVersion(),KNullUnit,NULL,NULL); } + +inline TInt RTestDObject::RObjectIxTest1(TInt& aTime) + { + TRequestStatus aStatus; + DoRequest(ERObjectIxTest1,aStatus, &aTime); + User::WaitForRequest(aStatus); + return aStatus.Int(); + } + +inline TInt RTestDObject::RObjectIxTest2(TInt& aTime) + { + TRequestStatus aStatus; + DoRequest(ERObjectIxTest2,aStatus, &aTime); + User::WaitForRequest(aStatus); + return aStatus.Int(); + } + +inline TInt RTestDObject::RObjectIxTest3(SParam& aParam) + { + TRequestStatus aStatus; + DoRequest(ERObjectIxTest3,aStatus, &aParam); + User::WaitForRequest(aStatus); + return aStatus.Int(); + } + +inline TInt RTestDObject::RObjectIxTest4(TInt& aTime) + { + TRequestStatus aStatus; + DoRequest(ERObjectIxTest4,aStatus, &aTime); + User::WaitForRequest(aStatus); + return aStatus.Int(); + } // RTestDObject::RObjectIxTest4 + +inline TInt RTestDObject::RObjectIxThreadTestCreateIx(void*& aRObjectIxPtr) + { + TRequestStatus aStatus; + DoRequest(ERObjectIxThreadTestCreateIx,aStatus, &aRObjectIxPtr); + User::WaitForRequest(aStatus); + return aStatus.Int(); + } // RTestDObject::RObjectIxThreadTestCreateIx + +inline TInt RTestDObject::RObjectIxThreadTestExerciseIx(void* aRObjectIxPtr) + { + TRequestStatus aStatus; + DoRequest(ERObjectIxThreadTestExerciseIx, aStatus, aRObjectIxPtr); + User::WaitForRequest(aStatus); + return aStatus.Int(); + } // RTestDObject::RObjectIxThreadTestExerciseIx + +inline TInt RTestDObject::RObjectIxThreadTestFreeIx(void* aRObjectIxPtr) + { + TRequestStatus aStatus; + DoRequest(ERObjectIxThreadTestFreeIx,aStatus, aRObjectIxPtr); + User::WaitForRequest(aStatus); + return aStatus.Int(); + } // RTestDObject::RObjectIxThreadTestFreeIx + +inline TInt RTestDObject::InvalidHandleLookupTest() + { + TRequestStatus aStatus; + DoRequest(ERObjectIxInvalidHandleLookupTest, aStatus); + User::WaitForRequest(aStatus); + return aStatus.Int(); + } // RTestDObject::InvalidHandleLookupTest + +inline TInt RTestDObject::DObjectNameTest(void) + { + TRequestStatus aStatus; + DoRequest(EDObjectNameTest, aStatus); + User::WaitForRequest(aStatus); + return aStatus.Int(); + } +#endif + +#endif +