blob: 58c50f58d750c7fd7e51bf8f956e077a1dd174cf [file] [log] [blame]
Eric Christopher9cad53c2013-04-03 18:31:38 +00001//===-- llvm-readobj.h ----------------------------------------------------===//
Michael J. Spencer6a8746b2013-02-20 02:37:12 +00002//
3// The LLVM Compiler Infrastructure
4//
5// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//
9
Benjamin Kramera7c40ef2014-08-13 16:26:38 +000010#ifndef LLVM_TOOLS_LLVM_READOBJ_LLVM_READOBJ_H
11#define LLVM_TOOLS_LLVM_READOBJ_LLVM_READOBJ_H
Michael J. Spencer6a8746b2013-02-20 02:37:12 +000012
Eric Christopher9cad53c2013-04-03 18:31:38 +000013#include "llvm/Support/CommandLine.h"
14#include <string>
Michael J. Spencer6a8746b2013-02-20 02:37:12 +000015
16namespace llvm {
Eric Christopher9cad53c2013-04-03 18:31:38 +000017 namespace object {
18 class RelocationRef;
19 }
Michael J. Spencer6a8746b2013-02-20 02:37:12 +000020
Eric Christopher9cad53c2013-04-03 18:31:38 +000021 // Various helper functions.
Rafael Espindola00ddb142015-07-20 03:38:17 +000022 void reportError(Twine Msg);
Rafael Espindolafb3acd62015-07-20 03:23:55 +000023 void error(std::error_code ec);
Eric Christopher9cad53c2013-04-03 18:31:38 +000024 bool relocAddressLess(object::RelocationRef A,
25 object::RelocationRef B);
26} // namespace llvm
27
28namespace opts {
29 extern llvm::cl::list<std::string> InputFilenames;
30 extern llvm::cl::opt<bool> FileHeaders;
31 extern llvm::cl::opt<bool> Sections;
32 extern llvm::cl::opt<bool> SectionRelocations;
33 extern llvm::cl::opt<bool> SectionSymbols;
34 extern llvm::cl::opt<bool> SectionData;
35 extern llvm::cl::opt<bool> Relocations;
36 extern llvm::cl::opt<bool> Symbols;
37 extern llvm::cl::opt<bool> DynamicSymbols;
38 extern llvm::cl::opt<bool> UnwindInfo;
Nico Rieckf3f0b792013-04-12 04:01:52 +000039 extern llvm::cl::opt<bool> ExpandRelocs;
Zachary Turner99f02152015-02-18 19:32:05 +000040 extern llvm::cl::opt<bool> CodeView;
41 extern llvm::cl::opt<bool> CodeViewSubsectionBytes;
Saleem Abdulrasool15d16d82014-01-30 04:46:33 +000042 extern llvm::cl::opt<bool> ARMAttributes;
Simon Atanasyan80433902014-06-18 08:47:09 +000043 extern llvm::cl::opt<bool> MipsPLTGOT;
Eric Christopher9cad53c2013-04-03 18:31:38 +000044} // namespace opts
45
46#define LLVM_READOBJ_ENUM_ENT(ns, enum) \
47 { #enum, ns::enum }
Michael J. Spencer6a8746b2013-02-20 02:37:12 +000048
49#endif