qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH] Add bootindex support to usb-host and usb-redir


From: Paolo Bonzini
Subject: Re: [Qemu-devel] [PATCH] Add bootindex support to usb-host and usb-redir
Date: Thu, 22 Mar 2012 11:33:52 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:10.0.1) Gecko/20120216 Thunderbird/10.0.1

Il 22/03/2012 10:52, Gerd Hoffmann ha scritto:
> When passing through a usb pendrive seabios will present it in the F12
> boot menu and will happily boot from it.
> 
> This patch adds bootorder support so you can even make it the default
> boot device.
> 
> Signed-off-by: Gerd Hoffmann <address@hidden>
> ---
>  hw/usb/host-linux.c |    3 +++
>  hw/usb/redirect.c   |    3 +++
>  2 files changed, 6 insertions(+), 0 deletions(-)
> 
> diff --git a/hw/usb/host-linux.c b/hw/usb/host-linux.c
> index 72f0306..f3d5a62 100644
> --- a/hw/usb/host-linux.c
> +++ b/hw/usb/host-linux.c
> @@ -117,6 +117,7 @@ typedef struct USBHostDevice {
>      int addr;
>      char port[MAX_PORTLEN];
>      struct USBAutoFilter match;
> +    int32_t bootindex;
>      int seen, errcount;
>  
>      QTAILQ_ENTRY(USBHostDevice) next;
> @@ -1420,6 +1421,7 @@ static int usb_host_initfn(USBDevice *dev)
>      if (s->match.bus_num != 0 && s->match.port != NULL) {
>          usb_host_claim_port(s);
>      }
> +    add_boot_device_path(s->bootindex, &dev->qdev, NULL);
>      return 0;
>  }
>  
> @@ -1435,6 +1437,7 @@ static Property usb_host_dev_properties[] = {
>      DEFINE_PROP_HEX32("vendorid",  USBHostDevice, match.vendor_id,  0),
>      DEFINE_PROP_HEX32("productid", USBHostDevice, match.product_id, 0),
>      DEFINE_PROP_UINT32("isobufs",  USBHostDevice, iso_urb_count,    4),
> +    DEFINE_PROP_INT32("bootindex", USBHostDevice, bootindex,        -1),
>      DEFINE_PROP_END_OF_LIST(),
>  };
>  
> diff --git a/hw/usb/redirect.c b/hw/usb/redirect.c
> index 8e9f175..4288324 100644
> --- a/hw/usb/redirect.c
> +++ b/hw/usb/redirect.c
> @@ -74,6 +74,7 @@ struct USBRedirDevice {
>      CharDriverState *cs;
>      uint8_t debug;
>      char *filter_str;
> +    int32_t bootindex;
>      /* Data passed from chardev the fd_read cb to the usbredirparser read cb 
> */
>      const uint8_t *read_buf;
>      int read_buf_size;
> @@ -923,6 +924,7 @@ static int usbredir_initfn(USBDevice *udev)
>      qemu_chr_add_handlers(dev->cs, usbredir_chardev_can_read,
>                            usbredir_chardev_read, usbredir_chardev_event, 
> dev);
>  
> +    add_boot_device_path(dev->bootindex, &udev->qdev, NULL);
>      return 0;
>  }
>  
> @@ -1452,6 +1454,7 @@ static Property usbredir_properties[] = {
>      DEFINE_PROP_CHR("chardev", USBRedirDevice, cs),
>      DEFINE_PROP_UINT8("debug", USBRedirDevice, debug, 0),
>      DEFINE_PROP_STRING("filter", USBRedirDevice, filter_str),
> +    DEFINE_PROP_INT32("bootindex", USBRedirDevice, bootindex, -1),
>      DEFINE_PROP_END_OF_LIST(),
>  };
>  

That was fast. :)  Looks good, thanks!

Paolo



reply via email to

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