On 11.03.2012 19:00, Paolo Bonzini wrote: > Il 11/03/2012 02:49, Michael Tokarev ha scritto: >> Rename do_sendv_recvv() to qemu_sendv_recvv(), >> change its last arg (do_send) from int to bool, >> export it in qemu-common.h, and made the two >> callers of it (qemu_sendv() and qemu_recvv()) >> to be trivial #defines just adding 5th arg. > > GCC is smart and knows how to do tail calls in many cases. Thus, I > don't see very much the point of this patch.
The point is to allow qemu_sendv_recvv() to be used directly, see the next patch [PATCHv2 6/7] cleanup qemu_co_sendv(), qemu_co_recvv() and friends for an example, and see my previous attempt to address all this with bdrv_* methods where reads and writes are implemented in common functions and are split back on layer boundary, just to go to a common routine on the next layer. Or worse yet, repeating exactly the same code like in this 6/7 patch for qemu_co_recvv() and qemu_co_sendv(). It is not about tail calls at all. Thanks, /mjt