imgtools/imglib/inc/e32image.h
changeset 620 ad8ffc8e1982
parent 590 360bd6b35136
--- a/imgtools/imglib/inc/e32image.h	Thu Jun 10 13:50:24 2010 +0800
+++ b/imgtools/imglib/inc/e32image.h	Mon Jul 26 11:04:29 2010 +0800
@@ -1,132 +1,129 @@
-/*
-* 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: 
-*
-*/
-
-
-#ifndef __E32IMAGE_H__
-#define __E32IMAGE_H__
-
-#if defined(__MSVCDOTNET__) || defined(__TOOLS2__)
-#include <fstream>
-using namespace std;
-#else //!__MSVCDOTNET__
-#include <fstream.h>
-#endif //__MSVCDOTNET__
-
-#include <e32std.h>
-#include <e32ldr.h>
-#include <f32image.h>
-#include "byte_pair.h"
-
-enum TFileSource
-	{
-	EE32Image=0,
-	EPeFile=1,
-	EElfFile=2,
-	};
-
-class E32ImageFile
-	{
-public:
-	static E32ImageFile* New();
-	E32ImageFile(CBytePair *aBPE = NULL);
-	virtual ~E32ImageFile();
-	virtual TBool Translate(const char* aFileName, TUint aDataBase, TBool aAllowDllData, TBool aSymLkupEnabled = FALSE);
-	TInt ReadHeader(ifstream& is);
-	TInt Open(const char* aFileName);
-#ifndef __LINUX__
-	TInt Open(const wchar_t* aFileName);
-#endif
-	void Adjust(TInt aSize, TBool aAllowShrink=ETrue);
-	TUint VaOfOrdinal(TUint aOrdinal);
-	void RelocateSection(char* aPtr, char *aRelocs, TUint aCodeDelta, TUint aDataDelta, char* aImagePtr, TLinAddr** aIATRefs, TBool keepIAT=EFalse);
-	//
-	TUint TextOffset();
-	TUint DataOffset();
-	TUint BssOffset();
-	TUint32 Capability();
-	TUint32 Format();
-	TInt NumberOfImports();
-
-	TInt IsValid();
-	TInt IsDll();
-	enum TDumpFlags
-		{
-		EDumpHeader = 1<<0,
-		EDumpSecurityInfo = 1<<1,
-		EDumpCode = 1<<2,
-		EDumpData = 1<<3,
-		EDumpExports = 1<<4,
-		EDumpImports = 1<<5,
-		EDumpDefaults = EDumpHeader|EDumpCode|EDumpData|EDumpExports|EDumpImports
-		};
-	void Dump(TText *aFileName,TInt aDumpFlags);
-	void DumpHeader(TInt aDumpFlags);
-	void DumpData(TInt aDumpFlags);
-	void SetStackSize(TInt aSize);
-	void SetHeapSizeMin(TInt aSize);
-	void SetHeapSizeMax(TInt aSize);
-	void SetUids(TUid aUid1, TUid aUid2, TUid aUid3);
-	void SetSecureId(TUint32 aId);
-	void SetVendorId(TUint32 aId);
-	void SetCallEntryPoints(TInt aBool);
-	void SetFixedAddress(TInt aBool);
-	void SetPriority(TProcessPriority aPri);
-	void SetCapability(SCapabilitySet& aCapabilities);
-	void SetFPU(unsigned int aFPU);
-	static TInt IsE32ImageFile(char *aFileName);
-	TInt DetermineEntryPointType();
-	void UpdateHeaderCrc();
-	void SetDefaultHeader();
-	void CreateExportBitMap();
-	void AddExportDescription();
-	TInt CheckExportDescription();
-	TInt Validate();
-public:
-	inline TUint OrigCodeOffset() const {return OffsetUnadjust(iOrigHdr->iCodeOffset);}
-	inline TUint OrigDataOffset() const {return OffsetUnadjust(iOrigHdr->iDataOffset);}
-	inline TUint OrigCodeRelocOffset() const {return OffsetUnadjust(iOrigHdr->iCodeRelocOffset);}
-	inline TUint OrigDataRelocOffset() const {return OffsetUnadjust(iOrigHdr->iDataRelocOffset);}
-	inline TUint OrigImportOffset() const {return OffsetUnadjust(iOrigHdr->iImportOffset);}
-	inline TUint OrigExportDirOffset() const {return OffsetUnadjust(iOrigHdr->iExportDirOffset);}
-	inline TUint OffsetUnadjust(TUint a) const {return a ? a-iOrigHdrOffsetAdj : 0;}
-	inline void OffsetAdjust(TUint& a) { if (a) a+=iOrigHdrOffsetAdj; }
-public:
-	char* iData;
-	TInt iSize;
-	E32ImageHeader* iOrigHdr;
-	E32ImageHeaderV* iHdr;
-	char* iFileName;
-#ifndef __LINUX__
-	wchar_t* iWideFileName;
-#endif
-	TInt iError;
-	TFileSource iSource;
-	TUint iOrigHdrOffsetAdj;
-	TInt iFileSize;
-	TUint8* iExportBitMap;
-	TInt iMissingExports;
-	CBytePair *iBPE;
-	};
-
-#ifdef __VC32__
-ostream &operator<<(ostream &os, const E32ImageFile &aImage);
-#else
-ostream &operator<<(ostream &os, const E32ImageFile &aImage);
-#endif
-ifstream &operator>>(ifstream &is, E32ImageFile &aImage);
-
-#endif
+/*
+* 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: 
+*
+*/
+
+
+#ifndef __E32IMAGE_H__
+#define __E32IMAGE_H__
+
+ 
+#if defined(__MSVCDOTNET__) || defined(__TOOLS2__)
+#include <fstream>
+using namespace std;
+#else //!__MSVCDOTNET__
+#include <fstream.h>
+#endif //__MSVCDOTNET__
+
+#include <e32std.h>
+#include <e32ldr.h>
+#include <f32image.h>
+#include "byte_pair.h"
+
+enum TFileSource
+	{
+	EE32Image=0,
+	EPeFile=1,
+	EElfFile=2,
+	};
+
+class E32ImageFile
+	{
+public:
+	static E32ImageFile* New();
+	E32ImageFile(CBytePair *aBPE = NULL);
+	virtual ~E32ImageFile();
+	virtual TBool Translate(const char* aFileName, TUint aDataBase, TBool aAllowDllData, TBool aSymLkupEnabled = FALSE);
+	TInt ReadHeader(ifstream& is);
+	TInt Open(const char* aFileName);
+#ifndef __LINUX__
+	TInt Open(const wchar_t* aFileName);
+#endif
+	void Adjust(TInt aSize, TBool aAllowShrink=ETrue);
+	TUint VaOfOrdinal(TUint aOrdinal);
+	void RelocateSection(char* aPtr, char *aRelocs, TUint aCodeDelta, TUint aDataDelta, char* aImagePtr, TLinAddr** aIATRefs, TBool keepIAT=EFalse);
+	//
+	TUint TextOffset();
+	TUint DataOffset();
+	TUint BssOffset();
+	TUint32 Capability();
+	TUint32 Format();
+	TInt NumberOfImports();
+
+	TInt IsValid() const {return (iError == KErrNone);}
+	TInt IsDll();
+	enum TDumpFlags
+		{
+		EDumpHeader = 1<<0,
+		EDumpSecurityInfo = 1<<1,
+		EDumpCode = 1<<2,
+		EDumpData = 1<<3,
+		EDumpExports = 1<<4,
+		EDumpImports = 1<<5,
+		EDumpDefaults = EDumpHeader|EDumpCode|EDumpData|EDumpExports|EDumpImports
+		};
+	void Dump(const char* aFileName,TInt aDumpFlags);
+	void DumpHeader(TInt aDumpFlags);
+	void DumpData(TInt aDumpFlags);
+	void SetStackSize(TInt aSize);
+	void SetHeapSizeMin(TInt aSize);
+	void SetHeapSizeMax(TInt aSize);
+	void SetUids(TUid aUid1, TUid aUid2, TUid aUid3);
+	void SetSecureId(TUint32 aId);
+	void SetVendorId(TUint32 aId);
+	void SetCallEntryPoints(TInt aBool);
+	void SetFixedAddress(TInt aBool);
+	void SetPriority(TProcessPriority aPri);
+	void SetCapability(SCapabilitySet& aCapabilities);
+	void SetFPU(unsigned int aFPU);
+	static TInt IsE32ImageFile(const char *aFileName);
+	TInt DetermineEntryPointType();
+	void UpdateHeaderCrc();
+	void SetDefaultHeader();
+	void CreateExportBitMap();
+	void AddExportDescription();
+	TInt CheckExportDescription();
+	TInt Validate();
+public:
+	inline TUint OrigCodeOffset() const {return OffsetUnadjust(iOrigHdr->iCodeOffset);}
+	inline TUint OrigDataOffset() const {return OffsetUnadjust(iOrigHdr->iDataOffset);}
+	inline TUint OrigCodeRelocOffset() const {return OffsetUnadjust(iOrigHdr->iCodeRelocOffset);}
+	inline TUint OrigDataRelocOffset() const {return OffsetUnadjust(iOrigHdr->iDataRelocOffset);}
+	inline TUint OrigImportOffset() const {return OffsetUnadjust(iOrigHdr->iImportOffset);}
+	inline TUint OrigExportDirOffset() const {return OffsetUnadjust(iOrigHdr->iExportDirOffset);}
+	inline TUint OffsetUnadjust(TUint a) const {return a ? a-iOrigHdrOffsetAdj : 0;}
+	inline void OffsetAdjust(TUint& a) { if (a) a+=iOrigHdrOffsetAdj; }
+public:
+	char* iData;
+	TInt iSize;
+	E32ImageHeader* iOrigHdr;
+	E32ImageHeaderV* iHdr;
+	char* iFileName;
+#ifndef __LINUX__
+	wchar_t* iWideFileName;
+#endif
+	TInt iError;
+	TFileSource iSource;
+	TUint iOrigHdrOffsetAdj;
+	TInt iFileSize;
+	TUint8* iExportBitMap;
+	TInt iMissingExports;
+	CBytePair *iBPE;
+	};
+
+ostream& operator<<(ostream &os, const E32ImageFile &aImage); 
+ifstream& operator>>(ifstream &is, E32ImageFile &aImage);
+
+#endif