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
35class NativeRegisterContextFreeBSD_arm64
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);
78 RegisterInfoPOSIX_arm64 &GetRegisterInfo()
const;
Manages communication with the inferior (debugee) process.
Status WriteHardwareDebugRegs(int hwbType, ::pid_t tid, uint32_t max_supported, const std::array< NativeRegisterContextDBReg::DREG, 16 > ®s)
Status ReadHardwareDebugInfo(::pid_t tid, uint32_t &max_hwp_supported, uint32_t &max_hbp_supported)
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