forked from Imagelibrary/binutils-gdb
* gregset.h (struct regcache): Add forward declaration.
(supply_gregset): Add REGCACHE parameter, make GREGS const. (supply_fpregset): Add REGCACHE parameter, make FPREGS const. (supply_fpxregset): Add REGCACHE parameter, make FPXREGS const. (fill_gregset): Add REGCACHE parameter. (fill_fpregset): Likewise. (fill_fpxregset): Likewise. Update all definitions accordingly: * alphabsd-nat.c, alpha-linux-nat.c, alpha-nat.c, amd64-linux-nat.c, arm-linux-nat.c, hppa-linux-nat.c, i386gnu-nat.c, i386-linux-nat.c, i386-sol2-nat.c, i386v4-nat.c, ia64-linux-nat.c, irix5-nat.c, m32r-linux-nat.c, m68klinux-nat.c, mips-linux-nat.c, ppc-linux-nat.c, s390-nat.c, sparc64-linux-nat.c, sparc-linux-nat.c, sparc-sol2-nat.c (supply_gregset): Add REGCACHE parameter, use it instead of current_regcache. Make GREGSETP parameter const, adapt casts. (supply_fpregset): Add REGCACHE parameter, use it instead of current_regcache. Make FPREGSETP parameter const, adapt casts. (fill_gregset): Add REGCACHE parameter, use it instead of current_regcache. (fill_fpregset): Likewise. Update all callers to pass in current_regcache as the new argument: * core-regset.c: Include "regcache.h". (fetch_core_registers): Update supply_gregset,and supply_fpregset calls. * procfs.c: Include "regcache.h". (procfs_fetch_registers): Update supply_gregset, supply_fpregset calls. (procfs_store_registers): Update fill_gregset, fill_fpregset calls. (procfs_do_thread_registers): Likewise. (procfs_make_note_section): Likewise. * proc-service.c: Include "regcache.h". (ps_lgetregs): Update fill_gregset call. (ps_lsetregs): Update supply_gregset call. (ps_lgetfpregs): Update fill_fpregset call. (ps_lsetfpregs): Update supply_fpregset call. * sol-thread.c (sol_thread_fetch_registers): Update supply_gregset, supply_fpregset calls. (sol_thread_store_registers): Update fill_gregset, fill_fpregset calls. (ps_lgetregs): Update fill_gregset call. (ps_lsetregs): Update supply_gregset call. (ps_lgetfpregs): Update fill_fpregset call. (ps_lsetfpregs): Update supply_fpregset call. * linux-nat.c (linux_nat_do_thread_registers): Update fill_gregset, fill_fpregset, and fill_fpxregset calls. * i386-linux-nat.c (fetch_regs): Update supply_gregset call. (store_regs): Update fill_gregset call. (fetch_fpregs): Update supply_fpregset call. (store_fpregs): Update fill_fpregset call. (fetch_fpxregs): Update supply_fpxregset call. (store_fpxregs): Update fill_fpxregset call. * m32r-linux-nat.c (fetch_regs): Update supply_gregset call. (store_regs): Update fill_gregset call. * m68klinux-nat.c (fetch_regs): Update supply_gregset call. (store_regs): Update fill_gregset call. (fetch_fpregs): Update supply_fpregset call. (store_fpregs): Update fill_fpregset call. (fetch_core_registers): Update supply_gregset, supply_fpregset calls. * s390-nat.c (fetch_regs): Update supply_gregset call. (store_regs): Update fill_gregset call. (fetch_fpregs): Update supply_fpregset call. (store_fpregs): Update fill_fpregset call. * Makefile.in (core-regset.o, procfs.o, proc-service.o): Update dependencies.
This commit is contained in:
@@ -64,53 +64,53 @@
|
||||
/* Fill GDB's register array with the general-purpose register values
|
||||
in *REGP. */
|
||||
void
|
||||
supply_gregset (gregset_t *regp)
|
||||
supply_gregset (struct regcache *regcache, const gregset_t *regp)
|
||||
{
|
||||
int i;
|
||||
for (i = 0; i < S390_NUM_REGS; i++)
|
||||
if (regmap_gregset[i] != -1)
|
||||
regcache_raw_supply (current_regcache, i,
|
||||
(char *)regp + regmap_gregset[i] + SUBOFF (i));
|
||||
regcache_raw_supply (regcache, i,
|
||||
(const char *)regp + regmap_gregset[i] + SUBOFF (i));
|
||||
}
|
||||
|
||||
/* Fill register REGNO (if it is a general-purpose register) in
|
||||
*REGP with the value in GDB's register array. If REGNO is -1,
|
||||
do this for all registers. */
|
||||
void
|
||||
fill_gregset (gregset_t *regp, int regno)
|
||||
fill_gregset (const struct regcache *regcache, gregset_t *regp, int regno)
|
||||
{
|
||||
int i;
|
||||
for (i = 0; i < S390_NUM_REGS; i++)
|
||||
if (regmap_gregset[i] != -1)
|
||||
if (regno == -1 || regno == i)
|
||||
regcache_raw_collect (current_regcache, i,
|
||||
regcache_raw_collect (regcache, i,
|
||||
(char *)regp + regmap_gregset[i] + SUBOFF (i));
|
||||
}
|
||||
|
||||
/* Fill GDB's register array with the floating-point register values
|
||||
in *REGP. */
|
||||
void
|
||||
supply_fpregset (fpregset_t *regp)
|
||||
supply_fpregset (struct regcache *regcache, const fpregset_t *regp)
|
||||
{
|
||||
int i;
|
||||
for (i = 0; i < S390_NUM_REGS; i++)
|
||||
if (regmap_fpregset[i] != -1)
|
||||
regcache_raw_supply (current_regcache, i,
|
||||
((char *)regp) + regmap_fpregset[i]);
|
||||
regcache_raw_supply (regcache, i,
|
||||
(const char *)regp + regmap_fpregset[i]);
|
||||
}
|
||||
|
||||
/* Fill register REGNO (if it is a general-purpose register) in
|
||||
*REGP with the value in GDB's register array. If REGNO is -1,
|
||||
do this for all registers. */
|
||||
void
|
||||
fill_fpregset (fpregset_t *regp, int regno)
|
||||
fill_fpregset (const struct regcache *regcache, fpregset_t *regp, int regno)
|
||||
{
|
||||
int i;
|
||||
for (i = 0; i < S390_NUM_REGS; i++)
|
||||
if (regmap_fpregset[i] != -1)
|
||||
if (regno == -1 || regno == i)
|
||||
regcache_raw_collect (current_regcache, i,
|
||||
((char *)regp) + regmap_fpregset[i]);
|
||||
regcache_raw_collect (regcache, i,
|
||||
(char *)regp + regmap_fpregset[i]);
|
||||
}
|
||||
|
||||
/* Find the TID for the current inferior thread to use with ptrace. */
|
||||
@@ -139,7 +139,7 @@ fetch_regs (int tid)
|
||||
if (ptrace (PTRACE_PEEKUSR_AREA, tid, (long) &parea) < 0)
|
||||
perror_with_name (_("Couldn't get registers"));
|
||||
|
||||
supply_gregset (®s);
|
||||
supply_gregset (current_regcache, (const gregset_t *) ®s);
|
||||
}
|
||||
|
||||
/* Store all valid general-purpose registers in GDB's register cache
|
||||
@@ -156,7 +156,7 @@ store_regs (int tid, int regnum)
|
||||
if (ptrace (PTRACE_PEEKUSR_AREA, tid, (long) &parea) < 0)
|
||||
perror_with_name (_("Couldn't get registers"));
|
||||
|
||||
fill_gregset (®s, regnum);
|
||||
fill_gregset (current_regcache, ®s, regnum);
|
||||
|
||||
if (ptrace (PTRACE_POKEUSR_AREA, tid, (long) &parea) < 0)
|
||||
perror_with_name (_("Couldn't write registers"));
|
||||
@@ -176,7 +176,7 @@ fetch_fpregs (int tid)
|
||||
if (ptrace (PTRACE_PEEKUSR_AREA, tid, (long) &parea) < 0)
|
||||
perror_with_name (_("Couldn't get floating point status"));
|
||||
|
||||
supply_fpregset (&fpregs);
|
||||
supply_fpregset (current_regcache, (const fpregset_t *) &fpregs);
|
||||
}
|
||||
|
||||
/* Store all valid floating-point registers in GDB's register cache
|
||||
@@ -193,7 +193,7 @@ store_fpregs (int tid, int regnum)
|
||||
if (ptrace (PTRACE_PEEKUSR_AREA, tid, (long) &parea) < 0)
|
||||
perror_with_name (_("Couldn't get floating point status"));
|
||||
|
||||
fill_fpregset (&fpregs, regnum);
|
||||
fill_fpregset (current_regcache, &fpregs, regnum);
|
||||
|
||||
if (ptrace (PTRACE_POKEUSR_AREA, tid, (long) &parea) < 0)
|
||||
perror_with_name (_("Couldn't write floating point status"));
|
||||
|
||||
Reference in New Issue
Block a user