Commit Graph

378 Commits

Author SHA1 Message Date
Alexandre Julliard
93652e1a68 Moved a bunch of functions out of libwine/kernel/gdi into USER. 2000-08-04 04:21:02 +00:00
Alexandre Julliard
09ddb59142 Make USER and GDI separate dlls. 2000-08-03 22:22:42 +00:00
Alexandre Julliard
6c9d83aa4c Added imports of user32/gdi32/kernel32 wherever necessary. 2000-08-03 00:04:24 +00:00
Ove Kaaven
128843046d DOS binary support has been restored. 2000-07-31 21:01:46 +00:00
Alexandre Julliard
a3e0cfc5fb Get full path of argv[0] before we change directories.
Make sure process names are long path names.
Cleaned up initialisation a bit.
2000-07-16 18:21:34 +00:00
Marcus Meissner
dad709122a Transmit current directory settings to newly created processes. 2000-07-16 15:42:22 +00:00
Andreas Mohr
913ce1f2f8 Extend the WSOCK32 warning in certain functions to mention WS2_32 too. 2000-07-15 21:29:34 +00:00
Andreas Mohr
dccc070d42 Better error message for really clueless newbies. 2000-07-11 22:06:13 +00:00
Alexandre Julliard
bec3244f39 Lazy initialisation of thread locale. 2000-07-10 15:23:04 +00:00
Juergen Schmied
6ee61f9ba1 Moved setting the locale value to the right position. 2000-07-10 13:06:58 +00:00
Slava Monich
fb8934d4bd Implementation of Get/SetThreadPriorityBoost. 2000-07-08 12:47:30 +00:00
Alexandre Julliard
596921da0c Make sure the cmdline passed to CreateProcessA is writeable (thanks to
Peter Ganten <peter@ganten.org>).
2000-06-24 20:53:47 +00:00
Alexandre Julliard
6d96e30171 ConvertToGlobalHandle: fixed handle leak. 2000-06-14 21:17:56 +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
8fe0551aa3 Removed a few unnecessary includes. 2000-06-08 04:57:58 +00:00
Alexandre Julliard
a37dec0c7e Pass the main exe name in the CREATE_PROCESS debug event. 2000-06-08 00:57:24 +00:00
Ulrich Weigand
06bf01768d Make a better guess to find the top of the initial stack.
Fixed FreeBSD compile problem (thanks to Gerald Pfeiffer).
2000-06-08 00:39:59 +00:00
Alexandre Julliard
42cc2bdf46 Setup signal handling and exceptions only after REQ_INIT_PROCESS_DONE
has been sent, to avoid deadlocking the debugger.
2000-06-07 03:49:41 +00:00
Patrik Stridvall
7980a50cb7 Fixed issues found by winapi_check. 2000-06-07 02:15:39 +00:00
Ulrich Weigand
afd6a4b810 Updated support for Solaris/Sparc architecture. 2000-06-04 01:48:05 +00:00
Ulrich Weigand
7e85ea7c86 Moved stack switch handling (large stack) to sysdeps.c
Enable exception dispatch while on large stack.
2000-06-04 01:35:43 +00:00
Alexandre Julliard
7fe09bce86 Moved kernel initialization to kernel_main.c 2000-06-03 04:49:40 +00:00
Alexandre Julliard
c23b1ee3da Make sure main_exe_name is a DOS filename (thanks to Uwe Bonnes). 2000-06-01 22:48:39 +00:00
Alexandre Julliard
c5e433a3a6 Moved idle event handling to the server. 2000-05-30 19:48:18 +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
Andreas Mohr
cd1323765c Use WARN() instead of TRACE() in DebugOutputA(). 2000-05-23 01:13:07 +00:00
Alexandre Julliard
8c8237b756 Specify the service thread timers in ms instead of us. 2000-05-10 04:43:32 +00:00
Ove Kaaven
d2937316a5 Fixed jump_alias for non-PIC, and disabled it for PIC, since it
doesn't work for PIC right now. This fixes current crashing sigaction
calls.
2000-05-09 22:32:25 +00:00
Alexandre Julliard
d27624be16 Store process file name in startup info.
Fixed exe_file handling.
2000-05-03 18:42:40 +00:00
Alexandre Julliard
ce686031ba Fixed default thread stack size. 2000-05-03 17:45:14 +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
95a4332f32 Added atfork support. 2000-05-01 16:19:40 +00:00
Eric Pouech
f61d7e0a24 Enhanced libc's pthread configuration detection. 2000-04-29 16:44:19 +00:00
Ove Kaaven
47d72ff801 Made pthread_kill_other_threads_np and pthread_atfork fixmes less
obtrusive.
2000-04-29 14:15:31 +00:00
Ove Kaaven
1f9b4b0a8f Removed init_sect. Use Interlocked* functions instead. 2000-04-28 20:00:20 +00:00
Ove Kaaven
1abdb6f74d Override fork(). 2000-04-28 14:44:05 +00:00
Ove Kaaven
166209a725 Added some more pthread overrides. 2000-04-23 20:01:45 +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
d804111dc5 Made server launching somewhat cleaner and faster. 2000-04-14 14:42:41 +00:00
Alexandre Julliard
6a72dc52bd Load done event now created by the server. 2000-04-14 13:42:00 +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
227a0894d4 Removed a number of global handle allocations and critical section
initializations.
2000-04-08 21:06:06 +00:00
Alexandre Julliard
11342151c9 Temporary hack to share handles between processes sharing the same
address space.
2000-04-08 21:02:47 +00:00
Alexandre Julliard
416a00d2bc Added lazy initialization of critical sections, based on a patch by
Andrew Lewycky.
2000-04-08 20:50:06 +00:00
Alexandre Julliard
de1d5ad444 Added support for WINEPREFIX environment variable. 2000-04-06 20:36:17 +00:00
Alexandre Julliard
8a971bfec0 Fixed file descriptor leaks. 2000-04-04 19:57:23 +00:00
Alexandre Julliard
0e37eaaca8 Commented out exit() call on ExitProcess for now. 2000-03-30 19:31:02 +00:00
Patrik Stridvall
2d6457c11a Added/fixed some documentation reported by winapi_check. 2000-03-28 20:22:59 +00:00
Alexandre Julliard
31741747b9 Put CLONE_FILES back in, it is still breaking too many things. 2000-03-28 18:47: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
Patrik Stridvall
3b233623cc Fixed some warnings. 2000-03-24 21:19:02 +00:00
Patrik Stridvall
98fde73f14 Fixed some issues reported by winapi_check. 2000-03-24 20:43:33 +00:00
Dimitrie O. Paun
9ad9636725 Removed most calls to xmalloc/xrealloc. 2000-03-19 14:29:50 +00:00
Alexandre Julliard
9b59da0dd9 Misc small cleanups. 2000-03-18 22:25:41 +00:00
Alexandre Julliard
12f29b5076 Have threads and processes exit more cleanly whenever possible. 2000-03-17 15:16:57 +00:00
Alexandre Julliard
c2ec36877a Removed PROCESS_IsCurrent(). 2000-03-10 22:21:07 +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
00641d5b1c Removed PDB32_DEBUGGED flag and send all debug events unconditionally.
Implemented IsDebuggerPresent().
2000-03-08 16:41:37 +00:00
Alexandre Julliard
ff81d78708 Generate CREATE_PROCESS/THREAD debug events internally in the server. 2000-03-08 12:01:30 +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
Patrik Stridvall
0ee98cc39f Fixed ANSI C violations. 2000-02-26 13:17:55 +00:00
Andreas Mohr
296186a85f Added FIXME comment for entry point parameter. 2000-02-20 19:18:30 +00:00
Alexandre Julliard
67a24c8cfb Store the handle of the process exe file in the server.
Removed PROCESS_Initial().
2000-02-18 21:54:32 +00:00
Dave Pickles
717bf7e9ea Added definition for STILL_ACTIVE. 2000-02-13 16:04:14 +00:00
Juergen Lock
2d33ab91f4 Added configure check for the unix domain sockaddr length. 2000-02-13 16:03:29 +00:00
Ulrich Weigand
f3bfa3a4b0 Mark initial process as 32-bit for WineLib apps.
Use teb->tibflags instead of teb->flags (for Win95 USER32 compatibility).
Removed unused thread event.
2000-01-30 21:16:06 +00:00
Andreas Mohr
8cd93514f0 - add some documentation items
- fix some spelling
- fix some warnings
2000-01-29 21:12:58 +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
0a7c1f6c5b Implemented GetThreadSelectorEntry through the server. 2000-01-27 02:54:17 +00:00
Alexandre Julliard
eafa391081 Use argv[0] to locate the server executable. 2000-01-25 21:19:58 +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
Alexandre Julliard
cb1fc735f0 Changed the server to return STATUS_* error codes. 2000-01-24 21:58:06 +00:00
Alexandre Julliard
3e2517caa7 Added Get/SetThreadContext support through the server. 2000-01-20 18:59:03 +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
Alexandre Julliard
95e7acb95d Moved allocation of the socket pair for a new thread to the server. 2000-01-04 02:40:22 +00:00
Peter Ganten
6619f5a71a Implemented WaitForInputIdle. 2000-01-01 22:38:20 +00:00
Juergen Schmied
71e69dd8ed NT allocates one page as TEB. Some native NT-dlls are using this. 1999-12-25 22:49:33 +00:00
Alexandre Julliard
000c9800b6 Use waitable timers to implement service thread timers. 1999-12-13 01:42:03 +00:00
Andreas Mohr
7fb732e597 Fixed compiler warnings. 1999-12-12 00:47:51 +00:00
Ulrich Weigand
89a79d21bf Bugfix: Show main window if CreateProcess was called without the
STARTF_USESHOWWINDOW flag.
1999-12-10 03:34:21 +00:00
Dimitrie O. Paun
dd03cc19fd Make use of the DEFAULT_DEBUG_CHANNEL where appropriate.
Use the default version of FIXME, ERR, WARN, TRACE for the default
channel.
1999-12-08 03:56:23 +00:00
Ulrich Weigand
0106f85e5f Delay sending debug events until process initialization is complete. 1999-12-08 03:28:14 +00:00
Ulrich Weigand
979000e038 Call 16-bit instead of 32-bit UserSignalProc entry point.
Don't load USER32.DLL unless requested by the program.
Bugfix: Pass the correct thread ID to UserSignalProc.
1999-12-05 02:48:53 +00:00
Ulrich Weigand
237e8e95b0 Fixed 32-bit module name handling to conform better to Win9x.
Removed OFSTRUCT passing during process creation sequence.
Bugfix: don't set exe_modref when LOAD_LIBRARY_AS_DATAFILE is set.
1999-12-04 04:04:58 +00:00
Alexandre Julliard
d083a7bd0c Fixed DEBUG_ONLY_THIS_PROCESS again (thanks to Ulrich Weigand). 1999-11-29 02:10:56 +00:00
Alexandre Julliard
ad47a30f5e Implemented waitable timers. 1999-11-29 01:58:35 +00:00
Alexandre Julliard
d16319ce22 Store all object names as Unicode in the server. 1999-11-25 21:30:24 +00:00
Alexandre Julliard
1d2ba529aa Added current context to the exception debug event sent to the server. 1999-11-24 01:24:50 +00:00
Alexandre Julliard
6f1b642479 Raise an exception when a critical section wait failed. 1999-11-24 01:14:04 +00:00
Alexandre Julliard
af04ebe4bb Added server_call_noerr function that avoids touching the last error. 1999-11-21 21:02:06 +00:00
Niels Kristian Bech Jensen
1d5bc469cc Removed extra #include statements. 1999-11-21 02:14:36 +00:00
Alexandre Julliard
31670003bc Fixed meaning of DEBUG_ONLY_THIS_PROCESS flag. 1999-11-21 01:06:29 +00:00
Patrik Stridvall
b9010214d2 Added better missing function emulation. 1999-11-13 22:23:35 +00:00
Alexandre Julliard
eef7025ef8 Added support for WriteProcessMemory through the server. 1999-11-13 19:54:54 +00:00
Alexandre Julliard
8b8828f578 Added support for ReadProcessMemory through the server. 1999-11-12 21:39:14 +00:00
Alexandre Julliard
ec7bb2391d Added support for CREATE_SUSPENDED flag in CreateProcess. 1999-11-12 03:35:25 +00:00
Ulrich Weigand
d024d5e942 Bugfix: LOAD_DLL_DEBUG_EVENT lpImageName parameter was incorrect. 1999-11-10 20:15:04 +00:00
Alexandre Julliard
9103daf300 Install the wine server in $(bindir) and exec it from there. 1999-11-08 00:03:53 +00:00
James Abbatiello
161693e4f9 Addresses issues with multiple processes accessing non-global critical
sections.
1999-11-07 19:22:46 +00:00
Alexandre Julliard
a67d71648d Added special handling for the stdio handles in CloseHandle. 1999-11-04 02:49:06 +00:00
Alexandre Julliard
3b6a3e777c Set close-on-exec flag on server socket. 1999-10-31 22:26:35 +00:00
Patrik Stridvall
96336324cf - Added missing configuration #if:s and #includes:s.
- Minor configuration related changes.
1999-10-24 22:13:47 +00:00
Ulrich Czekalla
c9cc20cf8b New channel 'debugstr' used to print OutputDebugString API calls. 1999-10-24 00:06:17 +00:00
Ulrich Weigand
8a64b83eb6 Bugfix: don't call ExitProcess() before SYSLEVEL_Init(). 1999-10-23 14:15:33 +00:00
Alexandre Julliard
3d06d20bab Moved all signal support to a new platform-specific file.
Make use of the per-thread signal stack (Juergen Lock).
Fixed %fs in signal handler for non FS_sig case (Ulrich Weigand).
1999-09-27 10:58:45 +00:00
Ulrich Weigand
f0a1c2f741 Don't create thunk for CreateThread16 proc, call it directly. 1999-09-20 18:45:28 +00:00
Ron Record
e977d6ca5c Added support of __thr_errno for reentrance on UnixWare. 1999-09-05 12:32:05 +00:00
Ulrich Weigand
cebd60b33c Removed global variable pCurrentTeb. 1999-09-03 16:45:44 +00:00
Patrik Stridvall
2c684081c1 Fixed some of the issues reported by Solaris Lint. 1999-07-31 17:36:48 +00:00
Patrik Stridvall
26ffb3cd76 Fixed/added missing/wrong function prototypes and made internal
functions static.
1999-07-31 14:41:43 +00:00
Patrik Stridvall
478eee17be Eliminated warnings. 1999-07-31 13:13:23 +00:00
Ulrich Weigand
4d550350f3 Bugfix: Install task-entry breakpoint *after* EXE module is initialized. 1999-07-30 18:05:07 +00:00
Alexandre Julliard
8f44baf5c4 Do not output text in OutputDebugStrAW when not being debugged 1999-07-20 15:13:20 +00:00
Ulrich Weigand
3dff7bb842 Modularized CallFrom/To16 routines. Adapted dependent routines,
16-bit snoop/relay debugging, and make rules.
1999-07-11 13:58:31 +00:00
Howard Abrams
132774804e Added checks for sys/errno.h, sys/signal.h and sys/mman.h. 1999-07-10 13:16:29 +00:00
Ulrich Weigand
203780eb6e Removed all EVENT_Synchronize( FALSE ) calls; use a periodic callback
calling XFlush() instead.
1999-07-10 10:24:31 +00:00
Ulrich Weigand
fbea530884 On NE process creation, move major part of NE EXE module loading and
NE instance creation into the child process.
1999-07-03 12:26:29 +00:00
Alexandre Julliard
617955db88 Changed CONTEXT into CONTEXT86 everywhere we really want an i386
context.
Added #ifdef __i386__ around accesses to 386 registers in the generic
CONTEXT structure.
1999-06-26 18:40:24 +00:00
Patrik Stridvall
1ed4ecffa8 ANSI C fixes.
Removed warnings.
Made the include files self-sufficient.
Some Solaris fixes.
1999-06-26 14:58:24 +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
Ulrich Weigand
26c21f1f57 Load USER32.DLL before calling UserSignalProc. 1999-06-22 19:12:14 +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
55e1af93b5 Added DebugBreak. 1999-06-18 18:24:47 +00:00
Ulrich Weigand
23f4b09cc3 Removed broken hack to support shared DLLs (e.g. USER32.DLL) and
replaced it by a somewhat less broken hack :-/
1999-06-13 08:34:42 +00:00
Andreas Mohr
cd3278be3f Rearrange winver detection code and cache the winver value we
determined in the PDB to speed up.
1999-06-12 14:46:54 +00:00
Guy Albertelli
0e65b38ff3 Add new "walk" command options to list processes and modref's. 1999-06-12 10:49:36 +00:00
Eric Pouech
63c7cdf196 Made the service thread instanciable in every process. 1999-06-12 08:24:23 +00:00
Alexandre Julliard
1aa2641636 Use the normal environment routines to build the env db of the initial
process.
1999-06-11 18:33:46 +00:00
Ulrich Weigand
ed49003188 16-bit scheduler reorganized: run all tasks in their own thread.
Process creation sequence adapted to new scheduler.
1999-06-06 14:47:50 +00:00
Ulrich Weigand
ad6657e334 Removed SERVICE_Exit(). 1999-06-06 14:43:34 +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
bda3969d98 Removed process argument to PROCESS_CallUserSignalProc. 1999-05-24 15:01:05 +00:00
Alexandre Julliard
463fd4ffb1 Moved remaining initialisations to the new process context.
Shuffled things around a bit in PROCESS_Start to avoid deadlocks.
Changed PROCESS_CallUserSignalProc to avoid accessing another process
address space.
1999-05-24 14:44:52 +00:00
Ulrich Weigand
a1957c4d64 Wait until child initialized before returning from PROCESS_Create. 1999-05-24 08:10:46 +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
Alexandre Julliard
4cc1b339cf Implemented the Win32 debug API functions. 1999-05-23 19:57:42 +00:00
Alexandre Julliard
156570906f Converted to the new debug interface, using script written by Patrik
Stridvall.
1999-05-23 10:25:25 +00:00
Ulrich Weigand
158f00ed8d Bugfix: dwFlags must describe target process in UserSignalProc. 1999-05-23 09:31:49 +00:00
Ulrich Weigand
8c2dc8b1b8 Adapted to event synchronization changes. 1999-05-22 18:58:36 +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
Ulrich Weigand
c319c669fb Added ExitKernel16 (replacing USER_ExitWindows), ExitProcess16, and
MapProcessHandle; stub for BUNNY_351.
1999-05-22 16:18:36 +00:00
Ove Kaaven
3d93102dd4 Expire timers on expiry time too, not just after. 1999-05-22 15:56:21 +00:00
Alexandre Julliard
e29a001a85 Added TEB in init_thread request. 1999-05-16 16:51:28 +00:00