This is the mail archive of the gdb-patches@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH/RFA] regcache_raw_write_signed and regcache_raw_write_unsigned


To supplement regcache_raw_read_signed and regcache_raw_read_unsigned.
They would be might convenient for me as a replacement for
write_register.

OK to check this in?
Yep!

Andrew


Index: ChangeLog
from Mark Kettenis <kettenis@gnu.org>

* regcache.c (regcache_raw_write_signed,
regcache_raw_write_unsigned): New functions.
* regcache.h (regcache_raw_write_signed,
regcache_raw_write_unsigned): New prototypes.

Index: regcache.c
===================================================================
RCS file: /cvs/src/src/gdb/regcache.c,v
retrieving revision 1.54
diff -u -p -r1.54 regcache.c
--- regcache.c 19 Aug 2002 00:43:41 -0000 1.54
+++ regcache.c 24 Aug 2002 15:00:26 -0000
@@ -693,6 +693,29 @@ regcache_raw_read_unsigned (struct regca
}
void
+regcache_raw_write_signed (struct regcache *regcache, int regnum, LONGEST val)
+{
+ void *buf;
+ gdb_assert (regcache != NULL);
+ gdb_assert (regnum >=0 && regnum < regcache->descr->nr_raw_registers);
+ buf = alloca (regcache->descr->sizeof_register[regnum]);
+ store_signed_integer (buf, regcache->descr->sizeof_register[regnum], val);
+ regcache_raw_write (regcache, regnum, buf);
+}
+
+void
+regcache_raw_write_unsigned (struct regcache *regcache, int regnum,
+ ULONGEST val)
+{
+ void *buf;
+ gdb_assert (regcache != NULL);
+ gdb_assert (regnum >=0 && regnum < regcache->descr->nr_raw_registers);
+ buf = alloca (regcache->descr->sizeof_register[regnum]);
+ store_unsigned_integer (buf, regcache->descr->sizeof_register[regnum], val);
+ regcache_raw_write (regcache, regnum, buf);
+}
+
+void
read_register_gen (int regnum, char *buf)
{
gdb_assert (current_regcache != NULL);
Index: regcache.h
===================================================================
RCS file: /cvs/src/src/gdb/regcache.h,v
retrieving revision 1.15
diff -u -p -r1.15 regcache.h
--- regcache.h 19 Aug 2002 00:43:41 -0000 1.15
+++ regcache.h 24 Aug 2002 15:00:26 -0000
@@ -42,6 +42,10 @@ extern void regcache_raw_read_signed (st
int regnum, LONGEST *val);
extern void regcache_raw_read_unsigned (struct regcache *regcache,
int regnum, ULONGEST *val);
+extern void regcache_raw_write_signed (struct regcache *regcache,
+ int regnum, LONGEST val);
+extern void regcache_raw_write_unsigned (struct regcache *regcache,
+ int regnum, ULONGEST val);
/* Partial transfer of a raw registers. These perform read, modify,
write style operations. */




Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]