[ovs-dev] [PATCH] pool-loop: windows poll_block implementation

Ben Pfaff blp at nicira.com
Wed Dec 18 17:59:02 UTC 2013


On Tue, Dec 17, 2013 at 05:11:05PM -0800, Linda Sun wrote:
> GCC reports:
> 
>     ../lib/poll-loop.c: In function 'poll_block':
>     ../lib/poll-loop.c:304:16: error: unused variable 'i' [-Werror=unused-variable]
>     ../lib/timeval.c: In function 'time_poll':
>     ../lib/timeval.c:235:56: error: unused parameter 'handles' [-Werror=unused-parameter]
> 
> <LS> Sorry didn't realize that warning doesn't fail the build and I
> didn't check the make log.  I'll fix these.

Thanks!

A lot of developers put "--enable-Werror" in their configure flags, so
that any warning fails the build.  (I understand that the Windows port
might be early enough that this would prevent building.)

>     ../lib/stream-ssl.c: In function 'ssl_run_wait':
>     ../lib/stream-ssl.c:694:66: error: macro "poll_fd_wait" requires 3 arguments, but only 2 given
>     ../lib/stream-ssl.c:694:9: error: 'poll_fd_wait' undeclared (first use in this function)
>     ../lib/stream-ssl.c:694:9: note: each undeclared identifier is reported only once for each function it appears in
>     ../lib/stream-ssl.c: In function 'ssl_wait':
>     ../lib/stream-ssl.c:710:47: error: macro "poll_fd_wait" requires 3 arguments, but only 2 given
>     ../lib/stream-ssl.c:710:17: error: 'poll_fd_wait' undeclared (first use in this function)
>     ../lib/stream-ssl.c:717:70: error: macro "poll_fd_wait" requires 3 arguments, but only 2 given
>     ../lib/stream-ssl.c:728:70: error: macro "poll_fd_wait" requires 3 arguments, but only 2 given
>     ../lib/stream-ssl.c: In function 'pssl_wait':
>     ../lib/stream-ssl.c:854:34: error: macro "poll_fd_wait" requires 3 arguments, but only 2 given
>     ../lib/stream-ssl.c:854:5: error: 'poll_fd_wait' undeclared (first use in this function)
>     ../lib/stream-ssl.c:853:26: error: unused variable 'pssl' [-Werror=unused-variable]
>     ../lib/stream-ssl.c: At top level:
>     ../lib/stream-ssl.c:188:1: error: 'want_to_poll_events' defined but not used [-Werror=unused-function]
> 
> <LS> How do I make with the ssl option?  I completely missed these.

If OpenSSL is available at configure time, then OVS will build and link
against it.

If it is a lot of trouble for you to build against OpenSSL, then feel
free to just fix up stream-ssl as best you can without being able to
compile it, and I will fix up anything you miss myself.

> wevent is a uint32_t but poll_fd_wait_at() compares it to NULL.
> 
> <LS> actually wevent is a HANDLE on windows.  What's your preference,
> define HANDLE on unix platform, pass a void * and cast it?  I'm ok
> either way.

Ah.

For now let's try defining HANDLE as a pointer type, yes.

> Can we avoids allocating memory for wevents entirely outside of
> Windows platforms?
> 
> <LS> passing NULL OK with you?

Passing null to what?

> It looks like time_poll() is trying to return a Windows error number
> as if it were an errno value.  I think that's going to cause trouble.
> Please figure out some way to return an appropriate errno value.
> 
> <LS> I have a win_error_to_errno() function in dpif-windows.c.  I can
> through that in.  It's a work in progress, but it has a few windows
> errors converted to errno so far.

I think we'll eventually need a general-purpose conversion function.  I
guess that this particular function can fail in a limited number of
ways, so I'd be OK at least for now with just returning a fixed error,
such as EINVAL, if WaitForMultipleObjects returns a genuine error.



More information about the dev mailing list