27#include <sys/ptrace.h>
28#include <sys/sysctl.h>
30#include <machine/reg.h>
84static const struct regset *
100#if defined(PT_GETFSBASE) || defined(PT_GETGSBASE)
118 perror_with_name (_(
"Couldn't get segment register fs_base"));
131 perror_with_name (_(
"Couldn't get segment register gs_base"));
144#ifdef PT_GETXSTATE_INFO
145 if (m_xsave_info.xsave_len != 0)
147 void *xstateregs = alloca (m_xsave_info.xsave_len);
150 perror_with_name (_(
"Couldn't get extended state status"));
160 perror_with_name (_(
"Couldn't get floating point status"));
172#if defined(PT_GETFSBASE) || defined(PT_GETGSBASE)
195 perror_with_name (_(
"Couldn't write segment register fs_base"));
210 perror_with_name (_(
"Couldn't write segment register gs_base"));
221#ifdef PT_GETXSTATE_INFO
222 if (m_xsave_info.xsave_len != 0)
224 void *xstateregs = alloca (m_xsave_info.xsave_len);
227 perror_with_name (_(
"Couldn't get extended state status"));
232 m_xsave_info.xsave_len) == -1)
233 perror_with_name (_(
"Couldn't write extended state status"));
241 perror_with_name (_(
"Couldn't get floating point status"));
246 perror_with_name (_(
"Couldn't write floating point status"));
251#include <machine/pcb.h>
252#include <osreldate.h>
269 if (pcb->pcb_rsp == 0)
281#if (__FreeBSD_version < 800075) && (__FreeBSD_kernel_version < 800075)
310 perror_with_name (_(
"Couldn't get registers"));
311 is64 = (regs.r_cs == GSEL (GUCODE_SEL, SEL_UPL));
312#ifdef PT_GETXSTATE_INFO
314 if (m_xsave_info.xsave_len != 0)
static int amd64fbsd_supply_pcb(struct regcache *regcache, struct pcb *pcb)
void _initialize_amd64fbsd_nat()
static const struct regset * find_gregset(struct gdbarch *gdbarch)
static const struct regset amd64_fbsd32_gregset
static amd64_fbsd_nat_target the_amd64_fbsd_nat_target
static const struct regcache_map_entry amd64_fbsd32_gregmap[]
const struct regset amd64_fbsd_gregset
void amd64_collect_xsave(const struct regcache *regcache, int regnum, void *xsave, int gcore)
const struct target_desc * amd64_target_description(uint64_t xcr0, bool segments)
void amd64_supply_fxsave(struct regcache *regcache, int regnum, const void *fxsave)
void amd64_supply_xsave(struct regcache *regcache, int regnum, const void *xsave)
void amd64_collect_fxsave(const struct regcache *regcache, int regnum, void *fxsave)
void bsd_kvm_add_target(int(*supply_pcb)(struct regcache *, struct pcb *))
void fetch_registers(struct regcache *, int) override
const struct target_desc * read_description() override
void store_registers(struct regcache *, int) override
bool fetch_register_set(struct regcache *regcache, int regnum, int fetch_op, const struct regset *regset, int regbase, void *regs, size_t size)
bool store_register_set(struct regcache *regcache, int regnum, int fetch_op, int store_op, const struct regset *regset, int regbase, void *regs, size_t size)
void raw_collect(int regnum, void *buf) const override
void raw_supply(int regnum, const void *buf) override
#define ptrace(request, pid, addr, data)
const struct bfd_arch_info * gdbarch_bfd_arch_info(struct gdbarch *gdbarch)
static TDepType * gdbarch_tdep(struct gdbarch *gdbarch)
mach_port_t mach_port_t name mach_port_t mach_port_t name kern_return_t int int rusage_t pid_t pid
const struct target_desc * i386_target_description(uint64_t xcr0, bool segments)
void add_inf_child_target(inf_child_target *target)
pid_t get_ptrace_pid(ptid_t ptid)
void regcache_collect_regset(const struct regset *regset, const struct regcache *regcache, int regnum, void *buf, size_t size)
void regcache_supply_regset(const struct regset *regset, struct regcache *regcache, int regnum, const void *buf, size_t size)
target_ops * beneath() const
virtual const struct target_desc * read_description() TARGET_DEFAULT_RETURN(NULL)