kernel/eka/include/drivers/rpmbdevice.h
changeset 287 ddfd5aa0d58f
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/kernel/eka/include/drivers/rpmbdevice.h	Mon Oct 11 19:11:06 2010 +0100
@@ -0,0 +1,66 @@
+// Copyright (c) 1994-2010 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:
+// eka\include\drivers\rpmb\rpmbdevice.h
+
+/**
+ @file
+ @internalTechnology
+*/
+
+
+#include <drivers/mmc.h>
+#include <e32cmn.h>
+
+const TUint KBusNumber = 0;
+const TUint KDeviceAddress = 0; //Address on card is not applicable to RPMB. This is handled on media device.
+const TUint8 KIndexNotAssigned = 0xFF;
+
+class DRpmbDevice : public DBase
+    {
+   public:
+    
+    IMPORT_C DRpmbDevice();
+    IMPORT_C ~DRpmbDevice();
+    IMPORT_C TInt Open(TUint aDeviceIndex);
+    IMPORT_C TInt SendAccessRequest(TDes8 &aRpmbRequest, TDes8 &aRpmbResponse);
+    IMPORT_C void Close();
+        
+   private:
+   
+    static void SessionEndCallBack(TAny* aSelf);
+    static void BusCallBack(TAny* aPtr, TInt aReason, TAny* a1, TAny* a2);
+    void DoSessionEndCallBack();
+    TInt PowerUpStack();
+	void SetSynchronisationParms(TUint8 aDeviceIndex);
+	void ClearSynchronisationParms();
+    
+    DSemaphore* iPowerUpSemaphore;
+	DSemaphore* iRequestSemaphore;
+	NFastMutex iSynchronisationParmsMutex;
+
+	DMMCSession* iSession;
+    TMMCard* iCard;
+    DMMCSocket* iSocket;
+
+	TPBusCallBack iBusCallBack;     
+	TMMCCallBack iSessionEndCallBack;
+
+	TUint8* iIntBuf;	
+
+	TUint8 iDeviceIndex;
+	static DRpmbDevice* DRpmbDevicePtrs[KMaxPBusSockets*4];
+	
+	TUint8 iSpare[10]; //for future use
+    
+    };