//===- lib/ReaderWriter/ELF/AArch64/AArch64ELFReader.h --------------------===// // // The LLVM Linker // // This file is distributed under the University of Illinois Open Source // License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// #ifndef LLD_READER_WRITER_AARCH64_AARCH64_ELF_READER_H #define LLD_READER_WRITER_AARCH64_AARCH64_ELF_READER_H #include "AArch64ELFFile.h" #include "ELFReader.h" namespace lld { namespace elf { typedef llvm::object::ELFType AArch64ELFType; struct AArch64DynamicFileCreateELFTraits { typedef llvm::ErrorOr> result_type; template static result_type create(std::unique_ptr mb, AArch64LinkingContext &ctx) { return lld::elf::AArch64DynamicFile::create(std::move(mb), ctx); } }; struct AArch64ELFFileCreateELFTraits { typedef llvm::ErrorOr> result_type; template static result_type create(std::unique_ptr mb, AArch64LinkingContext &ctx) { return lld::elf::AArch64ELFFile::create(std::move(mb), ctx); } }; class AArch64ELFObjectReader : public ELFObjectReader { public: AArch64ELFObjectReader(AArch64LinkingContext &ctx) : ELFObjectReader(ctx, llvm::ELF::EM_AARCH64) {} }; class AArch64ELFDSOReader : public ELFDSOReader { public: AArch64ELFDSOReader(AArch64LinkingContext &ctx) : ELFDSOReader(ctx, llvm::ELF::EM_AARCH64) {} }; } // namespace elf } // namespace lld #endif // LLD_READER_WRITER_AARCH64_AARCH64_ELF_READER_H