Commit graph

1665 commits

Author SHA1 Message Date
Alexandre Julliard
af4ef5fa02 ntdll: Always set non-volatile pointers for ARM64 unwinding. 2024-02-16 23:32:06 +01:00
Alexandre Julliard
14a290e77d ntdll: Implement CLEAR_UNWOUND_TO_CALL unwinding operation on ARM64. 2024-02-16 23:30:34 +01:00
Alexandre Julliard
f4ac9b35c2 ntdll: Implement EC_CONTEXT unwinding operation on ARM64. 2024-02-16 23:30:34 +01:00
Alexandre Julliard
41d7baa013 ntdll: Ignore home parameters saving when unwinding epilog on ARM64. 2024-02-16 23:30:08 +01:00
Alexandre Julliard
9cc5ed1802 ntdll/tests: Simplify testing of unwind register values on ARM64. 2024-02-16 16:43:18 +01:00
Alexandre Julliard
2601a8a2f1 ntdll: Don't count custom stack frames as part of the prolog on ARM64. 2024-02-15 20:31:49 +01:00
Alexandre Julliard
1abebca6dc ntdll: Ignore end_c when processing ARM64 unwind codes.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=55584
2024-02-15 20:31:49 +01:00
Alexandre Julliard
a271fc9e19 ntdll: Add support for the save_any_reg ARM64 unwind code.
Based on a patch by Billy Laws.
2024-02-15 20:31:49 +01:00
Alexandre Julliard
0b3d3ad2b7 ntdll: Support ARM64EC code in RtlLookupFunctionEntry. 2024-02-13 22:37:49 +01:00
Alexandre Julliard
215a8e68d3 ntdll: Move RtlLookupFunctionEntry() to the CPU backends. 2024-02-13 21:57:02 +01:00
Alexandre Julliard
b9a985a677 include: Add some public exception handling structures. 2024-02-13 17:59:38 +01:00
Alexandre Julliard
df8d907fb4 ntdll/tests: Don't use x86-64 assembly on ARM64EC. 2024-02-12 23:01:55 +01:00
Alexandre Julliard
de492f9a34 ntdll: Implement RtlLookupFunctionTable. 2024-02-12 22:53:21 +01:00
Alexandre Julliard
13b0f22cf9 ntdll/tests: Mark a failing test as todo. 2024-02-09 18:00:04 +01:00
Alexandre Julliard
cf7c48e036 ntdll: Fix RtlWow64GetCurrentMachine() result on ARM64EC. 2024-02-08 23:31:24 +01:00
Alexandre Julliard
8c703f3e2f ntdll: Redirect the module entry point for ARM64EC modules. 2024-02-08 17:07:22 +01:00
Alexandre Julliard
e05c6c8211 server: Don't update the entry point in the image information for ARM64EC modules. 2024-02-08 17:07:22 +01:00
Alexandre Julliard
818b577727 ntdll/tests: Add some process machine tests for ARM64X. 2024-02-07 15:46:01 +01:00
Paul Gofman
f8ee879002 ntdll/tests: Fix test_user_shared_data() for a more generic set of present features. 2024-02-01 21:47:17 +01:00
Louis Lenders
a24039ad09 ntdll: Add stub for RtlGetDeviceFamilyInfoEnum.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=56259
2024-01-31 11:04:29 +01:00
Alexandre Julliard
adf5f5fd30 ntdll/tests: Port the exception unwinding tests to ARM. 2024-01-26 17:54:33 +01:00
Alexandre Julliard
32f5efcdb2 ntdll/tests: Port the exception unwinding tests to ARM64. 2024-01-26 17:54:33 +01:00
Dāvis Mosāns
e5aafd9eed ntdll/tests: Test NtContinue on x86-64.
Co-authored-by: Jinoh Kang <jinoh.kang.kr@gmail.com>
2024-01-25 21:06:51 +01:00
Bernhard Übelacker
ab28825ace ntdll: Fix structure layout in RtlQueryProcessDebugInformation for 64-bit.
This is to avoid crash in Process Explorer 17.05.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=56235
2024-01-24 21:36:23 +01:00
Paul Gofman
7bd070ae86 ntdll: Return STATUS_DEBUGGER_INACTIVE from NtSystemDebugControl() stub. 2024-01-23 22:56:53 +01:00
Alexandre Julliard
5113e55139 ntdll/tests: Update todos in context tests for new wow64 mode. 2024-01-23 22:56:49 +01:00
Alexandre Julliard
3031f15784 include: Add a typedef for user callback function pointers. 2024-01-22 11:26:56 +01:00
Jinoh Kang
015434d24c ntdll/tests: Restore x86-64 #AC exception test in test_exceptions(). 2024-01-18 18:08:48 +01:00
Jinoh Kang
b07ce09982 ntdll/tests: Avoid misaligned load in exception handler code in run_exception_test_flags().
This is required for testing EH behavior on alignment check (#AC)
exceptions.
2024-01-18 18:08:48 +01:00
Alexandre Julliard
fad3e416f8 ntdll/tests: Add exception test for int 2d on x86-64. 2024-01-17 12:16:37 +01:00
Nikolay Sivov
a8f5b292c3 ntdll/tests: Add some tests for creating custom heaps. 2024-01-17 10:58:39 +01:00
Jinoh Kang
9fa27defd7 ntdll/tests: Fix xstate tests failing on Windows 11 and CPU with more XSAVE features. 2024-01-08 20:52:27 +01:00
Jinoh Kang
835f99bdce ntdll/tests: Don't hard code the maximum XState length in test_extended_context().
This is required to support systems with a larger XSAVE area.
2024-01-08 20:52:27 +01:00
Jinoh Kang
7ba9dea999 ntdll/tests: Fix incorrect calculation of context length in test_copy_context().
`(BYTE *)dst_ex - (BYTE *)dst` is the size of the legacy context, but
`dst_ex->All` already contains the legacy context.  Therefore,
`context_length` has the legacy context size added *twice*.

This becomes a problem when `context_length` exceeds
`sizeof(src_context_buffer)`.  This confuses `check_changes_in_range()`,
causing out-of-bounds read and unpredictable test results.
2024-01-08 10:18:26 +01:00
Jinoh Kang
3995ff240a ntdll/tests: Fix x86-32 extended context end offset in test_copy_context().
The penultimate element of `ranges_x86` array has an incorrect value: it
should be *at least* 0x2f0, which is the minimum size of an extended
context.

Fix this by setting it to 0x440, which is the minimum size of an
extended context *with* CONTEXT_I386_XSTATE.  This is consistent with
`ranges_amd64`, the penultimate element of which has the minimum size of
an extended context *with* CONTEXT_AMD64_XSTATE.

Note that the incorrect value does not always lead to a test failure,
since check_changes_in_range_() effectively ignores range `start`s that
are not in order.  Reproducing the failure requires a system with a
sufficiently large XSAVE area; specifically, the following condition is
necessary for check_changes_in_range_() to pick up the wrong value:

    0x2cc < 0x294 + src_ex->XState.Length - sizeof(XSTATE).
2024-01-08 10:18:26 +01:00
Paul Gofman
cbcfaab519 ntdll: Use position independent syscall thunk for NtQueryInformationProcess on i386.
Fixes a regression introduced by commit
efd03f40e6.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=55967
2023-12-17 17:42:14 +01:00
Nikolay Sivov
26f11bdfe5 ntdll: Use public type for SystemSupportedProcessorArchitectures returned data.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2023-12-06 10:20:50 +01:00
Alexandre Julliard
8c41a215b9 ntdll: Skip NtRaiseException() call on ARM when debugger is not present. 2023-12-04 22:10:20 +01:00
Alexandre Julliard
5b06847214 ntdll: Fix stack layout for KiUserCallbackDispatcher on ARM. 2023-12-03 14:21:20 +01:00
Alexandre Julliard
75d0d466ec ntdll: Fix stack layout for KiUserApcDispatcher on ARM. 2023-12-03 14:16:42 +01:00
Alexandre Julliard
89f3c59739 ntdll: Fix stack layout for KiUserExceptionDispatcher on ARM. 2023-12-03 14:15:52 +01:00
Alexandre Julliard
42046a24d4 ntdll: Implement context and machine frame unwind operations on ARM. 2023-12-03 14:15:52 +01:00
Alexandre Julliard
de3fd9e265 ntdll/tests: Fix some compiler warnings on ARM. 2023-12-03 13:46:52 +01:00
Alexandre Julliard
effdb707b0 ntdll/tests: Remove some noisy traces. 2023-12-01 17:21:39 +01:00
Alexandre Julliard
e60a97c1b4 ntdll: Fix stack layout for KiUserCallbackDispatcher on i386. 2023-12-01 17:21:39 +01:00
Alexandre Julliard
3774b00f31 ntdll: Fix stack layout for KiUserApcDispatcher on i386. 2023-12-01 17:21:39 +01:00
Alexandre Julliard
58a00854c3 ntdll: Fix stack layout for KiUserExceptionDispatcher on i386. 2023-12-01 17:21:39 +01:00
Alexandre Julliard
b5cd47f541 ntdll: Skip NtRaiseException() call on ARM64 when debugger is not present. 2023-12-01 17:21:39 +01:00
Alexandre Julliard
d6bd264460 ntdll: Fix stack layout and unwind information for KiUserCallbackDispatcher on ARM64. 2023-12-01 17:21:39 +01:00
Alexandre Julliard
060a8b4af2 ntdll: Fix stack layout and unwind information for KiUserApcDispatcher on ARM64. 2023-12-01 17:21:39 +01:00