1*061da546Spatrick //===-- TargetThreadWindows.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_Plugins_Process_Windows_TargetThreadWindows_H_ 10*061da546Spatrick #define liblldb_Plugins_Process_Windows_TargetThreadWindows_H_ 11*061da546Spatrick 12*061da546Spatrick //#include "ForwardDecl.h" 13*061da546Spatrick #include "lldb/Host/HostThread.h" 14*061da546Spatrick #include "lldb/Target/Thread.h" 15*061da546Spatrick #include "lldb/lldb-forward.h" 16*061da546Spatrick 17*061da546Spatrick #include "RegisterContextWindows.h" 18*061da546Spatrick 19*061da546Spatrick namespace lldb_private { 20*061da546Spatrick class ProcessWindows; 21*061da546Spatrick class HostThread; 22*061da546Spatrick class StackFrame; 23*061da546Spatrick 24*061da546Spatrick class TargetThreadWindows : public lldb_private::Thread { 25*061da546Spatrick public: 26*061da546Spatrick TargetThreadWindows(ProcessWindows &process, const HostThread &thread); 27*061da546Spatrick virtual ~TargetThreadWindows(); 28*061da546Spatrick 29*061da546Spatrick // lldb_private::Thread overrides 30*061da546Spatrick void RefreshStateAfterStop() override; 31*061da546Spatrick void WillResume(lldb::StateType resume_state) override; 32*061da546Spatrick void DidStop() override; 33*061da546Spatrick lldb::RegisterContextSP GetRegisterContext() override; 34*061da546Spatrick lldb::RegisterContextSP 35*061da546Spatrick CreateRegisterContextForFrame(StackFrame *frame) override; 36*061da546Spatrick bool CalculateStopInfo() override; 37*061da546Spatrick 38*061da546Spatrick Status DoResume(); 39*061da546Spatrick GetHostThread()40*061da546Spatrick HostThread GetHostThread() const { return m_host_thread; } 41*061da546Spatrick 42*061da546Spatrick private: 43*061da546Spatrick lldb::RegisterContextSP m_thread_reg_ctx_sp; 44*061da546Spatrick HostThread m_host_thread; 45*061da546Spatrick }; 46*061da546Spatrick } // namespace lldb_private 47*061da546Spatrick 48*061da546Spatrick #endif 49