]> CyberLeo.Net >> Repos - FreeBSD/releng/10.2.git/blob - contrib/llvm/tools/lldb/source/Plugins/Process/POSIX/RegisterContextPOSIXProcessMonitor_mips64.h
- Copy stable/10@285827 to releng/10.2 in preparation for 10.2-RC1
[FreeBSD/releng/10.2.git] / contrib / llvm / tools / lldb / source / Plugins / Process / POSIX / RegisterContextPOSIXProcessMonitor_mips64.h
1 //===-- RegisterContextPOSIXProcessMonitor_mips64.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 liblldb_RegisterContextPOSIXProcessMonitor_mips64_H_
11 #define liblldb_RegisterContextPOSIXProcessMonitor_mips64_H_
12
13 #include "Plugins/Process/POSIX/RegisterContextPOSIX_mips64.h"
14
15 class RegisterContextPOSIXProcessMonitor_mips64:
16     public RegisterContextPOSIX_mips64,
17     public POSIXBreakpointProtocol
18 {
19 public:
20     RegisterContextPOSIXProcessMonitor_mips64(lldb_private::Thread &thread,
21                                               uint32_t concrete_frame_idx,
22                                               RegisterInfoInterface *register_info);
23
24 protected:
25     bool
26     ReadGPR();
27
28     bool
29     ReadFPR();
30
31     bool
32     WriteGPR();
33
34     bool
35     WriteFPR();
36
37     // lldb_private::RegisterContext
38     bool
39     ReadRegister(const unsigned reg, lldb_private::RegisterValue &value);
40
41     bool
42     WriteRegister(const unsigned reg, const lldb_private::RegisterValue &value);
43
44     bool
45     ReadRegister(const lldb_private::RegisterInfo *reg_info, lldb_private::RegisterValue &value);
46
47     bool
48     WriteRegister(const lldb_private::RegisterInfo *reg_info, const lldb_private::RegisterValue &value);
49
50     bool
51     ReadAllRegisterValues(lldb::DataBufferSP &data_sp);
52
53     bool
54     WriteAllRegisterValues(const lldb::DataBufferSP &data_sp);
55
56     uint32_t
57     SetHardwareWatchpoint(lldb::addr_t addr, size_t size, bool read, bool write);
58
59     bool
60     ClearHardwareWatchpoint(uint32_t hw_index);
61
62     bool
63     HardwareSingleStep(bool enable);
64
65     // POSIXBreakpointProtocol
66     bool
67     UpdateAfterBreakpoint();
68
69     unsigned
70     GetRegisterIndexFromOffset(unsigned offset);
71
72     bool
73     IsWatchpointHit(uint32_t hw_index);
74
75     bool
76     ClearWatchpointHits();
77
78     lldb::addr_t
79     GetWatchpointAddress(uint32_t hw_index);
80
81     bool
82     IsWatchpointVacant(uint32_t hw_index);
83
84     bool
85     SetHardwareWatchpointWithIndex(lldb::addr_t addr, size_t size, bool read, bool write, uint32_t hw_index);
86
87     uint32_t
88     NumSupportedHardwareWatchpoints();
89
90 private:
91     ProcessMonitor &
92     GetMonitor();
93 };
94
95 #endif