Commit graph

271 commits

Author SHA1 Message Date
Alexandre Julliard 3ac808e46e ntdll: Set Wow64 user space limit based on LARGE_ADDRESS_AWARE.
Based on a patch by Billy Laws.
2023-08-16 15:31:54 +02:00
Jacek Caban dcf0bf1f38 ntdll: Inherit ConsoleHandle only by CUI processes. 2023-06-26 15:04:26 +02:00
Alexandre Julliard a82238fad5 ntdll: Allocate 64-bit and kernel stacks in high memory. 2023-06-13 22:10:56 +02:00
Alexandre Julliard 11cd51139d ntdll: Support the lower memory limit in MEM_ADDRESS_REQUIREMENTS. 2023-06-13 22:10:56 +02:00
Alexandre Julliard 931292f1a6 ntdll: Use the sysv ABI for __wine_syscall_dispatcher_return().
Missing from b337c5b1a1, spotted by Fan
WenJie.
2023-06-09 23:37:14 +02:00
Alexandre Julliard 1aa2f0d128 ntdll: Store the PE function pointers as simple void pointers.
Their prototypes are not meaningful on the Unix side.
2023-06-01 17:24:06 +02:00
Alexandre Julliard d5f23441ad ntdll: Use nameless unions/structs for IO_STATUS_BLOCK. 2023-05-30 12:12:09 +02:00
Alexandre Julliard 71d9f327f0 ntdll: Allocate the ARM64EC code map when the first ARM64X binary is loaded. 2023-05-26 21:24:14 +02:00
Alexandre Julliard 4356fe0d83 ntdll: Support the PS_ATTRIBUTE_MACHINE_TYPE attribute for new processes. 2023-05-24 15:43:54 +02:00
Alexandre Julliard 0433db1eb1 ntdll: Add a helper function to map the main exe module. 2023-05-23 14:43:11 +02:00
Alexandre Julliard ebc1b09915 ntdll: Support the machine extended parameter in NtMapViewOfSectionEx(). 2023-05-23 13:24:32 +02:00
Alexandre Julliard f5d272f561 ntdll: Move the Unix function tables to avoid forward declarations, and make them static. 2023-05-11 22:53:14 +02:00
Alexandre Julliard 04ef02f6ff ntdll: Pass limit instead of zero bits to internal memory mapping functions. 2023-05-10 17:08:48 +02:00
Alexandre Julliard c722353c87 ntdll: Support the ARM64EC code map. 2023-05-09 14:11:19 +02:00
Alexandre Julliard 871f333d55 ntdll: Use a separate memory allocation for the kernel stack. 2023-04-25 18:00:38 +02:00
Alexandre Julliard e588e218f0 ntdll: Only fall back to start.exe when using a different loader. 2023-03-28 11:58:30 +02:00
Alexandre Julliard dd7b4431a6 ntdll: Add a helper function to check for Wow64 mode. 2023-03-23 14:20:16 +01:00
Alexandre Julliard f3d90fd55b ntdll: Add a helper function to check for old-style Wow64 mode. 2023-03-23 14:20:14 +01:00
Alexandre Julliard 46d0da53b6 ntdll: Replace the wine_server_handle_to_fd() syscall by a Unix call. 2023-02-14 20:57:09 +01:00
Alexandre Julliard 6d27bcbe2c ntdll: Replace the wine_server_fd_to_handle() syscall by a Unix call. 2023-02-14 20:57:09 +01:00
Alexandre Julliard 8a3ba513ff ntdll: Replace the wine_server_call() syscall by a Unix call. 2023-02-14 20:57:09 +01:00
Alexandre Julliard a14b4c7d0d ntdll: Replace the __wine_unix_spawnvp() syscall by a Unix call. 2023-02-14 20:57:09 +01:00
Alexandre Julliard 5c62fe0bfe ntdll: Replace the __wine_dbg_write() syscall by a Unix call. 2023-02-14 20:57:09 +01:00
Alexandre Julliard 7406583e5b ntdll: Store the unixlib handle at ntdll load time. 2023-02-14 20:57:09 +01:00
Alexandre Julliard bef0969722 ntdll: Move the .so module initialization to winecrt0.
Use new ELF tag ids to avoid breaking backwards compatibility.
2022-12-04 22:00:43 +01:00
Alexandre Julliard 911789e757 ntdll: Implement a faster Unix call dispatcher on i386.
Inspired by a patch from Rémi Bernon.
2022-12-01 20:35:47 +01:00
Martin Storsjö d6829bdcba ntdll: Avoid accidentally picking up ntdll's __wine_unix_call_funcs for other DLLs.
When f7332ab4a6 switched load_so_dll
over to a proper Unix syscall, ntdll.so started providing the
symbol __wine_unix_call_funcs.

When a DLL calls NtQueryVirtualMemory(MemoryWineUnixFuncs), it can
do so speculatively, not knowing whether the corresponding unix
lib actually does provide anything.

When ntdll.so started providing this symbol, then such speculative
calls to NtQueryVirtualMemory(MemoryWineUnixFuncs) would end up
returning ntdll's __wine_unix_call_funcs if the intended DLL's
unix library lacked one.

This is the case with bcrypt, where the unix library doesn't
provide __wine_unix_call_funcs if gnutls is unavailable.

This fixes crashes after f7332ab4a6,
in builds without gnutls.

Signed-off-by: Martin Storsjö <martin@martin.st>
2022-11-23 20:35:06 +01:00
Alexandre Julliard af4378d46d ntdll: Use unsigned int for the return value of server calls.
To avoid typecasts in debug traces.
2022-11-21 18:03:53 +01:00
Alexandre Julliard 1a7cacc489 ntdll: Use unsigned int instead of NTSTATUS in async callbacks.
To avoid typecasts in debug traces.
2022-11-21 18:03:53 +01:00
Alexandre Julliard 7afd11232e ntdll: Use UINT instead of ULONG in ioctl helpers.
To avoid typecasts in debug traces.
2022-11-21 18:03:53 +01:00
Jinoh Kang 282120a9c5 ntdll: Use an acquire/release pair on the IOSB status. 2022-11-14 13:17:31 +01:00
Alexandre Julliard 4b65a7027f ntdll: Use a proper Unix syscall for RtlGetSystemTimePrecise(). 2022-11-10 10:38:12 +01:00
Alexandre Julliard 1fe7b8dd6d ntdll: Use a proper Unix syscall for unwind_builtin_dll(). 2022-11-10 10:33:37 +01:00
Alexandre Julliard f7332ab4a6 ntdll: Use a proper Unix syscall for load_so_dll(). 2022-11-10 10:33:37 +01:00
Alexandre Julliard d3a68e434e ntdll: Move the initialization of the thread register into signal_start_thread().
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-11-10 09:50:53 +01:00
Alexandre Julliard 6ecc803950 ntdll: Use a pthread key for the TEB on all platforms.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-11-10 09:50:41 +01:00
Zebediah Figura 6b16ead607 ntdll: The async handle passed to set_async_direct_result() cannot be NULL. 2022-10-21 17:05:13 +02:00
Zebediah Figura cb8937801d ntdll: Use the send_socket request for NtWriteFile() on a socket.
send_socket does some extra bookkeeping that's currently missing from the
register_async path. Instead of adding it to sock_queue_async(), let's just
centralize all send requests so that they go through send_socket.
2022-07-14 10:29:12 +02:00
Zebediah Figura 9783e2e16c ntdll: Use the recv_socket request for NtReadFile() on a socket.
recv_socket does some extra bookkeeping that's currently missing from the
register_async path. Instead of adding it to sock_queue_async(), let's just
centralize all recv requests so that they go through recv_socket.
2022-07-14 10:29:11 +02:00
Brendan Shanks f99cb3297f ntdll: Add zero_bits parameter to load_builtin.
Signed-off-by: Brendan Shanks <bshanks@codeweavers.com>
2022-06-20 10:37:48 +02:00
Brendan Shanks 9bed3adc72 ntdll: Add zero_bits parameter to virtual_map_builtin_module.
Signed-off-by: Brendan Shanks <bshanks@codeweavers.com>
2022-06-20 10:37:46 +02:00
Paul Gofman dfd5f109fb ntdll: Increase kernel stack size.
Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-04-13 11:00:33 +02:00
Jinoh Kang be9a875fc1 server: Add mark_pending field to set_async_direct_result request.
The client can set mark_pending to indicate that the full-blown I/O
completion mechanism shall be triggered (asynchronous completion) even
if the status indicates failure.

Signed-off-by: Jinoh Kang <jinoh.kang.kr@gmail.com>
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-22 18:38:18 +01:00
Alexandre Julliard cd4fcf9a11 ntdll: Add a helper function to map a section.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-03-21 14:28:10 +01:00
Alexandre Julliard a31f3374e6 ntdll: Add a global variable for the WoW PEB.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-21 18:55:22 +01:00
Jinoh Kang e5ce4fa917 server: Attempt to complete I/O request immediately in recv_socket.
Make recv_socket alert the async immediately if poll() call detects that
there are incoming data in the socket, bypassing the wineserver's main
polling loop.

Signed-off-by: Jinoh Kang <jinoh.kang.kr@gmail.com>
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-10 20:18:39 +01:00
Alexandre Julliard e16ccaf05d ntdll: Support debugger attach from a 64-bit process to a 32-bit process.
This is needed until 64-bit ntdll can be mapped in all
processes. Partial revert of 8dc6987ba5.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=52157
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-01-03 17:46:39 +01:00
Alexandre Julliard 3e73437ae8 ntdll: Preserve the startup Unix directory unless it's on a removable device.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=52256
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-12-27 18:51:16 +01:00
Zebediah Figura 7bea24f6e1 ntdll: Factor out in_wow64_call().
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-12-10 22:00:17 +01:00
Alexandre Julliard 4f58d8144c ntdll: Remove __wine_init_unix_lib() and the old Unix library interface.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-12-09 17:14:59 +01:00