kernel/eka/include/drivers/pbusmedia.h
changeset 9 96e5fb8b040d
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/kernel/eka/include/drivers/pbusmedia.h	Thu Dec 17 09:24:54 2009 +0200
@@ -0,0 +1,79 @@
+// Copyright (c) 1998-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:
+// e32\include\drivers\pbusmedia.h
+// 
+//
+
+/**
+ @file
+ @publishedPartner
+ @released
+*/
+
+#ifndef __PBUSMEDIA_H__
+#define __PBUSMEDIA_H__
+#include <drivers/pbus.h>
+#include <drivers/locmedia.h>
+
+const TInt KMediaRemountForceMediaChange = 0x00000001;
+
+/**
+  The purpose of this class is to abstract the interface between the local media sub-system and peripheral bus controller.
+  An instance of this class provides the notification call back of media change and power down events.
+  This class is used by Media driver.
+  @see TMMCardControllerInterface
+  */
+NONSHARABLE_CLASS(DPBusPrimaryMedia) : public DPrimaryMediaBase
+	{
+public:
+	DPBusPrimaryMedia(DPBusSocket* aSocket);
+public:
+	virtual TInt Create(TMediaDevice aDevice, TInt aMediaId, TInt aLastMediaId);
+	virtual TInt QuickCheckStatus();
+	virtual TInt ForceMediaChange(TInt aFlags);
+	virtual TInt InitiatePowerUp();
+	virtual TInt DoInCritical();
+	virtual void DoEndInCritical();
+	virtual void DeltaCurrentConsumption(TInt aCurrent);
+	virtual void DefaultDriveCaps(TLocalDriveCapsV2& aCaps);
+	virtual TBool IsRemovableDevice(TInt& aSocketNum);
+public:
+	void PBusStateChange(TInt aState, TInt anError);
+public:
+	/**
+	 Peripheral bus notification callback.
+     @see TPBusCallBack
+	 */
+	TPBusCallBack iBusCallBack;
+
+	/**
+	 Pointer to peripheral bus socket object.
+     @see DPBusSocket
+	 */
+	DPBusSocket* iSocket;
+
+	/**
+     Holds one of the state corresponding to PBUS.
+	 @see TPBusState
+	 */
+	TInt iPBusState;
+	/** 
+	Updated with greater than zero, if pbus supports more than one card.
+	For each slot new instance of DPBusPrimaryMedia is created and updated in iSlotNumber.
+	*/
+	TInt iSlotNumber;	
+	};
+
+#endif
+