Commit Graph

455 Commits (e33f327fe97365f25fb6121a1572160db6d3d2d1)

Author SHA1 Message Date
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 5f195f8c01 Small server protocol cleanups. 2001-02-20 23:45:07 +00:00
Alexandre Julliard a4bc5a2138 Pass the stdin/stdout handles on startup to use as console (based on a
patch by Eric Pouech).
2001-02-16 19:08:19 +00:00
Patrik Stridvall d0a41774a3 Documentation ordinal fixes. 2001-02-14 23:11:17 +00:00
Josh DuBois 169adf5c64 More verbose error messages when application load fails. 2001-02-13 20:23:45 +00:00
Alexandre Julliard e9936d96e1 Changed wait_process and wait_debug_event requests to never block;
waiting is always done through WaitForSingleObject().
2001-01-26 00:22:26 +00:00
Josh DuBois ec33cd6959 SERVICE_CreateServiceTable still returned TRUE if CreateThread failed. 2001-01-17 21:50:17 +00:00
Alexandre Julliard 598412ed6a Cleaned up the various errno location tests in configure.
Added (h_)errno_location pointers in the library that allow remapping
the calls in higher level dlls.
Moved X11DRV_CritSection out of sysdeps.c and into x11drv.dll.
2001-01-17 20:22:22 +00:00
Alexandre Julliard 8efd454067 Removed CALL_LARGE_STACK support. 2001-01-15 22:30:50 +00:00
Alexandre Julliard 7d5bc5c3f9 Removed some direct accesses to the 16-bit task structure. 2001-01-15 20:09:09 +00:00
Alexandre Julliard a5ed3b19eb Removed obsolete get_req_buffer() function. 2001-01-12 19:58:52 +00:00
François Gouget 1dac6eac63 SERVICE_AddObject check for NULL handles in addition to
INVALID_HANDLE_VALUE.
2001-01-09 20:51:36 +00:00
Alexandre Julliard 105b0f4e64 Use the exe name and file handle we got from the server also when
starting Win16 or DOS programs, to avoid depending on the contents of
the command-line.
2001-01-06 01:55:49 +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
François Gouget da2b6a9f26 Fixed some HFILE vs. HANDLE mismatches.
If not used the last parameter of CreateFile must be 0, not -1.
2001-01-06 01:29:18 +00:00
Alexandre Julliard ad29b90d08 Send the exe file handle in init_process_done request. 2001-01-05 22:24:15 +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 1dc755360b Pass the application name also when starting a Unix app, and use it to
load the main exe .so file.
Fixed bug in directory handling in PROCESS_Create.
2001-01-03 21:53:33 +00:00
Andreas Mohr a6d83ebae1 - clarify many error messages
- add data corruption warning to README file
2000-12-27 04:02:46 +00:00
François Gouget 55146dbe18 Fixed a few type clashes in preparation for the switch to STRICT. 2000-12-24 20:33:01 +00:00
Alexandre Julliard 2930b9c461 Fixed copy/paste bug (thanks to Gerard Patel). 2000-12-22 20:32:23 +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 f45f66beff Commented out large stack init now that thread stacks are at least 1Mb. 2000-12-14 19:30:01 +00:00
Alexandre Julliard db0747d095 Removed some unnecessary includes.
Got rid of ldt.h.
2000-12-13 20:23:41 +00:00
Alexandre Julliard 6c8edaa667 Use getpagesize() instead of VIRTUAL_GetPageSize(). 2000-12-13 20:22:47 +00:00
Alexandre Julliard 982a223f36 Replaced PTR_SEG_TO_LIN macro by exported MapSL function.
Fixed a few ptr/segptr mismatches.
Moved CONV_RECT/POINT macros to wingdi16.h.
2000-12-13 20:20:09 +00:00
Alexandre Julliard 751625e089 Got rid of main.h. 2000-12-12 00:50:19 +00:00
Alexandre Julliard becb9a353b Moved all Wine internal definitions out of process.h. 2000-12-11 03:48:15 +00:00
Alexandre Julliard cc7aef32b7 Display an error message if loading a Winelib app failed (suggested by
Francois Gouget).
2000-12-03 03:17:41 +00:00
Patrik Stridvall 2b3aa616e8 Added/modified documentation for function arguments. 2000-12-01 23:58:28 +00:00
Alexandre Julliard ef57e18f99 Removed some unnecessary includes. 2000-12-01 21:32:55 +00:00
Alexandre Julliard 42a7320388 Export the wine server functions from ntdll. 2000-11-30 18:51:58 +00:00
Alexandre Julliard 71d68bbae0 Use the HEAP_WINE_SEGPTR flag to specify allocations on the segptr heap.
Added a hack in MapLS to recognize such allocations and use the heap
selector in this case.
2000-11-30 01:19:51 +00:00
Alexandre Julliard e296bf3717 Renamed CallTo16* functions to wine_call_to_16* and export them from
kernel32.spec.
2000-11-29 19:39:30 +00:00
Alexandre Julliard 27bb311d70 Added implementation of lstat to port.c. 2000-11-29 17:48:06 +00:00
Dimitrie O. Paun 529da54394 Require {DECLARE,DEFAULT}_DEBUG_CHANNEL statements to end in a ; 2000-11-27 23:54:25 +00:00
Andreas Mohr a59324db91 Cosmetics. 2000-11-25 01:40:10 +00:00
Dimitrie O. Paun 0b7a7bbc06 Include config.h in files that test for constants defined in it. 2000-11-25 01:31:17 +00:00
Alexandre Julliard ab687979fd Moved standard syslevel APIs declaration to winbase.h.
Use exported syslevel function wherever possible.
Moved SEGPTR declaration to windef16.h.
2000-11-15 23:41:46 +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
Mike McCormack 1eac1911c7 - created server object for handling async i/o
- implemented WaitCommEvent with the EV_RXCHAR flag
- implemented GetOverlappedResult
2000-11-13 19:27:21 +00:00
Alexandre Julliard 8c540c657e Replaced a few internal functions by exported ones. 2000-11-13 04:16:05 +00:00
Ove Kaaven ccc538beac Unix98 pthread_rwlock* stubs for glibc2.2 compatibility. 2000-11-13 04:14:49 +00:00
Alexandre Julliard 591832ec2e Added support for loading a Winelib app linked as a .so from the wine
launcher, based on the value of argv[0].
2000-11-10 01:38:28 +00:00
Alexandre Julliard 4e951ea25b Check all Callouts function pointers for NULL before using them.
Don't load USER dll if not needed by the application.
2000-11-08 22:47:53 +00:00
Alexandre Julliard e087508f57 Moved builtin dll registration to libwine.
Changed process initialization to not load imported dlls too early.
2000-11-08 04:33:20 +00:00
Alexandre Julliard 8d1462b614 pthread_atfork: don't call critical section functions before
initialization is done.
2000-11-07 20:32:52 +00:00
Alexandre Julliard 908464d448 Authors: Andreas Mohr <amohr@codeweavers.com>, Dimitrie O. Paun <dimi@cs.toronto.edu>, Patrik Stridvall <ps@leissner.se>
Various warning fixes.
2000-11-01 03:11:12 +00:00
David Elliott 44f84b55f3 Added basic working stubs of new Windows 2000 API functions. 2000-10-29 01:24:54 +00:00
Jeremy White 51e4657694 Added support for a WINELOADER environment variable which allows the
specification of a different binary loader.
2000-10-25 20:28:22 +00:00
Alexandre Julliard 57f05e1913 Converted a few more server requests to the new mechanism. 2000-10-15 00:40:25 +00:00
Alexandre Julliard aef9a36059 Use special environment variables to transmit the cwd of the various
drives to child processes (based on a patch by Andreas Mohr).
2000-10-03 04:19:16 +00:00
Alexandre Julliard d76f9f9637 Implemented a bunch of large integer functions in ntdll. 2000-10-01 01:40:42 +00:00
Alexandre Julliard afb49ead82 Moved a bunch of routines to kernel32.dll (with the help of
Dimitrie O. Paun).
2000-09-29 20:48:04 +00:00
Alexandre Julliard baa15566a0 Moved critical section implementation to ntdll. 2000-09-29 00:31:23 +00:00
Alexandre Julliard 15bfcd0398 Moved $(MODULE).o rule out of Make.rules into the individual
Makefiles.
2000-09-29 00:28:25 +00:00
Alexandre Julliard 072dfb57e3 Removed inclusion of wine/winestring.h from winbase.h and added it to
the C files that need it.
2000-09-25 23:30:56 +00:00
Andreas Mohr c941effc24 Make GetTickCount not use the whole Unix epoch (since 1970) any more,
since that crashed several games or caused problems with them as they
aren't used to a high Windows uptime of more than 24.9 days.
2000-09-22 22:37:56 +00:00
Roberto Augusto Pungartnik 19f8dda01b Added S_ISFIFO check for Solaris. 2000-09-22 22:19:58 +00:00
Andreas Mohr 20cd9356a8 - fixes debugger output
- get rid of wrong comments
- fix comments
- .spec spelling fix
- improve warning message
2000-09-12 23:40:40 +00:00
Alexandre Julliard 50097a0ce8 Added WINESERVER environment variable to allow overriding the normal
server search sequence.
2000-09-10 03:24:28 +00:00
Alexandre Julliard 4b15574923 Implemented RtlpWaitForCriticalSection and RtlpUnWaitCriticalSection. 2000-09-10 03:16:08 +00:00
Andreas Mohr 9714152e01 Avoid crash on empty command-line. 2000-09-02 23:18:16 +00:00
Alexandre Julliard 92643003cf Converted a lot of server requests to the new exception handling
mechanism.
2000-08-31 01:59:51 +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 973ce4a088 Moved TASK_Create call to KERNEL initialisation routine.
Clear last error code before calling main entry point (reported by
James Juran).
2000-08-25 22:02:14 +00:00
Alexandre Julliard ea1afcef49 Added APC support in waitable timers. 2000-08-22 20:08:37 +00:00
Andreas Mohr d398aacfeb - don't return FALSE for system process changes
- SHUTDOWN_NORETRY is 1 and has to be in winbase.h
2000-08-21 20:17:56 +00:00
Mike McCormack 8d5db55cc5 Save GET_APCS data before calling any asynchronous procedure calls, in
case the server is called during the APC.
2000-08-18 23:40:45 +00:00
Huw D M Davies 94237ded13 Fix for starting server from the current directory. 2000-08-14 13:26:30 +00:00
Alexandre Julliard c10c9ef4f1 Made server startup more robust against races caused by a previous
server terminating at the same time.
2000-08-11 21:16:53 +00:00
Alexandre Julliard 5ab9d860f2 Removed some unnecessary #includes and dll dependencies. 2000-08-09 22:35:05 +00:00
Alexandre Julliard 52900c818f Make PDB, ENVDB and STARTUPINFO global variables.
Added 'module' field in PDB, and removed Wine-specific fields.
2000-08-09 22:33:42 +00:00
Alexandre Julliard 46733de12b Removed winver and service_table from the PDB and made them static
variables.
2000-08-09 22:31:24 +00:00
Alexandre Julliard 081ee94117 - Fixed resource functions to work directly from the HMODULE instead of
requiring a modref.
- Attempted to get LOAD_LIBRARY_AS_DATAFILE right (based on patches by
  Eric Pouech and Dusan Lacko).
- Simplified modref structure and handling.
2000-08-07 04:12:41 +00:00
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