Commit Graph

223 Commits

Author SHA1 Message Date
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
Alexandre Julliard 43c190e7ba Server reorganization:
- moved request handlers to the specific C files
- moved handle management to handle.c
- moved server private includes to server/ instead of include/server/
1999-05-15 10:48:19 +00:00
Patrik Stridvall 1bb9403938 ANSI C fixes. 1999-05-08 15:47:44 +00:00
Ulrich Weigand 36a1a25f0e Call THREAD_FreeTHDB as service thread callback. 1999-05-08 10:48:03 +00:00
Ulrich Weigand 1c971e3364 Some initialization sequence bugfixes:
- Initialize process crst for 16-bit processes.
- Don't crash due to uninitialized stack frames in WineLib.
- Map system DLLs before calling UserSignalProc.
- Signal USIG_PROCESS_CREATE only *after* the env_db is filled.
1999-05-08 09:58:47 +00:00
Ulrich Weigand 70b2e383a0 Fixed various stupid bugs in services thread routines.
Added SERVICE_Exit routine to kill the services thread.
1999-05-04 16:43:38 +00:00
Alexandre Julliard 64ae5a57cf Moved a few more initialisations to the new process context. 1999-05-02 19:10:57 +00:00
Alexandre Julliard e8c6a08cd9 Converted to the new debugging interface (done with the help of the
script written by Patrik Stridvall).
Some changes to the initialisation sequence for 32-bit processes.
1999-05-02 14:33:41 +00:00
Alexandre Julliard 06c275a643 Converted to the new debugging interface (done with the help of the
script written by Patrik Stridvall).
1999-05-02 14:32:27 +00:00
Ulrich Weigand 586793ffd8 Initialize process critical section in the correct process context. 1999-04-25 11:04:45 +00:00
Ulrich Weigand a988074d24 Warn if wrong process tries to enter critical section.
Better implementation of Reinitialize/UninitializeCriticalSection
(still not quite correct).
1999-04-25 11:03:59 +00:00
Patrik Stridvall 0f8bc5b5c7 Fixed ANSI compabillity. 1999-04-22 16:27:50 +00:00
Marcus Meissner 450f96aab4 CreateSocketHandle,GetHandleContext,SetHandleContext stubs added. 1999-04-22 14:55:06 +00:00
Patrik Stridvall b4b9fae671 New debug scheme with explicit debug channels declaration. 1999-04-19 14:56:29 +00:00
Alexandre Julliard 79762059eb Added timeout to critical section waiting. 1999-04-18 13:23:36 +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
Bertho Stultiens c1d1cfe976 Reorganization of the loader to correctly load and free libraries and
implementation of load order to load different types of libraries.
1999-04-18 12:14:06 +00:00
Kevin Holbrook a8f8bef098 Fix ambiguous else warning. 1999-04-18 09:33:20 +00:00
Bertho Stultiens 77f08f330e UnitializeCriticalSection partial stub implementation. 1999-04-15 16:42:50 +00:00
Ulrich Weigand 371fd75a39 Added new CLIENT_DebuggerRequest routine, implemented support for
DEBUGGER_FREEZE_ALL/DEBUGGER_UNFREEZE_ALL requests.
Run wine server in the main wine process.
Bugfix: never free initial thread!
1999-04-11 17:13:03 +00:00
Ulrich Weigand 9e696f8906 Non-functional PROCESS_Suspend/ResumeOtherThreads removed. 1999-04-11 17:11:09 +00:00
Marcus Meissner c26063818f - Started multithreading for FreeBSD (incomplete, but some
applications now at least start up again).
- Use _thread_sys_sigaction/_thread_sys_sigaltstack.
- CR2 on pagefault gets passed in sc_err (some kind of kludge in
  FreeBSD owns fault handling we can use)
1999-04-11 15:20:29 +00:00
Ulrich Weigand f6461fe290 Allow user APCs with NULL 'func' (just wake up the thread). 1999-04-11 15:02:18 +00:00
Ulrich Weigand 7761cbe0b6 Implemented 'kernel services thread'. 1999-04-11 15:01:20 +00:00
Ulrich Weigand 2e658768dc Send USIG_PROCESS_CREATE signal.
Bugfix: GetProcessDword offset -8 should return parent process ID.
1999-04-11 12:06:04 +00:00
Ulrich Weigand 8139c30125 Implemented PROCESS_CallUserSignalProc().
Send USER signals at various appropriate places.
Moved [GS]etProcessDword() to scheduler/process.c.
1999-04-01 11:43:05 +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 1c40024b15 Added cmd line in new_process request. 1999-03-27 16:21:05 +00:00
Ulrich Weigand 4cf15118eb All threads created with CreateThread are 32-bit threads. 1999-03-27 16:19:00 +00:00
Alexandre Julliard 875c4b3c61 Added server pid and tid in init_thread request, and use them in
CLIENT_InitThread.
1999-03-23 14:09:41 +00:00
Ulrich Weigand 93b23d746d Run Win32 processes in their own threads.
Process exit sequence adapted.
1999-03-22 10:35:44 +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
Ulrich Weigand 2f2898b571 Handle suspend/resume_thread requests in phase STARTING correctly.
Set initial suspend count for threads created with CREATE_SUSPENDED.
Set 'inheritable' flag for process/thread handles.
1999-03-16 16:28:36 +00:00
Alexandre Julliard 301f2c6922 Separated thdb freeing code from ExitThread. Now we only need to call
THREAD_FreeTHDB from somewhere...
1999-03-14 19:48:04 +00:00
Alexandre Julliard 5eca3afa9f Do not call ExitThread() on server communication errors. 1999-03-14 19:46:35 +00:00
Marcus Meissner 88e651dac3 Fixed newly introduced and some leftover warnings. 1999-03-13 18:20:26 +00:00
Ulrich Weigand 3366f18464 Implemented _ConfirmWin16Lock (KERNEL32.96). 1999-03-10 16:25:22 +00:00
Alexandre Julliard 3f09ec5263 CLIENT_WaitReply: don't clear last error on success; fixed callers
accordingly (based on a patch by Juergen Schmied).
1999-02-28 19:25:51 +00:00
Alexandre Julliard 96c08d817c Use server handles directly for Win32 handles. Removed use of K32OBJ. 1999-02-28 13:27:56 +00:00
David Luyer ee517e863e - fixed missing stdlib.h and string.h includes everywhere
- removed a couple of unneeded stdlib.h and stdio.h includes
1999-02-28 12: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
Ulrich Weigand 6e0d38603e Process creation sequence reorganized:
- Removed instance data segment for all but NE modules.
- Check binary type in CreateProcess before loading module.
- Unix process creation moved from WinExec to CreateProcess.
- Bugfix: fill in thdb->teb.htask16 member correctly.
1999-02-28 11:14:32 +00:00
Alexandre Julliard 875d112dd7 Removed dst_handle in duplicate_handle request.
Added inherit flag in create_mapping request.
1999-02-28 10:12:48 +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
Ulrich Weigand 1d90d69f08 Modified process creation sequence: call PE_CreateModule in the
context of the new process (in TASK_CallToStart).
Changed all PE/Module routines so as to always operate on the current
process; adapted all callers.
1999-02-24 14:27:07 +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
Alexandre Julliard 13e55192b9 Removed thread queue functions.
Changed initial thread creation to avoid memory allocations.
Moved server startup to THREAD_CreateInitialThread.
1999-02-21 18:34:18 +00:00
Alexandre Julliard d16927efdb Removed use of per-thread wait_struct, cleaned up a bit. 1999-02-21 18:29:59 +00:00
Alexandre Julliard d6cb784269 Removed MEM_MAPPED_FILE_Ops. 1999-02-21 18:28:40 +00:00
Marcus Meissner 04c3e1d456 Removed a lot of occurences of windows.h (and added necessary other
includes).
1999-02-19 10:37:02 +00:00
Francois Gouget 289211cc3b Fixed a number of warnings concerning the matching of the printf
format string and the associated parameters (actually it's mostly
TRACE and FIXMEs).
1999-02-17 16:15:11 +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
Alexandre Julliard c521db616a Removed CONSOLE_Ops. 1999-02-14 18:04:20 +00:00
Alexandre Julliard 60742b0408 Removed PROCESS_GetPtr. 1999-02-14 17:51:01 +00:00
Stephane Lussier 91bb1f974c - Cleaned up the message queue when a thread exit (but not the process).
- Modified QUEUE_DeleteMsgQueue to exit gracefully (without crashing Wine) if
  queue link list is corrupted.
1999-02-09 14:07:07 +00:00