imgtools/imglib/filesystem/source/fatbasebootsector.cpp
changeset 620 ad8ffc8e1982
parent 585 238f4cb8391f
parent 617 3a747a240983
child 621 96fee2635b19
--- a/imgtools/imglib/filesystem/source/fatbasebootsector.cpp	Thu Jun 10 13:50:24 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,596 +0,0 @@
-/*
-* 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: 
-* This file contains the definition of class TFATBaseBootSector. 
-* TFATBaseBootSector is the base class for the boot sector class 
-* of different FAT file system type.This contains the data member 
-* representing the common fields in each FAT image type
-* @internalComponent
-* @released
-*
-*/
-
-#include "fatbasebootsector.h"
-
-/**
-Constructor of the base boot sector class
-
-@internalComponent
-@released
-*/
-TFATBaseBootSector::TFATBaseBootSector()
-{
-}
-
-/**
-Destructor of the base boot sector class
-
-@internalComponent
-@released
-*/
-TFATBaseBootSector::~TFATBaseBootSector()
-{
-}
-
-/**
-Function Sets the OEM name generally, Indication of what system 
-formats the volume
-
-@internalComponent
-@released
-*/
-void TFATBaseBootSector::SetOEMName()
-	{
-		strcpy( reinterpret_cast<char*>(iOEMName),KDefaultOEMName);
-	}
-
-/**
-Function to get the OEM name
-
-@internalComponent
-@released
-
-@return OEM Name
-*/
-unsigned char* TFATBaseBootSector::OEMName() 
-	{
-		return iOEMName;
-	}
-
-/**
-Function to set the jump instructions
-
-@internalComponent
-@released
-*/
-void TFATBaseBootSector::SetJumpInstruction()
-{
-	iJmpBoot[0]= 0xEB;
-	iJmpBoot[1]= 0x5A;
-	iJmpBoot[2]= 0x90;
-}
-
-/**
-Function to get the jump instructions
-
-@internalComponent
-@released
-
-@return jump boot instruction
-*/
-unsigned char* TFATBaseBootSector::JumpInstruction()  
-{
-	return iJmpBoot;
-}
-
-
-/**
-Function to set the bytes per sector.  
-
-@internalComponent
-@released
-
-@param aDriveSectorSize Sector size in bytes 
-*/
-void TFATBaseBootSector::SetBytesPerSector(unsigned int aDriveSectorSize)
-{
-	// Take the default value if SectorSize is not provided by the user. 
-	if (aDriveSectorSize != 0)
-	{
-		unsigned short int acceptableValues[] = {512,1024,2048,4096};
-		unsigned short int acceptableValuesCount = 4;
-		bool validSectorSize = false;
-		for (unsigned int count=0; count<acceptableValuesCount; count++)
-		{
-			if(aDriveSectorSize == acceptableValues[count])
-			{
-				validSectorSize = true;
-				break;
-			}
-		}
-		// If invalid value for Sector Size is provided, consider the default value.
-		if (validSectorSize)
-		{
-			iBytesPerSector=aDriveSectorSize;
-			return;
-		}
-		else
-		{
-			std::cout<<"Warning: Invalid Sector Size value. Default value is considered.\n";
-		}
-	}
-	iBytesPerSector=KDefaultBytesPerSector;	
-}
-
-/**
-Return the bytes per sector
-
-@internalComponent
-@released
-
-@return bytes per sector, hard coded as 512 here.
-*/
-unsigned int TFATBaseBootSector::BytesPerSector() const
-{
-	return iBytesPerSector;
-}
-
-/**
-Sets the number of Fats on the volume
-
-@internalComponent
-@released
-
-@param aDriveNoOfFATs Number of fats
-*/
-void TFATBaseBootSector::SetNumberOfFats(unsigned int aDriveNoOfFATs) 
-{
-	// Take the default value if No of FATs is not provided by the user. 
-	if (aDriveNoOfFATs != 0)
-	{
-		// If invalid value for No of FATs is provided, generate a warning and take the default value. 
-		if ((aDriveNoOfFATs>255) || (aDriveNoOfFATs<1))
-		{
-			std::cout<<"Warning: No of FATs should be between 0 and 256. Default value is considered.\n";
-			iNumberOfFats= KDefaultNumFats;
-			return;
-		}
-		iNumberOfFats= aDriveNoOfFATs;
-	}
-	else
-	{
-		iNumberOfFats= KDefaultNumFats;
-	}
-}
-
-
-/**
-Total sectors on the volume,This count includes the total count of all sectors 
-in all four regions of the volume.iTatalSectors is a 16 bit field and iTotalSectors32
-is a 32 bit field.Hence if the total sectors are more than 2^16(0x10000 in hex) 
-then iTotalSectors32 is set otherwise it is zero.
-
-@internalComponent
-@released
-
-@param aPartitionSize Partition size in bytes
-*/
-void TFATBaseBootSector::ComputeTotalSectors(Long64 aPartitionSize)
-{
-	int Log2OfBytesPerSector = Log2(iBytesPerSector);
-	unsigned long TotalSectors64 = (unsigned long)(aPartitionSize >> Log2OfBytesPerSector);
-	if(TotalSectors64 >= 0x10000)
-	{
-			iTotalSectors = 0;
-			iTotalSectors32 = (unsigned int) TotalSectors64;
-	}
-	else
-	{
-			iTotalSectors = (unsigned short)TotalSectors64;
-			iTotalSectors32=0;
-	}
-}
-
-/**
-Set the media descriptor,0xF8 is the standard for fixed (non removable) media.
-
-@internalComponent
-@released
-*/
-void TFATBaseBootSector::SetMedia()
-{
-	iMedia=KBPBMedia;
-}
-
-/**
-This methods gets the media descriptor
-
-@internalComponent
-@released
-
-@return media descriptor
-*/
-unsigned char TFATBaseBootSector::Media() const
-{
-	return iMedia;
-}
-
-/**
-Set the number of hidden sectors in the volume,Count of hidden sector
-preceding the partition.
-
-@internalComponent
-@released
-*/
-void TFATBaseBootSector::SetHiddenSectors()
-{
-	iHiddenSectors=KDefaultHiddenSectors;
-}
-
-/**
-Gets the number of hidden sectors in the volume
-
-@internalComponent
-@released
-
-@return the number of hidden sectors in a given FAT Volume
-*/
-unsigned int TFATBaseBootSector::HiddenSectors() const
-{
-	return iHiddenSectors;
-}
-
-/**
-Set the sectors per track preceding the partition.
-
-@internalComponent
-@released
-*/
-void TFATBaseBootSector::SetSectorsPerTrack()
-{
-	iSectorsPerTrack=KDefaultSectorsPerTrack;// default value for flash memory
-}
-
-/**
-Gets the number sectors per track in the volume
-
-@internalComponent
-@released
-
-@return the number of sectors per track in a given FAT Volume
-*/
-unsigned short TFATBaseBootSector::SectorsPerTrack() const
-{
-	 return iSectorsPerTrack;
-}
-
-/**
-Set the number of heads
-
-@internalComponent
-@released
-*/
-void TFATBaseBootSector::SetNumberOfHeads()
-{
-	iNumHeads=KDefaultNumHeads;// default value for flash memory
-}
-
-/**
-Gets the the number of heads
-
-@internalComponent
-@released
-
-@return number of heads in a given FAT Volume
-*/
-unsigned short TFATBaseBootSector::NumberOfHeads() const
-{
-	return iNumHeads;// default value for flash memory
-}
-
-/**
-Set the Physical drive number,not used in Symbian OS
-
-@internalComponent
-@released
-*/
-void TFATBaseBootSector::SetBootSectorDriveNumber()
-{
-	iPhysicalDriveNumber=KDefaultDriveNumber;
-}
-
-/**
-Function to return drive number
-
-@internalComponent
-@released
-
-@return Physical drive number, not used in Symbian OS
-*/
-unsigned char TFATBaseBootSector::BootSectorDriveNumber() const
-{
-	return iPhysicalDriveNumber;
-}
-
-/**
-Set the reserved byte value
-
-@internalComponent
-@released
-*/
-void TFATBaseBootSector::SetReservedByte()
-{
-	iReservedByte=KDefaultReservedByte;
-}
-
-/**
-Get the value of reserved byte in boot sector
-
-@internalComponent
-@released
-
-@return Returns the reserved byte value
-*/
-unsigned char TFATBaseBootSector::ReservedByte() const
-{
-	return iReservedByte;
-}
-
-/**
-Set the extended boot signature
-
-@internalComponent
-@released
-
-*/
-void TFATBaseBootSector::SetBootSignature() 
-{
-	iBootSign=KDefaultBootSignature;
-}
-
-/**
-Gets the extended boot signature
-
-@internalComponent
-@released
-
-@return boot signature
-*/
-unsigned char TFATBaseBootSector::BootSignature() const
-{
-	return iBootSign;
-}
-
-/**
-Set the unique volume serial number,This ID is usually generated by 
-simply combining the current date and time in to 32 bit value.
-
-@internalComponent
-@released
-*/
-void TFATBaseBootSector::SetVolumeId()
-{	
-	time_t rawtime;
-	time(&rawtime);
-	iVolumeId=rawtime;
-}
-
-/**
-Returns the volume id 
-
-@internalComponent
-@released
-
-@return volume id field of the boot sector 
-*/
-unsigned int TFATBaseBootSector::VolumeId() const
-{
-return iVolumeId ;
-}
-
-/**
-Set the volume's label
-
-@internalComponent
-@released
-
-@param aVolumeLable Data Drive Volume Label
-*/
-void TFATBaseBootSector::SetVolumeLab(String aVolumeLable)
-{
-	// Set the default value of VolumeLable(i.e. "NO NAME    ") if not provided
-	// by the user.
-	if (aVolumeLable.empty())	
-	{
-		strcpy(reinterpret_cast<char*>(iVolumeLabel),KDefaultVolumeLabel);
-	}
-	else 
-	{
-		// If the volume label provided is greater than 11 characters then consider only 
-		// the first 11 characters and generate a warning.
-		int volumeMaxLangth= 11;
-		int volumeLabelSize= aVolumeLable.size();
-		if (volumeLabelSize > volumeMaxLangth)
-		{
-			std::cout<<"Warning: Size overflow for Data Drive Volume Label. Truncating to 11-bytes.\n";	
-			aVolumeLable.resize(volumeMaxLangth);
-			strcpy(reinterpret_cast<char*>(iVolumeLabel),aVolumeLable.c_str());
-			return;
-		}
-		
-		// If the VolumeLable provided is less than 11-characters then pad the 
-		// remaining bytes with white-spaces.		
-		if (volumeLabelSize < KMaxVolumeLabel)
-		{
-			while(volumeLabelSize < 11)
-			{
-				aVolumeLable.append(" ");
-				volumeLabelSize = aVolumeLable.size();
-			}	
-		}
-		strcpy(reinterpret_cast<char*>(iVolumeLabel),aVolumeLable.c_str());
-	}
-}
-
-/**
-returns  the volume's label
-
-@internalComponent
-@released
-
-*/
-unsigned char* TFATBaseBootSector::VolumeLab() 
-{
-	return iVolumeLabel;
-}
-
-/**
-Returns the number of reserved sectors on the volume
-
-@internalComponent
-@released
-
-@return iReservedSectors
-*/
-unsigned short TFATBaseBootSector::ReservedSectors() const
-{
-	return iReservedSectors;
-}
-
-/**
-Returns the number of Fats on the volume
-
-@internalComponent
-@released
-
-@return iNumberOfFats
-*/
-unsigned char TFATBaseBootSector::NumberOfFats() const
-{
-	return iNumberOfFats;
-}
-
-/**
-Returns the number of entries allowed in the root directory, specific to Fat12/16, zero for FAT32
-
-@internalComponent
-@released
-
-@return iRootDirEntries
-*/
-unsigned short TFATBaseBootSector::RootDirEntries() const
-{
-	return iRootDirEntries;
-}
-
-/**
-Returns the total sectors on the volume, 
-
-@internalComponent
-@released
-
-@return iTotalSectors 
-*/
-unsigned int TFATBaseBootSector::TotalSectors(Long64 aPartitionSize) const
-{
-	if((aPartitionSize/iBytesPerSector)>= 0x10000)	
-	return iTotalSectors32;
-	else 
-	return iTotalSectors;
-}
-
-/**
-Returns base 2 Logarithm of a number 
-
-@internalComponent
-@released
-
-@param aNum number whose logarithm is to be taken
-@return log base 2 of the number passed
-*/
-int TFATBaseBootSector::Log2(int aNum) 
-{
-	int res=-1;
-	while(aNum)
-		{
-		res++;
-		aNum>>=1;
-		}
-	return(res);
-}
-
-/**
-Returns the sectors per cluster ratio
-
-@internalComponent
-@released
-
-@return iSectorsPerCluster
-*/
-unsigned char TFATBaseBootSector::SectorsPerCluster() const
-{
-	return iSectorsPerCluster;
-}
-
-/**
-Returns the 16 bit count of total sectors on the volume 
-
-@internalComponent
-@released
-
-@return iTotalSectors 
-*/
-unsigned short TFATBaseBootSector::LowSectorsCount() const
-{
-	return iTotalSectors;
-}
-
-/**
-Returns the 32 bit count of total sectors on the volume 
-
-@internalComponent
-@released
-
-@return iTotalSectors 
-*/
-unsigned int TFATBaseBootSector::HighSectorsCount() const
-{
-	return iTotalSectors32;
-}
-
-/**
-Returns sectors used for the Fat table, zero for FAT32
-
-@internalComponent
-@released
-
-@return iFatSectors
-*/
-unsigned short TFATBaseBootSector::FatSectors() const
-{
-	return (unsigned short)iFatSectors;
-}
-
-/**
-Returns sectors used for the Fat table in FAT32
-
-@internalComponent
-@released
-
-@return iFatSectors32
-*/
-unsigned int TFATBaseBootSector::FatSectors32() const
-{
-	return iFatSectors32;
-}