return ops->beneath->to_xfer_partial (ops->beneath, object, annex, readbuf, writebuf, offset, len);
return target_xfer_partial (ops->beneath, object, annex, readbuf, writebuf, offset, len);
default_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_MEMORY      && ops->to_xfer_memory != NULL)    /* If available, fall back to the target's "to_xfer_memory"       method.  */    {      int xfered = -1;      errno = 0;      if (writebuf != NULL)	{	  void *buffer = xmalloc (len);	  struct cleanup *cleanup = make_cleanup (xfree, buffer);	  memcpy (buffer, writebuf, len);	  xfered = ops->to_xfer_memory (offset, buffer, len, 1/*write*/, NULL,					ops);	  do_cleanups (cleanup);	}      if (readbuf != NULL)	xfered = ops->to_xfer_memory (offset, readbuf, len, 0/*read*/, NULL,				      ops);      if (xfered > 0)	return xfered;      else if (xfered == 0 && errno == 0)	/* "to_xfer_memory" uses 0, cross checked against ERRNO as one           indication of an error.  */	return 0;      else	return -1;    }  else if (ops->beneath != NULL)    return ops->beneath->to_xfer_partial (ops->beneath, object, annex,					  readbuf, writebuf, offset, len);  else    return -1;}