Implemented file sharing checks in the server.
Added set file time server request.
Overall clean up of the file handling (DOS device handling is now
broken, should be redone).

diff --git a/server/trace.c b/server/trace.c
index 152a6bf..ed257c4 100644
--- a/server/trace.c
+++ b/server/trace.c
@@ -214,8 +214,12 @@
 static int dump_create_file_request( struct create_file_request *req, int len )
 {
     fprintf( stderr, " access=%08x,", req->access );
-    fprintf( stderr, " inherit=%d", req->inherit );
-    return (int)sizeof(*req);
+    fprintf( stderr, " inherit=%d,", req->inherit );
+    fprintf( stderr, " sharing=%08x,", req->sharing );
+    fprintf( stderr, " create=%d,", req->create );
+    fprintf( stderr, " attrs=%08x,", req->attrs );
+    fprintf( stderr, " name=\"%.*s\"", len - (int)sizeof(*req), (char *)(req+1) );
+    return len;
 }
 
 static int dump_create_file_reply( struct create_file_reply *req, int len )
@@ -258,6 +262,14 @@
     return (int)sizeof(*req);
 }
 
+static int dump_set_file_time_request( struct set_file_time_request *req, int len )
+{
+    fprintf( stderr, " handle=%d,", req->handle );
+    fprintf( stderr, " access_time=%ld,", req->access_time );
+    fprintf( stderr, " write_time=%ld", req->write_time );
+    return (int)sizeof(*req);
+}
+
 static int dump_flush_file_request( struct flush_file_request *req, int len )
 {
     fprintf( stderr, " handle=%d", req->handle );
@@ -272,6 +284,7 @@
 
 static int dump_get_file_info_reply( struct get_file_info_reply *req, int len )
 {
+    fprintf( stderr, " type=%d,", req->type );
     fprintf( stderr, " attr=%d,", req->attr );
     fprintf( stderr, " access_time=%ld,", req->access_time );
     fprintf( stderr, " write_time=%ld,", req->write_time );
@@ -413,6 +426,8 @@
       (void(*)())dump_set_file_pointer_reply },
     { (int(*)(void *,int))dump_truncate_file_request,
       (void(*)())0 },
+    { (int(*)(void *,int))dump_set_file_time_request,
+      (void(*)())0 },
     { (int(*)(void *,int))dump_flush_file_request,
       (void(*)())0 },
     { (int(*)(void *,int))dump_get_file_info_request,
@@ -456,6 +471,7 @@
     "get_write_fd",
     "set_file_pointer",
     "truncate_file",
+    "set_file_time",
     "flush_file",
     "get_file_info",
     "create_pipe",