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