On (Mon) Apr 05 2010 [17:33:38], Paul Brook wrote: > > There might be cases where a few bytes would have been sent out to char > > devices and some not. Currently the return values from qemu_chr_write() > > to char devs are only -1, indicating an error, or the complete length > > of the string passed. > > > > Make 'len' a pointer instead, and indicate how much of the string was > > written. The return value will either be the same as 'len' or a negative > > number indicating an error condition. > > This seems wrong. We should not be getting recoverable errors.
I was thinking of adding a bool to CharDriverState to indicate if EAGAIN should be reported to the writer. This can be conveyed at the time of doing qemu_chr_add_handlers(). It would certainly be beneficial for consumers of virtio-serial to be notified of -EAGAIN so that the guest can be throttled till the chardev catches up with the data being sent. Amit