26#include <sys/ptrace.h>
27#include <sys/sysctl.h>
34#include "gdbsupport/x86-xstate.h"
45 void resume (ptid_t,
int,
enum gdb_signal)
override;
50#ifdef PT_GETXSTATE_INFO
51static size_t xsave_len;
104#ifdef PT_GETXSTATE_INFO
107 void *xstateregs = alloca (xsave_len);
144 if (store_register_set<struct reg> (
regcache,
regnum, PT_GETREGS, PT_SETREGS,
183#ifdef PT_GETXSTATE_INFO
186 void *xstateregs = alloca (xsave_len);
230 pid_t
pid = ptid.pid ();
267 gdb_signal_to_host (signal)) == -1)
274#include <machine/pcb.h>
291 if (pcb->pcb_esp == 0)
312#ifdef PT_GETXSTATE_INFO
313 static int xsave_probed;
314 static uint64_t xcr0;
316 static int xmm_probed;
318#ifdef PT_GETXSTATE_INFO
321 struct ptrace_xstate_info
info;
326 xsave_len =
info.xsave_len;
327 xcr0 =
info.xsave_mask;
void bsd_kvm_add_target(int(*supply_pcb)(struct regcache *, struct pcb *))
void store_registers(struct regcache *, int) override
void fetch_registers(struct regcache *, int) override
void resume(ptid_t, int, enum gdb_signal) override
const struct target_desc * read_description() override
const target_info & info() const override
void raw_collect(int regnum, void *buf) const override
void raw_supply(int regnum, const void *buf) override
#define ptrace(request, pid, addr, data)
mach_port_t mach_port_t name mach_port_t mach_port_t name kern_return_t int int rusage_t pid_t pid
static i386_fbsd_nat_target the_i386_fbsd_nat_target
static int i386fbsd_supply_pcb(struct regcache *regcache, struct pcb *pcb)
void _initialize_i386fbsd_nat()
static int have_ptrace_xmmregs
const struct regset i386_fbsd_gregset
const struct target_desc * i386_target_description(uint64_t xcr0, bool segments)
void i387_supply_xsave(struct regcache *regcache, int regnum, const void *xsave)
void i387_supply_fxsave(struct regcache *regcache, int regnum, const void *fxsave)
void i387_collect_fxsave(const struct regcache *regcache, int regnum, void *fxsave)
void i387_collect_xsave(const struct regcache *regcache, int regnum, void *xsave, int gcore)
void i387_supply_fsave(struct regcache *regcache, int regnum, const void *fsave)
void i387_collect_fsave(const struct regcache *regcache, int regnum, void *fsave)
#define I387_SIZEOF_FXSAVE
void add_inf_child_target(inf_child_target *target)
pid_t get_ptrace_pid(ptid_t ptid)
enum register_status regcache_cooked_read_unsigned(struct regcache *regcache, int regnum, ULONGEST *val)
struct regcache * get_current_regcache(void)
void regcache_cooked_write_unsigned(struct regcache *regcache, int regnum, ULONGEST val)
void perror_with_name(const char *string)