aboutsummaryrefslogtreecommitdiff
path: root/gdb/regcache.h
diff options
context:
space:
mode:
Diffstat (limited to 'gdb/regcache.h')
-rw-r--r--gdb/regcache.h26
1 files changed, 23 insertions, 3 deletions
diff --git a/gdb/regcache.h b/gdb/regcache.h
index 1dbba5c..2b2717f 100644
--- a/gdb/regcache.h
+++ b/gdb/regcache.h
@@ -375,12 +375,32 @@ public:
void cooked_write_part (int regnum, int offset, int len,
const gdb_byte *buf);
- void supply_regset (const struct regset *regset,
+ /* Transfer a set of registers (as described by REGSET) between
+ REGCACHE and BUF. If REGNUM == -1, transfer all registers
+ belonging to the regset, otherwise just the register numbered
+ REGNUM. The REGSET's 'regmap' field must point to an array of
+ 'struct regcache_map_entry'. The valid register numbers in each
+ entry in 'struct regcache_map_entry' are offset by REGBASE. */
+
+ void supply_regset (const struct regset *regset, int regbase,
int regnum, const void *buf, size_t size);
+ void collect_regset (const struct regset *regset, int regbase, int regnum,
+ void *buf, size_t size) const;
+
+ /* Same as the above, but with REGBASE == 0. */
+
+ void supply_regset (const struct regset *regset,
+ int regnum, const void *buf, size_t size)
+ {
+ supply_regset (regset, 0, regnum, buf, size);
+ }
void collect_regset (const struct regset *regset, int regnum,
- void *buf, size_t size) const;
+ void *buf, size_t size) const
+ {
+ collect_regset (regset, 0, regnum, buf, size);
+ }
/* Return REGCACHE's ptid. */
@@ -419,7 +439,7 @@ private:
/* Transfer a single or all registers belonging to a certain register
set to or from a buffer. This is the main worker function for
regcache_supply_regset and regcache_collect_regset. */
- void transfer_regset (const struct regset *regset,
+ void transfer_regset (const struct regset *regset, int regbase,
struct regcache *out_regcache,
int regnum, const gdb_byte *in_buf,
gdb_byte *out_buf, size_t size) const;