On 3/6/23 09:03, Marc-André Lureau wrote:


On Mon, Mar 6, 2023 at 5:59 PM Stefan Berger <stef...@linux.ibm.com 
<mailto:stef...@linux.ibm.com>> wrote:



    On 2/21/23 07:47, marcandre.lur...@redhat.com 
<mailto:marcandre.lur...@redhat.com> wrote:
     > From: Marc-André Lureau <marcandre.lur...@redhat.com 
<mailto:marcandre.lur...@redhat.com>>
     >
     > We are about to make the QEMU socket API use file-descriptor space only,
     > but libslirp gives us SOCKET as fd, still.
     >
     > Signed-off-by: Marc-André Lureau <marcandre.lur...@redhat.com 
<mailto:marcandre.lur...@redhat.com>>
     > ---
     >   net/slirp.c | 10 +++++++---
     >   1 file changed, 7 insertions(+), 3 deletions(-)
     >
     > diff --git a/net/slirp.c b/net/slirp.c
     > index a7c35778a6..c33b3e02e7 100644
     > --- a/net/slirp.c
     > +++ b/net/slirp.c
     > @@ -251,16 +251,20 @@ static void net_slirp_register_poll_fd(int fd, 
void *opaque)

    Shouldn't this int fd rather be a SOCKET s instead? Or do you get compiler 
warnings then?


Yes, you would get compiler warnings, because the "int fd" argument is from the 
slirp API, whether it is posix or win32.


Right, this is shared code.


     >   #ifdef WIN32
     >       AioContext *ctxt = qemu_get_aio_context();
     >
     > -    qemu_socket_select(fd, event_notifier_get_handle(&ctxt->notifier),
     > +    if (WSAEventSelect(fd, event_notifier_get_handle(&ctxt->notifier),
     >                          FD_READ | FD_ACCEPT | FD_CLOSE |
     > -                       FD_CONNECT | FD_WRITE | FD_OOB, NULL);
     > +                       FD_CONNECT | FD_WRITE | FD_OOB) != 0) {
     > +        error_setg_win32(&error_warn, WSAGetLastError(), "failed to 
WSAEventSelect()");
     > +    }
     >   #endif
     >   }
     > >   static void net_slirp_unregister_poll_fd(int fd, void *opaque)

    Same here.

     >   {
     >   #ifdef WIN32
     > -    qemu_socket_unselect(fd, NULL);
     > +    if (WSAEventSelect(fd, NULL, 0) != 0) {
     > +        error_setg_win32(&error_warn, WSAGetLastError(), "failed to 
WSAEventSelect()");
     > +    }
     >   #endif
     >   }
     >


Reply via email to