Commit Graph

210 Commits

Author SHA1 Message Date
Alexandre Julliard 4ce9af2ba5 ntdll: Clear the direction flag before calling exception handlers. 2008-03-20 14:27:35 +01:00
Alexandre Julliard 5625c6079e Get rid of the global thread.h header. 2008-03-01 11:57:00 +01:00
Alexandre Julliard 0375b7a1f3 ntdll: Don't fetch extended FPU context if there's no FPU context at all. 2008-01-22 10:20:12 +01:00
Alexandre Julliard 2cba11aa6f ntdll: Don't try to restore extended fpu context if not supported.
Remove an extra fpu context save left over from testing.
2008-01-18 12:02:31 +01:00
Alexandre Julliard 992de9f487 ntdll: Mac OS support for saving and restoring the extended FPU context on exceptions. 2008-01-15 20:36:40 +01:00
Alexandre Julliard bd352bcd1c ntdll: Linux support for saving and restoring the extended FPU context on exceptions. 2008-01-15 20:36:40 +01:00
Eric Pouech aff968fb47 valgrind: Made Wine compliant will latest Valgrind macros (the one removed from 3.3.0 and deprecated since 3.2.0). 2007-12-24 13:30:39 +01:00
Alexandre Julliard 3b244b95b2 server: Use SIGQUIT instead of SIGTERM to terminate a thread.
This allows keeping the default SIGTERM behavior of killing the whole
process.
2007-12-20 12:19:35 +01:00
Peter Beutner db28edc790 ntdll: Better trap exception handling. 2007-11-12 14:14:28 +01:00
Peter Beutner fc5316760b ntdll: Don't try to handle kill(SIGTRAP). 2007-11-12 14:14:23 +01:00
Alexandre Julliard 0156dbba4f ntdll: Increase the signal stack size to avoid crashes on nested signals. 2007-11-08 13:53:47 +01:00
Francois Gouget b2bc712323 Assorted spelling fixes. 2007-09-27 20:12:53 +02:00
Alexandre Julliard 44c9758d05 ntdll: Move private data to make room in the TEB for the activation context data. 2007-07-19 16:56:10 +02:00
Alexandre Julliard b5953831c3 ntdll: Use the standard exception handling for vm86 GP faults too. 2007-06-25 19:47:58 +02:00
Alexandre Julliard c5134b77c6 ntdll: Support setting the CPU context on the current thread without segment registers. 2007-05-08 20:09:25 +02:00
Andrew Talbot ab2a48ae43 ntdll: Remove superfluous semicolons. 2007-04-12 16:16:58 +02:00
Andrew Talbot 0108667754 ntdll: Replace inline static with static inline. 2007-03-17 20:03:57 +01:00
Alexandre Julliard cdb833bf33 ntdll: Fixed some exception codes and parameters. 2007-03-14 12:02:43 +01:00
Alexandre Julliard 7d12fbcc5b ntdll: Changed some Solaris defines so that we can access the signal error code. 2007-03-14 09:53:59 +01:00
Alexandre Julliard 0d16a7bbe4 Fixed some compilation issues on Mac OS X Leopard. 2007-03-12 16:14:18 +01:00
Peter Beutner 4a831ec716 ntdll: Handle SIMD exceptions. 2007-03-09 11:53:26 +01:00
Alexandre Julliard c388c58b9f ntdll: Make the server signal mask global. 2007-01-18 12:20:56 +01:00
Joel Parker 2319999a05 Remove redundant semicolons for ANSI compatibility. 2007-01-17 11:58:15 +01:00
Peter Beutner 6f88a7b7d4 ntdll: Fix single stepping over popf instruction. 2006-12-04 12:23:20 +01:00
Hans Leidekker f7b0ba7aa7 ntdll: Win64 printf format warning fixes. 2006-10-18 12:35:26 +02:00
Marcus Meissner 86c0bb3be5 ntdll: Clear alignment check flag before entering exception handler. 2006-10-03 11:24:52 +02:00
Marcus Meissner 57a04062fe ntdll: Align stack to 4 bytes. 2006-09-28 12:23:32 +02:00
Robert Shearman 5881d91cfc ntdll: Avoid crashing in check_atl_thunk if an execution exception was raised with a bad address. 2006-09-28 11:55:50 +02:00
Marcus Meissner 07d84bf656 ntdll: Avoid ebx being clobbered in exception handler. 2006-09-25 21:27:14 +02:00
Alexandre Julliard a27d0aa4e9 include: Added definitions for the fault address exception information. 2006-09-20 11:27:53 +02:00
Alexandre Julliard 0839ea104a ntdll: Added sysctl to make the signal stack per-thread on MacOS. 2006-09-07 18:08:46 +02:00
Alexandre Julliard c627cbd765 ntdll: Remove some macros and clean up the code now that all platforms use siginfo. 2006-08-11 14:45:11 +02:00
Alexandre Julliard 38cf3a4305 ntdll: Switch linux to siginfo-style signal handling. 2006-08-11 14:14:38 +02:00
Alexandre Julliard ea08ec55b2 ntdll: Get rid of the Linux legacy signal stack switching.
It doesn't work right in 32-bit code anyway.
2006-08-07 16:45:45 +02:00
Tijl Coosemans 148120f21e ntdll: Cleanup signal_i386.c a bit and fix *BSD. 2006-08-07 15:57:49 +02:00
Jonathan Ernst 360a3f9142 Update the address of the Free Software Foundation. 2006-05-23 14:11:13 +02:00
Alexandre Julliard d2ad6f8355 ntdll: Get registers on the client side for NtGetContextThread on the current thread. 2006-04-20 15:40:28 +02:00
James Hawkins 14faf12845 ntdll: Return error if the signal index equals the size of the array. 2006-04-07 11:46:12 +02:00
Alexandre Julliard a1f0f39174 ntdll: Save FPU context for all exceptions. 2006-04-03 21:39:33 +02:00
Petr Tesarik e748a77e1a ntdll: Fix debug exceptions from VM86.
- Set ContextFlags accordingly in save_vm86_context().
- Raise debug exceptions correctly for debug exceptions.
- Do not clear TF bit for VM86-generated debug exceptions.
2006-03-27 11:30:50 +02:00
Detlef Riekenberg 43a0f0c85a ntdll: Avoid compile error caused by a single quote. 2006-02-21 11:12:28 +01:00
Robert Shearman 3e47c82e02 ntdll: Add a define for SYS_sigaction to __NR_sigaction.
Print an error if __NR_sigaction doesn't exist as this means the wrong
syscall header is being used.
2006-02-20 20:31:51 +01:00
Eric Pouech c67bc2260c A couple of new valgrind instrumentations for better support. 2006-02-14 13:06:29 +01:00
Alexandre Julliard 57550776ce ntdll: Added emulation of ATL thunks for platforms with NX support. 2006-02-10 15:13:59 +01:00
Robert Millan 8800352477 Enable for GNU/kFreeBSD the same kernel-specific interface/parameter
that is used with FreeBSD.
2006-02-05 13:06:50 +01:00
Robert Millan 62af0706ff ntdll: Rename i386 CPU trap codes to avoid collision with system headers. 2006-02-03 12:30:55 +01:00
Eric Pouech 2e0b5336f6 Suppress some false-positives reported by valgrind. 2006-01-27 16:17:51 +01:00
Alexandre Julliard 4ce433d826 ntdll: Move the %gs register to the ntdll_thread_regs structure. 2006-01-20 16:54:11 +01:00
Alexandre Julliard a19e3eeb20 ntdll: Move the TEB register to the ntdll_thread_regs structure. 2006-01-20 16:18:06 +01:00
Alexandre Julliard 2878d99216 ntdll: Add debug registers to the context of all exceptions.
Maintain a local cache of the debug registers to avoid server calls
where possible.
2006-01-13 13:58:14 +01:00
Alexandre Julliard 2654be08d5 ntdll: Handle NtSetContextThread on the client side (as far as
possible) when setting the context of the current thread.
2006-01-11 20:20:32 +01:00
Alexandre Julliard 8651ceb18e ntdll: Make __wine_call_from_32_restore_regs take a context pointer.
Changed exception raise functions to call it explicitly.
2005-12-19 09:59:50 +01:00
Alexandre Julliard 07f84d0458 ntdll: More compatible exception information for protection faults.
Added a bunch of test cases.
2005-12-16 16:27:39 +01:00
Alexandre Julliard f3dad37ba2 TEB.StackLimit should not include the guard page. 2005-12-12 17:28:32 +01:00
Alexandre Julliard cc01e8ff05 Preserve 16-byte stack alignment in the various assembly
functions. Needed for MacOSX.
2005-11-23 19:55:06 +01:00
Ken Thomases a63acd71c8 Updated context definitions for the latest Darwin/x86. 2005-11-15 18:15:56 +00:00
Alexandre Julliard 86f8aef511 Use proper asm name for external functions. 2005-11-15 12:05:45 +00:00
Alexandre Julliard 73c72390f8 Fixed Get/SetThreadContext to work properly on suspended threads.
Added a test case.
2005-11-02 20:54:12 +00:00
Robert Shearman 2a02dd1f05 Make the call exception handler function more compatible with NT and
with what Shrinker expects.
2005-11-01 09:21:03 +00:00
Marcus Meissner 98ed5585c7 Added assembly implementation of EXC_CallHandler. 2005-10-31 14:08:05 +00:00
Alexandre Julliard 7955fb01d7 Clear the single-step flag in setup_exception instead of in the
SIGTRAP handler to avoid having the assigmnent optimized out.
2005-10-04 15:56:34 +00:00
Alexandre Julliard 2eaff5074f Fixed exception handling on MacOS. 2005-09-27 09:36:15 +00:00
Alexandre Julliard fb9cead92b Support arbitrary sizes for the thread signal stack, and set the
default size from the MINSIGSTKSZ constant.
2005-09-14 10:36:58 +00:00
Glenn Wurster cee9a0f2a3 Make stack check work if stack is a small value. 2005-08-25 19:20:21 +00:00
Alexandre Julliard 2e1f8fc8dd Some fixes for the Darwin build. 2005-07-03 11:24:54 +00:00
Mike McCormack 04f9f1b066 Don't include winbase.h or winerror.h when not necessary. 2005-06-21 09:52:40 +00:00
Alexandre Julliard ab29aa2126 Moved the ntdll per-thread data out of the TEB into a private
structure stored in TEB.SystemReserved2.
2005-06-06 20:04:33 +00:00
Alexandre Julliard e4412a618c Removed the special casing of kernel32 and ntdll for the TEB
definition in winternl.h.
2005-05-16 17:52:10 +00:00
Alexandre Julliard d876893fc1 Store the 16-bit stack pointer in the WOW32Reserved TEB field. 2005-05-14 12:16:46 +00:00
Alexandre Julliard 26050b49d5 Prefix the internal name of all register functions with __regs_ for
better consistency and to make automated checking possible.
2005-05-07 18:10:30 +00:00
Mike McCormack f92fff66a2 Implemented NtSignalAndWaitForSingleObject. 2005-04-24 17:35:52 +00:00
Dmitry Timoshkov 0497af09a7 Match RaiseException and EXCEPTION_RECORD to SDK definitions. 2005-02-24 13:15:36 +00:00
Peter Chapman 505dfdefb5 Fix up several inline assembler blocks so that they produce correct
code with the -fomit-frame-pointer gcc flag.
2004-12-02 18:19:25 +00:00
Pierre d'Herbemont ed7a2bab5f Added signal support for Darwin/i386. 2004-08-24 02:26:59 +00:00
Markus Amsler b5b8810e99 Pass debug exceptions to winedos. 2004-08-04 19:08:19 +00:00
Dmitry Timoshkov c2de5fbcb9 Set SA_RESTART sigaction flag for other BSDs beside NetBSD. 2004-02-24 01:21:56 +00:00
Robert Lunnon 93be53744e Save UESP instead of ESP where UESP defined. 2004-01-16 02:00:24 +00:00
Alexandre Julliard 8b39cea352 Fixed __siginfo type for Solaris (based on a patch by Robert Lunnon). 2004-01-14 05:25:07 +00:00
Dimitrie O. Paun 2eaefbd1a4 Move content of global.h into the appropriate private headers. 2003-12-08 21:58:55 +00:00
Alexandre Julliard 8fb98a41e0 Added wine_ldt_is_system() to replace the IS_SELECTOR_SYSTEM macro,
and stop exporting the WINE_LDT_FIRST_ENTRY constant.
2003-11-17 20:12:56 +00:00
Jukka Heinonen d7ee5f3f31 Fix race in real mode event handling.
Merge real mode pending event checking routines.
Remove some obsolete code.
2003-11-11 00:44:10 +00:00
Alexandre Julliard 4dba172e55 Added server_abort_thread to replace SYSDEPS_AbortThread.
Removed no longer used SIGNAL_Block and SIGNAL_Reset.
Moved some internal ntdll definitions to ntdll_misc.h.
2003-11-06 00:08:05 +00:00
Alexandre Julliard 063cff8686 Use the signal stack pointer to determine the current thread.
Converted the SIGUSR2 handler to use setup_exception (probably still
not working properly).
2003-11-05 00:52:29 +00:00
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