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\sfat32\inc\sl_bpb.inl
//
//
#ifndef SL_BPB_INL
#define SL_BPB_INL
/**
Defined cast of Fat directory entry data read to structure allowing
access to data
@internalTechnology
*/
#define pDir ((SFatDirEntry*)&iData[0])
/**
Returns Sectors in Fat table for 32 bit volume
@return iFatSectors32
*/
inline TUint32 TFatBootSector::FatSectors32() const
{return iFatSectors32;}
/**
Fat flags
@return iFATFlags
*/
inline TUint16 TFatBootSector::FATFlags() const
{return iFATFlags;}
/**
Version number of the file system
@return iVersionNumber
*/
inline TUint16 TFatBootSector::VersionNumber() const
{return iVersionNumber;}
/**
Cluster number of the root directory
@return iRootClusterNum
*/
inline TUint32 TFatBootSector::RootClusterNum() const
{return iRootClusterNum;}
/**
Sector number containing the FSIInfo structure
@return iFSInfoSectorNum
*/
inline TUint16 TFatBootSector::FSInfoSectorNum() const
{return iFSInfoSectorNum;}
/**
Backup boot sector
@return iBkBootRecSector
*/
inline TUint16 TFatBootSector::BkBootRecSector() const
{return iBkBootRecSector;}
/**
Sets the number of sectors in Fat table for 32 bit volume
@param aFatSectors32
*/
inline void TFatBootSector::SetFatSectors32(TUint32 aFatSectors32)
{iFatSectors32 = aFatSectors32;}
/**
Sets the Fat flags
@param aFATFlags
*/
inline void TFatBootSector::SetFATFlags(TUint16 aFATFlags)
{iFATFlags = aFATFlags;}
/**
Sets the version number of the file system
@param aVersionNumber
*/
inline void TFatBootSector::SetVersionNumber(TUint16 aVersionNumber)
{iVersionNumber = aVersionNumber;}
/**
Sets the cluster number of the root directory
@param aRootClusterNum
*/
inline void TFatBootSector::SetRootClusterNum(TUint32 aRootClusterNum)
{iRootClusterNum = aRootClusterNum;}
/**
Set the sector number containing the FSIInfo structure
@param aFSInfoSectorNum
*/
inline void TFatBootSector::SetFSInfoSectorNum(TUint16 aFSInfoSectorNum)
{iFSInfoSectorNum = aFSInfoSectorNum;}
/**
Set the backup boot sector
@param aBkBootRecSector
*/
inline void TFatBootSector::SetBkBootRecSector(TUint16 aBkBootRecSector)
{iBkBootRecSector = aBkBootRecSector;}
/**
Returns the vendor ID of the file system that formatted the volume
@return A descriptor containing the vendor ID
*/
inline const TPtrC8 TFatBootSector::VendorId() const
{return TPtrC8(iVendorId,KVendorIdSize);}
/**
Return the bytes per sector
@return iBytesPerSector
*/
inline TUint16 TFatBootSector::BytesPerSector() const
{return iBytesPerSector;}
/**
Returns the sectors per cluster ratio
@return iSectorsPerCluster
*/
inline TUint8 TFatBootSector::SectorsPerCluster() const
{return iSectorsPerCluster;}
/**
Returns the number of reserved sectors on the volume
@return iReservedSectors
*/
inline TUint16 TFatBootSector::ReservedSectors() const
{return iReservedSectors;}
/**
Returns the number of Fats on the volume
@return iNumberOfFats
*/
inline TUint8 TFatBootSector::NumberOfFats() const
{return iNumberOfFats;}
/**
Returns the number of entries allowed in the root directory, specific to Fat12/16, zero for FAT32
@return iRootDirEntries
*/
inline TUint16 TFatBootSector::RootDirEntries() const
{return iRootDirEntries;}
/**
Returns the total sectors on the volume, zero for FAT32
@return iTotalSectors
*/
inline TUint16 TFatBootSector::TotalSectors() const
{return iTotalSectors;}
/**
Returns the media descriptor
@return iMediaDescriptor
*/
inline TUint8 TFatBootSector::MediaDescriptor() const
{return iMediaDescriptor;}
/**
Returns sectors used for the Fat table, zero for FAT32
@return iFatSectors
*/
inline TUint16 TFatBootSector::FatSectors() const
{return iFatSectors;}
/**
Returns sectors per track
@return iSectorsPerTrack
*/
inline TUint16 TFatBootSector::SectorsPerTrack() const
{return iSectorsPerTrack;}
/**
Returns the number of heads
@return iNumberOfHeads
*/
inline TUint16 TFatBootSector::NumberOfHeads() const
{return iNumberOfHeads;}
/**
Returns the number of hidden sectors in the volume
@return iHiddenSectors
*/
inline TUint32 TFatBootSector::HiddenSectors() const
{return iHiddenSectors;}
/**
Returns total sectors in the volume, Used if totalSectors > 65535
@return iHugeSectors
*/
inline TUint32 TFatBootSector::HugeSectors() const
{return iHugeSectors;}
/**
Returns the physical drive number, not used in Symbian OS
@return iPhysicalDriveNumber
*/
inline TUint8 TFatBootSector::PhysicalDriveNumber() const
{return iPhysicalDriveNumber;}
/**
Returns the extended boot signiture
@return iExtendedBootSignature
*/
inline TUint8 TFatBootSector::ExtendedBootSignature() const
{return iExtendedBootSignature;}
/**
Returns the unique volume ID
@return iUniqueID
*/
inline TUint32 TFatBootSector::UniqueID() const
{return iUniqueID;}
/**
Returns the volume's label
@return A descriptor containing the volume label
*/
inline const TPtrC8 TFatBootSector::VolumeLabel() const
{return TPtrC8(iVolumeLabel,KVolumeLabelSize);}
/**
Returns the file system type
@return A descriptor containing the file system type
*/
inline const TPtrC8 TFatBootSector::FileSysType() const
{return TPtrC8(iFileSysType,KFileSysTypeSize);}
/**
Returns the boot sector signiture
@return KBootSectorSignature
*/
inline TUint16 TFatBootSector::BootSectorSignature() const
{return KBootSectorSignature;}
/**
Set the jump instruction
*/
inline void TFatBootSector::SetJumpInstruction()
{iJumpInstruction[0]=0xE9;iJumpInstruction[2]=0x90;}
/**
Set the vendor ID of the file system that formatted the volume
@param aDes Descriptor containing the Vendor ID
*/
inline void TFatBootSector::SetVendorID(const TDesC8& aDes)
{
__ASSERT_DEBUG(aDes.Length()<=KVendorIdSize,Fault(EFatBadBootSectorParameter));
TPtr8 buf(iVendorId,KVendorIdSize);
buf=aDes;
}
/**
Sets the bytes per sector
@param aBytesPerSector Number of bytes per sector
*/
inline void TFatBootSector::SetBytesPerSector(TUint16 aBytesPerSector)
{
__ASSERT_DEBUG(!(aBytesPerSector&~KMaxTUint16),Fault(EFatBadBootSectorParameter));
iBytesPerSector=aBytesPerSector;
}
/**
Set the sectors per cluster ratio
@param aSectorsPerCluster Number of sectors per cluster
*/
inline void TFatBootSector::SetSectorsPerCluster(TUint aSectorsPerCluster)
{
__ASSERT_DEBUG(!(aSectorsPerCluster&~KMaxTUint8),Fault(EFatBadBootSectorParameter));
iSectorsPerCluster=(TUint8)aSectorsPerCluster;
}
/**
Sets the number of reserved sectors on the volume
@param aReservedSectors Number of reserved sectors
*/
inline void TFatBootSector::SetReservedSectors(TUint aReservedSectors)
{
__ASSERT_DEBUG(!(aReservedSectors&~KMaxTUint16),Fault(EFatBadBootSectorParameter));
iReservedSectors=(TUint16)aReservedSectors;
}
/**
Sets the number of Fats on the volume
@param aNumberOfFats Number of fats
*/
inline void TFatBootSector::SetNumberOfFats(TUint8 aNumberOfFats)
{
__ASSERT_DEBUG(!(aNumberOfFats&~KMaxTUint8),Fault(EFatBadBootSectorParameter));
iNumberOfFats=aNumberOfFats;
}
/**
Number of entries allowed in the root directory, specific to Fat12/16, zero for FAT32
@param aRootDirEntries
*/
inline void TFatBootSector::SetRootDirEntries(TUint16 aRootDirEntries)
{
__ASSERT_DEBUG(!(aRootDirEntries&~KMaxTUint16),Fault(EFatBadBootSectorParameter));
iRootDirEntries=aRootDirEntries;
}
/**
Total sectors on the volume, zero for FAT32
@param aTotalSectors Total number of sectors
*/
inline void TFatBootSector::SetTotalSectors(TUint aTotalSectors)
{
__ASSERT_DEBUG(!(aTotalSectors&~KMaxTUint16),Fault(EFatBadBootSectorParameter));
iTotalSectors=(TUint16)aTotalSectors;
}
/**
Set the media descriptor
@param aMediaDescriptor
*/
inline void TFatBootSector::SetMediaDescriptor(TUint8 aMediaDescriptor)
{iMediaDescriptor=aMediaDescriptor;}
/**
Sectors used for the Fat table, zero for FAT32
@param aFatSectors Number of Fat sectors
*/
inline void TFatBootSector::SetFatSectors(TUint aFatSectors)
{
__ASSERT_DEBUG(!(aFatSectors&~KMaxTUint16),Fault(EFatBadBootSectorParameter));
iFatSectors=(TUint16)aFatSectors;
}
/**
Set the sectors per track
@param aSectorsPerTrack Number of sectors per track
*/
inline void TFatBootSector::SetSectorsPerTrack(TUint16 aSectorsPerTrack)
{
__ASSERT_DEBUG(!(aSectorsPerTrack&~KMaxTUint16),Fault(EFatBadBootSectorParameter));
iSectorsPerTrack=aSectorsPerTrack;
}
/**
Set the number of heads
@param aNumberOfHeads Number of heads
*/
inline void TFatBootSector::SetNumberOfHeads(TUint16 aNumberOfHeads)
{
__ASSERT_DEBUG(!(aNumberOfHeads&~KMaxTUint16),Fault(EFatBadBootSectorParameter));
iNumberOfHeads=aNumberOfHeads;
}
/**
Set the number of hidden sectors in the volume
@param aHiddenSectors Number of hidden sectors
*/
inline void TFatBootSector::SetHiddenSectors(TUint32 aHiddenSectors)
{
iHiddenSectors=aHiddenSectors;
}
/**
Set the total sectors in the volume, Used if totalSectors > 65535
@param aHugeSectors
*/
inline void TFatBootSector::SetHugeSectors(TUint32 aHugeSectors)
{
iHugeSectors=aHugeSectors;
}
/**
Physical drive number, not used in Symbian OS
@param aPhysicalDriveNumber Physical drive number
*/
inline void TFatBootSector::SetPhysicalDriveNumber(TInt aPhysicalDriveNumber)
{
__ASSERT_DEBUG(!(aPhysicalDriveNumber&~KMaxTUint8),Fault(EFatBadBootSectorParameter));
iPhysicalDriveNumber=(TUint8)aPhysicalDriveNumber;
}
/**
Set the reserved byte value
@param aReservedByte Value for reserved byte
*/
inline void TFatBootSector::SetReservedByte(TUint8 aReservedByte)
{
iReserved=aReservedByte;
}
/**
Set the extended boot signiture
@param anExtendedBootSignature The extended boot signiture
*/
inline void TFatBootSector::SetExtendedBootSignature(TUint8 anExtendedBootSignature)
{
__ASSERT_DEBUG(!(anExtendedBootSignature&~KMaxTUint8),Fault(EFatBadBootSectorParameter));
iExtendedBootSignature=anExtendedBootSignature;
}
/**
Set the unique volume ID
@param anUniqueID Set the unique ID
*/
inline void TFatBootSector::SetUniqueID(TUint32 anUniqueID)
{iUniqueID=anUniqueID;}
/**
Set the volume's label
@param aDes A descriptor containg the volume label
*/
inline void TFatBootSector::SetVolumeLabel(const TDesC8& aDes)
{
__ASSERT_DEBUG(aDes.Length()<=KVolumeLabelSize,Fault(EFatBadBootSectorParameter));
TPtr8 buf(iVolumeLabel,KVolumeLabelSize);
buf=aDes;
}
/**
Set the file system type
@param aDes A descriptor containing the file system type
*/
inline void TFatBootSector::SetFileSysType(const TDesC8& aDes)
{
__ASSERT_DEBUG(aDes.Length()<=8,Fault(EFatBadBootSectorParameter));
TPtr8 buf(iFileSysType,8);
buf=aDes;
}
/**
Returns the number of free clusters
@return iFreeCount
*/
inline TUint32 TFSInfo::FreeClusterCount() const
{return iFreeCount;}
/**
Returns the next free cluster
@return iNextFree
*/
inline TUint32 TFSInfo::NextFreeCluster() const
{return iNextFree;}
/**
Sets the number of free clusters
@param aFreeCount Number of free clusters
*/
inline void TFSInfo::SetFreeClusterCount(TUint32 aFreeCount)
{iFreeCount = aFreeCount;}
/**
Sets the next free cluster
@param aNextCluster Cluster number of the next free cluster
*/
inline void TFSInfo::SetNextFreeCluster(TUint32 aNextCluster)
{iNextFree = aNextCluster;}
#endif //SL_BPB_INL