From: Gerd Hoffmann <kraxel@redhat.com>
To: Stefan Weil <sw@weilnetz.de>
Cc: QEMU Developer <qemu-devel@nongnu.org>
Subject: Re: [Qemu-devel] [PATCH] usb: Support compilation without poll.h
Date: Fri, 18 Mar 2016 13:20:41 +0100 [thread overview]
Message-ID: <1458303641.6882.33.camel@redhat.com> (raw)
In-Reply-To: <1458159729-683-1-git-send-email-sw@weilnetz.de>
On Mi, 2016-03-16 at 21:22 +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.
>
> Signed-off-by: Stefan Weil <sw@weilnetz.de>
> ---
>
> I did not test whether this USB host code works on Windows,
> but at least it compiles with this hack.
>
> Suggestions for a better fix are welcome.
>
> Regards,
> Stefan
>
> hw/usb/host-libusb.c | 8 ++++++++
> 1 file changed, 8 insertions(+)
>
> diff --git a/hw/usb/host-libusb.c b/hw/usb/host-libusb.c
> index 5e7ec45..139028e 100644
> --- a/hw/usb/host-libusb.c
> +++ b/hw/usb/host-libusb.c
> @@ -34,7 +34,9 @@
> */
>
> #include "qemu/osdep.h"
> +#ifdef CONFIG_PPOLL
> #include <poll.h>
> +#endif
> #include <libusb.h>
>
> #include "qemu-common.h"
> @@ -203,18 +205,24 @@ static const char *err_names[] = {
> static libusb_context *ctx;
> static uint32_t loglevel;
>
> +#ifdef CONFIG_PPOLL
> static void usb_host_handle_fd(void *opaque)
> {
> struct timeval tv = { 0, 0 };
> libusb_handle_events_timeout(ctx, &tv);
> }
> +#endif
>
> static void usb_host_add_fd(int fd, short events, void *user_data)
> {
> +#ifdef CONFIG_PPOLL
> qemu_set_fd_handler(fd,
> (events & POLLIN) ? usb_host_handle_fd : NULL,
> (events & POLLOUT) ? usb_host_handle_fd : NULL,
> ctx);
> +#else
> + g_assert(events == 0);
> +#endif
> }
>
> static void usb_host_del_fd(int fd, void *user_data)
Hmm. I'm wondering how libusb @ windows is notified about pending data.
Probably not using file descriptors but something else ...
I'd suggest to use CONFIG_WIN32 instead of CONFIG_POLL, to make clear
what this is about. You can #ifdef out the whole block with all three
usb_host_*_fd functions, and the libusb call which registers these
callbacks somewhere further down in the code. The later place should
probably get a /* FIXME */ in the #else branch as I expect we need to do
something on windows too.
cheers,
Gerd
prev parent reply other threads:[~2016-03-18 12:20 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-03-16 20:22 [Qemu-devel] [PATCH] usb: Support compilation without poll.h Stefan Weil
2016-03-18 12:20 ` Gerd Hoffmann [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1458303641.6882.33.camel@redhat.com \
--to=kraxel@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=sw@weilnetz.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.