]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - source/Plugins/Process/Windows/Common/x64/RegisterContextWindows_x64.h
Vendor import of lldb trunk r290819:
[FreeBSD/FreeBSD.git] / source / Plugins / Process / Windows / Common / x64 / RegisterContextWindows_x64.h
1 //===-- RegisterContextWindows_x64.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_RegisterContextWindows_x64_H_
11 #define liblldb_RegisterContextWindows_x64_H_
12
13 #include "RegisterContextWindows.h"
14 #include "lldb/lldb-forward.h"
15
16 namespace lldb_private {
17
18 class Thread;
19
20 class RegisterContextWindows_x64 : public RegisterContextWindows {
21 public:
22   //------------------------------------------------------------------
23   // Constructors and Destructors
24   //------------------------------------------------------------------
25   RegisterContextWindows_x64(Thread &thread, uint32_t concrete_frame_idx);
26
27   virtual ~RegisterContextWindows_x64();
28
29   //------------------------------------------------------------------
30   // Subclasses must override these functions
31   //------------------------------------------------------------------
32   size_t GetRegisterCount() override;
33
34   const RegisterInfo *GetRegisterInfoAtIndex(size_t reg) override;
35
36   size_t GetRegisterSetCount() override;
37
38   const RegisterSet *GetRegisterSet(size_t reg_set) override;
39
40   bool ReadRegister(const RegisterInfo *reg_info,
41                     RegisterValue &reg_value) override;
42
43   bool WriteRegister(const RegisterInfo *reg_info,
44                      const RegisterValue &reg_value) override;
45 };
46 }
47
48 #endif // #ifndef liblldb_RegisterContextWindows_x64_H_