Compare commits

...

151 Commits
v5.5 ... v5.12

Author SHA1 Message Date
Alistair Leslie-Hughes
f48f106853 Release v5.12 2020-07-04 11:59:57 +10:00
Zebediah Figura
2e111fae10 ntdll-NtQueryVirtualMemory: Correct rebase. 2020-07-03 19:21:33 -05:00
Zebediah Figura
9cca205cc2 ntdll-NtQueryVirtualMemory: Rebase and re-enable. 2020-07-03 18:23:02 -05:00
Zebediah Figura
502c444d9c Rebase against 51dd1ba02e4a96a3e0c9381a434bfd1fd4347d83. 2020-07-03 18:18:38 -05:00
Alistair Leslie-Hughes
215d78f8e1 Rebase against 8bd5fe30014c2aa60f0c4570db4ef936e8c51245. 2020-07-03 08:19:34 +10:00
Alistair Leslie-Hughes
cbdc68f558 Updated patchinstall.sh for server-Key-State 2020-07-02 09:58:06 +10:00
Alistair Leslie-Hughes
6125243d3a Rebase against 10b17932fa829fac10a5e6717d96ed5d56de80fe. 2020-07-02 08:27:54 +10:00
Zebediah Figura
262df397ef server-Key_State: Rebase and restore mistakenly deleted patch. 2020-06-30 19:15:34 -05:00
Zebediah Figura
f904ca32a3 user32-rawinput-*: Rebase and re-enable.
Thanks to Rémi Bernon for the rebased patch sets.
2020-06-30 17:30:13 -05:00
Zebediah Figura
70f6f6d7e4 Rebase against 359ee2ecc21b08e4118f0f77b3a208e4b5e1e63d. 2020-06-30 17:11:27 -05:00
Zebediah Figura
4995d0d3af ntdll-ThreadTime: Correct rebase. 2020-06-29 20:55:04 -05:00
Zebediah Figura
40099e26bf ntdll-ThreadTime: Rebase and re-enable. 2020-06-29 19:03:01 -05:00
Zebediah Figura
70d8178927 Rebase against ec9e556d31278d2de28b8ba82a063dc9fffdb440. 2020-06-29 18:56:48 -05:00
Zebediah Figura
b6c2818755 server-Desktop_Refcount: Add missing alloc_handle() callback.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=49463
2020-06-27 11:22:04 -05:00
Alistair Leslie-Hughes
37fc290f77 Rebase against 13b2587d4f55d64a1381c60ac34acf4abe6bb1e8. 2020-06-27 11:39:24 +10:00
Alistair Leslie-Hughes
82cff8bbdb Rebase against fe4379eb19a201d45bc0d2d51270db133fd23a77. 2020-06-26 11:07:53 +10:00
Alistair Leslie-Hughes
df2fd22e4d Added winevulkan-vkGetPhysicalDeviceSurfaceCapabilitiesKHR patchset 2020-06-25 10:03:16 +10:00
Alistair Leslie-Hughes
60074b960f Rebase against 1f6423f778f7036a3875613e10b9c8c3b84584f0. 2020-06-25 08:19:10 +10:00
Paul Gofman
97fbe3fe04 Updated ntdll-ForceBottomUpAlloc patchset. 2020-06-24 20:02:02 +03:00
Paul Gofman
f2686a1537 Updated ntdll-ForceBottomUpAlloc patchset. 2020-06-24 17:49:51 +03:00
Zebediah Figura
7766c17912 Rebase against bc282905d9491b9f9fe4ae4b69a8ccdf99c5aaa8. 2020-06-23 18:07:36 -05:00
Paul Gofman
8402c95961 Updated server-Stored_ACLs patchset.
Do not turn file type into FD_TYPE_CHAR when setting
security descriptor.
2020-06-23 13:11:59 +03:00
Zebediah Figura
6274392d27 Rebase against 449b8c7e9212d0a80e28babff20f2755b7370872. 2020-06-22 17:21:09 -05:00
Alistair Leslie-Hughes
102af10c89 Updated winemenubuilder-Desktop_Icon_Path patchset
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=49415
2020-06-22 13:56:19 +10:00
Alistair Leslie-Hughes
3d9a927266 Release v5.11 2020-06-20 11:51:49 +10:00
Zebediah Figura
8e5546184f ntdll-Junction_Points: Rebase and re-enable. 2020-06-18 20:41:39 -05:00
Zebediah Figura
d799e8fd82 Rebase against e80df2d2d54a3f16389bea77f6863cc1c05d6251. 2020-06-18 19:13:40 -05:00
Alistair Leslie-Hughes
02913f754f Rebase against 67ef5151744b347d4a30c985da6712fb0061e675. 2020-06-18 08:59:21 +10:00
Zebediah Figura
03f5adcafb advapi32-Token_Integrity_Level: Correct rebase. 2020-06-16 19:38:49 -05:00
Alistair Leslie-Hughes
984d402240 Rebase against f56e409c2feb62056eb133e53fe398eadd0a503e. 2020-06-17 10:06:04 +10:00
Zebediah Figura
32fcc0d75b Rebase against 634cb775c27b61ad6ce1fbe3e9972b0edfa31dcb. 2020-06-15 17:43:18 -05:00
Zebediah Figura
b6595d9e28 Rebase against 948a6a47b8dbd0ddd86cad04de03f0e4ba81b65d. 2020-06-12 18:15:13 -05:00
Alistair Leslie-Hughes
eb4f9db59c Updated wow64cpu-Wow64Transition patchset
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=49025
2020-06-12 09:41:04 +10:00
Alistair Leslie-Hughes
11f545447b Rebase against 22970932d014f024fcf7f0f98b1a5384b1b1eb99. 2020-06-12 09:35:12 +10:00
Paul Gofman
7934e14fc0 Updated ntdll-Syscall_Emulation patchset.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=49362
2020-06-11 15:26:30 +03:00
Paul Gofman
5306e1df11 Updated winebuild-Fake_Dlls patchset.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=49357
2020-06-11 15:23:16 +03:00
Alistair Leslie-Hughes
938c0aa155 Rebase against 343043153b44fa46a2081fa8a2c171eac7c8dab6. 2020-06-11 08:44:26 +10:00
Zebediah Figura
cb2a6551bc Rebase against bf454cc39428fc5299e5c26d9c0ddc6a9277c7ae. 2020-06-09 18:27:57 -05:00
Zebediah Figura
9a4c8c5631 Rebase against 17529582402ebe27ef975fc7dcb8353f4f95e629. 2020-06-08 16:00:03 -05:00
Paul Gofman
044cb93066 Updated ntdll-ForceBottomUpAlloc patchset.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=49326
2020-06-08 15:33:28 +03:00
Alistair Leslie-Hughes
8648971fa8 Release v5.10 2020-06-06 16:35:31 +10:00
Zebediah Figura
f1917e904a Rebase against 3cc3b445752902e07231900befc296f74ad6576e. 2020-06-05 15:06:03 -05:00
Paul Gofman
f12808c094 Updated winebuild-Fake_Dlls patchset. 2020-06-05 13:34:50 +03:00
Zebediah Figura
8a2765d125 Rebase against 3c72034b72014a087eae8d181252c67cb0782e28.
64-bit syscalls are broken.
2020-06-04 18:26:58 -05:00
Zebediah Figura
7b78338b07 Rebase against aba27fd5a3241635adb15fa7ef40aa43bf3978a1. 2020-06-04 00:08:14 -05:00
Alistair Leslie-Hughes
0db92c336f Updated d3d11-Deferred_Context patchset 2020-06-03 10:43:26 +10:00
Zebediah Figura
2fd3b9fdfd ntdll-RtlCreateUserThread: Fix a compiler warning. 2020-06-02 18:36:41 -05:00
Zebediah Figura
92d52c3f4c ntdll-Interrupt-0x2e: Fix a compiler warning. 2020-06-02 18:36:41 -05:00
Zebediah Figura
a4d98c48f9 Rebase against 48020f4846cca1a02f4e1dc037e2cc2068df5e9c. 2020-06-02 18:36:41 -05:00
Paul Gofman
676f261e5e Updated ntdll-ForceBottomUpAlloc patchset. 2020-06-02 21:29:16 +03:00
Alistair Leslie-Hughes
6387991cc0 Fixed rebase for x64 2020-06-02 14:04:28 +10:00
Zebediah Figura
c81093882b Rebase against 3c86adab766e3bc7c91da088c2dd6bc41a917055. 2020-06-01 22:31:00 -05:00
Alistair Leslie-Hughes
f132e60b9d Updated d3d11-Deferred_Context patch
Game: Trainz: A New Era.
2020-06-01 16:22:19 +10:00
Paul Gofman
934a09585a Updated winebuild-Fake_Dlls patchset. 2020-05-31 23:12:03 +03:00
Zebediah Figura
06877e55b1 Rebase against bf83d755d987fec552cd1dce30638c31c49ab760. 2020-05-29 19:13:43 -05:00
Alistair Leslie-Hughes
4e692b5301 Rebase against e48fabff525061c8eea9558084a97308cebe6b7b. 2020-05-28 08:46:43 +10:00
Alistair Leslie-Hughes
9ff4e2dc44 Update commit-rebase.sh
Make it work when tree already has patches applied.
2020-05-28 08:03:39 +10:00
Alistair Leslie-Hughes
76f206526a Fix commit sha 2020-05-28 08:02:14 +10:00
Alistair Leslie-Hughes
f3298432f0 Rebase against 87733a69f7448d25539cbc4fc37d2e93466f38de. 2020-05-27 10:10:56 +10:00
Alistair Leslie-Hughes
8be56c21f9 Rebase against 86e388c9182a4121eab35353bdfae3f0f4fd5a40. 2020-05-26 09:08:07 +10:00
Alistair Leslie-Hughes
543cee79a8 Added ntdll-RtlQueryRegistryValuesEx patchset 2020-05-24 18:38:23 +10:00
Alistair Leslie-Hughes
c6132bcb28 Added ntoskrnl.exe-KeGenericCallDpc 2020-05-24 17:47:21 +10:00
Alistair Leslie-Hughes
9ffacb6b09 Added ntoskrnl.exe-KeQueryActiveProcessorCountEx patchset 2020-05-24 17:46:14 +10:00
Alistair Leslie-Hughes
bca232f190 Add ntoskrnl.exe-KeRevertToUserAffinityThreadEx patchset 2020-05-24 17:41:57 +10:00
Alistair Leslie-Hughes
2263ec0d3d Add ntoskrnl.exe-KeSetSystemAffinityThreadEx patchset 2020-05-24 17:40:24 +10:00
Alistair Leslie-Hughes
2c7588eb2f Add ntoskrnl.exe-KdRefreshDebuggerNotPresent patchset 2020-05-24 17:38:27 +10:00
Alistair Leslie-Hughes
7b5a0e5a94 Release v5.9 2020-05-23 11:04:58 +10:00
Alistair Leslie-Hughes
bf85255a61 Added ntdll-SystemCodeIntegrityInformation patchset 2020-05-23 10:51:19 +10:00
Zebediah Figura
7f9b426cb9 Rebase against 056c9df854817670dc4fb9c095cba29c99089ac8. 2020-05-22 17:57:07 -05:00
Paul Gofman
a1bda115af Updated winebuild-Fake_Dlls patchset. 2020-05-22 19:56:58 +03:00
Zebediah Figura
033542b024 libs-Debug_Channel: Disable. 2020-05-21 21:48:19 -05:00
Zebediah Figura
1f7dd0ee12 winebuild-Fake_Dlls: Correct rebase. 2020-05-21 21:48:11 -05:00
Zebediah Figura
4501d49149 Rebase against b65ca133052ed9053e48c571155a764d4d711277. 2020-05-21 20:17:05 -05:00
Alistair Leslie-Hughes
5246a035e9 Rebase against fe4e6934a937645cea4fece505c0e1acaf2dfc07 2020-05-21 08:56:59 +10:00
Alistair Leslie-Hughes
fbe1ba5578 Rebase against 3bb824f98891e8eb907c9c652fe528373a17b10d 2020-05-20 08:48:22 +10:00
Alistair Leslie-Hughes
24cd5774cf Updated patches/patchinstall.sh 2020-05-19 12:57:14 +10:00
Zebediah Figura
307f8a782d Staging: Get rid of the wine_get_patches() ntdll export.
Nobody should ever programmatically care about this.
2020-05-18 19:31:47 -05:00
Zebediah Figura
bee49c0b29 patchinstall.py: Support --upstream-commit. 2020-05-18 19:30:10 -05:00
Zebediah Figura
4b2ca6b38e server-Object_Types: Fix a copy-paste error.
Introduced in b74293fbfe.

Thanks to Paul Gofman for finding this.
2020-05-18 19:30:10 -05:00
Zebediah Figura
762c0e7040 ntdll-avoid-fstatat: Remove patch set.
This was written for the Mac OS build machine maintained by Michael MĂĽller and
Sebastian Lackner. That machine is out of service as of Wine 5.8. The current
plan is to ensure the replacement has a recent enough SDK to use fstatat().
2020-05-18 19:30:10 -05:00
Zebediah Figura
0a85e3f331 Rebase against 3bb824f98891e8eb907c9c652fe528373a17b10d. 2020-05-18 19:30:09 -05:00
Zebediah Figura
68f3e40ff7 Rebase against 9e26bc811656ad8eb901bffa5528b9ce25d44bc3. 2020-05-15 17:29:14 -05:00
Zebediah Figura
cc185de9ef Rebase against 893080e4df5a45929320ebb88b8668eea316476c. 2020-05-14 19:00:49 -05:00
Alistair Leslie-Hughes
e30e225125 Rebase against debe646aa70f88b4c4aa0dc4f380d6db939e573e 2020-05-14 08:25:28 +10:00
Zebediah Figura
d58990f6ac Rebase against 26b26a2e0efcb776e7b0115f15580d2507b10400. 2020-05-12 18:03:01 -05:00
Alistair Leslie-Hughes
3e3661298c Rebase against b071d37b8017ff34a29f1555ab6630d4b88d1838 2020-05-12 08:21:46 +10:00
Alistair Leslie-Hughes
7d92cd315b Release v5.8 2020-05-09 15:46:18 +10:00
Paul Gofman
3931c93628 Updated ntdll-WRITECOPY patchset.
Get the guard with STAGING_WRITECOPY env var back as the
patchset is currently causing some regressions.
2020-05-08 19:06:51 +03:00
Alistair Leslie-Hughes
813de5d6f8 Rebase against 148fc1adb53aa1d78a67b2a0ee5ea8058d92589a 2020-05-07 10:22:41 +10:00
Zebediah Figura
dfc3b0f583 Rebase against 1976685a0f57bdec939228d73f6252c68ccb8f80. 2020-05-05 16:17:09 -05:00
Zebediah Figura
3e39e3132b Fix a couple of errors. 2020-05-04 22:44:11 -05:00
Alistair Leslie-Hughes
76ba9d2387 Rebase against 4e2ad334b5881af7661be4d6df3c51aae92ca4a2 2020-05-04 22:19:25 -05:00
Zebediah Figura
d4918b4305 kernel32-Named_Pipe: Remove patch set.
We have had complete message mode named pipe support for multiple years now, and PIPE_NOWAIT for a while too.
2020-05-04 22:19:25 -05:00
Paul Gofman
dcd4faf1c9 Updated winebuild-Fake_Dlls patchset.
Fix Apple code path after ntdll-User_Shared_Data update.
2020-05-04 22:19:24 -05:00
Zebediah Figura
7557b3e2eb Revert "winebuild-Fake_Dlls: Get rid of the separate path for Mac OS."
This reverts commit 4147635dfc.
2020-05-04 22:19:24 -05:00
Zebediah Figura
4b12c5a4e3 Revert "Updated winebuild-Fake_Dlls, ntdll-Syscall_Emulation patchsets."
This reverts commit ca73dc62cd.
2020-05-04 22:19:24 -05:00
Paul Gofman
ca73dc62cd Updated winebuild-Fake_Dlls, ntdll-Syscall_Emulation patchsets.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=49065
2020-05-01 14:36:17 +03:00
Zebediah Figura
4147635dfc winebuild-Fake_Dlls: Get rid of the separate path for Mac OS. 2020-04-30 18:58:33 -05:00
Zebediah Figura
4e6a477acd ntdll-User_Shared_Data: Replace with new wineserver-based implementation. 2020-04-30 18:14:40 -05:00
Zebediah Figura
169c49055d Rebase against 0c27d244f76ad90301c5db09d738b3a0389bcdac. 2020-04-30 17:39:18 -05:00
Alistair Leslie-Hughes
7b0b95ee53 Rebase against cf8a6eb2769d2c4ba5bb837d29db89f6b88706ae 2020-04-30 08:28:10 +10:00
Paul Gofman
1785a56934 Updated ntdll-NtSetLdtEntries patchset.
Fixed a test failure.
2020-04-29 17:18:02 +03:00
Paul Gofman
f2d1cc1a8c Updated wined3d-Indexed_Vertex_Blending patchset.
Fix crash in 'Raiden 3 Digital Edition'.
2020-04-29 15:22:03 +03:00
Zebediah Figura
8a46f19ece Rebase against 7ccc45f754a39a425ecc2358a4cfc5675ff11ffb. 2020-04-28 17:41:41 -05:00
Paul Gofman
d33cdb84fd Updated ntdll-WRITECOPY patchset.
Added patches by Andrew Wesie which complete the implementation
and remove the configuration option that was previously
disabled by default.
2020-04-28 14:55:04 +03:00
Zebediah Figura
69a4e4baa2 Rebase against 28ec2795186c7db83637b3b17e4fa95095ebb77d. 2020-04-27 16:42:51 -05:00
Alistair Leslie-Hughes
2ad422ff4d Release v5.7 2020-04-25 21:49:25 +10:00
Paul Gofman
a8b95783eb Added ntdll-FLS_Callbacks patchset. 2020-04-25 13:12:04 +03:00
Zebediah Figura
4581daea3b Rebase against c44e0cf60ad1a967d80fafb427974332b35a0071. 2020-04-24 16:35:33 -05:00
Paul Gofman
77d29cbee9 Updated ntdll-Syscall_Emulation patchset. 2020-04-24 13:43:49 +03:00
Zebediah Figura
f90eb74f8d Rebase against 28bc1bb463eb4075c6a113ba5c279a0506c6daea. 2020-04-23 23:15:23 -05:00
Zebediah Figura
abc772e286 Add missing server object operations to struct context.
Missed by yesterday's rebase.
2020-04-23 10:57:26 -05:00
Zebediah Figura
2c2eabb5c0 Rebase against f52b33c63064aa59f48a9c10d624e3508da55b88. 2020-04-22 17:09:11 -05:00
Paul Gofman
75637c26ea Updated ntdll-Syscall_Emulation patchset. 2020-04-22 19:14:29 +03:00
Alistair Leslie-Hughes
4e0031b058 Rebase against f65cfbfe9b20e38537c7cb8608e7f411c9e8b725 2020-04-22 08:35:52 +10:00
Alistair Leslie-Hughes
0d8d1f0447 Rebase against f31a29b8d1ea478af28f14cdaf3db1515a932853 2020-04-21 08:19:34 +10:00
Alistair Leslie-Hughes
029c249e78 Rebase against 59987bc9ecdd0dbafd768a95c21a14884bc77c07 2020-04-18 14:54:07 +10:00
Zebediah Figura
8d4d0a840e user32-rawinput-mouse: Don't send raw input messages when there's no windows or sinks to receive them.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=48946
2020-04-16 17:55:20 -05:00
Zebediah Figura
767b90c5dd Rebase against c18152630362c1bff1813fe8ad5c75ffb8dbb7cf. 2020-04-16 17:42:47 -05:00
Alistair Leslie-Hughes
a23c076055 Rebase against dc214bfad723efeea96a5d33eb7fc0802dc34be9 2020-04-15 10:14:15 +10:00
Paul Gofman
e2c2447841 Updated ntdll-Syscall_Emulation patchset. 2020-04-14 14:32:16 +03:00
Alistair Leslie-Hughes
4861c47f2b Remove macos compile patch
Fixed upstream.
2020-04-14 16:27:59 +10:00
Zebediah Figura
437038604a Rebase against 5e75310837e5ec77ebc361d689ea3279fa49ebac. 2020-04-13 18:10:11 -05:00
Alistair Leslie-Hughes
4c160ec82a Release v5.6.1
Fix macos compile issue.
2020-04-11 19:11:22 +10:00
Alistair Leslie-Hughes
528144a4ad Added secur32-macos-compile patchset 2020-04-11 17:19:00 +10:00
Alistair Leslie-Hughes
76900de5bb Release v5.6 2020-04-11 11:32:24 +10:00
Alistair Leslie-Hughes
776306026a Added ntdll-LDR_IMAGE_IS_DLL patchset 2020-04-11 11:20:50 +10:00
Alistair Leslie-Hughes
c4c72e90ab Rebase against 2b0977fc711e1faadfef69e3a46c2d1848b4826b 2020-04-11 11:10:52 +10:00
Zebediah Figura
f8c3c9a6f8 Rebase against 2b0977fc711e1faadfef69e3a46c2d1848b4826b. 2020-04-09 20:55:11 -05:00
Alistair Leslie-Hughes
39678da196 Updated ntdll-RtlIpv4StringToAddress patchset 2020-04-09 08:15:42 +10:00
Zebediah Figura
be8a670b5b user32-rawinput-mouse: Fix dinput rawinput events sequence number.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=48833
2020-04-08 09:51:35 -05:00
Zebediah Figura
4d11895651 patchinstall.py: Escape characters in C strings. 2020-04-08 09:42:45 -05:00
Alistair Leslie-Hughes
bf3fbb7bdf Rebase against 38e95ed2227dd3f0fc3d1394c884265d43e3b283 2020-04-08 10:22:04 +10:00
Zebediah Figura
160a5024b4 patchinstall.py: Some fixes. 2020-04-07 10:10:11 -05:00
Zebediah Figura
f36c844f11 patchinstall.py: Bring up to patchinstall.sh.
I think as of this commit it's feature-complete, minus a couple things I'm not sure we still care about.
2020-04-06 23:33:07 -05:00
Alistair Leslie-Hughes
732ab97a7e Rebase against ca092dcf819174699f9bb1af45a285dff2f6ac81 2020-04-07 08:23:24 +10:00
Zebediah Figura
46fbb7d31e patchinstall.py: New patch installation script. 2020-04-05 12:49:14 -05:00
Zebediah Figura
44d1a45e98 user32-rawinput-nolegacy: Also update the key state if RIDEV_NOLEGACY is used.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=48612
2020-04-05 11:38:00 -05:00
Zebediah Figura
f23b6cb7dc user32-rawinput-mouse: Fix some dependencies. 2020-04-05 11:30:28 -05:00
Alistair Leslie-Hughes
4d01e48843 Rebase against 7096ab45444d7b7cbb926b5a51af0cbc46960ed3 2020-04-04 08:55:44 +11:00
Alistair Leslie-Hughes
90109a5fc5 Rebase against 3047385437c7ef36996d0418ac378677f3e9d67c 2020-04-03 08:55:36 +11:00
Alistair Leslie-Hughes
e8abb98858 Updated user32-GetMouseMovePointsEx patchset
Thanks Ryan for the updated patch/

As Ryan pointed out.  Mount & Blade II requires that last point
to be different from the point or else it cannot workout what direction
the mouse moved.

This would need some sort of server side cache of mouse movements which
this function could ask for.
2020-04-02 14:29:12 +11:00
Alistair Leslie-Hughes
56b4eed468 Added user32-GetMouseMovePointsExuser32-GetMouseMovePointsEx patchset 2020-04-02 12:26:54 +11:00
Zebediah Figura
755d1ca559 Rebase against 12c3177ed5cae39de8a9f9111a1cb450296cc8e6. 2020-04-01 18:08:55 -05:00
Alistair Leslie-Hughes
001ea51fb5 Updated ntdll-Hide_Wine_Exports patchset 2020-04-01 17:17:30 +11:00
Alistair Leslie-Hughes
db80e169c7 Updated ntdll-NtDevicePath patchset 2020-04-01 17:17:30 +11:00
Alistair Leslie-Hughes
7757a2d4f6 Updated ntdll-Junction_Points patchset 2020-04-01 16:07:07 +11:00
Alistair Leslie-Hughes
1a980ed93d Rebase against 5c0e699dbad3e4b4494852c6482125bd8bda9148 2020-04-01 10:16:47 +11:00
Alistair Leslie-Hughes
528306ccb6 Rebase against 9bcb1f5195d1e65e0e7afb288d36fee716fe3a60 2020-03-31 08:55:37 +11:00
Alistair Leslie-Hughes
7fe7d87f09 Updated xactengine-initial patchset
Fixes: https://bugs.winehq.org/show_bug.cgi?id=48824
2020-03-30 16:09:46 +11:00
Paul Gofman
805f2e9252 Updated ntdll-Syscall_Emulation patchset.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=48840
2020-03-29 19:02:33 +03:00
389 changed files with 10258 additions and 22718 deletions

View File

@@ -1,4 +1,4 @@
From 494fc3abe1eddabcf7cede677ee907284e89eea8 Mon Sep 17 00:00:00 2001
From a349cc8bdcc3a083ea507dbbdeba9053e3a338e4 Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Tue, 22 Mar 2016 23:08:30 +0100
Subject: [PATCH] include: Check element type in CONTAINING_RECORD and similar
@@ -11,7 +11,7 @@ Subject: [PATCH] include: Check element type in CONTAINING_RECORD and similar
3 files changed, 24 insertions(+), 6 deletions(-)
diff --git a/include/wine/list.h b/include/wine/list.h
index b4d681fe..287ad394 100644
index b4d681fe0f3..287ad394fae 100644
--- a/include/wine/list.h
+++ b/include/wine/list.h
@@ -228,7 +228,13 @@ static inline void list_move_head( struct list *dst, struct list *src )
@@ -31,7 +31,7 @@ index b4d681fe..287ad394 100644
#endif /* __WINE_SERVER_LIST_H */
diff --git a/include/wine/rbtree.h b/include/wine/rbtree.h
index dc50b5e7..8130deb5 100644
index 8aae29c8c10..330b3e8fbc9 100644
--- a/include/wine/rbtree.h
+++ b/include/wine/rbtree.h
@@ -23,8 +23,14 @@
@@ -52,10 +52,10 @@ index dc50b5e7..8130deb5 100644
struct wine_rb_entry
{
diff --git a/include/winnt.h b/include/winnt.h
index 2b489382..a156efc4 100644
index 46e17c546a7..d5c65d2017b 100644
--- a/include/winnt.h
+++ b/include/winnt.h
@@ -760,8 +760,14 @@ typedef struct _MEMORY_BASIC_INFORMATION
@@ -793,8 +793,14 @@ typedef struct _MEMORY_BASIC_INFORMATION
#define RTL_FIELD_SIZE(type, field) (sizeof(((type *)0)->field))
#define RTL_SIZEOF_THROUGH_FIELD(type, field) (FIELD_OFFSET(type, field) + RTL_FIELD_SIZE(type, field))
@@ -70,8 +70,8 @@ index 2b489382..a156efc4 100644
+ ((type *)((PCHAR)(address) - offsetof(type, field)))
+#endif
#define ARRAYSIZE(x) (sizeof(x) / sizeof((x)[0]))
#ifdef __WINESRC__
# define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))
--
2.20.1
2.26.2

View File

@@ -1,18 +1,18 @@
From 9e585de1f2f28e1ef18c1edca875779c491375cb Mon Sep 17 00:00:00 2001
From aa9cb874b1fb89601d6a5a735b442b8a7aa7b3aa Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Thu, 2 Oct 2014 19:44:31 +0200
Subject: [PATCH] kernel32: Add winediag message to show warning, that this
isn't vanilla wine.
---
dlls/kernel32/process.c | 10 ++++++++++
1 file changed, 10 insertions(+)
dlls/kernel32/process.c | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/dlls/kernel32/process.c b/dlls/kernel32/process.c
index 36ed82bff8c..b8a677c5485 100644
index 8f506fcf1320..45bfe7fe7b5d 100644
--- a/dlls/kernel32/process.c
+++ b/dlls/kernel32/process.c
@@ -65,6 +65,7 @@
@@ -60,6 +60,7 @@
WINE_DEFAULT_DEBUG_CHANNEL(process);
WINE_DECLARE_DEBUG_CHANNEL(relay);
@@ -20,7 +20,15 @@ index 36ed82bff8c..b8a677c5485 100644
typedef struct
{
@@ -997,6 +998,15 @@ void WINAPI start_process( LPTHREAD_START_ROUTINE entry, PEB *peb )
@@ -125,6 +126,7 @@ static inline DWORD call_process_entry( PEB *peb, LPTHREAD_START_ROUTINE entry )
}
#endif
+extern const char * CDECL wine_get_version(void);
/***********************************************************************
* __wine_start_process
*
@@ -150,6 +152,15 @@ void CDECL __wine_start_process( LPTHREAD_START_ROUTINE entry, PEB *peb )
__TRY
{
@@ -37,5 +45,5 @@ index 36ed82bff8c..b8a677c5485 100644
being_debugged = FALSE;
--
2.23.0
2.26.2

View File

@@ -1,17 +1,31 @@
From 05ca39b029f8f710ca53aeafc36384fd39fd6b89 Mon Sep 17 00:00:00 2001
From c097870c69720ece3874ad4ff987408a8c24ffb2 Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Thu, 2 Oct 2014 19:53:46 +0200
Subject: [PATCH] winelib: Append '(Staging)' at the end of the version string.
---
libs/wine/Makefile.in | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
dlls/ntdll/Makefile.in | 2 +-
libs/wine/Makefile.in | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/dlls/ntdll/Makefile.in b/dlls/ntdll/Makefile.in
index ebf607e9d43..de93445d4e3 100644
--- a/dlls/ntdll/Makefile.in
+++ b/dlls/ntdll/Makefile.in
@@ -69,7 +69,7 @@ server_EXTRADEFS = \
-DBIN_TO_DATADIR=\"`$(MAKEDEP) -R ${bindir} ${datadir}/wine`\"
unix/version.c: dummy
- version=`(GIT_DIR=$(top_srcdir)/.git git describe HEAD 2>/dev/null || echo "wine-$(PACKAGE_VERSION)") | sed -n -e '$$s/\(.*\)/const char wine_build[] = "\1";/p'` && (echo $$version | cmp -s - $@) || echo $$version >$@ || (rm -f $@ && exit 1)
+ version=`(GIT_DIR=$(top_srcdir)/.git git describe HEAD 2>/dev/null || echo "wine-$(PACKAGE_VERSION)") | sed -n -e '$$s/\(.*\)/const char wine_build[] = "\1 (Staging)";/p'` && (echo $$version | cmp -s - $@) || echo $$version >$@ || (rm -f $@ && exit 1)
dummy:
.PHONY: dummy
diff --git a/libs/wine/Makefile.in b/libs/wine/Makefile.in
index 4833eb5..3cfa4f4 100644
index fe2a2b45e58..1e55a6b1f46 100644
--- a/libs/wine/Makefile.in
+++ b/libs/wine/Makefile.in
@@ -31,7 +31,7 @@ libwine_LDFLAGS = $(LIBWINE_LDFLAGS)
@@ -100,7 +100,7 @@ libwine_LDFLAGS = $(LIBWINE_LDFLAGS)
libwine_DEPS = $(LIBWINE_DEPENDS)
version.c: dummy
@@ -21,5 +35,5 @@ index 4833eb5..3cfa4f4 100644
dummy:
.PHONY: dummy
--
1.9.1
2.26.2

View File

@@ -1,66 +1,33 @@
From d216f85a593a09e7983d9178fb3e1f20bfcf08cc Mon Sep 17 00:00:00 2001
From 599c50c9e339fe04e96fdb665b3d7ccb1a7708b7 Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Thu, 29 May 2014 23:43:45 +0200
Subject: [PATCH] loader: Add commandline option --patches to show the patch
list.
---
dlls/ntdll/misc.c | 8 ++++++++
dlls/ntdll/ntdll.spec | 1 +
include/wine/library.h | 1 +
libs/wine/config.c | 6 ++++++
libs/wine/wine.map | 1 +
loader/main.c | 42 +++++++++++++++++++++++++++++++++++++++++-
6 files changed, 58 insertions(+), 1 deletion(-)
4 files changed, 49 insertions(+), 1 deletion(-)
diff --git a/dlls/ntdll/misc.c b/dlls/ntdll/misc.c
index c29a1c26c..8906e1942 100644
--- a/dlls/ntdll/misc.c
+++ b/dlls/ntdll/misc.c
@@ -60,6 +60,14 @@ const char * CDECL NTDLL_wine_get_version(void)
return wine_get_version();
}
+/*********************************************************************
+ * wine_get_patches (NTDLL.@)
+ */
+const void * CDECL NTDLL_wine_get_patches(void)
+{
+ return wine_get_patches();
+}
+
/*********************************************************************
* wine_get_build_id (NTDLL.@)
*/
diff --git a/dlls/ntdll/ntdll.spec b/dlls/ntdll/ntdll.spec
index 7aa953ca6..cf7d5b6f9 100644
--- a/dlls/ntdll/ntdll.spec
+++ b/dlls/ntdll/ntdll.spec
@@ -1566,6 +1566,7 @@
# Version
@ cdecl wine_get_version() NTDLL_wine_get_version
+@ cdecl wine_get_patches() NTDLL_wine_get_patches
@ cdecl wine_get_build_id() NTDLL_wine_get_build_id
@ cdecl wine_get_host_version(ptr ptr) NTDLL_wine_get_host_version
diff --git a/include/wine/library.h b/include/wine/library.h
index a6fe28059..511bf4722 100644
index 090b8349559..b8a4a2df576 100644
--- a/include/wine/library.h
+++ b/include/wine/library.h
@@ -47,6 +47,7 @@ extern const char *wine_get_data_dir(void);
extern const char *wine_get_server_dir(void);
extern const char *wine_get_user_name(void);
@@ -42,6 +42,7 @@ extern "C" {
/* configuration */
extern const char *wine_get_version(void);
+extern const void *wine_get_patches(void);
extern const char *wine_get_build_id(void);
extern void wine_init_argv0_path( const char *argv0 );
extern void wine_exec_wine_binary( const char *name, char **argv, const char *env_var );
diff --git a/libs/wine/config.c b/libs/wine/config.c
index 2a3314cbf..5b66c063d 100644
index f5b4c0de9af..e52739d55ad 100644
--- a/libs/wine/config.c
+++ b/libs/wine/config.c
@@ -504,6 +504,12 @@ const char *wine_get_version(void)
@@ -515,6 +515,12 @@ const char *wine_get_version(void)
return PACKAGE_VERSION;
}
@@ -74,22 +41,22 @@ index 2a3314cbf..5b66c063d 100644
const char *wine_get_build_id(void)
{
diff --git a/libs/wine/wine.map b/libs/wine/wine.map
index 3f2c430fa..ca46979f5 100644
index 1143b129734..55f874d3e74 100644
--- a/libs/wine/wine.map
+++ b/libs/wine/wine.map
@@ -28,6 +28,7 @@ WINE_1.0
wine_get_ss;
wine_get_user_name;
@@ -13,6 +13,7 @@ WINE_1.0
wine_exec_wine_binary;
wine_get_build_id;
wine_get_version;
+ wine_get_patches;
wine_init;
wine_init_argv0_path;
wine_ldt_alloc_entries;
wine_mmap_add_reserved_area;
diff --git a/loader/main.c b/loader/main.c
index f197cf802..f6629128d 100644
index 0e6b6f66b50..24bcfff8c4c 100644
--- a/loader/main.c
+++ b/loader/main.c
@@ -54,7 +54,8 @@ static void check_command_line( int argc, char *argv[] )
@@ -55,7 +55,8 @@ static void check_command_line( int argc, char *argv[] )
static const char usage[] =
"Usage: wine PROGRAM [ARGUMENTS...] Run the specified program\n"
" wine --help Display this help and exit\n"
@@ -99,7 +66,7 @@ index f197cf802..f6629128d 100644
if (argc <= 1)
{
@@ -71,6 +72,45 @@ static void check_command_line( int argc, char *argv[] )
@@ -72,6 +73,45 @@ static void check_command_line( int argc, char *argv[] )
printf( "%s\n", wine_get_build_id() );
exit(0);
}
@@ -146,5 +113,5 @@ index f197cf802..f6629128d 100644
--
2.25.0
2.26.2

View File

@@ -1,313 +0,0 @@
From df12fdb8d4cdf11d9f72a068923a5b0097e36bdb Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Wed, 28 May 2014 19:50:51 +0200
Subject: [PATCH] loader: Add commandline option --check-libs.
---
include/wine/library.h | 2 +
libs/wine/config.c | 124 +++++++++++++++++++++++++++++++++++++++++
libs/wine/loader.c | 36 ++++++++++++
libs/wine/wine.map | 2 +
loader/main.c | 50 ++++++++++++++++-
5 files changed, 213 insertions(+), 1 deletion(-)
diff --git a/include/wine/library.h b/include/wine/library.h
index 511bf4722a0..557cec20cf8 100644
--- a/include/wine/library.h
+++ b/include/wine/library.h
@@ -44,6 +44,7 @@ extern "C" {
extern const char *wine_get_build_dir(void);
extern const char *wine_get_config_dir(void);
extern const char *wine_get_data_dir(void);
+extern const char **wine_get_libs(void);
extern const char *wine_get_server_dir(void);
extern const char *wine_get_user_name(void);
extern const char *wine_get_version(void);
@@ -56,6 +57,7 @@ extern void wine_exec_wine_binary( const char *name, char **argv, const char *en
typedef void (*load_dll_callback_t)( void *, const char * );
+extern int wine_dladdr( void *addr, void *info, char *error, size_t errorsize );
extern void *wine_dlopen( const char *filename, int flag, char *error, size_t errorsize );
extern void *wine_dlsym( void *handle, const char *symbol, char *error, size_t errorsize );
extern int wine_dlclose( void *handle, char *error, size_t errorsize );
diff --git a/libs/wine/config.c b/libs/wine/config.c
index 5b66c063db6..e0988513e14 100644
--- a/libs/wine/config.c
+++ b/libs/wine/config.c
@@ -470,6 +470,130 @@ const char *wine_get_build_dir(void)
return build_dir;
}
+const char *wine_libs[] = {
+#ifdef SONAME_LIBCAIRO
+ SONAME_LIBCAIRO,
+#endif
+#ifdef SONAME_LIBCAPI20
+ SONAME_LIBCAPI20,
+#endif
+#ifdef SONAME_LIBCUPS
+ SONAME_LIBCUPS,
+#endif
+#ifdef SONAME_LIBCURSES
+ SONAME_LIBCURSES,
+#endif
+#ifdef SONAME_LIBDBUS_1
+ SONAME_LIBDBUS_1,
+#endif
+#ifdef SONAME_LIBFONTCONFIG
+ SONAME_LIBFONTCONFIG,
+#endif
+#ifdef SONAME_LIBFREETYPE
+ SONAME_LIBFREETYPE,
+#endif
+#ifdef SONAME_LIBGL
+ SONAME_LIBGL,
+#endif
+#ifdef SONAME_LIBGNUTLS
+ SONAME_LIBGNUTLS,
+#endif
+#ifdef SONAME_LIBGOBJECT_2_0
+ SONAME_LIBGOBJECT_2_0,
+#endif
+#ifdef SONAME_LIBGSM
+ SONAME_LIBGSM,
+#endif
+#ifdef SONAME_LIBGTK_3
+ SONAME_LIBGTK_3,
+#endif
+#ifdef SONAME_LIBHAL
+ SONAME_LIBHAL,
+#endif
+#ifdef SONAME_LIBJPEG
+ SONAME_LIBJPEG,
+#endif
+#ifdef SONAME_LIBNCURSES
+ SONAME_LIBNCURSES,
+#endif
+#ifdef SONAME_LIBNETAPI
+ SONAME_LIBNETAPI,
+#endif
+#ifdef SONAME_LIBODBC
+ SONAME_LIBODBC,
+#endif
+#ifdef SONAME_LIBOSMESA
+ SONAME_LIBOSMESA,
+#endif
+#ifdef SONAME_LIBPCAP
+ SONAME_LIBPCAP,
+#endif
+#ifdef SONAME_LIBPNG
+ SONAME_LIBPNG,
+#endif
+#ifdef SONAME_LIBSANE
+ SONAME_LIBSANE,
+#endif
+#ifdef SONAME_LIBTIFF
+ SONAME_LIBTIFF,
+#endif
+#ifdef SONAME_LIBTXC_DXTN
+ SONAME_LIBTXC_DXTN,
+#endif
+#ifdef SONAME_LIBV4L1
+ SONAME_LIBV4L1,
+#endif
+#ifdef SONAME_LIBVA
+ SONAME_LIBVA,
+#endif
+#ifdef SONAME_LIBVA_DRM
+ SONAME_LIBVA_DRM,
+#endif
+#ifdef SONAME_LIBVA_X11
+ SONAME_LIBVA_X11,
+#endif
+#ifdef SONAME_LIBX11
+ SONAME_LIBX11,
+#endif
+#ifdef SONAME_LIBX11_XCB
+ SONAME_LIBX11_XCB,
+#endif
+#ifdef SONAME_LIBXCOMPOSITE
+ SONAME_LIBXCOMPOSITE,
+#endif
+#ifdef SONAME_LIBXCURSOR
+ SONAME_LIBXCURSOR,
+#endif
+#ifdef SONAME_LIBXEXT
+ SONAME_LIBXEXT,
+#endif
+#ifdef SONAME_LIBXI
+ SONAME_LIBXI,
+#endif
+#ifdef SONAME_LIBXINERAMA
+ SONAME_LIBXINERAMA,
+#endif
+#ifdef SONAME_LIBXRANDR
+ SONAME_LIBXRANDR,
+#endif
+#ifdef SONAME_LIBXRENDER
+ SONAME_LIBXRENDER,
+#endif
+#ifdef SONAME_LIBXSLT
+ SONAME_LIBXSLT,
+#endif
+#ifdef SONAME_LIBXXF86VM
+ SONAME_LIBXXF86VM,
+#endif
+ NULL
+};
+
+/* return the list of shared libs used by wine */
+const char **wine_get_libs(void)
+{
+ return &wine_libs[0];
+}
+
/* return the full name of the server directory (the one containing the socket) */
const char *wine_get_server_dir(void)
{
diff --git a/libs/wine/loader.c b/libs/wine/loader.c
index 2a569f5b739..5f10c3f9d3e 100644
--- a/libs/wine/loader.c
+++ b/libs/wine/loader.c
@@ -1072,6 +1072,42 @@ void *wine_dlopen( const char *filename, int flag, char *error, size_t errorsize
return ret;
}
+/***********************************************************************
+ * wine_dladdr
+ */
+int wine_dladdr( void *addr, void *info, char *error, size_t errorsize )
+{
+#ifdef HAVE_DLADDR
+ int ret;
+ const char *s;
+ dlerror(); dlerror();
+ ret = dladdr( addr, (Dl_info *)info );
+ s = dlerror();
+ if (error && errorsize)
+ {
+ if (s)
+ {
+ size_t len = strlen(s);
+ if (len >= errorsize) len = errorsize - 1;
+ memcpy( error, s, len );
+ error[len] = 0;
+ }
+ else error[0] = 0;
+ }
+ dlerror();
+ return ret;
+#else
+ if (error)
+ {
+ static const char msg[] = "dladdr interface not detected by configure";
+ size_t len = min( errorsize, sizeof(msg) );
+ memcpy( error, msg, len );
+ error[len - 1] = 0;
+ }
+ return 0;
+#endif
+}
+
/***********************************************************************
* wine_dlsym
*/
diff --git a/libs/wine/wine.map b/libs/wine/wine.map
index ca46979f5b9..22a4e73b05b 100644
--- a/libs/wine/wine.map
+++ b/libs/wine/wine.map
@@ -9,6 +9,7 @@ WINE_1.0
wine_anon_mmap;
wine_casemap_lower;
wine_casemap_upper;
+ wine_dladdr;
wine_dlclose;
wine_dll_enum_load_path;
wine_dll_set_callback;
@@ -24,6 +25,7 @@ WINE_1.0
wine_get_es;
wine_get_fs;
wine_get_gs;
+ wine_get_libs;
wine_get_server_dir;
wine_get_ss;
wine_get_user_name;
diff --git a/loader/main.c b/loader/main.c
index d97d6b28bf8..49dc996e354 100644
--- a/loader/main.c
+++ b/loader/main.c
@@ -36,6 +36,12 @@
#ifdef HAVE_UNISTD_H
# include <unistd.h>
#endif
+#ifdef HAVE_DLADDR
+# include <dlfcn.h>
+#endif
+#ifdef HAVE_LINK_H
+# include <link.h>
+#endif
#include "wine/library.h"
#include "main.h"
@@ -54,7 +60,8 @@ static void check_command_line( int argc, char *argv[] )
"Usage: wine PROGRAM [ARGUMENTS...] Run the specified program\n"
" wine --help Display this help and exit\n"
" wine --version Output version information and exit\n"
- " wine --patches Output patch information and exit";
+ " wine --patches Output patch information and exit\n"
+ " wine --check-libs Checks if shared libs are installed";
if (argc <= 1)
{
@@ -110,6 +117,47 @@ static void check_command_line( int argc, char *argv[] )
exit(0);
}
+ if (!strcmp( argv[1], "--check-libs" ))
+ {
+ void* lib_handle;
+ int ret = 0;
+ const char **wine_libs = wine_get_libs();
+
+ for(; *wine_libs; wine_libs++)
+ {
+ lib_handle = wine_dlopen( *wine_libs, RTLD_NOW, NULL, 0 );
+ if (lib_handle)
+ {
+ #ifdef HAVE_DLADDR
+ Dl_info libinfo;
+ void* symbol;
+
+ #ifdef HAVE_LINK_H
+ struct link_map *lm = (struct link_map *)lib_handle;
+ symbol = (void *)lm->l_addr;
+ #else
+ symbol = wine_dlsym( lib_handle, "_init", NULL, 0 );
+ #endif
+ if (symbol && wine_dladdr( symbol, &libinfo, NULL, 0 ))
+ {
+ printf( "%s: %s\n", *wine_libs, libinfo.dli_fname );
+ }
+ else
+ #endif
+ {
+ printf( "%s: found\n", *wine_libs );
+ }
+ wine_dlclose( lib_handle, NULL, 0 );
+ }
+ else
+ {
+ printf( "%s: missing\n", *wine_libs );
+ ret = 1;
+ }
+ }
+
+ exit(ret);
+ }
}
--
2.25.1

View File

@@ -1,60 +0,0 @@
From 07ca5e888c3265c57c88ef1758e6c47fbea4fb07 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Sat, 27 Jun 2015 19:28:51 +0200
Subject: loader: Print library paths for --check-libs on Mac OS X.
---
loader/main.c | 30 +++++++++++++++++++++++++++++-
1 file changed, 29 insertions(+), 1 deletion(-)
diff --git a/loader/main.c b/loader/main.c
index a2dc40c51c..1642fb0965 100644
--- a/loader/main.c
+++ b/loader/main.c
@@ -50,6 +50,30 @@
/* the preloader will set this variable */
const struct wine_preload_info *wine_main_preload_info = NULL;
+#ifdef __APPLE__
+#include <mach-o/dyld.h>
+
+static const char *get_macho_library_path( const char *libname )
+{
+ unsigned int path_len, libname_len = strlen( libname );
+ uint32_t i, count = _dyld_image_count();
+
+ for (i = 0; i < count; i++)
+ {
+ const char *path = _dyld_get_image_name( i );
+ if (!path) continue;
+
+ path_len = strlen( path );
+ if (path_len < libname_len + 1) continue;
+ if (path[path_len - libname_len - 1] != '/') continue;
+ if (strcmp( path + path_len - libname_len, libname )) continue;
+
+ return path;
+ }
+ return NULL;
+}
+#endif
+
/***********************************************************************
* check_command_line
*
@@ -146,7 +170,11 @@ static void check_command_line( int argc, char *argv[] )
else
#endif
{
- printf( "%s: found\n", *wine_libs );
+ const char *path = NULL;
+ #ifdef __APPLE__
+ path = get_macho_library_path( *wine_libs );
+ #endif
+ printf( "%s: %s\n", *wine_libs, path ? path : "found");
}
wine_dlclose( lib_handle, NULL, 0 );
}
--
2.14.1

View File

@@ -1,4 +1,4 @@
From 8959c13f2be7e2a31f27c8483ee2202692f00710 Mon Sep 17 00:00:00 2001
From 2588eb4eb5fe56aca7d229ea42b0eaa3786ff600 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Sat, 5 Aug 2017 01:45:29 +0200
Subject: [PATCH] ntdll: Add function to create new tokens for elevation
@@ -14,10 +14,10 @@ Subject: [PATCH] ntdll: Add function to create new tokens for elevation
6 files changed, 117 insertions(+)
diff --git a/dlls/ntdll/ntdll.spec b/dlls/ntdll/ntdll.spec
index d626e0bf2..5057e2b07 100644
index e5db07f0a4e..d52f6b76aa4 100644
--- a/dlls/ntdll/ntdll.spec
+++ b/dlls/ntdll/ntdll.spec
@@ -1556,6 +1556,9 @@
@@ -1594,6 +1594,9 @@
# Virtual memory
@ cdecl __wine_locked_recvmsg(long ptr long)
@@ -25,27 +25,27 @@ index d626e0bf2..5057e2b07 100644
+@ cdecl __wine_create_default_token(long)
+
# Version
@ cdecl wine_get_version() NTDLL_wine_get_version
@ cdecl wine_get_patches() NTDLL_wine_get_patches
@ cdecl wine_get_version()
@ cdecl wine_get_build_id()
diff --git a/dlls/ntdll/ntdll_misc.h b/dlls/ntdll/ntdll_misc.h
index ac1469412..6c2345c6c 100644
index 92fcde95a8a..80be882e76d 100644
--- a/dlls/ntdll/ntdll_misc.h
+++ b/dlls/ntdll/ntdll_misc.h
@@ -89,6 +89,9 @@ extern void init_user_process_params( SIZE_T data_size ) DECLSPEC_HIDDEN;
extern char **build_envp( const WCHAR *envW ) DECLSPEC_HIDDEN;
@@ -69,6 +69,9 @@ extern void init_locale( HMODULE module ) DECLSPEC_HIDDEN;
extern void init_user_process_params(void) DECLSPEC_HIDDEN;
extern NTSTATUS restart_process( RTL_USER_PROCESS_PARAMETERS *params, NTSTATUS status ) DECLSPEC_HIDDEN;
+/* token */
+extern HANDLE CDECL __wine_create_default_token(BOOL admin);
+
/* server support */
extern timeout_t server_start_time DECLSPEC_HIDDEN;
extern unsigned int server_cpus DECLSPEC_HIDDEN;
extern BOOL is_wow64 DECLSPEC_HIDDEN;
extern NTSTATUS alloc_object_attributes( const OBJECT_ATTRIBUTES *attr, struct object_attributes **ret,
diff --git a/dlls/ntdll/process.c b/dlls/ntdll/process.c
index 52d7ea429..e24691b8a 100644
index 992721d133f..24cb8f53de2 100644
--- a/dlls/ntdll/process.c
+++ b/dlls/ntdll/process.c
@@ -125,6 +125,24 @@ HANDLE CDECL __wine_make_process_system(void)
@@ -82,6 +82,24 @@ HANDLE CDECL __wine_make_process_system(void)
return ret;
}
@@ -67,14 +67,14 @@ index 52d7ea429..e24691b8a 100644
+ return ret;
+}
+
static UINT process_error_mode;
#define UNIMPLEMENTED_INFO_CLASS(c) \
/******************************************************************************
* NtQueryInformationProcess [NTDLL.@]
* ZwQueryInformationProcess [NTDLL.@]
diff --git a/server/protocol.def b/server/protocol.def
index e908f2131..0177cb579 100644
index 96bc9250ab0..14b811684d8 100644
--- a/server/protocol.def
+++ b/server/protocol.def
@@ -3734,6 +3734,14 @@ struct handle_info
@@ -3759,6 +3759,14 @@ struct handle_info
@END
@@ -90,7 +90,7 @@ index e908f2131..0177cb579 100644
@REQ(create_completion)
unsigned int access; /* desired access to a port */
diff --git a/server/security.h b/server/security.h
index 6c337143c..21e90ccf2 100644
index 6c337143c3d..21e90ccf23f 100644
--- a/server/security.h
+++ b/server/security.h
@@ -49,6 +49,7 @@ extern const PSID security_builtin_users_sid;
@@ -102,10 +102,10 @@ index 6c337143c..21e90ccf2 100644
/* token functions */
diff --git a/server/token.c b/server/token.c
index 381ae6871..fcab79955 100644
index c4f1cd943c2..970ed1838da 100644
--- a/server/token.c
+++ b/server/token.c
@@ -79,6 +79,7 @@ static const SID anonymous_logon_sid = { SID_REVISION, 1, { SECURITY_NT_AUTHORIT
@@ -77,6 +77,7 @@ static const SID anonymous_logon_sid = { SID_REVISION, 1, { SECURITY_NT_AUTHORIT
static const SID authenticated_user_sid = { SID_REVISION, 1, { SECURITY_NT_AUTHORITY }, { SECURITY_AUTHENTICATED_USER_RID } };
static const SID local_system_sid = { SID_REVISION, 1, { SECURITY_NT_AUTHORITY }, { SECURITY_LOCAL_SYSTEM_RID } };
static const SID high_label_sid = { SID_REVISION, 1, { SECURITY_MANDATORY_LABEL_AUTHORITY }, { SECURITY_MANDATORY_HIGH_RID } };
@@ -113,7 +113,7 @@ index 381ae6871..fcab79955 100644
static const SID_N(5) local_user_sid = { SID_REVISION, 5, { SECURITY_NT_AUTHORITY }, { SECURITY_NT_NON_UNIQUE, 0, 0, 0, 1000 } };
static const SID_N(2) builtin_admins_sid = { SID_REVISION, 2, { SECURITY_NT_AUTHORITY }, { SECURITY_BUILTIN_DOMAIN_RID, DOMAIN_ALIAS_RID_ADMINS } };
static const SID_N(2) builtin_users_sid = { SID_REVISION, 2, { SECURITY_NT_AUTHORITY }, { SECURITY_BUILTIN_DOMAIN_RID, DOMAIN_ALIAS_RID_USERS } };
@@ -95,6 +96,7 @@ const PSID security_builtin_admins_sid = (PSID)&builtin_admins_sid;
@@ -93,6 +94,7 @@ const PSID security_builtin_admins_sid = (PSID)&builtin_admins_sid;
const PSID security_builtin_users_sid = (PSID)&builtin_users_sid;
const PSID security_domain_users_sid = (PSID)&domain_users_sid;
const PSID security_high_label_sid = (PSID)&high_label_sid;
@@ -121,7 +121,7 @@ index 381ae6871..fcab79955 100644
static luid_t prev_luid_value = { 1000, 0 };
@@ -917,6 +919,64 @@ struct token *token_create_admin( void )
@@ -915,6 +917,64 @@ struct token *token_create_admin( void )
return token;
}
@@ -186,7 +186,7 @@ index 381ae6871..fcab79955 100644
static struct privilege *token_find_privilege( struct token *token, const LUID *luid, int enabled_only )
{
struct privilege *privilege;
@@ -1722,3 +1782,27 @@ DECL_HANDLER(set_token_default_dacl)
@@ -1720,3 +1780,27 @@ DECL_HANDLER(set_token_default_dacl)
release_object( token );
}
}
@@ -215,5 +215,5 @@ index 381ae6871..fcab79955 100644
+ }
+}
--
2.23.0
2.27.0

View File

@@ -1,4 +1,4 @@
From 6a09d34647aa517e45bc0bb20a92d0d94a1da888 Mon Sep 17 00:00:00 2001
From 1f2b1bafabfd457836f18741f178b3745e129c36 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Sat, 5 Aug 2017 03:39:55 +0200
Subject: [PATCH] ntdll: Implement process token elevation through manifests.
@@ -12,10 +12,10 @@ Subject: [PATCH] ntdll: Implement process token elevation through manifests.
5 files changed, 67 insertions(+)
diff --git a/dlls/ntdll/loader.c b/dlls/ntdll/loader.c
index 2f203447e..7c5dd308b 100644
index 0c8f05285c4..92ae87c6e6d 100644
--- a/dlls/ntdll/loader.c
+++ b/dlls/ntdll/loader.c
@@ -3804,6 +3804,32 @@ void WINAPI LdrInitializeThunk( CONTEXT *context, void **entry, ULONG_PTR unknow
@@ -3898,6 +3898,32 @@ void WINAPI LdrInitializeThunk( CONTEXT *context, void **entry, ULONG_PTR unknow
}
@@ -48,17 +48,17 @@ index 2f203447e..7c5dd308b 100644
/***********************************************************************
* load_global_options
*/
@@ -4233,6 +4259,7 @@ void __wine_process_init(void)
's','y','s','t','e','m','3','2','\\',
@@ -4359,6 +4385,7 @@ void __wine_process_init(void)
'k','e','r','n','e','l','3','2','.','d','l','l',0};
void (WINAPI *kernel32_start_process)(LPTHREAD_START_ROUTINE,void*) = NULL;
RTL_USER_PROCESS_PARAMETERS *params;
+ ACTIVATION_CONTEXT_RUN_LEVEL_INFORMATION runlevel;
WINE_MODREF *wm;
NTSTATUS status;
ANSI_STRING func_name;
@@ -4324,6 +4351,16 @@ void __wine_process_init(void)
@@ -4453,6 +4480,16 @@ void __wine_process_init(void)
virtual_set_large_address_space();
unix_funcs->virtual_set_large_address_space();
+ /* elevate process if necessary */
+ status = RtlQueryInformationActivationContext( 0, NULL, 0, RunlevelInformationInActivationContext,
@@ -71,13 +71,13 @@ index 2f203447e..7c5dd308b 100644
+ }
+
/* the main exe needs to be the first in the load order list */
RemoveEntryList( &wm->ldr.InLoadOrderModuleList );
InsertHeadList( &peb->LdrData->InLoadOrderModuleList, &wm->ldr.InLoadOrderModuleList );
RemoveEntryList( &wm->ldr.InLoadOrderLinks );
InsertHeadList( &peb->LdrData->InLoadOrderModuleList, &wm->ldr.InLoadOrderLinks );
diff --git a/server/process.c b/server/process.c
index 4c7da9223..d6f71a774 100644
index ac85cace95d..52604ec4d61 100644
--- a/server/process.c
+++ b/server/process.c
@@ -1107,6 +1107,14 @@ struct process_snapshot *process_snap( int *count )
@@ -1115,6 +1115,14 @@ struct process_snapshot *process_snap( int *count )
return snapshot;
}
@@ -93,7 +93,7 @@ index 4c7da9223..d6f71a774 100644
DECL_HANDLER(new_process)
{
diff --git a/server/process.h b/server/process.h
index 5b83e111a..dfe5c4e52 100644
index 5b83e111a6f..dfe5c4e52d8 100644
--- a/server/process.h
+++ b/server/process.h
@@ -139,6 +139,7 @@ extern void kill_debugged_processes( struct thread *debugger, int exit_code );
@@ -105,10 +105,10 @@ index 5b83e111a..dfe5c4e52 100644
/* console functions */
extern void inherit_console( struct thread *parent_thread, struct process *parent,
diff --git a/server/protocol.def b/server/protocol.def
index 6022e1715..45ab670ea 100644
index 7315f8ac4ea..901c380b721 100644
--- a/server/protocol.def
+++ b/server/protocol.def
@@ -3755,6 +3755,13 @@ struct handle_info
@@ -3763,6 +3763,13 @@ struct handle_info
@END
@@ -123,10 +123,10 @@ index 6022e1715..45ab670ea 100644
@REQ(create_completion)
unsigned int access; /* desired access to a port */
diff --git a/server/token.c b/server/token.c
index fcab79955..181219d21 100644
index 970ed1838da..1c1d49989b3 100644
--- a/server/token.c
+++ b/server/token.c
@@ -1806,3 +1806,17 @@ DECL_HANDLER(create_token)
@@ -1804,3 +1804,17 @@ DECL_HANDLER(create_token)
release_object( token );
}
}
@@ -145,5 +145,5 @@ index fcab79955..181219d21 100644
+ }
+}
--
2.24.0
2.26.2

View File

@@ -1,4 +1,4 @@
From 51830c6683b199e79cb9e782ee51555054a4da7c Mon Sep 17 00:00:00 2001
From 9c61f6acfa2c43e43f07fae1a5cd447573b9529b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Sun, 6 Aug 2017 02:08:05 +0200
Subject: [PATCH] server: Implement support for creating processes using a
@@ -6,20 +6,20 @@ Subject: [PATCH] server: Implement support for creating processes using a
---
dlls/kernelbase/process.c | 24 +++++++++++++-----------
dlls/ntdll/process.c | 3 ++-
dlls/ntdll/unix/process.c | 1 +
server/process.c | 39 +++++++++++++++++++++++++++++++++++----
server/process.h | 2 +-
server/protocol.def | 1 +
server/request.c | 2 +-
server/security.h | 2 ++
server/token.c | 11 +++++++++++
8 files changed, 66 insertions(+), 18 deletions(-)
8 files changed, 65 insertions(+), 17 deletions(-)
diff --git a/dlls/kernelbase/process.c b/dlls/kernelbase/process.c
index a07dddb1f..99985ab89 100644
index a3b168543fc..b5c8b47239d 100644
--- a/dlls/kernelbase/process.c
+++ b/dlls/kernelbase/process.c
@@ -242,7 +242,7 @@ static RTL_USER_PROCESS_PARAMETERS *create_process_params( const WCHAR *filename
@@ -244,7 +244,7 @@ static RTL_USER_PROCESS_PARAMETERS *create_process_params( const WCHAR *filename
/***********************************************************************
* create_nt_process
*/
@@ -28,7 +28,7 @@ index a07dddb1f..99985ab89 100644
BOOL inherit, DWORD flags, RTL_USER_PROCESS_PARAMETERS *params,
RTL_USER_PROCESS_INFORMATION *info, HANDLE parent )
{
@@ -257,7 +257,7 @@ static NTSTATUS create_nt_process( SECURITY_ATTRIBUTES *psa, SECURITY_ATTRIBUTES
@@ -259,7 +259,7 @@ static NTSTATUS create_nt_process( SECURITY_ATTRIBUTES *psa, SECURITY_ATTRIBUTES
status = RtlCreateUserProcess( &nameW, OBJ_CASE_INSENSITIVE, params,
psa ? psa->lpSecurityDescriptor : NULL,
tsa ? tsa->lpSecurityDescriptor : NULL,
@@ -37,7 +37,7 @@ index a07dddb1f..99985ab89 100644
RtlFreeUnicodeString( &nameW );
}
return status;
@@ -267,7 +267,7 @@ static NTSTATUS create_nt_process( SECURITY_ATTRIBUTES *psa, SECURITY_ATTRIBUTES
@@ -269,7 +269,7 @@ static NTSTATUS create_nt_process( SECURITY_ATTRIBUTES *psa, SECURITY_ATTRIBUTES
/***********************************************************************
* create_vdm_process
*/
@@ -46,7 +46,7 @@ index a07dddb1f..99985ab89 100644
BOOL inherit, DWORD flags, RTL_USER_PROCESS_PARAMETERS *params,
RTL_USER_PROCESS_INFORMATION *info )
{
@@ -288,7 +288,7 @@ static NTSTATUS create_vdm_process( SECURITY_ATTRIBUTES *psa, SECURITY_ATTRIBUTE
@@ -290,7 +290,7 @@ static NTSTATUS create_vdm_process( SECURITY_ATTRIBUTES *psa, SECURITY_ATTRIBUTE
winevdm, params->ImagePathName.Buffer, params->CommandLine.Buffer );
RtlInitUnicodeString( &params->ImagePathName, winevdm );
RtlInitUnicodeString( &params->CommandLine, newcmdline );
@@ -55,7 +55,7 @@ index a07dddb1f..99985ab89 100644
HeapFree( GetProcessHeap(), 0, newcmdline );
return status;
}
@@ -297,7 +297,7 @@ static NTSTATUS create_vdm_process( SECURITY_ATTRIBUTES *psa, SECURITY_ATTRIBUTE
@@ -299,7 +299,7 @@ static NTSTATUS create_vdm_process( SECURITY_ATTRIBUTES *psa, SECURITY_ATTRIBUTE
/***********************************************************************
* create_cmd_process
*/
@@ -64,7 +64,7 @@ index a07dddb1f..99985ab89 100644
BOOL inherit, DWORD flags, RTL_USER_PROCESS_PARAMETERS *params,
RTL_USER_PROCESS_INFORMATION *info )
{
@@ -316,7 +316,7 @@ static NTSTATUS create_cmd_process( SECURITY_ATTRIBUTES *psa, SECURITY_ATTRIBUTE
@@ -318,7 +318,7 @@ static NTSTATUS create_cmd_process( SECURITY_ATTRIBUTES *psa, SECURITY_ATTRIBUTE
swprintf( newcmdline, len, L"%s /s/c \"%s\"", comspec, params->CommandLine.Buffer );
RtlInitUnicodeString( &params->ImagePathName, comspec );
RtlInitUnicodeString( &params->CommandLine, newcmdline );
@@ -73,7 +73,7 @@ index a07dddb1f..99985ab89 100644
RtlFreeHeap( GetProcessHeap(), 0, newcmdline );
return status;
}
@@ -448,7 +448,9 @@ BOOL WINAPI DECLSPEC_HOTPATCH CreateProcessInternalW( HANDLE token, const WCHAR
@@ -450,7 +450,9 @@ BOOL WINAPI DECLSPEC_HOTPATCH CreateProcessInternalW( HANDLE token, const WCHAR
TRACE( "app %s cmdline %s\n", debugstr_w(app_name), debugstr_w(cmd_line) );
@@ -84,7 +84,7 @@ index a07dddb1f..99985ab89 100644
if (new_token) FIXME( "No support for returning created process token\n" );
if (app_name)
@@ -521,7 +523,7 @@ BOOL WINAPI DECLSPEC_HOTPATCH CreateProcessInternalW( HANDLE token, const WCHAR
@@ -523,7 +525,7 @@ BOOL WINAPI DECLSPEC_HOTPATCH CreateProcessInternalW( HANDLE token, const WCHAR
}
}
@@ -93,7 +93,7 @@ index a07dddb1f..99985ab89 100644
switch (status)
{
case STATUS_SUCCESS:
@@ -530,7 +532,7 @@ BOOL WINAPI DECLSPEC_HOTPATCH CreateProcessInternalW( HANDLE token, const WCHAR
@@ -532,7 +534,7 @@ BOOL WINAPI DECLSPEC_HOTPATCH CreateProcessInternalW( HANDLE token, const WCHAR
case STATUS_INVALID_IMAGE_NE_FORMAT:
case STATUS_INVALID_IMAGE_PROTECT:
TRACE( "starting %s as Win16/DOS binary\n", debugstr_w(app_name) );
@@ -102,7 +102,7 @@ index a07dddb1f..99985ab89 100644
break;
case STATUS_INVALID_IMAGE_NOT_MZ:
/* check for .com or .bat extension */
@@ -538,12 +540,12 @@ BOOL WINAPI DECLSPEC_HOTPATCH CreateProcessInternalW( HANDLE token, const WCHAR
@@ -540,12 +542,12 @@ BOOL WINAPI DECLSPEC_HOTPATCH CreateProcessInternalW( HANDLE token, const WCHAR
if (!wcsicmp( p, L".com" ) || !wcsicmp( p, L".pif" ))
{
TRACE( "starting %s as DOS binary\n", debugstr_w(app_name) );
@@ -117,21 +117,12 @@ index a07dddb1f..99985ab89 100644
}
break;
}
diff --git a/dlls/ntdll/process.c b/dlls/ntdll/process.c
index f3d9079f8..2fa553091 100644
--- a/dlls/ntdll/process.c
+++ b/dlls/ntdll/process.c
@@ -1667,7 +1667,7 @@ NTSTATUS WINAPI RtlCreateUserProcess( UNICODE_STRING *path, ULONG attributes,
RTL_USER_PROCESS_PARAMETERS *params,
SECURITY_DESCRIPTOR *process_descr,
SECURITY_DESCRIPTOR *thread_descr,
- HANDLE parent, BOOLEAN inherit, HANDLE debug, HANDLE exception,
+ HANDLE parent, BOOLEAN inherit, HANDLE debug, HANDLE token,
RTL_USER_PROCESS_INFORMATION *info )
{
NTSTATUS status;
@@ -1735,6 +1735,7 @@ NTSTATUS WINAPI RtlCreateUserProcess( UNICODE_STRING *path, ULONG attributes,
req->access = PROCESS_ALL_ACCESS;
diff --git a/dlls/ntdll/unix/process.c b/dlls/ntdll/unix/process.c
index cca6c2747bf..379a0036b63 100644
--- a/dlls/ntdll/unix/process.c
+++ b/dlls/ntdll/unix/process.c
@@ -827,6 +827,7 @@ NTSTATUS WINAPI NtCreateUserProcess( HANDLE *process_handle_ptr, HANDLE *thread_
req->access = process_access;
req->cpu = pe_info.cpu;
req->info_size = startup_info_size;
+ req->token = wine_server_obj_handle( token );
@@ -139,10 +130,10 @@ index f3d9079f8..2fa553091 100644
wine_server_add_data( req, startup_info, startup_info_size );
wine_server_add_data( req, params->Environment, env_size );
diff --git a/server/process.c b/server/process.c
index d6f71a774..aa66814d8 100644
index 52604ec4d61..047916ffd09 100644
--- a/server/process.c
+++ b/server/process.c
@@ -491,7 +491,7 @@ static void start_sigkill_timer( struct process *process )
@@ -499,7 +499,7 @@ static void start_sigkill_timer( struct process *process )
/* create a new process */
/* if the function fails the fd is closed */
struct process *create_process( int fd, struct process *parent, int inherit_all,
@@ -151,7 +142,7 @@ index d6f71a774..aa66814d8 100644
{
struct process *process;
@@ -568,7 +568,7 @@ struct process *create_process( int fd, struct process *parent, int inherit_all,
@@ -576,7 +576,7 @@ struct process *create_process( int fd, struct process *parent, int inherit_all,
: alloc_handle_table( process, 0 );
/* Note: for security reasons, starting a new process does not attempt
* to use the current impersonation token for the new process */
@@ -160,7 +151,7 @@ index d6f71a774..aa66814d8 100644
process->affinity = parent->affinity;
}
if (!process->handles || !process->token) goto error;
@@ -1124,6 +1124,7 @@ DECL_HANDLER(new_process)
@@ -1132,6 +1132,7 @@ DECL_HANDLER(new_process)
const struct security_descriptor *sd;
const struct object_attributes *objattr = get_req_object_attributes( &sd, &name, NULL );
struct process *process = NULL;
@@ -168,7 +159,7 @@ index d6f71a774..aa66814d8 100644
struct process *parent;
struct thread *parent_thread = current;
int socket_fd = thread_get_inflight_fd( current, req->socket_fd );
@@ -1177,10 +1178,39 @@ DECL_HANDLER(new_process)
@@ -1185,10 +1186,39 @@ DECL_HANDLER(new_process)
return;
}
@@ -208,7 +199,7 @@ index d6f71a774..aa66814d8 100644
release_object( parent );
return;
}
@@ -1228,7 +1258,7 @@ DECL_HANDLER(new_process)
@@ -1236,7 +1266,7 @@ DECL_HANDLER(new_process)
#undef FIXUP_LEN
}
@@ -217,7 +208,7 @@ index d6f71a774..aa66814d8 100644
process->startup_info = (struct startup_info *)grab_object( info );
@@ -1289,6 +1319,7 @@ DECL_HANDLER(new_process)
@@ -1297,6 +1327,7 @@ DECL_HANDLER(new_process)
reply->handle = alloc_handle_no_access_check( current->process, process, req->access, objattr->attributes );
done:
@@ -225,7 +216,7 @@ index d6f71a774..aa66814d8 100644
if (process) release_object( process );
release_object( parent );
release_object( info );
@@ -1322,7 +1353,7 @@ DECL_HANDLER(exec_process)
@@ -1330,7 +1361,7 @@ DECL_HANDLER(exec_process)
close( socket_fd );
return;
}
@@ -235,7 +226,7 @@ index d6f71a774..aa66814d8 100644
release_object( process );
}
diff --git a/server/process.h b/server/process.h
index dfe5c4e52..61b83abf6 100644
index dfe5c4e52d8..61b83abf693 100644
--- a/server/process.h
+++ b/server/process.h
@@ -118,7 +118,7 @@ extern unsigned int alloc_ptid( void *ptr );
@@ -248,10 +239,10 @@ index dfe5c4e52..61b83abf6 100644
extern struct thread *get_process_first_thread( struct process *process );
extern struct process *get_process_from_id( process_id_t id );
diff --git a/server/protocol.def b/server/protocol.def
index 45ab670ea..c763da4ca 100644
index 901c380b721..8c86967609f 100644
--- a/server/protocol.def
+++ b/server/protocol.def
@@ -791,6 +791,7 @@ struct rawinput_device
@@ -801,6 +801,7 @@ struct rawinput_device
unsigned int access; /* access rights for process object */
client_cpu_t cpu; /* CPU that the new process will use */
data_size_t info_size; /* size of startup info */
@@ -260,7 +251,7 @@ index 45ab670ea..c763da4ca 100644
VARARG(info,startup_info,info_size); /* startup information */
VARARG(env,unicode_str); /* environment for new process */
diff --git a/server/request.c b/server/request.c
index 200c2697d..f743b720a 100644
index 4c1f30a5fe7..321bb6cfa81 100644
--- a/server/request.c
+++ b/server/request.c
@@ -582,7 +582,7 @@ static void master_socket_poll_event( struct fd *fd, int event )
@@ -273,7 +264,7 @@ index 200c2697d..f743b720a 100644
create_thread( -1, process, NULL );
release_object( process );
diff --git a/server/security.h b/server/security.h
index 21e90ccf2..32dfe5f8d 100644
index 21e90ccf23f..32dfe5f8db9 100644
--- a/server/security.h
+++ b/server/security.h
@@ -67,6 +67,8 @@ extern const ACL *token_get_default_dacl( struct token *token );
@@ -286,10 +277,10 @@ index 21e90ccf2..32dfe5f8d 100644
static inline const ACE_HEADER *ace_next( const ACE_HEADER *ace )
{
diff --git a/server/token.c b/server/token.c
index 181219d21..858ec25d7 100644
index 1c1d49989b3..2f466aa1b25 100644
--- a/server/token.c
+++ b/server/token.c
@@ -845,6 +845,12 @@ int token_assign_label( struct token *token, PSID label )
@@ -843,6 +843,12 @@ int token_assign_label( struct token *token, PSID label )
return ret;
}
@@ -302,7 +293,7 @@ index 181219d21..858ec25d7 100644
struct token *token_create_admin( void )
{
struct token *token = NULL;
@@ -1271,6 +1277,11 @@ const SID *token_get_primary_group( struct token *token )
@@ -1269,6 +1275,11 @@ const SID *token_get_primary_group( struct token *token )
return token->primary_group;
}
@@ -315,5 +306,5 @@ index 181219d21..858ec25d7 100644
{
GENERIC_MAPPING mapping;
--
2.24.0
2.27.0

View File

@@ -1,4 +1,4 @@
From 830d2641a7e23474b3ef4ee52e42e6b4f2cd388b Mon Sep 17 00:00:00 2001
From a5c9b96c7b517d212260cb8567162425554ff613 Mon Sep 17 00:00:00 2001
From: Derek Lesho <dlesho@codeweavers.com>
Date: Tue, 7 Jan 2020 14:22:49 -0600
Subject: [PATCH] bcrypt: Implement BCryptSecretAgreement with libgcrypt.
@@ -17,10 +17,10 @@ Signed-off-by: Derek Lesho <dlesho@codeweavers.com>
create mode 100644 dlls/bcrypt/gcrypt.c
diff --git a/configure.ac b/configure.ac
index 47d2b750c01..2dfa2ebcb51 100644
index e3d63ed7501..beb86c23b45 100644
--- a/configure.ac
+++ b/configure.ac
@@ -46,6 +46,7 @@ AC_ARG_WITH(faudio, AS_HELP_STRING([--without-faudio],[do not use FAudio (XAu
@@ -47,6 +47,7 @@ AC_ARG_WITH(faudio, AS_HELP_STRING([--without-faudio],[do not use FAudio (XAu
AC_ARG_WITH(float-abi, AS_HELP_STRING([--with-float-abi=abi],[specify the ABI (soft|softfp|hard) for ARM platforms]))
AC_ARG_WITH(fontconfig,AS_HELP_STRING([--without-fontconfig],[do not use fontconfig]))
AC_ARG_WITH(freetype, AS_HELP_STRING([--without-freetype],[do not use the FreeType library]))
@@ -28,7 +28,7 @@ index 47d2b750c01..2dfa2ebcb51 100644
AC_ARG_WITH(gettext, AS_HELP_STRING([--without-gettext],[do not use gettext]))
AC_ARG_WITH(gettextpo, AS_HELP_STRING([--with-gettextpo],[use the GetTextPO library to rebuild po files]),
[if test "x$withval" = "xno"; then ac_cv_header_gettext_po_h=no; fi])
@@ -1989,6 +1990,19 @@ WINE_NOTICE_WITH(vkd3d,[test "x$ac_cv_lib_soname_vkd3d" = "x"],
@@ -2033,6 +2034,19 @@ WINE_NOTICE_WITH(vkd3d,[test "x$ac_cv_lib_soname_vkd3d" = "x"],
[vkd3d ${notice_platform}development files not found (or too old), Direct3D 12 won't be supported.])
test "x$ac_cv_lib_soname_vkd3d" != "x" || enable_d3d12=${enable_d3d12:-no}
@@ -61,7 +61,7 @@ index dd6d4a76640..ea3486a4002 100644
macos.c \
md2.c \
diff --git a/dlls/bcrypt/bcrypt_internal.h b/dlls/bcrypt/bcrypt_internal.h
index 5cc2c249da8..b16dfbdcd2b 100644
index 18343a6c749..27cd4950274 100644
--- a/dlls/bcrypt/bcrypt_internal.h
+++ b/dlls/bcrypt/bcrypt_internal.h
@@ -25,6 +25,9 @@
@@ -74,7 +74,7 @@ index 5cc2c249da8..b16dfbdcd2b 100644
#elif HAVE_COMMONCRYPTO_COMMONCRYPTOR_H
#include <AvailabilityMacros.h>
#include <CommonCrypto/CommonCryptor.h>
@@ -157,6 +160,12 @@ struct algorithm
@@ -161,6 +164,12 @@ struct algorithm
ULONG flags;
};
@@ -87,15 +87,15 @@ index 5cc2c249da8..b16dfbdcd2b 100644
#if defined(HAVE_GNUTLS_CIPHER_INIT)
struct key_symmetric
{
@@ -251,6 +260,7 @@ NTSTATUS key_destroy( struct key * ) DECLSPEC_HIDDEN;
BOOL key_is_symmetric( struct key * ) DECLSPEC_HIDDEN;
@@ -258,6 +267,7 @@ NTSTATUS key_export_dsa_capi( struct key *, UCHAR *, ULONG, ULONG * ) DECLSPEC_H
NTSTATUS key_export_ecc( struct key *, UCHAR *, ULONG, ULONG * ) DECLSPEC_HIDDEN;
NTSTATUS key_import_dsa_capi( struct key *, UCHAR *, ULONG ) DECLSPEC_HIDDEN;
NTSTATUS key_import_ecc( struct key *, UCHAR *, ULONG ) DECLSPEC_HIDDEN;
+NTSTATUS compute_secret_ecc (struct key *pubkey_in, struct key *privkey_in, struct secret *secret) DECLSPEC_HIDDEN;
BOOL is_zero_vector( const UCHAR *, ULONG ) DECLSPEC_HIDDEN;
BOOL is_equal_vector( const UCHAR *, ULONG, const UCHAR *, ULONG ) DECLSPEC_HIDDEN;
@@ -258,4 +268,7 @@ BOOL is_equal_vector( const UCHAR *, ULONG, const UCHAR *, ULONG ) DECLSPEC_HIDD
@@ -265,4 +275,7 @@ BOOL is_equal_vector( const UCHAR *, ULONG, const UCHAR *, ULONG ) DECLSPEC_HIDD
BOOL gnutls_initialize(void) DECLSPEC_HIDDEN;
void gnutls_uninitialize(void) DECLSPEC_HIDDEN;
@@ -104,10 +104,10 @@ index 5cc2c249da8..b16dfbdcd2b 100644
+
#endif /* __BCRYPT_INTERNAL_H */
diff --git a/dlls/bcrypt/bcrypt_main.c b/dlls/bcrypt/bcrypt_main.c
index c2939ea815a..15b934247d8 100644
index fee40ebe8d7..f254571bbc2 100644
--- a/dlls/bcrypt/bcrypt_main.c
+++ b/dlls/bcrypt/bcrypt_main.c
@@ -1349,6 +1349,12 @@ NTSTATUS key_import_ecc( struct key *key, UCHAR *input, ULONG len )
@@ -1421,6 +1421,12 @@ NTSTATUS key_import_ecc( struct key *key, UCHAR *input, ULONG len )
ERR( "support for keys not available at build time\n" );
return STATUS_NOT_IMPLEMENTED;
}
@@ -120,7 +120,7 @@ index c2939ea815a..15b934247d8 100644
#endif
NTSTATUS WINAPI BCryptGenerateSymmetricKey( BCRYPT_ALG_HANDLE algorithm, BCRYPT_KEY_HANDLE *handle,
@@ -1714,27 +1720,81 @@ NTSTATUS WINAPI BCryptDeriveKeyPBKDF2( BCRYPT_ALG_HANDLE handle, UCHAR *pwd, ULO
@@ -1833,27 +1839,81 @@ NTSTATUS WINAPI BCryptDeriveKeyPBKDF2( BCRYPT_ALG_HANDLE handle, UCHAR *pwd, ULO
return STATUS_SUCCESS;
}
@@ -212,7 +212,7 @@ index c2939ea815a..15b934247d8 100644
}
BOOL WINAPI DllMain( HINSTANCE hinst, DWORD reason, LPVOID reserved )
@@ -1746,6 +1806,9 @@ BOOL WINAPI DllMain( HINSTANCE hinst, DWORD reason, LPVOID reserved )
@@ -1865,6 +1925,9 @@ BOOL WINAPI DllMain( HINSTANCE hinst, DWORD reason, LPVOID reserved )
DisableThreadLibraryCalls( hinst );
#ifdef HAVE_GNUTLS_CIPHER_INIT
gnutls_initialize();
@@ -222,7 +222,7 @@ index c2939ea815a..15b934247d8 100644
#endif
break;
@@ -1753,6 +1816,9 @@ BOOL WINAPI DllMain( HINSTANCE hinst, DWORD reason, LPVOID reserved )
@@ -1872,6 +1935,9 @@ BOOL WINAPI DllMain( HINSTANCE hinst, DWORD reason, LPVOID reserved )
if (reserved) break;
#ifdef HAVE_GNUTLS_CIPHER_INIT
gnutls_uninitialize();
@@ -234,7 +234,7 @@ index c2939ea815a..15b934247d8 100644
}
diff --git a/dlls/bcrypt/gcrypt.c b/dlls/bcrypt/gcrypt.c
new file mode 100644
index 00000000000..d7ed6eeddf3
index 00000000000..f882d61def8
--- /dev/null
+++ b/dlls/bcrypt/gcrypt.c
@@ -0,0 +1,264 @@
@@ -285,14 +285,14 @@ index 00000000000..d7ed6eeddf3
+
+BOOL gcrypt_initialize(void)
+{
+ if (!(libgcrypt_handle = wine_dlopen( SONAME_LIBGCRYPT, RTLD_NOW, NULL, 0 )))
+ if (!(libgcrypt_handle = dlopen( SONAME_LIBGCRYPT, RTLD_NOW)))
+ {
+ ERR_(winediag)( "failed to load libgcrypt, no support for diffie hellman key exchange\n" );
+ return FALSE;
+ }
+
+#define LOAD_FUNCPTR(f) \
+ if (!(p##f = wine_dlsym( libgcrypt_handle, #f, NULL, 0 ))) \
+ if (!(p##f = dlsym( libgcrypt_handle, #f))) \
+ { \
+ ERR( "failed to load %s\n", #f ); \
+ goto fail; \
@@ -314,7 +314,7 @@ index 00000000000..d7ed6eeddf3
+ return TRUE;
+
+fail:
+ wine_dlclose( libgcrypt_handle, NULL, 0 );
+ dlclose( libgcrypt_handle);
+ libgcrypt_handle = NULL;
+ return FALSE;
+}
@@ -322,7 +322,7 @@ index 00000000000..d7ed6eeddf3
+
+void gcrypt_uninitialize(void)
+{
+ wine_dlclose( libgcrypt_handle, NULL, 0 );
+ dlclose( libgcrypt_handle);
+ libgcrypt_handle = NULL;
+}
+
@@ -503,10 +503,10 @@ index 00000000000..d7ed6eeddf3
+}
+#endif
diff --git a/dlls/bcrypt/gnutls.c b/dlls/bcrypt/gnutls.c
index 1d78b9f4d1f..59c98eed0cc 100644
index d447e90a11e..7828fa5c792 100644
--- a/dlls/bcrypt/gnutls.c
+++ b/dlls/bcrypt/gnutls.c
@@ -1297,4 +1297,13 @@ NTSTATUS key_destroy( struct key *key )
@@ -1580,4 +1580,13 @@ NTSTATUS key_destroy( struct key *key )
heap_free( key );
return STATUS_SUCCESS;
}
@@ -521,10 +521,10 @@ index 1d78b9f4d1f..59c98eed0cc 100644
+
#endif
diff --git a/dlls/bcrypt/macos.c b/dlls/bcrypt/macos.c
index 9ff9772c15a..4851603819c 100644
index f635ba4bc8e..50cd5d83d1f 100644
--- a/dlls/bcrypt/macos.c
+++ b/dlls/bcrypt/macos.c
@@ -268,4 +268,10 @@ NTSTATUS key_destroy( struct key *key )
@@ -267,4 +267,10 @@ NTSTATUS key_destroy( struct key *key )
heap_free( key );
return STATUS_SUCCESS;
}
@@ -536,10 +536,10 @@ index 9ff9772c15a..4851603819c 100644
+}
#endif
diff --git a/dlls/bcrypt/tests/bcrypt.c b/dlls/bcrypt/tests/bcrypt.c
index f7404057fa8..d9509f2c49b 100644
index e4a99d63048..6ca26b3d6ba 100644
--- a/dlls/bcrypt/tests/bcrypt.c
+++ b/dlls/bcrypt/tests/bcrypt.c
@@ -2067,7 +2067,7 @@ static void test_ECDH(void)
@@ -2068,7 +2068,7 @@ static void test_ECDH(void)
goto raw_secret_end;
}
@@ -549,5 +549,5 @@ index f7404057fa8..d9509f2c49b 100644
if (status != STATUS_SUCCESS)
{
--
2.17.1
2.26.2

View File

@@ -1,4 +1,4 @@
From 3a94f82a0cf783abf7c7d17335914bed3c6791bb Mon Sep 17 00:00:00 2001
From c88a1acf9ac625cb2a7cbfc90ac3bb2d426889a0 Mon Sep 17 00:00:00 2001
From: Dmitry Timoshkov <dmitry@baikal.ru>
Date: Tue, 12 Nov 2019 18:13:20 +0800
Subject: [PATCH] comctl32: Bump version to 6.0.
@@ -14,12 +14,12 @@ Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
3 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/dlls/comctl32/comctl32.h b/dlls/comctl32/comctl32.h
index 78e97983381..42b434a96d9 100644
index 66b341ae5ad..1af9baea7ee 100644
--- a/dlls/comctl32/comctl32.h
+++ b/dlls/comctl32/comctl32.h
@@ -192,7 +192,7 @@ INT Str_GetPtrAtoW (LPCSTR lpSrc, LPWSTR lpDest, INT nMaxLen) DECLSPEC_HIDDEN;
BOOL Str_SetPtrAtoW (LPWSTR *lppDest, LPCSTR lpSrc) DECLSPEC_HIDDEN;
@@ -193,7 +193,7 @@ BOOL Str_SetPtrAtoW (LPWSTR *lppDest, LPCSTR lpSrc) DECLSPEC_HIDDEN;
BOOL Str_SetPtrWtoA (LPSTR *lppDest, LPCWSTR lpSrc) DECLSPEC_HIDDEN;
BOOL imagelist_has_alpha(HIMAGELIST, UINT) DECLSPEC_HIDDEN;
-#define COMCTL32_VERSION_MINOR 81
+#define COMCTL32_VERSION_MINOR 0

View File

@@ -1,4 +1,4 @@
From 8a5768bc4dc64dd9a0df5d7b781a569622b8c9b6 Mon Sep 17 00:00:00 2001
From 38d4fa059ffd4ecba4e7d04e2a5edd2bcff3c7df Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Wed, 27 Aug 2014 00:31:23 +0200
Subject: [PATCH] configure: Also add the absolute RPATH when linking against
@@ -9,11 +9,11 @@ Subject: [PATCH] configure: Also add the absolute RPATH when linking against
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/configure.ac b/configure.ac
index e6acb786a4d..bd3fe968839 100644
index c88013910af..a7f1866bf0d 100644
--- a/configure.ac
+++ b/configure.ac
@@ -956,10 +956,10 @@ case $host_os in
WINEPRELOADER_LDFLAGS="-static -nostartfiles -nodefaultlibs -Wl,-Ttext=0x7c400000"
@@ -969,10 +969,10 @@ case $host_os in
WINEPRELOADER_LDFLAGS="-static -nostartfiles -nodefaultlibs -Wl,-Ttext=0x7d400000"
WINE_TRY_CFLAGS([-Wl,--rpath,\$ORIGIN/../lib],
- [LDRPATH_INSTALL="-Wl,--rpath,\\\$\$ORIGIN/\`\$(MAKEDEP) -R \${bindir} \${libdir}\`"
@@ -26,5 +26,5 @@ index e6acb786a4d..bd3fe968839 100644
WINE_TRY_CFLAGS([-Wl,--enable-new-dtags],
--
2.20.1
2.27.0

View File

@@ -1,4 +1,4 @@
From c01cbb5811cb9de58a0c3fa7822382f45900b435 Mon Sep 17 00:00:00 2001
From 929513c89e71d0675dd2c80a29ddf94f2c331dd8 Mon Sep 17 00:00:00 2001
From: Paul Gofman <gofmanp@gmail.com>
Date: Fri, 27 Sep 2019 16:26:04 +0300
Subject: [PATCH] d3d11/tests: Add a basic test for drawing with deferred
@@ -9,10 +9,10 @@ Subject: [PATCH] d3d11/tests: Add a basic test for drawing with deferred
1 file changed, 81 insertions(+), 19 deletions(-)
diff --git a/dlls/d3d11/tests/d3d11.c b/dlls/d3d11/tests/d3d11.c
index 7f11a59d0cb..c63bae8bbab 100644
index 214b9b164988..26c9f8555ff6 100644
--- a/dlls/d3d11/tests/d3d11.c
+++ b/dlls/d3d11/tests/d3d11.c
@@ -1692,10 +1692,11 @@ static void release_test_context_(unsigned int line, struct d3d11_test_context *
@@ -1691,10 +1691,11 @@ static void release_test_context_(unsigned int line, struct d3d11_test_context *
ok_(__FILE__, line)(!ref, "Device has %u references left.\n", ref);
}
@@ -27,7 +27,7 @@ index 7f11a59d0cb..c63bae8bbab 100644
{
static const D3D11_INPUT_ELEMENT_DESC default_layout_desc[] =
{
@@ -1764,14 +1765,14 @@ static void draw_quad_vs_(unsigned int line, struct d3d11_test_context *context,
@@ -1763,14 +1764,14 @@ static void draw_quad_vs_(unsigned int line, struct d3d11_test_context *context,
if (!context->vb)
context->vb = create_buffer(device, D3D11_BIND_VERTEX_BUFFER, sizeof(quad), quad);
@@ -47,7 +47,7 @@ index 7f11a59d0cb..c63bae8bbab 100644
}
#define draw_quad_z(context, z) draw_quad_z_(__LINE__, context, z)
@@ -1807,19 +1808,27 @@ static void draw_quad_z_(unsigned int line, struct d3d11_test_context *context,
@@ -1806,19 +1807,27 @@ static void draw_quad_z_(unsigned int line, struct d3d11_test_context *context,
(ID3D11Resource *)context->vs_cb, 0, NULL, &data, 0, 0);
ID3D11DeviceContext_VSSetConstantBuffers(context->immediate_context, 0, 1, &context->vs_cb);
@@ -81,7 +81,7 @@ index 7f11a59d0cb..c63bae8bbab 100644
{
static const DWORD ps_color_code[] =
{
@@ -1856,12 +1865,12 @@ static void draw_color_quad_(unsigned int line, struct d3d11_test_context *conte
@@ -1855,12 +1864,12 @@ static void draw_color_quad_(unsigned int line, struct d3d11_test_context *conte
if (!context->ps_cb)
context->ps_cb = create_buffer(device, D3D11_BIND_CONSTANT_BUFFER, sizeof(*color), NULL);
@@ -98,7 +98,7 @@ index 7f11a59d0cb..c63bae8bbab 100644
}
static void test_create_device(void)
@@ -2088,6 +2097,59 @@ static void test_create_device(void)
@@ -2087,6 +2096,59 @@ static void test_create_device(void)
DestroyWindow(window);
}
@@ -158,19 +158,19 @@ index 7f11a59d0cb..c63bae8bbab 100644
static void test_device_interfaces(const D3D_FEATURE_LEVEL feature_level)
{
struct device_desc device_desc;
@@ -29639,11 +29701,11 @@ START_TEST(d3d11)
@@ -30114,11 +30176,11 @@ START_TEST(d3d11)
}
print_adapter_info();
-
queue_test(test_create_device);
queue_for_each_feature_level(test_device_interfaces);
queue_test(test_get_immediate_context);
queue_test(test_immediate_context);
queue_test(test_create_deferred_context);
+ queue_test(test_draw_deferred_context);
queue_test(test_create_texture1d);
queue_test(test_texture1d_interfaces);
queue_test(test_create_texture2d);
--
2.17.1
2.26.2

View File

@@ -0,0 +1,44 @@
From 2537d783b525e7ec2239b87b17916d15e0130add Mon Sep 17 00:00:00 2001
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Date: Mon, 1 Jun 2020 16:34:54 +1000
Subject: [PATCH] d3d11: Implement ID3D11Device2 GetImmediateContext1
Wine-bug: https://bugs.winehq.org/show_bug.cgi?id=41636
---
dlls/d3d11/device.c | 19 +++++++++++++++++--
1 file changed, 17 insertions(+), 2 deletions(-)
diff --git a/dlls/d3d11/device.c b/dlls/d3d11/device.c
index a649be2f8ea..28100c2f9db 100644
--- a/dlls/d3d11/device.c
+++ b/dlls/d3d11/device.c
@@ -7174,9 +7174,24 @@ static void STDMETHODCALLTYPE d3d11_device_GetImmediateContext1(ID3D11Device2 *i
static HRESULT STDMETHODCALLTYPE d3d11_device_CreateDeferredContext1(ID3D11Device2 *iface, UINT flags,
ID3D11DeviceContext1 **context)
{
- FIXME("iface %p, flags %#x, context %p stub!\n", iface, flags, context);
+ struct d3d11_deferred_context *object;
- return E_NOTIMPL;
+ TRACE("iface %p, flags %#x, context %p.\n", iface, flags, context);
+
+ if (!(object = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(*object))))
+ return E_OUTOFMEMORY;
+
+ object->ID3D11DeviceContext1_iface.lpVtbl = &d3d11_deferred_context_vtbl;
+ object->device = (ID3D11Device *)iface;
+ object->refcount = 1;
+
+ list_init(&object->commands);
+
+ ID3D11Device2_AddRef(iface);
+ wined3d_private_store_init(&object->private_store);
+
+ return ID3D11DeviceContext1_QueryInterface(&object->ID3D11DeviceContext1_iface,
+ &IID_ID3D11DeviceContext, (void**)context);
}
static HRESULT STDMETHODCALLTYPE d3d11_device_CreateBlendState1(ID3D11Device2 *iface,
--
2.26.2

View File

@@ -1,5 +1,6 @@
Fixes: [42191] Add semi-stub for D3D11 deferred context implementation
Fixes: [43743] No 3D graphics in Wolcen: Lords of Mayhem
Fixes: [44089] Correcly align the mapinfo buffer.
Fixes: [41636] d3d11: Implement ID3D11Device2 GetImmediateContext1
#This is pretty dumb.
Depends: nvapi-Stub_DLL

View File

@@ -1,64 +0,0 @@
From cdcb9581d105a7964b06ca9c5525e28db25d6206 Mon Sep 17 00:00:00 2001
From: Christian Costa <titan.costa@gmail.com>
Date: Sun, 16 Jul 2017 17:39:28 +0200
Subject: d3dx9_36/tests: Remove useless \n within some ok messages.
---
dlls/d3dx9_36/tests/mesh.c | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/dlls/d3dx9_36/tests/mesh.c b/dlls/d3dx9_36/tests/mesh.c
index 95dd06e4662..b1ab0aaf594 100644
--- a/dlls/d3dx9_36/tests/mesh.c
+++ b/dlls/d3dx9_36/tests/mesh.c
@@ -10195,10 +10195,10 @@ static void test_clone_mesh(void)
hr = mesh->lpVtbl->CloneMesh(mesh, tc[i].clone_options, tc[i].new_declaration,
test_context->device, &mesh_clone);
- ok(hr == D3D_OK, "CloneMesh test case %d failed. Got %x\n, expected D3D_OK\n", i, hr);
+ ok(hr == D3D_OK, "CloneMesh test case %d failed. Got %x, expected D3D_OK.\n", i, hr);
hr = mesh_clone->lpVtbl->GetDeclaration(mesh_clone, new_declaration);
- ok(hr == D3D_OK, "GetDeclaration test case %d failed. Got %x\n, expected D3D_OK\n", i, hr);
+ ok(hr == D3D_OK, "GetDeclaration test case %d failed. Got %x, expected D3D_OK.\n", i, hr);
/* Check declaration elements */
for (j = 0; tc[i].new_declaration[j].Stream != 0xFF; j++)
{
@@ -10385,7 +10385,7 @@ static void test_valid_mesh(void)
hr = D3DXValidMesh(mesh, tc[i].adjacency, &errors_and_warnings);
todo_wine ok(hr == tc[i].exp_hr, "D3DXValidMesh test case %d failed. "
- "Got %x\n, expected %x\n", i, hr, tc[i].exp_hr);
+ "Got %x, expected %x.\n", i, hr, tc[i].exp_hr);
/* Note errors_and_warnings is deliberately not checked because that
* would require copying wast amounts of the text output. */
@@ -10529,7 +10529,7 @@ static void test_optimize_faces(void)
tc[i].num_vertices, tc[i].indices_are_32bit,
face_remap);
ok(hr == D3D_OK, "D3DXOptimizeFaces test case %d failed. "
- "Got %x\n, expected D3D_OK\n", i, hr);
+ "Got %x, expected D3D_OK.\n", i, hr);
/* Compare face remap with expected face remap */
for (j = 0; j < tc[i].num_faces; j++)
@@ -10547,14 +10547,14 @@ static void test_optimize_faces(void)
tc[0].num_vertices, tc[0].indices_are_32bit,
NULL);
ok(hr == D3DERR_INVALIDCALL, "D3DXOptimizeFaces passed NULL face_remap "
- "pointer. Got %x\n, expected D3DERR_INVALIDCALL\n", hr);
+ "pointer. Got %x, expected D3DERR_INVALIDCALL.\n", hr);
/* Number of faces must be smaller than 2^15 */
hr = D3DXOptimizeFaces(tc[0].indices, 2 << 15,
tc[0].num_vertices, FALSE,
&smallest_face_remap);
ok(hr == D3DERR_INVALIDCALL, "D3DXOptimizeFaces should not accept 2^15 "
- "faces when using 16-bit indices. Got %x\n, expected D3DERR_INVALIDCALL\n", hr);
+ "faces when using 16-bit indices. Got %x, expected D3DERR_INVALIDCALL.\n", hr);
}
static HRESULT clear_normals(ID3DXMesh *mesh)
--
2.13.1

View File

@@ -1,4 +1,4 @@
From 1c52fd394b75313b41023d53c011ab861dc79b66 Mon Sep 17 00:00:00 2001
From 30c01cb08a47b706a4ae49ddbd28f39cb065b5c9 Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Mon, 6 Oct 2014 05:06:06 +0200
Subject: [PATCH] dbghelp: Always check for debug symbols in BINDIR.
@@ -9,7 +9,7 @@ Subject: [PATCH] dbghelp: Always check for debug symbols in BINDIR.
2 files changed, 2 insertions(+), 1 deletion(-)
diff --git a/dlls/dbghelp/Makefile.in b/dlls/dbghelp/Makefile.in
index 39d3bfc8641..ab66ff5b6c5 100644
index 076c50323dda..ddb69c96dd42 100644
--- a/dlls/dbghelp/Makefile.in
+++ b/dlls/dbghelp/Makefile.in
@@ -1,6 +1,6 @@
@@ -18,20 +18,20 @@ index 39d3bfc8641..ab66ff5b6c5 100644
-EXTRADEFS = -D_IMAGEHLP_SOURCE_
+EXTRADEFS = -D_IMAGEHLP_SOURCE_ -DBINDIR="\"${bindir}\""
DELAYIMPORTS = version
EXTRAINCL = $(Z_CFLAGS)
EXTRALIBS = $(Z_LIBS) $(CORESERVICES_LIBS) $(COREFOUNDATION_LIBS)
EXTRADLLFLAGS = -mno-cygwin
diff --git a/dlls/dbghelp/elf_module.c b/dlls/dbghelp/elf_module.c
index 0b60524fc44..f2d6e84e3ea 100644
index e44629f016e1..923608f35e31 100644
--- a/dlls/dbghelp/elf_module.c
+++ b/dlls/dbghelp/elf_module.c
@@ -1379,6 +1379,7 @@ static BOOL elf_search_and_load_file(struct process* pcs, const WCHAR* filename,
@@ -1436,6 +1436,7 @@ static BOOL elf_search_and_load_file(struct process* pcs, const WCHAR* filename,
load_elf.elf_info = elf_info;
ret = search_unix_path(filename, getenv("PATH"), elf_load_file_cb, &load_elf)
|| search_unix_path(filename, getenv("LD_LIBRARY_PATH"), elf_load_file_cb, &load_elf)
ret = search_unix_path(filename, process_getenv(pcs, L"LD_LIBRARY_PATH"), elf_load_file_cb, &load_elf)
+ || search_unix_path(filename, BINDIR, elf_load_file_cb, &load_elf)
|| search_dll_path(filename, elf_load_file_cb, &load_elf);
|| search_dll_path(pcs, filename, elf_load_file_cb, &load_elf);
}
--
2.25.1
2.26.2

View File

@@ -1,235 +0,0 @@
From 4c6b3da41feef98226bbfe14c2b0e88acf39807e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Tue, 25 Aug 2015 11:15:59 +0200
Subject: ddraw/tests: Add more tests for IDirectDraw7::EnumSurfaces.
---
dlls/ddraw/ddraw.c | 3 +
dlls/ddraw/tests/d3d.c | 177 ++++++++++++++++++++++++++++++++++++++++++++++---
2 files changed, 172 insertions(+), 8 deletions(-)
diff --git a/dlls/ddraw/ddraw.c b/dlls/ddraw/ddraw.c
index b3caba2..4b7a207 100644
--- a/dlls/ddraw/ddraw.c
+++ b/dlls/ddraw/ddraw.c
@@ -3135,6 +3135,9 @@ static HRESULT WINAPI ddraw7_EnumSurfaces(IDirectDraw7 *iface, DWORD Flags,
if (!Callback)
return DDERR_INVALIDPARAMS;
+ if (!all && !DDSD)
+ return DDERR_INVALIDPARAMS;
+
wined3d_mutex_lock();
/* Use the _SAFE enumeration, the app may destroy enumerated surfaces */
diff --git a/dlls/ddraw/tests/d3d.c b/dlls/ddraw/tests/d3d.c
index ec4197a..e9c616e 100644
--- a/dlls/ddraw/tests/d3d.c
+++ b/dlls/ddraw/tests/d3d.c
@@ -57,6 +57,12 @@ typedef struct {
int total;
} D3D7ECancelTest;
+typedef struct
+{
+ int found;
+ int surfaces;
+} EnumSurfaceTest;
+
#define MAX_ENUMERATION_COUNT 10
typedef struct
{
@@ -85,17 +91,21 @@ static ULONG getRefcount(IUnknown *iface)
static HRESULT WINAPI SurfaceCounter(IDirectDrawSurface7 *surface, DDSURFACEDESC2 *desc, void *context)
{
- UINT *num = context;
- (*num)++;
- IDirectDrawSurface_Release(surface);
+ EnumSurfaceTest *count = context;
+ count->found++;
+ if (surface)
+ {
+ count->surfaces++;
+ IDirectDrawSurface_Release(surface);
+ }
return DDENUMRET_OK;
}
static BOOL CreateDirect3D(void)
{
HRESULT rc;
- DDSURFACEDESC2 ddsd;
- UINT num;
+ DDSURFACEDESC2 ddsd, ddsd2;
+ EnumSurfaceTest count;
rc = pDirectDrawCreateEx(NULL, (void**)&lpDD,
&IID_IDirectDraw7, NULL);
@@ -122,9 +132,160 @@ static BOOL CreateDirect3D(void)
if (FAILED(rc))
return FALSE;
- num = 0;
- IDirectDraw7_EnumSurfaces(lpDD, DDENUMSURFACES_ALL | DDENUMSURFACES_DOESEXIST, NULL, &num, SurfaceCounter);
- ok(num == 1, "Has %d surfaces, expected 1\n", num);
+ memset(&ddsd2, 0, sizeof(ddsd2));
+ ddsd2.dwSize = sizeof(ddsd2);
+ ddsd2.dwFlags = DDSD_WIDTH | DDSD_HEIGHT;
+ ddsd2.dwWidth = 256;
+ ddsd2.dwHeight = 256;
+
+ /* without search type flags */
+ count.found = count.surfaces = 0;
+ rc = IDirectDraw7_EnumSurfaces(lpDD, 0, NULL, &count, SurfaceCounter);
+ ok(rc == DDERR_INVALIDPARAMS, "Expected DDERR_INVALIDPARAMS, got %x\n", rc);
+ ok(count.found == 0, "Has %d surface descriptions, expected 0\n", count.found);
+ ok(count.surfaces == 0, "Has %d surfaces, expected 0\n", count.surfaces);
+
+ count.found = count.surfaces = 0;
+ rc = IDirectDraw7_EnumSurfaces(lpDD, 0, &ddsd, &count, SurfaceCounter);
+ todo_wine ok(rc == DDERR_INVALIDPARAMS, "Expected DDERR_INVALIDPARAMS, got %x\n", rc);
+ ok(count.found == 0, "Has %d surface descriptions, expected 0\n", count.found);
+ ok(count.surfaces == 0, "Has %d surfaces, expected 0\n", count.surfaces);
+
+ count.found = count.surfaces = 0;
+ rc = IDirectDraw7_EnumSurfaces(lpDD, DDENUMSURFACES_ALL, NULL, &count, SurfaceCounter);
+ todo_wine ok(rc == DDERR_INVALIDPARAMS, "Expected DDERR_INVALIDPARAMS, got %x\n", rc);
+ todo_wine ok(count.found == 0, "Has %d surface descriptions, expected 0\n", count.found);
+ todo_wine ok(count.surfaces == 0, "Has %d surfaces, expected 0\n", count.surfaces);
+
+ count.found = count.surfaces = 0;
+ rc = IDirectDraw7_EnumSurfaces(lpDD, DDENUMSURFACES_MATCH, NULL, &count, SurfaceCounter);
+ ok(rc == DDERR_INVALIDPARAMS, "Expected DDERR_INVALIDPARAMS, got %x\n", rc);
+ ok(count.found == 0, "Has %d surface descriptions, expected 0\n", count.found);
+ ok(count.surfaces == 0, "Has %d surfaces, expected 0\n", count.surfaces);
+
+ count.found = count.surfaces = 0;
+ rc = IDirectDraw7_EnumSurfaces(lpDD, DDENUMSURFACES_NOMATCH, NULL, &count, SurfaceCounter);
+ ok(rc == DDERR_INVALIDPARAMS, "Expected DDERR_INVALIDPARAMS, got %x\n", rc);
+ ok(count.found == 0, "Has %d surface descriptions, expected 0\n", count.found);
+ ok(count.surfaces == 0, "Has %d surfaces, expected 0\n", count.surfaces);
+
+ /* search type DDENUMSURFACES_DOESEXIST */
+ count.found = count.surfaces = 0;
+ rc = IDirectDraw7_EnumSurfaces(lpDD, DDENUMSURFACES_DOESEXIST, NULL, &count, SurfaceCounter);
+ ok(rc == DDERR_INVALIDPARAMS, "Expected DDERR_INVALIDPARAMS, got %x\n", rc);
+ ok(count.found == 0, "Has %d surface descriptions, expected 0\n", count.found);
+ ok(count.surfaces == 0, "Has %d surfaces, expected 0\n", count.surfaces);
+
+ count.found = count.surfaces = 0;
+ rc = IDirectDraw7_EnumSurfaces(lpDD, DDENUMSURFACES_DOESEXIST, &ddsd, &count, SurfaceCounter);
+ ok(rc == DD_OK, "Expected DD_OK, got %x\n", rc);
+ ok(count.found == 0, "Has %d surface descriptions, expected 0\n", count.found);
+ ok(count.surfaces == 0, "Has %d surfaces, expected 0\n", count.surfaces);
+
+ count.found = count.surfaces = 0;
+ rc = IDirectDraw7_EnumSurfaces(lpDD, DDENUMSURFACES_DOESEXIST, &ddsd2, &count, SurfaceCounter);
+ ok(rc == DD_OK, "Expected DD_OK, got %x\n", rc);
+ ok(count.found == 1, "Has %d surface descriptions, expected 1\n", count.found);
+ ok(count.surfaces == 1, "Has %d surfaces, expected 1\n", count.surfaces);
+
+ count.found = count.surfaces = 0;
+ rc = IDirectDraw7_EnumSurfaces(lpDD, DDENUMSURFACES_DOESEXIST | DDENUMSURFACES_ALL,
+ NULL, &count, SurfaceCounter);
+ ok(rc == DD_OK, "Expected DD_OK, got %x\n", rc);
+ ok(count.found == 1, "Has %d surface descriptions, expected 1\n", count.found);
+ ok(count.surfaces == 1, "Has %d surfaces, expected 1\n", count.surfaces);
+
+ count.found = count.surfaces = 0;
+ rc = IDirectDraw7_EnumSurfaces(lpDD, DDENUMSURFACES_DOESEXIST | DDENUMSURFACES_MATCH,
+ &ddsd, &count, SurfaceCounter);
+ ok(rc == DD_OK, "Expected DD_OK, got %x\n", rc);
+ ok(count.found == 0, "Has %d surface descriptions, expected 0\n", count.found);
+ ok(count.surfaces == 0, "Has %d surfaces, expected 0\n", count.surfaces);
+
+ count.found = count.surfaces = 0;
+ rc = IDirectDraw7_EnumSurfaces(lpDD, DDENUMSURFACES_DOESEXIST | DDENUMSURFACES_NOMATCH,
+ &ddsd, &count, SurfaceCounter);
+ ok(rc == DD_OK, "Expected DD_OK, got %x\n", rc);
+ ok(count.found == 1, "Has %d surface descriptions, expected 1\n", count.found);
+ ok(count.surfaces == 1, "Has %d surfaces, expected 1\n", count.surfaces);
+
+ count.found = count.surfaces = 0;
+ rc = IDirectDraw7_EnumSurfaces(lpDD, DDENUMSURFACES_DOESEXIST | DDENUMSURFACES_MATCH,
+ &ddsd2, &count, SurfaceCounter);
+ ok(rc == DD_OK, "Expected DD_OK, got %x\n", rc);
+ ok(count.found == 1, "Has %d surface descriptions, expected 1\n", count.found);
+ ok(count.surfaces == 1, "Has %d surfaces, expected 1\n", count.surfaces);
+
+ count.found = count.surfaces = 0;
+ rc = IDirectDraw7_EnumSurfaces(lpDD, DDENUMSURFACES_DOESEXIST | DDENUMSURFACES_NOMATCH,
+ &ddsd2, &count, SurfaceCounter);
+ ok(rc == DD_OK, "Expected DD_OK, got %x\n", rc);
+ todo_wine ok(count.found == 0, "Has %d surface descriptions, expected 0\n", count.found);
+ todo_wine ok(count.surfaces == 0, "Has %d surfaces, expected 0\n", count.surfaces);
+
+ count.found = count.surfaces = 0;
+ rc = IDirectDraw7_EnumSurfaces(lpDD, DDENUMSURFACES_DOESEXIST | DDENUMSURFACES_ALL |
+ DDENUMSURFACES_MATCH, NULL, &count, SurfaceCounter);
+ todo_wine ok(rc == DDERR_INVALIDPARAMS, "Expected DDERR_INVALIDPARAMS, got %x\n", rc);
+ todo_wine ok(count.found == 0, "Has %d surface descriptions, expected 0\n", count.found);
+ todo_wine ok(count.surfaces == 0, "Has %d surfaces, expected 0\n", count.surfaces);
+
+ count.found = count.surfaces = 0;
+ rc = IDirectDraw7_EnumSurfaces(lpDD, DDENUMSURFACES_DOESEXIST | DDENUMSURFACES_ALL |
+ DDENUMSURFACES_NOMATCH, NULL, &count, SurfaceCounter);
+ todo_wine ok(rc == DDERR_INVALIDPARAMS, "Expected DDERR_INVALIDPARAMS, got %x\n", rc);
+ todo_wine ok(count.found == 0, "Has %d surface descriptions, expected 0\n", count.found);
+ todo_wine ok(count.surfaces == 0, "Has %d surfaces, expected 0\n", count.surfaces);
+
+ count.found = count.surfaces = 0;
+ rc = IDirectDraw7_EnumSurfaces(lpDD, DDENUMSURFACES_DOESEXIST | DDENUMSURFACES_MATCH |
+ DDENUMSURFACES_NOMATCH, NULL, &count, SurfaceCounter);
+ ok(rc == DDERR_INVALIDPARAMS, "Expected DDERR_INVALIDPARAMS, got %x\n", rc);
+ ok(count.found == 0, "Has %d surface descriptions, expected 0\n", count.found);
+ ok(count.surfaces == 0, "Has %d surfaces, expected 0\n", count.surfaces);
+
+ /* search type DDENUMSURFACES_CANBECREATED */
+ count.found = count.surfaces = 0;
+ rc = IDirectDraw7_EnumSurfaces(lpDD, DDENUMSURFACES_CANBECREATED, &ddsd, &count, SurfaceCounter);
+ todo_wine ok(rc == DDERR_INVALIDPARAMS, "Expected DDERR_INVALIDPARAMS, got %x\n", rc);
+ ok(count.found == 0, "Has %d surface descriptions, expected 0\n", count.found);
+ ok(count.surfaces == 0, "Has %d surfaces, expected 0\n", count.surfaces);
+
+ count.found = count.surfaces = 0;
+ rc = IDirectDraw7_EnumSurfaces(lpDD, DDENUMSURFACES_CANBECREATED | DDENUMSURFACES_ALL,
+ &ddsd, &count, SurfaceCounter);
+ todo_wine ok(rc == DDERR_INVALIDPARAMS, "Expected DDERR_INVALIDPARAMS, got %x\n", rc);
+ todo_wine ok(count.found == 0, "Has %d surface descriptions, expected 0\n", count.found);
+ todo_wine ok(count.surfaces == 0, "Has %d surfaces, expected 0\n", count.surfaces);
+
+ count.found = count.surfaces = 0;
+ rc = IDirectDraw7_EnumSurfaces(lpDD, DDENUMSURFACES_CANBECREATED | DDENUMSURFACES_NOMATCH,
+ &ddsd, &count, SurfaceCounter);
+ todo_wine ok(rc == DDERR_INVALIDPARAMS, "Expected DDERR_INVALIDPARAMS, got %x\n", rc);
+ todo_wine ok(count.found == 0, "Has %d surface descriptions, expected 0\n", count.found);
+ todo_wine ok(count.surfaces == 0, "Has %d surfaces, expected 0\n", count.surfaces);
+
+ count.found = count.surfaces = 0;
+ rc = IDirectDraw7_EnumSurfaces(lpDD, DDENUMSURFACES_CANBECREATED | DDENUMSURFACES_MATCH,
+ NULL, &count, SurfaceCounter);
+ ok(rc == DDERR_INVALIDPARAMS, "Expected DDERR_INVALIDPARAMS, got %x\n", rc);
+ ok(count.found == 0, "Has %d surface descriptions, expected 0\n", count.found);
+ ok(count.surfaces == 0, "Has %d surfaces, expected 0\n", count.surfaces);
+
+ count.found = count.surfaces = 0;
+ rc = IDirectDraw7_EnumSurfaces(lpDD, DDENUMSURFACES_CANBECREATED | DDENUMSURFACES_MATCH,
+ &ddsd, &count, SurfaceCounter);
+ ok(rc == DD_OK, "Expected DD_OK, got %x\n", rc);
+ todo_wine ok(count.found == 1, "Has %d surface descriptions, expected 1\n", count.found);
+ ok(count.surfaces == 0, "Has %d surfaces, expected 0\n", count.surfaces);
+
+ /* combination of DDENUMSURFACES_DOESEXIST and DDENUMSURFACES_CANBECREATED */
+ count.found = count.surfaces = 0;
+ rc = IDirectDraw7_EnumSurfaces(lpDD, DDENUMSURFACES_DOESEXIST | DDENUMSURFACES_CANBECREATED |
+ DDENUMSURFACES_MATCH, &ddsd, &count, SurfaceCounter);
+ ok(rc == DD_OK, "Expected DD_OK, got %x\n", rc);
+ todo_wine ok(count.found == 1, "Has %d surface descriptions, expected 1\n", count.found);
+ ok(count.surfaces == 0, "Has %d surfaces, expected 0\n", count.surfaces);
memset(&ddsd, 0, sizeof(ddsd));
ddsd.dwSize = sizeof(ddsd);
--
2.5.0

View File

@@ -1,248 +0,0 @@
From 5dcbd836e663da908a9a39b5791da65d64a00eb8 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Tue, 25 Aug 2015 11:17:07 +0200
Subject: ddraw: Implement DDENUMSURFACES_CANBECREATED flag in
ddraw7_EnumSurfaces.
Also fixes various test failures related to DDENUMSURFACES_DOESEXIST.
The "Unexpected destination texture level pixels" testfailure on the w8 VM is not related to this patch.
---
dlls/ddraw/ddraw.c | 98 +++++++++++++++++++++++++++++++++++++-------------
dlls/ddraw/tests/d3d.c | 42 +++++++++++-----------
2 files changed, 94 insertions(+), 46 deletions(-)
diff --git a/dlls/ddraw/ddraw.c b/dlls/ddraw/ddraw.c
index 4b7a207..19ed213 100644
--- a/dlls/ddraw/ddraw.c
+++ b/dlls/ddraw/ddraw.c
@@ -3122,49 +3122,97 @@ static HRESULT WINAPI ddraw7_EnumSurfaces(IDirectDraw7 *iface, DWORD Flags,
{
struct ddraw *ddraw = impl_from_IDirectDraw7(iface);
struct ddraw_surface *surf;
- BOOL all, nomatch;
- DDSURFACEDESC2 desc;
- struct list *entry, *entry2;
+ DWORD match_flags = Flags & (DDENUMSURFACES_ALL | DDENUMSURFACES_NOMATCH | DDENUMSURFACES_MATCH);
TRACE("iface %p, flags %#x, surface_desc %p, context %p, callback %p.\n",
iface, Flags, DDSD, Context, Callback);
- all = Flags & DDENUMSURFACES_ALL;
- nomatch = Flags & DDENUMSURFACES_NOMATCH;
-
if (!Callback)
return DDERR_INVALIDPARAMS;
- if (!all && !DDSD)
- return DDERR_INVALIDPARAMS;
+ if (Flags & DDENUMSURFACES_CANBECREATED)
+ {
+ IDirectDrawSurface7 *surface;
+ DDSURFACEDESC2 testdesc;
+ HRESULT hr;
- wined3d_mutex_lock();
+ if (match_flags != DDENUMSURFACES_MATCH)
+ return DDERR_INVALIDPARAMS;
- /* Use the _SAFE enumeration, the app may destroy enumerated surfaces */
- LIST_FOR_EACH_SAFE(entry, entry2, &ddraw->surface_list)
- {
- surf = LIST_ENTRY(entry, struct ddraw_surface, surface_list_entry);
+ if (!DDSD)
+ return DDERR_INVALIDPARAMS;
+
+ memcpy(&testdesc, DDSD, sizeof(testdesc));
+ if (!(testdesc.dwFlags & DDSD_WIDTH))
+ {
+ testdesc.dwFlags |= DDSD_WIDTH;
+ testdesc.dwWidth = 512;
+ }
+ if (!(testdesc.dwFlags & DDSD_HEIGHT))
+ {
+ testdesc.dwFlags |= DDSD_HEIGHT;
+ testdesc.dwHeight = 512;
+ }
- if (!surf->iface_count)
+ hr = IDirectDraw7_CreateSurface(iface, &testdesc, &surface, NULL);
+ if (SUCCEEDED(hr))
{
- WARN("Not enumerating surface %p because it doesn't have any references.\n", surf);
- continue;
+ surf = unsafe_impl_from_IDirectDrawSurface7(surface);
+ Callback(NULL, &surf->surface_desc, Context);
+ IDirectDrawSurface7_Release(surface);
}
+ else
+ ERR("Failed to create surface, hr %#x.\n", hr);
+ }
+ else if (Flags & DDENUMSURFACES_DOESEXIST)
+ {
+ BOOL all, nomatch;
+ DDSURFACEDESC2 desc;
+ struct list *entry, *entry2;
+
+ /* a combination of match flags is not allowed */
+ if (match_flags != 0 &&
+ match_flags != DDENUMSURFACES_ALL &&
+ match_flags != DDENUMSURFACES_MATCH &&
+ match_flags != DDENUMSURFACES_NOMATCH)
+ return DDERR_INVALIDPARAMS;
+
+ all = (Flags & DDENUMSURFACES_ALL) != 0;
+ nomatch = (Flags & DDENUMSURFACES_NOMATCH) != 0;
+
+ if (!all && !DDSD)
+ return DDERR_INVALIDPARAMS;
- if (all || (nomatch != ddraw_match_surface_desc(DDSD, &surf->surface_desc)))
+ wined3d_mutex_lock();
+
+ /* Use the _SAFE enumeration, the app may destroy enumerated surfaces */
+ LIST_FOR_EACH_SAFE(entry, entry2, &ddraw->surface_list)
{
- TRACE("Enumerating surface %p.\n", surf);
- desc = surf->surface_desc;
- IDirectDrawSurface7_AddRef(&surf->IDirectDrawSurface7_iface);
- if (Callback(&surf->IDirectDrawSurface7_iface, &desc, Context) != DDENUMRET_OK)
+ surf = LIST_ENTRY(entry, struct ddraw_surface, surface_list_entry);
+
+ if (!surf->iface_count)
{
- wined3d_mutex_unlock();
- return DD_OK;
+ WARN("Not enumerating surface %p because it doesn't have any references.\n", surf);
+ continue;
+ }
+
+ if (all || (nomatch != ddraw_match_surface_desc(DDSD, &surf->surface_desc)))
+ {
+ TRACE("Enumerating surface %p.\n", surf);
+ desc = surf->surface_desc;
+ IDirectDrawSurface7_AddRef(&surf->IDirectDrawSurface7_iface);
+ if (Callback(&surf->IDirectDrawSurface7_iface, &desc, Context) != DDENUMRET_OK)
+ {
+ wined3d_mutex_unlock();
+ return DD_OK;
+ }
}
}
- }
- wined3d_mutex_unlock();
+ wined3d_mutex_unlock();
+ }
+ else
+ return DDERR_INVALIDPARAMS;
return DD_OK;
}
diff --git a/dlls/ddraw/tests/d3d.c b/dlls/ddraw/tests/d3d.c
index e9c616e..930460f 100644
--- a/dlls/ddraw/tests/d3d.c
+++ b/dlls/ddraw/tests/d3d.c
@@ -147,15 +147,15 @@ static BOOL CreateDirect3D(void)
count.found = count.surfaces = 0;
rc = IDirectDraw7_EnumSurfaces(lpDD, 0, &ddsd, &count, SurfaceCounter);
- todo_wine ok(rc == DDERR_INVALIDPARAMS, "Expected DDERR_INVALIDPARAMS, got %x\n", rc);
+ ok(rc == DDERR_INVALIDPARAMS, "Expected DDERR_INVALIDPARAMS, got %x\n", rc);
ok(count.found == 0, "Has %d surface descriptions, expected 0\n", count.found);
ok(count.surfaces == 0, "Has %d surfaces, expected 0\n", count.surfaces);
count.found = count.surfaces = 0;
rc = IDirectDraw7_EnumSurfaces(lpDD, DDENUMSURFACES_ALL, NULL, &count, SurfaceCounter);
- todo_wine ok(rc == DDERR_INVALIDPARAMS, "Expected DDERR_INVALIDPARAMS, got %x\n", rc);
- todo_wine ok(count.found == 0, "Has %d surface descriptions, expected 0\n", count.found);
- todo_wine ok(count.surfaces == 0, "Has %d surfaces, expected 0\n", count.surfaces);
+ ok(rc == DDERR_INVALIDPARAMS, "Expected DDERR_INVALIDPARAMS, got %x\n", rc);
+ ok(count.found == 0, "Has %d surface descriptions, expected 0\n", count.found);
+ ok(count.surfaces == 0, "Has %d surfaces, expected 0\n", count.surfaces);
count.found = count.surfaces = 0;
rc = IDirectDraw7_EnumSurfaces(lpDD, DDENUMSURFACES_MATCH, NULL, &count, SurfaceCounter);
@@ -220,22 +220,22 @@ static BOOL CreateDirect3D(void)
rc = IDirectDraw7_EnumSurfaces(lpDD, DDENUMSURFACES_DOESEXIST | DDENUMSURFACES_NOMATCH,
&ddsd2, &count, SurfaceCounter);
ok(rc == DD_OK, "Expected DD_OK, got %x\n", rc);
- todo_wine ok(count.found == 0, "Has %d surface descriptions, expected 0\n", count.found);
- todo_wine ok(count.surfaces == 0, "Has %d surfaces, expected 0\n", count.surfaces);
+ ok(count.found == 0, "Has %d surface descriptions, expected 0\n", count.found);
+ ok(count.surfaces == 0, "Has %d surfaces, expected 0\n", count.surfaces);
count.found = count.surfaces = 0;
rc = IDirectDraw7_EnumSurfaces(lpDD, DDENUMSURFACES_DOESEXIST | DDENUMSURFACES_ALL |
DDENUMSURFACES_MATCH, NULL, &count, SurfaceCounter);
- todo_wine ok(rc == DDERR_INVALIDPARAMS, "Expected DDERR_INVALIDPARAMS, got %x\n", rc);
- todo_wine ok(count.found == 0, "Has %d surface descriptions, expected 0\n", count.found);
- todo_wine ok(count.surfaces == 0, "Has %d surfaces, expected 0\n", count.surfaces);
+ ok(rc == DDERR_INVALIDPARAMS, "Expected DDERR_INVALIDPARAMS, got %x\n", rc);
+ ok(count.found == 0, "Has %d surface descriptions, expected 0\n", count.found);
+ ok(count.surfaces == 0, "Has %d surfaces, expected 0\n", count.surfaces);
count.found = count.surfaces = 0;
rc = IDirectDraw7_EnumSurfaces(lpDD, DDENUMSURFACES_DOESEXIST | DDENUMSURFACES_ALL |
DDENUMSURFACES_NOMATCH, NULL, &count, SurfaceCounter);
- todo_wine ok(rc == DDERR_INVALIDPARAMS, "Expected DDERR_INVALIDPARAMS, got %x\n", rc);
- todo_wine ok(count.found == 0, "Has %d surface descriptions, expected 0\n", count.found);
- todo_wine ok(count.surfaces == 0, "Has %d surfaces, expected 0\n", count.surfaces);
+ ok(rc == DDERR_INVALIDPARAMS, "Expected DDERR_INVALIDPARAMS, got %x\n", rc);
+ ok(count.found == 0, "Has %d surface descriptions, expected 0\n", count.found);
+ ok(count.surfaces == 0, "Has %d surfaces, expected 0\n", count.surfaces);
count.found = count.surfaces = 0;
rc = IDirectDraw7_EnumSurfaces(lpDD, DDENUMSURFACES_DOESEXIST | DDENUMSURFACES_MATCH |
@@ -247,23 +247,23 @@ static BOOL CreateDirect3D(void)
/* search type DDENUMSURFACES_CANBECREATED */
count.found = count.surfaces = 0;
rc = IDirectDraw7_EnumSurfaces(lpDD, DDENUMSURFACES_CANBECREATED, &ddsd, &count, SurfaceCounter);
- todo_wine ok(rc == DDERR_INVALIDPARAMS, "Expected DDERR_INVALIDPARAMS, got %x\n", rc);
+ ok(rc == DDERR_INVALIDPARAMS, "Expected DDERR_INVALIDPARAMS, got %x\n", rc);
ok(count.found == 0, "Has %d surface descriptions, expected 0\n", count.found);
ok(count.surfaces == 0, "Has %d surfaces, expected 0\n", count.surfaces);
count.found = count.surfaces = 0;
rc = IDirectDraw7_EnumSurfaces(lpDD, DDENUMSURFACES_CANBECREATED | DDENUMSURFACES_ALL,
&ddsd, &count, SurfaceCounter);
- todo_wine ok(rc == DDERR_INVALIDPARAMS, "Expected DDERR_INVALIDPARAMS, got %x\n", rc);
- todo_wine ok(count.found == 0, "Has %d surface descriptions, expected 0\n", count.found);
- todo_wine ok(count.surfaces == 0, "Has %d surfaces, expected 0\n", count.surfaces);
+ ok(rc == DDERR_INVALIDPARAMS, "Expected DDERR_INVALIDPARAMS, got %x\n", rc);
+ ok(count.found == 0, "Has %d surface descriptions, expected 0\n", count.found);
+ ok(count.surfaces == 0, "Has %d surfaces, expected 0\n", count.surfaces);
count.found = count.surfaces = 0;
rc = IDirectDraw7_EnumSurfaces(lpDD, DDENUMSURFACES_CANBECREATED | DDENUMSURFACES_NOMATCH,
&ddsd, &count, SurfaceCounter);
- todo_wine ok(rc == DDERR_INVALIDPARAMS, "Expected DDERR_INVALIDPARAMS, got %x\n", rc);
- todo_wine ok(count.found == 0, "Has %d surface descriptions, expected 0\n", count.found);
- todo_wine ok(count.surfaces == 0, "Has %d surfaces, expected 0\n", count.surfaces);
+ ok(rc == DDERR_INVALIDPARAMS, "Expected DDERR_INVALIDPARAMS, got %x\n", rc);
+ ok(count.found == 0, "Has %d surface descriptions, expected 0\n", count.found);
+ ok(count.surfaces == 0, "Has %d surfaces, expected 0\n", count.surfaces);
count.found = count.surfaces = 0;
rc = IDirectDraw7_EnumSurfaces(lpDD, DDENUMSURFACES_CANBECREATED | DDENUMSURFACES_MATCH,
@@ -276,7 +276,7 @@ static BOOL CreateDirect3D(void)
rc = IDirectDraw7_EnumSurfaces(lpDD, DDENUMSURFACES_CANBECREATED | DDENUMSURFACES_MATCH,
&ddsd, &count, SurfaceCounter);
ok(rc == DD_OK, "Expected DD_OK, got %x\n", rc);
- todo_wine ok(count.found == 1, "Has %d surface descriptions, expected 1\n", count.found);
+ ok(count.found == 1, "Has %d surface descriptions, expected 1\n", count.found);
ok(count.surfaces == 0, "Has %d surfaces, expected 0\n", count.surfaces);
/* combination of DDENUMSURFACES_DOESEXIST and DDENUMSURFACES_CANBECREATED */
@@ -284,7 +284,7 @@ static BOOL CreateDirect3D(void)
rc = IDirectDraw7_EnumSurfaces(lpDD, DDENUMSURFACES_DOESEXIST | DDENUMSURFACES_CANBECREATED |
DDENUMSURFACES_MATCH, &ddsd, &count, SurfaceCounter);
ok(rc == DD_OK, "Expected DD_OK, got %x\n", rc);
- todo_wine ok(count.found == 1, "Has %d surface descriptions, expected 1\n", count.found);
+ ok(count.found == 1, "Has %d surface descriptions, expected 1\n", count.found);
ok(count.surfaces == 0, "Has %d surfaces, expected 0\n", count.surfaces);
memset(&ddsd, 0, sizeof(ddsd));
--
2.5.0

Some files were not shown because too many files have changed in this diff Show More