xref: /freebsd-src/contrib/llvm-project/lldb/source/Plugins/Process/FreeBSDKernel/ThreadFreeBSDKernel.h (revision 0eae32dcef82f6f06de6419a0d623d7def0cc8f6)
1 //===-- ThreadFreeBSDKernel.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 LLDB_SOURCE_PLUGINS_PROCESS_FREEBSDKERNEL_THREADFREEBSDKERNEL_H
10 #define LLDB_SOURCE_PLUGINS_PROCESS_FREEBSDKERNEL_THREADFREEBSDKERNEL_H
11 
12 #include "lldb/Target/Thread.h"
13 
14 class ThreadFreeBSDKernel : public lldb_private::Thread {
15 public:
16   ThreadFreeBSDKernel(lldb_private::Process &process, lldb::tid_t tid,
17                       lldb::addr_t pcb_addr);
18 
19   ~ThreadFreeBSDKernel() override;
20 
21   void RefreshStateAfterStop() override;
22 
23   lldb::RegisterContextSP GetRegisterContext() override;
24 
25   lldb::RegisterContextSP
26   CreateRegisterContextForFrame(lldb_private::StackFrame *frame) override;
27 
28 protected:
29   bool CalculateStopInfo() override;
30 
31 private:
32   lldb::RegisterContextSP m_thread_reg_ctx_sp;
33   lldb::addr_t m_pcb_addr;
34 };
35 
36 #endif // LLDB_SOURCE_PLUGINS_PROCESS_FREEBSDKERNEL_THREADFREEBSDKERNEL_H
37