Commit f534fbd3 authored by Derek Lesho's avatar Derek Lesho Committed by Alexandre Julliard

server: Allow creating process kernel objects.

parent 7498c15b
...@@ -64,6 +64,7 @@ static struct object_type *process_get_type( struct object *obj ); ...@@ -64,6 +64,7 @@ static struct object_type *process_get_type( struct object *obj );
static int process_signaled( struct object *obj, struct wait_queue_entry *entry ); static int process_signaled( struct object *obj, struct wait_queue_entry *entry );
static unsigned int process_map_access( struct object *obj, unsigned int access ); static unsigned int process_map_access( struct object *obj, unsigned int access );
static void process_poll_event( struct fd *fd, int event ); static void process_poll_event( struct fd *fd, int event );
static struct list *process_get_kernel_obj_list( struct object *obj );
static void process_destroy( struct object *obj ); static void process_destroy( struct object *obj );
static void terminate_process( struct process *process, struct thread *skip, int exit_code ); static void terminate_process( struct process *process, struct thread *skip, int exit_code );
...@@ -85,7 +86,7 @@ static const struct object_ops process_ops = ...@@ -85,7 +86,7 @@ static const struct object_ops process_ops =
no_link_name, /* link_name */ no_link_name, /* link_name */
NULL, /* unlink_name */ NULL, /* unlink_name */
no_open_file, /* open_file */ no_open_file, /* open_file */
no_kernel_obj_list, /* get_kernel_obj_list */ process_get_kernel_obj_list, /* get_kernel_obj_list */
no_close_handle, /* close_handle */ no_close_handle, /* close_handle */
process_destroy /* destroy */ process_destroy /* destroy */
}; };
...@@ -526,6 +527,7 @@ struct process *create_process( int fd, struct process *parent, int inherit_all, ...@@ -526,6 +527,7 @@ struct process *create_process( int fd, struct process *parent, int inherit_all,
process->trace_data = 0; process->trace_data = 0;
process->rawinput_mouse = NULL; process->rawinput_mouse = NULL;
process->rawinput_kbd = NULL; process->rawinput_kbd = NULL;
list_init( &process->kernel_object );
list_init( &process->thread_list ); list_init( &process->thread_list );
list_init( &process->locks ); list_init( &process->locks );
list_init( &process->asyncs ); list_init( &process->asyncs );
...@@ -661,6 +663,12 @@ static unsigned int process_map_access( struct object *obj, unsigned int access ...@@ -661,6 +663,12 @@ static unsigned int process_map_access( struct object *obj, unsigned int access
return access & ~(GENERIC_READ | GENERIC_WRITE | GENERIC_EXECUTE | GENERIC_ALL); return access & ~(GENERIC_READ | GENERIC_WRITE | GENERIC_EXECUTE | GENERIC_ALL);
} }
static struct list *process_get_kernel_obj_list( struct object *obj )
{
struct process *process = (struct process *)obj;
return &process->kernel_object;
}
static void process_poll_event( struct fd *fd, int event ) static void process_poll_event( struct fd *fd, int event )
{ {
struct process *process = get_fd_user( fd ); struct process *process = get_fd_user( fd );
......
...@@ -96,6 +96,7 @@ struct process ...@@ -96,6 +96,7 @@ struct process
struct list rawinput_devices;/* list of registered rawinput devices */ struct list rawinput_devices;/* list of registered rawinput devices */
const struct rawinput_device *rawinput_mouse; /* rawinput mouse device, if any */ const struct rawinput_device *rawinput_mouse; /* rawinput mouse device, if any */
const struct rawinput_device *rawinput_kbd; /* rawinput keyboard device, if any */ const struct rawinput_device *rawinput_kbd; /* rawinput keyboard device, if any */
struct list kernel_object; /* list of kernel object pointers */
}; };
struct process_snapshot struct process_snapshot
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment