--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/imgtools/imglib/filesystem/include/constants.h Tue Oct 27 16:36:35 2009 +0000
@@ -0,0 +1,183 @@
+/*
+* Copyright (c) 2006-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:
+* Constants used by FileSystem component
+* @internalComponent
+* @released
+* This file contains common constants used by FileSystem component
+*
+*/
+
+
+#ifndef CONSTANTS_H
+#define CONSTANTS_H
+
+/*
+ * mingw.inl is included to avoid the below mentioned error throwned by mingw compiler.
+ * "stl_construct.h: error: no matching function for call to `operator new(unsigned int, void*)'"
+ */
+#include "mingw.inl"
+#include "utils.h"
+
+//This constant is used to track the FileSystem component version information.
+const int KFileSystemMajorVersion = 1;
+const int KFileSystemMinorVersion = 1;
+
+#define KDefaultVolumeLabel "NO NAME "
+#define KDefaultOEMName "SYMBIAN "
+
+const int KSectorsPerBootSector = 1;
+
+/* Total number of reserved clusters which is always two as cluster 0 and 1
+ * are never used by data segment for file or directory writing
+ */
+const int KReservedClusters = 2;
+
+//Offset just after the end of boot sector w.r.t to the start of a FAT Volume
+const int KBootSectorOffset = 512;
+
+//size of the first reserved field in FSInfo data structure
+const int KFSIFutureExpansion=480;
+
+//size of the second reserved field in FSInfo data structure
+const int KFSIKFSIFutureExpansion2=12;
+
+//size of reserved field in FAT32 media
+const int KMaxSizeFutureExpansion=12;
+
+//size of volume label in boot sector
+const int KMaxVolumeLabel=11;
+const int KBPBMedia =0xF8;
+const unsigned short KDefaultBytesPerSector=512;
+
+// default sector per clusters for FAT16 image
+const unsigned char KDefaultSectorsPerCluster=2;
+
+// default sector per clusters for FAT32 image
+const unsigned char KDefaultSectorsPerCluster32=1;
+
+//default number of FAT tables
+const unsigned char KDefaultNumFats =2;
+
+// default number of root directories entries for FAT32 image
+const unsigned short KDefaultRootDirEntries=512;
+
+const unsigned short KFat32RootDirEntries=0;
+const unsigned int KSizeOfFatBootSector=512;
+const unsigned char KDefaultReservedByte=0x00;
+
+//size of the string defining the FileSystem type
+const unsigned int KFileSysTypeLength=8;
+const unsigned int KBootSectorSignature=0xAA55;
+const unsigned int KDefaultRootDirClusterNumber=0x0002;
+const unsigned char KDefaultDriveNumber=0x80;
+
+//Default extended boot signature to be specified in boot sector
+const unsigned char KDefaultBootSignature=0x29;
+const unsigned short KDefaultVersion=0;
+const unsigned int KDefaultHiddenSectors= 0;
+const unsigned short KDefaultSectorsPerTrack=0;
+const unsigned short KDefaultNumHeads=0;
+
+//default value of flags to be specified in FAT32 boot sector
+const unsigned short KDefaultExtFlags=0;
+
+//sector number containing the FSInfo data structure in FAT32 volume
+const unsigned short KDefaultFSInfoSector=1;
+
+//sector number to be occupied by backup boot sector in FAT32 volume
+const unsigned short KDefaultBkUpBootSec=6;
+const unsigned short KDefaultFat32ReservedSectors=32;
+const unsigned short KDefaultFat16ReservedSectors=1;
+
+//constant used in FAT table entries
+const unsigned short EOF16 = 0xffff;
+const unsigned short KFat16FirstEntry = 0xfff8;
+const unsigned int EOF32 = 0x0fffffff;
+const unsigned int KFat32FirstEntry =0x0ffffff8;
+const unsigned short KEmptyFATCluster=0;
+
+//minimum and maximum number of FAT32 cluster
+const unsigned int KMinimumFat32Clusters= 65525;
+/* Since Sector size as taken as 512 bytes(Mostly followed), total clusters supported
+ * by FAT32 is limited to 67092480 otherwise it is 268435456. Here 67092480 clusters
+ * will cover up to 2047.9999GB of user input partition size.
+ */
+const unsigned int KMaximumFat32Clusters= 67092480;
+
+
+//minimum and maximum number of FAT16 cluster
+const unsigned int KMinimumFat16Clusters= 4085;
+const unsigned int KMaximumFat16Clusters=65524;
+
+//Partition range constants
+const Long64 K16MB = 0x1000000;
+const Long64 K64MB = 0x4000000;
+const Long64 K128MB =0x8000000;
+const Long64 K256MB =0x10000000;
+const Long64 K260MB =0x10400000;
+const Long64 K512MB =0x20000000;
+const Long64 K1GB =0x40000000;
+const Long64 K2GB =0x80000000;
+#ifdef _MSC_VER
+ const Long64 K8GB =0x200000000;
+ const Long64 K16GB =0x400000000;
+ const Long64 K32GB =0x800000000;
+#else
+ const Long64 K8GB =0x200000000LL;
+ const Long64 K16GB =0x400000000LL;
+ const Long64 K32GB =0x800000000LL;
+#endif
+
+//Bytes per sector selection constants
+const short int K1SectorsPerCluster = 0x01;
+const short int K2SectorsPerCluster = 0x02;
+const short int K4SectorsPerCluster = 0x04;
+const short int K8SectorsPerCluster = 0x08;
+const short int K16SectorsPerCluster = 0x10;
+const short int K32SectorsPerCluster = 0x20;
+const short int K64SectorsPerCluster = 0x40;
+
+const int KParentDirClusterNumber = 0x0;
+const int KCurrentDirClusterNumber = 0x01;
+const short int KFat32RootEntryNumber = 0x02;
+const short int KFat16RootEntryNumber = 0x01;
+const short int KRootClusterNumber = 0x02;
+
+const short int KDirectoryEntrySize = 0x20;
+const short int KZeroFileSize = 0x00;
+const short int KEntryNameSize = 0x3c;
+const short int KFilePathMaxSize = 0xFF;
+const short int KWriteOnce = 0x01;
+
+const long int KHighWordMask = 0x0000FFFF;
+const short int KBitShift16 = 0x10;
+const short int KNTReserverdByte = 0x00;
+
+const short int KPaddingCharCnt = 0x02;
+
+const char KSpace = 0x20;
+const char KDot = 0x2E;
+const char KTilde = 0x7E;
+const char KTildeNumber = 0x31;
+const char KCreateTimeInMsecs = 0x00;
+
+const unsigned char KLongNamePaddingChar = 0xFF;
+const char KNullPaddingChar = 0x00;
+
+const char KDirSubComponent = 0x00;//Dir sub component constant
+const char KLongNameCharSeperator = 0x00;//Long sub component Name characters separated by 0x00
+
+
+#endif //CONSTANTS_H