usb: Support compilation without poll.h

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>
Message-id: 1458630800-10088-1-git-send-email-sw@weilnetz.de
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
master
Stefan Weil 2016-03-22 08:13:20 +01:00 committed by Gerd Hoffmann
parent 1f66fe5778
commit a277c3e094
1 changed files with 12 additions and 1 deletions

View File

@ -34,7 +34,9 @@
*/ */
#include "qemu/osdep.h" #include "qemu/osdep.h"
#ifndef CONFIG_WIN32
#include <poll.h> #include <poll.h>
#endif
#include <libusb.h> #include <libusb.h>
#include "qapi/error.h" #include "qapi/error.h"
@ -204,6 +206,8 @@ static const char *err_names[] = {
static libusb_context *ctx; static libusb_context *ctx;
static uint32_t loglevel; static uint32_t loglevel;
#ifndef CONFIG_WIN32
static void usb_host_handle_fd(void *opaque) static void usb_host_handle_fd(void *opaque)
{ {
struct timeval tv = { 0, 0 }; struct timeval tv = { 0, 0 };
@ -223,9 +227,13 @@ static void usb_host_del_fd(int fd, void *user_data)
qemu_set_fd_handler(fd, NULL, NULL, NULL); qemu_set_fd_handler(fd, NULL, NULL, NULL);
} }
#endif /* !CONFIG_WIN32 */
static int usb_host_init(void) static int usb_host_init(void)
{ {
#ifndef CONFIG_WIN32
const struct libusb_pollfd **poll; const struct libusb_pollfd **poll;
#endif
int i, rc; int i, rc;
if (ctx) { if (ctx) {
@ -236,7 +244,9 @@ static int usb_host_init(void)
return -1; return -1;
} }
libusb_set_debug(ctx, loglevel); libusb_set_debug(ctx, loglevel);
#ifdef CONFIG_WIN32
/* FIXME: add support for Windows. */
#else
libusb_set_pollfd_notifiers(ctx, usb_host_add_fd, libusb_set_pollfd_notifiers(ctx, usb_host_add_fd,
usb_host_del_fd, usb_host_del_fd,
ctx); ctx);
@ -247,6 +257,7 @@ static int usb_host_init(void)
} }
} }
free(poll); free(poll);
#endif
return 0; return 0;
} }