diff -r c7c26511138f -r 360bd6b35136 imgtools/imgcheck/libimgutils/src/utils.cpp --- a/imgtools/imgcheck/libimgutils/src/utils.cpp Wed Jun 16 16:51:40 2010 +0300 +++ b/imgtools/imgcheck/libimgutils/src/utils.cpp Wed Jun 23 16:56:47 2010 +0800 @@ -1,211 +1,195 @@ -/* -* Copyright (c) 2007-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: -* -*/ - - -/** - @file - @internalComponent - @released -*/ - -#include "typedefs.h" -#include -#include "h_utl.h" -#include "r_obey.h" -#include "r_romnode.h" -#include - -ECompression gCompress = ECompressionUnknown; -unsigned int gCompressionMethod = 0; -TBool gPagingOverride = 0; -TInt gCodePagingOverride = -1; -TInt gDataPagingOverride = -1; -TInt gLogLevel = 0; - -/** -Function receives an UID type of an executable and identifies whether it is a -1. EXE or not, -2. DLL or not -3. Executable or not. - -@internalComponent -@released - -@param Uids1 - Uid1 of a E32 executable -@param aType - Type to be compared against aUids1. -*/ -bool ReaderUtil::IsExecutable(unsigned char* aUids1, int aType) -{ - //In the little-endian world - if( aUids1[3] == 0x10 && aUids1[2] == 0x0 && aUids1[1] == 0x0 ) - { - switch(aType) - { - case EExe: - if(aUids1[0] == 0x7a) - { - return true; - } - break; - case EDll: - if(aUids1[0] == 0x79) - { - return true; - } - break; - case EAll: - if((aUids1[0] == 0x79) || (aUids1[0] == 0x7a)) - { - return true; - } - break; - } - } - return false; -} - -/** -Function receives an UID type of an executable and identifies whether it is a EXE or not. - -@internalComponent -@released - -@param aType - Type to be compared against aUids1. -*/ -bool ReaderUtil::IsExe(unsigned long* aUids1) -{ - return IsExecutable((unsigned char*)aUids1, EExe); -} - -/** -Function receives an UID type of an executable and identifies whether it is a DLL or not, - -@internalComponent -@released - -@param aType - Type to be compared against aUids1. -*/ -bool ReaderUtil::IsDll(unsigned long* aUids1) -{ - return IsExecutable((unsigned char*)aUids1, EDll); -} - -/** -Function responsible to convert lower case strings to upper case - -@internalComponent -@released - -@param aString - String which needs to be inserted -*/ -const String& ReaderUtil::ToLower(String& aString) -{ - unsigned int stringLength = aString.length(); - unsigned char stringChar; - for(unsigned int stringIndex = 0; stringIndex < stringLength; stringIndex++) - { - stringChar = aString.at(stringIndex); - if( stringChar >= KUpperCaseAsciiValOfCharA && stringChar <= KUpperCaseAsciiValOfCharZ ) - { - stringChar += KUpperAndLowerAsciiDiff; //Upper case alphabets case changed to lower case - } - aString[stringIndex] = stringChar; - } - return aString; -} - -/** -Function responsible to convert integer to ASCII characters with respect to its base value. -Function takes the integer value with its base. -Calculates the first reminder by dividing the value with its base, put this value into result string . -Do the same until the value becomes zero. - -Regular itoa() function from stdlib.h, definition is not available in linux. - -@internalComponent -@released - -@param aString - String which needs to be inserted -*/ -const String ReaderUtil::IntToAscii(const int aValue, const int aBase) -{ - String result; - // check that the base if valid, the valid range is between 2 and 16 - if (aBase < EBase2 || aBase > EBase16) - { - return result; - } - int quotient = aValue; - do - { - #ifdef __TOOLS__ - result += "0123456789abcdef"[abs(quotient % aBase)]; - #else - result += "0123456789abcdef"[std::abs(quotient % aBase)]; - #endif - quotient /= aBase; - } while (quotient); - - // Only apply negative sign for base 10 - if (aValue < 0 && aBase == EBase10) - { - result += '-'; - } - std::reverse(result.begin(), result.end()); - return result; -} - -/** -Function responsible to convert string to integer. -Regular atoi() function from stdlib.h, definition is not available in linux. - -@internalComponent -@released - -@param aString - String which needs to be converted. -*/ -Long64 ReaderUtil::DecStrToInt(String& aString) -{ - Long64 val = 0; - std::string::iterator strBegIter = aString.begin(); - std::string::iterator strEndIter = aString.end(); - - while(strBegIter != strEndIter) - { - val *= EBase10; - val += *strBegIter - KAsciiValueOfZero; - ++strBegIter; - } - return val; -} - -/** -Function to convert String to any numeric type. - -@internalComponent -@released - -@param aStringVal - the string which has to be converted. -@return - returns the coverted value. -*/ -unsigned int ReaderUtil::HexStrToInt(String& aStringVal) -{ - IStringStream inputStrStream(aStringVal); - unsigned int intVal = 0; - inputStrStream >> std::hex >> intVal; - return intVal; -} +/* +* Copyright (c) 2007-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: +* +*/ + + +/** +@file +@internalComponent +@released +*/ + +#include "typedefs.h" +#include +#include "h_utl.h" +#include "r_obey.h" +#include "r_romnode.h" +#include + +ECompression gCompress = ECompressionUnknown; +unsigned int gCompressionMethod = 0; +TBool gPagingOverride = 0; +TInt gCodePagingOverride = -1; +TInt gDataPagingOverride = -1; +TInt gLogLevel = 0; +bool gCache = false; + +/** +Function receives an UID type of an executable and identifies whether it is a +1. EXE or not, +2. DLL or not +3. Executable or not. + +@internalComponent +@released + +@param Uids1 - Uid1 of a E32 executable +@param aType - Type to be compared against aUids1. +*/ +bool ReaderUtil::IsExecutable(unsigned char* aUids1, int aType) { + //In the little-endian world + if( aUids1[3] == 0x10 && aUids1[2] == 0x0 && aUids1[1] == 0x0 ) { + switch(aType) { + case EExe: + if(aUids1[0] == 0x7a) { + return true; + } + break; + case EDll: + if(aUids1[0] == 0x79) { + return true; + } + break; + case EAll: + if((aUids1[0] == 0x79) || (aUids1[0] == 0x7a)) { + return true; + } + break; + } + } + return false; +} + +/** +Function receives an UID type of an executable and identifies whether it is a EXE or not. + +@internalComponent +@released + +@param aType - Type to be compared against aUids1. +*/ +bool ReaderUtil::IsExe(unsigned long* aUids1) { + return IsExecutable((unsigned char*)aUids1, EExe); +} + +/** +Function receives an UID type of an executable and identifies whether it is a DLL or not, + +@internalComponent +@released + +@param aType - Type to be compared against aUids1. +*/ +bool ReaderUtil::IsDll(unsigned long* aUids1) { + return IsExecutable((unsigned char*)aUids1, EDll); +} + +/** +Function responsible to convert lower case StringList to upper case + +@internalComponent +@released + +@param aString - string which needs to be inserted +*/ +const string& ReaderUtil::ToLower(string& aString) { + unsigned int stringLength = aString.length(); + unsigned char stringChar; + for(unsigned int stringIndex = 0; stringIndex < stringLength; stringIndex++) { + stringChar = aString.at(stringIndex); + if( stringChar >= KUpperCaseAsciiValOfCharA && stringChar <= KUpperCaseAsciiValOfCharZ ) { + stringChar += KUpperAndLowerAsciiDiff; //Upper case alphabets case changed to lower case + } + aString[stringIndex] = stringChar; + } + return aString; +} + +/** +Function responsible to convert integer to ASCII characters with respect to its base value. +Function takes the integer value with its base. +Calculates the first reminder by dividing the value with its base, put this value into result string . +Do the same until the value becomes zero. + +Regular itoa() function from stdlib.h, definition is not available in linux. + +@internalComponent +@released + +@param aString - string which needs to be inserted +*/ +const string ReaderUtil::IntToAscii(const int aValue, const int aBase) { + string result; + // check that the base if valid, the valid range is between 2 and 16 + if (aBase < EBase2 || aBase > EBase16) + { + return result; + } + int quotient = aValue; + do { +#ifdef __TOOLS__ + result += "0123456789abcdef"[abs(quotient % aBase)]; +#else + result += "0123456789abcdef"[abs(quotient % aBase)]; +#endif + quotient /= aBase; + } while (quotient); + + // Only apply negative sign for base 10 + if (aValue < 0 && aBase == EBase10) { + result += '-'; + } + reverse(result.begin(), result.end()); + return result; +} + +/** +Function responsible to convert string to integer. +Regular atoi() function from stdlib.h, definition is not available in linux. + +@internalComponent +@released + +@param aString - string which needs to be converted. +*/ +Long64 ReaderUtil::DecStrToInt(string& aString) { + Long64 val = 0; + string::iterator strBegIter = aString.begin(); + string::iterator strEndIter = aString.end(); + + while(strBegIter != strEndIter) { + val *= EBase10; + val += *strBegIter - KAsciiValueOfZero; + ++strBegIter; + } + return val; +} + +/** +Function to convert string to any numeric type. + +@internalComponent +@released + +@param aStringVal - the string which has to be converted. +@return - returns the coverted value. +*/ +unsigned int ReaderUtil::HexStrToInt(string& aStringVal) { + istringstream inputStrStream(aStringVal); + unsigned int intVal = 0; + inputStrStream >> hex >> intVal; + return intVal; +}