1 //===-- NativeRegisterContextFreeBSD.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_NativeRegisterContextFreeBSD_h 10 #define lldb_NativeRegisterContextFreeBSD_h 11 12 #include "lldb/Host/common/NativeThreadProtocol.h" 13 14 #include "Plugins/Process/Utility/NativeRegisterContextRegisterInfo.h" 15 16 namespace lldb_private { 17 namespace process_freebsd { 18 19 class NativeProcessFreeBSD; 20 21 class NativeRegisterContextFreeBSD 22 : public virtual NativeRegisterContextRegisterInfo { 23 public: 24 // This function is implemented in the NativeRegisterContextFreeBSD_* 25 // subclasses to create a new instance of the host specific 26 // NativeRegisterContextFreeBSD. The implementations can't collide as only one 27 // NativeRegisterContextFreeBSD_* variant should be compiled into the final 28 // executable. 29 static NativeRegisterContextFreeBSD * 30 CreateHostNativeRegisterContextFreeBSD(const ArchSpec &target_arch, 31 NativeThreadProtocol &native_thread); 32 virtual llvm::Error 33 CopyHardwareWatchpointsFrom(NativeRegisterContextFreeBSD &source) = 0; 34 35 protected: 36 virtual NativeProcessFreeBSD &GetProcess(); 37 virtual ::pid_t GetProcessPid(); 38 }; 39 40 } // namespace process_freebsd 41 } // namespace lldb_private 42 43 #endif // #ifndef lldb_NativeRegisterContextFreeBSD_h 44