25#include "gdbsupport/gdb_assert.h"
36#include "gdbsupport/gdb_wait.h"
38#include <sys/procfs.h>
51#define arc_linux_nat_debug_printf(fmt, ...) \
52 debug_prefixed_printf_cond (arc_debug, "arc-linux-nat", fmt, ##__VA_ARGS__)
57#if defined (NT_ARC_V2) && defined (__ARCHS__)
58#define ARC_HAS_V2_REGSET
90 perror_with_name (_(
"Couldn't get general registers"));
95#ifdef ARC_HAS_V2_REGSET
106 iov.iov_base = &v2_buffer;
110 perror_with_name (_(
"Couldn't get ARC HS registers"));
125 iov.iov_base = ®s;
129 perror_with_name (_(
"Couldn't get general registers"));
135 perror_with_name (_(
"Couldn't write general registers"));
139#ifdef ARC_HAS_V2_REGSET
149 iov.iov_base = &v2_buffer;
153 perror_with_name (_(
"Couldn't get ARC HS registers"));
159 perror_with_name (_(
"Couldn't write ARC HS registers"));
174#ifdef ARC_HAS_V2_REGSET
192#ifdef ARC_HAS_V2_REGSET
307 *base = (
void *) ((
char *) *base - idx);
void fill_fpregset(const struct regcache *regcache, gdb_fpregset_t *fpregsetp, int regnum)
static void store_gregs(const struct regcache *regcache, int regnum)
void supply_gregset(struct regcache *regcache, const gdb_gregset_t *gregs)
void supply_fpregset(struct regcache *regcache, const gdb_fpregset_t *fpregsetp)
ps_err_e ps_get_thread_area(struct ps_prochandle *ph, lwpid_t lwpid, int idx, void **base)
void _initialize_arc_linux_nat()
static arc_linux_nat_target the_arc_linux_nat_target
static void fetch_gregs(struct regcache *regcache, int regnum)
void fill_gregset(const struct regcache *regcache, gdb_gregset_t *gregs, int regnum)
#define arc_linux_nat_debug_printf(fmt,...)
void arc_linux_collect_gregset(const struct regset *regset, const struct regcache *regcache, int regnum, void *gregs, size_t size)
void arc_linux_supply_gregset(const struct regset *regset, struct regcache *regcache, int regnum, const void *gregs, size_t size)
void arc_linux_supply_v2_regset(const struct regset *regset, struct regcache *regcache, int regnum, const void *v2_regs, size_t size)
void arc_linux_collect_v2_regset(const struct regset *regset, const struct regcache *regcache, int regnum, void *v2_regs, size_t size)
#define ARC_LINUX_SIZEOF_V2_REGSET
const target_desc * arc_lookup_target_description(const struct arc_arch_features &features)
#define PTRACE_GET_THREAD_AREA
void low_prepare_to_resume(struct lwp_info *lp) override
void store_registers(struct regcache *, int) override
void fetch_registers(struct regcache *, int) override
const struct target_desc * read_description() override
void invalidate(int regnum)
#define ptrace(request, pid, addr, data)
int gdbarch_pc_regnum(struct gdbarch *gdbarch)
GDB_FPREGSET_T gdb_fpregset_t
GDB_GREGSET_T gdb_gregset_t
void add_inf_child_target(inf_child_target *target)
pid_t get_ptrace_pid(ptid_t ptid)
struct linux_nat_target * linux_target
enum register_status regcache_cooked_read_unsigned(struct regcache *regcache, int regnum, ULONGEST *val)
struct regcache * get_thread_regcache(process_stratum_target *target, ptid_t ptid)
void regcache_cooked_write_unsigned(struct regcache *regcache, int regnum, ULONGEST val)
resume_kind last_resume_kind