userlibandfileserver/fileserver/sfat/fat_config.inl
changeset 0 a41df078684a
child 2 4122176ea935
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/userlibandfileserver/fileserver/sfat/fat_config.inl	Mon Oct 19 15:55:17 2009 +0100
@@ -0,0 +1,187 @@
+// Copyright (c) 2008-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:
+// f32\sfat\fat_config.inl
+// FAT fsy configurator
+// 
+//
+
+/**
+ @file
+ @internalTechnology
+*/
+
+#ifndef FAT_CONFIGURATOR_INL
+#define FAT_CONFIGURATOR_INL
+
+//-----------------------------------------------------------------------------
+/**
+    Meaning of this parameter:
+    if not 0, ScanDrive will not run on finalised FAT volume, i.e. that has "CleanShutdown" flag set in FAT[1] by
+    proper finalisation.
+    See CFatMountCB::ScanDrive().
+*/
+TBool TFatConfig::ScanDrvSkipFinalisedVolume() const
+    {
+    ASSERT(iInitialised);
+    return iScanDrvSkipFinalisedVolume;
+    }
+
+//-----------------------------------------------------------------------------
+/**
+    Meaning of this parameter:
+    if not 0, enables asynchronous mounting of the FAT32 volumes.
+    In particular background FAT32 scan for free clusters. See CAtaFatTable::CountFreeClustersL().
+*/
+TBool TFatConfig::FAT32_AsynchMount() const
+    {
+    ASSERT(iInitialised);
+    return iFAT32_AsynchMount;
+    }
+
+//-----------------------------------------------------------------------------
+/**
+    Meaning of this parameter:
+    if not 0, enables using FSInfo sector data during FAT32 volumes mounting to determine number of free clusters etc.
+*/
+TBool TFatConfig::FAT32_UseFSInfoOnMount() const
+    {
+    ASSERT(iInitialised);
+    return iFAT32_UseFSInfoOnMount;
+    }
+
+//-----------------------------------------------------------------------------
+/**
+    Meaning of this parameter:
+    if not 0, enables using FAT32 bit supercache that makes free FAT entries lookup faster
+*/
+TBool TFatConfig::FAT32_UseBitSupercache() const
+    {
+    ASSERT(iInitialised);
+    return iFAT32_UseBitSupercache;
+    }
+
+//-----------------------------------------------------------------------------
+/**
+    Meaning of this parameter:
+    Overall FAT directory cache size in bytes
+*/
+TUint32 TFatConfig::DirCacheSize() const
+    {
+    ASSERT(iInitialised);
+    return iDirCacheSizeKB * K1KiloByte;
+    }
+
+//-----------------------------------------------------------------------------
+
+/**
+    Meaning of this parameter:
+    Log2 of the maximal size of the dir. cache page in bytes. (Minimal size will be  current cluster size)
+*/
+TUint32 TFatConfig::DirCacheMaxPageSizeLog2() const
+    {
+    ASSERT(iInitialised);
+    return iDirCacheMaxPageSizeLog2;
+    }
+
+/**
+    Get FAT16 fixed cache parameters
+    @param  aRdGrLog2 Log2(read granularity)
+    @param  aWrGrLog2 Log2(write granularity)
+*/
+void TFatConfig::Fat16FixedCacheParams(TUint32& aRdGrLog2, TUint32& aWrGrLog2) const
+    {
+    ASSERT(iInitialised);
+    aRdGrLog2 = iFat16FixedCacheReadGrLog2; 
+    aWrGrLog2 = iFat16FixedCacheWriteGrLog2;
+    }
+/**
+    Get FAT32 LRU cache parameters
+    @param  aRdGrLog2 Log2(read granularity)
+    @param  aWrGrLog2 Log2(write granularity)
+    @param  aCacheSize maximal cache size, bytes
+*/
+void TFatConfig::Fat32LruCacheParams(TUint32& aRdGrLog2, TUint32& aWrGrLog2, TUint32& aCacheSize) const
+    {
+    ASSERT(iInitialised);
+    aRdGrLog2 = iFat32LRUCacheReadGrLog2;
+    aWrGrLog2 = iFat32LRUCacheWriteGrLog2;
+    aCacheSize = iFat32LRUCacheSizeKB * K1KiloByte;
+    }
+
+
+/**
+    Meaning of this parameter:
+    if not 0, "clean shutdown mask" bit in FAT16[1] will be used during volume finalisation.
+    Otherwise, FAT16[1] will not be affected during finalisation
+*/
+TBool TFatConfig::FAT16_UseCleanShutDownBit() const
+    {
+    ASSERT(iInitialised);
+    return iFAT16_UseCleanShutDownBit;
+    }
+
+
+
+//-----------------------------------------------------------------------------
+/**
+    Get leaf dir cache size
+	@return leaf dir cache size
+*/
+TUint32 TFatConfig::LeafDirCacheSize() const
+    {
+    ASSERT(iInitialised);
+    return iLeafDirCacheSize;
+    }
+
+/**
+	get the minimum cache size setting for dynamic dir cache
+	@return minimum cache size in bytes				
+*/
+TUint32 TFatConfig::DynamicDirCacheSizeMin() const
+	{
+    ASSERT(iInitialised);
+    ASSERT(iDynamicDirCacheSizeMinKB < (KMaxTUint32 >> K1KiloByteLog2));		//check data overflow
+    return iDynamicDirCacheSizeMinKB << K1KiloByteLog2;
+	}
+
+/**
+	get the maximum cache size setting for dynamic dir cache
+	@return maximum cache size in bytes				
+*/
+TUint32 TFatConfig::DynamicDirCacheSizeMax() const
+	{
+    ASSERT(iInitialised);
+    ASSERT(iDynamicDirCacheSizeMaxKB < (KMaxTUint32 >> K1KiloByteLog2));		//check data overflow
+    return iDynamicDirCacheSizeMaxKB << K1KiloByteLog2;
+	}
+
+/**
+    retrieve the size of the maximal size of the dynamic dir cache page in log2. 
+    (Minimal size will be  current cluster size)
+    @return maximum page size in bytes in log2
+*/
+TUint32 TFatConfig::DynamicDirCacheMaxPageSizeLog2() const
+    {
+    ASSERT(iInitialised);
+    return iDynamicDirCacheMaxPageSizeLog2;
+    }
+
+
+#endif //FAT_CONFIGURATOR_INL
+
+
+
+
+
+