Commit graph

160328 commits

Author SHA1 Message Date
Rémi Bernon d7538e339c comctl32/tests: Remove a now succeeding todo_wine.
Fixed by 33617af814.
2022-11-07 21:13:32 +01:00
Sebastián Aedo d0923a2f72 netprofm: Implement network_GetNetworkConnections.
Signed-off-by: Sebastián Aedo <saedo@codeweavers.com>
2022-11-07 21:13:32 +01:00
Sebastián Aedo ecbc5da924 netprofm: Add INetwork_GetNetworkConnections test.
Signed-off-by: Sebastián Aedo <saedo@codeweavers.com>
2022-11-07 21:13:32 +01:00
Tarcísio Ladeia de Oliveira 61f566260b gdi32/tests: Fix assertion message. 2022-11-07 21:13:32 +01:00
Eric Pouech c5e23886b2 rpcrt4: Fix unexpected exception in ndr_marshal tests.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=52909
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
2022-11-07 21:13:32 +01:00
Zebediah Figura 98c0bdb9a8 winecoreaudio: Clean up the timer queue handle in DllMain(). 2022-11-07 21:13:32 +01:00
Zebediah Figura 1a451cb91c winecoreaudio: Disable thread DllMain() calls. 2022-11-07 21:13:32 +01:00
Brendan Shanks 93577c0013 ntdll: Add native thread renaming for exception method. 2022-11-07 21:13:32 +01:00
Brendan Shanks d3416d9081 ntdll: Add a Wine-specific THREADINFOCLASS to set just the native thread name. 2022-11-07 21:13:32 +01:00
Nikolay Sivov b40ddf4237 user32/edit: Check for control destruction on notification return.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2022-11-07 21:13:31 +01:00
Nikolay Sivov fed0c33fe0 comctl32/edit: Check for control destruction on notification return.
Based on a patch by Mark Jansen.

Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2022-11-07 21:13:31 +01:00
Alex Henrie bae772695e include: Add sdkddkver.h.
Needed to compile Tera Term.
2022-11-07 21:13:31 +01:00
Jinoh Kang b6a41a2f98 comctl32/tests: Flush events before testing edit control IME messages. 2022-11-07 21:13:31 +01:00
Jinoh Kang 7a772a7feb comctl32/tests: Flush events before testing edit control SetFocus() messages. 2022-11-07 21:13:31 +01:00
Zhiyi Zhang 225daac879 d2d1: Use D2D1_ALPHA_MODE_IGNORE if D2D1_ALPHA_MODE_UNKNOWN is used for creating hwnd render targets.
Also, alpha mode should not be overwritten with D2D1_ALPHA_MODE_IGNORE just because
DXGI_FORMAT_UNKNOWN is specified.
2022-11-07 21:13:31 +01:00
Zhiyi Zhang 1e4d311999 d2d1/tests: Add hwnd render target pixel format tests. 2022-11-07 21:13:31 +01:00
Alexandre Julliard 4069a8b384 ntdll: Reimplement KeUserModeCallback in assembly on ARM64. 2022-11-07 21:13:31 +01:00
Alexandre Julliard b60d076b09 ntdll: Reimplement KeUserModeCallback in assembly on ARM. 2022-11-07 21:13:31 +01:00
Alexandre Julliard 8e9551f324 ntdll: Reimplement KeUserModeCallback in assembly on x86_64. 2022-11-07 21:13:31 +01:00
Alexandre Julliard d40017ecda ntdll: Reimplement KeUserModeCallback in assembly on i386. 2022-11-07 21:13:31 +01:00
Alexandre Julliard 1a652d2c9e xslt: Use WINAPIV calling convention for variadic functions. 2022-11-07 21:13:31 +01:00
Alexandre Julliard e742eeb6c3 xml2: Use WINAPIV calling convention for variadic functions. 2022-11-07 21:13:31 +01:00
Alexandre Julliard 89cad8c4b7 msvcrt: Use WINAPIV calling convention for variadic functions. 2022-11-07 20:15:02 +01:00
Martin Storsjö a27b202a4d ntdll: Implement ARM EHABI unwinding.
This avoids relying on libunwind, which isn't always available,
and which can be brittle (e.g. current git master of libunwind fails, see
https://github.com/libunwind/libunwind/pull/203#issuecomment-984126066).

This allows unwinding with the EXIDX/EXTBL info which is used
normally for C++ exception handling/unwinding. This avoids needing
to keep the .so files unstripped and avoids needing libunwind to
load .debug_frame from disk instead of the already mapped
EXIDX/EXTBL.

This patch uses the dl_iterate_phdr function for finding the EXIDX
section; keeping this call within #ifdef linux to avoid breaking
someone's build, even though it probably is available on most unix
(or ELF) platforms.

Alternatively, we could add configure checks for this function.

This passes all my unwinding tests, for full ELF builds of Wine,
built with both GCC and Clang. (It also works for PE builds, where
only very few ELF bits need to be unwound.)

Signed-off-by: Martin Storsjö <martin@martin.st>
2022-11-07 20:15:02 +01:00
Martin Storsjö f760976803 ntdll: Add ARM EHABI unwind instructions in assembly functions.
On most ELF platforms on ARM, ARM EHABI is the unwind info
format normally used, instead of DWARF like on most other platforms.

Currently, when unwinding through ELF objects with libunwind, the
libraries don't have any .eh_frame section mapped at runtime (since
DWARF isn't used for unwinding). Instead, what happens is that
libunwind ends up loading .debug_frame from the libraries on disk
instead.

Therefore, currently, ELF unwinding relies on the .so files not being
stripped.

This patch adds the necessary EHABI unwinding instructions in the
assembly functions that currently have DWARF CFI instructions.

EHABI isn't signaled via any specific preprocessor macro, but
is signaled by the absence of other unwind mechanisms (such
as __ARM_DWARF_EH__ and __SEH__, or maybe SjLj).

Mark the asm functions in the preloaders as .cantunwind, to avoid
undefined references to __aeabi_unwind_cpp_pr* functions.

Also mark other assembly functions as .cantunwind; for
signal_exit_thread this is essential if the function is marked
with .fnstart/.fnend - otherwise exiting threads does hang.
(pthread_exit internally calls _Unwind_ForcedUnwind, which would
hang if signal_exit_thread had .fnstart without any matching unwind
info).

This would, in principle, allow unwinding through these functions with
libunwind, for versions of libunwind that can parse the EHABI unwind
info - see e.g.
4d779f55c0.
(This commit isn't yet in any current release AFAIK). Unwinding with
EHABI via libunwind would require a few tweaks to the libunwind interface
usage in unix/signal_arm.c though, since e.g. the unw_get_proc_info call
fails if there's no .eh_frame or .debug_frame available.

Signed-off-by: Martin Storsjö <martin@martin.st>
2022-11-07 10:28:18 +01:00
Rémi Bernon 9d1175a464 winebuild: Avoid calling asm_name twice in function arguments.
It returns a static buffer pointer and will free the first returned
pointer on the second call.
2022-11-04 21:53:54 +01:00
Jinoh Kang 53c4f638ef ntdll: Add CFI unwind info to __wine_syscall_dispatcher (i386).
This change is adding DWARF (CFI) unwind information to the
hand-written assembly of the `__wine_syscall_dispatcher` function.
This enables unwinding through the dispatcher from the Linux stack
into (and through) the Windows stack.

The general idea is that the `syscall_frame` struct contains the
content of the callee-save registers before the function call
(in particular the stack pointer and the return address).  At any
point of the execution, we have a pointer into the `syscall_frame`
in $ebx, $ecx, $ebp, or $esp.

For the CFI codes the general idea is that we are defining the
computations of the callee-save registers based on the
`syscall_frame` using DWARF’s `breg` instruction, rather than
relative to CFA.
2022-11-04 19:23:56 +01:00
Jinoh Kang 5aa2d45adf ntdll: Move CFI helper macros out of signal_x86_64.c. 2022-11-04 19:23:56 +01:00
Paul Gofman 81ce03dfdd windows.gaming.ui.gamebar: Add IGameBarStatics interface. 2022-11-04 19:23:56 +01:00
Paul Gofman dde251a008 windows.gaming.ui.gamebar: Add stub DLL. 2022-11-04 19:23:56 +01:00
Paul Gofman 0aacfd6861 include: Add windows.gaming.ui.idl. 2022-11-04 19:23:56 +01:00
Jinoh Kang 33617af814 server: Don't invalidate the newly exposed child region on the parent if it doesn't clip children.
This partly reverts e42eaaaf3a.

Signed-off-by: Jinoh Kang <jinoh.kang.kr@gmail.com>
2022-11-04 19:23:56 +01:00
Jinoh Kang c310e975f4 server: Redraw composited window child when its z-order changes.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=53153
Signed-off-by: Jinoh Kang <jinoh.kang.kr@gmail.com>
2022-11-04 19:23:56 +01:00
Jinoh Kang 17e6ef6d7e server: Correctly expose composited parent window and its child on position change.
Skip redrawing the composited child window when the window rect and
visible region stays the same, since we're taking the union of the old
and new visible regions.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=53153
Signed-off-by: Jinoh Kang <jinoh.kang.kr@gmail.com>
2022-11-04 19:23:56 +01:00
Jacek Caban 04576c156e winevulkan: Skip unsupported functions in a few more places. 2022-11-04 19:23:56 +01:00
Jacek Caban 692625a36a winevulkan: Don't declare host types for structs that don't need it. 2022-11-04 19:23:56 +01:00
Jacek Caban 511a8bfa09 winevulkan: Use struct conversion functions for array conversion implementations. 2022-11-04 19:23:56 +01:00
Jacek Caban a242422e95 winevulkan: Use separated classes for struct and array conversions. 2022-11-04 19:23:56 +01:00
Jacek Caban 0bfad6584f winevulkan: Drop "static_array" from conversion function names.
Static arrays need only output conversion and output conversion is the same for static and dynamic arrays.
2022-11-04 19:23:56 +01:00
Jacek Caban d44aadc527 winevulkan: Support output array conversion in _generate_array_conversion_func.
And get rid of _generate_static_array_conversion_func.
2022-11-04 19:23:55 +01:00
Jacek Caban c09a414525 winevulkan: Pass type as uint32_t to wine_vk_unwrap_handle.
Fixes -Wenum-conversion warning when VkDebugReportObjectTypeEXT is used as a type.
2022-11-04 19:23:55 +01:00
Jacek Caban e8af92ac16 winevulkan: Remove no longer used Direction.INPUT_OUTPUT. 2022-11-04 19:23:55 +01:00
Zhiyi Zhang bd8ec8f264 winex11.drv: Support _NET_WM_FULLSCREEN_MONITORS.
Support _NET_WM_FULLSCREEN_MONITORS for fullscreen windows spanning multiple monitors. This property
is used to hint window managers about which monitor a fullscreen window should cover. Window managers
make a fullscreen window spanning multiple monitors cover only one monitor when this property is missing.

Fix Project Cars 2/3 incorrect game window size when the triple-screen mode is on.
2022-11-04 19:23:55 +01:00
Zhiyi Zhang 3dd68caab3 user32/tests: Test creating a fullscreen window spanning multiple monitors. 2022-11-04 19:23:55 +01:00
Zhiyi Zhang 736ae290c9 uxtheme: Support drawing themed menu buttons. 2022-11-04 19:23:55 +01:00
Zhiyi Zhang c196d2462d user32: Hook drawing menu buttons. 2022-11-04 19:23:55 +01:00
Rémi Bernon 077c46261a opengl32: Use the unixlib interface for more WGL functions. 2022-11-04 19:23:55 +01:00
Rémi Bernon 494251add7 opengl32: Move some WGL functions to unix_wgl.c. 2022-11-04 19:23:55 +01:00
Rémi Bernon dec91f0631 opengl32: Introduce a new NtUserCallOpenGLDebugMessageCallback callback. 2022-11-04 19:23:55 +01:00
Rémi Bernon df74066f47 opengl32: Avoid using internal functions in wglUseFontOutlines. 2022-11-04 19:23:55 +01:00