static void sparc64obsd_supply_gregset (const struct regset *regset, struct regcache *regcache, int regnum, const void *gregs, size_t len) { const void *fpregs = (char *)gregs + 288; if (len < 832) { sparc64_supply_gregset (&sparc64obsd_gregmap, regcache, regnum, gregs); return; } sparc64_supply_gregset (&sparc64obsd_core_gregmap, regcache, regnum, gregs); sparc64_supply_fpregset (&sparc64_bsd_fpregmap, regcache, regnum, fpregs); }
static void sparc64_linux_supply_core_gregset (const struct regset *regset, struct regcache *regcache, int regnum, const void *gregs, size_t len) { sparc64_supply_gregset (&sparc64_linux_core_gregset, regcache, regnum, gregs); }
static void sparc64fbsd_supply_gregset (const struct regset *regset, struct regcache *regcache, int regnum, const void *gregs, size_t len) { sparc64_supply_gregset (&sparc64fbsd_gregmap, regcache, regnum, gregs); }
static void sparc64nbsd_supply_gregset (const struct regset *regset, struct regcache *regcache, int regnum, const void *gregs, size_t len) { sparc64_supply_gregset (regset->descr, regcache, regnum, gregs); }
static void sparc64obsd_supply_gregset (const struct regset *regset, struct regcache *regcache, int regnum, const void *gregs, size_t len) { const char *regs = gregs; sparc64_supply_gregset (regset->descr, regcache, regnum, regs); sparc64_supply_fpregset (regcache, regnum, regs + 288); }
static void sparc64nbsd_supply_gregset (const struct sparc_gregset *gregset, struct regcache *regcache, int regnum, const void *gregs) { int sparc32 = (gdbarch_ptr_bit (get_regcache_arch (regcache)) == 32); if (sparc32) sparc32_supply_gregset (&sparc32nbsd_gregset, regcache, regnum, gregs); else sparc64_supply_gregset (&sparc64nbsd_gregset, regcache, regnum, gregs); }
void supply_gregset (struct regcache *regcache, const prgregset_t *gregs) { sparc64_supply_gregset (sparc_gregset, regcache, -1, gregs); }