diff -r 000000000000 -r bde4ae8d615e os/kernelhwsrv/userlibandfileserver/fileserver/sfat32/fat_config.inl --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/os/kernelhwsrv/userlibandfileserver/fileserver/sfat32/fat_config.inl Fri Jun 15 03:10:57 2012 +0200 @@ -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 + + + + + +