--- /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 <f32fsys.h>
+
+//#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