Jacek Caban
0547da64a3
ntdll: Reimplement _allrem using 32-bit arithmetic.
...
Based on compiler-rt.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-09 21:23:33 +02:00
Jacek Caban
8f144eb566
ntdll: Reimplement _alldiv using 32-bit arithmetic.
...
Based on compiler-rt.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-09 21:23:33 +02:00
Jacek Caban
744843ed01
ntdll: Reimplement _aullrem using 32-bit arithmetic.
...
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-09 21:23:33 +02:00
Jacek Caban
d53672c6ec
ntdll: Reimplement _aulldiv using 32-bit arithmetic.
...
Based on compiler-rt.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-09 21:23:33 +02:00
Alexandre Julliard
a240abf12b
ntdll: Avoid overflowing the command line buffer.
...
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=49314
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-09 21:23:33 +02:00
Alexandre Julliard
ff19f21913
ntdll: Move the futex-based critical section implementation to the Unix library.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-09 21:23:33 +02:00
Alexandre Julliard
552bc8aa47
ntdll: Move the wait on address implementation to the Unix library.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-09 15:47:30 +02:00
Alexandre Julliard
509ad75adb
ntdll: Move the futex-based condition variable implementation to the Unix library.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-09 15:47:30 +02:00
Alexandre Julliard
246dedaa09
ntdll: Move the futex-based SRW lock implementation to the Unix library.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-09 15:25:52 +02:00
Alexandre Julliard
4d70266274
ntdll: Move some more thread functions to the Unix library.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-09 15:25:52 +02:00
Alexandre Julliard
2333099c52
ntdll: Move signal handlers to the Unix library.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-09 15:25:52 +02:00
Gerald Pfeifer
0c14b1a962
ntdll: Replicate InterlockedCompareExchange64 to the Unix library.
...
This fixes the build on FreeBSD/i386 with GCC 9.
Signed-off-by: Gerald Pfeifer <gerald@pfeifer.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-08 21:01:32 +02:00
Zebediah Figura
19007cf31f
ntdll: Avoid leaking "drive" on error paths from get_mountmgr_fs_info() (Valgrind).
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-08 21:01:32 +02:00
Alexandre Julliard
683583faf2
ntdll: Remove support for setting custom signal handlers.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-06 16:45:36 +02:00
Alexandre Julliard
20c91c5e80
ntdll: Use NtContinue() to set the thread initial context.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-06 15:41:38 +02:00
Alexandre Julliard
7f28a1c521
ntdll: Use NtContinue() to restore context after an exception.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-06 15:17:07 +02:00
Alexandre Julliard
95e2d05e5d
ntdll: Implement NtContinue() in the Unix library.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-06 15:16:38 +02:00
Alexandre Julliard
e561ce4b92
ntdll: Move NtRaiseException() implementation to the Unix library.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-06 14:31:00 +02:00
Alexandre Julliard
8e5d304278
ntdll: Move DbgUiIssueRemoteBreakin() to the Unix library.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-05 16:54:35 +02:00
Alexandre Julliard
245efd04e1
ntdll: Move NtCreateThreadEx() to the Unix library.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-05 16:40:53 +02:00
Alexandre Julliard
33c750f50f
ntdll: Use NtCreateThreadEx() for remote thread creation.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-05 15:23:37 +02:00
Alexandre Julliard
39e7f25e09
ntdll: Implement RtlCreateUserThread() on top of NtCreateThreadEx().
...
Based on a patch by Andrew Wesie.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-05 15:09:53 +02:00
Alexandre Julliard
ca3ca7b046
ntdll: Move the rest of the thread creation code to the Unix library.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-05 14:25:36 +02:00
Alexandre Julliard
cdfc45859c
ntdll: Move the section object functions to the Unix library.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-04 22:36:39 +02:00
Alexandre Julliard
f1276b25ae
ntdll: Move the keyed event functions to the Unix library.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-04 22:36:38 +02:00
Alexandre Julliard
65edacf934
ntdll: Move the timer functions to the Unix library.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-04 22:36:38 +02:00
Alexandre Julliard
8b87d6b814
ntdll: Move the mutex functions to the Unix library.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-04 22:36:38 +02:00
Alexandre Julliard
efd59e378c
ntdll: Move the event functions to the Unix library.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-04 22:36:38 +02:00
Alexandre Julliard
39915c9bc4
ntdll: Move the semaphore functions to the Unix library.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-04 22:36:38 +02:00
Alexandre Julliard
a184449841
ntdll: Move some wait functions to the Unix library.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-04 22:36:38 +02:00
Alexandre Julliard
4ffe39573b
ntdll: Move mapping of the user shared data to the Unix library.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-04 22:36:38 +02:00
Alexandre Julliard
cd0c598802
ntdll: Consolidate some of the init routines into the init_threading() entry point.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-04 22:36:38 +02:00
Alexandre Julliard
f1d40d4824
ntdll: Move more of the thread exit code to the Unix library.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-03 21:26:47 +02:00
Alexandre Julliard
35b063a404
ntdll: Move the thread creation code to the Unix library.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-03 21:09:13 +02:00
Alexandre Julliard
be0eb9c92e
ntdll: Move the thread startup code to the Unix library.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-03 20:01:16 +02:00
Alexandre Julliard
9fe61171e5
ntdll: Use the local server_send_fd() function in the Unix library.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-02 17:39:28 +02:00
Alexandre Julliard
c96ef78b6d
ntdll: Move the virtual memory functions to the Unix library.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-02 17:19:12 +02:00
Alexandre Julliard
7c32b2dd93
ntdll: Move NtGetContextThread() implementation to the Unix library.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-02 14:23:21 +02:00
Alexandre Julliard
ac90898f72
ntdll: Move NtSetContextThread() implementation to the Unix library.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-02 14:01:10 +02:00
Gerald Pfeifer
b4a868b8ad
ntdll: Include <stdarg.h> in unix/debug.c.
...
Signed-off-by: Gerald Pfeifer <gerald@pfeifer.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-02 11:13:59 +02:00
Alexandre Julliard
87fa906a84
ntdll: Properly reset the stack environment at thread exit on ARM64.
...
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=49301
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-01 22:10:28 +02:00
Alexandre Julliard
c0319e0eab
ntdll: Move server wait functions to the Unix library.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-01 22:10:28 +02:00
Alexandre Julliard
b925dd78b8
ntdll: Use the actual zero_bits parameter in the server requests.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-01 22:10:28 +02:00
Alexandre Julliard
3e9f8c87e5
ntdll: Move the threading initialization functions to the Unix library.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-01 22:10:28 +02:00
Alexandre Julliard
704975f58d
ntdll: Add missing server_init_process_done() call.
...
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=49295
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-01 22:10:28 +02:00
Alexandre Julliard
04f41e87a3
ntdll: Move NtClose() and NtDuplicateObject() to the Unix library.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-01 22:10:28 +02:00
Rémi Bernon
1f25c6edf7
ntdll: Use the free ranges in find_reserved_free_area.
...
Instead of the view rbtree.
Testing shows a 20% FPS increase in We Happy Few, from 80-100fps to
100-120fps right after starting a new game.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-30 13:46:04 +02:00
Rémi Bernon
eb716839e1
ntdll: Introduce free_ranges indexing sequence.
...
This is an ordered range sequence used to keep track of free address
ranges.
The sequence contains an entry for every free address range, with base
pointing to the first free address and end pointing to the next first
used address. It is initialized to [0, ~0] for convenience, so that
there's always a range before or after a view.
In the worst case scenario, where memory is entirely fragmented, there's
going to be one more range than allocated views, but in general there's
much less. In any case, because of cache locality, iterating in the
contiguous sequence is much faster than traversing the view rbtree.
In theory there can be a performance hit when allocating or deleting a
view, as we may have to move the end of the sequence when a range is
split or merged. But in practice and given the usually low number of
ranges, this is not an issue.
The default and maximum sequence size can hold up to 65536 ranges, which
is much more than enough in general, and performance is probably going
to be bad before reaching the limit anyway. The code currently asserts
when reaching the limit, although we could possibly grow the sequence.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-30 13:45:55 +02:00
Alexandre Julliard
01150d7f8d
ntdll: Move server call functions to the Unix library.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-29 20:05:30 +02:00
Alexandre Julliard
1a743c9af3
ntdll: Move fd cache functions to the Unix library.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-29 20:05:30 +02:00