118a9135dSAdrian McCarthy //===-- TargetThreadWindows.h -----------------------------------*- C++ -*-===// 218a9135dSAdrian McCarthy // 3*2946cd70SChandler Carruth // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4*2946cd70SChandler Carruth // See https://llvm.org/LICENSE.txt for license information. 5*2946cd70SChandler Carruth // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 618a9135dSAdrian McCarthy // 718a9135dSAdrian McCarthy //===----------------------------------------------------------------------===// 818a9135dSAdrian McCarthy 918a9135dSAdrian McCarthy #ifndef liblldb_Plugins_Process_Windows_TargetThreadWindows_H_ 1018a9135dSAdrian McCarthy #define liblldb_Plugins_Process_Windows_TargetThreadWindows_H_ 1118a9135dSAdrian McCarthy 1218a9135dSAdrian McCarthy //#include "ForwardDecl.h" 1318a9135dSAdrian McCarthy #include "lldb/Host/HostThread.h" 1418a9135dSAdrian McCarthy #include "lldb/Target/Thread.h" 15b9c1b51eSKate Stone #include "lldb/lldb-forward.h" 1618a9135dSAdrian McCarthy 174ad5def9SAdrian McCarthy #include "RegisterContextWindows.h" 184ad5def9SAdrian McCarthy 19b9c1b51eSKate Stone namespace lldb_private { 2018a9135dSAdrian McCarthy class ProcessWindows; 2118a9135dSAdrian McCarthy class HostThread; 2218a9135dSAdrian McCarthy class StackFrame; 2318a9135dSAdrian McCarthy 24b9c1b51eSKate Stone class TargetThreadWindows : public lldb_private::Thread { 2518a9135dSAdrian McCarthy public: 2618a9135dSAdrian McCarthy TargetThreadWindows(ProcessWindows &process, const HostThread &thread); 2718a9135dSAdrian McCarthy virtual ~TargetThreadWindows(); 2818a9135dSAdrian McCarthy 2918a9135dSAdrian McCarthy // lldb_private::Thread overrides 3018a9135dSAdrian McCarthy void RefreshStateAfterStop() override; 3118a9135dSAdrian McCarthy void WillResume(lldb::StateType resume_state) override; 3218a9135dSAdrian McCarthy void DidStop() override; 334ad5def9SAdrian McCarthy lldb::RegisterContextSP GetRegisterContext() override; 344ad5def9SAdrian McCarthy lldb::RegisterContextSP 354ad5def9SAdrian McCarthy CreateRegisterContextForFrame(StackFrame *frame) override; 3618a9135dSAdrian McCarthy bool CalculateStopInfo() override; 3718a9135dSAdrian McCarthy 380fd67b53SStella Stamenova Status DoResume(); 3918a9135dSAdrian McCarthy GetHostThread()40b9c1b51eSKate Stone HostThread GetHostThread() const { return m_host_thread; } 4118a9135dSAdrian McCarthy 4218a9135dSAdrian McCarthy private: 4345d8134cSStella Stamenova lldb::RegisterContextSP m_thread_reg_ctx_sp; 4418a9135dSAdrian McCarthy HostThread m_host_thread; 4518a9135dSAdrian McCarthy }; 4645d8134cSStella Stamenova } // namespace lldb_private 4718a9135dSAdrian McCarthy 4818a9135dSAdrian McCarthy #endif 49