Commit Graph

5069 Commits

Author SHA1 Message Date
Alex Henrie e3d2d852a4 include: Add more RTL functions.
Signed-off-by: Alex Henrie <alexhenrie24@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-26 10:10:15 +02:00
Alex Henrie bab2de00aa ntdll: Increase size of IPv6 address string buffers.
Signed-off-by: Alex Henrie <alexhenrie24@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-26 10:07:27 +02:00
Paul Gofman ca56ef6739 ntdll: Fill ActiveGroupCount field in _KUSER_SHARED_DATA.
Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-25 20:23:31 +02:00
Paul Gofman 1306bd941b ntdll: Fill ActiveProcessorCount field in _KUSER_SHARED_DATA.
Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-25 20:23:29 +02:00
Thomas Faber 2a2607e2a3 ntdll/tests: Fix a test failure on Server 2003.
Signed-off-by: Thomas Faber <thomas.faber@reactos.org>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-25 20:21:12 +02:00
Damjan Jovanovic 8c3e6c378d ntdll: Reserve the area whenever possible in reserve_area() on FreeBSD.
Signed-off-by: Damjan Jovanovic <damjan.jov@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-25 20:21:00 +02:00
Matteo Bruni 2e5c2c7cdb ntdll: Use memcpy() in set_float_reg().
The source address might not be aligned although the compiler can
expect alignment when using a plain assignment.

Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-25 20:20:09 +02:00
Gijs Vermeulen 676b6b0fd7 ntdll: Fix number of arguments passed to mmap_remove_reserved_area in apple_create_wine_thread.
This fixes a regression introduced by 625209433f

Signed-off-by: Gijs Vermeulen <gijsvrm@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-22 19:50:48 +02:00
Alexandre Julliard 9b8fabf4b0 ntdll: Silence a va_start compiler warning.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-22 14:32:02 +02:00
Alexandre Julliard 6bed2b427b kernel32: Move the *PreferredUILanguages functions to kernelbase and ntdll.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-22 14:31:55 +02:00
Alexandre Julliard 75e2f79b68 ntdll: Implement SystemTimeAdjustmentInformation class.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-22 14:31:55 +02:00
Alexandre Julliard 7cc9ccbd22 kernel32: Move GetProcessTimes() implementation to kernelbase and ntdll.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-22 14:31:55 +02:00
Alexandre Julliard cd215bb49b kernel32: Use the user shared data to implement GetTickCount().
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-21 19:36:52 +02:00
Alexandre Julliard 9b12068c6c ntdll: Use the user shared data to implement RtlQueryUnbiasedInterruptTime().
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-21 19:36:52 +02:00
Alexandre Julliard cc5953048e ntdll: Use the user shared data to implement NtGetTickCount().
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-21 19:36:52 +02:00
Alexandre Julliard 0936606c38 ntdll: Centralize initialization of the user shared data.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-21 19:36:52 +02:00
Alexandre Julliard ab350866e4 ntdll: Add some more CPU feature flags.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-21 17:06:04 +02:00
Alexandre Julliard ca13f489e1 ntdll: Make the windows directory a global variable.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-21 17:06:04 +02:00
Alexandre Julliard acd209d603 ntdll: Move setting the process name to the Unix library.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-20 16:16:40 +02:00
Alexandre Julliard 3d3545b12f ntdll: Move the Unix codepage initialization to the Unix library.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-20 16:16:40 +02:00
Alexandre Julliard dec38ffb07 ntdll: Move the wineserver exec support to the Unix library.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-19 17:40:08 +02:00
Alexandre Julliard 67bc4a6d76 ntdll: Don't use libwine during the Unix library initialization.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-19 14:08:30 +02:00
Alexandre Julliard fb310724f6 ntdll: Move the wineloader exec support to the Unix library.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-19 14:08:16 +02:00
Alexandre Julliard e619429035 ntdll: Move configuration paths setup to the Unix library.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-19 12:35:54 +02:00
Zebediah Figura 4cb95848fd ntdll: Remove extraneous newline from debugstr_ObjectAttributes().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-19 11:04:46 +02:00
Alon Barzilai 058f86958c ntdll: Add missing RtlQueryEnvironmentVariable function.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=48773
Signed-off-by: Alon Barzilai <alon.barzilai@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-18 19:48:34 +02:00
Martin Storsjo 5f14b6357b ntdll: Properly restore x29/x30 for arm64 packed unwind data with local stack.
For the CR == 3 case, x29/x30 should be restored from x29, not from
sp, which may have been decremented further for local stack storage.

This fixes uwinding the stack for C++ exceptions in code generated
by MSVC.

Signed-off-by: Martin Storsjo <martin@martin.st>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-18 15:12:49 +02:00
Martin Storsjo 93ecc54ae5 ntdll: Pass a nonnull handler_data when continuing after a collided unwind on arm64.
This fixes crashes when handling GNU/mingw style SEH based C++
exceptions on arm64; in these cases unwind_full_data ended up
where it tries to write handler_rva + 1 to *handler_data.

Signed-off-by: Martin Storsjo <martin@martin.st>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-18 15:12:45 +02:00
Martin Storsjo 93082b3d52 ntdll: Fix arm64 unwind across ELF/PE boundaries.
The previous implementation might have given the impression of
working, as long in some cases where the PE code actually used frame
pointers, but turned out to be subly wrong.

This essentially reverts the functional aspects of 1c9fdaab0f.

Use the new value of the Lr register, after fetching the registers
from unw_step, as the return value.

To make single-stepping unwinding work properly, treat the registers
consistently:

- Make RtlCaptureContext store the current values of x29/Fp and x30/Lr
from within the function, not the ones backed up from the stack.

- After unwinding one step, first fetch the new values of all registers,
including the new value of Lr - then use this value of Lr to set the
new value of Pc (the address to actually return to).

This makes the unwinding actually coherent in reading unwind opcodes and
return addresses from one single function; previously these were out of
sync where the return address ended up being read from the function
one step further up in the call stack.

This fixes unwinding for setjmp for binaries compiled with clang
(in mingw mode).

Signed-off-by: Martin Storsjo <martin@martin.st>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-18 15:12:41 +02:00
André Hentschel 44274d172b ntdll: Fix SystemRecommendedSharedDataAlignment on ARM.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=43961
Signed-off-by: André Hentschel <nerv@dawncrow.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-18 12:09:08 +02:00
Damjan Jovanovic 0fd3f0266e ntdll: Fix ELF initializer address calculations on FreeBSD.
dlinfo() doesn't conform to a standard, each platform implements in differently,
if at all. On GNU and NetBSD its l_addr field returned is the "relocbase",
the relative offset between addresses wanted by the file and addresses obtained
in memory (==0 when no relocation occurred), which we add to d_un.d_ptr to
obtain the memory address where the initializer is. On FreeBSD (and possibly
Solaris) this won't work, as l_addr is the "mapbase" instead, the absolute
starting memory address where the binary was loaded, resulting in wrong
calculations and crashes on startup as we call into wrong addresses.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=49139
Signed-off-by: Damjan Jovanovic <damjan.jov@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-18 12:08:36 +02:00
Alexandre Julliard 45a63e5b3c ntdll: Store main() arguments in the Unix library.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-17 16:54:39 +02:00
Alexandre Julliard 50134cce82 ntdll: Do the pre-exec checks in the Unix library.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-17 16:54:39 +02:00
Alexandre Julliard 9b8afa0f83 ntdll: Move the Wine version functions to the Unix library.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-17 16:54:39 +02:00
Alexandre Julliard 2424742d07 ntdll: Move the debug functions to the Unix library.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-17 11:09:52 +02:00
Alexandre Julliard aaa654abd6 ntdll: Store reserved areas in the Unix library.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-17 11:07:44 +02:00
Alexandre Julliard 625209433f ntdll: Move the mmap reserved area functions to the Unix library.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-17 11:07:39 +02:00
Dmitry Timoshkov a0772da5cf ntdll: Don't try to map the PE file past the size of the backing file.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=42125
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-15 11:42:22 +02:00
Alexandre Julliard 7e6a67d8c9 ntdll: Set up virtual memory layout in the Unix library.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-14 23:12:31 +02:00
Alexandre Julliard b7150570d3 ntdll: Allow ntdll.so to be loaded before wine_init() has run.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-14 23:12:31 +02:00
Alexandre Julliard b7b1ad0962 ntdll: Initial version of the ntdll.so Unix library.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-14 23:12:31 +02:00
Alexandre Julliard 6a12d93b88 ntdll: Handle already relocated .dynamic entries.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=49139
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-14 20:59:36 +02:00
Alexandre Julliard adb52247e3 ntdll: Fix __sync_bool_compare_and_swap() usage.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-14 20:59:36 +02:00
Alexandre Julliard 604e49056b ntdll: Initialize server directory on macOS when sending Mach port.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-14 20:59:36 +02:00
Alex Henrie 474d1f0b2d ntdll: Implement RtlIpv6StringToAddress(Ex)[AW].
Signed-off-by: Alex Henrie <alexhenrie24@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-14 20:59:36 +02:00
Brendan Shanks b11afa1725 ntdll: Fix length calculation of generated SMBIOS tables.
An extra byte for a null-terminator was added for every string, but not
used when the string was empty. This resulted in extra bytes at the end
of the buffer, causing parse errors in dmidecode.

Signed-off-by: Brendan Shanks <bshanks@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-14 11:40:25 +02:00
Alexandre Julliard 3214ca84d0 ntdll/tests: Add tests for RtlFormatMessage().
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-13 20:22:26 +02:00
Alexandre Julliard 497358bbb9 ntdll/tests: Add some printf tests.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-13 14:43:27 +02:00
Alexandre Julliard 5bb9f86dbe ntdll: Implement RtlFormatMessage().
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-13 14:43:27 +02:00
Alexandre Julliard b3a0a39356 ntdll: Merge new features from msvcrt's printf implementation.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-13 09:37:14 +02:00
Alexandre Julliard f44e90d284 ntdll: Add a few printf functions.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-12 23:07:06 +02:00
Rémi Bernon 16e32e3b77 ntdll: Reduce USD section size to 0x1000.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-12 10:58:07 +02:00
Rémi Bernon a1c46c3806 server: Add USD support with timestamp updates.
The USD page is created when the first process (wineboot.exe) completes
its creation, using its provided user_shared_data for initialization.

The server maps the page write-only and the clients map it read-only,
then the server updates the timestamps every 16 ms.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=29168
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-12 10:57:56 +02:00
Rémi Bernon dadf93f409 ntdll/tests: Add tests for USD memory basic info.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-12 10:57:54 +02:00
Rémi Bernon 89c242840d ntdll/tests: Add tests for USD timestamp updates.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-12 10:48:38 +02:00
Alexandre Julliard 8045167117 ntdll/tests: Enable RtlDowncaseUnicodeString() test.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-11 21:24:58 +02:00
Zebediah Figura e012bd5811 ntdll: Avoid leaking the previous environment in RtlSetCurrentEnvironment().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-07 11:30:11 +02:00
Zebediah Figura d98b87a317 ntdll/tests: Add tests for RtlSetCurrentEnvironment().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-07 11:30:09 +02:00
Jacek Caban 93d1eecb6a ntdll: Export _chkstk from importlib.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-05 20:53:02 +02:00
Alexandre Julliard a10f1e9d7b kernel32: Move FlushProcessWriteBuffers() stub to ntdll.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-05 20:53:02 +02:00
Zebediah Figura 74f820fccc ntdll: Export RtlCopyMemoryNonTemporal.
Needed by Blindwrite 7's kernel driver.

Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-04 12:39:09 +02:00
Alexandre Julliard 39e4b788d6 ntdll: Use the standard Interlocked* functions.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-02 15:10:04 +02:00
Gijs Vermeulen d8ec1fb894 ntdll: Remove unused function fast_wait_cv().
Signed-off-by: Gijs Vermeulen <gijsvrm@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-01 22:03:16 +02:00
Alexandre Julliard 2af035f53f ntdll: Remove support for custom virtual memory alignments.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-30 12:37:27 +02:00
Alexandre Julliard dee934c0ff ntdll: Allocate TEBs out of a larger memory block.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-30 12:37:27 +02:00
Alexandre Julliard 5dcb9ddff7 ntdll: Get rid of obsolete KERN_THALTSTACK sysctl.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-30 12:37:27 +02:00
Alexandre Julliard 53b305c35e ntdll: Use server_enter_uninterrupted_section() for LDT locking.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-29 19:53:57 +02:00
Alexandre Julliard bd9a1e23f2 ntdll: Move TEB allocation to the common code.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-28 14:03:26 +02:00
Alexandre Julliard 9650f1d3a1 ntdll: Move signal stack size computation to the common code.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-28 13:34:06 +02:00
Alexandre Julliard ffb7c595c6 ntdll: Add a helper for platform-specific threading initialization.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-28 13:17:07 +02:00
Alexandre Julliard 69f068bfb1 ntdll: Remove VFAT_IOCTL_READDIR_BOTH kernel bugs workarounds.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-28 12:33:11 +02:00
Alexandre Julliard 6b4de51027 ntdll: Don't use a custom alignment for large heap blocks.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-28 12:33:11 +02:00
Alexandre Julliard f5f1737456 ntdll: Store the pending free list in the main process heap.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-28 12:33:11 +02:00
Alexandre Julliard 9fd2330a96 ntdll: Add a helper to exec wineloader.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-28 11:28:29 +02:00
Alexandre Julliard 68a425b19c ntdll: Add a helper to exec wineserver.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-28 11:28:25 +02:00
Alexandre Julliard ba1495f7c2 ntdll: Avoid using wine_dll_enum_load_path() from libwine.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-27 12:35:39 +02:00
Alexandre Julliard 3e0c90e4c7 ntdll: Avoid using wine_get_build/data_dir() from libwine.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-27 12:35:19 +02:00
Alexandre Julliard 9122bc1096 ntdll: Avoid using wine_get_user_name() from libwine.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-27 12:34:45 +02:00
Alexandre Julliard 73211637c1 ntdll: Avoid using wine_get_server_dir() from libwine.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-27 12:34:30 +02:00
Alexandre Julliard e5030a4ac0 ntdll: Avoid using wine_get_config_dir() from libwine.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-27 12:34:07 +02:00
Rémi Bernon daa120309e server: Make sure pids/tids are multiples of four.
Street Fighter V unpacker relies on it when validating other processes
for its anti-debug checks, it uses (PID&0xfffffffc)>>2 as an array index
and then checks back indexes against PIDs, and terminates early if some
PIDs do not match.

Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-27 12:01:44 +02:00
Rémi Bernon 8bb684c63e ntdll/tests: Test that ptids are multiples of four.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-27 12:01:40 +02:00
Zebediah Figura ea753c384e include: Rename the other In*OrderModuleList fields to In*OrderLinks for consistency.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-24 10:13:49 +02:00
Zebediah Figura 09db718d99 include: Rename BaseAddress to DllBase.
To match Microsoft's public definition.

Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-24 10:13:46 +02:00
Zebediah Figura 4b3e820e07 include: Rename InMemoryOrderModuleList to InMemoryOrderLinks.
To match Microsoft's public definition.

Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-24 10:13:43 +02:00
Zebediah Figura feeb1c7c24 include: Rename LDR_MODULE to LDR_DATA_TABLE_ENTRY.
This name is used in Microsoft's public winternl.h.

Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-24 10:13:39 +02:00
Serge Gautherie 340bc136a7 ntdll: Reorder DECLSPEC_NORETURN on raise_status().
Signed-off-by: Serge Gautherie <winehq-git_serge_180711@gautherie.fr>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-23 12:57:43 +02:00
Paul Gofman b0d3b5b69c ntdll: Return STATUS_PENDING from NtReadFile() for async read in case of EOF.
Fixes crashes in "Planet Zoo" during character or game save.

Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-23 12:55:32 +02:00
Martin Storsjo ea9f47a767 ntdll: Properly return errors when failing to unwind.
If libunwind is unavailable, make libunwind_virtual_unwind return an
error. Likewise if there was no PE exception info and we didn't try
unwinding using libunwind, we need to return an error when realizing
we were unable to unwind, instead of just warning and returning
success.

This fixes hangs/infinite loops on crashes when unwinding fails.

Signed-off-by: Martin Storsjo <martin@martin.st>
Signed-off-by: André Hentschel <nerv@dawncrow.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-22 17:23:39 +02:00
Jacek Caban c4dab9b76e server: Block by waiting on context handle in get_thread_context.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=48052
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=45546
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-22 16:47:41 +02:00
Jacek Caban aa0c4bb5e7 server: Don't wait for client thread to enter suspended state in set_thread_context.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-22 16:47:41 +02:00
Alexandre Julliard d2b70aa57a ntdll: Add a helper function to allocate module dependencies.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-22 16:02:10 +02:00
Alexandre Julliard 68e675d73d ntdll: The builtin load callback is no longer used for ntdll itself.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-22 15:51:23 +02:00
Alexandre Julliard 6f4272ce3e ntdll: Call TLS callbacks also for the main exe.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=48971
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-22 14:14:40 +02:00
Alexandre Julliard 62807be8c9 makefiles: Explicitly import libwine where necessary.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-21 12:00:08 +02:00
Alexandre Julliard 3872dc55ef ntdll: Support loading ntdll without a constructor.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-21 11:27:11 +02:00
Alexandre Julliard 0a72ec1dac ntdll: Make sure we don't try to attach the main exe a second time.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=48961
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-21 11:23:15 +02:00
Alexandre Julliard abb33fb90e ntdll: Also ignore missing directories in NtGetNlsSectionPtr().
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=48966
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-20 20:54:21 +02:00
Alexandre Julliard fecaa443b5 ntdll: Don't abort directory search in single entry mode when a file is ignored.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=48960
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-20 20:54:21 +02:00
Sven Baars 1cfaf1425a ntdll: Fix a memory leak in fork_and_exec.
Signed-off-by: Sven Baars <sbaars@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-20 17:19:11 +02:00
Sven Baars 9ce4383128 ntdll: Fix a string leak in init_user_process_params (Valgrind).
Signed-off-by: Sven Baars <sbaars@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-20 12:49:11 +02:00
Gerald Pfeifer 973138c068 ntdll: Fix call_constructor build on FreeBSD.
Signed-off-by: Gerald Pfeifer <gerald@pfeifer.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-20 12:49:11 +02:00
Jacek Caban eaad238000 ntdll: Leave critical section before blocking in RtlWaitOnAddress.
Fixes regression from commit 4f673d5386.

Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-20 12:38:05 +02:00
Jacek Caban 7a1069e9bd ntdll: Remove APC handling from RtlWaitOnAddress.
It uses non-alertable wait anyway.

Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-20 12:36:40 +02:00
Alistair Leslie-Hughes ccce5f769d ntdll: Correct compile error under macos.
Signed-off-by: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-17 14:15:13 +02:00
Jacek Caban 7f9eb22af8 ntdll: Use server_select to pass context to server in send_debug_event.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-16 22:10:04 +02:00
Jacek Caban 137fd7d3a0 ntdll: Block signals in send_debug_event.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-16 22:10:04 +02:00
Jacek Caban 96cc6950f0 ntdll: Use select request instead of get_suspend_context to transfer context back to client.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-16 22:10:04 +02:00
Jacek Caban 5e7ccd182e ntdll: Use select request to pass suspend context to server.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-16 22:10:04 +02:00
Jacek Caban e70b684ded server: Allow passing suspend context in select request.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-16 22:10:04 +02:00
Alexandre Julliard 52bf0fbd47 ntdll: Export Unix user name in WINEUSERNAME variable.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-16 22:10:04 +02:00
Alexandre Julliard 081c8e1c73 ntdll: Execute .so constructors during module initialization.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-16 22:10:03 +02:00
Alexandre Julliard 3935acd4da ntdll: Use a Wine-specific field in WINE_MODREF for the .so handle.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-16 22:10:03 +02:00
Alexandre Julliard 0a3e42e271 ntdll: Load .so builtin modules without using libwine.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-16 22:10:03 +02:00
Alexandre Julliard 6ac357667e ntdll: Support loading builtin modules that don't use a constructor.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-15 19:50:21 +02:00
Jacek Caban b66e13ef24 kernelbase: Implement CreateThreadpoolIo.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-15 11:40:49 +02:00
Alexandre Julliard a55feef63a ntdll: Always use the loaded path as builtin module file name.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-14 22:04:07 +02:00
Alexandre Julliard 19c48204bb ntdll: Allow the module file name to not be null-terminated.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-14 21:59:19 +02:00
Alexandre Julliard fd7992972b ntdll: Don't call entry point for the main process so that we don't need to check the dll flag.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=48817
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-14 12:55:38 +02:00
Zebediah Figura a6e70c6074 ntdll: Handle unaligned SRW locks when using futexes.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-14 11:23:04 +02:00
Zebediah Figura 28619e6035 ntdll: Handle unaligned SRW locks when using keyed events.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-14 11:23:02 +02:00
Zebediah Figura aceff21022 ntdll: Handle unaligned condition variables when using futexes.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=48389
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-14 11:22:59 +02:00
Jacek Caban 0308c9599d ntdll: Directly use server_select in send_debug_event.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-13 12:15:00 +02:00
Jacek Caban 0ab9e00ef6 ntdll: Directly use server_select in wait_suspend.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-13 12:14:58 +02:00
Jacek Caban 4f673d5386 ntdll: Use server_select in RtlWaitOnAddress.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-13 12:14:55 +02:00
Jacek Caban 8701260768 ntdll: Factor out server_select.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-13 12:14:51 +02:00
Jacek Caban 4f9cc93108 server: Introduce a separated type for user APCs.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-13 12:14:50 +02:00
Zebediah Figura 320a025882 ntdll/tests: Add tests for kernel32 threadpool I/O functions.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-13 11:57:49 +02:00
Zebediah Figura 75e8c4493a ntdll: Implement threadpool I/O queues.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-13 11:57:46 +02:00
Zebediah Figura 74d830755c ntdll: Factor out object_is_finished().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-13 11:57:43 +02:00
Piotr Caban 321d26cbb4 server: Use correct clock in select.
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-09 21:04:04 +02:00
Piotr Caban 6d2d3595c0 server: Use monotonic clock in waitable timers.
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-09 21:04:04 +02:00
Alexandre Julliard de47a5969b libwine: Remove __wine_main_arg* from the public header.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-09 12:01:43 +02:00
Zebediah Figura 54417bf8bf mountmgr: Assign a unique nonzero serial to all volumes.
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-09 09:11:58 +02:00
Zebediah Figura a14cdc8ba0 ntdll: Fill the volume serial number in NtQueryInformationFile(FileIdInformation).
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-09 09:11:55 +02:00
Zebediah Figura 3c28511d42 ntdll: Silence a warning for FileFsVolumeInformation.
We may call CopyFile() and thus GetFileInformationByHandle(), which retrieves
the volume serial number, many times when setting up a prefix, before mountmgr
has been initialized.

Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-09 09:11:50 +02:00
Alexandre Julliard f64e34b014 ntdll: Use standard dlopen() instead of the libwine wrappers.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-07 14:26:19 +02:00
Zebediah Figura 021d9f0760 ntdll: Implement NtQueryVolumeInformationFile(FileFsVolumeInformation).
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-06 21:21:42 +02:00
Zebediah Figura 18a960bb84 ntdll: Implement NtQueryVolumeInformationFile(FileFsAttributeInformation).
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-06 21:21:42 +02:00
Alexandre Julliard 1124236c20 ntdll: Avoid using the selector functions from libwine.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-03 10:47:58 +02:00
Zebediah Figura 883679031b ntdll: Synchronize ZwSetLdtEntries spec entry with NtSetLdtEntries.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-03 10:43:35 +02:00
Nikolay Sivov 064c7bdbb4 ntdll: Fix trace pointer returned from RtlGetUnloadEventTraceEx().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-02 11:41:05 +02:00
Alexandre Julliard 9d588819fe ntdll: Export the LDT copy from ntdll instead of libwine.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-01 23:00:45 +02:00
Alexandre Julliard b8f0e32b9f ntdll: Avoid using the LDT definitions from libwine.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-01 12:45:26 +02:00
Alexandre Julliard b644034a52 ntdll: Reimplement LDT support for the TEB selector.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-01 12:39:18 +02:00
Alexandre Julliard 0187310966 ntdll: Implement NtSetLdtEntries().
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-01 12:38:50 +02:00
Alexandre Julliard 6169cacd0d ntdll: Move support for getting LDT entries to the platform-specific files.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-01 12:33:29 +02:00
Alexandre Julliard e36b97e1d0 ntdll: Use wcsncmp() instead of strncmpW().
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-31 15:53:53 +02:00
Alexandre Julliard 4501ab0a7c ntdll: Use wcscmp() instead of strcmpW().
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-31 15:53:53 +02:00
Alexandre Julliard 0d1b7737e3 ntdll: Use wcsspn() instead of strspnW().
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-31 15:53:53 +02:00
Alexandre Julliard 23bf63f9eb ntdll: Use wcscspn() instead of strcspnW().
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-31 15:53:53 +02:00
Alexandre Julliard e003b9884e ntdll: Use wcslen() instead of strlenW().
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-31 15:53:53 +02:00
Alexandre Julliard 4b5cd5e66d ntdll: Use wcstoul() instead of strtoulW().
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-31 15:53:53 +02:00
Alexandre Julliard 285c5490a4 ntdll: Use wcsrchr() instead of strrchrW().
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-31 15:53:53 +02:00
Alexandre Julliard 667fbe8791 ntdll: Use wcspbrk() instead of strpbrkW().
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-31 15:53:53 +02:00
Alexandre Julliard 6de0ab276b ntdll: Use wcschr() instead of strchrW().
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-31 15:53:53 +02:00
Alexandre Julliard 80005ee016 ntdll: Use wcscat() instead of strcatW().
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-31 15:53:53 +02:00
Alexandre Julliard 18411a19b4 ntdll: Use wcscpy() instead of strcpyW().
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-31 15:53:53 +02:00
Serge Gautherie fc75a22afa ntdll/tests: Fix 'path' copypastas.
Signed-off-by: Serge Gautherie <winehq-git_serge_180711@gautherie.fr>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-30 23:10:06 +02:00
Alexandre Julliard eb1b2e5486 ntdll: Avoid using sprintfW().
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-30 23:10:06 +02:00
Alexandre Julliard 8f3d869d78 ntdll: Avoid using atoiW().
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-30 23:10:06 +02:00
Alexandre Julliard 186f189107 ntdll: Avoid using memchrW().
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-30 23:10:06 +02:00
Alexandre Julliard 6fc9088789 ntdll: Avoid using memrchrW().
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-30 23:10:06 +02:00
Alexandre Julliard 7a974814cd ntdll: Avoid using tolowerW().
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-30 23:10:06 +02:00
Alexandre Julliard 1cde869627 ntdll: Avoid using toupperW().
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-30 23:10:06 +02:00
Alexandre Julliard 59d0ad23c7 ntdll: Use wcslwr() instead of tolowerW().
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-27 21:16:13 +01:00
Alexandre Julliard f599b2cf25 ntdll: Use wcsupr() instead of toupperW().
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-27 21:16:13 +01:00
Alexandre Julliard 0d3ba59e13 ntdll: Use the ascii_to_unicode() helper to compare relay module names.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-27 21:16:13 +01:00
Alexandre Julliard 2f7cc584ce ntdll: Use RtlCompareUnicodeStrings() instead of strncmpiW().
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-27 21:16:13 +01:00
Alexandre Julliard 4d93bafe96 ntdll: Use RtlEqualUnicodeString() instead of strcmpiW().
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-27 21:16:13 +01:00
Alexandre Julliard f831b3bd3d ntdll: Use wcsnicmp() instead of strncmpiW() where possible.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-27 21:16:13 +01:00
Alexandre Julliard 3e049b6b96 ntdll: Use wcsicmp() instead of strcmpiW() where possible.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-27 21:16:13 +01:00
Alexandre Julliard 6226be3656 ntdll: Update some string functions prototypes to match msvcrt.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-27 21:16:13 +01:00
Alexandre Julliard 9bbb66fdf7 ntdll: Use the NLS case mapping table for RtlHashUnicodeString().
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-26 18:34:49 +01:00
Zebediah Figura 97e88a56bc include: Rename the FileSystemAttribute field of FILE_FS_ATTRIBUTE_INFORMATION to FileSystemAttributes.
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-26 09:23:10 +01:00
Jacek Caban 1a05b7da63 ntdll: Support device paths in LdrGetDllPath.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=48698
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-25 15:26:33 +01:00
Zebediah Figura 340757c62a ntdll: Report Unix mount points as Win32 mount points in NtQueryInformationFile().
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-23 12:14:05 +01:00
Zebediah Figura 6b498d98a8 ntdll: Consider mount points to be reparse points in get_file_info().
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-23 12:13:48 +01:00
Zebediah Figura a20d8bda37 server: Store the real Unix path.
So that we can query the Unix symlink target from a file handle.

Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-23 12:13:44 +01:00
Zebediah Figura cd2e053237 ntdll: Fix the overflow check in read_changes_apc().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-23 11:37:20 +01:00
Gabriel Ivăncescu e95d0813fd ntdll: Store the default process activation context into the PEB.
Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-19 13:25:55 +01:00
Gabriel Ivăncescu caff74f369 include/winnt: Add more ACTCTX_COMPATIBILITY_ELEMENT_TYPE definitions and fix typo.
Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-19 13:18:02 +01:00
Serge Gautherie 71d8103190 ntdll/tests: Remove now useless forced 0x500 API versions.
Signed-off-by: Serge Gautherie <winehq-git_serge_180711@gautherie.fr>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-18 16:40:21 +01:00
Alexandre Julliard b408b07eae ntdll: Support the sortkey file in NtGetNlsSectionPtr().
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-17 15:18:57 +01:00
Francois Gouget a909baeb4e tests: Report all errors when failing to wait for a child process.
Report the line number where the test failed to wait for the child so
one can identify which child process did not behave as expected.
Also wait_child_process() is meant for the general case so report
all non-crash error cases as test failures so they are accounted for.
Omit the "winetest_" prefix to match the other Wine test functions and
so the underlying winetest_wait_child_process() function can be wrapped
with the usual line-capturing macros.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=48651
Signed-off-by: Francois Gouget <fgouget@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-17 10:51:44 +01:00
Serge Gautherie aa384d3642 tools: Remove 0x0501 API versions forced by winapi_test.
Signed-off-by: Serge Gautherie <winehq-git_serge_180711@gautherie.fr>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-13 20:10:44 +01:00
Alexandre Julliard 33937344a0 ntdll: Fix heap validation when large heap blocks are present.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-12 21:18:18 +01:00
Zebediah Figura 6971fd2d61 server: Allow renaming a file to the same name.
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-12 21:18:18 +01:00
Zebediah Figura ee136f9832 ntdll: Check for an existing file on the server side.
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-12 21:18:18 +01:00
Zebediah Figura 5b75d94304 ntdll/tests: Add tests for linking a file to the same name.
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-12 21:18:18 +01:00
Paul Gofman c6b501acdc ntdll: Add semi-stub for RtlGetNativeSystemInformation().
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=40334
Signed-off-by: Paul Gofman <gofmanp@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-11 22:58:16 +01:00
Alexandre Julliard 982f99d3d9 ntdll: Reimplement remaining string functions to avoid depending on wine/unicode.h.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-11 09:34:53 +01:00
Alexandre Julliard 295660b985 ntdll: Reimplement wcstol/wcstoul using the msvcrt code.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-11 09:34:53 +01:00
Alexandre Julliard 650c8e1434 ntdll: Don't handle the full Unicode character range in isw* functions.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-11 09:29:56 +01:00
Alexandre Julliard 1986328543 ntdll: Don't handle the full Unicode character range in wcsicmp/wcsnicmp.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-11 09:29:56 +01:00
Alexandre Julliard 5a4cc97a3b ntdll: Don't handle the full Unicode character range in wcslwr/wcsupr.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-11 09:29:56 +01:00
Alexandre Julliard 0d6802dcc5 ntdll: Use the NLS case mapping table for towlower/towupper.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-11 09:29:56 +01:00
Alexandre Julliard a1659db87f ntdll/tests: Remove some workarounds for older Windows versions.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-11 09:29:56 +01:00
Paul Gofman 3f0cbf4691 ntdll: Zero init reg_tzi in find_reg_tz_info().
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=48694
Signed-off-by: Paul Gofman <gofmanp@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-10 20:11:04 +01:00
Zebediah Figura 42b7bf0692 ntdll/tests: Test renaming a file to the same name.
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-09 12:10:52 +01:00
Zebediah Figura b2b4d1b0ec include: Use public field names for FILE_RENAME_INFORMATION.
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-09 12:10:52 +01:00
Jacek Caban 2d764e90dd ntdll: Use module path as assembly path for manifests embedded in resources.
Fixes Office 2016 installer, which removes its .exe directory from load
path, but expects to be able to load files listed in manifest.

Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-09 12:10:52 +01:00
Zebediah Figura 4e044ff0d9 ntdll/tests: Add more tests for DOS to NT path conversion.
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-05 19:52:28 +01:00
Zebediah Figura ef7283a02d ntdll/tests: Use wide character string literals in test_RtlDosPathNameToNtPathName_U().
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-05 19:52:26 +01:00
Zebediah Figura ddbea051c9 ntdll/tests: Separate invalid name tests for RtlDosPathNameToNtPathName_U().
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-05 19:52:24 +01:00
Alexandre Julliard ab9fe967f1 ntdll: Reimplement IdnToUnicode() using the normalization table and the ntdll helpers.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-03 13:20:24 +01:00
Alexandre Julliard 01237d0896 ntdll: Reimplement IdnToAscii() using the normalization table and the ntdll helpers.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-03 13:20:24 +01:00
Alexandre Julliard cd13557f48 ntdll: Reimplement IdnToNameprepUnicode() using the NLS normalization table.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-03 13:20:24 +01:00
Alexandre Julliard 35c223850e ntdll: Delay NFC table loading on macOS.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=48689
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-03 13:20:24 +01:00
Alexandre Julliard 4aebd6a95f ntdll: Allow final null in RtlNormalizeString() even if 0 is an invalid character.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-28 16:39:01 +01:00
Alex Henrie 9c11de6b79 ntdll/tests: Add more tests for RtlIpv6StringToAddress.
Signed-off-by: Alex Henrie <alexhenrie24@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-24 19:20:55 +01:00
Brendan Shanks 360b7ec299 ntdll: Add system family and SKU to generated SMBIOS tables.
Signed-off-by: Brendan Shanks <bshanks@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-21 13:48:44 +01:00
Alexandre Julliard e7eaa1a857 unicode: Remove no longer used normalization tables.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-21 13:48:44 +01:00
Alexandre Julliard 3e6b15c7b5 ntdll: Implement RtlIsNormalizedString().
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-21 13:48:44 +01:00
Alexandre Julliard 64dc42e34f ntdll: Use external NLS files for Unicode normalization.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-21 13:48:44 +01:00
Alexandre Julliard c388ad357a wine.inf: Add registry keys for normalization forms.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-18 11:23:40 +01:00
Paul Gofman fc8e9bac5f ntdll: Report rdtsc processor feature if supported.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=48386
Signed-off-by: Paul Gofman <gofmanp@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-17 20:26:56 +01:00
Paul Gofman 9689d07740 ntdll: Fill NumberOfPhysicalPages field in user shared data area.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=48387
Signed-off-by: Paul Gofman <gofmanp@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-17 20:26:45 +01:00
Alexandre Julliard 2b9d720ea0 unicode: Take into account explicit composition exclusions.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-17 15:04:59 +01:00
Alexandre Julliard 30f298f5db unicode: Remove non-starter and compatibility compositions from the table.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-17 15:04:59 +01:00
Alexandre Julliard fdc89e02e6 ntdll: Add support for Hangul Unicode normalization.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-17 15:04:59 +01:00
Alexandre Julliard 64e6d72284 unicode: Add support for high Unicode planes in composition tables.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-17 15:04:59 +01:00
Alexandre Julliard c658731975 unicode: Add support for high Unicode planes in decomposition tables.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-17 15:04:59 +01:00
Alexandre Julliard 148f564d10 unicode: Add support for high Unicode planes to the combining class table.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-17 13:49:05 +01:00
Alexandre Julliard 0f2e88b0b2 unicode: Copy the composition table to ntdll.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-17 10:30:06 +01:00
Alexandre Julliard 4dab9bc04b unicode: Move the compatibility decomposition table to ntdll.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-17 10:29:47 +01:00
Nikolay Sivov dec6abf754 ntdll: Add missing spec file entry for TpStartAsyncIoOperation().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-16 20:54:03 +01:00
Rémi Bernon 7332de64a5 server: Validate status in continue_debug_event.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-13 21:42:44 +01:00
Alex Henrie cdda133210 ntdll/tests: Add more tests for RtlIpv6StringToAddress.
Signed-off-by: Alex Henrie <alexhenrie24@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-13 16:44:24 +01:00
Alexandre Julliard 9f9984966a ntdll: Add more error mappings.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-13 16:44:23 +01:00
Alexandre Julliard f7ec4d076d ntdll: Add script to generate the error mapping list.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-13 16:44:23 +01:00
Nikolay Sivov 480d8b8253 kernel32: Add StartThreadpoolIo() stub.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-12 16:54:03 +01:00
Nikolay Sivov b2f5b03429 ntdll: Add threadpool stack information exports.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-12 16:54:03 +01:00
Rémi Bernon 03d1a9c68e ntdll/tests: Fix some format-overflow warnings.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-12 16:54:03 +01:00
Alexandre Julliard f55637dc1b ntdll: Don't allow unsupported codepages as Unix codepage.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-12 16:54:03 +01:00
Alexandre Julliard 9b01eda7c8 ntdll: Use external codepage tables for the Unix codepage too.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-11 09:15:19 +01:00
Alexandre Julliard fb316c3377 unicode: Generate nls files for the codepage tables.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-11 09:06:45 +01:00
Alexandre Julliard 42a30a693a makefiles: Move l_intl.nls to a new nls directory.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-11 09:05:33 +01:00
Alexandre Julliard 44ce5d9283 unicode: Support fetching a zip containining the data files.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-09 09:48:42 +01:00
Andrew Wesie 64d70b103d ntdll: Add NtQueryVirtualMemory(MemoryWorkingSetExInformation).
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=45667
Signed-off-by: Andrew Wesie <awesie@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-07 13:25:37 +01:00
Dmitry Timoshkov bbd73667d7 ntdll: Split logic for MemoryBasicInformation into a separate function.
Signed-off-by: Andrew Wesie <awesie@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-07 13:14:07 +01:00
Kevin Puetz b6e91fa44b ntdll: Allow NULL lpAssemblyDirectoryName in find_actctx_dll.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-05 21:32:00 +01:00
Rémi Bernon 544fd9504a ntdll: Process system APCs while the signals are blocked.
This makes sure that system APC, such as APC_BREAK_PROCESS do not get
interrupted in the middle of their execution, and that the APC
completion notification is always correctly sent back to the caller.

Otherwise DbgBreakProcess sometimes did not return until
WaitForDebugEvent/ContinueDebugEvent are called, because of a race
condition between the APC servicing thread, and the newly created
exception thread.

Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-05 21:28:26 +01:00
Rémi Bernon 2dc99bfb30 ntdll: Handle system APCs in a separate inner loop.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-05 21:28:24 +01:00
Rémi Bernon 3ffa355d2b ntdll: Use the status to tell user APC from system APC.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-05 21:28:21 +01:00
Rémi Bernon 6cb2336217 ntdll: Reorder code to make the select logic clearer.
The wait_select_reply call may return STATUS_USER_APC/STATUS_KERNEL_APC,
depending on which APC is about to be returned but the apc call will
always be APC_NONE right after the wait. It needs an additional select
request to actually return the call.

Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-05 21:28:18 +01:00
Rémi Bernon 676ad9b0af server: Use STATUS_KERNEL_APC to indicate system APCs.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-05 21:28:15 +01:00
Alexandre Julliard 6346809302 unicode: Move the combining class table to ntdll.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-04 21:30:26 +01:00
Alexandre Julliard cd8eaef47e unicode: Avoid copying the decomposition data when not necessary.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-04 21:30:26 +01:00
Alexandre Julliard a7cc191aa8 ntdll: Fix estimated buffer sizes in RtlNormalizeString().
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-03 20:48:03 +01:00