server: Convert the server start time to the abs_time_t type.
diff --git a/server/object.h b/server/object.h
index 46b34e1..1a75e4c 100644
--- a/server/object.h
+++ b/server/object.h
@@ -213,6 +213,6 @@
extern const char *server_argv0;
/* server start time used for GetTickCount() */
-extern time_t server_start_time;
+extern struct timeval server_start_time;
#endif /* __WINE_SERVER_OBJECT_H */
diff --git a/server/protocol.def b/server/protocol.def
index 6910ed4..e64cf43 100644
--- a/server/protocol.def
+++ b/server/protocol.def
@@ -284,7 +284,7 @@
process_id_t pid; /* process id of the new thread's process */
thread_id_t tid; /* thread id of the new thread */
data_size_t info_size; /* total size of startup info */
- time_t server_start; /* server start time */
+ abs_time_t server_start; /* server start time */
int version; /* protocol version */
@END
diff --git a/server/request.c b/server/request.c
index 6fc7fcb..d0e1a88 100644
--- a/server/request.c
+++ b/server/request.c
@@ -114,7 +114,7 @@
struct thread *current = NULL; /* thread handling the current request */
unsigned int global_error = 0; /* global error code for when no thread is current */
-time_t server_start_time = 0; /* server startup time */
+struct timeval server_start_time = { 0, 0 }; /* server startup time */
static struct master_socket *master_socket; /* the master socket object */
@@ -465,7 +465,8 @@
{
struct timeval t;
gettimeofday( &t, NULL );
- return ((t.tv_sec - server_start_time) * 1000) + (t.tv_usec / 1000);
+ return ((t.tv_sec - server_start_time.tv_sec) * 1000) +
+ ((t.tv_usec - server_start_time.tv_usec) / 1000);
}
static void master_socket_dump( struct object *obj, int verbose )
@@ -798,7 +799,7 @@
msghdr.msg_iovlen = 1;
/* init startup time */
- server_start_time = time(NULL);
+ gettimeofday( &server_start_time, NULL );
}
/* master socket timer expiration handler */
diff --git a/server/thread.c b/server/thread.c
index 23508d3..feb3259 100644
--- a/server/thread.c
+++ b/server/thread.c
@@ -889,7 +889,8 @@
reply->pid = get_process_id( process );
reply->tid = get_thread_id( current );
reply->version = SERVER_PROTOCOL_VERSION;
- reply->server_start = server_start_time;
+ reply->server_start.sec = server_start_time.tv_sec;
+ reply->server_start.usec = server_start_time.tv_usec;
return;
error:
diff --git a/server/trace.c b/server/trace.c
index ee3db8b..574943a 100644
--- a/server/trace.c
+++ b/server/trace.c
@@ -697,7 +697,9 @@
fprintf( stderr, " pid=%04x,", req->pid );
fprintf( stderr, " tid=%04x,", req->tid );
fprintf( stderr, " info_size=%u,", req->info_size );
- fprintf( stderr, " server_start=%ld,", (long)req->server_start );
+ fprintf( stderr, " server_start=" );
+ dump_abs_time( &req->server_start );
+ fprintf( stderr, "," );
fprintf( stderr, " version=%d", req->version );
}