e32tools/elf2e32/source/pl_elflocalrelocation.h
author mikek
Sun, 13 Jun 2010 16:27:09 +0100
changeset 20 f2446ffbf2b5
parent 2 39c28ec933dd
permissions -rwxr-xr-x
Provide elf2e32 with an option to select either RVCT assembler or GNU assembler output for the --dump option

// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
// All rights reserved.
// This component and the accompanying materials are made available
// under the terms of "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:
// Implementation of the Class ElfLocalRelocation for the elf2e32 tool
// @internalComponent
// @released
// 
//

#if !defined(_PL_ELFLOCALRELOCATION_H)
#define _PL_ELFLOCALRELOCATION_H

#include "pl_elfrelocation.h"

/**
This class represents relocations generated by the linker that need to be interpreted into
the E32 image.
@internalComponent
@released
*/
class ElfLocalRelocation : public ElfRelocation
{

public:
	ElfLocalRelocation(ElfExecutable *aElfExec,PLMemAddr32 aAddr, \
			PLUINT32 aAddend, PLUINT32 aIndex, PLUCHAR aRelType, \
			Elf32_Rel* aRel, bool aVeneerSymbol=false);
	ElfLocalRelocation(ElfExecutable *aElfExec,PLMemAddr32 aAddr, \
			PLUINT32 aAddend, PLUINT32 aIndex, PLUCHAR aRelType, \
			Elf32_Rel* aRel, ESegmentType aSegmentType, Elf32_Sym* aSym, bool aDelSym, bool aVeneerSymbol=false);
	~ElfLocalRelocation();
	bool IsImportRelocation();
	void Add();

	bool ExportTableReloc();
	PLUINT16 Fixup();
	bool iDelSym;
	bool iVeneerSymbol;
};




#endif // !defined(_PL_ELFLOCALRELOCATION_H)