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/win3…
==============================================================================
--- 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/win3…
==============================================================================
--- 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/win3…
==============================================================================
--- 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/win3…
==============================================================================
--- 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