diff options
author | Simon Marchi <simon.marchi@ericsson.com> | 2015-06-18 13:12:39 -0400 |
---|---|---|
committer | Simon Marchi <simon.marchi@ericsson.com> | 2015-06-18 13:12:39 -0400 |
commit | 124e13d9e753ef307d6fe478e2cd6dd738de1a0f (patch) | |
tree | 1e3ded1039355e3d4e2e5c3d7df1a591d4b73b6f /gdb/common/rsp-low.h | |
parent | 74bd41ce65c6c2c30ff67519bfc1d00b61826d96 (diff) | |
download | gdb-124e13d9e753ef307d6fe478e2cd6dd738de1a0f.zip gdb-124e13d9e753ef307d6fe478e2cd6dd738de1a0f.tar.gz gdb-124e13d9e753ef307d6fe478e2cd6dd738de1a0f.tar.bz2 |
remote: consider addressable unit size when reading/writing memory
Adapt code in remote.c to take into account addressable unit size when
reading/writing memory.
A few variables are renamed and suffixed with _bytes or _units. This
way, it's more obvious if there is any place where we add or compare
values of different kinds (which would be a mistake).
gdb/ChangeLog:
* common/rsp-low.c (needs_escaping): New.
(remote_escape_output): Add unit_size parameter. Refactor to
support multi-byte addressable units. Rename parameters.
* common/rsp-low.h (remote_escape_output): Add unit_size
parameter and rename others. Update doc.
* remote.c (align_for_efficient_write): New.
(remote_write_bytes_aux): Add unit_size parameter and use it.
Rename some variables. Update doc.
(remote_xfer_partial): Get unit size and use it.
(remote_read_bytes_1): Add unit_size parameter and use it.
Rename some variables. Update doc.
(remote_write_bytes): Same.
(remote_xfer_live_readonly_partial): Same.
(remote_read_bytes): Same.
(remote_flash_write): Update call to remote_write_bytes_aux.
(remote_write_qxfer): Update call to remote_escape_output.
(remote_search_memory): Same.
(remote_hostio_pwrite): Same.
gdb/gdbserver/ChangeLog:
* server.c (write_qxfer_response): Update call to
remote_escape_output.
Diffstat (limited to 'gdb/common/rsp-low.h')
-rw-r--r-- | gdb/common/rsp-low.h | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/gdb/common/rsp-low.h b/gdb/common/rsp-low.h index d62f67e..f45d0ae 100644 --- a/gdb/common/rsp-low.h +++ b/gdb/common/rsp-low.h @@ -59,17 +59,17 @@ extern int hex2bin (const char *hex, gdb_byte *bin, int count); extern int bin2hex (const gdb_byte *bin, char *hex, int count); -/* Convert BUFFER, binary data at least LEN bytes long, into escaped - binary data in OUT_BUF. Set *OUT_LEN to the length of the data - encoded in OUT_BUF, and return the number of bytes in OUT_BUF - (which may be more than *OUT_LEN due to escape characters). The - total number of bytes in the output buffer will be at most - OUT_MAXLEN. This function properly escapes '*', and so is suitable +/* Convert BUFFER, binary data at least LEN_UNITS addressable memory units + long, into escaped binary data in OUT_BUF. Only copy memory units that fit + completely in OUT_BUF. Set *OUT_LEN_UNITS to the number of units from + BUFFER successfully encoded in OUT_BUF, and return the number of bytes used + in OUT_BUF. The total number of bytes in the output buffer will be at most + OUT_MAXLEN_BYTES. This function properly escapes '*', and so is suitable for the server side as well as the client. */ -extern int remote_escape_output (const gdb_byte *buffer, int len, - gdb_byte *out_buf, int *out_len, - int out_maxlen); +extern int remote_escape_output (const gdb_byte *buffer, int len_units, + int unit_size, gdb_byte *out_buf, + int *out_len_units, int out_maxlen_bytes); /* Convert BUFFER, escaped data LEN bytes long, into binary data in OUT_BUF. Return the number of bytes written to OUT_BUF. |