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