fd_xxx

Francois Gouget fgouget at free.fr
Fri Aug 24 11:33:52 CDT 2001


   This is in preparation of the upcoming winsock.h fix.


Changelog:

 * include/winsock.h,
   dlls/winsock/socket.c,
   server/sock.c

   Rename the regular WS_FD_XXX macros to FD_XXX
   Rename the Wine specific WS_FD_XXX macros to FD_WINE_XXX



--
Francois Gouget         fgouget at free.fr        http://fgouget.free.fr/
     The software said it requires Win95 or better, so I installed Linux.
-------------- next part --------------
Index: include/winsock.h
===================================================================
RCS file: /home/wine/wine/include/winsock.h,v
retrieving revision 1.33
diff -u -r1.33 winsock.h
--- include/winsock.h	2001/05/14 19:20:30	1.33
+++ include/winsock.h	2001/08/24 13:29:42
@@ -264,25 +264,22 @@
 /*
  * Define flags to be used with the WSAAsyncSelect() call.
  */
-#define FD_READ            WS_FD_READ
-#define FD_WRITE           WS_FD_WRITE
-#define FD_OOB             WS_FD_OOB
-#define FD_ACCEPT          WS_FD_ACCEPT
-#define FD_CONNECT         WS_FD_CONNECT
-#define FD_CLOSE           WS_FD_CLOSE
-#define WS_FD_READ         0x0001
-#define WS_FD_WRITE        0x0002
-#define WS_FD_OOB          0x0004
-#define WS_FD_ACCEPT       0x0008
-#define WS_FD_CONNECT      0x0010
-#define WS_FD_CLOSE        0x0020
+#define FD_READ                    0x00000001
+#define FD_WRITE                   0x00000002
+#define FD_OOB                     0x00000004
+#define FD_ACCEPT                  0x00000008
+#define FD_CONNECT                 0x00000010
+#define FD_CLOSE                   0x00000020
 
-#define WS_FD_LISTENING	   0x10000000	/* internal per-socket flags */
-#define WS_FD_NONBLOCKING  0x20000000
-#define WS_FD_CONNECTED	   0x40000000
-#define WS_FD_RAW	   0x80000000
-#define WS_FD_SERVEVENT	   0x01000000
-#define WS_FD_INTERNAL	   0xFFFF0000
+/* internal per-socket flags */
+#ifdef __WINE__
+#define FD_WINE_LISTENING          0x10000000
+#define FD_WINE_NONBLOCKING        0x20000000
+#define FD_WINE_CONNECTED          0x40000000
+#define FD_WINE_RAW                0x80000000
+#define FD_WINE_SERVEVENT          0x01000000
+#define FD_WINE_INTERNAL           0xFFFF0000
+#endif
 
 /*
  * All Windows Sockets error constants are biased by WSABASEERR from
Index: dlls/winsock/socket.c
===================================================================
RCS file: /home/wine/wine/dlls/winsock/socket.c,v
retrieving revision 1.57
diff -u -r1.57 socket.c
--- dlls/winsock/socket.c	2001/08/23 23:25:33	1.57
+++ dlls/winsock/socket.c	2001/08/24 13:29:34
@@ -252,7 +252,7 @@
         req->s_event = 0;
         req->c_event = 0;
         SERVER_CALL();
-        ret = (req->state & WS_FD_NONBLOCKING) == 0;
+        ret = (req->state & FD_WINE_NONBLOCKING) == 0;
     }
     SERVER_END_REQ;
     return ret;
@@ -743,7 +743,7 @@
     else
 	ERR("accept queue too small\n");
     /* now signal our AsyncSelect handler */
-    _enable_event(s, WS_FD_SERVEVENT, 0, 0);
+    _enable_event(s, FD_WINE_SERVEVENT, 0, 0);
 }
 
 /**********************************************************************/
@@ -801,7 +801,7 @@
 #endif
 	    } else SetLastError(wsaErrno());
 	    close(fd);
-	    if (omask & WS_FD_SERVEVENT)
+	    if (omask & FD_WINE_SERVEVENT)
 		WSOCK32_async_accept(s, as);
 	    return as;
 	}
@@ -960,8 +960,8 @@
     {
 	/* tell wineserver that a connection is in progress */
 	_enable_event(s, FD_CONNECT|FD_READ|FD_WRITE,
-		      WS_FD_CONNECT|WS_FD_READ|WS_FD_WRITE,
-		      WS_FD_CONNECTED|WS_FD_LISTENING);
+		      FD_CONNECT|FD_READ|FD_WRITE,
+		      FD_WINE_CONNECTED|FD_WINE_LISTENING);
 	if (_is_blocking(s))
 	{
 	    int result;
@@ -997,8 +997,8 @@
 	free(name);
 #endif
     _enable_event(s, FD_CONNECT|FD_READ|FD_WRITE,
-		  WS_FD_CONNECTED|WS_FD_READ|WS_FD_WRITE,
-		  WS_FD_CONNECT|WS_FD_LISTENING);
+		  FD_WINE_CONNECTED|FD_READ|FD_WRITE,
+		  FD_CONNECT|FD_WINE_LISTENING);
     return 0; 
 }
 
@@ -1550,9 +1550,9 @@
 		}
 		close(fd);
 		if (*argp)
-		    _enable_event(s, 0, WS_FD_NONBLOCKING, 0);
+		    _enable_event(s, 0, FD_WINE_NONBLOCKING, 0);
 		else
-		    _enable_event(s, 0, 0, WS_FD_NONBLOCKING);
+		    _enable_event(s, 0, 0, FD_WINE_NONBLOCKING);
 		return 0;
 
 	case WS_SIOCATMARK: 
@@ -1610,8 +1610,8 @@
 	{
 	    close(fd);
 	    _enable_event(s, FD_ACCEPT,
-			  WS_FD_LISTENING,
-			  WS_FD_CONNECT|WS_FD_CONNECTED);
+			  FD_WINE_LISTENING,
+			  FD_CONNECT|FD_WINE_CONNECTED);
 	    return 0;
 	}
 	SetLastError(wsaErrno());
@@ -2096,14 +2096,14 @@
 	    switch( how )
 	    {
 		case 0: /* drop receives */
-			_enable_event(s, 0, 0, WS_FD_READ);
+			_enable_event(s, 0, 0, FD_READ);
 #ifdef SHUT_RD
 			how = SHUT_RD;
 #endif
 			break;
 
 		case 1: /* drop sends */
-			_enable_event(s, 0, 0, WS_FD_WRITE);
+			_enable_event(s, 0, 0, FD_WRITE);
 #ifdef SHUT_WR
 			how = SHUT_WR;
 #endif
@@ -2122,7 +2122,7 @@
 	{
 	    if( how > 1 ) 
 	    {
-		_enable_event(s, 0, 0, WS_FD_CONNECTED|WS_FD_LISTENING);
+		_enable_event(s, 0, 0, FD_WINE_CONNECTED|FD_WINE_LISTENING);
 	    }
 	    close(fd);
 	    return 0;
@@ -2660,12 +2660,12 @@
     if ( (GetLastError() == WSAENOTSOCK) || (GetLastError() == WSAEINVAL) )
     {
 	/* orphaned event (socket closed or something) */
-	pmask = WS_FD_SERVEVENT;
+	pmask = FD_WINE_SERVEVENT;
 	orphan = TRUE;
     }
 
     /* check for accepted sockets that needs to inherit WSAAsyncSelect */
-    if (pmask & WS_FD_SERVEVENT) {
+    if (pmask & FD_WINE_SERVEVENT) {
 	int q;
 	for (q=0; q<WS_ACCEPT_QUEUE; q++)
 	    if (accept_old[q] == info->sock) {
@@ -2677,7 +2677,7 @@
 		    WSAAsyncSelect(as, info->hWnd, info->uMsg, info->lEvent);
 		}
 	    }
-	pmask &= ~WS_FD_SERVEVENT;
+	pmask &= ~FD_WINE_SERVEVENT;
     }
     /* dispatch network events */
     for (i=0; i<FD_MAX_EVENTS; i++)
@@ -2723,7 +2723,7 @@
 		info->lEvent = lEvent;
 		info->service = SERVICE_AddObject( hObj, WINSOCK_DoAsyncEvent, (ULONG_PTR)info );
 
-		err = WSAEventSelect( s, hObj, lEvent | WS_FD_SERVEVENT );
+		err = WSAEventSelect( s, hObj, lEvent | FD_WINE_SERVEVENT );
 		if (err) {
 		    /* SERVICE_Delete closes the event object */
 		    SERVICE_Delete( info->service );
Index: server/sock.c
===================================================================
RCS file: /home/wine/wine/server/sock.c,v
retrieving revision 1.19
diff -u -r1.19 sock.c
--- server/sock.c	2001/08/23 23:25:33	1.19
+++ server/sock.c	2001/08/24 13:29:55
@@ -84,7 +84,7 @@
 
     if (sock->obj.select == -1) {
         /* previously unconnected socket, is this reselect supposed to connect it? */
-        if (!(sock->state & ~WS_FD_NONBLOCKING)) return;
+        if (!(sock->state & ~FD_WINE_NONBLOCKING)) return;
         /* ok, it is, attach it to the wineserver's main poll loop */
         add_select_user( &sock->obj );
     }
@@ -116,14 +116,14 @@
     assert( sock->obj.ops == &sock_ops );
     if (debug_level)
         fprintf(stderr, "socket %d select event: %x\n", sock->obj.fd, event);
-    if (sock->state & WS_FD_CONNECT)
+    if (sock->state & FD_CONNECT)
     {
         /* connecting */
         if (event & POLLOUT)
         {
             /* we got connected */
-            sock->state |= WS_FD_CONNECTED|WS_FD_READ|WS_FD_WRITE;
-            sock->state &= ~WS_FD_CONNECT;
+            sock->state |= FD_WINE_CONNECTED|FD_READ|FD_WRITE;
+            sock->state &= ~FD_CONNECT;
             sock->pmask |= FD_CONNECT;
             sock->errors[FD_CONNECT_BIT] = 0;
             if (debug_level)
@@ -132,14 +132,14 @@
         else if (event & (POLLERR|POLLHUP))
         {
             /* we didn't get connected? */
-            sock->state &= ~WS_FD_CONNECT;
+            sock->state &= ~FD_CONNECT;
             sock->pmask |= FD_CONNECT;
             sock->errors[FD_CONNECT_BIT] = sock_error( sock->obj.fd );
             if (debug_level)
                 fprintf(stderr, "socket %d connection failure\n", sock->obj.fd);
         }
     } else
-    if (sock->state & WS_FD_LISTENING)
+    if (sock->state & FD_WINE_LISTENING)
     {
         /* listening */
         if (event & POLLIN)
@@ -193,10 +193,10 @@
                 fprintf(stderr, "socket %d got OOB data\n", sock->obj.fd);
         }
         if (((event & POLLERR) || ((event & (POLLIN|POLLHUP)) == POLLHUP))
-            && (sock->state & (WS_FD_READ|WS_FD_WRITE))) {
+            && (sock->state & (FD_READ|FD_WRITE))) {
             /* socket closing */
             sock->errors[FD_CLOSE_BIT] = sock_error( sock->obj.fd );
-            sock->state &= ~(WS_FD_CONNECTED|WS_FD_READ|WS_FD_WRITE);
+            sock->state &= ~(FD_WINE_CONNECTED|FD_READ|FD_WRITE);
             sock->pmask |= FD_CLOSE;
             if (debug_level)
                 fprintf(stderr, "socket %d aborted by error %d\n",
@@ -247,10 +247,10 @@
 
     assert( obj->ops == &sock_ops );
 
-    if (sock->state & WS_FD_CONNECT)
+    if (sock->state & FD_CONNECT)
         /* connecting, wait for writable */
         return POLLOUT;
-    if (sock->state & WS_FD_LISTENING)
+    if (sock->state & FD_WINE_LISTENING)
         /* listening, wait for readable */
         return (sock->hmask & FD_ACCEPT) ? 0 : POLLIN;
 
@@ -277,7 +277,7 @@
         /* if the service thread was waiting for the event object,
          * we should now signal it, to let the service thread
          * object detect that it is now orphaned... */
-        if (sock->mask & WS_FD_SERVEVENT)
+        if (sock->mask & FD_WINE_SERVEVENT)
             set_event( sock->event );
         /* we're through with it */
         release_object( sock->event );
@@ -300,7 +300,7 @@
     fcntl(sockfd, F_SETFL, O_NONBLOCK); /* make socket nonblocking */
     if (!(sock = alloc_object( &sock_ops, -1 ))) return NULL;
     sock->obj.fd = sockfd;
-    sock->state = (type != SOCK_STREAM) ? (WS_FD_READ|WS_FD_WRITE) : 0;
+    sock->state = (type != SOCK_STREAM) ? (FD_READ|FD_WRITE) : 0;
     sock->mask  = 0;
     sock->hmask = 0;
     sock->pmask = 0;
@@ -343,14 +343,14 @@
     /* newly created socket gets the same properties of the listening socket */
     fcntl(acceptfd, F_SETFL, O_NONBLOCK); /* make socket nonblocking */
     acceptsock->obj.fd = acceptfd;
-    acceptsock->state  = WS_FD_CONNECTED|WS_FD_READ|WS_FD_WRITE;
-    if (sock->state & WS_FD_NONBLOCKING)
-        acceptsock->state |= WS_FD_NONBLOCKING; 
+    acceptsock->state  = FD_WINE_CONNECTED|FD_READ|FD_WRITE;
+    if (sock->state & FD_WINE_NONBLOCKING)
+        acceptsock->state |= FD_WINE_NONBLOCKING;
     acceptsock->mask   = sock->mask;
     acceptsock->hmask  = 0;
     acceptsock->pmask  = 0;
     acceptsock->event  = NULL;
-    if (sock->event && !(sock->mask & WS_FD_SERVEVENT))
+    if (sock->event && !(sock->mask & FD_WINE_SERVEVENT))
         acceptsock->event = (struct event *)grab_object( sock->event );
 
     sock_reselect( acceptsock );
@@ -475,7 +475,7 @@
     if (debug_level && sock->event) fprintf(stderr, "event ptr: %p\n", sock->event);
     sock_reselect( sock );
     if (sock->mask)
-        sock->state |= WS_FD_NONBLOCKING;
+        sock->state |= FD_WINE_NONBLOCKING;
 
     /* if a network event is pending, signal the event object 
        it is possible that FD_CONNECT or FD_ACCEPT network events has happened
@@ -486,7 +486,7 @@
     
     if (oevent)
     {
-    	if ((oevent != sock->event) && (omask & WS_FD_SERVEVENT))
+        if ((oevent != sock->event) && (omask & FD_WINE_SERVEVENT))
             /* if the service thread was waiting for the old event object,
              * we should now signal it, to let the service thread
              * object detect that it is now orphaned... */
@@ -559,9 +559,9 @@
     sock_reselect( sock );
 
     /* service trigger */
-    if (req->mask & WS_FD_SERVEVENT)
+    if (req->mask & FD_WINE_SERVEVENT)
     {
-        sock->pmask |= WS_FD_SERVEVENT;
+        sock->pmask |= FD_WINE_SERVEVENT;
         if (sock->event) {
             if (debug_level) fprintf(stderr, "signalling service event ptr %p\n", sock->event);
             set_event(sock->event);


More information about the wine-patches mailing list