9#if defined(__aarch64__)
11#ifndef lldb_NativeRegisterContextFreeBSD_arm64_h
12#define lldb_NativeRegisterContextFreeBSD_arm64_h
17#include <machine/reg.h>
26#if __FreeBSD_version >= 1300139
27# define LLDB_HAS_FREEBSD_WATCHPOINT 1
31namespace process_freebsd {
33class NativeProcessFreeBSD;
35class NativeRegisterContextFreeBSD_arm64
36 :
public NativeRegisterContextFreeBSD,
37 public NativeRegisterContextDBReg_arm64 {
39 NativeRegisterContextFreeBSD_arm64(
const ArchSpec &target_arch,
40 NativeThreadFreeBSD &native_thread);
42 uint32_t GetRegisterSetCount()
const override;
44 uint32_t GetUserRegisterCount()
const override;
46 const RegisterSet *GetRegisterSet(uint32_t set_index)
const override;
48 Status ReadRegister(
const RegisterInfo *reg_info,
49 RegisterValue ®_value)
override;
51 Status WriteRegister(
const RegisterInfo *reg_info,
52 const RegisterValue ®_value)
override;
59 CopyHardwareWatchpointsFrom(NativeRegisterContextFreeBSD &source)
override;
66 std::array<uint8_t,
sizeof(reg) +
sizeof(fpreg)> m_reg_data;
67#ifdef LLDB_HAS_FREEBSD_WATCHPOINT
72 Status ReadRegisterSet(uint32_t set);
73 Status WriteRegisterSet(uint32_t set);
75 llvm::Error ReadHardwareDebugInfo()
override;
76 llvm::Error WriteHardwareDebugRegs(DREGType hwbType)
override;
A class that represents a running process on the host machine.
std::shared_ptr< lldb_private::DataBuffer > DataBufferSP
std::shared_ptr< lldb_private::WritableDataBuffer > WritableDataBufferSP