xref: /llvm-project/lldb/source/Plugins/Process/Windows/Common/NativeRegisterContextWindows.h (revision f4deacf995c73045a2172f35cbaf289fa97e7abc)
1 //===-- NativeRegisterContextWindows.h --------------------------*- C++ -*-===//
2 //
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 // See https://llvm.org/LICENSE.txt for license information.
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6 //
7 //===----------------------------------------------------------------------===//
8 
9 #ifndef liblldb_NativeRegisterContextWindows_h_
10 #define liblldb_NativeRegisterContextWindows_h_
11 
12 #include "Plugins/Process/Utility/NativeRegisterContextRegisterInfo.h"
13 #include "lldb/Host/common/NativeThreadProtocol.h"
14 #include "lldb/Utility/DataBufferHeap.h"
15 
16 namespace lldb_private {
17 
18 class NativeThreadWindows;
19 
20 class NativeRegisterContextWindows : public NativeRegisterContextRegisterInfo {
21 public:
22   NativeRegisterContextWindows(
23       NativeThreadProtocol &native_thread,
24       RegisterInfoInterface *reg_info_interface_p);
25 
26   static std::unique_ptr<NativeRegisterContextWindows>
27   CreateHostNativeRegisterContextWindows(const ArchSpec &target_arch,
28                                          NativeThreadProtocol &native_thread);
29 
30 protected:
31   lldb::thread_t GetThreadHandle() const;
32 };
33 
34 } // namespace lldb_private
35 
36 #endif // liblldb_NativeRegisterContextWindows_h_
37