[PATCH 2/5] fbsd-nat: Use regset supply/collect methods.

John Baldwin
2022-07-08T01:03:54Z

fbsd-nat includes various helper routines for fetching and storing
register sets via ptrace where the register set is described by a
regset. These helper routines directly invoke the
supply/collect_regset regcache methods which doesn't permit a regset
to provide custom logic when fetching or storing a register set.
Instead, just use the function pointers from the struct regset
directly.
---
gdb/fbsd-nat.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/gdb/fbsd-nat.c b/gdb/fbsd-nat.c
index 281b034b115..9d7383ac0ab 100644
--- a/gdb/fbsd-nat.c
+++ b/gdb/fbsd-nat.c
@@ -1744,7 +1744,7 @@ fbsd_nat_target::fetch_register_set (struct regcache *regcache, int regnum,
if (ptrace (fetch_op, pid, (PTRACE_TYPE_ARG3) regs, 0) == -1)
perror_with_name (_("Couldn't get registers"));

- regcache->supply_regset (regset, regnum, regs, size);
+ regset->supply_regset (regset, regcache, regnum, regs, size);
return true;
}
return false;
@@ -1768,7 +1768,7 @@ fbsd_nat_target::store_register_set (struct regcache *regcache, int regnum,
if (ptrace (fetch_op, pid, (PTRACE_TYPE_ARG3) regs, 0) == -1)
perror_with_name (_("Couldn't get registers"));

- regcache->collect_regset (regset, regnum, regs, size);
+ regset->collect_regset (regset, regcache, regnum, regs, size);

if (ptrace (store_op, pid, (PTRACE_TYPE_ARG3) regs, 0) == -1)
perror_with_name (_("Couldn't write registers"));
@@ -1813,7 +1813,7 @@ fbsd_nat_target::fetch_regset (struct regcache *regcache, int regnum, int note,
if (ptrace (PT_GETREGSET, pid, (PTRACE_TYPE_ARG3) &iov, note) == -1)
perror_with_name (_("Couldn't get registers"));

- regcache->supply_regset (regset, regnum, regs, size);
+ regset->supply_regset (regset, regcache, regnum, regs, size);
return true;
}
return false;
@@ -1838,7 +1838,7 @@ fbsd_nat_target::store_regset (struct regcache *regcache, int regnum, int note,
if (ptrace (PT_GETREGSET, pid, (PTRACE_TYPE_ARG3) &iov, note) == -1)
perror_with_name (_("Couldn't get registers"));

- regcache->collect_regset (regset, regnum, regs, size);
+ regset->collect_regset (regset, regcache, regnum, regs, size);

if (ptrace (PT_SETREGSET, pid, (PTRACE_TYPE_ARG3) &iov, note) == -1)
perror_with_name (_("Couldn't write registers"));
--
2.36.1