[ros-diffs] [fireball] 42046: - Port server headers too (use our process/thread structures instead of theirs, etc). - Start improving the win32k private header.

fireball at svn.reactos.org fireball at svn.reactos.org
Sat Jul 18 14:48:05 CEST 2009


Author: fireball
Date: Sat Jul 18 14:48:05 2009
New Revision: 42046

URL: http://svn.reactos.org/svn/reactos?rev=42046&view=rev
Log:
- Port server headers too (use our process/thread structures instead of theirs, etc).
- Start improving the win32k private header.

Modified:
    branches/arwinss/reactos/subsystems/win32/win32k/include/handle.h
    branches/arwinss/reactos/subsystems/win32/win32k/include/object.h
    branches/arwinss/reactos/subsystems/win32/win32k/include/user.h
    branches/arwinss/reactos/subsystems/win32/win32k/include/win32kp.h

Modified: branches/arwinss/reactos/subsystems/win32/win32k/include/handle.h
URL: http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/subsystems/win32/win32k/include/handle.h?rev=42046&r1=42045&r2=42046&view=diff
==============================================================================
--- branches/arwinss/reactos/subsystems/win32/win32k/include/handle.h [iso-8859-1] (original)
+++ branches/arwinss/reactos/subsystems/win32/win32k/include/handle.h [iso-8859-1] Sat Jul 18 14:48:05 2009
@@ -22,7 +22,6 @@
 #define __WINE_SERVER_HANDLE_H
 
 #include <stdlib.h>
-#include "windef.h"
 #include "wine/server_protocol.h"
 
 struct process;
@@ -34,23 +33,23 @@
 
 /* alloc_handle takes a void *obj for convenience, but you better make sure */
 /* that the thing pointed to starts with a struct object... */
-extern obj_handle_t alloc_handle( struct process *process, void *obj,
+extern obj_handle_t alloc_handle( PPROCESSINFO process, void *obj,
                                   unsigned int access, unsigned int attr );
-extern obj_handle_t alloc_handle_no_access_check( struct process *process, void *ptr,
+extern obj_handle_t alloc_handle_no_access_check( PPROCESSINFO process, void *ptr,
                                                   unsigned int access, unsigned int attr );
-extern int close_handle( struct process *process, obj_handle_t handle );
-extern struct object *get_handle_obj( struct process *process, obj_handle_t handle,
+extern int close_handle( PPROCESSINFO process, obj_handle_t handle );
+extern struct object *get_handle_obj( PPROCESSINFO process, obj_handle_t handle,
                                       unsigned int access, const struct object_ops *ops );
-extern unsigned int get_handle_access( struct process *process, obj_handle_t handle );
-extern obj_handle_t duplicate_handle( struct process *src, obj_handle_t src_handle, struct process *dst,
+extern unsigned int get_handle_access( PPROCESSINFO process, obj_handle_t handle );
+extern obj_handle_t duplicate_handle( PPROCESSINFO src, obj_handle_t src_handle, PPROCESSINFO dst,
                                       unsigned int access, unsigned int attr, unsigned int options );
 extern obj_handle_t open_object( const struct namespace *namespace, const struct unicode_str *name,
                                  const struct object_ops *ops, unsigned int access, unsigned int attr );
-extern obj_handle_t find_inherited_handle( struct process *process, const struct object_ops *ops );
-extern obj_handle_t enumerate_handles( struct process *process, const struct object_ops *ops,
+extern obj_handle_t find_inherited_handle( PPROCESSINFO process, const struct object_ops *ops );
+extern obj_handle_t enumerate_handles( PPROCESSINFO process, const struct object_ops *ops,
                                        unsigned int *index );
-extern struct handle_table *alloc_handle_table( struct process *process, int count );
-extern struct handle_table *copy_handle_table( struct process *process, struct process *parent );
-extern unsigned int get_handle_table_count( struct process *process);
+extern struct handle_table *alloc_handle_table( PPROCESSINFO process, int count );
+extern struct handle_table *copy_handle_table( PPROCESSINFO process, PPROCESSINFO parent );
+extern unsigned int get_handle_table_count( PPROCESSINFO process);
 
 #endif  /* __WINE_SERVER_HANDLE_H */

Modified: branches/arwinss/reactos/subsystems/win32/win32k/include/object.h
URL: http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/subsystems/win32/win32k/include/object.h?rev=42046&r1=42045&r2=42046&view=diff
==============================================================================
--- branches/arwinss/reactos/subsystems/win32/win32k/include/object.h [iso-8859-1] (original)
+++ branches/arwinss/reactos/subsystems/win32/win32k/include/object.h [iso-8859-1] Sat Jul 18 14:48:05 2009
@@ -37,7 +37,6 @@
 struct object;
 struct object_name;
 struct thread;
-struct process;
 struct token;
 struct file;
 struct wait_queue_entry;
@@ -68,9 +67,9 @@
     /* remove a thread from the object wait queue */
     void (*remove_queue)(struct object *,struct wait_queue_entry *);
     /* is object signaled? */
-    int  (*signaled)(struct object *,struct thread *);
+    int  (*signaled)(struct object *,PTHREADINFO);
     /* wait satisfied; return 1 if abandoned */
-    int  (*satisfied)(struct object *,struct thread *);
+    int  (*satisfied)(struct object *,PTHREADINFO);
     /* signal an object */
     int  (*signal)(struct object *, unsigned int);
     /* return an fd object that can be used to read/write from the object */
@@ -87,7 +86,7 @@
     struct object *(*open_file)(struct object *, unsigned int access, unsigned int sharing,
                                 unsigned int options);
     /* close a handle to this object */
-    int (*close_handle)(struct object *,struct process *,obj_handle_t);
+    int (*close_handle)(struct object *,PPROCESSINFO,obj_handle_t);
     /* destroy on refcount == 0 */
     void (*destroy)(struct object *);
 };
@@ -108,7 +107,7 @@
 {
     struct list     entry;
     struct object  *obj;
-    struct thread  *thread;
+    PTHREADINFO     thread;
 };
 
 extern void *mem_alloc( size_t size );  /* malloc wrapper */
@@ -141,7 +140,7 @@
 extern struct object *no_lookup_name( struct object *obj, struct unicode_str *name, unsigned int attributes );
 extern struct object *no_open_file( struct object *obj, unsigned int access, unsigned int sharing,
                                     unsigned int options );
-extern int no_close_handle( struct object *obj, struct process *process, obj_handle_t handle );
+extern int no_close_handle( struct object *obj, PPROCESSINFO process, obj_handle_t handle );
 extern void no_destroy( struct object *obj );
 #ifdef DEBUG_OBJECTS
 extern void dump_objects(void);
@@ -155,7 +154,7 @@
 extern struct event *create_event( struct directory *root, const struct unicode_str *name,
                                    unsigned int attr, int manual_reset, int initial_state,
                                    const struct security_descriptor *sd );
-extern struct event *get_event_obj( struct process *process, obj_handle_t handle, unsigned int access );
+extern struct event *get_event_obj( PPROCESSINFO process, obj_handle_t handle, unsigned int access );
 extern void pulse_event( struct event *event );
 extern void set_event( struct event *event );
 extern void reset_event( struct event *event );
@@ -174,9 +173,9 @@
 
 /* debugger functions */
 
-extern int set_process_debugger( struct process *process, struct thread *debugger );
+extern int set_process_debugger( PPROCESSINFO process, struct thread *debugger );
 extern void generate_debug_event( struct thread *thread, int code, const void *arg );
-extern void generate_startup_debug_events( struct process *process, client_ptr_t entry );
+extern void generate_startup_debug_events( PPROCESSINFO process, client_ptr_t entry );
 extern void debug_exit_thread( struct thread *thread );
 
 /* mapping functions */
@@ -204,7 +203,7 @@
 
 /* directory functions */
 
-extern struct directory *get_directory_obj( struct process *process, obj_handle_t handle, unsigned int access );
+extern struct directory *get_directory_obj( PPROCESSINFO process, obj_handle_t handle, unsigned int access );
 extern struct object *find_object_dir( struct directory *root, const struct unicode_str *name,
                                        unsigned int attr, struct unicode_str *name_left );
 extern void *create_named_object_dir( struct directory *root, const struct unicode_str *name,

Modified: branches/arwinss/reactos/subsystems/win32/win32k/include/user.h
URL: http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/subsystems/win32/win32k/include/user.h?rev=42046&r1=42045&r2=42046&view=diff
==============================================================================
--- branches/arwinss/reactos/subsystems/win32/win32k/include/user.h [iso-8859-1] (original)
+++ branches/arwinss/reactos/subsystems/win32/win32k/include/user.h [iso-8859-1] Sat Jul 18 14:48:05 2009
@@ -78,22 +78,22 @@
 
 /* hook functions */
 
-extern void remove_thread_hooks( struct thread *thread );
+extern void remove_thread_hooks( PTHREADINFO thread );
 extern unsigned int get_active_hooks(void);
 
 /* queue functions */
 
-extern void free_msg_queue( struct thread *thread );
-extern struct hook_table *get_queue_hooks( struct thread *thread );
-extern void set_queue_hooks( struct thread *thread, struct hook_table *hooks );
-extern void inc_queue_paint_count( struct thread *thread, int incr );
-extern void queue_cleanup_window( struct thread *thread, user_handle_t win );
-extern int init_thread_queue( struct thread *thread );
-extern int attach_thread_input( struct thread *thread_from, struct thread *thread_to );
-extern void detach_thread_input( struct thread *thread_from );
+extern void free_msg_queue( PTHREADINFO thread );
+extern struct hook_table *get_queue_hooks( PTHREADINFO thread );
+extern void set_queue_hooks( PTHREADINFO thread, struct hook_table *hooks );
+extern void inc_queue_paint_count( PTHREADINFO thread, int incr );
+extern void queue_cleanup_window( PTHREADINFO thread, user_handle_t win );
+extern int init_thread_queue( PTHREADINFO thread );
+extern int attach_thread_input( PTHREADINFO thread_from, PTHREADINFO thread_to );
+extern void detach_thread_input( PTHREADINFO thread_from );
 extern void post_message( user_handle_t win, unsigned int message,
                           lparam_t wparam, lparam_t lparam );
-extern void post_win_event( struct thread *thread, unsigned int event,
+extern void post_win_event( PTHREADINFO thread, unsigned int event,
                             user_handle_t win, unsigned int object_id,
                             unsigned int child_id, client_ptr_t proc,
                             const WCHAR *module, data_size_t module_size,
@@ -126,23 +126,23 @@
 
 /* window functions */
 
-extern struct process *get_top_window_owner( struct desktop *desktop );
+extern PPROCESSINFO get_top_window_owner( struct desktop *desktop );
 extern void close_desktop_window( struct desktop *desktop );
 extern void destroy_window( struct window *win );
-extern void destroy_thread_windows( struct thread *thread );
+extern void destroy_thread_windows( PTHREADINFO thread );
 extern int is_child_window( user_handle_t parent, user_handle_t child );
 extern int is_top_level_window( user_handle_t window );
 extern int is_window_visible( user_handle_t window );
 extern int make_window_active( user_handle_t window );
-extern struct thread *get_window_thread( user_handle_t handle );
+extern PTHREADINFO get_window_thread( user_handle_t handle );
 extern user_handle_t window_from_point( struct desktop *desktop, int x, int y );
-extern user_handle_t find_window_to_repaint( user_handle_t parent, struct thread *thread );
+extern user_handle_t find_window_to_repaint( user_handle_t parent, PTHREADINFO thread );
 extern struct window_class *get_window_class( user_handle_t window );
 
 /* window class functions */
 
-extern void destroy_process_classes( struct process *process );
-extern struct window_class *grab_class( struct process *process, atom_t atom,
+extern void destroy_process_classes( PPROCESSINFO process );
+extern struct window_class *grab_class( PPROCESSINFO process, atom_t atom,
                                         mod_handle_t instance, int *extra_bytes );
 extern void release_class( struct window_class *class );
 extern int is_desktop_class( struct window_class *class );
@@ -152,13 +152,13 @@
 
 /* windows station functions */
 
-extern struct desktop *get_desktop_obj( struct process *process, obj_handle_t handle, unsigned int access );
-extern struct winstation *get_process_winstation( struct process *process, unsigned int access );
-extern struct desktop *get_thread_desktop( struct thread *thread, unsigned int access );
-extern void connect_process_winstation( struct process *process, struct thread *parent );
-extern void set_process_default_desktop( struct process *process, struct desktop *desktop,
+extern struct desktop *get_desktop_obj( PPROCESSINFO process, obj_handle_t handle, unsigned int access );
+extern struct winstation *get_process_winstation( PPROCESSINFO process, unsigned int access );
+extern struct desktop *get_thread_desktop( PTHREADINFO thread, unsigned int access );
+extern void connect_process_winstation( PPROCESSINFO process, PTHREADINFO parent );
+extern void set_process_default_desktop( PPROCESSINFO process, struct desktop *desktop,
                                          obj_handle_t handle );
-extern void close_process_desktop( struct process *process );
-extern void close_thread_desktop( struct thread *thread );
+extern void close_process_desktop( PPROCESSINFO process );
+extern void close_thread_desktop( PTHREADINFO thread );
 
 #endif  /* __WINE_SERVER_USER_H */

Modified: branches/arwinss/reactos/subsystems/win32/win32k/include/win32kp.h
URL: http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/subsystems/win32/win32k/include/win32kp.h?rev=42046&r1=42045&r2=42046&view=diff
==============================================================================
--- branches/arwinss/reactos/subsystems/win32/win32k/include/win32kp.h [iso-8859-1] (original)
+++ branches/arwinss/reactos/subsystems/win32/win32k/include/win32kp.h [iso-8859-1] Sat Jul 18 14:48:05 2009
@@ -14,11 +14,41 @@
 /* Prototypes */
 W32KAPI UINT APIENTRY wine_server_call(void *req_ptr);
 
-/* Internal  Win32K Headers */
+/* Internal Win32K Headers */
 #include <error.h>
+
+/* Wine protocol */
 #include <wine/server_protocol.h>
+
+/* RosGdi syscalls */
+//#include <ntrosgdi.h>
+//#include <win32k/rosuser.h>
+
+/* CSR interaction */
+//#include <csr.h>
+
 #include <win32.h>
 #include <heap.h>
+#include <tags.h>
+
+#include <dib.h>
+
+/* Eng and GRE stuff */
+#if 0
+#include <driver.h>
+#include <engevent.h>
+#include <devobj.h>
+#include <gdiobj.h>
+#include <surfobj.h>
+#include <brushobj.h>
+#include <dc.h>
+#include <palobj.h>
+#include <clipobj.h>
+#include <floatobj.h>
+#include <xformobj.h>
+#include <xlateobj.h>
+#include <gre.h>
+#endif
 
 #include "winesup.h"
 
@@ -43,4 +73,15 @@
     struct __server_iovec data[__SERVER_MAX_DATA];  /* request variable size data */
 };
 
+/* TODO: Move to eng.h */
+ULONGLONG
+APIENTRY
+EngGetTickCount(VOID);
+
+/* TODO: Move to user.h */
+VOID UserEnterExclusive(VOID);
+VOID UserLeave(VOID);
+VOID UserCleanup(VOID);
+VOID UserInitialize(VOID);
+
 #endif



More information about the Ros-diffs mailing list