10b8b771e9f2f251460a6f200c45efe9d55640d60Benjamin Kramer//===-- llvm-objdump.h ----------------------------------------------------===//
20b8b771e9f2f251460a6f200c45efe9d55640d60Benjamin Kramer//
30b8b771e9f2f251460a6f200c45efe9d55640d60Benjamin Kramer//                     The LLVM Compiler Infrastructure
40b8b771e9f2f251460a6f200c45efe9d55640d60Benjamin Kramer//
50b8b771e9f2f251460a6f200c45efe9d55640d60Benjamin Kramer// This file is distributed under the University of Illinois Open Source
60b8b771e9f2f251460a6f200c45efe9d55640d60Benjamin Kramer// License. See LICENSE.TXT for details.
70b8b771e9f2f251460a6f200c45efe9d55640d60Benjamin Kramer//
80b8b771e9f2f251460a6f200c45efe9d55640d60Benjamin Kramer//===----------------------------------------------------------------------===//
90b8b771e9f2f251460a6f200c45efe9d55640d60Benjamin Kramer
100b8b771e9f2f251460a6f200c45efe9d55640d60Benjamin Kramer#ifndef LLVM_OBJDUMP_H
110b8b771e9f2f251460a6f200c45efe9d55640d60Benjamin Kramer#define LLVM_OBJDUMP_H
120b8b771e9f2f251460a6f200c45efe9d55640d60Benjamin Kramer
130b8b771e9f2f251460a6f200c45efe9d55640d60Benjamin Kramer#include "llvm/ADT/StringRef.h"
140b8b771e9f2f251460a6f200c45efe9d55640d60Benjamin Kramer#include "llvm/Support/CommandLine.h"
150b8b771e9f2f251460a6f200c45efe9d55640d60Benjamin Kramer#include "llvm/Support/DataTypes.h"
16ef99356dfebb96f6f90efb912c2877214bad060eAhmed Bougacha#include "llvm/Support/StringRefMemoryObject.h"
170b8b771e9f2f251460a6f200c45efe9d55640d60Benjamin Kramer
180b8b771e9f2f251460a6f200c45efe9d55640d60Benjamin Kramernamespace llvm {
190b8b771e9f2f251460a6f200c45efe9d55640d60Benjamin Kramer
20eef7b6219ebe5d0ded0be4adb3003055fa8a63c4Michael J. Spencernamespace object {
21eef7b6219ebe5d0ded0be4adb3003055fa8a63c4Michael J. Spencer  class COFFObjectFile;
22b2c064c6954c9bfa49b7a7e3223df5e7849464c0Michael J. Spencer  class ObjectFile;
23eef7b6219ebe5d0ded0be4adb3003055fa8a63c4Michael J. Spencer  class RelocationRef;
24eef7b6219ebe5d0ded0be4adb3003055fa8a63c4Michael J. Spencer}
25eef7b6219ebe5d0ded0be4adb3003055fa8a63c4Michael J. Spencerclass error_code;
26eef7b6219ebe5d0ded0be4adb3003055fa8a63c4Michael J. Spencer
270b8b771e9f2f251460a6f200c45efe9d55640d60Benjamin Kramerextern cl::opt<std::string> TripleName;
280b8b771e9f2f251460a6f200c45efe9d55640d60Benjamin Kramerextern cl::opt<std::string> ArchName;
290b8b771e9f2f251460a6f200c45efe9d55640d60Benjamin Kramer
300b8b771e9f2f251460a6f200c45efe9d55640d60Benjamin Kramer// Various helper functions.
31eef7b6219ebe5d0ded0be4adb3003055fa8a63c4Michael J. Spencerbool error(error_code ec);
32eef7b6219ebe5d0ded0be4adb3003055fa8a63c4Michael J. Spencerbool RelocAddressLess(object::RelocationRef a, object::RelocationRef b);
330b8b771e9f2f251460a6f200c45efe9d55640d60Benjamin Kramervoid DumpBytes(StringRef bytes);
340b8b771e9f2f251460a6f200c45efe9d55640d60Benjamin Kramervoid DisassembleInputMachO(StringRef Filename);
35eef7b6219ebe5d0ded0be4adb3003055fa8a63c4Michael J. Spencervoid printCOFFUnwindInfo(const object::COFFObjectFile* o);
36b2c064c6954c9bfa49b7a7e3223df5e7849464c0Michael J. Spencervoid printELFFileHeader(const object::ObjectFile *o);
370b8b771e9f2f251460a6f200c45efe9d55640d60Benjamin Kramer
380b8b771e9f2f251460a6f200c45efe9d55640d60Benjamin Kramer}
390b8b771e9f2f251460a6f200c45efe9d55640d60Benjamin Kramer
400b8b771e9f2f251460a6f200c45efe9d55640d60Benjamin Kramer#endif
41