diff -r 820b22e13ff1 -r 39c28ec933dd imgtools/imglib/filesystem/include/constants.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/imgtools/imglib/filesystem/include/constants.h Mon May 10 19:54:49 2010 +0100 @@ -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