From e3c64796cd8421b426a15aa8440a815ee199b213 Mon Sep 17 00:00:00 2001 From: Sebastian Lackner Date: Wed, 23 Dec 2015 01:01:43 +0100 Subject: [PATCH] Rebase against 35eebeef0fe0b3f03f44731f805c447b2342acfd. --- README.md | 4 +- patches/dsound-EAX/definition | 1 + ...e-a-better-name-for-IDirectSoundBuff.patch | 106 ++++++++++ ...mplify-error-handling-when-creating-.patch | 116 +++++++++++ patches/patchinstall.sh | 68 +++---- .../0001-tdi.sys-add-a-stub-dll-try-3.patch | 169 ---------------- patches/tdi.sys-Stub_Driver/definition | 1 - ...heck-for-__WINE_WNE_PORT_H-in-winsoc.patch | 32 --- ...02-ws2_32-Add-WSAPoll-implementation.patch | 182 ------------------ patches/ws2_32-WSAPoll/definition | 1 - staging/changelog | 6 + 11 files changed, 256 insertions(+), 430 deletions(-) create mode 100644 patches/dsound-Revert_Cleanup/0001-Revert-dsound-Use-a-better-name-for-IDirectSoundBuff.patch create mode 100644 patches/dsound-Revert_Cleanup/0002-Revert-dsound-Simplify-error-handling-when-creating-.patch delete mode 100644 patches/tdi.sys-Stub_Driver/0001-tdi.sys-add-a-stub-dll-try-3.patch delete mode 100644 patches/tdi.sys-Stub_Driver/definition delete mode 100644 patches/ws2_32-WSAPoll/0001-include-Remove-check-for-__WINE_WNE_PORT_H-in-winsoc.patch delete mode 100644 patches/ws2_32-WSAPoll/0002-ws2_32-Add-WSAPoll-implementation.patch delete mode 100644 patches/ws2_32-WSAPoll/definition diff --git a/README.md b/README.md index 57fa83d3..afdfc849 100644 --- a/README.md +++ b/README.md @@ -46,7 +46,7 @@ for more details.* * Add IDragSourceHelper stub interface ([Wine Bug #24699](https://bugs.winehq.org/show_bug.cgi?id=24699)) * Add IHTMLLocation::hash property's getter implementation ([Wine Bug #32967](https://bugs.winehq.org/show_bug.cgi?id=32967)) * Add a ProfileList\ registry subkey ([Wine Bug #15670](https://bugs.winehq.org/show_bug.cgi?id=15670)) -* Add a stub driver for tdi.sys ([Wine Bug #35693](https://bugs.winehq.org/show_bug.cgi?id=35693)) +* ~~Add a stub driver for tdi.sys~~ ([Wine Bug #35693](https://bugs.winehq.org/show_bug.cgi?id=35693)) * Add implementation for comctl32.PROPSHEET_InsertPage. ([Wine Bug #25625](https://bugs.winehq.org/show_bug.cgi?id=25625)) * Add implementation for mfplat.MFTEnum ([Wine Bug #39309](https://bugs.winehq.org/show_bug.cgi?id=39309)) * Add implementation for mfplat.MFTRegister ([Wine Bug #37811](https://bugs.winehq.org/show_bug.cgi?id=37811)) @@ -295,7 +295,7 @@ for more details.* * Support for setcap on wine-preloader ([Wine Bug #26256](https://bugs.winehq.org/show_bug.cgi?id=26256)) * Support for shell32 file operation progress dialog * Support for stored file ACLs ([Wine Bug #33576](https://bugs.winehq.org/show_bug.cgi?id=33576)) -* Support for ws2_32.dll.WSAPoll ([Wine Bug #38601](https://bugs.winehq.org/show_bug.cgi?id=38601)) +* ~~Support for ws2_32.dll.WSAPoll~~ ([Wine Bug #38601](https://bugs.winehq.org/show_bug.cgi?id=38601)) * Tumblebugs 2 requires DXTn software encoding support ([Wine Bug #29586](https://bugs.winehq.org/show_bug.cgi?id=29586)) * Update a XIM candidate position when cursor location changes ([Wine Bug #30938](https://bugs.winehq.org/show_bug.cgi?id=30938)) * Use GLX_MESA_query_renderer extension to get more exact GPU infos diff --git a/patches/dsound-EAX/definition b/patches/dsound-EAX/definition index f400f020..85ed7831 100644 --- a/patches/dsound-EAX/definition +++ b/patches/dsound-EAX/definition @@ -1,2 +1,3 @@ Fixes: Software support for Environmental Audio Extensions (EAX) Depends: dsound-Fast_Mixer +Depends: dsound-Revert_Cleanup diff --git a/patches/dsound-Revert_Cleanup/0001-Revert-dsound-Use-a-better-name-for-IDirectSoundBuff.patch b/patches/dsound-Revert_Cleanup/0001-Revert-dsound-Use-a-better-name-for-IDirectSoundBuff.patch new file mode 100644 index 00000000..4f946003 --- /dev/null +++ b/patches/dsound-Revert_Cleanup/0001-Revert-dsound-Use-a-better-name-for-IDirectSoundBuff.patch @@ -0,0 +1,106 @@ +From 462599cf79d964c6add1a7250f654d2e3110c4d2 Mon Sep 17 00:00:00 2001 +From: Sebastian Lackner +Date: Wed, 23 Dec 2015 00:58:57 +0100 +Subject: Revert "dsound: Use a better name for + IDirectSoundBufferImpl_Create()." + +This reverts commit bb72548f3870b1df03ad9fe7ad2e543a69d5d574. +--- + dlls/dsound/buffer.c | 24 +++++++++++++++--------- + dlls/dsound/dsound.c | 7 +++++-- + dlls/dsound/dsound_private.h | 6 ++++-- + 3 files changed, 24 insertions(+), 13 deletions(-) + +diff --git a/dlls/dsound/buffer.c b/dlls/dsound/buffer.c +index 2a80c3f..d7717fd 100644 +--- a/dlls/dsound/buffer.c ++++ b/dlls/dsound/buffer.c +@@ -983,15 +983,19 @@ static const IDirectSoundBuffer8Vtbl dsbvt = + IDirectSoundBufferImpl_GetObjectInPath + }; + +-HRESULT secondarybuffer_create(DirectSoundDevice *device, const DSBUFFERDESC *dsbd, +- IDirectSoundBuffer **buffer) ++HRESULT IDirectSoundBufferImpl_Create( ++ DirectSoundDevice * device, ++ IDirectSoundBufferImpl **pdsb, ++ LPCDSBUFFERDESC dsbd) + { + IDirectSoundBufferImpl *dsb; + LPWAVEFORMATEX wfex = dsbd->lpwfxFormat; + HRESULT err = DS_OK; + DWORD capf = 0; + +- TRACE("(%p,%p,%p)\n", device, dsbd, buffer); ++ TRACE("(%p,%p,%p)\n",device,pdsb,dsbd); ++ ++ *pdsb = NULL; + + if (dsbd->dwBufferBytes < DSBSIZE_MIN || dsbd->dwBufferBytes > DSBSIZE_MAX) { + WARN("invalid parameter: dsbd->dwBufferBytes = %d\n", dsbd->dwBufferBytes); +@@ -1103,12 +1107,14 @@ HRESULT secondarybuffer_create(DirectSoundDevice *device, const DSBUFFERDESC *ds + + RtlInitializeResource(&dsb->lock); + +- /* register buffer */ +- err = DirectSoundDevice_AddBuffer(device, dsb); +- if (err == DS_OK) +- *buffer = (IDirectSoundBuffer*)&dsb->IDirectSoundBuffer8_iface; +- else +- IDirectSoundBuffer8_Release(&dsb->IDirectSoundBuffer8_iface); ++ /* register buffer if not primary */ ++ if (!(dsbd->dwFlags & DSBCAPS_PRIMARYBUFFER)) { ++ err = DirectSoundDevice_AddBuffer(device, dsb); ++ if (err == DS_OK) ++ *pdsb = dsb; ++ else ++ IDirectSoundBuffer8_Release(&dsb->IDirectSoundBuffer8_iface); ++ } + + return err; + } +diff --git a/dlls/dsound/dsound.c b/dlls/dsound/dsound.c +index ccefd1f..e50ef58 100644 +--- a/dlls/dsound/dsound.c ++++ b/dlls/dsound/dsound.c +@@ -469,6 +469,8 @@ static HRESULT DirectSoundDevice_CreateSoundBuffer( + WARN("primarybuffer_create() failed\n"); + } + } else { ++ IDirectSoundBufferImpl * dsb; ++ + if (dsbd->lpwfxFormat == NULL) { + WARN("invalid parameter: dsbd->lpwfxFormat can't be NULL for " + "secondary buffer\n"); +@@ -545,8 +547,9 @@ static HRESULT DirectSoundDevice_CreateSoundBuffer( + return DSERR_INVALIDPARAM; + } + +- hres = secondarybuffer_create(device, dsbd, ppdsb); +- if (SUCCEEDED(hres)) { ++ hres = IDirectSoundBufferImpl_Create(device, &dsb, dsbd); ++ if (dsb) { ++ *ppdsb = (IDirectSoundBuffer*)&dsb->IDirectSoundBuffer8_iface; + if (dsbd->dwFlags & DSBCAPS_LOCHARDWARE) + device->drvcaps.dwFreeHwMixingAllBuffers--; + } else +diff --git a/dlls/dsound/dsound_private.h b/dlls/dsound/dsound_private.h +index 07bda48..9c001ed 100644 +--- a/dlls/dsound/dsound_private.h ++++ b/dlls/dsound/dsound_private.h +@@ -182,8 +182,10 @@ void put_stereo2quad(const IDirectSoundBufferImpl *dsb, DWORD pos, DWORD channel + void put_mono2surround51(const IDirectSoundBufferImpl *dsb, DWORD pos, DWORD channel, float value) DECLSPEC_HIDDEN; + void put_stereo2surround51(const IDirectSoundBufferImpl *dsb, DWORD pos, DWORD channel, float value) DECLSPEC_HIDDEN; + +-HRESULT secondarybuffer_create(DirectSoundDevice *device, const DSBUFFERDESC *dsbd, +- IDirectSoundBuffer **buffer) DECLSPEC_HIDDEN; ++HRESULT IDirectSoundBufferImpl_Create( ++ DirectSoundDevice *device, ++ IDirectSoundBufferImpl **ppdsb, ++ LPCDSBUFFERDESC dsbd) DECLSPEC_HIDDEN; + HRESULT IDirectSoundBufferImpl_Duplicate( + DirectSoundDevice *device, + IDirectSoundBufferImpl **ppdsb, +-- +2.6.4 + diff --git a/patches/dsound-Revert_Cleanup/0002-Revert-dsound-Simplify-error-handling-when-creating-.patch b/patches/dsound-Revert_Cleanup/0002-Revert-dsound-Simplify-error-handling-when-creating-.patch new file mode 100644 index 00000000..03d94767 --- /dev/null +++ b/patches/dsound-Revert_Cleanup/0002-Revert-dsound-Simplify-error-handling-when-creating-.patch @@ -0,0 +1,116 @@ +From 974a901f92d5197d3db6356df454bdd47dea39da Mon Sep 17 00:00:00 2001 +From: Sebastian Lackner +Date: Wed, 23 Dec 2015 00:59:07 +0100 +Subject: Revert "dsound: Simplify error handling when creating a sound + buffer." + +This reverts commit d51d55bab8995f94dcc78ce8418a4149836c27b0. +--- + dlls/dsound/buffer.c | 46 ++++++++++++++++++++++++++++++---------------- + 1 file changed, 30 insertions(+), 16 deletions(-) + +diff --git a/dlls/dsound/buffer.c b/dlls/dsound/buffer.c +index d7717fd..5aa2834 100644 +--- a/dlls/dsound/buffer.c ++++ b/dlls/dsound/buffer.c +@@ -992,28 +992,29 @@ HRESULT IDirectSoundBufferImpl_Create( + LPWAVEFORMATEX wfex = dsbd->lpwfxFormat; + HRESULT err = DS_OK; + DWORD capf = 0; +- + TRACE("(%p,%p,%p)\n",device,pdsb,dsbd); + +- *pdsb = NULL; +- + if (dsbd->dwBufferBytes < DSBSIZE_MIN || dsbd->dwBufferBytes > DSBSIZE_MAX) { + WARN("invalid parameter: dsbd->dwBufferBytes = %d\n", dsbd->dwBufferBytes); ++ *pdsb = NULL; + return DSERR_INVALIDPARAM; /* FIXME: which error? */ + } + + dsb = HeapAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY,sizeof(*dsb)); + +- if (!dsb) ++ if (dsb == 0) { ++ WARN("out of memory\n"); ++ *pdsb = NULL; + return DSERR_OUTOFMEMORY; ++ } + + TRACE("Created buffer at %p\n", dsb); + +- dsb->ref = 1; ++ dsb->ref = 0; + dsb->refn = 0; + dsb->ref3D = 0; + dsb->refiks = 0; +- dsb->numIfaces = 1; ++ dsb->numIfaces = 0; + dsb->device = device; + dsb->IDirectSoundBuffer8_iface.lpVtbl = &dsbvt; + dsb->IDirectSoundNotify_iface.lpVtbl = &dsnvt; +@@ -1024,8 +1025,9 @@ HRESULT IDirectSoundBufferImpl_Create( + CopyMemory(&dsb->dsbd, dsbd, dsbd->dwSize); + + dsb->pwfx = DSOUND_CopyFormat(wfex); +- if (!dsb->pwfx) { +- IDirectSoundBuffer8_Release(&dsb->IDirectSoundBuffer8_iface); ++ if (dsb->pwfx == NULL) { ++ HeapFree(GetProcessHeap(),0,dsb); ++ *pdsb = NULL; + return DSERR_OUTOFMEMORY; + } + +@@ -1050,16 +1052,22 @@ HRESULT IDirectSoundBufferImpl_Create( + + /* Allocate an empty buffer */ + dsb->buffer = HeapAlloc(GetProcessHeap(),0,sizeof(*(dsb->buffer))); +- if (!dsb->buffer) { +- IDirectSoundBuffer8_Release(&dsb->IDirectSoundBuffer8_iface); ++ if (dsb->buffer == NULL) { ++ WARN("out of memory\n"); ++ HeapFree(GetProcessHeap(),0,dsb->pwfx); ++ HeapFree(GetProcessHeap(),0,dsb); ++ *pdsb = NULL; + return DSERR_OUTOFMEMORY; + } + + /* Allocate system memory for buffer */ + dsb->buffer->memory = HeapAlloc(GetProcessHeap(),0,dsb->buflen); +- if (!dsb->buffer->memory) { ++ if (dsb->buffer->memory == NULL) { + WARN("out of memory\n"); +- IDirectSoundBuffer8_Release(&dsb->IDirectSoundBuffer8_iface); ++ HeapFree(GetProcessHeap(),0,dsb->pwfx); ++ HeapFree(GetProcessHeap(),0,dsb->buffer); ++ HeapFree(GetProcessHeap(),0,dsb); ++ *pdsb = NULL; + return DSERR_OUTOFMEMORY; + } + +@@ -1110,12 +1118,18 @@ HRESULT IDirectSoundBufferImpl_Create( + /* register buffer if not primary */ + if (!(dsbd->dwFlags & DSBCAPS_PRIMARYBUFFER)) { + err = DirectSoundDevice_AddBuffer(device, dsb); +- if (err == DS_OK) +- *pdsb = dsb; +- else +- IDirectSoundBuffer8_Release(&dsb->IDirectSoundBuffer8_iface); ++ if (err != DS_OK) { ++ HeapFree(GetProcessHeap(),0,dsb->buffer->memory); ++ HeapFree(GetProcessHeap(),0,dsb->buffer); ++ RtlDeleteResource(&dsb->lock); ++ HeapFree(GetProcessHeap(),0,dsb->pwfx); ++ HeapFree(GetProcessHeap(),0,dsb); ++ dsb = NULL; ++ } + } + ++ IDirectSoundBuffer8_AddRef(&dsb->IDirectSoundBuffer8_iface); ++ *pdsb = dsb; + return err; + } + +-- +2.6.4 + diff --git a/patches/patchinstall.sh b/patches/patchinstall.sh index a66f47de..eef2b593 100755 --- a/patches/patchinstall.sh +++ b/patches/patchinstall.sh @@ -52,13 +52,13 @@ usage() # Get the upstream commit sha upstream_commit() { - echo "a0b8f178df8ed704fc732f5aef3b2e1f623512fc" + echo "35eebeef0fe0b3f03f44731f805c447b2342acfd" } # Show version information version() { - echo "Wine Staging 1.8" + echo "Wine Staging 1.9.0 (unreleased)" echo "Copyright (C) 2014-2015 the Wine Staging project authors." echo "" echo "Patchset to be applied on upstream Wine:" @@ -131,6 +131,7 @@ patch_enable_all () enable_dinput_Initialize="$1" enable_dsound_EAX="$1" enable_dsound_Fast_Mixer="$1" + enable_dsound_Revert_Cleanup="$1" enable_dxdiagn_Enumerate_DirectSound="$1" enable_dxdiagn_GetChildContainer_Leaf_Nodes="$1" enable_dxgi_MakeWindowAssociation="$1" @@ -278,7 +279,6 @@ patch_enable_all () enable_shell32_UnixFS="$1" enable_shlwapi_AssocGetPerceivedType="$1" enable_shlwapi_UrlCombine="$1" - enable_tdi_sys_Stub_Driver="$1" enable_user32_DeferWindowPos="$1" enable_user32_Dialog_Paint_Event="$1" enable_user32_DrawTextExW="$1" @@ -339,7 +339,6 @@ patch_enable_all () enable_ws2_32_Sort_default_route="$1" enable_ws2_32_TransmitFile="$1" enable_ws2_32_WSACleanup="$1" - enable_ws2_32_WSAPoll="$1" enable_ws2_32_WriteWatches="$1" enable_ws2_32_getaddrinfo="$1" enable_wtsapi32_EnumerateProcesses="$1" @@ -506,6 +505,9 @@ patch_enable () dsound-Fast_Mixer) enable_dsound_Fast_Mixer="$2" ;; + dsound-Revert_Cleanup) + enable_dsound_Revert_Cleanup="$2" + ;; dxdiagn-Enumerate_DirectSound) enable_dxdiagn_Enumerate_DirectSound="$2" ;; @@ -947,9 +949,6 @@ patch_enable () shlwapi-UrlCombine) enable_shlwapi_UrlCombine="$2" ;; - tdi.sys-Stub_Driver) - enable_tdi_sys_Stub_Driver="$2" - ;; user32-DeferWindowPos) enable_user32_DeferWindowPos="$2" ;; @@ -1130,9 +1129,6 @@ patch_enable () ws2_32-WSACleanup) enable_ws2_32_WSACleanup="$2" ;; - ws2_32-WSAPoll) - enable_ws2_32_WSAPoll="$2" - ;; ws2_32-WriteWatches) enable_ws2_32_WriteWatches="$2" ;; @@ -2030,7 +2026,11 @@ if test "$enable_dsound_EAX" -eq 1; then if test "$enable_dsound_Fast_Mixer" -gt 1; then abort "Patchset dsound-Fast_Mixer disabled, but dsound-EAX depends on that." fi + if test "$enable_dsound_Revert_Cleanup" -gt 1; then + abort "Patchset dsound-Revert_Cleanup disabled, but dsound-EAX depends on that." + fi enable_dsound_Fast_Mixer=1 + enable_dsound_Revert_Cleanup=1 fi if test "$enable_d3dx9_36_AnimationController" -eq 1; then @@ -2961,10 +2961,24 @@ if test "$enable_dsound_Fast_Mixer" -eq 1; then ) >> "$patchlist" fi +# Patchset dsound-Revert_Cleanup +# | +# | Modified files: +# | * dlls/dsound/buffer.c, dlls/dsound/dsound.c, dlls/dsound/dsound_private.h +# | +if test "$enable_dsound_Revert_Cleanup" -eq 1; then + patch_apply dsound-Revert_Cleanup/0001-Revert-dsound-Use-a-better-name-for-IDirectSoundBuff.patch + patch_apply dsound-Revert_Cleanup/0002-Revert-dsound-Simplify-error-handling-when-creating-.patch + ( + echo '+ { "Sebastian Lackner", "Revert \"dsound: Use a better name for IDirectSoundBufferImpl_Create().\".", 1 },'; + echo '+ { "Sebastian Lackner", "Revert \"dsound: Simplify error handling when creating a sound buffer.\".", 1 },'; + ) >> "$patchlist" +fi + # Patchset dsound-EAX # | # | This patchset has the following (direct or indirect) dependencies: -# | * dsound-Fast_Mixer +# | * dsound-Fast_Mixer, dsound-Revert_Cleanup # | # | Modified files: # | * dlls/dsound/Makefile.in, dlls/dsound/buffer.c, dlls/dsound/dsound.c, dlls/dsound/dsound_eax.h, @@ -5494,21 +5508,6 @@ if test "$enable_shlwapi_UrlCombine" -eq 1; then ) >> "$patchlist" fi -# Patchset tdi.sys-Stub_Driver -# | -# | This patchset fixes the following Wine bugs: -# | * [#35693] Add a stub driver for tdi.sys -# | -# | Modified files: -# | * configure.ac, dlls/tdi.sys/Makefile.in, dlls/tdi.sys/main.c, dlls/tdi.sys/tdi.sys.spec, loader/wine.inf.in -# | -if test "$enable_tdi_sys_Stub_Driver" -eq 1; then - patch_apply tdi.sys-Stub_Driver/0001-tdi.sys-add-a-stub-dll-try-3.patch - ( - echo '+ { "Austin English", "tdi.sys: Add a stub dll.", 3 },'; - ) >> "$patchlist" -fi - # Patchset user32-DeferWindowPos # | # | This patchset fixes the following Wine bugs: @@ -6745,23 +6744,6 @@ if test "$enable_ws2_32_WSACleanup" -eq 1; then ) >> "$patchlist" fi -# Patchset ws2_32-WSAPoll -# | -# | This patchset fixes the following Wine bugs: -# | * [#38601] Support for ws2_32.dll.WSAPoll -# | -# | Modified files: -# | * dlls/ws2_32/socket.c, dlls/ws2_32/tests/sock.c, dlls/ws2_32/ws2_32.spec, include/winsock2.h -# | -if test "$enable_ws2_32_WSAPoll" -eq 1; then - patch_apply ws2_32-WSAPoll/0001-include-Remove-check-for-__WINE_WNE_PORT_H-in-winsoc.patch - patch_apply ws2_32-WSAPoll/0002-ws2_32-Add-WSAPoll-implementation.patch - ( - echo '+ { "Sebastian Lackner", "include: Remove check for __WINE_WNE_PORT_H in winsock2.h.", 1 },'; - echo '+ { "Bruno Jesus", "ws2_32: Add WSAPoll() implementation.", 1 },'; - ) >> "$patchlist" -fi - # Patchset ws2_32-getaddrinfo # | # | Modified files: diff --git a/patches/tdi.sys-Stub_Driver/0001-tdi.sys-add-a-stub-dll-try-3.patch b/patches/tdi.sys-Stub_Driver/0001-tdi.sys-add-a-stub-dll-try-3.patch deleted file mode 100644 index b576fc28..00000000 --- a/patches/tdi.sys-Stub_Driver/0001-tdi.sys-add-a-stub-dll-try-3.patch +++ /dev/null @@ -1,169 +0,0 @@ -From d65fcbf168bd3c3bfa6729040e83575139be008e Mon Sep 17 00:00:00 2001 -From: Austin English -Date: Mon, 16 Nov 2015 19:24:21 -0600 -Subject: tdi.sys: add a stub dll (try 3) - -Signed-off-by: Austin English ---- - configure.ac | 1 + - dlls/tdi.sys/Makefile.in | 5 +++++ - dlls/tdi.sys/main.c | 38 ++++++++++++++++++++++++++++++++ - dlls/tdi.sys/tdi.sys.spec | 56 +++++++++++++++++++++++++++++++++++++++++++++++ - loader/wine.inf.in | 2 ++ - 5 files changed, 102 insertions(+) - create mode 100644 dlls/tdi.sys/Makefile.in - create mode 100644 dlls/tdi.sys/main.c - create mode 100644 dlls/tdi.sys/tdi.sys.spec - -diff --git a/configure.ac b/configure.ac -index 2d2a168..38ffab4 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -3224,6 +3224,7 @@ WINE_CONFIG_DLL(t2embed) - WINE_CONFIG_DLL(tapi32,,[implib]) - WINE_CONFIG_DLL(taskschd,,[clean]) - WINE_CONFIG_TEST(dlls/taskschd/tests) -+WINE_CONFIG_DLL(tdi.sys) - WINE_CONFIG_DLL(toolhelp.dll16,enable_win16) - WINE_CONFIG_DLL(traffic) - WINE_CONFIG_DLL(twain.dll16,enable_win16) -diff --git a/dlls/tdi.sys/Makefile.in b/dlls/tdi.sys/Makefile.in -new file mode 100644 -index 0000000..1b5f5f3 ---- /dev/null -+++ b/dlls/tdi.sys/Makefile.in -@@ -0,0 +1,5 @@ -+MODULE = tdi.sys -+EXTRADLLFLAGS = -Wb,--subsystem,native -+ -+C_SRCS = \ -+ main.c -diff --git a/dlls/tdi.sys/main.c b/dlls/tdi.sys/main.c -new file mode 100644 -index 0000000..d9fbcb1 ---- /dev/null -+++ b/dlls/tdi.sys/main.c -@@ -0,0 +1,38 @@ -+/* -+ * tdi.sys -+ * -+ * Copyright 2015 Austin English -+ * -+ * This library is free software; you can redistribute it and/or -+ * modify it under the terms of the GNU Lesser General Public -+ * License as published by the Free Software Foundation; either -+ * version 2.1 of the License, or (at your option) any later version. -+ * -+ * This library is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ * Lesser General Public License for more details. -+ * -+ * You should have received a copy of the GNU Lesser General Public -+ * License along with this library; if not, write to the Free Software -+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA -+ */ -+ -+#include -+ -+#include "ntstatus.h" -+#define WIN32_NO_STATUS -+#include "windef.h" -+#include "winbase.h" -+#include "winternl.h" -+#include "ddk/wdm.h" -+#include "wine/debug.h" -+ -+WINE_DEFAULT_DEBUG_CHANNEL(tdi); -+ -+NTSTATUS WINAPI DriverEntry( DRIVER_OBJECT *driver, UNICODE_STRING *path ) -+{ -+ TRACE( "(%p, %s)\n", driver, debugstr_w(path->Buffer) ); -+ -+ return STATUS_SUCCESS; -+} -diff --git a/dlls/tdi.sys/tdi.sys.spec b/dlls/tdi.sys/tdi.sys.spec -new file mode 100644 -index 0000000..9e3d2e4 ---- /dev/null -+++ b/dlls/tdi.sys/tdi.sys.spec -@@ -0,0 +1,56 @@ -+@ stub CTEAllocateString -+@ stub CTEBlock -+@ stub CTEBlockWithTracker -+@ stub CTEInitEvent -+@ stub CTEInitString -+@ stub CTEInitTimer -+@ stub CTEInitialize -+@ stub CTEInsertBlockTracker -+@ stub CTELogEvent -+@ stub CTERemoveBlockTracker -+@ stub CTEScheduleCriticalEvent -+@ stub CTEScheduleDelayedEvent -+@ stub CTEScheduleEvent -+@ stub CTESignal -+@ stub CTEStartTimer -+@ stub CTESystemUpTime -+@ stub DllInitialize -+@ stub DllUnload -+@ stub TdiBuildNetbiosAddress -+@ stub TdiBuildNetbiosAddressEa -+@ stub TdiCopyBufferToMdl -+@ stub TdiCopyBufferToMdlWithReservedMappingAtDpcLevel -+@ stub TdiCopyMdlChainToMdlChain -+@ stub TdiCopyMdlToBuffer -+@ stub TdiDefaultChainedRcvDatagramHandler -+@ stub TdiDefaultChainedRcvExpeditedHandler -+@ stub TdiDefaultChainedReceiveHandler -+@ stub TdiDefaultConnectHandler -+@ stub TdiDefaultDisconnectHandler -+@ stub TdiDefaultErrorHandler -+@ stub TdiDefaultRcvDatagramHandler -+@ stub TdiDefaultRcvExpeditedHandler -+@ stub TdiDefaultReceiveHandler -+@ stub TdiDefaultSendPossibleHandler -+@ stub TdiDeregisterAddressChangeHandler -+@ stub TdiDeregisterDeviceObject -+@ stub TdiDeregisterNetAddress -+@ stub TdiDeregisterNotificationHandler -+@ stub TdiDeregisterPnPHandlers -+@ stub TdiDeregisterProvider -+@ stub TdiEnumerateAddresses -+@ stub TdiGet9FTriageBlock -+@ stub TdiInitialize -+@ stub TdiMapUserRequest -+@ stub TdiMatchPdoWithChainedReceiveContext -+@ stub TdiOpenNetbiosAddress -+@ stub TdiPnPPowerComplete -+@ stub TdiPnPPowerRequest -+@ stub TdiProviderReady -+@ stub TdiRegisterAddressChangeHandler -+@ stub TdiRegisterDeviceObject -+@ stub TdiRegisterNetAddress -+@ stub TdiRegisterNotificationHandler -+@ stub TdiRegisterPnPHandlers -+@ stub TdiRegisterProvider -+@ stub TdiReturnChainedReceives -diff --git a/loader/wine.inf.in b/loader/wine.inf.in -index c8de5f9..4fed21f 100644 ---- a/loader/wine.inf.in -+++ b/loader/wine.inf.in -@@ -2512,6 +2512,7 @@ HKLM,%CurrentVersion%\Telephony\Country List\998,"SameAreaRule",,"G" - 12,,fltmgr.sys,- - 12,,mountmgr.sys,- - 12,,ndis.sys,- -+12,,tdi.sys,- - ; skip .NET fake dlls in Wine Mono package - 11,,aspnet_regiis.exe,- - 11,,ngen.exe,- -@@ -2552,6 +2553,7 @@ HKLM,%CurrentVersion%\Telephony\Country List\998,"SameAreaRule",,"G" - 12,,fltmgr.sys - 12,,mountmgr.sys - 12,,ndis.sys -+12,,tdi.sys - ; skip .NET fake dlls in Wine Mono package - 11,,aspnet_regiis.exe,- - 11,,ngen.exe,- --- -2.6.2 - diff --git a/patches/tdi.sys-Stub_Driver/definition b/patches/tdi.sys-Stub_Driver/definition deleted file mode 100644 index 799253a3..00000000 --- a/patches/tdi.sys-Stub_Driver/definition +++ /dev/null @@ -1 +0,0 @@ -Fixes: [35693] Add a stub driver for tdi.sys diff --git a/patches/ws2_32-WSAPoll/0001-include-Remove-check-for-__WINE_WNE_PORT_H-in-winsoc.patch b/patches/ws2_32-WSAPoll/0001-include-Remove-check-for-__WINE_WNE_PORT_H-in-winsoc.patch deleted file mode 100644 index 965480a6..00000000 --- a/patches/ws2_32-WSAPoll/0001-include-Remove-check-for-__WINE_WNE_PORT_H-in-winsoc.patch +++ /dev/null @@ -1,32 +0,0 @@ -From 168d4c1da4c5b7ce71eb2d07bb3369f2c0ad5df7 Mon Sep 17 00:00:00 2001 -From: Sebastian Lackner -Date: Thu, 5 Nov 2015 17:56:24 +0100 -Subject: include: Remove check for __WINE_WNE_PORT_H in winsock2.h. - ---- - include/winsock2.h | 2 -- - 1 file changed, 2 deletions(-) - -diff --git a/include/winsock2.h b/include/winsock2.h -index 461b90c..212352c 100644 ---- a/include/winsock2.h -+++ b/include/winsock2.h -@@ -113,7 +113,6 @@ extern "C" { - #define SD_BOTH 0x02 - - /* Constants for WSAPoll() */ --#ifndef __WINE_WINE_PORT_H - #ifndef USE_WS_PREFIX - #define POLLERR 0x0001 - #define POLLHUP 0x0002 -@@ -137,7 +136,6 @@ extern "C" { - #define WS_POLLIN (WS_POLLRDNORM|WS_POLLRDBAND) - #define WS_POLLOUT (WS_POLLWRNORM) - #endif --#endif - - /* Constants for WSAIoctl() */ - #ifdef USE_WS_PREFIX --- -2.6.2 - diff --git a/patches/ws2_32-WSAPoll/0002-ws2_32-Add-WSAPoll-implementation.patch b/patches/ws2_32-WSAPoll/0002-ws2_32-Add-WSAPoll-implementation.patch deleted file mode 100644 index a215ef9f..00000000 --- a/patches/ws2_32-WSAPoll/0002-ws2_32-Add-WSAPoll-implementation.patch +++ /dev/null @@ -1,182 +0,0 @@ -From 43a7c89c8b133520b7ca998821f8b3039216e9ac Mon Sep 17 00:00:00 2001 -From: Bruno Jesus <00cpxxx@gmail.com> -Date: Fri, 22 May 2015 22:43:11 -0300 -Subject: ws2_32: Add WSAPoll() implementation - -Still some todos to fix but fixes https://bugs.winehq.org/show_bug.cgi?id=38600 ---- - dlls/ws2_32/socket.c | 94 ++++++++++++++++++++++++++++++++++++++++++++++++ - dlls/ws2_32/tests/sock.c | 4 +++ - dlls/ws2_32/ws2_32.spec | 1 + - 3 files changed, 99 insertions(+) - -diff --git a/dlls/ws2_32/socket.c b/dlls/ws2_32/socket.c -index fdf68a3..68e6d54 100644 ---- a/dlls/ws2_32/socket.c -+++ b/dlls/ws2_32/socket.c -@@ -740,6 +740,17 @@ static const int ws_eai_map[][2] = - { 0, 0 } - }; - -+static const int ws_poll_map[][2] = -+{ -+ MAP_OPTION( POLLERR ), -+ MAP_OPTION( POLLHUP ), -+ MAP_OPTION( POLLNVAL ), -+ MAP_OPTION( POLLWRNORM ), -+ MAP_OPTION( POLLWRBAND ), -+ MAP_OPTION( POLLRDNORM ), -+ { WS_POLLRDBAND, POLLPRI } -+}; -+ - static const char magic_loopback_addr[] = {127, 12, 34, 56}; - - #ifndef HAVE_STRUCT_MSGHDR_MSG_ACCRIGHTS -@@ -1374,6 +1385,40 @@ convert_socktype_u2w(int unixsocktype) { - return -1; - } - -+static int convert_poll_w2u(int events) -+{ -+ int i, ret; -+ for (i = ret = 0; events && i < sizeof(ws_poll_map) / sizeof(ws_poll_map[0]); i++) -+ { -+ if (ws_poll_map[i][0] & events) -+ { -+ ret |= ws_poll_map[i][1]; -+ events &= ~ws_poll_map[i][0]; -+ } -+ } -+ -+ if (events) -+ FIXME("Unsupported WSAPoll() flags 0x%x\n", events); -+ return ret; -+} -+ -+static int convert_poll_u2w(int events) -+{ -+ int i, ret; -+ for (i = ret = 0; events && i < sizeof(ws_poll_map) / sizeof(ws_poll_map[0]); i++) -+ { -+ if (ws_poll_map[i][1] & events) -+ { -+ ret |= ws_poll_map[i][0]; -+ events &= ~ws_poll_map[i][1]; -+ } -+ } -+ -+ if (events) -+ FIXME("Unsupported poll() flags 0x%x\n", events); -+ return ret; -+} -+ - static int set_ipx_packettype(int sock, int ptype) - { - #ifdef HAS_IPX -@@ -4886,6 +4931,55 @@ int WINAPI WS_select(int nfds, WS_fd_set *ws_readfds, - return ret; - } - -+/*********************************************************************** -+ * WSAPoll -+ */ -+int WINAPI WSAPoll(WSAPOLLFD *wfds, ULONG count, int timeout) -+{ -+ int i, ret; -+ struct pollfd *ufds; -+ -+ if (!count) -+ { -+ SetLastError(WSAEINVAL); -+ return SOCKET_ERROR; -+ } -+ if (!wfds) -+ { -+ SetLastError(WSAEFAULT); -+ return SOCKET_ERROR; -+ } -+ -+ if (!(ufds = HeapAlloc(GetProcessHeap(), 0, count * sizeof(ufds[0])))) -+ { -+ SetLastError(WSAENOBUFS); -+ return SOCKET_ERROR; -+ } -+ -+ for (i = 0; i < count; i++) -+ { -+ ufds[i].fd = get_sock_fd(wfds[i].fd, 0, NULL); -+ ufds[i].events = convert_poll_w2u(wfds[i].events); -+ ufds[i].revents = 0; -+ } -+ -+ ret = do_poll(ufds, count, timeout); -+ -+ for (i = 0; i < count; i++) -+ { -+ if (ufds[i].fd != -1) -+ { -+ release_sock_fd(wfds[i].fd, ufds[i].fd); -+ wfds[i].revents = convert_poll_u2w(ufds[i].revents); -+ } -+ else -+ wfds[i].revents = WS_POLLNVAL; -+ } -+ -+ HeapFree(GetProcessHeap(), 0, ufds); -+ return ret; -+} -+ - /* helper to send completion messages for client-only i/o operation case */ - static void WS_AddCompletion( SOCKET sock, ULONG_PTR CompletionValue, NTSTATUS CompletionStatus, - ULONG Information ) -diff --git a/dlls/ws2_32/tests/sock.c b/dlls/ws2_32/tests/sock.c -index 3d584f2..1ed1aba 100644 ---- a/dlls/ws2_32/tests/sock.c -+++ b/dlls/ws2_32/tests/sock.c -@@ -6426,6 +6426,7 @@ static void test_WSAPoll(void) - POLL_SET(fdWrite, POLLIN); - ret = pWSAPoll(fds, ix, poll_timeout); - ok(ret == 1, "expected 1, got %d\n", ret); -+todo_wine - ok(POLL_ISSET(fdWrite, POLLHUP), "fdWrite socket events incorrect\n"); - ret = recv(fdWrite, tmp_buf, sizeof(tmp_buf), 0); - ok(ret == 0, "expected 0, got %d\n", ret); -@@ -6444,6 +6445,7 @@ static void test_WSAPoll(void) - POLL_SET(fdWrite, POLLIN | POLLOUT); - poll_timeout = 2000; - ret = pWSAPoll(fds, ix, poll_timeout); -+todo_wine - ok(ret == 0, "expected 0, got %d\n", ret); - len = sizeof(id); - id = 0xdeadbeef; -@@ -6465,6 +6467,7 @@ static void test_WSAPoll(void) - POLL_SET(fdWrite, POLLIN | POLLOUT); - ret = pWSAPoll(fds, ix, poll_timeout); - ok(ret == 1, "expected 1, got %d\n", ret); -+todo_wine - ok(POLL_ISSET(fdWrite, POLLWRNORM | POLLHUP) || broken(POLL_ISSET(fdWrite, POLLWRNORM)) /* <= 2008 */, - "fdWrite socket events incorrect\n"); - closesocket(fdWrite); -@@ -6488,6 +6491,7 @@ static void test_WSAPoll(void) - POLL_SET(fdWrite, POLLIN); - ret = pWSAPoll(fds, ix, poll_timeout); - ok(ret == 1, "expected 1, got %d\n", ret); -+todo_wine - ok(POLL_ISSET(fdWrite, POLLNVAL), "fdWrite socket events incorrect\n"); - WaitForSingleObject (thread_handle, 1000); - closesocket(fdRead); -diff --git a/dlls/ws2_32/ws2_32.spec b/dlls/ws2_32/ws2_32.spec -index f7c6c2d..a4e0b6b 100644 ---- a/dlls/ws2_32/ws2_32.spec -+++ b/dlls/ws2_32/ws2_32.spec -@@ -89,6 +89,7 @@ - @ stdcall WSANSPIoctl(ptr long ptr long ptr long ptr ptr) - @ stdcall WSANtohl(long long ptr) - @ stdcall WSANtohs(long long ptr) -+@ stdcall WSAPoll(ptr long long) - @ stdcall WSAProviderConfigChange(ptr ptr ptr) - @ stdcall WSARecv(long ptr long ptr ptr ptr ptr) - @ stdcall WSARecvDisconnect(long ptr) --- -2.4.1 - diff --git a/patches/ws2_32-WSAPoll/definition b/patches/ws2_32-WSAPoll/definition deleted file mode 100644 index 5d0bbdcf..00000000 --- a/patches/ws2_32-WSAPoll/definition +++ /dev/null @@ -1 +0,0 @@ -Fixes: [38601] Support for ws2_32.dll.WSAPoll diff --git a/staging/changelog b/staging/changelog index 0441d2d0..011f6f80 100644 --- a/staging/changelog +++ b/staging/changelog @@ -1,3 +1,9 @@ +wine-staging (1.9.0) UNRELEASED; urgency=low + * Removed patch to add a stub driver for tdi.sys (accepted upstream). + * Removed patch to implement support for ws2_32.dll.WSAPoll (accepted + upstream). + -- Sebastian Lackner Wed, 23 Dec 2015 03:11:26 +0100 + wine-staging (1.8) unstable; urgency=low * Update nvencodeapi wrapper patchset to version 6.0 and fix Debian compatibility.