From d1b6cf93795adf96519d48343b6ff5d3fbe86324 Mon Sep 17 00:00:00 2001 From: Hans Leidekker Date: Mon, 16 Apr 2012 12:35:17 +0200 Subject: [PATCH] server: Include the Unix pid in the snapshot_next_process reply. --- include/wine/server_protocol.h | 4 +++- server/process.c | 1 + server/process.h | 1 + server/protocol.def | 1 + server/request.h | 3 ++- server/snapshot.c | 1 + server/trace.c | 1 + 7 files changed, 10 insertions(+), 2 deletions(-) diff --git a/include/wine/server_protocol.h b/include/wine/server_protocol.h index 0e989da5786..41e8e2800e4 100644 --- a/include/wine/server_protocol.h +++ b/include/wine/server_protocol.h @@ -2052,7 +2052,9 @@ struct next_process_reply int threads; int priority; int handles; + int unix_pid; /* VARARG(filename,unicode_str); */ + char __pad_36[4]; }; @@ -5646,6 +5648,6 @@ union generic_reply struct set_suspend_context_reply set_suspend_context_reply; }; -#define SERVER_PROTOCOL_VERSION 431 +#define SERVER_PROTOCOL_VERSION 432 #endif /* __WINE_WINE_SERVER_PROTOCOL_H */ diff --git a/server/process.c b/server/process.c index de3b594d7c7..6a5f4b1b6b9 100644 --- a/server/process.c +++ b/server/process.c @@ -847,6 +847,7 @@ struct process_snapshot *process_snap( int *count ) ptr->count = process->obj.refcount; ptr->priority = process->priority; ptr->handles = get_handle_table_count(process); + ptr->unix_pid = process->unix_pid; grab_object( process ); ptr++; } diff --git a/server/process.h b/server/process.h index 93ec6c7d5a0..976dd38488e 100644 --- a/server/process.h +++ b/server/process.h @@ -90,6 +90,7 @@ struct process_snapshot int threads; /* number of threads */ int priority; /* priority class */ int handles; /* number of handles */ + int unix_pid; /* Unix pid */ }; #define CPU_FLAG(cpu) (1 << (cpu)) diff --git a/server/protocol.def b/server/protocol.def index 80c0cd3e19d..31a3b0d40f6 100644 --- a/server/protocol.def +++ b/server/protocol.def @@ -1577,6 +1577,7 @@ enum char_info_mode int threads; /* number of threads */ int priority; /* process priority */ int handles; /* number of handles */ + int unix_pid; /* Unix pid */ VARARG(filename,unicode_str); /* file name of main exe */ @END diff --git a/server/request.h b/server/request.h index 5b45cf97adb..8f9308546c7 100644 --- a/server/request.h +++ b/server/request.h @@ -1161,7 +1161,8 @@ C_ASSERT( FIELD_OFFSET(struct next_process_reply, ppid) == 16 ); C_ASSERT( FIELD_OFFSET(struct next_process_reply, threads) == 20 ); C_ASSERT( FIELD_OFFSET(struct next_process_reply, priority) == 24 ); C_ASSERT( FIELD_OFFSET(struct next_process_reply, handles) == 28 ); -C_ASSERT( sizeof(struct next_process_reply) == 32 ); +C_ASSERT( FIELD_OFFSET(struct next_process_reply, unix_pid) == 32 ); +C_ASSERT( sizeof(struct next_process_reply) == 40 ); C_ASSERT( FIELD_OFFSET(struct next_thread_request, handle) == 12 ); C_ASSERT( FIELD_OFFSET(struct next_thread_request, reset) == 16 ); C_ASSERT( sizeof(struct next_thread_request) == 24 ); diff --git a/server/snapshot.c b/server/snapshot.c index bc48922236d..dd00bd1418d 100644 --- a/server/snapshot.c +++ b/server/snapshot.c @@ -117,6 +117,7 @@ static int snapshot_next_process( struct snapshot *snapshot, struct next_process reply->threads = ptr->threads; reply->priority = ptr->priority; reply->handles = ptr->handles; + reply->unix_pid = ptr->process->unix_pid; if ((exe_module = get_process_exe_module( ptr->process )) && exe_module->filename) { data_size_t len = min( exe_module->namelen, get_reply_max_size() ); diff --git a/server/trace.c b/server/trace.c index cfef963ae9e..4318a34857b 100644 --- a/server/trace.c +++ b/server/trace.c @@ -1969,6 +1969,7 @@ static void dump_next_process_reply( const struct next_process_reply *req ) fprintf( stderr, ", threads=%d", req->threads ); fprintf( stderr, ", priority=%d", req->priority ); fprintf( stderr, ", handles=%d", req->handles ); + fprintf( stderr, ", unix_pid=%d", req->unix_pid ); dump_varargs_unicode_str( ", filename=", cur_size ); }