diff -r 000000000000 -r a41df078684a kerneltest/f32test/ext/t_testext.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/kerneltest/f32test/ext/t_testext.h Mon Oct 19 15:55:17 2009 +0100 @@ -0,0 +1,125 @@ +// Copyright (c) 2005-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\ext\t_testext.h +// +// + +#ifndef __TEST_EXT_H__ +#define __TEST_EXT_H__ + +#include + +//#define TESTEXT_DEBUG + +#if (defined(_DEBUG) || defined(_DEBUG_RELEASE)) && defined(TESTEXT_DEBUG) +#define __PRINT(t) {RDebug::Print(t);} +#define __PRINT1(t,a) {RDebug::Print(t,a);} +#define __PRINT2(t,a,b) {RDebug::Print(t,a,b);} +#else +#define __PRINT(t) +#define __PRINT1(t,a) +#define __PRINT2(t,a,b) +#endif + +#define EExtCustom (KMaxTInt/2) + + +/** +This is the test proxy drive extension base class. +Test proxy drives of specific file system should derive from this base class. +@internalTechnology +*/ +class CTestProxyDrive : public CBaseExtProxyDrive + { +public: + enum TTestCmd + { + ESetEvent = EExtCustom, + EMark, + EUnmark, + EUnmarkAll, + EIsMarked, + EDiskSize, + ETestCmdEnd = EExtCustom + 100 + }; + enum TBadSectorEvent + { + ENone, ENext, EDeterministic, ERandom + }; + +protected: + CTestProxyDrive(CProxyDrive* aProxyDrive, CMountCB* aMount); + virtual ~CTestProxyDrive(); + +public: + // Derived functions from CBaseExtProxyDrive + // Commented out because they are not changed. Sub-classes reimplement them + // if interested. +// virtual TInt Initialise(); +// virtual TInt Dismounted(); +// virtual TInt Enlarge(TInt aLength); +// virtual TInt ReduceSize(TInt aPos, TInt aLength); +// virtual TInt Read(TInt64 aPos,TInt aLength,const TAny* aTrg,TInt aThreadHandle,TInt aOffset,TInt aFlags); +// virtual TInt Read(TInt64 aPos,TInt aLength,const TAny* aTrg,TInt aThreadHandle,TInt anOffset); +// virtual TInt Read(TInt64 aPos,TInt aLength,TDes8& aTrg); +// virtual TInt Write(TInt64 aPos,TInt aLength,const TAny* aSrc,TInt aThreadHandle,TInt aOffset,TInt aFlags); +// virtual TInt Write(TInt64 aPos,TInt aLength,const TAny* aSrc,TInt aThreadHandle,TInt anOffset); +// virtual TInt Write(TInt64 aPos,const TDesC8& aSrc); +// virtual TInt Caps(TDes8& anInfo); +// virtual TInt Format(TFormatInfo& anInfo); +// virtual TInt Format(TInt64 aPos,TInt aLength); +// virtual TInt SetMountInfo(const TDesC8* aMountInfo,TInt aMountInfoThreadHandle=KCurrentThreadHandle); +// virtual TInt ForceRemount(TUint aFlags=0); +// virtual TInt Unlock(TMediaPassword &aPassword, TBool aStorePassword); +// virtual TInt Lock(TMediaPassword &aOldPassword, TMediaPassword &aNewPassword, TBool aStorePassword); +// virtual TInt Clear(TMediaPassword &aPassword); +// virtual TInt ErasePassword(); + virtual TInt ControlIO(const RMessagePtr2& aMessage,TInt aCommand,TAny* aParam1,TAny* aParam2); + virtual TInt GetLastErrorInfo(TDes8& aErrorInfo); + +protected: + /** + Return a pointer to a specified interface extension - to allow future extension of this class without breaking + binary compatibility. + @param aInterfaceId Interface identifier of the interface to be retrieved. + @param aInterface A reference to a pointer that retrieves the specified interface. + @param aInput An arbitrary input argument. + @return KErrNone If the interface is supported, KErrNotSupported otherwise. + */ +// virtual TInt GetInterface(TInt aInterfaceId,TAny*& aInterface,TAny* aInput); + +protected: + void InitL(); + TInt SetEvent(TInt aType, TInt aValue); + TInt Mark(TInt aSector); + TInt Unmark(TInt aSector); + TInt UnmarkAll(); + TBool IsMarked(TInt aSector) const; + TBool CheckEvent(TInt64 aPos, TInt aLength); + virtual void DoInitL() = 0; + virtual TBool DoCheckEvent(TInt64 aPos, TInt aLength) = 0; + virtual TInt DoControlIO(const RMessagePtr2& aMessage,TInt aCommand,TAny* aParam1,TAny* aParam2) = 0; + +protected: + CMountCB* iMount; // in CProxyDrive + TUint8* iMap; + TInt iTotalSectors; + TBool iMountInitialised; + TInt iEventType; + TInt iCount; + TInt iSuccessBytes; + TErrorInfo::TReasonCode iLastErrorReason; + }; + +#endif