xref: /openbsd-src/gnu/llvm/lldb/source/Plugins/Process/NetBSD/NativeRegisterContextNetBSD.h (revision be691f3bb6417f04a68938fadbcaee2d5795e764)
1061da546Spatrick //===-- NativeRegisterContextNetBSD.h ---------------------------*- C++ -*-===//
2061da546Spatrick //
3061da546Spatrick // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4061da546Spatrick // See https://llvm.org/LICENSE.txt for license information.
5061da546Spatrick // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6061da546Spatrick //
7061da546Spatrick //===----------------------------------------------------------------------===//
8061da546Spatrick 
9061da546Spatrick #ifndef lldb_NativeRegisterContextNetBSD_h
10061da546Spatrick #define lldb_NativeRegisterContextNetBSD_h
11061da546Spatrick 
12061da546Spatrick #include "lldb/Host/common/NativeThreadProtocol.h"
13061da546Spatrick 
14061da546Spatrick #include "Plugins/Process/Utility/NativeRegisterContextRegisterInfo.h"
15061da546Spatrick 
16061da546Spatrick namespace lldb_private {
17061da546Spatrick namespace process_netbsd {
18061da546Spatrick 
19061da546Spatrick class NativeProcessNetBSD;
20061da546Spatrick 
21*be691f3bSpatrick class NativeRegisterContextNetBSD
22*be691f3bSpatrick     : public virtual NativeRegisterContextRegisterInfo {
23061da546Spatrick public:
24061da546Spatrick   // This function is implemented in the NativeRegisterContextNetBSD_*
25061da546Spatrick   // subclasses to create a new instance of the host specific
26061da546Spatrick   // NativeRegisterContextNetBSD. The implementations can't collide as only one
27061da546Spatrick   // NativeRegisterContextNetBSD_* variant should be compiled into the final
28061da546Spatrick   // executable.
29061da546Spatrick   static NativeRegisterContextNetBSD *
30061da546Spatrick   CreateHostNativeRegisterContextNetBSD(const ArchSpec &target_arch,
31061da546Spatrick                                         NativeThreadProtocol &native_thread);
32*be691f3bSpatrick   virtual llvm::Error
33061da546Spatrick   CopyHardwareWatchpointsFrom(NativeRegisterContextNetBSD &source) = 0;
34061da546Spatrick 
35061da546Spatrick protected:
36061da546Spatrick   Status DoRegisterSet(int req, void *buf);
37061da546Spatrick   virtual NativeProcessNetBSD &GetProcess();
38061da546Spatrick   virtual ::pid_t GetProcessPid();
39061da546Spatrick };
40061da546Spatrick 
41061da546Spatrick } // namespace process_netbsd
42061da546Spatrick } // namespace lldb_private
43061da546Spatrick 
44061da546Spatrick #endif // #ifndef lldb_NativeRegisterContextNetBSD_h
45