summaryrefslogtreecommitdiff
path: root/overlay/mgdb/gdb
diff options
context:
space:
mode:
Diffstat (limited to 'overlay/mgdb/gdb')
-rw-r--r--overlay/mgdb/gdb/winnt-nat.c30
1 files changed, 30 insertions, 0 deletions
diff --git a/overlay/mgdb/gdb/winnt-nat.c b/overlay/mgdb/gdb/winnt-nat.c
index b6c45bf..154aa43 100644
--- a/overlay/mgdb/gdb/winnt-nat.c
+++ b/overlay/mgdb/gdb/winnt-nat.c
@@ -117,6 +117,34 @@ static char * winnt_pid_to_exec_file (struct target_ops * t, int pid)
return outbuf;
}
+static enum target_xfer_status winnt_xfer_partial(
+ struct target_ops * t,
+ enum target_object object,
+ const char * annex,
+ gdb_byte * readbuf,
+ const gdb_byte * writebuf,
+ ULONGEST offset,
+ ULONGEST len,
+ ULONGEST * nxfered)
+{
+ (void)t;
+ (void)object;
+ (void)annex;
+ (void)offset;
+ (void)len;
+
+ if (readbuf && writebuf)
+ winnt_error("internal error: both readbuf and writebuf are non-null.");
+
+ if (!readbuf && !writebuf)
+ winnt_error("internal error: both readbuf and writebuf are null.");
+
+ if (!nxfered)
+ winnt_error("internal error: nxfered is null.");
+
+ return TARGET_XFER_E_IO;
+}
+
static nfds_t winnt_poll_one_init (struct pollfd * pfds, pid_t pid)
{
winnt_process * pdbg;
@@ -473,6 +501,8 @@ static target_ops * winnt_target_alloc (void)
t->to_pid_to_str = winnt_pid_to_str;
t->to_pid_to_exec_file = winnt_pid_to_exec_file;
+ t->to_xfer_partial = winnt_xfer_partial;
+
x86_use_watchpoints(t);
return ((outbuf = (char *)calloc(1,WINNT_OUTBUF_SIZE)))