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
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