1d0fbbb227051be16931a1aa9b4a7722ac039c698Shih-wei Liao//===- MipsGNUInfo.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//===----------------------------------------------------------------------===// 937b74a387bb3993387029859c2d9d051c41c724eStephen Hines#ifndef TARGET_MIPS_MIPSGNUINFO_H_ 1037b74a387bb3993387029859c2d9d051c41c724eStephen Hines#define TARGET_MIPS_MIPSGNUINFO_H_ 1137b74a387bb3993387029859c2d9d051c41c724eStephen Hines#include "mcld/Target/GNUInfo.h" 12d0fbbb227051be16931a1aa9b4a7722ac039c698Shih-wei Liao 1337b74a387bb3993387029859c2d9d051c41c724eStephen Hines#include <llvm/Support/ELF.h> 14d0fbbb227051be16931a1aa9b4a7722ac039c698Shih-wei Liaonamespace mcld { 15d0fbbb227051be16931a1aa9b4a7722ac039c698Shih-wei Liao 1637b74a387bb3993387029859c2d9d051c41c724eStephen Hinesclass MipsGNUInfo : public GNUInfo { 1737b74a387bb3993387029859c2d9d051c41c724eStephen Hines public: 1837b74a387bb3993387029859c2d9d051c41c724eStephen Hines explicit MipsGNUInfo(const llvm::Triple& pTriple); 1987f34658dec9097d987d254a990ea7f311bfc95fStephen Hines 2087f34658dec9097d987d254a990ea7f311bfc95fStephen Hines void setABIVersion(uint8_t ver); 21b0d0eb206527b43c771933602e147bbd7b471082Stephen Hines void setElfFlags(uint64_t flags); 2287f34658dec9097d987d254a990ea7f311bfc95fStephen Hines 2387f34658dec9097d987d254a990ea7f311bfc95fStephen Hines // GNUInfo 2487f34658dec9097d987d254a990ea7f311bfc95fStephen Hines uint32_t machine() const; 2587f34658dec9097d987d254a990ea7f311bfc95fStephen Hines uint8_t ABIVersion() const; 2687f34658dec9097d987d254a990ea7f311bfc95fStephen Hines uint64_t defaultTextSegmentAddr() const; 2787f34658dec9097d987d254a990ea7f311bfc95fStephen Hines uint64_t flags() const; 2887f34658dec9097d987d254a990ea7f311bfc95fStephen Hines const char* entry() const; 2987f34658dec9097d987d254a990ea7f311bfc95fStephen Hines const char* dyld() const; 3087f34658dec9097d987d254a990ea7f311bfc95fStephen Hines uint64_t abiPageSize() const; 3187f34658dec9097d987d254a990ea7f311bfc95fStephen Hines 3237b74a387bb3993387029859c2d9d051c41c724eStephen Hines private: 3387f34658dec9097d987d254a990ea7f311bfc95fStephen Hines uint8_t m_ABIVersion; 34b0d0eb206527b43c771933602e147bbd7b471082Stephen Hines uint64_t m_ElfFlags; 35d0fbbb227051be16931a1aa9b4a7722ac039c698Shih-wei Liao}; 36d0fbbb227051be16931a1aa9b4a7722ac039c698Shih-wei Liao 3737b74a387bb3993387029859c2d9d051c41c724eStephen Hines} // namespace mcld 38d0fbbb227051be16931a1aa9b4a7722ac039c698Shih-wei Liao 3937b74a387bb3993387029859c2d9d051c41c724eStephen Hines#endif // TARGET_MIPS_MIPSGNUINFO_H_ 40