CVS: winex/include/wine server.h, 1.13, 1.14 server_protocol.h, 1.47, 1.48

[email protected] 31 Jul 2007 17:59:18 -0000
Newsgroups gmane.comp.emulators.winex.cvs
Message-ID <[email protected]>
Subject: winex/include/wine server.h,1.13,1.14 server_protocol.h,1.47,1.48Update of /var/lib/cvsd/cvsroot/winex/include/wine
In directory agravaine:/tmp/cvs-serv24328/include/wine

Modified Files:
	server.h server_protocol.h 
Log Message:

Partially implement IO completion ports to the point that they can be used as task queues (ie, not associated with a file handle). Still to be done:
- finish thread accounting for blocking
- implement associating a file handle with an IO completion port
- modify relevant functions to send notifications to an associated IO completion port
- lots of testing of corner cases



Index: server.h
===================================================================
RCS file: /var/lib/cvsd/cvsroot/winex/include/wine/server.h,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -d -r1.13 -r1.14
--- server.h	27 Mar 2007 17:22:09 -0000	1.13
+++ server.h	31 Jul 2007 17:59:16 -0000	1.14
@@ -125,5 +125,6 @@
 extern void CLIENT_InitThread(void);
 extern void CLIENT_BootDone( int debug_level );
 extern int CLIENT_IsBootThread(void);
+extern int wait_server_reply (const void *cookie);
 
 #endif  /* __WINE_WINE_SERVER_H */

Index: server_protocol.h
===================================================================
RCS file: /var/lib/cvsd/cvsroot/winex/include/wine/server_protocol.h,v
retrieving revision 1.47
retrieving revision 1.48
diff -u -d -r1.47 -r1.48
--- server_protocol.h	30 Mar 2007 18:51:32 -0000	1.47
+++ server_protocol.h	31 Jul 2007 17:59:16 -0000	1.48
@@ -2910,6 +2910,64 @@
 };
 
 
+struct create_io_completion_request
+{
+    struct request_header __header;
+    unsigned int num_threads;
+};
+struct create_io_completion_reply
+{
+    struct reply_header __header;
+    handle_t     handle;
+};
+
+
+struct set_io_completion_request
+{
+    struct request_header __header;
+    handle_t     handle;
+    void*        completion_key;
+    void*        overlapped;
+    unsigned int num_bytes;
+};
+struct set_io_completion_reply
+{
+    struct reply_header __header;
+};
+
+/* Notify wineserver that we're ready to receive a new task, and immediately
+   return if one is available and given to us */
+struct remove_io_completion_request
+{
+    struct request_header __header;
+    handle_t     handle;
+    void*        cookie;
+    int          select_flags;
+    int          sec;
+    int          usec;
+};
+struct remove_io_completion_reply
+{
+    struct reply_header __header;
+    void*        completion_key;
+    void*        overlapped;
+    unsigned int num_bytes;
+};
+
+
+struct retrieve_assigned_io_completion_request
+{
+    struct request_header __header;
+    handle_t     handle;
+};
+struct retrieve_assigned_io_completion_reply
+{
+    struct reply_header __header;
+    void*        completion_key;
+    void*        overlapped;
+    unsigned int num_bytes;
+};
+
 
 enum request
 {
@@ -3082,6 +3140,10 @@
     REQ_get_cdrom_eject_fd_list, /* 166*/
     REQ_add_cdrom_device_info, /* 167*/
     REQ_open_token, /* 168*/
+    REQ_create_io_completion, /* 169*/
+    REQ_set_io_completion, /* 170*/
+    REQ_remove_io_completion, /* 171*/
+    REQ_retrieve_assigned_io_completion, /* 172*/
     REQ_NB_REQUESTS
 };
 
@@ -3258,6 +3320,10 @@
     struct get_cdrom_eject_fd_list_request get_cdrom_eject_fd_list_request;
     struct add_cdrom_device_info_request add_cdrom_device_info_request;
     struct open_token_request open_token_request;
+    struct create_io_completion_request create_io_completion_request;
+    struct set_io_completion_request set_io_completion_request;
+    struct remove_io_completion_request remove_io_completion_request;
+    struct retrieve_assigned_io_completion_request retrieve_assigned_io_completion_request;
 };
 union generic_reply
 {
@@ -3432,8 +3498,12 @@
     struct get_cdrom_eject_fd_list_reply get_cdrom_eject_fd_list_reply;
     struct add_cdrom_device_info_reply add_cdrom_device_info_reply;
     struct open_token_reply open_token_reply;
+    struct create_io_completion_reply create_io_completion_reply;
+    struct set_io_completion_reply set_io_completion_reply;
+    struct remove_io_completion_reply remove_io_completion_reply;
+    struct retrieve_assigned_io_completion_reply retrieve_assigned_io_completion_reply;
 };
 
-#define SERVER_PROTOCOL_VERSION 103
+#define SERVER_PROTOCOL_VERSION 104
 
 #endif /* __WINE_WINE_SERVER_PROTOCOL_H */