qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] about the usbredirect lib problem run under Windows


From: zhou link
Subject: [Qemu-devel] about the usbredirect lib problem run under Windows
Date: Sun, 28 Apr 2013 10:09:52 +0800

Hans de Goede  & Gerd Hoffmann:


theses  days   i  try  to migrate the usbredir  lib to  Windows

the  usbredir-0.6/usbredirserver/usbredirserver.c  connect to qemu's redirect channel and spicec connect to the guest

the usbredirserver  works smooth in Linux,  spicec show the usb disk works well.


when i compile usbredir on Windows,  usbredirserver connect and open usb device ok,

but qemu's guest(windows xp) in spicec can detect the usb device,  but only show unkown usb device,

i open the device in hardware manager, and  found pid and vid is all 000.


i debug the qemu's redirect  code(hw/usb/hcd_ehci.c),  and found the diff between  linux's and windows's  usbredirserver
is here:

-----------------------------------------------------------------------------------------
static int ehci_execute(EHCIPacket *p, const char *action)  
...............
   p->pid = ehci_get_pid(&p->qtd);
    p->queue->last_pid = p->pid;
    endp = get_field(p->queue->qh.epchar, QH_EPCHAR_EP);   ///On windows it always return 0
                                                                                         ///while Linux it will return 0, 1 or 2
    ep = usb_ep_get(p->queue->dev, p->pid, endp);

-------------------------------------------------------------------------------------------

i found the qh.epchar read from dma,  but can not find who write it,  
can you  explain it the flow of the function.
how  doest usbredirect   control the dma ?

thanks you tow  very much.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]