Commit Graph

127 Commits

Author SHA1 Message Date
Alexandre Julliard 7924f421e9 Allocate the TEB and signal stack separately from the main stack.
Dynamically allocate the initial TEB too so that it is properly
page-aligned.
2003-11-04 04:50:18 +00:00
Alexandre Julliard 0f95d5498d Fixed race in %gs selector restoring during vm86 mode return.
Minor cleanups.
2003-10-30 23:15:56 +00:00
Alexandre Julliard 07931f2d70 Removed no longer needed SIGNAL_Unblock() function. 2003-10-28 21:46:46 +00:00
Alexandre Julliard 4cb001967a Switch back to the main process stack before calling exception
handlers.
2003-10-28 00:30:55 +00:00
Alexandre Julliard 8824c38e9e Simplified signal stack allocation a bit, and avoid allocating it on
non-i386 platforms.
2003-10-22 03:26:53 +00:00
Jukka Heinonen 46f29944c3 Remove races from DPMI async event handling. 2003-10-14 05:20:34 +00:00
Alexandre Julliard 67d9f38059 Added __wine_set_signal_fs function to avoid sharing the
SYSLEVEL_Win16CurrentTeb variable between kernel and ntdll.
On the kernel side, replaced SYSLEVEL_Win16CurrentTeb by
CallTo16_TebSelector stored directly in the asm relay code to avoid a
run-time relocation.
2003-10-08 22:59:22 +00:00
Alexandre Julliard bff860c4b1 Moved synchronization and syslevel routines to dlls/kernel. 2003-09-18 04:39:13 +00:00
Alexandre Julliard 1479aebda3 Moved instruction emulation to dlls/kernel. 2003-09-17 04:34:31 +00:00
Alexandre Julliard e37c6e18d0 Fixed header dependencies to be fully compatible with the Windows
headers (with help from Dimitrie O. Paun).
2003-09-05 23:08:26 +00:00
Alexandre Julliard bf97962a51 Avoid including stackframe.h if it's not needed. 2003-08-27 02:52:17 +00:00
Jukka Heinonen 2a3ce4c425 Start processing asynchronous DOS events in DPMI mode. 2003-07-01 03:37:41 +00:00
Alexandre Julliard 217fdab78f Implemented NtDelayExecution and make Sleep call it.
The handle count must not be 0 in NtWaitForMultipleObjects (spotted by
Troy Rollo).
2003-06-30 21:00:15 +00:00
Jukka Heinonen ae906923a1 Remove SIGALRM handler.
Reserve TEB field for DPMI virtual interrupt flag.
2003-06-16 01:18:26 +00:00
Eric Pouech 8638b26483 Correctly convert into EXCEPTION_RECORD SIGTRAPs received from
DebugBreakProcess.
2003-06-07 00:33:13 +00:00
Yorick Hardy 6dd0685f74 Use SA_RESTART on NetBSD. 2003-06-04 20:15:10 +00:00
Alexandre Julliard 0b34697abb Made INSTR_EmulateInstruction return the exception code.
Don't allow intXX instructions from 32-bit code (based on a patch by
Jukka Heinonen).
2003-05-14 19:41:16 +00:00
Alexandre Julliard ebe67a2864 Added support for retrieving page fault address on Solaris (based on a
patch by Robert Lunnon).
2003-05-06 18:50:08 +00:00
Alexandre Julliard 088bcf9ca5 Implemented NtQueueApcThread, and changed the server APC interface to
always take 3 parameters.
Implemented a number of other ntdll thread functions, and use them
from the kernel ones.
2003-04-04 22:26:34 +00:00
Eric Pouech 14d04b608c No longer call WaitFor*Object* from ntdll (but NtWait*Object*). 2003-04-03 23:57:11 +00:00
Yorick Hardy 14251f1b48 Added fields from NetBSD struct sigcontext on i386. 2003-03-28 00:29:45 +00:00
Alexandre Julliard 78675ba234 Store %gs in the TEB on every call to 16-bit code, and don't restore
it from the TEB for signals that did not happen in 16-bit code.
2003-03-25 00:36:16 +00:00
Alexandre Julliard a993df861c Make sure changes to the debug registers while inside a SIGTRAP
exception are taken into account (based on a patch by Alex Pasadyn).
2003-03-24 19:31:10 +00:00
Alexandre Julliard 6a26e3f7ac Split signal blocking code out of SIGNAL_Reset into SIGNAL_Block.
Added SIGTERM handler.
2003-03-21 23:45:26 +00:00
Alexandre Julliard d04ccb8ebe Use SIGUSR1 instead of SIGSTOP to suspend threads. 2003-03-04 22:18:43 +00:00
Alexandre Julliard 551797bc57 Properly save/restore %gs register across 16-bit calls. 2003-02-27 21:11:13 +00:00
Alexandre Julliard b4a4c05aed Removed a few more #ifdef __WINE__. 2003-01-04 00:19:17 +00:00
Jukka Heinonen bbb7dc0fad When asynchronous signals are blocked, block also SIGUSR2.
Fix race that made signal handler forget to restore FS register.
2002-12-13 23:28:01 +00:00
Alexandre Julliard 435e2e63f4 winnt.h should not be self-contained, it must depend on windef.h so
that STRICT works correctly; moved some definitions back to windef.h
where they belong, and removed a couple of definitions that don't
exist on Windows.
2002-12-10 22:56:43 +00:00
Marcus Meissner 727c31d7a0 Only enable VM86 mode if we have the <sys/vm86.h> include file. 2002-11-08 18:53:32 +00:00
Lionel Ulmer bdb44555a3 Raise an exception if any Wine or Winelib code does an assert. 2002-10-28 23:56:58 +00:00
Patrik Stridvall 9c1de6de30 Moved all the content of the DDK files ntdef.h and ntddk.h to
winternl.h.
2002-09-12 22:07:02 +00:00
Patrik Stridvall a62a26ced0 Fixed some issues found by winapi_check. 2002-09-09 19:26:55 +00:00
Patrik Stridvall d016f819f1 Added include protection for unistd.h and sys/time.h. 2002-08-17 00:43:16 +00:00
Patrik Stridvall 4325554aef Fixed some issues found by winapi_check. 2002-08-09 01:07:29 +00:00
Rafael Kitover ac81d02a58 Portability fixes for Cygwin. 2002-07-31 20:04:20 +00:00
Eric Pouech 3d4d7e0153 Added a generic mechanism to set up hooks for dispatching signal
handlers outside ntdll.
2002-07-31 18:46:09 +00:00
Alexandre Julliard 65c6d38581 Replace all uses of PREFIX and @function by the __ASM_NAME and
__ASM_FUNC macros.
2002-07-22 20:47:11 +00:00
François Gouget 103295c769 Reset signals to SIG_DFL before starting a child process. 2002-06-13 21:57:38 +00:00
Eric Pouech 0d588a4a82 Fixed DebugBreakProcess (now generates EXCEPTION_BREAKPOINT instead of
EXCEPTION_SINGLE_STEP).
2002-06-02 21:36:39 +00:00
Eric Pouech 93bfa0d6b1 Implementation for console control events (includes process groups
support).
2002-06-02 21:22:22 +00:00
Vincent Béron 9a62491660 Removed trailing whitespace. 2002-05-31 23:06:46 +00:00
Alexandre Julliard 59008670be Moved the selector access functions out of winnt.h into libwine. 2002-05-16 20:32:16 +00:00
Alexandre Julliard 894b188fcf Moved __ASM_GLOBAL_FUNC macros and interlocked functions to port.[ch] 2002-04-25 21:40:56 +00:00
Alexandre Julliard 0799c1a780 Added LGPL standard comment, and copyright notices where necessary.
Global replacement of debugtools.h by wine/debug.h.
2002-03-09 23:29:33 +00:00
Alexandre Julliard 50c6b74a34 Added SIGNAL_Reset function. 2002-01-07 18:02:35 +00:00
Ove Kaaven 4eb0bebd90 Fixed vm86_enter race conditions. 2002-01-04 21:57:04 +00:00
Ove Kaaven bf1e9682f4 Protect against an interrupt-pending signal recursion. 2001-10-28 21:16:22 +00:00
Patrik Stridvall 4b1574577d - Made sure that the files that contains the declarations
of the implementated functions are included.
- Corrected mismatching prototypes.
- Cleaned up the include section.
2001-07-23 23:50:18 +00:00
Patrik Stridvall a274dd9105 Fixed some issues found by winapi_check. 2001-07-02 01:22:10 +00:00
Alexandre Julliard 7f862cb2d2 Don't compile vm86-specific code on platforms that don't support it. 2001-06-25 21:08:47 +00:00
Ove Kaaven 6e33f63e4a Extended __wine_enter_vm86 to handle pending interrupts. 2001-06-21 00:39:34 +00:00
Patrik Stridvall 3ca9823941 Documentation ordinal fixes. 2001-06-20 23:03:14 +00:00
Ove Kaaven e4a98ec195 Block SIGINT and SIGALRM in signal handlers. 2001-06-15 19:43:15 +00:00
Bang Jun-Young 284a78f5cc Do not use internal exception codes defined by Wine with NetBSD,
rather use native ones from /usr/include/i386/trap.h. Note that T_MCHK
is not supported by NetBSD.
2001-05-09 19:45:07 +00:00
Ove Kaaven 0b6c6e7605 Fixed small race condition between vm86_enter() and signal handling.
Made separate save_vm86_context and restore_vm86_context functions.
2000-12-29 03:29:31 +00:00
Dimitrie O. Paun 2af03e45b5 Do not include sys/ptrace.h and sys/user.h unconditionally.
Other portability fixes.
2000-11-29 20:04:09 +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
Joerg Mayer 650ba4df23 Move inline and static to the beginning of declarations. 2000-10-29 18:06:04 +00:00
Alexandre Julliard 5df110185a Fixed typo due to merge error. 2000-10-26 19:30:11 +00:00
Alexandre Julliard b59627c89f Added support for exception handling while in vm86 mode.
Fixed a couple of bugs in vm86 support.
2000-09-24 03:11:54 +00:00
Alexandre Julliard 45b2c868bb Added preliminary support for switching to vm86 mode with proper
exception handling.
2000-09-18 02:15:07 +00:00
Ove Kaaven 9b2060afab Change the V86BASE macro to call DOSMEM_MemoryBase() instead of using
the ugly Dr7 hack.
2000-07-23 13:36:41 +00:00
Dave Hawkes 52b6bd95d3 Exception handling for SIGFPE must always clear the FPU interrupt
status.
2000-06-23 16:49:09 +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
Alexandre Julliard 0045def764 Fixed signal stack handling on Linux when sigaltstack is available.
Added a direct sigaltstack syscall to work-around the glibc bug.
2000-04-13 19:25:52 +00:00
Alexandre Julliard 51f6aeb462 Implemented guard pages and stack overflow exceptions. 2000-04-13 17:21:36 +00:00
Patrik Stridvall d628f43693 Fixed some ANSI C violations. 2000-03-24 20:42:08 +00:00
Alexandre Julliard 7d0dd5f327 Added DbgBreakPoint. Fixed exception record contents on SIGTRAP. 2000-03-07 13:10:21 +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
Alexandre Julliard 383da68cf9 Optimized debugging API to reduce code size. 2000-02-10 22:15:21 +00:00
Juergen Lock ba6d54a4a6 Set/use fs/gs from the sigcontext struct, the corresponding kernel
change now finally has been MFC'd to -stable.
1999-11-25 23:17:58 +00:00
Niels Kristian Bech Jensen 1d5bc469cc Removed extra #include statements. 1999-11-21 02:14:36 +00:00
Ulrich Weigand eb94c7d2c4 Adapted to new register function handling. 1999-11-13 23:54:04 +00:00
Patrik Stridvall 282b13bcdc Solaris compile fix. 1999-10-24 21:29:48 +00:00
Alexandre Julliard de5e1af2bd Support TRAP_sig for FreeBSD (with the help of Juergen Lock). 1999-09-28 13:15:27 +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