1d0fbbb227051be16931a1aa9b4a7722ac039c698Shih-wei Liao//===- ELFBinaryReader.h --------------------------------------------------===// 2d0fbbb227051be16931a1aa9b4a7722ac039c698Shih-wei Liao// 3d0fbbb227051be16931a1aa9b4a7722ac039c698Shih-wei Liao// The MCLinker Project 4d0fbbb227051be16931a1aa9b4a7722ac039c698Shih-wei Liao// 5d0fbbb227051be16931a1aa9b4a7722ac039c698Shih-wei Liao// This file is distributed under the University of Illinois Open Source 6d0fbbb227051be16931a1aa9b4a7722ac039c698Shih-wei Liao// License. See LICENSE.TXT for details. 7d0fbbb227051be16931a1aa9b4a7722ac039c698Shih-wei Liao// 8d0fbbb227051be16931a1aa9b4a7722ac039c698Shih-wei Liao//===----------------------------------------------------------------------===// 987f34658dec9097d987d254a990ea7f311bfc95fStephen Hines#ifndef MCLD_LD_ELFBINARYREADER_H 1087f34658dec9097d987d254a990ea7f311bfc95fStephen Hines#define MCLD_LD_ELFBINARYREADER_H 11d0fbbb227051be16931a1aa9b4a7722ac039c698Shih-wei Liao 12d0fbbb227051be16931a1aa9b4a7722ac039c698Shih-wei Liao#include <mcld/LD/BinaryReader.h> 13d0fbbb227051be16931a1aa9b4a7722ac039c698Shih-wei Liao 14d0fbbb227051be16931a1aa9b4a7722ac039c698Shih-wei Liaonamespace mcld { 15d0fbbb227051be16931a1aa9b4a7722ac039c698Shih-wei Liao 16d0fbbb227051be16931a1aa9b4a7722ac039c698Shih-wei Liaoclass Module; 17d0fbbb227051be16931a1aa9b4a7722ac039c698Shih-wei Liaoclass Input; 18d0fbbb227051be16931a1aa9b4a7722ac039c698Shih-wei Liaoclass IRBuilder; 19d0fbbb227051be16931a1aa9b4a7722ac039c698Shih-wei Liaoclass LinkerConfig; 20d0fbbb227051be16931a1aa9b4a7722ac039c698Shih-wei Liao 21d0fbbb227051be16931a1aa9b4a7722ac039c698Shih-wei Liao/** \lclass ELFBinaryReader 22d0fbbb227051be16931a1aa9b4a7722ac039c698Shih-wei Liao * \brief ELFBinaryReader reads target-independent parts of Binary file 23d0fbbb227051be16931a1aa9b4a7722ac039c698Shih-wei Liao */ 24d0fbbb227051be16931a1aa9b4a7722ac039c698Shih-wei Liaoclass ELFBinaryReader : public BinaryReader 25d0fbbb227051be16931a1aa9b4a7722ac039c698Shih-wei Liao{ 26d0fbbb227051be16931a1aa9b4a7722ac039c698Shih-wei Liaopublic: 2787f34658dec9097d987d254a990ea7f311bfc95fStephen Hines ELFBinaryReader(IRBuilder& pBuilder, const LinkerConfig& pConfig); 28d0fbbb227051be16931a1aa9b4a7722ac039c698Shih-wei Liao 29d0fbbb227051be16931a1aa9b4a7722ac039c698Shih-wei Liao ~ELFBinaryReader(); 30d0fbbb227051be16931a1aa9b4a7722ac039c698Shih-wei Liao 3187f34658dec9097d987d254a990ea7f311bfc95fStephen Hines bool isMyFormat(Input& pInput, bool &pContinue) const; 3287f34658dec9097d987d254a990ea7f311bfc95fStephen Hines 3387f34658dec9097d987d254a990ea7f311bfc95fStephen Hines bool readBinary(Input& pInput); 34d0fbbb227051be16931a1aa9b4a7722ac039c698Shih-wei Liao 35d0fbbb227051be16931a1aa9b4a7722ac039c698Shih-wei Liaoprivate: 36d0fbbb227051be16931a1aa9b4a7722ac039c698Shih-wei Liao IRBuilder& m_Builder; 37d0fbbb227051be16931a1aa9b4a7722ac039c698Shih-wei Liao const LinkerConfig& m_Config; 38d0fbbb227051be16931a1aa9b4a7722ac039c698Shih-wei Liao}; 39d0fbbb227051be16931a1aa9b4a7722ac039c698Shih-wei Liao 40d0fbbb227051be16931a1aa9b4a7722ac039c698Shih-wei Liao} // namespace of mcld 41d0fbbb227051be16931a1aa9b4a7722ac039c698Shih-wei Liao 42d0fbbb227051be16931a1aa9b4a7722ac039c698Shih-wei Liao#endif 43d0fbbb227051be16931a1aa9b4a7722ac039c698Shih-wei Liao 44