Alexandre Julliard
4c5b55a0f8
server: Run async I/O APCs from the SIGUSR1 handler.
2007-06-04 18:16:48 +02:00
Alexandre Julliard
48c5321586
server: Give system APCs priority over signaled objects.
2007-05-01 14:07:24 +02:00
Alexandre Julliard
aaf477f292
server: Change the timeout handling to use NT-style 64-bit timeouts everywhere.
2007-04-17 20:08:59 +02:00
Alexandre Julliard
635714397f
server: Add infrastructure for ioctl server request.
2007-04-16 14:45:03 +02:00
Alexandre Julliard
3f0575943e
server: Don't bother with default entry points for objects that don't even return an fd.
2007-04-12 20:21:53 +02:00
Alexandre Julliard
7a9363a4d4
server: Rename the get_file_info function to get_fd_type and get rid of the flags.
2007-04-10 22:26:23 +02:00
Alexandre Julliard
f85437c57f
server: Store the opening options in the file descriptor instead of in the individual objects.
...
Allows moving the FD_FLAG_OVERLAPPED support to the generic
get_handle_fd request handling.
2007-04-10 22:25:07 +02:00
Alexandre Julliard
72bff2e445
server: Add support for restarting an async I/O when the client side couldn't finish it right away.
2007-04-10 17:07:27 +02:00
Alexandre Julliard
7e71c1ddee
server: Add an open_file() function to the object operations.
2007-03-22 11:44:29 +01:00
Alexandre Julliard
8adce7765a
server: Notify the async object when the APC call completed.
2007-03-21 14:28:23 +01:00
Alexandre Julliard
52a9af7ecb
server: Grab the owner object of an APC while the APC is executing.
2007-03-20 19:22:39 +01:00
Andrew Talbot
b1788c8462
server: Replace inline static with static inline.
2007-03-17 20:05:05 +01:00
Alexandre Julliard
49868e3c93
server: Clear the thread wait before releasing objects to avoid nested calls.
...
Reported by Misha Koshelev.
2007-02-05 18:05:03 +01:00
Alexandre Julliard
f3cb4f7d94
ntdll: Avoid inter-process APCs when called for the process itself.
2007-01-18 15:41:05 +01:00
Alexandre Julliard
02e2fa7798
ntdll: Implementation of inter-process NtMapViewOfSection and NtUnmapViewOfSection.
2007-01-18 15:17:51 +01:00
Alexandre Julliard
8025f79ce1
ntdll: Implementation of inter-process RtlCreateUserThread.
2007-01-18 15:02:55 +01:00
Alexandre Julliard
c122260b9d
ntdll: Implemented NtLockVirtualMemory and NtUnlockVirtualMemory.
2007-01-16 09:50:08 +01:00
Alexandre Julliard
5a1ad74a67
ntdll: Implementation of inter-process NtFlushVirtualMemory.
2007-01-15 22:31:07 +01:00
Alexandre Julliard
1ea968016f
ntdll: Implementation of inter-process VirtualProtectEx.
2007-01-15 22:30:04 +01:00
Alexandre Julliard
3d00239586
ntdll: Implementation of inter-process VirtualQueryEx.
2007-01-15 22:28:42 +01:00
Alexandre Julliard
6ca1d1b081
server: Support queuing some APCs to a process instead of a thread.
2007-01-15 22:26:32 +01:00
Alexandre Julliard
fb40dc4099
server: Added mechanism for returning results of APC calls.
...
Defined APC_VIRTUAL_ALLOC and APC_VIRTUAL_FREE requests.
2007-01-15 22:24:40 +01:00
Alexandre Julliard
46d7fa4852
server: Properly wake the waiting threads when an APC is cancelled.
2007-01-15 20:02:05 +01:00
Alexandre Julliard
2520e387a1
server: Allow suspended threads to run system APCs.
2007-01-10 21:55:23 +01:00
Alexandre Julliard
5c8421d3e7
server: Add a generic apc_call structure to make it easier to extend, and more type-safe.
2007-01-04 13:40:09 +01:00
Alexandre Julliard
49b49c30fc
server: Notify the server that an APC has completed in the next get_apc call.
2007-01-04 13:17:53 +01:00
Alexandre Julliard
2606ad538b
server: Make thread_apc into a real object.
2007-01-04 12:36:33 +01:00
Alexandre Julliard
48b74b3237
server: Split get_thread_from_pid to allow lookups by tid or pid only.
2006-12-29 16:53:33 +01:00
Michael Stefaniuc
5cecceccb2
server: Remove redundant NULL check before free() (found by Smatch).
2006-10-10 12:56:16 +02:00
Eric Pouech
8cb932ea89
ntdll: Implemented AmILastThread information class for NtQueryInformationThread.
2006-10-03 20:20:13 +02:00
Mike McCormack
261691fa2f
server: Use ntdll values where possible.
2006-08-23 12:01:10 +02:00
Alexandre Julliard
68e850e602
server: Send a SIGKILL to processes that don't terminate properly.
2006-08-14 20:19:42 +02:00
Alexandre Julliard
753c8706f5
server: Only call gettimeofday once per poll loop.
2006-08-10 16:42:09 +02:00
Thomas Kho
3538c0cdce
server: Remove unused thread_apc member.
2006-08-03 18:20:20 +02:00
Alexandre Julliard
c627601c3b
server: Convert the server start time to the abs_time_t type.
2006-07-26 14:50:55 +02:00
Alexandre Julliard
3095a48d6f
server: Convert thread creation/exit times to the abs_time_t type.
2006-07-26 14:49:55 +02:00
Ge van Geldorp
5d88b27d0d
server: The "select" call passes handles, not ints.
2006-07-03 11:37:14 +02:00
Alexandre Julliard
86d4688171
server: Moved some common bits of get/set_thread_context to thread.c.
2006-06-23 13:16:14 +02:00
Mike McCormack
1ec3e9fe7d
server: Fix a win64 warning.
2006-06-15 11:39:29 +02:00
Alexandre Julliard
5558652ea3
server: Don't report a fatal protocol error for things that we can recover from.
2006-06-08 10:26:02 +02:00
Jonathan Ernst
360a3f9142
Update the address of the Free Software Foundation.
2006-05-23 14:11:13 +02:00
Robert Shearman
b02e6b0926
server: Threads should start off without having an impersonation token.
2006-05-05 16:36:05 +02:00
Alexandre Julliard
17de829096
server: Use the standard suspend mechanism to simulate a breakpoint
...
in an active process, instead of sending a SIGTRAP.
2006-04-19 19:45:39 +02:00
Alexandre Julliard
820c5927c8
server: Removed the thread attached flag, since we always detach now.
2006-04-10 20:25:22 +02:00
Alexandre Julliard
cb70931f67
server: Moved read/write_process_memory and get_selector_entry to ptrace.c.
2006-04-07 19:52:12 +02:00
Alexandre Julliard
2878d99216
ntdll: Add debug registers to the context of all exceptions.
...
Maintain a local cache of the debug registers to avoid server calls
where possible.
2006-01-13 13:58:14 +01:00
Alexandre Julliard
2654be08d5
ntdll: Handle NtSetContextThread on the client side (as far as
...
possible) when setting the context of the current thread.
2006-01-11 20:20:32 +01:00
Alexandre Julliard
46d1b3e8da
server: Added access rights mapping to process and thread objects.
2005-12-12 15:03:07 +01:00
Alexandre Julliard
28beba31d6
server: Added infrastructure for access rights mapping.
2005-12-12 14:57:40 +01:00
Alexandre Julliard
24560e70bb
server: Make alloc_handle use attributes instead of inherit flag.
2005-12-09 13:58:25 +01:00
Alexandre Julliard
f2d7dd645e
server: Use attributes instead of inherit flag in process and thread requests.
2005-12-09 12:13:11 +01:00
Ge van Geldorp
1a1583a364
Match PSDK STATUS_* definitions.
2005-11-28 17:32:54 +01:00
Vitaliy Margolen
baffcb95d3
Add name_lookup function in object_ops.
2005-11-22 14:55:42 +00:00
Alexandre Julliard
73c72390f8
Fixed Get/SetThreadContext to work properly on suspended threads.
...
Added a test case.
2005-11-02 20:54:12 +00:00
Alexandre Julliard
3f85e26af2
Moved the platform-independent part of the get/set_thread_context
...
requests to a common file.
2005-11-02 14:12:13 +00:00
Alexandre Julliard
ff7795ef4c
Don't send an extra signal when waiting for a debug event, just do a
...
normal wait. Return the debug event status directly as return value
of the server call.
2005-11-01 21:47:07 +00:00
Alexandre Julliard
867ae269d4
Remove an exiting thread from the process only after thread cleanup to
...
avoid accessing freed window classes.
2005-09-14 15:44:12 +00:00
Alexandre Julliard
1b2adad892
Don't try to detach from a thread that is exiting, to avoid triggering
...
a kernel race condition.
2005-08-22 10:13:28 +00:00
Mike McCormack
e659f1e60c
Fix some gcc 4.0 warnings.
2005-08-09 10:37:50 +00:00
Alexandre Julliard
f895ad180d
Fixed a couple of error codes.
2005-07-29 14:41:14 +00:00
Alexandre Julliard
9ad5628639
Moved the server start time to the init_thread request and got rid of
...
the init_process request (based on a patch by Felix Nawothnig).
2005-07-14 10:32:46 +00:00
Alexandre Julliard
11ad6a0ac4
Return the startup info size in the init_thread request, and allocate
...
the process parameters structure in ntdll instead of kernel.
2005-07-13 19:43:35 +00:00
Alexandre Julliard
4391be583e
Get rid of the boot_done request.
2005-07-13 14:20:13 +00:00
Alexandre Julliard
0424f38169
Already initialize the process in the first init_thread request
...
instead of waiting for the init_process request.
2005-07-13 12:12:43 +00:00
Alexandre Julliard
92fec7b67a
Keep track of the windows and hooks used by a thread to properly
...
refuse to change the thread desktop when it's in use.
2005-06-28 19:37:52 +00:00
Mike McCormack
390bc5f52f
Don't include winbase.h when it's not necessary.
2005-06-21 09:46:15 +00:00
Robert Shearman
4bba21643c
Add support for impersonating a token.
2005-06-20 13:18:38 +00:00
Robert Shearman
3795709344
Change code style of form "if( x )" to "if (x)" for consistency.
2005-06-10 19:54:46 +00:00
Alexandre Julliard
b9b1ea9c9f
Added a close_handle method to the object operations, and use it to
...
implement registry notifications and the strange behavior of
CloseHandle on winstation/desktop handles.
2005-06-09 15:39:52 +00:00
Alexandre Julliard
78a3e63377
The desktop of a new thread should be set from the process initial
...
desktop, not from the parent thread.
Fixed a couple of bugs in the desktop name handling.
2005-06-09 12:07:12 +00:00
Alexandre Julliard
1bf96e09a9
Beginnings of support for window stations and desktops.
2005-06-08 18:44:50 +00:00
Mike McCormack
f92fff66a2
Implemented NtSignalAndWaitForSingleObject.
2005-04-24 17:35:52 +00:00
Robert Shearman
d2ea92d14e
- Clean up well-known privileges.
...
- Implement checking tokens for privileges in the server.
- Implement NtPrivilegeCheck.
2005-04-22 21:17:15 +00:00
Steven Edwards
5727918424
Added a check for poll.h.
2005-03-04 12:38:36 +00:00
Alexandre Julliard
aa34768677
Convert the object wait queue to a standard list.
2005-03-01 11:49:58 +00:00
Alexandre Julliard
73209eb73e
Convert the global thread list to a standard list.
2005-02-25 19:33:35 +00:00
Alexandre Julliard
20894e2ffb
Convert the per-thread mutex list to a standard list.
2005-02-25 16:58:43 +00:00
Alexandre Julliard
81b6a1fbe5
Convert the APC queues to use standard lists.
2005-02-25 14:01:40 +00:00
Dmitry Timoshkov
6dba0a7718
Add support for winevent hooks.
2005-02-03 16:40:20 +00:00
Eric Pouech
4634447d6b
- got rid of include/async.h
...
- fixed some overlapped issues in socket handling
- moved kernel32.CancelIo implementation to ntdll
2005-01-14 19:54:38 +00:00
Alexandre Julliard
3c68ab05ca
Make init_thread request deal better with fd allocation errors.
2003-10-27 22:10:22 +00:00
Alexandre Julliard
e37c6e18d0
Fixed header dependencies to be fully compatible with the Windows
...
headers (with help from Dimitrie O. Paun).
2003-09-05 23:08:26 +00:00
Mike McCormack
36cd6f5dbb
Added a security token object in wineserver.
2003-07-24 00:07:00 +00:00
Alexandre Julliard
4f196ead13
Implemented the ThreadBasicInformation case for
...
NtQueryInformationThread.
2003-07-09 02:57:57 +00:00
Alexandre Julliard
d55e7f1e9b
Store the hook table in the thread queue instead of the thread
...
structure, and make sure the queue is allocated when setting a hook.
2003-07-03 18:16:48 +00:00
Ulrich Czekalla
b2df5f9f19
- use global atoms for the format ids
...
- add timeout when calling XCheckTypedWindowEvent
- fix broken IsClipboardFormatAvailable; it tried to do a trick with
EnumClipboardFormats by making incorrect assumptions
- in X11DRV_IsClipboardFormatAvailable do a quick exit if no one owns
the selection
- add 1 second *minimum* time lapse between XSelectionOwner calls
- sync clipboard ownership between different wine processes
- prevents apps from getting into wierd state where they thought they
didn't own the selection but they did and as a result queried
themselves for available selection data
2003-06-23 23:02:02 +00:00
Alexandre Julliard
088bcf9ca5
Implemented NtQueueApcThread, and changed the server APC interface to
...
always take 3 parameters.
Implemented a number of other ntdll thread functions, and use them
from the kernel ones.
2003-04-04 22:26:34 +00:00
Alexandre Julliard
462172a3d6
Added abs_time_t structure to the server protocol, and added a dump
...
routine for it that displays the relative timeout to make timeout
values easier to interpret.
2003-04-02 22:48:59 +00:00
Alexandre Julliard
a8497bd037
Make a distinction between the thread Unix pid and the process wide
...
pid for platforms that use both.
2003-03-22 21:00:09 +00:00
Alexandre Julliard
580da246f5
Added an inode object to keep track of all file descriptors open for a
...
given file.
Plugged a couple of potential file descriptor leaks.
2003-03-12 22:38:14 +00:00
Alexandre Julliard
d04ccb8ebe
Use SIGUSR1 instead of SIGSTOP to suspend threads.
2003-03-04 22:18:43 +00:00
Peter Hunnisett
a3c5ad4e77
Suspended threads should not acquire synchronization objects.
2003-02-28 21:50:47 +00:00
Alexandre Julliard
02a53c176e
Added send_thread_signal() function and properly handle errors caused
...
by the thread having already died when we send it a signal.
Use -1 instead of 0 as invalid Unix pid value.
2003-02-25 04:17:22 +00:00
Alexandre Julliard
77c8b1dc2b
Pass the pid of the new process in the new_process request, don't
...
depend on the parent pid to find the startup info.
2003-02-24 20:51:50 +00:00
Alexandre Julliard
e66207ebfc
Moved all references to file descriptors out of the generic object
...
structure.
Changed the poll()-related routines to deal with file descriptors
instead of objects and integrated poll support into fd.c.
2003-02-19 00:33:32 +00:00
Alexandre Julliard
cf27a7fa3b
Changed fd operations to take a struct fd instead of a struct object.
...
Removed get_file_info function from object operations.
Added get_device_id request to avoid abusing get_file_info.
2003-02-14 20:27:09 +00:00
Alexandre Julliard
91befe1d64
Made process and thread ids small integers instead of pointers.
2003-02-01 01:38:40 +00:00
Alexandre Julliard
863637b158
Started moving functions that deal with Unix file descriptors to a
...
separate fd object. This will be needed for file locking.
2003-01-30 00:26:44 +00:00
Ryan Cumming
24f4eced42
Partially implement GetThreadTimes.
2002-11-25 01:33:38 +00:00
Alexandre Julliard
0286135de3
Rewrote hook support to store the hook chain in the server.
...
Split off 16-bit hook functions and re-implemented them on top of the
32-bit ones; system-wide 16-bit hooks are no longer supported at this
point.
2002-10-29 00:41:42 +00:00
Alexandre Julliard
54f228733a
Added process_id_t and thread_it_t types to the server interface
...
instead of using void*, and removed a number of type casts.
2002-10-03 19:54:57 +00:00
Alexandre Julliard
31022d66ca
Signal and release the idle event when the process main thread exits.
2002-08-16 23:30:41 +00:00
Alexandre Julliard
ff73250630
Unlock the master socket if the boot thread terminates early.
...
Avoid crash if thread died during timeout wakeup.
2002-06-22 01:20:36 +00:00
Alexandre Julliard
5188574984
Renamed handle_t to obj_handle_t to avoid conflict with rpcdce.h.
2002-05-30 20:12:58 +00:00
Alexandre Julliard
5769d1de00
Better support for configure detection of missing types, added check
...
for ssize_t.
Removed a couple of no longer used portability functions.
Various portability fixes in port.h.
2002-04-26 19:05:15 +00:00
Martin Wilck
2b47fb3cee
- separate cleanly between async scheduling and file IO related issues.
...
- make the API compatible with other types of async requests (e.g. for
sockets).
- remove exports of async IO related functions for DLL separation.
2002-04-05 22:53:57 +00:00
François Gouget
f6662576e3
Don't suspend a terminated thread.
2002-04-02 02:53:45 +00:00
Chris Morgan
417296c4af
Implement OpenThread() winapi call.
...
Implement a few pthreads functions.
2002-04-02 00:49:05 +00:00
Alexandre Julliard
15979fda75
Fixed handling of timer callback routines when the thread owning the
...
callback terminates.
2002-03-23 18:50:04 +00:00
Alexandre Julliard
0799c1a780
Added LGPL standard comment, and copyright notices where necessary.
...
Global replacement of debugtools.h by wine/debug.h.
2002-03-09 23:29:33 +00:00
Martin Wilck
b1c45b9424
Fixed a bug that caused APCs to be "forgotten".
2002-01-09 19:09:57 +00:00
Mike McCormack
6f011c0847
- move async activation into the server
...
- implement async queues
2001-12-20 00:07:05 +00:00
Eric Pouech
3940d8a294
Let the console renderer be defined as a thread.
2001-12-04 20:17:43 +00:00
Alexandre Julliard
9caa71eef4
Redesign of the server communication protocol to allow arbitrary sized
...
data to be exchanged.
Split request and reply structures to make backwards compatibility
easier.
Moved many console functions to dlls/kernel, added code page support,
changed a few requests to behave properly with the new protocol.
2001-11-30 18:46:42 +00:00
Alexandre Julliard
c4be541dfa
Avoid ftruncate to work around broken UMSDOS file system.
2001-11-07 20:25:12 +00:00
Alexandre Julliard
1a66d226eb
Added global management of user handles in the server.
...
Very preliminary support for shared window handles.
2001-08-28 18:44:52 +00:00
Andreas Mohr
d66130ac9d
Don't crash if send_thread_wakeup() fails.
2001-08-07 19:31:43 +00:00
Alexandre Julliard
10109e6083
Removed unused functions suspend/remove_all_threads.
2001-07-12 22:35:20 +00:00
Alexandre Julliard
51ab43bd13
Moved the major part of message queue and window timer handling into
...
the server.
Implemented MsgWaitForMultipleObjectsEx.
2001-05-18 22:51:56 +00:00
Alexandre Julliard
e5dedb1906
Added support for nested server waits (to allow waiting in signal
...
handlers).
2001-03-08 01:16:41 +00:00
Alexandre Julliard
8859d77279
Create the server pipes on the client side and transfer them to the
...
server on thread creation.
Use a single per-process socket instead of one per thread for
transferring file handles between client and server.
2001-03-01 22:13:49 +00:00
Alexandre Julliard
f52424055f
New mechanism to transfer file descriptors from client to server.
2001-02-28 21:45:23 +00:00
Alexandre Julliard
67a749999a
New set of macros for server calls; makes requests without variable
...
part somewhat faster.
2001-02-27 02:09:16 +00:00
Alexandre Julliard
d90e964cee
Added separate server pipe to wait on blocking server calls.
...
Send the complete request/reply through the request fifo instead of
just a dummy byte.
Convert error status to text in server reply tracing.
2001-02-21 04:21:50 +00:00
Alexandre Julliard
2362380b64
Added separate queue for "system" APCs that get called even when the
...
thread is not in an alertable state.
Specify the select_request timeout as absolute value so that we can
restart the request when interrupted.
2001-01-06 01:48:51 +00:00
Alexandre Julliard
8081e5a1e5
Added handle_t type to server interface so that we can make handles
...
pointers later on.
Always use 0 to signal invalid handle in server requests.
2001-01-05 04:08:07 +00:00
Alexandre Julliard
7f74824d9f
Fixed error recovery during thread creation.
2000-12-26 00:30:30 +00:00
Alexandre Julliard
63411dbde5
Avoid dup'ing file descriptors when not necessary.
...
Do not send fd to the client if ops->get_fd() fails.
2000-12-22 21:12:36 +00:00
Alexandre Julliard
d549f6909e
Use a separate FIFO pair for server requests that don't need to pass a
...
file descriptor.
Associate file descriptors with handles on the server side so that we
don't need to pass the fd every time the client wants to use it.
2000-12-22 02:04:15 +00:00
Alexandre Julliard
1ab243bac1
Merged the get_read_fd and get_write_fd requests.
2000-12-19 02:12:45 +00:00
Alexandre Julliard
914406f854
Moved LDT handling to libwine.so. Changed the interface to use the
...
exported LDT_ENTRY structure.
2000-11-14 01:54:49 +00:00
Alexandre Julliard
9c2370bd75
Added exception handling wrapper to a number of server requests.
...
Changed a few requests to use the new vararg mechanism.
2000-08-30 00:00:48 +00:00
Alexandre Julliard
8611353053
Added the data structures and macros that will be needed to support
...
reentrant server requests.
2000-08-29 03:54:30 +00:00
Alexandre Julliard
ea1afcef49
Added APC support in waitable timers.
2000-08-22 20:08:37 +00:00
Alexandre Julliard
c5e433a3a6
Moved idle event handling to the server.
2000-05-30 19:48:18 +00:00
Alexandre Julliard
5b4f3e8d6d
Rewrote Unix process launching to allow passing startup information to
...
Winelib apps. Improved handling of execve() failures.
2000-05-01 16:24:22 +00:00
Alexandre Julliard
07d8446918
Implemented thread and (partial) module snapshots, based on the work
...
of Andreas Mohr <amohr@student.ei.uni-stuttgart.de>.
2000-04-16 19:45:05 +00:00
Alexandre Julliard
6a72dc52bd
Load done event now created by the server.
2000-04-14 13:42:00 +00:00
Alexandre Julliard
f6507ed235
Do not send a debug event for a thread until the previous event for
...
the same thread has been continued.
2000-04-06 22:05:16 +00:00
Alexandre Julliard
b73421dd91
Set thread start address to 0 on events generated by
...
DebugActiveProcess.
Return a correct address in the simulated exception event.
2000-03-30 19:30:24 +00:00
Alexandre Julliard
9a0e28f153
Fixed a couple of file descriptor leaks.
...
Always call USER signal proc in the right context.
Cleaned up THREAD_Create.
2000-03-25 19:14:37 +00:00
Alexandre Julliard
12f29b5076
Have threads and processes exit more cleanly whenever possible.
2000-03-17 15:16:57 +00:00
Alexandre Julliard
98aacc7751
Avoid SIGSTOP/SIGCONT race when ptrace is disabled.
2000-03-15 19:46:14 +00:00
Alexandre Julliard
ea0d028a0b
Added specific routines for OUTPUT_DEBUG_STRING and EXCEPTION debug events.
...
Generate a breakpoint event on process attach.
Misc cleanups in request handling.
2000-03-10 22:16:10 +00:00
Alexandre Julliard
05f0b71bb3
Store the list of loaded dlls in the server, and generate debug events
...
internally.
2000-03-09 18:18:41 +00:00
Alexandre Julliard
5fb54566d2
Added server protocol version check.
2000-03-08 22:01:02 +00:00
Alexandre Julliard
ff81d78708
Generate CREATE_PROCESS/THREAD debug events internally in the server.
2000-03-08 12:01:30 +00:00
Dave Pickles
717bf7e9ea
Added definition for STILL_ACTIVE.
2000-02-13 16:04:14 +00:00
Alexandre Julliard
0a7c1f6c5b
Implemented GetThreadSelectorEntry through the server.
2000-01-27 02:54:17 +00:00
Alexandre Julliard
2fe57779fb
Made the server listen for new clients on a Unix socket in
...
$HOME/.wine. Newly started wine processes now attach to an existing
server if one is running.
2000-01-25 01:40:27 +00:00