1*5ffd83dbSDimitry Andric //===-- ELFDump.h - ELF-specific dumper -------------------------*- C++ -*-===// 2*5ffd83dbSDimitry Andric // 3*5ffd83dbSDimitry Andric // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4*5ffd83dbSDimitry Andric // See https://llvm.org/LICENSE.txt for license information. 5*5ffd83dbSDimitry Andric // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6*5ffd83dbSDimitry Andric // 7*5ffd83dbSDimitry Andric //===----------------------------------------------------------------------===// 8*5ffd83dbSDimitry Andric 9*5ffd83dbSDimitry Andric #ifndef LLVM_TOOLS_LLVM_OBJDUMP_ELFDUMP_H 10*5ffd83dbSDimitry Andric #define LLVM_TOOLS_LLVM_OBJDUMP_ELFDUMP_H 11*5ffd83dbSDimitry Andric 12*5ffd83dbSDimitry Andric #include "llvm/ADT/SmallVector.h" 13*5ffd83dbSDimitry Andric 14*5ffd83dbSDimitry Andric namespace llvm { 15*5ffd83dbSDimitry Andric 16*5ffd83dbSDimitry Andric class Error; 17*5ffd83dbSDimitry Andric 18*5ffd83dbSDimitry Andric namespace object { 19*5ffd83dbSDimitry Andric class ELFObjectFileBase; 20*5ffd83dbSDimitry Andric class ELFSectionRef; 21*5ffd83dbSDimitry Andric class ObjectFile; 22*5ffd83dbSDimitry Andric class RelocationRef; 23*5ffd83dbSDimitry Andric } // namespace object 24*5ffd83dbSDimitry Andric 25*5ffd83dbSDimitry Andric namespace objdump { 26*5ffd83dbSDimitry Andric 27*5ffd83dbSDimitry Andric Error getELFRelocationValueString(const object::ELFObjectFileBase *Obj, 28*5ffd83dbSDimitry Andric const object::RelocationRef &Rel, 29*5ffd83dbSDimitry Andric llvm::SmallVectorImpl<char> &Result); 30*5ffd83dbSDimitry Andric uint64_t getELFSectionLMA(const object::ELFSectionRef &Sec); 31*5ffd83dbSDimitry Andric 32*5ffd83dbSDimitry Andric void printELFFileHeader(const object::ObjectFile *O); 33*5ffd83dbSDimitry Andric 34*5ffd83dbSDimitry Andric } // namespace objdump 35*5ffd83dbSDimitry Andric } // namespace llvm 36*5ffd83dbSDimitry Andric 37*5ffd83dbSDimitry Andric #endif 38