26#include "elf/common.h"
30#include <sys/ptrace.h>
60 const elf_greg_t *regp = *gregs;
100 const prfpregset_t *fpregs;
103 fpbuf = { .fpregs = fpregs };
111 i++, fpbuf.buf += flen)
121 else if (
regnum == RISCV_CSR_FCSR_REGNUM)
142 elf_greg_t *regp = *gregs;
171 prfpregset_t *fpregs;
174 fpbuf = { .fpregs = fpregs };
182 i++, fpbuf.buf += flen)
192 else if (
regnum == RISCV_CSR_FCSR_REGNUM)
228 iov.iov_base = ®s;
229 iov.iov_len =
sizeof (regs);
233 perror_with_name (_(
"Couldn't get registers"));
240 || (
regnum == RISCV_CSR_FCSR_REGNUM)
246 iov.iov_base = ®s;
249 gdb_assert (iov.iov_len <= sizeof (regs));
253 perror_with_name (_(
"Couldn't get registers"));
258 if ((
regnum == RISCV_CSR_MISA_REGNUM)
285 iov.iov_base = ®s;
286 iov.iov_len =
sizeof (regs);
290 perror_with_name (_(
"Couldn't get registers"));
297 perror_with_name (_(
"Couldn't set registers"));
303 || (
regnum == RISCV_CSR_FCSR_REGNUM)
309 iov.iov_base = ®s;
312 gdb_assert (iov.iov_len <= sizeof (regs));
316 perror_with_name (_(
"Couldn't get registers"));
323 perror_with_name (_(
"Couldn't set registers"));
void raw_collect(int regnum, void *buf) const override
void raw_supply(int regnum, const void *buf) override
void raw_supply_zeroed(int regnum)
const struct target_desc * read_description() override
void fetch_registers(struct regcache *regcache, int regnum) override
void store_registers(struct regcache *regcache, int regnum) override
#define ptrace(request, pid, addr, data)
void add_inf_child_target(inf_child_target *target)
pid_t get_ptrace_pid(ptid_t ptid)
struct linux_nat_target * linux_target
int register_size(struct gdbarch *gdbarch, int regnum)
static riscv_linux_nat_target the_riscv_linux_nat_target
void fill_fpregset(const struct regcache *regcache, prfpregset_t *fpregs, int regnum)
static void supply_gregset_regnum(struct regcache *regcache, const prgregset_t *gregs, int regnum)
void fill_gregset(const struct regcache *regcache, prgregset_t *gregs, int regnum)
void supply_gregset(struct regcache *regcache, const prgregset_t *gregs)
static void supply_fpregset_regnum(struct regcache *regcache, const prfpregset_t *fpregs, int regnum)
void _initialize_riscv_linux_nat()
void supply_fpregset(struct regcache *regcache, const prfpregset_t *fpregs)
struct riscv_gdbarch_features riscv_linux_read_features(int tid)
const target_desc * riscv_lookup_target_description(const struct riscv_gdbarch_features features)
target_ops * beneath() const
virtual const struct target_desc * read_description() TARGET_DEFAULT_RETURN(NULL)