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... ============================================================================== --- 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... ============================================================================== --- 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... ============================================================================== --- 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... ============================================================================== --- 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