ChangeSet ID: 21376 CVSROOT: /opt/cvs-commit Module name: wine Changes by: julliard@winehq.org 2005/11/21 09:23:49
Modified files: server : trace.c protocol.def mailslot.c include/wine : server_protocol.h dlls/ntdll : file.c dlls/kernel : sync.c
Log message: Fixed handling of mailslot read timeout to avoid compiler warnings.
Patch: http://cvs.winehq.org/patch.py?id=21376
Old revision New revision Changes Path 1.268 1.269 +3 -3 wine/server/trace.c 1.161 1.162 +3 -3 wine/server/protocol.def 1.12 1.13 +2 -3 wine/server/mailslot.c 1.162 1.163 +4 -4 wine/include/wine/server_protocol.h 1.104 1.105 +1 -1 wine/dlls/ntdll/file.c 1.91 1.92 +4 -1 wine/dlls/kernel/sync.c
Index: wine/server/trace.c diff -u -p wine/server/trace.c:1.268 wine/server/trace.c:1.269 --- wine/server/trace.c:1.268 21 Nov 2005 15:23:49 -0000 +++ wine/server/trace.c 21 Nov 2005 15:23:49 -0000 @@ -3052,7 +3052,7 @@ static void dump_create_mailslot_request fprintf( stderr, " access=%08x,", req->access ); fprintf( stderr, " attributes=%08x,", req->attributes ); fprintf( stderr, " max_msgsize=%08x,", req->max_msgsize ); - fprintf( stderr, " read_timeout=%08x,", req->read_timeout ); + fprintf( stderr, " read_timeout=%d,", req->read_timeout ); fprintf( stderr, " name=" ); dump_varargs_unicode_str( cur_size ); } @@ -3080,13 +3080,13 @@ static void dump_set_mailslot_info_reque { fprintf( stderr, " handle=%p,", req->handle ); fprintf( stderr, " flags=%08x,", req->flags ); - fprintf( stderr, " read_timeout=%08x", req->read_timeout ); + fprintf( stderr, " read_timeout=%d", req->read_timeout ); }
static void dump_set_mailslot_info_reply( const struct set_mailslot_info_reply *req ) { fprintf( stderr, " max_msgsize=%08x,", req->max_msgsize ); - fprintf( stderr, " read_timeout=%08x,", req->read_timeout ); + fprintf( stderr, " read_timeout=%d,", req->read_timeout ); fprintf( stderr, " msg_count=%08x,", req->msg_count ); fprintf( stderr, " next_msgsize=%08x", req->next_msgsize ); } Index: wine/server/protocol.def diff -u -p wine/server/protocol.def:1.161 wine/server/protocol.def:1.162 --- wine/server/protocol.def:1.161 21 Nov 2005 15:23:49 -0000 +++ wine/server/protocol.def 21 Nov 2005 15:23:49 -0000 @@ -2475,7 +2475,7 @@ enum message_type unsigned int access; /* wanted access rights */ unsigned int attributes; /* object attributes */ unsigned int max_msgsize; - unsigned int read_timeout; + int read_timeout; VARARG(name,unicode_str); /* mailslot name */ @REPLY obj_handle_t handle; /* handle to the mailslot */ @@ -2497,10 +2497,10 @@ enum message_type @REQ(set_mailslot_info) obj_handle_t handle; /* handle to the mailslot */ unsigned int flags; - unsigned int read_timeout; + int read_timeout; @REPLY unsigned int max_msgsize; - unsigned int read_timeout; + int read_timeout; unsigned int msg_count; unsigned int next_msgsize; @END Index: wine/server/mailslot.c diff -u -p wine/server/mailslot.c:1.12 wine/server/mailslot.c:1.13 --- wine/server/mailslot.c:1.12 21 Nov 2005 15:23:49 -0000 +++ wine/server/mailslot.c 21 Nov 2005 15:23:49 -0000 @@ -56,7 +56,7 @@ struct mailslot struct fd *fd; struct fd *write_fd; unsigned int max_msgsize; - unsigned int read_timeout; + int read_timeout; struct list writers; };
@@ -207,8 +207,7 @@ static void mailslot_queue_async( struct return; }
- if (mailslot->read_timeout != MAILSLOT_WAIT_FOREVER) - timeout = &mailslot->read_timeout; + if (mailslot->read_timeout != -1) timeout = &mailslot->read_timeout;
fd_queue_async_timeout( fd, apc, user, iosb, type, count, timeout ); } Index: wine/include/wine/server_protocol.h diff -u -p wine/include/wine/server_protocol.h:1.162 wine/include/wine/server_protocol.h:1.163 --- wine/include/wine/server_protocol.h:1.162 21 Nov 2005 15:23:50 -0000 +++ wine/include/wine/server_protocol.h 21 Nov 2005 15:23:50 -0000 @@ -3532,7 +3532,7 @@ struct create_mailslot_request unsigned int access; unsigned int attributes; unsigned int max_msgsize; - unsigned int read_timeout; + int read_timeout; /* VARARG(name,unicode_str); */ }; struct create_mailslot_reply @@ -3564,13 +3564,13 @@ struct set_mailslot_info_request struct request_header __header; obj_handle_t handle; unsigned int flags; - unsigned int read_timeout; + int read_timeout; }; struct set_mailslot_info_reply { struct reply_header __header; unsigned int max_msgsize; - unsigned int read_timeout; + int read_timeout; unsigned int msg_count; unsigned int next_msgsize; }; @@ -4208,6 +4208,6 @@ union generic_reply struct set_mailslot_info_reply set_mailslot_info_reply; };
-#define SERVER_PROTOCOL_VERSION 198 +#define SERVER_PROTOCOL_VERSION 199
#endif /* __WINE_WINE_SERVER_PROTOCOL_H */ Index: wine/dlls/ntdll/file.c diff -u -p wine/dlls/ntdll/file.c:1.104 wine/dlls/ntdll/file.c:1.105 --- wine/dlls/ntdll/file.c:1.104 21 Nov 2005 15:23:50 -0000 +++ wine/dlls/ntdll/file.c 21 Nov 2005 15:23:50 -0000 @@ -2061,7 +2061,7 @@ NTSTATUS WINAPI NtCreateMailslotFile(PHA req->access = DesiredAccess; req->attributes = (attr) ? attr->Attributes : 0; req->max_msgsize = MaxMessageSize; - req->read_timeout = TimeOut->QuadPart / -10000; + req->read_timeout = (TimeOut->QuadPart <= 0) ? TimeOut->QuadPart / -10000 : -1; wine_server_add_data( req, attr->ObjectName->Buffer + 4, attr->ObjectName->Length - 4*sizeof(WCHAR) ); ret = wine_server_call( req ); Index: wine/dlls/kernel/sync.c diff -u -p wine/dlls/kernel/sync.c:1.91 wine/dlls/kernel/sync.c:1.92 --- wine/dlls/kernel/sync.c:1.91 21 Nov 2005 15:23:50 -0000 +++ wine/dlls/kernel/sync.c 21 Nov 2005 15:23:50 -0000 @@ -1672,7 +1672,10 @@ HANDLE WINAPI CreateMailslotW( LPCWSTR l attr.SecurityDescriptor = sa ? sa->lpSecurityDescriptor : NULL; attr.SecurityQualityOfService = NULL;
- timeout.QuadPart = (ULONGLONG) lReadTimeout * -10000; + if (lReadTimeout != MAILSLOT_WAIT_FOREVER) + timeout.QuadPart = (ULONGLONG) lReadTimeout * -10000; + else + timeout.QuadPart = ((LONGLONG)0x7fffffff << 32) | 0xffffffff;
status = NtCreateMailslotFile( &handle, GENERIC_READ | GENERIC_WRITE, &attr, &iosb, 0, 0, nMaxMessageSize, &timeout );