1254721Semaste//===-- SBInstructionList.h -------------------------------------*- C++ -*-===//
2254721Semaste//
3254721Semaste//                     The LLVM Compiler Infrastructure
4254721Semaste//
5254721Semaste// This file is distributed under the University of Illinois Open Source
6254721Semaste// License. See LICENSE.TXT for details.
7254721Semaste//
8254721Semaste//===----------------------------------------------------------------------===//
9254721Semaste
10254721Semaste#ifndef LLDB_SBInstructionList_h_
11254721Semaste#define LLDB_SBInstructionList_h_
12254721Semaste
13254721Semaste#include "lldb/API/SBDefines.h"
14254721Semaste
15254721Semaste#include <stdio.h>
16254721Semaste
17254721Semastenamespace lldb {
18254721Semaste
19254721Semasteclass SBInstructionList
20254721Semaste{
21254721Semastepublic:
22254721Semaste
23254721Semaste    SBInstructionList ();
24254721Semaste
25254721Semaste    SBInstructionList (const SBInstructionList &rhs);
26254721Semaste
27254721Semaste    const SBInstructionList &
28254721Semaste    operator = (const SBInstructionList &rhs);
29254721Semaste
30254721Semaste    ~SBInstructionList ();
31254721Semaste
32254721Semaste    bool
33254721Semaste    IsValid () const;
34254721Semaste
35254721Semaste    size_t
36254721Semaste    GetSize ();
37254721Semaste
38254721Semaste    lldb::SBInstruction
39254721Semaste    GetInstructionAtIndex (uint32_t idx);
40254721Semaste
41254721Semaste    void
42254721Semaste    Clear ();
43254721Semaste
44254721Semaste    void
45254721Semaste    AppendInstruction (lldb::SBInstruction inst);
46254721Semaste
47254721Semaste    void
48254721Semaste    Print (FILE *out);
49254721Semaste
50254721Semaste    bool
51254721Semaste    GetDescription (lldb::SBStream &description);
52254721Semaste
53254721Semaste    bool
54254721Semaste    DumpEmulationForAllInstructions (const char *triple);
55254721Semaste
56254721Semasteprotected:
57254721Semaste    friend class SBFunction;
58254721Semaste    friend class SBSymbol;
59254721Semaste    friend class SBTarget;
60254721Semaste
61254721Semaste    void
62254721Semaste    SetDisassembler (const lldb::DisassemblerSP &opaque_sp);
63254721Semaste
64254721Semasteprivate:
65254721Semaste    lldb::DisassemblerSP m_opaque_sp;
66254721Semaste};
67254721Semaste
68254721Semaste
69254721Semaste} // namespace lldb
70254721Semaste
71254721Semaste#endif // LLDB_SBInstructionList_h_
72