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
5316dd011f
server: Define a generic context structure instead of using the platform-specific version.
2009-04-08 19:59:23 +02:00
Alexandre Julliard
b06a919c3c
server: Use the thread entry point field to pass the PEB in the initial thread.
2009-04-03 14:30:34 +02:00
Alexandre Julliard
5170b1b456
ntdll: Remove no longer used pthread_functions structure.
2009-03-30 15:04:51 +02:00
Alexandre Julliard
c456721435
ntdll: Get rid of the no longer used pthread emulation.
2009-03-26 13:20:04 +01: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
1056771b91
ntdll: Allocate the stack for all threads, don't rely on pthread to do it for us.
2009-02-23 14:24:59 +01:00
Alexandre Julliard
67e45d66d3
ntdll: Don't free the thread stack and TEB while exiting, do it from the next thread.
2009-02-23 14:24:03 +01:00
Alexandre Julliard
1ac7bafcb2
ntdll: Call pthread_create and pthread_exit directly from ntdll.
2009-02-20 18:07:42 +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
36334a1b5a
ntdll: Call pthread_sigmask directly instead of through the pthread function table.
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
Alexandre Julliard
5adfec2883
ntdll: Determine the Unix tid for the server directly in ntdll.
2009-02-18 12:30:01 +01:00
Juan Lang
3d7118bcd1
ntdll: Implement the ThreadAffinityMask query.
2009-01-23 13:47:14 +01:00
Alexandre Julliard
913e792b57
server: Store process/thread affinity as a 64-bit value.
2009-01-19 14:15:51 +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
fa8643805b
server: Make TEB and PEB client_ptr_t instead of void pointers.
2008-12-31 15:09:59 +01:00
Alexandre Julliard
6db201080f
server: Make the various async I/O parameters client_ptr_t instead of void pointers.
2008-12-30 21:09:41 +01:00
Alexandre Julliard
f69e62207b
server: Make the arguments for CreateRemoteThread client_ptr_t instead of void pointers.
2008-12-30 15:30:11 +01:00
Alexandre Julliard
b660aaa9ea
server: Use the same field for process and thread handle in the queue_apc request.
2008-12-26 12:33:31 +01:00
Alexandre Julliard
b9e10147d9
ntdll: NtCurrentTeb is not exported on x86_64.
2008-12-15 13:32:15 +01:00
Alexandre Julliard
d1b3d484f7
server: Add functions for conversions between server object handles and pointer-style handles.
2008-12-08 16:05:17 +01:00
Alexandre Julliard
5002bd21d1
kernel32: Moved the pthread emulation support to ntdll.
2008-10-30 15:39:50 +01:00
Alexandre Julliard
74cdb539a4
ntdll: Store the exit code in the server in RtlExitUserThread.
2008-10-29 20:37:43 +01:00
Andrew Talbot
a63749cce0
ntdll: Sign-compare warnings fix.
2008-10-24 14:25:00 +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
600694546f
ntdll: Moved stack allocation for thread and process to a common routine in virtual.c.
2008-04-01 14:11:44 +02:00
Andrew Talbot
08ae56545e
ntdll: Remove superfluous semicolon.
2008-04-01 11:29:20 +02:00
Alexandre Julliard
5625c6079e
Get rid of the global thread.h header.
2008-03-01 11:57:00 +01:00
Alexandre Julliard
6d6e9a42b1
ntdll: Added definitions and structures for fiber local storage.
2008-02-29 19:55:34 +01:00
Alexandre Julliard
78fba54ab7
ntdll: Store the unhandled exception filter at startup to avoid race conditions.
2008-02-12 22:39:19 +01:00
Alexandre Julliard
3bf12b9aca
server: Don't force the process affinity to 1, leave it up to the client.
2008-01-17 13:40:03 +01:00
Alexandre Julliard
f45b7078bf
ntdll: Copy extended registers too in copy_context().
2008-01-15 20:36:40 +01:00
Dmitry Timoshkov
f2f3de20ac
ntdll: Initialize the APC call union to suppress valgrind warnings. Take 2.
2007-12-11 17:49:57 +01:00
Alexandre Julliard
3ae370dc71
ntdll: Added a sleep in NtGet/SetContextThread, a yield is not enough on some kernels.
2007-12-03 13:55:25 +01:00
Paul Vriens
2f09f50641
ntdll: Report FIXME only once.
2007-10-30 11:29:54 +01: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
Andrew Talbot
e3708a60b4
ntdll: Constify some variables.
2007-06-28 11:00:53 +02:00
Dmitry Timoshkov
e142779b09
ntdll: Fix compilation warnings in 64-bit mode.
2007-05-23 13:10:20 +02:00
Francois Gouget
820d954095
ntdll: Fix compilation on systems that don't support nameless unions.
2007-05-21 12:38:54 +02:00
Alexandre Julliard
5aa70b3d80
ntdll: Setup the shared user data structure at 0x7ffe0000.
2007-05-18 18:09:03 +02:00
Alexandre Julliard
aaf477f292
server: Change the timeout handling to use NT-style 64-bit timeouts everywhere.
2007-04-17 20:08:59 +02:00
Alexandre Julliard
42050fbf91
ntdll: Fixed typo in previous patch, spotted by Ken Thomases.
2007-03-14 15:02:22 +01:00
Alexandre Julliard
7744443feb
ntdll: Add a wrapper to call the thread entry point for broken apps.
2007-03-14 12:28:38 +01:00
Alexandre Julliard
8025f79ce1
ntdll: Implementation of inter-process RtlCreateUserThread.
2007-01-18 15:02:55 +01:00
Alexandre Julliard
7a383cf83f
ntdll: Abuse RtlCreateUserThread to call the thread function for CreateThread directly.
2007-01-18 15:02:11 +01:00
Alexandre Julliard
21d631e270
ntdll: Move the LDT section to ntdll and make it an uninterruptible section.
2007-01-18 15:01:45 +01:00
Alexandre Julliard
8891d6de48
ntdll: Block async signals during process init and thread creation.
2007-01-18 12:23:04 +01:00
Alexandre Julliard
fb75c66897
ntdll: Avoid heap allocations during thread creation.
2007-01-18 12:20:10 +01:00
Joel Parker
2319999a05
Remove redundant semicolons for ANSI compatibility.
2007-01-17 11:58:15 +01:00
Alexandre Julliard
6ca1d1b081
server: Support queuing some APCs to a process instead of a thread.
2007-01-15 22:26:32 +01:00
Andrew Talbot
16cb898600
ntdll: Remove unused function.
2007-01-15 14:23:04 +01:00
Alexandre Julliard
5c8421d3e7
server: Add a generic apc_call structure to make it easier to extend, and more type-safe.
2007-01-04 13:40:09 +01:00
Eric Pouech
5b1f3b14ca
ntdll: Fixed returned status for NtQueryThreadInformation's ThreadDescriptorTable
...
(spotted by Peter Oberndorfer).
2006-11-15 11:24:41 +01:00
Eric Pouech
8cb932ea89
ntdll: Implemented AmILastThread information class for NtQueryInformationThread.
2006-10-03 20:20:13 +02:00
Alexandre Julliard
530e765035
include: Exception filters should return LONG, not DWORD.
...
Also move UnhandledExceptionFilter definitions to winbase.h since they
are there in the latest SDK.
2006-09-20 11:26:59 +02:00
Alexandre Julliard
3095a48d6f
server: Convert thread creation/exit times to the abs_time_t type.
2006-07-26 14:49:55 +02:00
Alexandre Julliard
6c9ade0529
ntdll: Allocate the PEB with NtAllocateVirtualMemory too.
2006-07-24 15:19:32 +02:00
Alexandre Julliard
0c453bc7c6
ntdll: Use NtAllocateVirtualMemory to allocate all TEBs except the first one.
2006-07-21 20:20:30 +02:00
Pierre d'Herbemont
6d0e51fb66
ntdll: Fix NtQueryInformationThread on non x86.
2006-06-09 21:08:14 +02:00
Eric Pouech
2d3504c309
ntdll/kernel32: Moved GetThreadSelectorEntry to ntdll.
...
- implemented NtQueryInformationThread's ThreadDescriptorTableEntry
information class
- used it to implement the kernel32's equivalent (GetThreadSelectorEntry)
2006-05-27 13:00:19 +02:00
Jonathan Ernst
360a3f9142
Update the address of the Free Software Foundation.
2006-05-23 14:11:13 +02:00
Michael Stefaniuc
7a8818e717
Don't check pointers for NULL before RtlFreeHeap. It is redundant.
2006-05-05 20:59:50 +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
Juan Lang
fced68672f
ntdll: Initialize a variable.
...
Fix an uninitialized pointer in RtlCreateUserThread, caught by
coverity.
2006-04-11 11:23:49 +02:00
Robert Shearman
ea6f3a4cc0
ntdll: Move the call to MODULE_DllThreadAttach from the kernel32
...
thread creation function to the NTDLL one.
2006-03-14 17:50:28 +01:00
Alexandre Julliard
477b3bf566
kernel: Moved the get_startup_info call to ntdll.
2006-02-22 09:57:19 +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
Eric Pouech
329ab98940
ntdll: Implemented ntdll.NtSetInformationThread(ThreadAffinityMask).
...
Reimplemented kernel32.SetThreadAffinityMask on top of it.
2006-01-11 12:32:19 +01:00
Alexandre Julliard
efffa66330
ntdll: Don't use a real guard page at the bottom of the stack.
...
A no-access page is enough, we can't properly raise an overflow
exception anyway.
2005-12-17 18:47:03 +01:00
Alexandre Julliard
f3dad37ba2
TEB.StackLimit should not include the guard page.
2005-12-12 17:28:32 +01:00
Alexandre Julliard
d02c4a1b82
Make wine_server_fd_to_handle use attributes instead of inherit flag.
2005-12-09 12:22:35 +01:00
Alexandre Julliard
f2d7dd645e
server: Use attributes instead of inherit flag in process and thread requests.
2005-12-09 12:13:11 +01:00
Ge van Geldorp
1a1583a364
Match PSDK STATUS_* definitions.
2005-11-28 17:32:54 +01:00
Eric Pouech
63e5d5e5b9
Init wShowWindow in RTL_USER_PARAMETERS for Wine processes started
...
from the command-line.
2005-11-14 11:21:13 +00:00
Kevin Koltzau
079e7cac17
x86_64 references a named union, ensure unions are not nameless.
2005-11-05 10:43:50 +00:00
Vitaliy Margolen
4e76f91f1a
Get rid of CPU id when copying context
2005-11-03 09:54:47 +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
Alexandre Julliard
d6f7adb367
Don't send the incoming context to the server for get_thread_context,
...
instead copy only the relevant fields of the return value on the
client side.
2005-11-01 21:41:26 +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
Eric Pouech
ad0168967e
Implemented kernel32.GetThreadTimes on top of ntdll's equivalent
...
function.
2005-09-12 22:01:33 +00:00
Alexandre Julliard
884599112e
Use SIZE_T instead of ULONG for the size arguments of the virtual
...
memory functions.
2005-09-12 10:36:06 +00:00
Eric Pouech
60cae6e289
Implemented kernel32:SetThreadPriority on top of ntdll's equivalent
...
functions.
2005-09-07 13:25:35 +00:00
Alexandre Julliard
883d3c52d3
Use explicit function pointers for pthread support instead of relying
...
on ELF symbol overriding.
2005-09-03 15:11:29 +00:00
Alexandre Julliard
a5156dcf40
Added a stub for NtAlertResumeThread.
2005-08-18 11:47:17 +00:00
Alexandre Julliard
9f32a5c865
Added a VIRTUAL_alloc_teb function to allocate TEBs while making sure
...
they don't end up above the address space limit.
2005-08-09 10:43:47 +00:00
Alexandre Julliard
4de75b5a6f
Use the new RtlExitUserThread function instead of exporting
...
wine_server_exit_thread.
2005-08-02 09:55:40 +00:00
Alexandre Julliard
3be8cb8b02
Moved initialization of the default user process parameters to ntdll.
2005-07-14 12:33:30 +00:00
Alexandre Julliard
11ad6a0ac4
Return the startup info size in the init_thread request, and allocate
...
the process parameters structure in ntdll instead of kernel.
2005-07-13 19:43:35 +00:00
Alexandre Julliard
60b3d30f9b
Don't require execute permission for thread stacks.
2005-06-21 09:57:53 +00:00
Robert Shearman
4bba21643c
Add support for impersonating a token.
2005-06-20 13:18:38 +00:00
Alexandre Julliard
811e966083
The TEB doesn't need execute permissions.
2005-06-17 12:15:44 +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
9b57a950d7
Avoid accessing the htask16 TEB field from ntdll.
2005-06-05 18:24:35 +00:00
Alexandre Julliard
86be9f20da
Removed the MESSAGEQUEUE structure, and store the corresponding
...
information directly in the TEB, in the Win32ClientInfo field.
2005-04-27 08:18:20 +00:00
Alexandre Julliard
f1020bc6e0
Added support for the TLS expansion slots, adding an extra 1024
...
entries.
2005-03-19 17:14:12 +00:00
Ivan Leo Puoti
d3edafe1e2
Replace GetCurrentProcess() with NtCurrentProcess() in ntdll.
2005-02-22 19:33:50 +00:00
Robert Shearman
2050591370
Fix NtAllocateVirtualMemory declaration and fix users of the
...
function.
2004-10-11 20:59:06 +00:00
Alexander Yaworsky
8657ad8704
Make RtlCreateUserThread fail if process handle is not for the current
...
process.
2004-09-21 00:23:50 +00:00
Francois Gouget
61d21ce706
Update RTL_BITMAP and RTL_BITMAP_RUN to match the 2000 DDK.
...
Only test the Rtl{Initialize,SetAll,ClearAll}Bits macros if they are
defined.
2004-08-23 18:52:54 +00:00
Mike McCormack
edf55ec7d9
Implement SetThreadToken using NtSetInformationThread.
2004-08-13 23:20:27 +00:00
Alexandre Julliard
cc461324da
Store the number of processors in the PEB structure.
...
More correct support for setting critical section spin counts (based
on a patch by Robert Shearman).
2004-06-15 00:52:03 +00:00
Patrik Stridvall
070db4e5de
Fixed some issues found by winapi_check.
2004-05-17 21:08:31 +00:00
Alexandre Julliard
a45931c6f3
Get rid of the TEB flags, they are no longer used.
2004-04-15 05:04:53 +00:00
Alexandre Julliard
4fac95df3d
Fixed a couple of race conditions in the wine_pthread routines at
...
thread startup and exit.
2004-02-05 02:01:35 +00:00
Alexandre Julliard
af542075e7
Don't use constructors for ntdll and kernel32 initialization.
2004-01-07 04:50:11 +00:00
Alexandre Julliard
6281d82e87
Store the thread entry point in the startup info passed to the new
...
thread instead of the TEB.
2003-11-25 03:42:05 +00:00
Alexandre Julliard
746d900b04
Force minimum stack size to 1Mb for Xlib.
2003-11-18 00:14:17 +00:00
Alexandre Julliard
50fba7ffec
Moved the remaining SYSDEPS_* functions to the wine_pthread interface.
...
Let the pthread library allocate the stack itself.
2003-11-09 01:25:23 +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
8574412e1e
Added wine_pthread_create_thread and wine_pthread_exit_thread to the
...
pthread support, and removed the corresponding SYSDEPS functions.
Moved stack allocation for new threads to wine_pthread_create_thread
to allow more flexibility.
2003-11-05 23:31:11 +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
7370f60120
Implemented RtlCreateUserThread, and use it to move thread creation to
...
ntdll.
2003-10-31 00:16:20 +00:00
Alexandre Julliard
5cb5aa6346
Use the Rtl bitmap functions to implement Tls allocation.
...
Get rid of the PDB structure.
2003-10-09 19:58:56 +00:00
Alexandre Julliard
20e73d739a
Moved the constructor for the initial TEB to ntdll so that it runs as
...
early as possible on startup.
2003-10-09 04:59:03 +00:00
Alexandre Julliard
2eb5d8b9b1
On TlsFree, clear the released TLS index in all threads.
2003-09-08 19:02:01 +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
7df1b9e03a
Start using the exported TEB structure from winternl.h where
...
possible.
2003-08-28 19:57:35 +00:00
Alexandre Julliard
4f196ead13
Implemented the ThreadBasicInformation case for
...
NtQueryInformationThread.
2003-07-09 02:57:57 +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