[Top][All Lists]
[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