mirror of
https://gitlab.winehq.org/wine/wine-staging.git
synced 2024-09-13 09:17:20 -07:00
Rebase against 35eebeef0fe0b3f03f44731f805c447b2342acfd.
This commit is contained in:
parent
81ee7ad18a
commit
e3c64796cd
@ -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\<UserSID> 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
|
||||
|
@ -1,2 +1,3 @@
|
||||
Fixes: Software support for Environmental Audio Extensions (EAX)
|
||||
Depends: dsound-Fast_Mixer
|
||||
Depends: dsound-Revert_Cleanup
|
||||
|
@ -0,0 +1,106 @@
|
||||
From 462599cf79d964c6add1a7250f654d2e3110c4d2 Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Lackner <sebastian@fds-team.de>
|
||||
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
|
||||
|
@ -0,0 +1,116 @@
|
||||
From 974a901f92d5197d3db6356df454bdd47dea39da Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Lackner <sebastian@fds-team.de>
|
||||
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
|
||||
|
@ -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:
|
||||
|
@ -1,169 +0,0 @@
|
||||
From d65fcbf168bd3c3bfa6729040e83575139be008e Mon Sep 17 00:00:00 2001
|
||||
From: Austin English <austinenglish@gmail.com>
|
||||
Date: Mon, 16 Nov 2015 19:24:21 -0600
|
||||
Subject: tdi.sys: add a stub dll (try 3)
|
||||
|
||||
Signed-off-by: Austin English <austinenglish@gmail.com>
|
||||
---
|
||||
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 <stdarg.h>
|
||||
+
|
||||
+#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
|
||||
|
@ -1 +0,0 @@
|
||||
Fixes: [35693] Add a stub driver for tdi.sys
|
@ -1,32 +0,0 @@
|
||||
From 168d4c1da4c5b7ce71eb2d07bb3369f2c0ad5df7 Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Lackner <sebastian@fds-team.de>
|
||||
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
|
||||
|
@ -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
|
||||
|
@ -1 +0,0 @@
|
||||
Fixes: [38601] Support for ws2_32.dll.WSAPoll
|
@ -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 <sebastian@fds-team.de> 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.
|
||||
|
Loading…
Reference in New Issue
Block a user