diff options
author | Marcel Moolenaar <marcel@FreeBSD.org> | 2004-12-01 06:40:35 +0000 |
---|---|---|
committer | Marcel Moolenaar <marcel@FreeBSD.org> | 2004-12-01 06:40:35 +0000 |
commit | bcc5241c43307d18ef4cb61b4f98eb624d31367d (patch) | |
tree | 62c9a95681df36f1242efe2fd847059217302039 /sys/amd64/include | |
parent | ba1c3b5304db3cc7a986b81bb39a4853904238f0 (diff) | |
download | src-bcc5241c43307d18ef4cb61b4f98eb624d31367d.tar.gz src-bcc5241c43307d18ef4cb61b4f98eb624d31367d.zip |
Change gdb_cpu_setreg() to not take the value to which to set the
specified register, but a pointer to the in-memory representation of
that value. The reason for this is twofold:
1. Not all registers can be represented by a register_t. In particular
FP registers fall in that category. Passing the new register value
by reference instead of by value makes this point moot.
2. When we receive a G or P packet, both are for writing a register,
the packet will have the register value in target-byte order and
in the memory representation (modulo the fact that bytes are sent
as 2 printable hexadecimal numbers of course). We only need to
decode the packet to have a pointer to the register value.
This change fixes the bug of extracting the register value of the P
packet as a hexadecimal number instead of as a bit array. The quick
(and dirty) fix to bswap the register value in gdb_cpu_setreg() as
it has been added on i386 and amd64 can therefore be removed and has
in fact been that.
Tested on: alpha, amd64, i386, ia64, sparc64
Notes
Notes:
svn path=/head/; revision=138253
Diffstat (limited to 'sys/amd64/include')
-rw-r--r-- | sys/amd64/include/gdb_machdep.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/amd64/include/gdb_machdep.h b/sys/amd64/include/gdb_machdep.h index 458f2f6eb9b5..c2fd8bf198d1 100644 --- a/sys/amd64/include/gdb_machdep.h +++ b/sys/amd64/include/gdb_machdep.h @@ -52,6 +52,6 @@ gdb_cpu_query(void) } void *gdb_cpu_getreg(int, size_t *); -void gdb_cpu_setreg(int, register_t); +void gdb_cpu_setreg(int, void *); #endif /* !_MACHINE_GDB_MACHDEP_H_ */ |