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