Commit Graph

189 Commits

Author SHA1 Message Date
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
Noel Borthwick b427856b45 Added management and allocation of the PERQUEUEDATA structure. 1999-02-05 10:37:53 +00:00
Geoff Clare 0b78af7c01 Fix to allow for recvmsg() returning less data than is needed. 1999-01-31 18:57:28 +00:00
Alexandre Julliard d757fc60bb Clear last error on all successful requests. 1999-01-31 15:06:28 +00:00
Juergen Schmied ab9ac83e97 List handles WaitForMultipleObjects is waiting for when running with
-debugmsg +win32.
1999-01-31 09:22:14 +00:00
Alexandre Julliard 47b3f322ce Commented out EXEC_SERVER 1999-01-26 13:29:00 +00:00
Guy Albertelli c66f5d5983 Added stub for SetThreadLocale. 1999-01-24 09:59:14 +00:00
Alexandre Julliard 62a8b43301 Hacked server-side device support
Added user APCs support.
Many changes to the xterm console to make use of the server (not
finished yet).
Moved some other small stuff to the server.
1999-01-19 17:48:23 +00:00
Alexandre Julliard 8da12c43a9 Group commit for recovery after disk crash.
See Changelog for changes WRT release 990110.
1999-01-17 16:55:11 +00:00
Alexandre Julliard 638f169b1e Recovery of release 990110 after disk crash.
See Changelog for changes between 990103 and 990110.
1999-01-17 16:32:32 +00:00
Alexandre Julliard 0562539d18 Implemented file sharing checks in the server.
Added set file time server request.
Overall clean up of the file handling (DOS device handling is now
broken, should be redone).
1999-01-03 11:55:56 +00:00
Alexandre Julliard eafae34251 Got rid of CLIENT_GetProcessInfo. 1999-01-01 18:59:01 +00:00
Alexandre Julliard 94401dc0c1 Fixed CloseHandle() on global handles. 1999-01-01 18:46:35 +00:00
Alexandre Julliard dbf2bf00bc Moved MsgWaitForMultipleObject implementation to USER routines, using
a normal Win32 event.
1999-01-01 17:05:53 +00:00
Alexandre Julliard 6ebbe3c949 Cleaned up and removed some no longer used code. 1999-01-01 17:04:00 +00:00
Alexandre Julliard f8e741bcbe Take into account handle inheritance flag. 1999-01-01 16:53:11 +00:00
Alexandre Julliard d1717c6b1e Re-implemented using a real semaphore. 1998-12-31 15:54:18 +00:00
Alexandre Julliard 55443878fc Removed client-side wait functions; all waiting is now done through
the server.
1998-12-31 15:52:06 +00:00
Alexandre Julliard 748ff0f985 Changed server wait logic a bit. 1998-12-30 12:11:52 +00:00
Alexandre Julliard 942e6d778c Added anonymous pipe support 1998-12-30 12:08:20 +00:00
Alexandre Julliard 338e757d08 Added beginnings of server-side file handling.
Added -debugmsg +server support.
Better server request dumping for varargs requests.
1998-12-27 15:28:54 +00:00
Alexandre Julliard c6e45ed546 Added add_queue/remove_queue to server object operations.
Moved select() loop functions to select.c.
1998-12-27 08:35:39 +00:00
Patrick Spinler 3f8e1e4d44 Implemented CreateToolhelp32Snapshot, including two of the routines
using snapshots, Process32First and Process32Next.
1998-12-11 15:04:11 +00:00
Ulrich Weigand ca1c74751a Bugfix: Set the TEBF_WIN32 flag in teb.flags for 32-bit threads. 1998-11-24 20:47:17 +00:00
James Sutherland 577db37b2a More complete implementation of the SetCtrlHandler() function (and the
related console functions).
1998-11-08 15:09:08 +00:00
Marcus Meissner e0e248eaee Solaris redefines ERR and CS, fixed occurances.
Solaris has TRAPNO in its sigcontext, added to sig_context.h
1998-11-06 16:30:41 +00:00
Huw D M Davies d0421889c8 Get rid of the redefinition of MAX_PATH and move PROCESSENTRY32
definition to toolhelp.h.
1998-11-01 19:23:52 +00:00
Ulrich Weigand c75d0e16bd Implemented new Wine startup sequence, separating startup into
KERNEL/USER/GDI related parts, allowing native replacement.
Implemented initial 'kernel' task.
1998-11-01 17:59:35 +00:00
Andreas Mohr 6569ba3f09 Added .spec entry for KERNEL.RegisterServiceProcess. 1998-11-01 13:32:44 +00:00
Patrick Spinler 24ee621110 Added stubs for Process32First/Process32Next. 1998-10-28 14:20:19 +00:00
Ulrich Weigand 4a546903a7 Added support for global handles, implemented ConvertToGlobalHandle.
Allocate startup data and 16-bit stack for initial process.
1998-10-24 12:00:33 +00:00
Marcus Meissner 05e2d3b456 LoadLibraryExW spec added (function was there).
SetProcessPriorityBoost stub added.
1998-10-24 11:18:59 +00:00
Uwe Bonnes c36a154ebb More off-by-one errors fixed. 1998-10-24 09:17:43 +00:00
Marcus Meissner a763ed9786 Added ordinal for two syslevel functions. 1998-10-22 17:02:25 +00:00
Uwe Bonnes f27920599a Fixed off by one error in HANDLE_GetObjPtr. 1998-10-19 08:41:52 +00:00