| //===-- NativeRegisterContextNetBSD.h ---------------------------*- C++ -*-===// |
| // |
| // The LLVM Compiler Infrastructure |
| // |
| // This file is distributed under the University of Illinois Open Source |
| // License. See LICENSE.TXT for details. |
| // |
| //===----------------------------------------------------------------------===// |
| |
| #ifndef lldb_NativeRegisterContextNetBSD_h |
| #define lldb_NativeRegisterContextNetBSD_h |
| |
| #include "lldb/Host/common/NativeThreadProtocol.h" |
| |
| #include "Plugins/Process/NetBSD/NativeProcessNetBSD.h" |
| #include "Plugins/Process/Utility/NativeRegisterContextRegisterInfo.h" |
| |
| namespace lldb_private { |
| namespace process_netbsd { |
| |
| class NativeRegisterContextNetBSD : public NativeRegisterContextRegisterInfo { |
| public: |
| NativeRegisterContextNetBSD(NativeThreadProtocol &native_thread, |
| RegisterInfoInterface *reg_info_interface_p); |
| |
| // This function is implemented in the NativeRegisterContextNetBSD_* |
| // subclasses to create a new instance of the host specific |
| // NativeRegisterContextNetBSD. The implementations can't collide as only one |
| // NativeRegisterContextNetBSD_* variant should be compiled into the final |
| // executable. |
| static NativeRegisterContextNetBSD * |
| CreateHostNativeRegisterContextNetBSD(const ArchSpec &target_arch, |
| NativeThreadProtocol &native_thread); |
| |
| protected: |
| virtual Status ReadGPR(); |
| virtual Status WriteGPR(); |
| |
| virtual Status ReadFPR(); |
| virtual Status WriteFPR(); |
| |
| virtual Status ReadDBR(); |
| virtual Status WriteDBR(); |
| |
| virtual void *GetGPRBuffer() { return nullptr; } |
| virtual size_t GetGPRSize() { |
| return GetRegisterInfoInterface().GetGPRSize(); |
| } |
| |
| virtual void *GetFPRBuffer() { return nullptr; } |
| virtual size_t GetFPRSize() { return 0; } |
| |
| virtual void *GetDBRBuffer() { return nullptr; } |
| virtual size_t GetDBRSize() { return 0; } |
| |
| virtual Status DoReadGPR(void *buf); |
| virtual Status DoWriteGPR(void *buf); |
| |
| virtual Status DoReadFPR(void *buf); |
| virtual Status DoWriteFPR(void *buf); |
| |
| virtual Status DoReadDBR(void *buf); |
| virtual Status DoWriteDBR(void *buf); |
| |
| virtual NativeProcessNetBSD &GetProcess(); |
| virtual ::pid_t GetProcessPid(); |
| }; |
| |
| } // namespace process_netbsd |
| } // namespace lldb_private |
| |
| #endif // #ifndef lldb_NativeRegisterContextNetBSD_h |