Commit Graph

71 Commits

Author SHA1 Message Date
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
François Gouget 1425941e29 Fix the #include order for config.h.
Add #include "config.h" directives where needed.
2001-11-06 20:57:11 +00:00
Ove Kaaven 6e33f63e4a Extended __wine_enter_vm86 to handle pending interrupts. 2001-06-21 00:39:34 +00:00
Alexandre Julliard a67e6486df Removed THREAD_IsWin16. 2001-05-18 23:21:22 +00:00
Alexandre Julliard 4323004bf1 Create an X connection for each thread, and process X events in the
thread that created the corresponding X window.
Spawn a separate thread to run the desktop message loop in desktop
mode.
2001-05-16 19:52:29 +00:00
Michael McCormack 1c32a46d5a Use poll() on the client-side during server waits to implement
overlapped I/O.
2001-03-22 20:09:34 +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 9ee9efff1b Use the standard CreateThread routine to create 16-bit tasks instead
of duplicating the code.
2001-02-28 05:29:50 +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 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 83f52d11c1 Moved all Win16 definitions out of the standard Windows headers. 2000-09-26 22:20:14 +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
Juergen Schmied ec85c6be75 Implemented the ErrorInfo interfaces. 2000-08-03 04:34:59 +00:00
Juergen Schmied 79d850f2d7 - implemented Get/SetThreadLocale
- added comment about OleErrorInfo field in TEB
2000-06-12 21:56:02 +00:00
Alexandre Julliard c192ba2468 Exec a separate wine binary for every win32 process so that they run
in separate address spaces.
Run 16-bit tasks as Win32 threads, not processes.
2000-05-29 21:25:10 +00:00
Alexandre Julliard 8c21dfcf0f Setup the initial thread %fs from a constructor. 2000-05-01 21:21:31 +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 b44595283f Improved Winelib apps initialisation code. No longer need to link
winestub.o with Winelib apps.
2000-04-15 21:00:55 +00:00
Ove Kaaven f19f07d5f3 POSIX threads emulation, tricks glibc into being threadsafe. 2000-04-14 14:47:02 +00:00
Alexandre Julliard 3ef9322915 Cleanup thread stack allocation. Use a single VirtualAlloc for TEB and
the various stacks.
2000-04-13 17:03:22 +00:00
Alexandre Julliard 114830e8a9 Made GetProcessHeap(), GetCurrentProcessId(), GetCurrentThread() and
GetCurrentProcess() inline.
2000-04-11 20:01:59 +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
Patrik Stridvall 6cc47d4924 Removed a lot of unnecessary includes and fixed the compile errors. 2000-03-08 18:26:56 +00:00
Alexandre Julliard ca3c9ba4ec Better implementation of inline functions SetLastError and
GetCurrentThreadId.  Added asm inlines for Interlocked* functions.
2000-03-07 13:14:27 +00:00
Alexandre Julliard 916f975624 Improved the selector get/set functions.
Support ANSI-compatible inline asm (with the help of Patrik Stridvall).
2000-02-26 16:51:13 +00:00
Ulrich Weigand 7d43bceb7e Moved debugger to libwine to make it available to WineLib apps.
Try to invoke external debugger if internal debugger crashes.
Try to handle early invocation of debugger more gracefully.
2000-01-30 21:16:45 +00:00
Alexandre Julliard 8bc1d837d2 Use a per-thread buffer and write(2) for debug traces.
Removed debug_dumpstr.
2000-01-29 19:46:50 +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
Juergen Schmied 74341020f4 - added NT fields to TEB
- moved tls-fields and some wine specific fields to a higher offset
- added some documentation
- initialisation of the UnicodeString
2000-01-15 22:22:27 +00:00
Eric Pouech 4e1cdab556 Moved wineserver's buffer & buffer_size at the end of TEB so that IE
doesn't overwrite them.
1999-12-05 23:10:27 +00:00
Alexandre Julliard ebe29ef376 Further server optimizations:
- merged request and reply structures
- build requests directly into the buffer to avoid a copy
1999-06-26 08:43:26 +00:00
Alexandre Julliard 5bc78089db Made server communication faster by using a shared memory block.
A few other optimizations in request processing in the server.
Moved automatically generated request definitions to server.h and
removed include/server/request.h.
1999-06-22 17:26:53 +00:00
Alexandre Julliard 0a860a01f9 Merged THDB and TEB structures.
Made SetLastError(), GetCurrentThreadId() and PROCESS_Current() inline.
1999-06-22 11:43:42 +00:00
Alexandre Julliard 54a39e253c Got rid of THREAD_InitDone.
Made THREAD_Current() inline.
Moved server tid into TEB.
1999-05-29 14:27:26 +00:00
Alexandre Julliard d131a17ee0 Use the new debug functions to send debug events at appropriate places.
Pass the process creation flags to PROCESS_Create.
1999-05-23 20:02:04 +00:00
Ulrich Weigand c5b8b3aeae Improved syslevel handling, store currently held syslevels in thread
database, WIN_CritSection converted to syslevel.
1999-05-22 16:28:47 +00:00
Alexandre Julliard dd93d25577 Improved exception handling.
Based on the work of Sergey Turchanov <turchanov@usa.net>.
1999-05-09 16:12:19 +00:00
Ulrich Weigand 36a1a25f0e Call THREAD_FreeTHDB as service thread callback. 1999-05-08 10:48:03 +00:00
Ulrich Weigand a44f9f8e1b Merged Linux/FreeBSD reentrant errno handler, added Solaris.
Preliminary support for Solaris low-level threads (LWPs) added.
1999-04-18 13:20:43 +00:00
Ulrich Weigand e469a583ca Fixed sequence of DLL_PROCESS_DETACH notification calls.
Moved PE_MODREF flags to WINE_MODREF level.
Better handling of LoadLibraryEx flags.
PE_InitTls() changed to work only on the current thread.
1999-03-27 16:45:57 +00:00
Alexandre Julliard f016752b45 Changed process initialisation to use the new server requests.
Started to move the process init to the right context, not finished yet.
1999-03-21 19:26:25 +00:00
Ulrich Weigand 4526f2ec66 Pass new arguments (suspend/inherit) to the server. 1999-03-16 16:28:59 +00:00
Alexandre Julliard 96c08d817c Use server handles directly for Win32 handles. Removed use of K32OBJ. 1999-02-28 13:27:56 +00:00
Alexandre Julliard 8feb3bc177 Process and thread id now use the server-side id instead of an
obfuscated pointer.
1999-02-28 12:25:03 +00:00
Alexandre Julliard a396029270 Large-scale renaming of all Win32 functions and types to use the
standard Windows names.
1999-02-26 11:11:13 +00:00
Alexandre Julliard 214399f283 Changed initial process creation to avoid memory allocations.
Removed a few unused fields in PDB and THDB.
1999-02-21 18:35:27 +00:00
Marcus Meissner 317af320cf Optimized include/*.h: (recursively) include all headers needed by
this .h file, but only those. Necessary fixes to a lot of .c files,
started optimizing "windows.h" away from some of them. Moved
GetCurrentTask prototype to wine/winbase16.h.
1999-02-17 13:51:06 +00:00