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

Re: [Xen-devel] usb device haven't save&&restore in ioemu-remote



James Song wrote:

> usb device haven't save&&restore in ioemu-remote.
> patch for that:



Could you please rediff the patch against the current qemu-xen-unstable?
You'll find that portions of this patch are already in, in particular
there is no need for:  
 

>  void usb_ohci_init_pxa(target_phys_addr_t base, int num_ports, int devfn,
> diff -r 21508368a9db tools/ioemu-remote/hw/usb-uhci.c
> --- a/tools/ioemu-remote/hw/usb-uhci.c Fri Feb 20 21:14:55 2009 +0800
> +++ b/tools/ioemu-remote/hw/usb-uhci.c Wed Mar 04 11:55:39 2009 +0800
> @@ -902,6 +902,57 @@
>      register_ioport_read(addr, 32, 1, uhci_ioport_readb, s);
>  }
>  
> +void uhci_usb_save(QEMUFile *f, void *opaque)
> +{
> +    int i;
> +    UHCIState *s = (UHCIState*)opaque;
> +
> +    pci_device_save(&s->dev,f);
> +
> +    qemu_put_be16s(f, &s->cmd);
> +    qemu_put_be16s(f, &s->status);
> +    qemu_put_be16s(f, &s->intr);
> +    qemu_put_be16s(f, &s->frnum);
> +    qemu_put_be32s(f, &s->fl_base_addr);
> +    qemu_put_8s(f, &s->sof_timing);
> +    qemu_put_8s(f, &s->status2);
> +
> +    for(i = 0; i < NB_PORTS; i++) {
> +        qemu_put_be16s(f, &s->ports[i].ctrl);
> +    }
> +
> +    qemu_put_timer(f, s->frame_timer);
> +}
> +
> +int uhci_usb_load(QEMUFile *f, void *opaque, int version_id)
> +{
> +    int i,ret;
> +    UHCIState *s = (UHCIState*)opaque;
> +
> +    if (version_id != 1)
> +        return -EINVAL;
> +
> +    ret = pci_device_load(&s->dev, f);
> +    if (ret < 0)
> +        return ret;
> +
> +    qemu_get_be16s(f, &s->cmd);
> +    qemu_get_be16s(f, &s->status);
> +    qemu_get_be16s(f, &s->intr);
> +    qemu_get_be16s(f, &s->frnum);
> +    qemu_get_be32s(f, &s->fl_base_addr);
> +    qemu_get_8s(f, &s->sof_timing);
> +    qemu_get_8s(f, &s->status2);
> +
> +    for(i = 0; i < NB_PORTS; i++) {
> +        qemu_get_be16s(f, &s->ports[i].ctrl);
> +    }
> +
> +    qemu_get_timer(f, s->frame_timer);
> +    
> +    return 0;
> +}
> +
>  void usb_uhci_piix3_init(PCIBus *bus, int devfn)
>  {
>      UHCIState *s;
> @@ -935,6 +986,7 @@
>         to rely on this.  */
>      pci_register_io_region(&s->dev, 4, 0x20,
>                             PCI_ADDRESS_SPACE_IO, uhci_map);
> +    register_savevm("UHCI_usb_controller", 0, 1, uhci_usb_save,
> uhci_usb_load, s);
>  }
>  
>  void usb_uhci_piix4_init(PCIBus *bus, int devfn)
> @@ -970,4 +1022,5 @@
>         to rely on this.  */
>      pci_register_io_region(&s->dev, 4, 0x20,
>                             PCI_ADDRESS_SPACE_IO, uhci_map);
> +    register_savevm("UHCI_usb_controller", 0, 1, uhci_usb_save,
> uhci_usb_load, s);
>  }




_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.