[Spice-devel] Read data out of the Virtqueue

Charles.Tsai-蔡清海-研究發展部 charles.tsai at cloudena.com
Wed Mar 28 03:06:54 PDT 2012


Alon,

My printer driver can write the printing raw data into virtIO driver. But I cannot see the found the printing raw data in the spice server. For the vdagent, I found the following code segment which is a callback to read the data from the vdi_port. Do I need to add a similar code to read the data from the Virtio?

In Qemu, I do see vmc_write is called when the printer driver writes the printing raw data into the  virtIOdevice.
Consequently, function "spicevmc_red_channel_send_item" should be called to send the payload to the spice client. But I did not see function "spicevmc_red_channel_send_item" is called either. It looks like the printing rawa data is still inside the VirtIO queue. What function I need to add so as to pull the data out of the VirtIO queue?

=======================================================================================
struct SpiceCharDeviceState vdagent_char_device_state = {
    .wakeup = &vdagent_char_device_wakeup,
};


void vdagent_char_device_wakeup(SpiceCharDeviceInstance *sin)
{
    while (read_from_vdi_port());
}


More information about the Spice-devel mailing list