1218885Sdim//===- llvm/Support/Disassembler.h ------------------------------*- C++ -*-===//
2218885Sdim//
3218885Sdim//                     The LLVM Compiler Infrastructure
4218885Sdim//
5218885Sdim// This file is distributed under the University of Illinois Open Source
6218885Sdim// License. See LICENSE.TXT for details.
7218885Sdim//
8218885Sdim//===----------------------------------------------------------------------===//
9218885Sdim//
10218885Sdim// This file implements the necessary glue to call external disassembler
11218885Sdim// libraries.
12218885Sdim//
13218885Sdim//===----------------------------------------------------------------------===//
14218885Sdim
15218885Sdim#ifndef LLVM_SYSTEM_DISASSEMBLER_H
16218885Sdim#define LLVM_SYSTEM_DISASSEMBLER_H
17218885Sdim
18218885Sdim#include "llvm/Support/DataTypes.h"
19218885Sdim#include <string>
20218885Sdim
21218885Sdimnamespace llvm {
22218885Sdimnamespace sys {
23218885Sdim
24218885Sdim/// This function returns true, if there is possible to use some external
25218885Sdim/// disassembler library. False otherwise.
26218885Sdimbool hasDisassembler();
27218885Sdim
28218885Sdim/// This function provides some "glue" code to call external disassembler
29218885Sdim/// libraries.
30218885Sdimstd::string disassembleBuffer(uint8_t* start, size_t length, uint64_t pc = 0);
31218885Sdim
32218885Sdim}
33218885Sdim}
34218885Sdim
35218885Sdim#endif // LLVM_SYSTEM_DISASSEMBLER_H
36