server: Get rid of the support for module snapshots, it is no longer needed.
authorAlexandre Julliard <julliard@winehq.org>
Tue, 9 Dec 2008 10:49:37 +0000 (11:49 +0100)
committerAlexandre Julliard <julliard@winehq.org>
Tue, 9 Dec 2008 10:49:37 +0000 (11:49 +0100)
dlls/ntdll/nt.c
include/wine/server_protocol.h
server/process.c
server/process.h
server/protocol.def
server/request.h
server/snapshot.c
server/trace.c

index ead3e6871f6ae0441eea91b30a8aa31c8b5af628..3f365bc970868b7c7866bbfe276c70e463aa55d8 100644 (file)
@@ -787,7 +787,6 @@ NTSTATUS WINAPI NtQuerySystemInformation(
             {
                 req->flags      = SNAP_PROCESS | SNAP_THREAD;
                 req->attributes = 0;
-                req->pid        = 0;
                 if (!(ret = wine_server_call( req )))
                     hSnap = wine_server_ptr_handle( reply->handle );
             }
index b21a8527c919f7ac49cb5759f8d0a6a22a61597c..39a4bee2c16d7f075a6c9992863bd568dfef92f5 100644 (file)
@@ -1760,17 +1760,14 @@ struct add_mapping_committed_range_reply
 };
 
 
-#define SNAP_HEAPLIST   0x00000001
-#define SNAP_PROCESS    0x00000002
-#define SNAP_THREAD     0x00000004
-#define SNAP_MODULE     0x00000008
+#define SNAP_PROCESS    0x00000001
+#define SNAP_THREAD     0x00000002
 
 struct create_snapshot_request
 {
     struct request_header __header;
     unsigned int attributes;
-    int          flags;
-    process_id_t pid;
+    unsigned int flags;
 };
 struct create_snapshot_reply
 {
@@ -1792,8 +1789,6 @@ struct next_process_reply
     int          count;
     process_id_t pid;
     process_id_t ppid;
-    void*        heap;
-    void*        module;
     int          threads;
     int          priority;
     int          handles;
@@ -1820,23 +1815,6 @@ struct next_thread_reply
 
 
 
-struct next_module_request
-{
-    struct request_header __header;
-    obj_handle_t handle;
-    int          reset;
-};
-struct next_module_reply
-{
-    struct reply_header __header;
-    process_id_t pid;
-    void*        base;
-    size_t       size;
-    /* VARARG(filename,unicode_str); */
-};
-
-
-
 struct wait_debug_event_request
 {
     struct request_header __header;
@@ -4424,7 +4402,6 @@ enum request
     REQ_create_snapshot,
     REQ_next_process,
     REQ_next_thread,
-    REQ_next_module,
     REQ_wait_debug_event,
     REQ_queue_exception_event,
     REQ_get_exception_status,
@@ -4668,7 +4645,6 @@ union generic_request
     struct create_snapshot_request create_snapshot_request;
     struct next_process_request next_process_request;
     struct next_thread_request next_thread_request;
-    struct next_module_request next_module_request;
     struct wait_debug_event_request wait_debug_event_request;
     struct queue_exception_event_request queue_exception_event_request;
     struct get_exception_status_request get_exception_status_request;
@@ -4910,7 +4886,6 @@ union generic_reply
     struct create_snapshot_reply create_snapshot_reply;
     struct next_process_reply next_process_reply;
     struct next_thread_reply next_thread_reply;
-    struct next_module_reply next_module_reply;
     struct wait_debug_event_reply wait_debug_event_reply;
     struct queue_exception_event_reply queue_exception_event_reply;
     struct get_exception_status_reply get_exception_status_reply;
@@ -5071,6 +5046,6 @@ union generic_reply
     struct set_window_layered_info_reply set_window_layered_info_reply;
 };
 
-#define SERVER_PROTOCOL_VERSION 347
+#define SERVER_PROTOCOL_VERSION 348
 
 #endif /* __WINE_WINE_SERVER_PROTOCOL_H */
index 866d8d8d2c806cdea4fa37adb77a0ae26207512e..136389f089336318edc3095dea340cf9d30d4572 100644 (file)
@@ -861,30 +861,6 @@ struct process_snapshot *process_snap( int *count )
     return snapshot;
 }
 
-/* take a snapshot of the modules of a process */
-struct module_snapshot *module_snap( struct process *process, int *count )
-{
-    struct module_snapshot *snapshot, *ptr;
-    struct process_dll *dll;
-    int total = 0;
-
-    LIST_FOR_EACH_ENTRY( dll, &process->dlls, struct process_dll, entry ) total++;
-    if (!(snapshot = mem_alloc( sizeof(*snapshot) * total ))) return NULL;
-
-    ptr = snapshot;
-    LIST_FOR_EACH_ENTRY( dll, &process->dlls, struct process_dll, entry )
-    {
-        ptr->base     = dll->base;
-        ptr->size     = dll->size;
-        ptr->namelen  = dll->namelen;
-        ptr->filename = memdup( dll->filename, dll->namelen );
-        ptr++;
-    }
-    *count = total;
-    return snapshot;
-}
-
-
 /* create a new process */
 DECL_HANDLER(new_process)
 {
index cfe223a71ca394127dc349b522e9cea833e43639..52b3d26d7f9d0ec056f4cb6b2a32d616f6bca107 100644 (file)
@@ -93,14 +93,6 @@ struct process_snapshot
     int             handles;  /* number of handles */
 };
 
-struct module_snapshot
-{
-    void           *base;     /* module base addr */
-    size_t          size;     /* module size */
-    data_size_t     namelen;  /* length of file name */
-    WCHAR          *filename; /* module file name */
-};
-
 /* process functions */
 
 extern unsigned int alloc_ptid( void *ptr );
@@ -127,7 +119,6 @@ extern void kill_debugged_processes( struct thread *debugger, int exit_code );
 extern void break_process( struct process *process );
 extern void detach_debugged_processes( struct thread *debugger );
 extern struct process_snapshot *process_snap( int *count );
-extern struct module_snapshot *module_snap( struct process *process, int *count );
 extern void enum_processes( int (*cb)(struct process*, void*), void *user);
 
 /* console functions */
index a1d03b55a4f0a70e98d899987e7258f4ae6c996e..804a5800823029717ac0696c93a1654cc2e67cd1 100644 (file)
@@ -1381,15 +1381,12 @@ enum char_info_mode
 @END
 
 
-#define SNAP_HEAPLIST   0x00000001
-#define SNAP_PROCESS    0x00000002
-#define SNAP_THREAD     0x00000004
-#define SNAP_MODULE     0x00000008
+#define SNAP_PROCESS    0x00000001
+#define SNAP_THREAD     0x00000002
 /* Create a snapshot */
 @REQ(create_snapshot)
     unsigned int attributes;    /* object attributes */
-    int          flags;         /* snapshot flags (SNAP_*) */
-    process_id_t pid;           /* process id */
+    unsigned int flags;         /* snapshot flags (SNAP_*) */
 @REPLY
     obj_handle_t handle;        /* handle to the snapshot */
 @END
@@ -1403,8 +1400,6 @@ enum char_info_mode
     int          count;         /* process usage count */
     process_id_t pid;           /* process id */
     process_id_t ppid;          /* parent process id */
-    void*        heap;          /* heap base */
-    void*        module;        /* main module */
     int          threads;       /* number of threads */
     int          priority;      /* process priority */
     int          handles;       /* number of handles */
@@ -1425,18 +1420,6 @@ enum char_info_mode
 @END
 
 
-/* Get the next module from a snapshot */
-@REQ(next_module)
-    obj_handle_t handle;        /* handle to the snapshot */
-    int          reset;         /* reset snapshot position? */
-@REPLY
-    process_id_t pid;           /* process id */
-    void*        base;          /* module base address */
-    size_t       size;          /* module size */
-    VARARG(filename,unicode_str); /* file name of module */
-@END
-
-
 /* Wait for a debug event */
 @REQ(wait_debug_event)
     int           get_handle;  /* should we alloc a handle for waiting? */
index 9fc5f25029a9d3820a99c937dc7289ee9b0a3fd6..deba2f2cdb30a3a3f203fa22dc2fa73b68ed5ae7 100644 (file)
@@ -189,7 +189,6 @@ DECL_HANDLER(add_mapping_committed_range);
 DECL_HANDLER(create_snapshot);
 DECL_HANDLER(next_process);
 DECL_HANDLER(next_thread);
-DECL_HANDLER(next_module);
 DECL_HANDLER(wait_debug_event);
 DECL_HANDLER(queue_exception_event);
 DECL_HANDLER(get_exception_status);
@@ -432,7 +431,6 @@ static const req_handler req_handlers[REQ_NB_REQUESTS] =
     (req_handler)req_create_snapshot,
     (req_handler)req_next_process,
     (req_handler)req_next_thread,
-    (req_handler)req_next_module,
     (req_handler)req_wait_debug_event,
     (req_handler)req_queue_exception_event,
     (req_handler)req_get_exception_status,
index 57c9fac8c41ef3cba10786199de0d1bf22f91205..bc48922236dc16b4b10b077e0e5960a0596c8b11 100644 (file)
 struct snapshot
 {
     struct object             obj;           /* object header */
-    struct process           *process;       /* process of this snapshot (for modules and heaps) */
     struct process_snapshot  *processes;     /* processes snapshot */
     int                       process_count; /* count of processes */
     int                       process_pos;   /* current position in proc snapshot */
     struct thread_snapshot   *threads;       /* threads snapshot */
     int                       thread_count;  /* count of threads */
     int                       thread_pos;    /* current position in thread snapshot */
-    struct module_snapshot   *modules;       /* modules snapshot */
-    int                       module_count;  /* count of modules */
-    int                       module_pos;    /* current position in module snapshot */
 };
 
 static void snapshot_dump( struct object *obj, int verbose );
@@ -79,25 +75,11 @@ static const struct object_ops snapshot_ops =
 
 
 /* create a new snapshot */
-static struct snapshot *create_snapshot( process_id_t pid, int flags )
+static struct snapshot *create_snapshot( unsigned int flags )
 {
-    struct process *process = NULL;
     struct snapshot *snapshot;
 
-    /* need a process for modules and heaps */
-    if (flags & (SNAP_MODULE|SNAP_HEAPLIST))
-    {
-        if (!pid) process = (struct process *)grab_object( current->process );
-        else if (!(process = get_process_from_id( pid ))) return NULL;
-    }
-
-    if (!(snapshot = alloc_object( &snapshot_ops )))
-    {
-        if (process) release_object( process );
-        return NULL;
-    }
-
-    snapshot->process = process;
+    if (!(snapshot = alloc_object( &snapshot_ops ))) return NULL;
 
     snapshot->process_pos = 0;
     snapshot->process_count = 0;
@@ -109,11 +91,6 @@ static struct snapshot *create_snapshot( process_id_t pid, int flags )
     if (flags & SNAP_THREAD)
         snapshot->threads = thread_snap( &snapshot->thread_count );
 
-    snapshot->module_pos = 0;
-    snapshot->module_count = 0;
-    if (flags & SNAP_MODULE)
-        snapshot->modules = module_snap( process, &snapshot->module_count );
-
     return snapshot;
 }
 
@@ -137,8 +114,6 @@ static int snapshot_next_process( struct snapshot *snapshot, struct next_process
     reply->count    = ptr->count;
     reply->pid      = get_process_id( ptr->process );
     reply->ppid     = ptr->process->parent ? get_process_id( ptr->process->parent ) : 0;
-    reply->heap     = NULL;  /* FIXME */
-    reply->module   = NULL;  /* FIXME */
     reply->threads  = ptr->threads;
     reply->priority = ptr->priority;
     reply->handles  = ptr->handles;
@@ -174,39 +149,12 @@ static int snapshot_next_thread( struct snapshot *snapshot, struct next_thread_r
     return 1;
 }
 
-/* get the next module in the snapshot */
-static int snapshot_next_module( struct snapshot *snapshot, struct next_module_reply *reply )
-{
-    struct module_snapshot *ptr;
-
-    if (!snapshot->module_count)
-    {
-        set_error( STATUS_INVALID_PARAMETER );  /* FIXME */
-        return 0;
-    }
-    if (snapshot->module_pos >= snapshot->module_count)
-    {
-        set_error( STATUS_NO_MORE_FILES );
-        return 0;
-    }
-    ptr = &snapshot->modules[snapshot->module_pos++];
-    reply->pid  = get_process_id( snapshot->process );
-    reply->base = ptr->base;
-    reply->size = ptr->size;
-    if (ptr->filename)
-    {
-        data_size_t len = min( ptr->namelen, get_reply_max_size() );
-        set_reply_data( ptr->filename, len );
-    }
-    return 1;
-}
-
 static void snapshot_dump( struct object *obj, int verbose )
 {
     struct snapshot *snapshot = (struct snapshot *)obj;
     assert( obj->ops == &snapshot_ops );
-    fprintf( stderr, "Snapshot: %d procs %d threads %d modules\n",
-             snapshot->process_count, snapshot->thread_count, snapshot->module_count );
+    fprintf( stderr, "Snapshot: %d procs %d threads\n",
+             snapshot->process_count, snapshot->thread_count );
 }
 
 static void snapshot_destroy( struct object *obj )
@@ -226,13 +174,6 @@ static void snapshot_destroy( struct object *obj )
             release_object( snapshot->threads[i].thread );
         free( snapshot->threads );
     }
-    if (snapshot->module_count)
-    {
-        for (i = 0; i < snapshot->module_count; i++)
-            free( snapshot->modules[i].filename );
-        free( snapshot->modules );
-    }
-    if (snapshot->process) release_object( snapshot->process );
 }
 
 /* create a snapshot */
@@ -241,7 +182,7 @@ DECL_HANDLER(create_snapshot)
     struct snapshot *snapshot;
 
     reply->handle = 0;
-    if ((snapshot = create_snapshot( req->pid, req->flags )))
+    if ((snapshot = create_snapshot( req->flags )))
     {
         reply->handle = alloc_handle( current->process, snapshot, 0, req->attributes );
         release_object( snapshot );
@@ -275,17 +216,3 @@ DECL_HANDLER(next_thread)
         release_object( snapshot );
     }
 }
-
-/* get the next module from a snapshot */
-DECL_HANDLER(next_module)
-{
-    struct snapshot *snapshot;
-
-    if ((snapshot = (struct snapshot *)get_handle_obj( current->process, req->handle,
-                                                       0, &snapshot_ops )))
-    {
-        if (req->reset) snapshot->module_pos = 0;
-        snapshot_next_module( snapshot, reply );
-        release_object( snapshot );
-    }
-}
index 7d027ac9d2693cc4d3edd41535066797479648a9..d8c2845d9a4f4dd1db6a2280c220a10d1faa7e36 100644 (file)
@@ -1813,8 +1813,7 @@ static void dump_add_mapping_committed_range_request( const struct add_mapping_c
 static void dump_create_snapshot_request( const struct create_snapshot_request *req )
 {
     fprintf( stderr, " attributes=%08x,", req->attributes );
-    fprintf( stderr, " flags=%d,", req->flags );
-    fprintf( stderr, " pid=%04x", req->pid );
+    fprintf( stderr, " flags=%08x", req->flags );
 }
 
 static void dump_create_snapshot_reply( const struct create_snapshot_reply *req )
@@ -1833,8 +1832,6 @@ static void dump_next_process_reply( const struct next_process_reply *req )
     fprintf( stderr, " count=%d,", req->count );
     fprintf( stderr, " pid=%04x,", req->pid );
     fprintf( stderr, " ppid=%04x,", req->ppid );
-    fprintf( stderr, " heap=%p,", req->heap );
-    fprintf( stderr, " module=%p,", req->module );
     fprintf( stderr, " threads=%d,", req->threads );
     fprintf( stderr, " priority=%d,", req->priority );
     fprintf( stderr, " handles=%d,", req->handles );
@@ -1857,21 +1854,6 @@ static void dump_next_thread_reply( const struct next_thread_reply *req )
     fprintf( stderr, " delta_pri=%d", req->delta_pri );
 }
 
-static void dump_next_module_request( const struct next_module_request *req )
-{
-    fprintf( stderr, " handle=%04x,", req->handle );
-    fprintf( stderr, " reset=%d", req->reset );
-}
-
-static void dump_next_module_reply( const struct next_module_reply *req )
-{
-    fprintf( stderr, " pid=%04x,", req->pid );
-    fprintf( stderr, " base=%p,", req->base );
-    fprintf( stderr, " size=%lu,", (unsigned long)req->size );
-    fprintf( stderr, " filename=" );
-    dump_varargs_unicode_str( cur_size );
-}
-
 static void dump_wait_debug_event_request( const struct wait_debug_event_request *req )
 {
     fprintf( stderr, " get_handle=%d", req->get_handle );
@@ -3904,7 +3886,6 @@ static const dump_func req_dumpers[REQ_NB_REQUESTS] = {
     (dump_func)dump_create_snapshot_request,
     (dump_func)dump_next_process_request,
     (dump_func)dump_next_thread_request,
-    (dump_func)dump_next_module_request,
     (dump_func)dump_wait_debug_event_request,
     (dump_func)dump_queue_exception_event_request,
     (dump_func)dump_get_exception_status_request,
@@ -4144,7 +4125,6 @@ static const dump_func reply_dumpers[REQ_NB_REQUESTS] = {
     (dump_func)dump_create_snapshot_reply,
     (dump_func)dump_next_process_reply,
     (dump_func)dump_next_thread_reply,
-    (dump_func)dump_next_module_reply,
     (dump_func)dump_wait_debug_event_reply,
     (dump_func)dump_queue_exception_event_reply,
     (dump_func)dump_get_exception_status_reply,
@@ -4384,7 +4364,6 @@ static const char * const req_names[REQ_NB_REQUESTS] = {
     "create_snapshot",
     "next_process",
     "next_thread",
-    "next_module",
     "wait_debug_event",
     "queue_exception_event",
     "get_exception_status",