kernel/eka/include/drivers/locmedia.h
branchRCL_3
changeset 294 039a3e647356
parent 249 a179b74831c9
--- a/kernel/eka/include/drivers/locmedia.h	Wed Sep 15 13:42:27 2010 +0300
+++ b/kernel/eka/include/drivers/locmedia.h	Wed Oct 13 16:04:24 2010 +0300
@@ -166,46 +166,6 @@
 class TLocDrvRequest;
 class DPrimaryMediaBase;
 
-/* 
-TCallBackLink
-
-@internalComponent
-
-Internal class which allows a list of callbacks to be linked together.
-*/
-
-NONSHARABLE_CLASS(TCallBackLink)
-	{
-public:
-	enum TObjectType
-		{
-		EDLocalDriveObject, // object containing this TCallBackLink is a DLocalDrive
-		ETLocDrvObject,		// object containing this TCallBackLink is a TLocDrv
-		};
-
-public:
-	TCallBackLink();
-	TCallBackLink(TInt (*aFunction)(TAny* aPtr, TInt aParam),TAny* aPtr, TObjectType aObjectType);
-	TInt CallBack(TInt aParam) const;
-public:
-	/**
-	A pointer to the callback function.
-	*/
-	TInt (*iFunction)(TAny* aPtr, TInt aParam);
-	
-	
-	/**
-	A pointer that is passed to the callback function when
-	the function is called.
-	*/
-	TAny* iPtr;
-
-	TObjectType iObjectType;
-
-	SDblQueLink iLink;
-	};
-
-
 /**
 @publishedPartner
 @released
@@ -315,22 +275,19 @@
 		Query device 
 		*/
 		EQueryDevice=32,
+
 		};
 public:
 	DLocalDrive(); 
 	~DLocalDrive();
-
+public:
 	virtual TInt DoCreate(TInt aUnit, const TDesC8* anInfo, const TVersion& aVer); /**< @internalComponent */
 	virtual TInt Request(TInt aFunction, TAny* a1, TAny* a2);                      /**< @internalComponent */
-
-	void NotifyChange();
-
+public:
+	void NotifyChange(DPrimaryMediaBase& aPrimaryMedia, TBool aMediaChange);
+public:
 	inline void Deque();                 /**< @internalComponent */
 
-	static TInt MediaChangeCallback(TAny* aLocalDrive, TInt aNotifyType);	/**< @internalComponent */
-
-	IMPORT_C static TInt Caps(TInt aDriveNumber, TDes8& aCaps);
-
 private:
 #ifdef __DEMAND_PAGING__
 	TInt LockMountInfo(DPrimaryMediaBase& aPrimaryMedia, TLocDrvRequest& aReq);
@@ -339,10 +296,10 @@
 	TInt ReadPasswordData(TLocDrvRequest& aReq, TLocalDrivePasswordData& aPswData, TMediaPassword& aOldPasswd, TMediaPassword& aNewPasswd);
 
 public:
-	TLocDrv* iDrive;									/**< @internalComponent */
-	TCallBackLink iMediaChangeObserver;					/**< @internalComponent */
+	TLocDrv* iDrive;							/**< @internalComponent */
+	SDblQueLink iLink;							/**< @internalComponent */
 	TClientDataRequest<TBool>* iNotifyChangeRequest;	/**< @internalComponent */
-	TLocalDriveCleanup iCleanup;						/**< @internalComponent */
+	TLocalDriveCleanup iCleanup;				 /**< @internalComponent */
 	};
 
 /**
@@ -384,7 +341,7 @@
 		ECodePaging=0x20,			// a code paging request
 		EDataPaging=0x40,			// a data paging request
 		ETClientBuffer=0x80,		// RemoteDes() points to a TClientBuffer
-		EKernelBuffer=0x100,		// RemoteDes() points to a kernel-side buffer : set for all paging requests and media extension requests
+		EKernelBuffer=0x100,		// RemoteDes() points to a kernel-side buffer
 		EPhysAddrOnly=0x200,        // No virtual address is available. Data Paging requests Only. 
 		};
 public:
@@ -537,7 +494,7 @@
 @internalComponent
 */
 inline void DLocalDrive::Deque()
-	{ iMediaChangeObserver.iLink.Deque(); }
+	{ iLink.Deque(); }
 
 
 
@@ -691,7 +648,6 @@
 	inline TInt Connect(DLocalDrive* aLocalDrive);
 	inline void Disconnect(DLocalDrive* aLocalDrive);
 	inline TInt Request(TLocDrvRequest& aRequest);
-	static TInt MediaChangeCallback(TAny* aLocDrv, TInt aNotifyType);
 public:
 	TInt iDriveNumber;
 	DMedia* iMedia;
@@ -706,14 +662,6 @@
 	TUint8 iSpare3;
 #endif
 	DDmaHelper* iDmaHelper;
-
-	// Media extension stuff:
-
-	/** ptr to the next TLocDrv object in the chain. Null if not a media extension */
-	TLocDrv* iNextDrive;
-
-	/** media change callback - called when the next media in the chain has a media change */
-	TCallBackLink iMediaChangeObserver;
 	};
 
 /**
@@ -880,7 +828,7 @@
 
 public:
 	IMPORT_C DPrimaryMediaBase();
-
+public:
 	// provided by implementation
 	IMPORT_C virtual TInt Create(TMediaDevice aDevice, TInt aMediaId, TInt aLastMediaId);
 	IMPORT_C virtual TInt Connect(DLocalDrive* aLocalDrive);
@@ -894,7 +842,7 @@
 	IMPORT_C virtual void DeltaCurrentConsumption(TInt aCurrent);
 	IMPORT_C virtual void DefaultDriveCaps(TLocalDriveCapsV2& aCaps);
 	IMPORT_C virtual TBool IsRemovableDevice(TInt& aSocketNum);
-
+public:
 	// used by implementation
 	IMPORT_C void NotifyMediaChange();
 	IMPORT_C void NotifyPowerDown();
@@ -902,7 +850,7 @@
 	IMPORT_C void NotifyPsuFault(TInt anError);
 	IMPORT_C void NotifyMediaPresent();
 	IMPORT_C void PowerUpComplete(TInt anError);
-
+public:
 	IMPORT_C virtual void HandleMsg(TLocDrvRequest& aRequest);
 	IMPORT_C virtual TInt DoRequest(TLocDrvRequest& aRequest);
 	TInt OpenMediaDriver();
@@ -915,10 +863,7 @@
 	void CompleteRequest(TLocDrvRequest& aMsg, TInt aResult);
 	IMPORT_C void RunDeferred();
 	void SetClosed(TInt anError);
-	
-	enum TNotifyType {EMediaChange, EMediaPresent};
-	void NotifyClients(TNotifyType aNotifyType, TLocDrv* aLocDrv=NULL);
-
+	void NotifyClients(TBool aMediaChange,TLocDrv* aLocDrv=NULL);
 	TInt InCritical();
 	void EndInCritical();
 	void UpdatePartitionInfo();
@@ -938,13 +883,6 @@
 	void RequestCountDec();
 #endif
 
-	// called by LocDrv::RegisterMediaDevice() for media extensions
-	TInt Connect(TLocDrv* aLocDrv);
-
-	void MediaChange();
-	TInt HandleMediaNotPresent(TLocDrvRequest& aReq);
-
-
 public:
 	TInt iLastMediaId;					/**< @internalComponent */
 	TMessageQue iMsgQ;
@@ -1217,7 +1155,6 @@
 	virtual void NotifyEmergencyPowerDown()=0;
 public:
 	IMPORT_C void SetTotalSizeInBytes(Int64 aTotalSizeInBytes, TLocDrv* aLocDrv=NULL);
-	IMPORT_C void SetTotalSizeInBytes(TLocalDriveCapsV4& aCaps);
 	IMPORT_C Int64 TotalSizeInBytes();
 	IMPORT_C void SetCurrentConsumption(TInt aValue);
 	IMPORT_C TInt InCritical();
@@ -1235,74 +1172,6 @@
 	};
 
 
-/**
-@internalTechnology
-@prototype
-
-An abstract base class for media driver 'extensions' within the local media subsystem
-*/
-class DMediaDriverExtension : public DMediaDriver
-	{
-public:
-	IMPORT_C DMediaDriverExtension(TInt aMediaId);
-	IMPORT_C virtual ~DMediaDriverExtension();
-	IMPORT_C virtual void Close();
-
-	virtual TInt Request(TLocDrvRequest& aRequest) = 0;
-	
-	virtual TInt PartitionInfo(TPartitionInfo &anInfo) = 0;
-
-	IMPORT_C virtual void NotifyPowerDown();
-
-	IMPORT_C virtual void NotifyEmergencyPowerDown();
-
-	/**
-	Retrieve partition info from all the attached drives
-	*/
-	IMPORT_C TInt DoDrivePartitionInfo(TPartitionInfo &anInfo);
-	/**
-	Forward a request to the next attached drive
-	*/
-	IMPORT_C TInt ForwardRequest(TLocDrvRequest& aRequest);
-
-	/**
-	Read from the specified attached drive
-	*/
-	IMPORT_C TInt Read(TInt aDriveNumber, TInt64 aPos, TLinAddr aData, TUint aLen);
-
-	/**
-	Write to the specified attached drive
-	*/
-	IMPORT_C TInt Write(TInt aDriveNumber, TInt64 aPos, TLinAddr aData, TUint aLen);
-
-	/**
-	Get the Caps from the specified attached drive
-	*/
-	IMPORT_C TInt Caps(TInt aDriveNumber, TDes8& aCaps);
-
-	/**
-	Return whether the media is busy i.e. if it has any pending requests or DFCs
-	*/
-	IMPORT_C TBool MediaBusy(TInt aDriveNumber);
-
-#ifdef __DEMAND_PAGING__
-	/**
-	Send a paging read request to the specified attached drive
-	*/
-	IMPORT_C TInt ReadPaged(TInt aDriveNumber, TInt64 aPos, TLinAddr aData, TUint aLen);
-
-	/**
-	Send a paging write request to the specified attached drive
-	*/
-	IMPORT_C TInt WritePaged(TInt aDriveNumber, TInt64 aPos, TLinAddr aData, TUint aLen);
-#endif
-
-private:
-	TInt SendRequest(TInt aReqId, TBool aPagingRequest, TInt aDriveNumber, TInt64 aPos, TLinAddr aData, TUint aLen);
-
-	};
-
-
 
 
 /**