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