53 //-- Using FAT bit supercache for fast free cluster lookup |
53 //-- Using FAT bit supercache for fast free cluster lookup |
54 //-- e.g: FAT_FAT32_UseBitSupercache 0 |
54 //-- e.g: FAT_FAT32_UseBitSupercache 0 |
55 _LIT8(KPN_FAT32_UseFatBitSupercache, "FAT_FAT32_UseBitSupercache"); |
55 _LIT8(KPN_FAT32_UseFatBitSupercache, "FAT_FAT32_UseBitSupercache"); |
56 static const TUint32 KDef_FAT32_UseFatBitSupercache = 1; |
56 static const TUint32 KDef_FAT32_UseFatBitSupercache = 1; |
57 |
57 |
|
58 //-- FAT free space scan thread threshold in MegaBytes. If this value is set, the call to ::VolumeL() may be blocked until |
|
59 //-- the given amount of free space (MB) is counted by FAT32 free space scan thread. After this calls to ::VolumeL() will |
|
60 //-- become asynchronous, returning _current_ amount of free space (whic is > than the given threshold) |
|
61 //-- This may help avoiding the situation when FAT32 asynchronous mounting basically turns into a synchronous one, when someone is calling RFs::Volume() |
|
62 //-- just after FAT free space scan thread started. In such a case only first free NNN megabytes will be discovered synchronously, after this |
|
63 //-- the RFs::Volume() call will become asynchronous, returning the changing amount of free spece on the volume. |
|
64 |
|
65 //-- the default value is 0, which means: "no threshold, don't use it" |
|
66 _LIT8(KPN_FAT32_SyncScanThreshold, "FAT_FAT32_SyncScanThr"); |
|
67 static const TUint32 KDef_FAT32_SyncScanThreshold = 0; |
|
68 |
|
69 |
58 |
70 |
59 //-- if this parameter is not 0, "clean shutdown mask" bit in FAT16[1] will be used during volume finalisation. |
71 //-- if this parameter is not 0, "clean shutdown mask" bit in FAT16[1] will be used during volume finalisation. |
60 //-- Otherwise, FAT16[1] will not be affected during finalisation |
72 //-- Otherwise, FAT16[1] will not be affected during finalisation |
61 //-- e.g: KDef_FAT16_UseCleanShutDownBit 0 |
73 //-- e.g: KDef_FAT16_UseCleanShutDownBit 0 |
62 _LIT8(KPN_FAT16_UseCleanShutDownBit,"FAT16_UseCleanShutDownBit"); //-- parameter key name |
74 _LIT8(KPN_FAT16_UseCleanShutDownBit,"FAT16_UseCleanShutDownBit"); //-- parameter key name |
233 //-- read values from estart.txt and cache them |
245 //-- read values from estart.txt and cache them |
234 iScanDrvSkipFinalisedVolume = ReadUint(section, KPN_ScanDrvSkipFinalisedVolume, KDef_ScanDrvSkipFinalisedVolume); |
246 iScanDrvSkipFinalisedVolume = ReadUint(section, KPN_ScanDrvSkipFinalisedVolume, KDef_ScanDrvSkipFinalisedVolume); |
235 iFAT32_AsynchMount = ReadUint(section, KPN_FAT32_AsynchMount, KDef_FAT32_AsynchMount); |
247 iFAT32_AsynchMount = ReadUint(section, KPN_FAT32_AsynchMount, KDef_FAT32_AsynchMount); |
236 iFAT32_UseFSInfoOnMount = ReadUint(section, KPN_FAT32_UseFsInfoOnMount, KDef_FAT32_UseFsInfoOnMount); |
248 iFAT32_UseFSInfoOnMount = ReadUint(section, KPN_FAT32_UseFsInfoOnMount, KDef_FAT32_UseFsInfoOnMount); |
237 iFAT32_UseBitSupercache = ReadUint(section, KPN_FAT32_UseFatBitSupercache, KDef_FAT32_UseFatBitSupercache); |
249 iFAT32_UseBitSupercache = ReadUint(section, KPN_FAT32_UseFatBitSupercache, KDef_FAT32_UseFatBitSupercache); |
238 iFAT16_UseCleanShutDownBit = ReadUint(section, KPN_FAT16_UseCleanShutDownBit, KDef_FAT16_UseCleanShutDownBit); |
250 iFAT16_UseCleanShutDownBit = ReadUint(section, KPN_FAT16_UseCleanShutDownBit, KDef_FAT16_UseCleanShutDownBit); |
|
251 iSyncScanThresholdMB = ReadUint(section, KPN_FAT32_SyncScanThreshold, KDef_FAT32_SyncScanThreshold); |
239 |
252 |
240 // If leaf dir cache is supported, read the configuration from estart.txt file |
253 // If leaf dir cache is supported, read the configuration from estart.txt file |
241 iLeafDirCacheSize = ReadUint(section, KPN_FAT_LeafDirCache, KDef_KLeafDirCacheSize); |
254 iLeafDirCacheSize = ReadUint(section, KPN_FAT_LeafDirCache, KDef_KLeafDirCacheSize); |
242 ProcessDynamicDirCacheParams(section); //-- read dynamic dir cache parameters; |
255 ProcessDynamicDirCacheParams(section); //-- read dynamic dir cache parameters; |
243 |
256 |
358 DoDumpUintParam(KPN_ScanDrvSkipFinalisedVolume, iScanDrvSkipFinalisedVolume); |
371 DoDumpUintParam(KPN_ScanDrvSkipFinalisedVolume, iScanDrvSkipFinalisedVolume); |
359 DoDumpUintParam(KPN_FAT32_AsynchMount, iFAT32_AsynchMount); |
372 DoDumpUintParam(KPN_FAT32_AsynchMount, iFAT32_AsynchMount); |
360 DoDumpUintParam(KPN_FAT32_UseFsInfoOnMount, iFAT32_UseFSInfoOnMount); |
373 DoDumpUintParam(KPN_FAT32_UseFsInfoOnMount, iFAT32_UseFSInfoOnMount); |
361 DoDumpUintParam(KPN_FAT32_UseFatBitSupercache, iFAT32_UseBitSupercache); |
374 DoDumpUintParam(KPN_FAT32_UseFatBitSupercache, iFAT32_UseBitSupercache); |
362 DoDumpUintParam(KPN_FAT16_UseCleanShutDownBit, iFAT16_UseCleanShutDownBit); |
375 DoDumpUintParam(KPN_FAT16_UseCleanShutDownBit, iFAT16_UseCleanShutDownBit); |
|
376 DoDumpUintParam(KPN_FAT32_SyncScanThreshold, iSyncScanThresholdMB); |
|
377 |
363 |
378 |
364 DoDumpUintParam(_L8("FAT_DirCache Size, KB"), iDirCacheSizeKB); |
379 DoDumpUintParam(_L8("FAT_DirCache Size, KB"), iDirCacheSizeKB); |
365 DoDumpUintParam(_L8("FAT_DirCache MaxPage Size Log2"), iDirCacheMaxPageSizeLog2); |
380 DoDumpUintParam(_L8("FAT_DirCache MaxPage Size Log2"), iDirCacheMaxPageSizeLog2); |
366 |
381 |
367 DoDumpUintParam(_L8("FAT_16Cache RdGr Log2"), iFat16FixedCacheReadGrLog2); |
382 DoDumpUintParam(_L8("FAT_16Cache RdGr Log2"), iFat16FixedCacheReadGrLog2); |
369 |
384 |
370 DoDumpUintParam(_L8("FAT_32Cache Size, KB"), iFat32LRUCacheSizeKB); |
385 DoDumpUintParam(_L8("FAT_32Cache Size, KB"), iFat32LRUCacheSizeKB); |
371 DoDumpUintParam(_L8("FAT_32Cache RdGr Log2"), iFat32LRUCacheReadGrLog2); |
386 DoDumpUintParam(_L8("FAT_32Cache RdGr Log2"), iFat32LRUCacheReadGrLog2); |
372 DoDumpUintParam(_L8("FAT_32Cache WrGr Log2"), iFat32LRUCacheWriteGrLog2); |
387 DoDumpUintParam(_L8("FAT_32Cache WrGr Log2"), iFat32LRUCacheWriteGrLog2); |
373 |
388 |
|
389 |
|
390 |
374 |
391 |
375 DoDumpUintParam(KPN_FAT_LeafDirCache, iLeafDirCacheSize); |
392 DoDumpUintParam(KPN_FAT_LeafDirCache, iLeafDirCacheSize); |
376 DoDumpUintParam(KPN_FAT_DynamicDirCacheMin, iDynamicDirCacheSizeMinKB); |
393 DoDumpUintParam(KPN_FAT_DynamicDirCacheMin, iDynamicDirCacheSizeMinKB); |
377 DoDumpUintParam(KPN_FAT_DynamicDirCacheMax, iDynamicDirCacheSizeMaxKB); |
394 DoDumpUintParam(KPN_FAT_DynamicDirCacheMax, iDynamicDirCacheSizeMaxKB); |
378 DoDumpUintParam(_L8("DynamicDirCacheMaxPageSizeLog2"), iDynamicDirCacheMaxPageSizeLog2); |
395 DoDumpUintParam(_L8("DynamicDirCacheMaxPageSizeLog2"), iDynamicDirCacheMaxPageSizeLog2); |