userlibandfileserver/fileserver/smassstorage/cmassstoragemountcb.cpp
changeset 286 48e57fb1237e
parent 90 947f0dc9f7a8
--- a/userlibandfileserver/fileserver/smassstorage/cmassstoragemountcb.cpp	Wed Oct 06 17:13:14 2010 +0100
+++ b/userlibandfileserver/fileserver/smassstorage/cmassstoragemountcb.cpp	Mon Oct 11 17:54:41 2010 +0100
@@ -12,7 +12,7 @@
 //
 // Description:
 // CMassStorageMountCB implementation.
-// 
+//
 //
 
 /**
@@ -22,20 +22,27 @@
 
 #include <f32fsys.h>
 #include <f32file.h>
-#include "cmassstoragemountcb.h"
+
+#include "drivemanager.h"
 #include "cusbmassstoragecontroller.h"
 #include "cmassstoragefilesystem.h"
-#include "massstoragedebug.h"
+#include "cmassstoragemountcb.h"
+
+#include "OstTraceDefinitions.h"
+#ifdef OST_TRACE_COMPILER_IN_USE
+#include "cmassstoragemountcbTraces.h"
+#endif
+
 
 CMassStorageMountCB::CMassStorageMountCB(const RArray<TInt>& aDriveMapping)
     : iDriveMapping(aDriveMapping)
-	{
-	}
+    {
+    }
 
 CMassStorageMountCB* CMassStorageMountCB::NewL(const RArray<TInt>& aDriveMapping)
-	{
-	return new (ELeave) CMassStorageMountCB(aDriveMapping);
-	}
+    {
+    return new (ELeave) CMassStorageMountCB(aDriveMapping);
+    }
 
 /**
 Checks that the drive number is supported.
@@ -43,18 +50,19 @@
 @leave KErrNotReady The drive number is not supported.
 */
 TInt CMassStorageMountCB::CheckDriveNumberL()
-	{
-	__FNLOG("CMassStorageMountCB::CheckDriveNumberL");
-	TInt driveNumber;
-	driveNumber = Drive().DriveNumber();
-	if (!IsValidLocalDriveMapping(driveNumber))
-		{
-		__PRINT1(_L("CMassStorageMountCB::CheckDriveNumberL: Drive number %d not supported"), driveNumber);
-		User::Leave(KErrNotReady);
-		}
-	__PRINT1(_L("CMassStorageMountCB::CheckDriveNumberL: Drive number = %d"), driveNumber);
-	return driveNumber;
-	}
+    {
+    TInt driveNumber;
+    driveNumber = Drive().DriveNumber();
+    OstTrace1(TRACE_SMASSSTORAGE_FS, CMASSSTORAGEMOUNTCB_100,
+              "Drive=%d", driveNumber);
+    if (!IsValidLocalDriveMapping(driveNumber))
+        {
+        OstTrace0(TRACE_SMASSSTORAGE_FS, CMASSSTORAGEMOUNTCB_101,
+                  "Drive number not supported");
+        User::Leave(KErrNotReady);
+        }
+    return driveNumber;
+    }
 
 /**
 Registers the drive with the Mass Storage drive manager.
@@ -62,57 +70,57 @@
 @leave KErrNotSupported The drive is not compatible with Mass Storage.
 */
 void CMassStorageMountCB::MountL(TBool /*aForceMount*/)
-	{
-	__FNLOG("CMassStorageMountCB::MountL");
+    {
+    CheckDriveNumberL();
+    CMassStorageFileSystem& msFsys = *reinterpret_cast<CMassStorageFileSystem*>(Drive().GetFSys());
 
-	CheckDriveNumberL();
-	CMassStorageFileSystem& msFsys = *reinterpret_cast<CMassStorageFileSystem*>(Drive().GetFSys());
+    TInt lun = DriveNumberToLun(Drive().DriveNumber());
 
-	TInt lun = DriveNumberToLun(Drive().DriveNumber());
+    OstTrace1(TRACE_SMASSSTORAGE_FS, CMASSSTORAGEMOUNTCB_120,
+              "LUN=%d", lun);
 
-	if(lun < 0)
-		{
-		// This is not a supported Mass Storage drive
-		User::Leave(KErrNotSupported);
-		}
+    if(lun < 0)
+        {
+        // This is not a supported Mass Storage drive
+        User::Leave(KErrNotSupported);
+        }
 
-	TBusLocalDrive& localDrive = msFsys.iLocalDriveForMediaFlag[lun];
+    TBusLocalDrive& localDrive = msFsys.iLocalDriveForMediaFlag[lun];
 
-	TInt err = CreateLocalDrive(localDrive);
-	User::LeaveIfError(err);
+    TInt err = CreateLocalDrive(localDrive);
+    User::LeaveIfError(err);
 
-	CProxyDrive* proxyDrive = LocalDrive();
+    CProxyDrive* proxyDrive = LocalDrive();
 
-	TLocalDriveCapsV2Buf caps;
-	err = localDrive.Caps(caps);
-	//Make sure file system is FAT and removable
-	if (err == KErrNone)
-		{
-		err = KErrNotSupported;
-		if ((caps().iDriveAtt & KDriveAttRemovable) == KDriveAttRemovable)
-			{
-			if (caps().iType != EMediaNotPresent)
-				{
-				err = KErrNone;
-				}
-			}
-		}
+    TLocalDriveCapsV2Buf caps;
+    err = localDrive.Caps(caps);
+    //Make sure file system is FAT and removable
+    if (err == KErrNone)
+        {
+        err = KErrNotSupported;
+        if ((caps().iDriveAtt & KDriveAttRemovable) == KDriveAttRemovable)
+            {
+            if (caps().iType != EMediaNotPresent)
+                {
+                err = KErrNone;
+                }
+            }
+        }
 
-	if (err != KErrNone && err != KErrNotReady)
-		{
-		__PRINT1(_L("CMassStorageMountCB::MountL: Drive is not compatible with Mass Storage, err=%d"), err);
-		User::Leave(err);
-		}
-
-	__PRINT(_L("CMassStorageMountCB::MountL: Registering drive"));
+    if (err != KErrNone && err != KErrNotReady)
+        {
+        OstTrace1(TRACE_SMASSSTORAGE_FS, CMASSSTORAGEMOUNTCB_121,
+                  "Drive is not compatible with Mass Storage err=%d", err);
+        User::Leave(err);
+        }
 
-	// Set media changed to true so that Win2K doesn't used cached drive data
-	(*msFsys.iMediaChanged)[lun] = ETrue;
+    // Set media changed to true so that Win2K doesn't used cached drive data
+    (*msFsys.iMediaChanged)[lun] = ETrue;
 
-	msFsys.Controller().DriveManager().RegisterDrive(*proxyDrive, (*msFsys.iMediaChanged)[lun], lun);
+    msFsys.Controller().DriveManager().RegisterDrive(*proxyDrive, (*msFsys.iMediaChanged)[lun], lun);
 
-	SetVolumeName(_L("MassStorage").AllocL());
-	}
+    SetVolumeName(_L("MassStorage").AllocL());
+    }
 
 /**
 Returns the LUN that corresponds to the specified drive number.
@@ -120,39 +128,39 @@
 @param aDriveNumber The drive number.
 */
 TInt CMassStorageMountCB::DriveNumberToLun(TInt aDriveNumber)
-	{
-	__FNLOG("CMassStorageMountCB::DriveNumberToLun");
-	TInt lun = -1;
-	for (TInt i = 0; i < iDriveMapping.Count(); i++)
-		{
-		if (iDriveMapping[i] == aDriveNumber)
-			{
-			lun = i;
-			break;
-			}
-		}
-	__PRINT2(_L("CMassStorageMountCB::DriveNumberToLun: Drive %d maps to LUN %d"), aDriveNumber, lun);
-	return lun;
-	}
+    {
+    TInt lun = -1;
+    for (TInt i = 0; i < iDriveMapping.Count(); i++)
+        {
+        if (iDriveMapping[i] == aDriveNumber)
+            {
+            lun = i;
+            break;
+            }
+        }
+    OstTraceExt2(TRACE_SMASSSTORAGE_FS, CMASSSTORAGEMOUNTCB_130,
+                 "Drive %d maps to LUN %d", aDriveNumber, lun);
+    return lun;
+    }
 
 /**
 Deregisters the drive from the Drive Manager.
 */
 void CMassStorageMountCB::Dismounted()
-	{
-	__FNLOG("CMassStorageMountCB::Dismounted");
-	TInt driveNumber = -1;
-	TRAPD(err, driveNumber = CheckDriveNumberL());
-	if (err != KErrNone)
-		{
-		return;
-		}
-	__PRINT(_L("CMassStorageMountCB::Dismounted: Deregistering drive"));
+    {
+    TInt driveNumber = -1;
+    TRAPD(err, driveNumber = CheckDriveNumberL());
+    if (err != KErrNone)
+        {
+        return;
+        }
+    OstTrace1(TRACE_SMASSSTORAGE_FS, CMASSSTORAGEMOUNTCB_140,
+              "Dismounted drive %d", driveNumber);
     CMassStorageFileSystem& msFsys = *reinterpret_cast<CMassStorageFileSystem*>(Drive().GetFSys());
-	msFsys.Controller().DriveManager().DeregisterDrive(DriveNumberToLun(driveNumber));
-	
-	DismountedLocalDrive();
-	}
+    msFsys.Controller().DriveManager().DeregisterDrive(DriveNumberToLun(driveNumber));
+
+    DismountedLocalDrive();
+    }
 
 /**
 Unlocks the drive with the specified password, optionally storing the password for later use.
@@ -161,158 +169,160 @@
 @param aStore True if the password is to be stored.
 */
 TInt CMassStorageMountCB::Unlock(TMediaPassword& aPassword, TBool aStore)
-	{
-	__FNLOG("CMassStorageMountCB::Unlock");
-	TInt driveNumber = -1;
-	TRAPD(err, driveNumber = CheckDriveNumberL());
-	if (err != KErrNone)
-		{
-		return err;
-		}
-	TBusLocalDrive& localDrive=GetLocalDrive(driveNumber);
-	if(localDrive.Status() == KErrLocked)
-		{
-		localDrive.Status() = KErrNotReady;
-		}
-	TInt r = localDrive.Unlock(aPassword, aStore);
-	if(r == KErrNone && aStore)
-		{
-		WritePasswordData();
-		}
-	return(r);
-	}
+    {
+    TInt driveNumber = -1;
+    TRAPD(err, driveNumber = CheckDriveNumberL());
+    OstTrace1(TRACE_SMASSSTORAGE_FS, CMASSSTORAGEMOUNTCB_150,
+              "Unlock drive %d", driveNumber);
+    if (err != KErrNone)
+        {
+        return err;
+        }
+    TBusLocalDrive& localDrive=GetLocalDrive(driveNumber);
+    if(localDrive.Status() == KErrLocked)
+        {
+        localDrive.Status() = KErrNotReady;
+        }
+    TInt r = localDrive.Unlock(aPassword, aStore);
+    if(r == KErrNone && aStore)
+        {
+        WritePasswordData();
+        }
+    return(r);
+    }
 
 /**
 Stores the password for the drive to the password file.
 */
 void CMassStorageMountCB::WritePasswordData()
-	{
-	__FNLOG("CMassStorageMountCB::WritePasswordData");
-	TBusLocalDrive& local=GetLocalDrive(Drive().DriveNumber());
-	TInt length = local.PasswordStoreLengthInBytes();
-	if(length==0)
-		{
-		TBuf<sizeof(KMediaPWrdFile)> mediaPWrdFile(KMediaPWrdFile);
-		mediaPWrdFile[0] = (TUint8) RFs::GetSystemDriveChar();
-		WriteToDisk(mediaPWrdFile,_L8(""));
-		return;
-		}
-	HBufC8* hDes=HBufC8::New(length);
-	if(hDes==NULL)
-		{
-		return;
-		}
-	TPtr8 pDes=hDes->Des();
-	TInt r=local.ReadPasswordData(pDes);
-	if(r==KErrNone)
-		{
-		TBuf<sizeof(KMediaPWrdFile)> mediaPWrdFile(KMediaPWrdFile);
-		mediaPWrdFile[0] = (TUint8) RFs::GetSystemDriveChar();
-		WriteToDisk(mediaPWrdFile,pDes);
-		}
-	delete hDes;
-	}
+    {
+    TBusLocalDrive& local=GetLocalDrive(Drive().DriveNumber());
+    OstTrace1(TRACE_SMASSSTORAGE_FS, CMASSSTORAGEMOUNTCB_160,
+              "WritePasswordData drive %d", DriveNumber());
+    TInt length = local.PasswordStoreLengthInBytes();
+    if(length==0)
+        {
+        TBuf<sizeof(KMediaPWrdFile)> mediaPWrdFile(KMediaPWrdFile);
+        mediaPWrdFile[0] = (TUint8) RFs::GetSystemDriveChar();
+        WriteToDisk(mediaPWrdFile,_L8(""));
+        return;
+        }
+    HBufC8* hDes=HBufC8::New(length);
+    if(hDes==NULL)
+        {
+        return;
+        }
+    TPtr8 pDes=hDes->Des();
+    TInt r=local.ReadPasswordData(pDes);
+    if(r==KErrNone)
+        {
+        TBuf<sizeof(KMediaPWrdFile)> mediaPWrdFile(KMediaPWrdFile);
+        mediaPWrdFile[0] = (TUint8) RFs::GetSystemDriveChar();
+        WriteToDisk(mediaPWrdFile,pDes);
+        }
+    delete hDes;
+    }
 
 TInt CMassStorageMountCB::ReMount()
-	{
-	return KErrNotReady;
-	}
+    {
+    return KErrNotReady;
+    }
 
 void CMassStorageMountCB::VolumeL(TVolumeInfo& /*aVolume*/) const
-	{
-	User::Leave(KErrNotReady);
-	}
+    {
+    User::Leave(KErrNotReady);
+    }
 
 void CMassStorageMountCB::SetVolumeL(TDes& /*aName*/)
-	{
-	User::Leave(KErrNotReady);
-	}
+    {
+    User::Leave(KErrNotReady);
+    }
 
 void CMassStorageMountCB::MkDirL(const TDesC& /*aName*/)
-	{
-	User::Leave(KErrNotReady);
-	}
+    {
+    User::Leave(KErrNotReady);
+    }
 
 void CMassStorageMountCB::RmDirL(const TDesC& /*aName*/)
-	{
-	User::Leave(KErrNotReady);
-	}
+    {
+    User::Leave(KErrNotReady);
+    }
 
 void CMassStorageMountCB::DeleteL(const TDesC& /*aName*/)
-	{
-	User::Leave(KErrNotReady);
-	}
+    {
+    User::Leave(KErrNotReady);
+    }
 
 void CMassStorageMountCB::RenameL(const TDesC& /*anOldName*/,const TDesC& /*anNewName*/)
-	{
-	User::Leave(KErrNotReady);
-	}
+    {
+    User::Leave(KErrNotReady);
+    }
 
 void CMassStorageMountCB::ReplaceL(const TDesC& /*anOldName*/,const TDesC& /*anNewName*/)
-	{
-	User::Leave(KErrNotReady);
-	}
+    {
+    User::Leave(KErrNotReady);
+    }
 
 void CMassStorageMountCB::EntryL(const TDesC& /*aName*/,TEntry& /*anEntry*/) const
-	{
-	User::Leave(KErrNotReady);
-	}
+    {
+    User::Leave(KErrNotReady);
+    }
 
 void CMassStorageMountCB::SetEntryL(const TDesC& /*aName*/,const TTime& /*aTime*/,TUint /*aSetAttMask*/,TUint /*aClearAttMask*/)
-	{
-	User::Leave(KErrNotReady);
-	}
+    {
+    User::Leave(KErrNotReady);
+    }
 
 void CMassStorageMountCB::FileOpenL(const TDesC& /*aName*/,TUint /*aMode*/,TFileOpen /*anOpen*/,CFileCB* /*aFile*/)
-	{
-	User::Leave(KErrNotReady);
-	}
+    {
+    User::Leave(KErrNotReady);
+    }
 
 void CMassStorageMountCB::DirOpenL(const TDesC& /*aName*/,CDirCB* /*aDir*/)
-	{
-	User::Leave(KErrNotReady);
-	}
+    {
+    User::Leave(KErrNotReady);
+    }
 
 
 void CMassStorageMountCB::RawReadL(TInt64 /*aPos*/,TInt /*aLength*/,const TAny* /*aTrg*/,TInt /*anOffset*/,const RMessagePtr2& /*aMessage*/) const
-	{
-	User::Leave(KErrNotReady);
-	}
+    {
+    User::Leave(KErrNotReady);
+    }
 
 void CMassStorageMountCB::RawWriteL(TInt64 /*aPos*/,TInt /*aLength*/,const TAny* /*aSrc*/,TInt /*anOffset*/,const RMessagePtr2& /*aMessage*/)
-	{
-	User::Leave(KErrNotReady);
-	}
+    {
+    User::Leave(KErrNotReady);
+    }
 
 
 void CMassStorageMountCB::GetShortNameL(const TDesC& /*aLongName*/,TDes& /*aShortName*/)
-	{
-	User::Leave(KErrNotReady);
-	}
+    {
+    User::Leave(KErrNotReady);
+    }
 
 void CMassStorageMountCB::GetLongNameL(const TDesC& /*aShorName*/,TDes& /*aLongName*/)
-	{
-	User::Leave(KErrNotReady);
-	}
+    {
+    User::Leave(KErrNotReady);
+    }
 
 #if defined(_DEBUG)
 TInt CMassStorageMountCB::ControlIO(const RMessagePtr2& aMessage,TInt aCommand,TAny* aParam1,TAny* aParam2)
 //
 // Debug function
 //
-	{
-	if(aCommand>=(KMaxTInt/2))
-		return LocalDrive()->ControlIO(aMessage,aCommand-(KMaxTInt/2),aParam1,aParam2);
-	else
-		return KErrNotSupported;
-	}
+    {
+    if(aCommand>=(KMaxTInt/2))
+        return LocalDrive()->ControlIO(aMessage,aCommand-(KMaxTInt/2),aParam1,aParam2);
+    else
+        return KErrNotSupported;
+    }
 #else
 TInt CMassStorageMountCB::ControlIO(const RMessagePtr2& /*aMessage*/,TInt /*aCommand*/,TAny* /*aParam1*/,TAny* /*aParam2*/)
-	{return(KErrNotSupported);}
+    {return(KErrNotSupported);}
 #endif
 
 void CMassStorageMountCB::ReadSectionL(const TDesC& /*aName*/,TInt /*aPos*/,TAny* /*aTrg*/,TInt /*aLength*/,const RMessagePtr2& /*aMessage*/)
-	{
-	User::Leave(KErrNotReady);
-	}
+    {
+    User::Leave(KErrNotReady);
+    }