Bypass epoll_ctl, epoll_create and epoll_wait functions on MSVC.

Signed-off-by: Alin Gabriel Serdean <aserd...@cloudbasesolutions.com>
---
 lib/dpif-linux.c | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

diff --git a/lib/dpif-linux.c b/lib/dpif-linux.c
index bc284ab..7cf6eff 100644
--- a/lib/dpif-linux.c
+++ b/lib/dpif-linux.c
@@ -411,11 +411,13 @@ vport_add_channels(struct dpif_linux *dpif, odp_port_t 
port_no,
     for (i = 0; i < dpif->n_handlers; i++) {
         struct dpif_handler *handler = &dpif->handlers[i];
 
+#ifndef _WIN32
         if (epoll_ctl(handler->epoll_fd, EPOLL_CTL_ADD, nl_sock_fd(socksp[i]),
                       &event) < 0) {
             error = errno;
             goto error;
         }
+#endif
         dpif->handlers[i].channels[port_idx].sock = socksp[i];
         dpif->handlers[i].channels[port_idx].last_poll = LLONG_MIN;
     }
@@ -424,8 +426,10 @@ vport_add_channels(struct dpif_linux *dpif, odp_port_t 
port_no,
 
 error:
     for (j = 0; j < i; j++) {
+#ifndef _WIN32
         epoll_ctl(dpif->handlers[j].epoll_fd, EPOLL_CTL_DEL,
                   nl_sock_fd(socksp[j]), NULL);
+#endif
         dpif->handlers[j].channels[port_idx].sock = NULL;
     }
 
@@ -452,8 +456,10 @@ vport_del_channels(struct dpif_linux *dpif, odp_port_t 
port_no)
     for (i = 0; i < dpif->n_handlers; i++) {
         struct dpif_handler *handler = &dpif->handlers[i];
 
+#ifndef _WIN32
         epoll_ctl(handler->epoll_fd, EPOLL_CTL_DEL,
                   nl_sock_fd(handler->channels[port_idx].sock), NULL);
+#endif
         nl_sock_destroy(handler->channels[port_idx].sock);
         handler->channels[port_idx].sock = NULL;
         handler->event_offset = handler->n_events = 0;
@@ -1533,6 +1539,7 @@ dpif_linux_refresh_channels(struct dpif_linux *dpif, 
uint32_t n_handlers)
         for (i = 0; i < n_handlers; i++) {
             struct dpif_handler *handler = &dpif->handlers[i];
 
+#ifndef _WIN32
             handler->epoll_fd = epoll_create(10);
             if (handler->epoll_fd < 0) {
                 size_t j;
@@ -1545,6 +1552,7 @@ dpif_linux_refresh_channels(struct dpif_linux *dpif, 
uint32_t n_handlers)
 
                 return errno;
             }
+#endif
         }
         dpif->n_handlers = n_handlers;
     }
@@ -1769,6 +1777,7 @@ dpif_linux_recv__(struct dpif_linux *dpif, uint32_t 
handler_id,
     }
 
     handler = &dpif->handlers[handler_id];
+#ifndef _WIN32
     if (handler->event_offset >= handler->n_events) {
         int retval;
 
@@ -1791,6 +1800,12 @@ dpif_linux_recv__(struct dpif_linux *dpif, uint32_t 
handler_id,
         struct dpif_channel *ch = &dpif->handlers[handler_id].channels[idx];
 
         handler->event_offset++;
+#else
+       for (int idx = 0; idx < dpif->uc_array_size; ++idx)
+       {
+               struct dpif_channel *ch = 
&dpif->handlers[handler_id].channels[idx];
+
+#endif
 
         for (;;) {
             int dp_ifindex;
-- 
1.9.0.msysgit.0
_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to