xref: /minix3/external/bsd/llvm/dist/llvm/tools/llvm-objdump/llvm-objdump.h (revision 0a6a1f1d05b60e214de2f05a7310ddd1f0e590e7)
1f4a2713aSLionel Sambuc //===-- llvm-objdump.h ----------------------------------------------------===//
2f4a2713aSLionel Sambuc //
3f4a2713aSLionel Sambuc //                     The LLVM Compiler Infrastructure
4f4a2713aSLionel Sambuc //
5f4a2713aSLionel Sambuc // This file is distributed under the University of Illinois Open Source
6f4a2713aSLionel Sambuc // License. See LICENSE.TXT for details.
7f4a2713aSLionel Sambuc //
8f4a2713aSLionel Sambuc //===----------------------------------------------------------------------===//
9f4a2713aSLionel Sambuc 
10*0a6a1f1dSLionel Sambuc #ifndef LLVM_TOOLS_LLVM_OBJDUMP_LLVM_OBJDUMP_H
11*0a6a1f1dSLionel Sambuc #define LLVM_TOOLS_LLVM_OBJDUMP_LLVM_OBJDUMP_H
12f4a2713aSLionel Sambuc 
13f4a2713aSLionel Sambuc #include "llvm/ADT/StringRef.h"
14f4a2713aSLionel Sambuc #include "llvm/Support/CommandLine.h"
15f4a2713aSLionel Sambuc #include "llvm/Support/DataTypes.h"
16f4a2713aSLionel Sambuc 
17f4a2713aSLionel Sambuc namespace llvm {
18f4a2713aSLionel Sambuc namespace object {
19f4a2713aSLionel Sambuc   class COFFObjectFile;
20*0a6a1f1dSLionel Sambuc   class MachOObjectFile;
21f4a2713aSLionel Sambuc   class ObjectFile;
22f4a2713aSLionel Sambuc   class RelocationRef;
23f4a2713aSLionel Sambuc }
24f4a2713aSLionel Sambuc 
25f4a2713aSLionel Sambuc extern cl::opt<std::string> TripleName;
26f4a2713aSLionel Sambuc extern cl::opt<std::string> ArchName;
27*0a6a1f1dSLionel Sambuc extern cl::opt<std::string> MCPU;
28*0a6a1f1dSLionel Sambuc extern cl::list<std::string> MAttrs;
29*0a6a1f1dSLionel Sambuc extern cl::opt<bool> Disassemble;
30*0a6a1f1dSLionel Sambuc extern cl::opt<bool> NoShowRawInsn;
31*0a6a1f1dSLionel Sambuc extern cl::opt<bool> PrivateHeaders;
32*0a6a1f1dSLionel Sambuc extern cl::opt<bool> ExportsTrie;
33*0a6a1f1dSLionel Sambuc extern cl::opt<bool> Rebase;
34*0a6a1f1dSLionel Sambuc extern cl::opt<bool> Bind;
35*0a6a1f1dSLionel Sambuc extern cl::opt<bool> LazyBind;
36*0a6a1f1dSLionel Sambuc extern cl::opt<bool> WeakBind;
37*0a6a1f1dSLionel Sambuc extern cl::opt<bool> UniversalHeaders;
38f4a2713aSLionel Sambuc 
39f4a2713aSLionel Sambuc // Various helper functions.
40*0a6a1f1dSLionel Sambuc bool error(std::error_code ec);
41f4a2713aSLionel Sambuc bool RelocAddressLess(object::RelocationRef a, object::RelocationRef b);
42f4a2713aSLionel Sambuc void DumpBytes(StringRef bytes);
43*0a6a1f1dSLionel Sambuc void ParseInputMachO(StringRef Filename);
44f4a2713aSLionel Sambuc void printCOFFUnwindInfo(const object::COFFObjectFile* o);
45*0a6a1f1dSLionel Sambuc void printMachOUnwindInfo(const object::MachOObjectFile* o);
46*0a6a1f1dSLionel Sambuc void printMachOExportsTrie(const object::MachOObjectFile* o);
47*0a6a1f1dSLionel Sambuc void printMachORebaseTable(const object::MachOObjectFile* o);
48*0a6a1f1dSLionel Sambuc void printMachOBindTable(const object::MachOObjectFile* o);
49*0a6a1f1dSLionel Sambuc void printMachOLazyBindTable(const object::MachOObjectFile* o);
50*0a6a1f1dSLionel Sambuc void printMachOWeakBindTable(const object::MachOObjectFile* o);
51f4a2713aSLionel Sambuc void printELFFileHeader(const object::ObjectFile *o);
52f4a2713aSLionel Sambuc void printCOFFFileHeader(const object::ObjectFile *o);
53*0a6a1f1dSLionel Sambuc void printMachOFileHeader(const object::ObjectFile *o);
54*0a6a1f1dSLionel Sambuc void printExportsTrie(const object::ObjectFile *o);
55*0a6a1f1dSLionel Sambuc void printRebaseTable(const object::ObjectFile *o);
56*0a6a1f1dSLionel Sambuc void printBindTable(const object::ObjectFile *o);
57*0a6a1f1dSLionel Sambuc void printLazyBindTable(const object::ObjectFile *o);
58*0a6a1f1dSLionel Sambuc void printWeakBindTable(const object::ObjectFile *o);
59f4a2713aSLionel Sambuc 
60f4a2713aSLionel Sambuc } // end namespace llvm
61f4a2713aSLionel Sambuc 
62f4a2713aSLionel Sambuc #endif
63