* remote.c (remote_xfer_partial): Handle TARGET_OBJECT_MEMORY.

This commit is contained in:
Daniel Jacobowitz 2004-10-05 19:52:04 +00:00
parent 737ffd4f18
commit 21e3b9b91a
2 changed files with 29 additions and 0 deletions

View file

@ -1,3 +1,7 @@
2004-10-05 Daniel Jacobowitz <dan@debian.org>
* remote.c (remote_xfer_partial): Handle TARGET_OBJECT_MEMORY.
2004-10-05 Andrew Cagney <cagney@gnu.org>
* version.in: Bump to version 6.2.50_YYYY-MM-DD-cvs.

View file

@ -4864,6 +4864,31 @@ remote_xfer_partial (struct target_ops *ops, enum target_object object,
char *p2 = &buf2[0];
char query_type;
/* Handle memory using remote_xfer_memory. */
if (object == TARGET_OBJECT_MEMORY)
{
int xfered;
errno = 0;
if (writebuf != NULL)
{
void *buffer = xmalloc (len);
struct cleanup *cleanup = make_cleanup (xfree, buffer);
memcpy (buffer, writebuf, len);
xfered = remote_xfer_memory (offset, buffer, len, 1, NULL, ops);
do_cleanups (cleanup);
}
else
xfered = remote_xfer_memory (offset, readbuf, len, 0, NULL, ops);
if (xfered > 0)
return xfered;
else if (xfered == 0 && errno == 0)
return 0;
else
return -1;
}
/* Only handle reads. */
if (writebuf != NULL || readbuf == NULL)
return -1;