• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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
ReadFPR()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_
55