Commit Graph

240 Commits

Author SHA1 Message Date
Michael Karcher 9476071fd2 ntdll: Don't send EXCEPTION_EXECUTE_FAULT to Windows programs that didn't enable DEP. 2009-08-18 11:19:46 +02:00
Alexandre Julliard 0c46341543 ntdll: Add call frame annotations in x86 assembly code. 2009-06-25 12:05:09 +02:00
Alexandre Julliard 0610549529 ntdll: Move all thread exit processing to exit_thread(), and make RtlExitUserThread() CPU-specific. 2009-06-18 17:06:21 +02:00
Alexandre Julliard f124c7cc38 ntdll: Simplify the thread startup routine and make it CPU-specific. 2009-06-18 17:01:44 +02:00
Alexandre Julliard e65ebee63f ntdll: Add appropriate stdcall decorations to assembly functions. 2009-06-15 13:42:26 +02:00
Alexandre Julliard c5a57e7d13 ntdll: Move NtRaiseException and RtlUnwind implementations to the CPU-specific files. 2009-04-30 13:23:15 +02:00
Alexandre Julliard 7f9750550a ntdll: Set the exception address to the program counter in RtlRaiseException. 2009-04-10 13:17:12 +02:00
Alexandre Julliard f4eee1c731 ntdll: Move the RtlRaiseException implementation into the respective platform-specific files. 2009-04-10 13:14:05 +02:00
Alexandre Julliard 48199d7074 ntdll: Add a raise_status function and avoid exporting __regs_RtlRaiseException. 2009-04-10 13:09:06 +02:00
Alexandre Julliard 5316dd011f server: Define a generic context structure instead of using the platform-specific version. 2009-04-08 19:59:23 +02:00
Alexandre Julliard 129d83fffb ntdll: Add separate signal definitions for OpenBSD. 2009-04-01 12:37:05 +02:00
Alexandre Julliard 75be87dd75 ntdll: Move the copy_context function into the respective CPU-specific files. 2009-03-13 11:31:25 +01:00
Alexandre Julliard abbf38ccd9 ntdll: Fix a couple of warnings on Solaris. 2009-03-05 16:16:25 +01:00
Alexandre Julliard cc933f586a ntdll: Moved exit_thread and abort_thread functions to thread.c. 2009-02-20 18:07:41 +01:00
Alexandre Julliard 66255772fc ntdll: Move the CPU-specific handling of current TEB to the respective signal files. 2009-02-18 13:04:50 +01:00
Austin English 198b8f736a ntdll: Add support for NetBSD. 2009-01-19 13:36:26 +01:00
Alexandre Julliard 14c452fe78 ntdll: Replaced get_cpu_context by RtlCaptureContext. Implemented it for x86_64. 2009-01-06 17:50:34 +01:00
Alexandre Julliard 4986f42b9f ntdll: Change the DEFINE_REGS_ENTRYPOINT macro to use a number of args instead of a size.
Also assume that all register functions are stdcall.
2009-01-06 12:49:18 +01:00
Henri Verbeet 03468a4f05 ntdll: Don't throw masked FPU exceptions.
When an FPU exception is masked the appropriate flag in the status
word will still be set, so get_fpu_code() should mask the exception
flags in the status word with the exception flags in the control word.
2009-01-05 12:34:39 +01:00
Henri Verbeet 5e418a9072 ntdll: Fix ExceptionAddress for FPU exceptions.
ExceptionAddress isn't the same as EIP for FPU exceptions, since the
exception will be thrown on the next FPU instruction, rather than the
instruction that caused the exception.
2009-01-05 12:34:33 +01:00
Maarten Lankhorst 768160e944 ntdll: Make all exported wine functions CDECL. 2008-12-17 15:02:25 +01:00
Alexandre Julliard 81b9ca5dbd ntdll: Pass the error code to VIRTUAL_HandleFault, and allow it to ignore the exception.
Also rename it to virtual_handle_fault for consistency.
2008-11-25 12:02:16 +01:00
Michael Stefaniuc 26bba27dc0 ntdll: Don't cast void pointers to other pointer types. 2008-10-24 14:25:01 +02:00
Alexandre Julliard eac613f604 ntdll: Use the generic int 0x91 syscall on Solaris so that it works on all CPUs. 2008-07-29 20:41:30 +02:00
Alexandre Julliard e5566691e2 ntdll: Add some workarounds for Solaris signal handling breakages. 2008-07-10 18:18:16 +02:00
Alexandre Julliard 13fbba6847 ntdll: Always restore the %gs register from the saved value in thread data. 2008-07-08 21:08:54 +02:00
Alexandre Julliard 531ff0be26 ntdll: Split the signal setup into process-wide and thread-specific routines. 2008-07-03 20:18:23 +02:00
Alexandre Julliard 3499cb96b6 ntdll: Add local defines for VIF and VIP flags. 2008-06-02 12:13:33 +02:00
Alexandre Julliard cc33f6c8a5 ntdll: Add a guard page at the bottom of the stack and raise a stack overflow exception when hit. 2008-04-01 17:40:37 +02:00
Alexandre Julliard 061bfac076 ntdll: Add support for handling page faults caused by guard pages on the thread stack. 2008-04-01 17:37:24 +02:00
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