2006-06-23 Dick Porter <dick@ximian.com>
[mono.git] / mono / io-layer / wapi-private.h
index edb6aeaf491d82201d1e1841459361328920bdb3..918c1d4ee312b6219cdcb736a06cbd5423cf5ddc 100644 (file)
@@ -4,7 +4,7 @@
  * Author:
  *     Dick Porter (dick@ximian.com)
  *
- * (C) 2002 Ximian, Inc.
+ * (C) 2002-2006 Novell, Inc.
  */
 
 #ifndef _WAPI_PRIVATE_H_
@@ -24,7 +24,8 @@
 /* Increment this whenever an incompatible change is made to the
  * shared handle structure.
  */
-#define _WAPI_HANDLE_VERSION 9
+/* Next time I change this, remember to fix the process count in shared.c */
+#define _WAPI_HANDLE_VERSION 10
 
 typedef enum {
        WAPI_HANDLE_UNUSED=0,
@@ -98,6 +99,12 @@ struct _WapiHandleOps
         * Returns the WaitForSingleObject return code.
         */
        guint32 (*special_wait)(gpointer handle, guint32 timeout);
+
+       /* Called by WaitForSingleObject and WaitForMultipleObjects,
+        * if the handle in question needs some preprocessing before the
+        * signal wait.
+        */
+       void (*prewait)(gpointer handle);
 };
 
 #include <mono/io-layer/event-private.h>
@@ -159,6 +166,8 @@ struct _WapiHandleShared
 /*#define _WAPI_SHARED_SEM_COLLECTION 1*/
 #define _WAPI_SHARED_SEM_FILESHARE 2
 #define _WAPI_SHARED_SEM_SHARED_HANDLES 3
+#define _WAPI_SHARED_SEM_PROCESS_COUNT_LOCK 6
+#define _WAPI_SHARED_SEM_PROCESS_COUNT 7
 #define _WAPI_SHARED_SEM_COUNT 8       /* Leave some future expansion space */
 
 struct _WapiHandleSharedLayout