]> CyberLeo.Net >> Repos - FreeBSD/stable/10.git/blob - contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/RegisterContextCoreLinux_x86_64.h
Copy head (r256279) to stable/10 as part of the 10.0-RELEASE cycle.
[FreeBSD/stable/10.git] / contrib / llvm / tools / lldb / source / Plugins / Process / elf-core / RegisterContextCoreLinux_x86_64.h
1 //===-- RegisterContextCoreLinux_x86_64.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_RegisterContextCoreLinux_x86_64_H_
11 #define liblldb_RegisterContextCoreLinux_x86_64_H_
12
13 #include "Plugins/Process/POSIX/RegisterContextLinux_x86_64.h"
14
15 using namespace lldb_private;
16
17 class RegisterContextCoreLinux_x86_64: public RegisterContextLinux_x86_64
18 {
19 public:
20     RegisterContextCoreLinux_x86_64 (Thread &thread, const DataExtractor &gpregset,
21                                      const DataExtractor &fpregset);
22
23     ~RegisterContextCoreLinux_x86_64();
24
25     virtual bool
26     ReadRegister(const RegisterInfo *reg_info, RegisterValue &value);
27
28     bool
29     ReadAllRegisterValues(lldb::DataBufferSP &data_sp);
30
31     virtual bool
32     WriteRegister(const RegisterInfo *reg_info, const RegisterValue &value);
33
34     bool
35     WriteAllRegisterValues(const lldb::DataBufferSP &data_sp);
36
37     bool
38     HardwareSingleStep(bool enable);
39
40     bool
41     UpdateAfterBreakpoint();
42
43 protected:
44     bool
45     ReadFPR()
46     {
47         assert(0);
48     }
49
50 private:
51     uint8_t *m_gpregset;
52 };
53
54 #endif // #ifndef liblldb_RegisterContextCoreLinux_x86_64_H_