Redesign of the server communication protocol to allow arbitrary sized
data to be exchanged.
Split request and reply structures to make backwards compatibility
easier.
Moved many console functions to dlls/kernel, added code page support,
changed a few requests to behave properly with the new protocol.

diff --git a/server/mutex.c b/server/mutex.c
index 54f9052..ee145d9 100644
--- a/server/mutex.c
+++ b/server/mutex.c
@@ -140,10 +140,10 @@
 {
     struct mutex *mutex;
 
-    req->handle = 0;
-    if ((mutex = create_mutex( get_req_data(req), get_req_data_size(req), req->owned )))
+    reply->handle = 0;
+    if ((mutex = create_mutex( get_req_data(), get_req_data_size(), req->owned )))
     {
-        req->handle = alloc_handle( current->process, mutex, MUTEX_ALL_ACCESS, req->inherit );
+        reply->handle = alloc_handle( current->process, mutex, MUTEX_ALL_ACCESS, req->inherit );
         release_object( mutex );
     }
 }
@@ -151,8 +151,8 @@
 /* open a handle to a mutex */
 DECL_HANDLER(open_mutex)
 {
-    req->handle = open_object( get_req_data(req), get_req_data_size(req),
-                               &mutex_ops, req->access, req->inherit );
+    reply->handle = open_object( get_req_data(), get_req_data_size(),
+                                 &mutex_ops, req->access, req->inherit );
 }
 
 /* release a mutex */