]> CyberLeo.Net >> Repos - FreeBSD/releng/10.0.git/blob - contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextDummy.h
- Copy stable/10 (r259064) to releng/10.0 as part of the
[FreeBSD/releng/10.0.git] / contrib / llvm / tools / lldb / source / Plugins / Process / Utility / RegisterContextDummy.h
1 //===-- RegisterContextDummy.h ----------------------------------------*- C++ -*-===//
2 //
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
10 #ifndef lldb_RegisterContextDummy_h_
11 #define lldb_RegisterContextDummy_h_
12
13 #include <vector>
14
15 #include "lldb/lldb-private.h"
16 #include "lldb/Target/RegisterContext.h"
17 #include "lldb/Symbol/SymbolContext.h"
18
19 namespace lldb_private {
20     
21 class RegisterContextDummy : public lldb_private::RegisterContext
22 {
23 public:
24     typedef std::shared_ptr<RegisterContextDummy> SharedPtr;
25     
26     RegisterContextDummy (Thread &thread, uint32_t concrete_frame_idx, uint32_t address_byte_size);
27     
28     ///
29     // pure virtual functions from the base class that we must implement
30     ///
31
32     virtual
33     ~RegisterContextDummy ();
34
35     virtual void
36     InvalidateAllRegisters ();
37
38     virtual size_t
39     GetRegisterCount ();
40
41     virtual const lldb_private::RegisterInfo *
42     GetRegisterInfoAtIndex (size_t reg);
43
44     virtual size_t
45     GetRegisterSetCount ();
46
47     virtual const lldb_private::RegisterSet *
48     GetRegisterSet (size_t reg_set);
49
50     virtual bool
51     ReadRegister (const lldb_private::RegisterInfo *reg_info, lldb_private::RegisterValue &value);
52
53     virtual bool
54     WriteRegister (const lldb_private::RegisterInfo *reg_info, const lldb_private::RegisterValue &value);
55
56     virtual bool
57     ReadAllRegisterValues (lldb::DataBufferSP &data_sp);
58
59     virtual bool
60     WriteAllRegisterValues (const lldb::DataBufferSP &data_sp);
61
62     virtual uint32_t
63     ConvertRegisterKindToRegisterNumber (uint32_t kind, uint32_t num);
64     
65 private:
66     //------------------------------------------------------------------
67     // For RegisterContextLLDB only
68     //------------------------------------------------------------------
69     
70     lldb_private::RegisterSet m_reg_set0; // register set 0 (PC only)
71     lldb_private::RegisterInfo m_pc_reg_info;
72     
73     DISALLOW_COPY_AND_ASSIGN (RegisterContextDummy);
74 };
75 } // namespace lldb_private
76
77 #endif  // lldb_RegisterContextDummy_h_