Fix for bug 2283 (RVCT 4.0 support is missing from PDK 3.0.h)
Have multiple extension sections in the bld.inf, one for each version
of the compiler. The RVCT version building the tools will build the
runtime libraries for its version, but make sure we extract all the other
versions from zip archives. Also add the archive for RVCT4.
// Copyright (c) 1996-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\common_constants.h
// Declarations of the constants etc. commom for FAT16/32 Fsy.
//
//
/**
@file
@internalTechnology
*/
//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
//!!
//!! WARNING!! DO NOT edit this file !! '\sfat' component is obsolete and is not being used. '\sfat32'replaces it
//!!
//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
#ifndef COMMON_CONSTANTS_H
#define COMMON_CONSTANTS_H
#include <f32fsys.h>
#include <f32dbg.h>
IMPORT_C TUint32 DebugRegister();
//-- define this for having logs disregarding DebugRegister() settings
//#define FORCE_LOGS
#if defined(_DEBUG) || defined(_DEBUG_RELEASE)
#ifndef FORCE_LOGS
#define __PRINT(t) {if (DebugRegister()&KFSYS) RDebug::Print(t);}
#define __PRINT1(t,a) {if (DebugRegister()&KFSYS) RDebug::Print(t,a);}
#define __PRINT2(t,a,b) {if (DebugRegister()&KFSYS) RDebug::Print(t,a,b);}
#define __PRINT3(t,a,b,c) {if (DebugRegister()&KFSYS) RDebug::Print(t,a,b,c);}
#define __PRINT4(t,a,b,c,d) {if (DebugRegister()&KFSYS) RDebug::Print(t,a,b,c,d);}
#define __PRINT5(t,a,b,c,d,e) {if (DebugRegister()&KFSYS) RDebug::Print(t,a,b,c,d,e);}
#define __PRINT6(t,a,b,c,d,e,f) {if (DebugRegister()&KFSYS) RDebug::Print(t,a,b,c,d,e,f);}
#define __PRINT7(t,a,b,c,d,e,f,g) {if (DebugRegister()&KFSYS) RDebug::Print(t,a,b,c,d,e,f,g);}
#define __PRINT8BIT1(t,a) {if (DebugRegister()&KFSYS){TFileName temp;temp.Copy(a);RDebug::Print(t,&temp);}}
#define __PRINT1TEMP(t,a) {if (DebugRegister()&KFSERV) {TBuf<KMaxFileName>temp(a);RDebug::Print(t,&temp);}}
#else //FORCE_LOGS
#define __PRINT(t) {RDebug::Print(t);}
#define __PRINT1(t,a) {RDebug::Print(t,a);}
#define __PRINT2(t,a,b) {RDebug::Print(t,a,b);}
#define __PRINT3(t,a,b,c) {RDebug::Print(t,a,b,c);}
#define __PRINT4(t,a,b,c,d) {RDebug::Print(t,a,b,c,d);}
#define __PRINT5(t,a,b,c,d,e) {RDebug::Print(t,a,b,c,d,e);}
#define __PRINT6(t,a,b,c,d,e,f) {RDebug::Print(t,a,b,c,d,e,f);}
#define __PRINT7(t,a,b,c,d,e,f,g) {RDebug::Print(t,a,b,c,d,e,f,g);}
#define __PRINT8BIT1(t,a) {{TFileName temp;temp.Copy(a);RDebug::Print(t,&temp);}}
#define __PRINT1TEMP(t,a) {{TBuf<KMaxFileName>temp(a);RDebug::Print(t,&temp);}}
#endif//FORCE_LOGS
#define DBG_STATEMENT(text) text
#else
#define __PRINT(t)
#define __PRINT1(t,a)
#define __PRINT2(t,a,b)
#define __PRINT3(t,a,b,c)
#define __PRINT4(t,a,b,c,d)
#define __PRINT5(t,a,b,c,d,e)
#define __PRINT6(t,a,b,c,d,e,f)
#define __PRINT7(t,a,b,c,d,e,f,g)
#define __PRINT8BIT1(t,a)
#define __PRINT1TEMP(t,a)
#define DBG_STATEMENT(text)
#endif
//-----------------------------------------------------------------------------
//-- define this macro in order to enable the DEMAND PAGING DIRECTORY CACHE.
#define USE_DP_DIR_CACHE
//-----------------------------------------------------------------------------
typedef TUint32 TLinAddr;
typedef TUint32 TFat32Entry;
typedef TUint16 TFat16Entry;
const TUint16 K1KiloByteLog2 = 10;
const TUint32 K1KiloByte = 1<<10;
const TUint32 K1MegaByte = 1<<20;
const TUint32 K1uSec = 1; ///< 1 misrosecond in TTimeIntervalMicroSeconds32
const TUint32 K1mSec = 1000; ///< 1 millisecond in TTimeIntervalMicroSeconds32
const TUint32 K1Sec = 1000*K1mSec; ///< 1 second in TTimeIntervalMicroSeconds32
_LIT8(KLit8ReplacementForUnconvertibleUnicodeCharacters, "_");
_LIT8(KFileSystemName12,"FAT12 "); ///< Name in BPB given to a Fat12 volume
_LIT8(KFileSystemName16,"FAT16 "); ///< Name in BPB given to a Fat16 volume
_LIT8(KFileSystemName32,"FAT32 "); ///< Name in BPB given to a Fat32 volume
_LIT8(KDefaultVendorID, "EPOC"); ///< Vendor Name for BPB for any volume formated using a Symbian OS device
const TInt KMaxFatFileNameExt=3; ///< Maximum Fat file system file/directory name extension length
const TInt KNumberOfFatsInternal=1; ///< Number of FATs for an internal drive
const TInt KNumberOfFatsExternal=2; ///< Number of FATs for an internal drive
const TInt KMaxFatFileName=12; ///< Maximum Fat file system file/directory name length
const TInt KMaxFatFileNameWithoutExt=8; ///< Maximum Fat file system file/directory name length without extension
const TInt KMaxDuplicateShortName=0xFFFF;
const TInt KMaxVFatEntryName=13; ///< Maximum entries in a VFat name
const TInt KMaxFAT16Entries=0xFFF0; ///< Maximum number of clusters in a Fat16 Fat table, 65520
const TInt KMaxFAT12Entries=0xFF0; ///< Maximum number of clusters in a Fat12 Fat table, 4080
const TUint8 KBootSectorMediaDescriptor=0xF8; ///< Media descriptor for a Fat volume, Generic disk
const TUint8 KEntryErasedMarker=0xE5; ///< Erased entry marker for a directory entry
const TUint KDefSectorSzLog2=9; ///< Log2 of the default sector size for FAT
const TUint KDefaultSectorSize = 1 << KDefSectorSzLog2; ///< Default sector size for FAT, 512 bytes
const TInt EOF_32Bit =0x0fffffff; ///< End of cluster chain value for Fat32
const TInt EOF_16Bit =0xffff; ///< End of cluster chain value for Fat16
const TInt EOF_12Bit =0xfff; ///< End of cluster chain value for Fat12
const TInt KBad_32Bit=0x0ffffff7; ///< Bad cluster value for Fat32
const TInt KBad_16Bit=0xfff7; ///< Bad cluster value for Fat16
const TInt KBad_12Bit=0xff7; ///< bad cluster value for Fat12
const TUint KSpareCluster = 0; ///< FAT entry value for the spare cluster
const TUint32 KFatFirstSearchCluster = 2; ///< FAT usable clusters start from 2; FAT[0] and FAT[1] are reserved
const TUint KFat16EntrySzLog2 = 1; ///< Log2(sizeof(TFat16Entry)); FAT16 entry is 2 bytes
const TUint KFat32EntrySzLog2 = 2; ///< Log2(sizeof(TFat32Entry)); FAT32 entry is 4 bytes
//-----------------------------------------------------------------------------
/**
Internal fault codes for FAT fsy
*/
enum TFault
{
EVFatNoLongName, // 0
EFatBadParameter, // 1
EFatBadLocalDrive, // 2
EFatBadBootSectorParameter, // 3
EFatBadDirEntryParameter, // 4
EFatBadStdFormatName, // 5
EFatBadDosFormatName, // 6
EFatCorrupt, // 7
EFatChkDskIllegalClusterNumber, // 8
EFatChkDskClusterAlreadyInUse, // 9
EFatChkDskBadCluster, // 10
EFatChkDskInvalidEntrySize, // 11
EFatFilePosBeyondEnd, // 12
EFatFileSeekIndexTooSmall, // 13
EFatFileSeekIndexTooSmall2, // 14
ELruCacheBadGranularity, // 15
EFatRawReadTooBig, // 16
EFatReadUidFailed, // 17
ELruCacheFlushNotSupported, // 18
EReadFileSectionFailed, // 19
EBadReplacementForUnconvertibleUnicodeCharacters, // 20
EFatRAMDriveSizeInvalid, // 21
EFatRAMDriveFreeInvalid, // 22
ECheckFatIndexZero, // 23
EFatCache_BadGranularity, // 24
EFatCache_DiscardingDirtyData, // 25
EFatCache_NotImplemented, // 26
EFatCache_BadFatType, // 27
EFatTable_InvalidIndex, // 28
};
//-----------------------------------------------------------------------------
#if defined(_DEBUG)
/** debug IO control functions */
enum TControlIO
{
ECriticalWriteFailOn, ///< 0
ECriticalWriteFailOff, ///< 1
ERuggedFSysOn, ///< 2
ERuggedFSysOff, ///< 3
EIsRuggedFSys, ///< 4
ENCNotifierHang, ///< 5
ENCNotifierClear, ///< 6
ECNotifier, ///< 7
ECNotifierCancel, ///< 8
ENCNotifierRepeat, ///< 9
ELocalTimeForRemovableMediaOn, ///< 10
ELocalTimeForRemovableMediaOff, ///< 11
ELocalTimeUsedOnRemovableMedia, ///< 12
ECreationTime, ///< 13
EDisableFATDirCache, ///<14
EDumpFATDirCache, ///<15
EFATDirCacheInfo, ///<16
EExtCustom=KMaxTInt/2
};
const TUid KSID_Test1={0x10210EB3}; ///< SID of the test that will define and set test property to control volume mounting
//-- bit flags passed by test property value. Used to control some volume mounting features.
const TUint32 KMntDisable_FsInfo = 0x00000001; //-- mask for disabling/enabling FSInfo information
const TUint32 KMntDisable_FatBkGndScan = 0x00000002; //-- mask for disabling/enabling FAT background scanner
#endif //#if defined(_DEBUG)
#endif //COMMON_CONSTANTS_H