From: Mark Kettenis Date: Mon, 29 Nov 2004 08:41:56 +0000 (+0000) Subject: * sparc-nat.c (inf_ptrace_xfer_partial): New variable. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=cbfc58d1256ae92102a3b1e10e0698db095eea5c;p=binutils-gdb.git * sparc-nat.c (inf_ptrace_xfer_partial): New variable. (sparc_xfer_partial): New function. (sparc_target): Save value of to_xfer_partial from ptrace vector. Set to_xfer_partial. --- diff --git a/gdb/ChangeLog b/gdb/ChangeLog index b7c605df3b9..14835cd0143 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,10 @@ 2004-11-29 Mark Kettenis + * sparc-nat.c (inf_ptrace_xfer_partial): New variable. + (sparc_xfer_partial): New function. + (sparc_target): Save value of to_xfer_partial from ptrace vector. + Set to_xfer_partial. + * fork-child.c (fork_inferior): Fork instead of vfork if PRE_TRACE_FUN is non-null. diff --git a/gdb/sparc-nat.c b/gdb/sparc-nat.c index a3836ce892e..4bd7b725384 100644 --- a/gdb/sparc-nat.c +++ b/gdb/sparc-nat.c @@ -305,6 +305,23 @@ sparc_xfer_wcookie (struct target_ops *ops, enum target_object object, memcpy (readbuf, buf + offset, len); return len; } + +LONGEST (*inf_ptrace_xfer_partial) (struct target_ops *, enum target_object, + const char *, void *, const void *, + ULONGEST, LONGEST); + +static LONGEST +sparc_xfer_partial (struct target_ops *ops, enum target_object object, + const char *annex, void *readbuf, const void *writebuf, + ULONGEST offset, LONGEST len) +{ + if (object == TARGET_OBJECT_WCOOKIE) + return sparc_xfer_wcookie (ops, object, annex, readbuf, writebuf, + offset, len); + + return inf_ptrace_xfer_partial (ops, object, annex, readbuf, writebuf, + offset, len); +} /* Create a prototype generic SPARC target. The client can override it with local methods. */ @@ -317,6 +334,8 @@ sparc_target (void) t = inf_ptrace_target (); t->to_fetch_registers = fetch_inferior_registers; t->to_store_registers = store_inferior_registers; + inf_ptrace_xfer_partial = t->to_xfer_partial; + t->to_xfer_partial = sparc_xfer_partial; return t; }