1*be691f3bSpatrick //===-- NativeRegisterContextFreeBSD.h --------------------------*- C++ -*-===// 2*be691f3bSpatrick // 3*be691f3bSpatrick // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4*be691f3bSpatrick // See https://llvm.org/LICENSE.txt for license information. 5*be691f3bSpatrick // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6*be691f3bSpatrick // 7*be691f3bSpatrick //===----------------------------------------------------------------------===// 8*be691f3bSpatrick 9*be691f3bSpatrick #ifndef lldb_NativeRegisterContextFreeBSD_h 10*be691f3bSpatrick #define lldb_NativeRegisterContextFreeBSD_h 11*be691f3bSpatrick 12*be691f3bSpatrick #include "lldb/Host/common/NativeThreadProtocol.h" 13*be691f3bSpatrick 14*be691f3bSpatrick #include "Plugins/Process/Utility/NativeRegisterContextRegisterInfo.h" 15*be691f3bSpatrick 16*be691f3bSpatrick namespace lldb_private { 17*be691f3bSpatrick namespace process_freebsd { 18*be691f3bSpatrick 19*be691f3bSpatrick class NativeProcessFreeBSD; 20*be691f3bSpatrick 21*be691f3bSpatrick class NativeRegisterContextFreeBSD 22*be691f3bSpatrick : public virtual NativeRegisterContextRegisterInfo { 23*be691f3bSpatrick public: 24*be691f3bSpatrick // This function is implemented in the NativeRegisterContextFreeBSD_* 25*be691f3bSpatrick // subclasses to create a new instance of the host specific 26*be691f3bSpatrick // NativeRegisterContextFreeBSD. The implementations can't collide as only one 27*be691f3bSpatrick // NativeRegisterContextFreeBSD_* variant should be compiled into the final 28*be691f3bSpatrick // executable. 29*be691f3bSpatrick static NativeRegisterContextFreeBSD * 30*be691f3bSpatrick CreateHostNativeRegisterContextFreeBSD(const ArchSpec &target_arch, 31*be691f3bSpatrick NativeThreadProtocol &native_thread); 32*be691f3bSpatrick virtual llvm::Error 33*be691f3bSpatrick CopyHardwareWatchpointsFrom(NativeRegisterContextFreeBSD &source) = 0; 34*be691f3bSpatrick 35*be691f3bSpatrick protected: 36*be691f3bSpatrick virtual NativeProcessFreeBSD &GetProcess(); 37*be691f3bSpatrick virtual ::pid_t GetProcessPid(); 38*be691f3bSpatrick }; 39*be691f3bSpatrick 40*be691f3bSpatrick } // namespace process_freebsd 41*be691f3bSpatrick } // namespace lldb_private 42*be691f3bSpatrick 43*be691f3bSpatrick #endif // #ifndef lldb_NativeRegisterContextFreeBSD_h 44