Message ID | 1458630800-10088-1-git-send-email-sw@weilnetz.de (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Di, 2016-03-22 at 08:13 +0100, Stefan Weil wrote: > This is a hack to support compilation with Mingw-w64 which provides > a libusb-1.0 package, but no poll.h. Added to usb patch queue.
On 22 March 2016 at 07:13, Stefan Weil <sw@weilnetz.de> wrote: > This is a hack to support compilation with Mingw-w64 which provides > a libusb-1.0 package, but no poll.h. > > Signed-off-by: Stefan Weil <sw@weilnetz.de> > --- > > v2: Modified after feedback from Gerd. > static int usb_host_init(void) > { > +#ifndef CONFIG_WIN32 > const struct libusb_pollfd **poll; > +#endif > int i, rc; > > if (ctx) { > @@ -235,7 +243,9 @@ static int usb_host_init(void) > return -1; > } > libusb_set_debug(ctx, loglevel); > - > +#ifdef CONFIG_WIN32 > + /* FIXME: add support for Windows. */ > +#else > libusb_set_pollfd_notifiers(ctx, usb_host_add_fd, > usb_host_del_fd, > ctx); > @@ -246,6 +256,7 @@ static int usb_host_init(void) > } > } > free(poll); > +#endif > return 0; Would it make more sense to just disable this functionality entirely rather than leaving it compiling but not working? thanks -- PMM
On Mi, 2016-05-11 at 10:14 +0100, Peter Maydell wrote: > On 22 March 2016 at 07:13, Stefan Weil <sw@weilnetz.de> wrote: > > This is a hack to support compilation with Mingw-w64 which provides > > a libusb-1.0 package, but no poll.h. > Would it make more sense to just disable this functionality > entirely rather than leaving it compiling but not working? It should be possible to get things working on windows, given that a libusb port exists now. /me hopes that having things at least compile might encourage people to fill the missing bits. I guess we'll have to either add some windows-specific bits for event handling (simliar to win_chr_init() in qemu-char.c) or do timer-based polling. cheers, Gerd
diff --git a/hw/usb/host-libusb.c b/hw/usb/host-libusb.c index 5e7ec45..236bb2a 100644 --- a/hw/usb/host-libusb.c +++ b/hw/usb/host-libusb.c @@ -34,7 +34,9 @@ */ #include "qemu/osdep.h" +#ifndef CONFIG_WIN32 #include <poll.h> +#endif #include <libusb.h> #include "qemu-common.h" @@ -203,6 +205,8 @@ static const char *err_names[] = { static libusb_context *ctx; static uint32_t loglevel; +#ifndef CONFIG_WIN32 + static void usb_host_handle_fd(void *opaque) { struct timeval tv = { 0, 0 }; @@ -222,9 +226,13 @@ static void usb_host_del_fd(int fd, void *user_data) qemu_set_fd_handler(fd, NULL, NULL, NULL); } +#endif /* !CONFIG_WIN32 */ + static int usb_host_init(void) { +#ifndef CONFIG_WIN32 const struct libusb_pollfd **poll; +#endif int i, rc; if (ctx) { @@ -235,7 +243,9 @@ static int usb_host_init(void) return -1; } libusb_set_debug(ctx, loglevel); - +#ifdef CONFIG_WIN32 + /* FIXME: add support for Windows. */ +#else libusb_set_pollfd_notifiers(ctx, usb_host_add_fd, usb_host_del_fd, ctx); @@ -246,6 +256,7 @@ static int usb_host_init(void) } } free(poll); +#endif return 0; }
This is a hack to support compilation with Mingw-w64 which provides a libusb-1.0 package, but no poll.h. Signed-off-by: Stefan Weil <sw@weilnetz.de> --- v2: Modified after feedback from Gerd. hw/usb/host-libusb.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-)