- moved event, semaphore, mutex implementation from kernel32 to ntdll
- added mutant implementation in ntdll, and use it for mutex
  implementation in kernel32
- added access parameter on event, semaphore, timer creation in
  wineserver (as ntdll interface requires it)
- added missing definitions in include/winternl.h

diff --git a/server/protocol.def b/server/protocol.def
index e4b8e98..7f21d4b 100644
--- a/server/protocol.def
+++ b/server/protocol.def
@@ -491,6 +491,7 @@
 
 /* Create an event */
 @REQ(create_event)
+    unsigned int access;        /* wanted access rights */
     int          manual_reset;  /* manual reset event */
     int          initial_state; /* initial state of the event */
     int          inherit;       /* inherit flag */
@@ -519,6 +520,7 @@
 
 /* Create a mutex */
 @REQ(create_mutex)
+    unsigned int access;        /* wanted access rights */
     int          owned;         /* initially owned? */
     int          inherit;       /* inherit flag */
     VARARG(name,unicode_str);   /* object name */
@@ -530,6 +532,8 @@
 /* Release a mutex */
 @REQ(release_mutex)
     obj_handle_t handle;        /* handle to the mutex */
+@REPLY
+    unsigned int prev_count;    /* value of internal counter, before release */
 @END
 
 
@@ -545,6 +549,7 @@
 
 /* Create a semaphore */
 @REQ(create_semaphore)
+    unsigned int access;        /* wanted access rights */
     unsigned int initial;       /* initial count */
     unsigned int max;           /* maximum count */
     int          inherit;       /* inherit flag */
@@ -1337,6 +1342,7 @@
 
 /* Create a waitable timer */
 @REQ(create_timer)
+    unsigned int access;        /* wanted access rights */
     int          inherit;       /* inherit flag */
     int          manual;        /* manual reset */
     VARARG(name,unicode_str);   /* object name */