2003-11-06 Andrew Cagney * inftarg.c (child_xfer_partial): New function (init_child_ops): Set "to_xfer_partial". Index: inftarg.c =================================================================== RCS file: /cvs/src/src/gdb/inftarg.c,v retrieving revision 1.18 diff -u -r1.18 inftarg.c --- inftarg.c 21 Sep 2003 01:26:45 -0000 1.18 +++ inftarg.c 6 Nov 2003 22:20:17 -0000 @@ -551,7 +551,45 @@ */ return NULL; } - + +/* Perform a partial transfer to/from the specified object. */ + +static LONGEST +child_xfer_partial (struct target_ops *ops, + enum target_object object, + const char *annex, const void *writebuf, + void *readbuf, ULONGEST offset, LONGEST len) +{ + switch (object) + { + case TARGET_OBJECT_MEMORY: + if (readbuf) + return child_xfer_memory (offset, readbuf, len, 0/*write*/, + NULL, ops); + if (writebuf) + return child_xfer_memory (offset, readbuf, len, 1/*write*/, + NULL, ops); + return -1; + +#if 0 + case TARGET_OBJECT_UNWIND_TABLE: +#ifndef NATIVE_XFER_UNWIND_TABLE +#define NATIVE_XFER_UNWIND_TABLE(OPS,OBJECT,ANNEX,WRITEBUF,READBUF,OFFSET,LEN) (-1) +#endif + return NATIVE_XFER_UNWIND_TABLE (ops, object, annex, writebuf, + readbuf, offset, len); +#endif + +#if 0 + case TARGET_OBJECT_AUXV: + return native_xfer_auxv (PIDGET (inferior_ptid), writebuf, readbuf, + offset, len); +#endif + + default: + return -1; + } +} #if !defined(CHILD_PID_TO_STR) char * @@ -578,6 +616,7 @@ child_ops.to_store_registers = store_inferior_registers; child_ops.to_prepare_to_store = child_prepare_to_store; child_ops.to_xfer_memory = child_xfer_memory; + child_ops.to_xfer_partial = child_xfer_partial; child_ops.to_files_info = child_files_info; child_ops.to_insert_breakpoint = memory_insert_breakpoint; child_ops.to_remove_breakpoint = memory_remove_breakpoint;