Update contrib.
1 // Copyright (c) 1996-2009 Nokia Corporation and/or its subsidiary(-ies).
2 // All rights reserved.
3 // This component and the accompanying materials are made available
4 // under the terms of the License "Eclipse Public License v1.0"
5 // which accompanies this distribution, and is available
6 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
8 // Initial Contributors:
9 // Nokia Corporation - initial contribution.
14 // f32\sfat\common_constants.h
15 // Declarations of the constants etc. commom for FAT16/32 Fsy.
24 //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
25 //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
27 //!! WARNING!! DO NOT edit this file !! '\sfat' component is obsolete and is not being used. '\sfat32'replaces it
29 //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
30 //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
33 #ifndef COMMON_CONSTANTS_H
34 #define COMMON_CONSTANTS_H
42 IMPORT_C TUint32 DebugRegister();
45 //-- define this for having logs disregarding DebugRegister() settings
49 #if defined(_DEBUG) || defined(_DEBUG_RELEASE)
52 #define __PRINT(t) {if (DebugRegister()&KFSYS) RDebug::Print(t);}
53 #define __PRINT1(t,a) {if (DebugRegister()&KFSYS) RDebug::Print(t,a);}
54 #define __PRINT2(t,a,b) {if (DebugRegister()&KFSYS) RDebug::Print(t,a,b);}
55 #define __PRINT3(t,a,b,c) {if (DebugRegister()&KFSYS) RDebug::Print(t,a,b,c);}
56 #define __PRINT4(t,a,b,c,d) {if (DebugRegister()&KFSYS) RDebug::Print(t,a,b,c,d);}
57 #define __PRINT5(t,a,b,c,d,e) {if (DebugRegister()&KFSYS) RDebug::Print(t,a,b,c,d,e);}
58 #define __PRINT6(t,a,b,c,d,e,f) {if (DebugRegister()&KFSYS) RDebug::Print(t,a,b,c,d,e,f);}
59 #define __PRINT7(t,a,b,c,d,e,f,g) {if (DebugRegister()&KFSYS) RDebug::Print(t,a,b,c,d,e,f,g);}
60 #define __PRINT8BIT1(t,a) {if (DebugRegister()&KFSYS){TFileName temp;temp.Copy(a);RDebug::Print(t,&temp);}}
61 #define __PRINT1TEMP(t,a) {if (DebugRegister()&KFSERV) {TBuf<KMaxFileName>temp(a);RDebug::Print(t,&temp);}}
63 #define __PRINT(t) {RDebug::Print(t);}
64 #define __PRINT1(t,a) {RDebug::Print(t,a);}
65 #define __PRINT2(t,a,b) {RDebug::Print(t,a,b);}
66 #define __PRINT3(t,a,b,c) {RDebug::Print(t,a,b,c);}
67 #define __PRINT4(t,a,b,c,d) {RDebug::Print(t,a,b,c,d);}
68 #define __PRINT5(t,a,b,c,d,e) {RDebug::Print(t,a,b,c,d,e);}
69 #define __PRINT6(t,a,b,c,d,e,f) {RDebug::Print(t,a,b,c,d,e,f);}
70 #define __PRINT7(t,a,b,c,d,e,f,g) {RDebug::Print(t,a,b,c,d,e,f,g);}
71 #define __PRINT8BIT1(t,a) {{TFileName temp;temp.Copy(a);RDebug::Print(t,&temp);}}
72 #define __PRINT1TEMP(t,a) {{TBuf<KMaxFileName>temp(a);RDebug::Print(t,&temp);}}
75 #define DBG_STATEMENT(text) text
81 #define __PRINT2(t,a,b)
82 #define __PRINT3(t,a,b,c)
83 #define __PRINT4(t,a,b,c,d)
84 #define __PRINT5(t,a,b,c,d,e)
85 #define __PRINT6(t,a,b,c,d,e,f)
86 #define __PRINT7(t,a,b,c,d,e,f,g)
87 #define __PRINT8BIT1(t,a)
88 #define __PRINT1TEMP(t,a)
90 #define DBG_STATEMENT(text)
94 //-----------------------------------------------------------------------------
96 //-- define this macro in order to enable the DEMAND PAGING DIRECTORY CACHE.
97 #define USE_DP_DIR_CACHE
99 //-----------------------------------------------------------------------------
101 typedef TUint32 TLinAddr;
102 typedef TUint32 TFat32Entry;
103 typedef TUint16 TFat16Entry;
105 const TUint16 K1KiloByteLog2 = 10;
106 const TUint32 K1KiloByte = 1<<10;
107 const TUint32 K1MegaByte = 1<<20;
109 const TUint32 K1uSec = 1; ///< 1 misrosecond in TTimeIntervalMicroSeconds32
110 const TUint32 K1mSec = 1000; ///< 1 millisecond in TTimeIntervalMicroSeconds32
111 const TUint32 K1Sec = 1000*K1mSec; ///< 1 second in TTimeIntervalMicroSeconds32
113 _LIT8(KLit8ReplacementForUnconvertibleUnicodeCharacters, "_");
114 _LIT8(KFileSystemName12,"FAT12 "); ///< Name in BPB given to a Fat12 volume
115 _LIT8(KFileSystemName16,"FAT16 "); ///< Name in BPB given to a Fat16 volume
116 _LIT8(KFileSystemName32,"FAT32 "); ///< Name in BPB given to a Fat32 volume
117 _LIT8(KDefaultVendorID, "EPOC"); ///< Vendor Name for BPB for any volume formated using a Symbian OS device
119 const TInt KMaxFatFileNameExt=3; ///< Maximum Fat file system file/directory name extension length
120 const TInt KNumberOfFatsInternal=1; ///< Number of FATs for an internal drive
121 const TInt KNumberOfFatsExternal=2; ///< Number of FATs for an internal drive
122 const TInt KMaxFatFileName=12; ///< Maximum Fat file system file/directory name length
123 const TInt KMaxFatFileNameWithoutExt=8; ///< Maximum Fat file system file/directory name length without extension
124 const TInt KMaxDuplicateShortName=0xFFFF;
125 const TInt KMaxVFatEntryName=13; ///< Maximum entries in a VFat name
126 const TInt KMaxFAT16Entries=0xFFF0; ///< Maximum number of clusters in a Fat16 Fat table, 65520
127 const TInt KMaxFAT12Entries=0xFF0; ///< Maximum number of clusters in a Fat12 Fat table, 4080
128 const TUint8 KBootSectorMediaDescriptor=0xF8; ///< Media descriptor for a Fat volume, Generic disk
129 const TUint8 KEntryErasedMarker=0xE5; ///< Erased entry marker for a directory entry
131 const TUint KDefSectorSzLog2=9; ///< Log2 of the default sector size for FAT
132 const TUint KDefaultSectorSize = 1 << KDefSectorSzLog2; ///< Default sector size for FAT, 512 bytes
135 const TInt EOF_32Bit =0x0fffffff; ///< End of cluster chain value for Fat32
136 const TInt EOF_16Bit =0xffff; ///< End of cluster chain value for Fat16
137 const TInt EOF_12Bit =0xfff; ///< End of cluster chain value for Fat12
138 const TInt KBad_32Bit=0x0ffffff7; ///< Bad cluster value for Fat32
139 const TInt KBad_16Bit=0xfff7; ///< Bad cluster value for Fat16
140 const TInt KBad_12Bit=0xff7; ///< bad cluster value for Fat12
142 const TUint KSpareCluster = 0; ///< FAT entry value for the spare cluster
143 const TUint32 KFatFirstSearchCluster = 2; ///< FAT usable clusters start from 2; FAT[0] and FAT[1] are reserved
145 const TUint KFat16EntrySzLog2 = 1; ///< Log2(sizeof(TFat16Entry)); FAT16 entry is 2 bytes
146 const TUint KFat32EntrySzLog2 = 2; ///< Log2(sizeof(TFat32Entry)); FAT32 entry is 4 bytes
150 //-----------------------------------------------------------------------------
153 Internal fault codes for FAT fsy
157 EVFatNoLongName, // 0
158 EFatBadParameter, // 1
159 EFatBadLocalDrive, // 2
160 EFatBadBootSectorParameter, // 3
161 EFatBadDirEntryParameter, // 4
162 EFatBadStdFormatName, // 5
163 EFatBadDosFormatName, // 6
165 EFatChkDskIllegalClusterNumber, // 8
166 EFatChkDskClusterAlreadyInUse, // 9
167 EFatChkDskBadCluster, // 10
168 EFatChkDskInvalidEntrySize, // 11
169 EFatFilePosBeyondEnd, // 12
170 EFatFileSeekIndexTooSmall, // 13
171 EFatFileSeekIndexTooSmall2, // 14
172 ELruCacheBadGranularity, // 15
173 EFatRawReadTooBig, // 16
174 EFatReadUidFailed, // 17
175 ELruCacheFlushNotSupported, // 18
176 EReadFileSectionFailed, // 19
177 EBadReplacementForUnconvertibleUnicodeCharacters, // 20
179 EFatRAMDriveSizeInvalid, // 21
180 EFatRAMDriveFreeInvalid, // 22
181 ECheckFatIndexZero, // 23
183 EFatCache_BadGranularity, // 24
184 EFatCache_DiscardingDirtyData, // 25
185 EFatCache_NotImplemented, // 26
186 EFatCache_BadFatType, // 27
188 EFatTable_InvalidIndex, // 28
192 //-----------------------------------------------------------------------------
197 /** debug IO control functions */
200 ECriticalWriteFailOn, ///< 0
201 ECriticalWriteFailOff, ///< 1
202 ERuggedFSysOn, ///< 2
203 ERuggedFSysOff, ///< 3
204 EIsRuggedFSys, ///< 4
205 ENCNotifierHang, ///< 5
206 ENCNotifierClear, ///< 6
208 ECNotifierCancel, ///< 8
209 ENCNotifierRepeat, ///< 9
211 ELocalTimeForRemovableMediaOn, ///< 10
212 ELocalTimeForRemovableMediaOff, ///< 11
213 ELocalTimeUsedOnRemovableMedia, ///< 12
214 ECreationTime, ///< 13
216 EDisableFATDirCache, ///<14
217 EDumpFATDirCache, ///<15
218 EFATDirCacheInfo, ///<16
220 EExtCustom=KMaxTInt/2
224 const TUid KSID_Test1={0x10210EB3}; ///< SID of the test that will define and set test property to control volume mounting
226 //-- bit flags passed by test property value. Used to control some volume mounting features.
227 const TUint32 KMntDisable_FsInfo = 0x00000001; //-- mask for disabling/enabling FSInfo information
228 const TUint32 KMntDisable_FatBkGndScan = 0x00000002; //-- mask for disabling/enabling FAT background scanner
230 #endif //#if defined(_DEBUG)
235 #endif //COMMON_CONSTANTS_H