From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:47625) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SAfLH-00074P-SW for qemu-devel@nongnu.org; Thu, 22 Mar 2012 06:34:09 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1SAfLA-00046S-QZ for qemu-devel@nongnu.org; Thu, 22 Mar 2012 06:34:03 -0400 Received: from mail-we0-f173.google.com ([74.125.82.173]:53767) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SAfLA-00046F-Hp for qemu-devel@nongnu.org; Thu, 22 Mar 2012 06:33:56 -0400 Received: by werp12 with SMTP id p12so1963514wer.4 for ; Thu, 22 Mar 2012 03:33:54 -0700 (PDT) Sender: Paolo Bonzini Message-ID: <4F6B0010.208@redhat.com> Date: Thu, 22 Mar 2012 11:33:52 +0100 From: Paolo Bonzini MIME-Version: 1.0 References: <1332409945-25378-1-git-send-email-kraxel@redhat.com> In-Reply-To: <1332409945-25378-1-git-send-email-kraxel@redhat.com> Content-Type: text/plain; charset=ISO-8859-15 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH] Add bootindex support to usb-host and usb-redir List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Gerd Hoffmann Cc: qemu-devel@nongnu.org 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 > --- > 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