Commit Graph

343 Commits

Author SHA1 Message Date
Alexandre Julliard ce46de5a94 ntdll: Move NtGetContextThread implementation to the platform-specific files.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-07-18 20:43:32 +02:00
Alexandre Julliard 675e8218f0 ntdll: Move NtSetContextThread implementation to the platform-specific files.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-07-18 20:43:32 +02:00
Alexandre Julliard da6ca91e28 ntdll: Remove unnecessary helper to set debug registers.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-07-18 20:43:32 +02:00
Sebastian Lackner 123185c3a2 ntdll: Set correct number of arguments for breakpoint exceptions.
Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-02-19 11:20:12 +09:00
Sebastian Lackner 218bc84e03 ntdll: Mimic Windows behaviour when calling debug service.
Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-02-19 00:49:12 +09:00
Henri Verbeet e65c89f1c5 ntdll: Add special handling for int $0x2d exceptions.
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-02-16 12:09:37 +09:00
Qian Hong 10d080aa8d ntdll: Silence useless fixme message when handling SIMD floating point invalid operation exception.
Signed-off-by: Qian Hong <qhong@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-12-03 16:23:30 +09:00
Nikolay Sivov 1ea99a8f29 ntdll: Remove unused helper (Clang).
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-11-27 20:53:31 +09:00
Sebastian Lackner 6bec132c7a ntdll: Try to handle write-watches while we're on the signal stack. 2015-02-27 14:59:08 +09:00
André Hentschel 550f556dca ntdll: Remove unused macros. 2014-12-09 19:36:06 +01:00
Sebastian Lackner 1c1e7ed016 ntdll: Add support for ATL thunk 'POP ecx; POP eax; PUSH ecx; JMP 4(%eax)'. 2014-10-21 18:51:05 +09:00
Sebastian Lackner dcd2b0a366 ntdll: Add support for ATL thunk 'MOV this,ecx; MOV func,eax; JMP eax'. 2014-10-21 18:51:04 +09:00
Sebastian Lackner 40472cd3a7 ntdll: Add support for ATL thunk 'MOV this,edx; MOV func,ecx; JMP ecx'. 2014-10-21 18:51:02 +09:00
Sebastian Lackner aab0d25a49 ntdll: Add support for ATL thunk 'MOV this,ecx; JMP func'. 2014-10-21 18:50:59 +09:00
Sebastian Lackner 34b2d920b4 ntdll: Improve check_atl_thunk to prevent passing exceptions to the usermode application. 2014-10-15 11:52:06 +09:00
Sebastian Lackner 1c957ceb96 ntdll: Only check for ATL thunk if allowed by execute option flags.
Checking for ATL thunks can be disabled by setting MEM_EXECUTE_OPTION_DISABLE_THUNK_EMULATION.
2014-10-13 18:31:26 +09:00
Sebastian Lackner 0cf3d78167 ntdll: Avoid recursive exception handler calls when handling guard pages.
The ATL check leads to problems when a page is protected with guard page protection.
raise_segv_exception is called with EXCEPTION_EXECUTE_FAULT. The ATL check tries to
read the memory, and triggers another exception handler. This time the virtual_handle_fault
check is executed, and removes the guard page protection. Afterwards, when the ATL
check returns, the exception is _not_ catched by virtual_handle_fault, but instead
passed to the application.
2014-10-13 18:31:06 +09:00
Francois Gouget 09ffb97fdd ntdll: Fix the compilation by using the right mcontext_t field names for the signal context on FreeBSD. 2014-07-24 19:24:41 +02:00
Alexandre Julliard 69d198a9eb ntdll: Use the standard mcontext_t type for the signal context on Android. 2014-07-23 21:24:18 +02:00
Alexandre Julliard 775263aa5c ntdll: Directly use ucontext_t instead of SIGCONTEXT on all platforms. 2014-07-23 19:07:00 +02:00
Alexandre Julliard 8d817997ce configure: Add a check for sys/ucontext.h and include it where appropriate. 2014-07-23 19:06:58 +02:00
Alexandre Julliard 1b1ea639cd ntdll: Use a custom signal restorer for Android.
Bionic doesn't provide one, even when vdso has been unmapped by the
preloader.
2014-07-17 14:51:12 +02:00
Austin English 1a988fa465 ntdll: Make sure flags are preserved in raise_trap_exception(). 2014-04-15 21:03:55 +02:00
André Hentschel 5865fe78de ntdll: Add signal definitions for GNU/Hurd.
Partially based on a patch by Andrew Nguyen.
2014-01-06 17:10:05 +01:00
Frédéric Delanoy 7e63200672 ntdll: Use BOOL type where appropriate. 2013-11-01 10:52:42 +01:00
Alexandre Julliard f8cdbecc25 ntdll: Add context definitions missing from the Android NDK. 2013-07-30 14:43:31 +02:00
Marcus Meissner fc179497bd kernel32: Use the correct pointer size in atl thunk (Coverity). 2013-02-18 10:31:22 +01:00
Alexandre Julliard 64ddb263d2 ntdll: Check for invalid %gs value in 32-bit code.
Suggested by Alessandro Pignotti.
2013-02-12 19:56:39 +01:00
Alexandre Julliard 99d89b347f ntdll: Add a helper function to check that a fault address lies in a known virtual memory view. 2013-02-12 19:56:19 +01:00
André Hentschel 1013d2e75c ntdll: Enhance FreeBSD checks to also check for DragonFly BSD when appropriate. 2012-06-04 12:17:54 +02:00
Austin English 132da2c428 ntdll: Give a better error message if signal context functions aren't defined. 2012-04-10 16:21:27 +02:00
Alexandre Julliard aa55603b73 ntdll: Move the _chkstk implementation to signal_i386.c. 2012-04-02 12:46:38 +02:00
Alexandre Julliard 62b7069fa9 ntdll: Unwind the stack before calling exit/abort_thread on i386 the same way we do on x86_64. 2011-10-19 16:38:52 +02:00
André Hentschel f73ee0a249 ntdll: Add check for DragonFly BSD. 2011-03-28 17:30:20 +02:00
Alexandre Julliard efbe695147 ntdll: Add a helper function for checking stack frame limits. 2011-02-01 12:38:58 +01:00
Alexandre Julliard 43682ce114 ntdll: Avoid copying and restoring the context in RtlCaptureContext for i386. 2011-02-01 12:38:58 +01:00
Alexandre Julliard c865b3f8e0 ntdll: Fix frame address check in RtlCaptureStackBackTrace to match what RtlUnwind does. 2011-01-31 14:30:26 +01:00
Austin English 9832bd6c54 ntdll: Add missing checks for FreeBSD_kernel. 2011-01-17 14:27:38 +01:00
Alexandre Julliard 085d398302 ntdll: Avoid using the CONTEXT86 type. 2010-10-20 18:37:07 +02:00
Alexandre Julliard 0db65fd36e ntdll: Fix the initial FPU control word on 32-bit too. 2010-06-22 11:19:02 +02:00
Henri Verbeet 772a5c7c09 ntdll: The FPU control word for newly created threads is 0x27f.
This fixes a regression introduced by
e6611e22fb.
2010-06-17 11:50:23 +02:00
Maarten Lankhorst 8734d5b9ac ntdll: Clear alignment flag in exception handlers. 2010-04-20 11:15:11 +02:00
Alexandre Julliard c09df80620 ntdll: Always restore the context after an exception even if setting the debug registers fails. 2010-03-05 12:25:34 +01:00
Alexandre Julliard 102dd9e92f winebuild: Rename __wine_call_from_32_regs for consistency with 64-bit. 2010-01-16 15:41:48 +01:00
Alexandre Julliard 82f393dda1 ntdll: Move the LDT locking functions to the i386-specific code. 2009-12-30 18:05:02 +01:00
Alexandre Julliard 16ddc62405 ntdll: Merge the thread data and thread regs structure, and make sure i386 regs are not available on other platforms. 2009-11-19 12:27:09 +01:00
Alexandre Julliard aced1b82ba ntdll: Move initialization of the debug registers to signal_i386.c. 2009-11-19 12:26:21 +01:00
Alexandre Julliard d4f1fffacc ntdll: Moved the TEB allocation routines to the platform-specific files. 2009-11-19 12:25:52 +01:00
Alexandre Julliard d90f691e58 ntdll: Implemented RtlCaptureStackBackTrace for i386. 2009-11-11 17:38:18 +01:00
Alexandre Julliard d45fca8f7c ntdll: Moved RtlCaptureStackBackTrace stub to the cpu-specific files. 2009-11-11 17:19:23 +01:00
Alexandre Julliard 44ed5c0423 ntdll: Use the exception code as exit status when no debugger is present. 2009-10-13 14:15:27 +02:00
Alexandre Julliard 9585bf6700 ntdll: Remap EXCEPTION_EXECUTE_FAULT only after the internal handlers have been run. 2009-09-23 14:20:17 +02:00
Alexandre Julliard 8101a2fa1e ntdll: Move the abort_thread() function to the CPU-specific files to allow redefining it. 2009-08-28 11:54:50 +02:00
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