You've already forked wine-staging
mirror of
https://gitlab.winehq.org/wine/wine-staging.git
synced 2025-04-13 14:42:51 -07:00
Compare commits
41 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
e7778c5622 | ||
|
b8df58d714 | ||
|
7307a7ea4f | ||
|
7ca3f2b608 | ||
|
5989fb0938 | ||
|
3f111101a8 | ||
|
857c2fcfe2 | ||
|
f901f130fd | ||
|
ba40b415b7 | ||
|
94f533c0ad | ||
|
4d1dd4c62a | ||
|
2b1f2e8578 | ||
|
4b1b7f77bc | ||
|
c779a2acbe | ||
|
97fec39e47 | ||
|
cbd440689d | ||
|
5125d3edeb | ||
|
6455c8e654 | ||
|
b1b5d6c670 | ||
|
6a8aacda4c | ||
|
f788007dc4 | ||
|
31baacffe2 | ||
|
bd3563bdf1 | ||
|
372c0be9d9 | ||
|
245467db83 | ||
|
f902de09d5 | ||
|
17b81919fa | ||
|
a3e5cd8f58 | ||
|
a0cb1797f4 | ||
|
970dc74e89 | ||
|
867c8334a1 | ||
|
cf457f4e1c | ||
|
fc6aa583cf | ||
|
ed54d227d8 | ||
|
f5734d67c8 | ||
|
8aa5c2acd0 | ||
|
d8862cbbfd | ||
|
0792e994bd | ||
|
09e1b75334 | ||
|
004c3abe40 | ||
|
270b4f702b |
@@ -1,4 +1,4 @@
|
||||
From 71e593294e868bafa0b0b45c2694d7c0dceb0d64 Mon Sep 17 00:00:00 2001
|
||||
From 23e0f029f1cc37d5d33bb39d5277371827b701aa Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Lackner <sebastian@fds-team.de>
|
||||
Date: Tue, 22 Mar 2016 21:54:48 +0100
|
||||
Subject: d3d11: Avoid implicit cast of interface pointer.
|
||||
@@ -8,16 +8,18 @@ Subject: d3d11: Avoid implicit cast of interface pointer.
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/dlls/d3d11/view.c b/dlls/d3d11/view.c
|
||||
index 1d9b766..78fc1ad 100644
|
||||
index 5e48965..70eae5e 100644
|
||||
--- a/dlls/d3d11/view.c
|
||||
+++ b/dlls/d3d11/view.c
|
||||
@@ -1559,5 +1559,5 @@ struct d3d_shader_resource_view *unsafe_impl_from_ID3D10ShaderResourceView(ID3D1
|
||||
@@ -2191,7 +2191,7 @@ struct d3d_shader_resource_view *unsafe_impl_from_ID3D10ShaderResourceView(ID3D1
|
||||
if (!iface)
|
||||
return NULL;
|
||||
assert(iface->lpVtbl == (ID3D10ShaderResourceViewVtbl *)&d3d10_shader_resource_view_vtbl);
|
||||
- return CONTAINING_RECORD(iface, struct d3d_shader_resource_view, ID3D10ShaderResourceView1_iface);
|
||||
+ return CONTAINING_RECORD((ID3D10ShaderResourceView1 *)iface, struct d3d_shader_resource_view, ID3D10ShaderResourceView1_iface);
|
||||
}
|
||||
|
||||
/* ID3D11UnorderedAccessView methods */
|
||||
--
|
||||
2.7.1
|
||||
2.8.0
|
||||
|
||||
|
@@ -0,0 +1,70 @@
|
||||
From a9daa20013ed733317fb0c8680c13549a0595d02 Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Lackner <sebastian@fds-team.de>
|
||||
Date: Tue, 5 Jul 2016 21:42:23 +0200
|
||||
Subject: d3d10_1: Add missing forwards to d3d10.
|
||||
|
||||
Spotted by Jarkko Korpi.
|
||||
---
|
||||
dlls/d3d10_1/d3d10_1.spec | 24 ++++++++++++------------
|
||||
tools/make_specfiles | 4 ++++
|
||||
2 files changed, 16 insertions(+), 12 deletions(-)
|
||||
|
||||
diff --git a/dlls/d3d10_1/d3d10_1.spec b/dlls/d3d10_1/d3d10_1.spec
|
||||
index 18eb3ac..10edc3f 100644
|
||||
--- a/dlls/d3d10_1/d3d10_1.spec
|
||||
+++ b/dlls/d3d10_1/d3d10_1.spec
|
||||
@@ -1,24 +1,24 @@
|
||||
@ stub RevertToOldImplementation
|
||||
-@ stub D3D10CompileEffectFromMemory
|
||||
-@ stub D3D10CompileShader
|
||||
-@ stub D3D10CreateBlob
|
||||
+@ stdcall D3D10CompileEffectFromMemory(ptr long ptr ptr ptr long long ptr ptr) d3d10.D3D10CompileEffectFromMemory
|
||||
+@ stdcall D3D10CompileShader(ptr long str ptr ptr str str long ptr ptr) d3d10.D3D10CompileShader
|
||||
+@ stdcall D3D10CreateBlob(long ptr) d3d10.D3D10CreateBlob
|
||||
@ stdcall D3D10CreateDevice1(ptr long ptr long long long ptr)
|
||||
@ stdcall D3D10CreateDeviceAndSwapChain1(ptr long ptr long long long ptr ptr ptr)
|
||||
@ stdcall D3D10CreateEffectFromMemory(ptr long long ptr ptr ptr) d3d10.D3D10CreateEffectFromMemory
|
||||
@ stdcall D3D10CreateEffectPoolFromMemory(ptr long long ptr ptr) d3d10.D3D10CreateEffectPoolFromMemory
|
||||
@ stdcall D3D10CreateStateBlock(ptr ptr ptr) d3d10.D3D10CreateStateBlock
|
||||
@ stub D3D10DisassembleEffect
|
||||
-@ stub D3D10DisassembleShader
|
||||
-@ stub D3D10GetGeometryShaderProfile
|
||||
-@ stub D3D10GetInputAndOutputSignatureBlob
|
||||
-@ stub D3D10GetInputSignatureBlob
|
||||
-@ stub D3D10GetOutputSignatureBlob
|
||||
-@ stub D3D10GetPixelShaderProfile
|
||||
-@ stub D3D10GetShaderDebugInfo
|
||||
+@ stdcall D3D10DisassembleShader(ptr long long ptr ptr) d3d10.D3D10DisassembleShader
|
||||
+@ stdcall D3D10GetGeometryShaderProfile(ptr) d3d10.D3D10GetGeometryShaderProfile
|
||||
+@ stdcall D3D10GetInputAndOutputSignatureBlob(ptr long ptr) d3d10.D3D10GetInputAndOutputSignatureBlob
|
||||
+@ stdcall D3D10GetInputSignatureBlob(ptr long ptr) d3d10.D3D10GetInputSignatureBlob
|
||||
+@ stdcall D3D10GetOutputSignatureBlob(ptr long ptr) d3d10.D3D10GetOutputSignatureBlob
|
||||
+@ stdcall D3D10GetPixelShaderProfile(ptr) d3d10.D3D10GetPixelShaderProfile
|
||||
+@ stdcall D3D10GetShaderDebugInfo(ptr long ptr) d3d10.D3D10GetShaderDebugInfo
|
||||
@ stub D3D10GetVersion
|
||||
-@ stub D3D10GetVertexShaderProfile
|
||||
+@ stdcall D3D10GetVertexShaderProfile(ptr) d3d10.D3D10GetVertexShaderProfile
|
||||
@ stub D3D10PreprocessShader
|
||||
-@ stub D3D10ReflectShader
|
||||
+@ stdcall D3D10ReflectShader(ptr long ptr) d3d10.D3D10ReflectShader
|
||||
@ stub D3D10RegisterLayers
|
||||
@ stdcall D3D10StateBlockMaskDifference(ptr ptr ptr) d3d10.D3D10StateBlockMaskDifference
|
||||
@ stdcall D3D10StateBlockMaskDisableAll(ptr) d3d10.D3D10StateBlockMaskDisableAll
|
||||
diff --git a/tools/make_specfiles b/tools/make_specfiles
|
||||
index 85d39d8..e36685d 100755
|
||||
--- a/tools/make_specfiles
|
||||
+++ b/tools/make_specfiles
|
||||
@@ -73,6 +73,10 @@ my @dll_groups =
|
||||
"msvcp120_app",
|
||||
],
|
||||
[
|
||||
+ "d3d10",
|
||||
+ "d3d10_1",
|
||||
+ ],
|
||||
+ [
|
||||
"d3dx10_43",
|
||||
"d3dx10_42",
|
||||
"d3dx10_41",
|
||||
--
|
||||
2.8.0
|
||||
|
@@ -1,4 +1,4 @@
|
||||
From d1229f450e5b7f7cdda6654010c520dc79f7951a Mon Sep 17 00:00:00 2001
|
||||
From 4008ff706b5b5358e02e7a092085701ad4d286ec Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Lackner <sebastian@fds-team.de>
|
||||
Date: Sat, 14 Mar 2015 04:48:38 +0100
|
||||
Subject: d3dx9_*: Adjust ID3DXEffect interface based on DLL version.
|
||||
@@ -14,10 +14,19 @@ Subject: d3dx9_*: Adjust ID3DXEffect interface based on DLL version.
|
||||
dlls/d3dx9_31/Makefile.in | 1 +
|
||||
dlls/d3dx9_32/Makefile.in | 1 +
|
||||
dlls/d3dx9_33/Makefile.in | 1 +
|
||||
dlls/d3dx9_34/Makefile.in | 1 +
|
||||
dlls/d3dx9_35/Makefile.in | 1 +
|
||||
dlls/d3dx9_36/Makefile.in | 1 +
|
||||
dlls/d3dx9_36/effect.c | 8 ++++++++
|
||||
dlls/d3dx9_37/Makefile.in | 1 +
|
||||
dlls/d3dx9_38/Makefile.in | 1 +
|
||||
dlls/d3dx9_39/Makefile.in | 1 +
|
||||
dlls/d3dx9_40/Makefile.in | 1 +
|
||||
dlls/d3dx9_41/Makefile.in | 1 +
|
||||
dlls/d3dx9_42/Makefile.in | 1 +
|
||||
dlls/d3dx9_43/Makefile.in | 1 +
|
||||
include/d3dx9effect.h | 12 ++++++++++++
|
||||
13 files changed, 31 insertions(+)
|
||||
22 files changed, 40 insertions(+)
|
||||
|
||||
diff --git a/dlls/d3dx9_24/Makefile.in b/dlls/d3dx9_24/Makefile.in
|
||||
index 71dee7f..7464bd1 100644
|
||||
@@ -128,6 +137,28 @@ index 44bd991..c9b6587 100644
|
||||
+EXTRADEFS = -D_D3DX9_VER=33
|
||||
PARENTSRC = ../d3dx9_36
|
||||
|
||||
C_SRCS = \
|
||||
diff --git a/dlls/d3dx9_34/Makefile.in b/dlls/d3dx9_34/Makefile.in
|
||||
index 4ba14c2..822f621 100644
|
||||
--- a/dlls/d3dx9_34/Makefile.in
|
||||
+++ b/dlls/d3dx9_34/Makefile.in
|
||||
@@ -1,5 +1,6 @@
|
||||
MODULE = d3dx9_34.dll
|
||||
IMPORTS = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32
|
||||
+EXTRADEFS = -D_D3DX9_VER=34
|
||||
PARENTSRC = ../d3dx9_36
|
||||
|
||||
C_SRCS = \
|
||||
diff --git a/dlls/d3dx9_35/Makefile.in b/dlls/d3dx9_35/Makefile.in
|
||||
index ee527d5..3c8df66 100644
|
||||
--- a/dlls/d3dx9_35/Makefile.in
|
||||
+++ b/dlls/d3dx9_35/Makefile.in
|
||||
@@ -1,5 +1,6 @@
|
||||
MODULE = d3dx9_35.dll
|
||||
IMPORTS = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32
|
||||
+EXTRADEFS = -D_D3DX9_VER=35
|
||||
PARENTSRC = ../d3dx9_36
|
||||
|
||||
C_SRCS = \
|
||||
diff --git a/dlls/d3dx9_36/Makefile.in b/dlls/d3dx9_36/Makefile.in
|
||||
index 83f7d1c..24ce09d 100644
|
||||
@@ -142,7 +173,7 @@ index 83f7d1c..24ce09d 100644
|
||||
C_SRCS = \
|
||||
animation.c \
|
||||
diff --git a/dlls/d3dx9_36/effect.c b/dlls/d3dx9_36/effect.c
|
||||
index fd8d59e..5b140fe 100644
|
||||
index 42f5aea..5281e8e 100644
|
||||
--- a/dlls/d3dx9_36/effect.c
|
||||
+++ b/dlls/d3dx9_36/effect.c
|
||||
@@ -3888,6 +3888,7 @@ static HRESULT WINAPI ID3DXEffectImpl_ApplyParameterBlock(ID3DXEffect* iface, D3
|
||||
@@ -191,6 +222,83 @@ index fd8d59e..5b140fe 100644
|
||||
};
|
||||
|
||||
static inline struct ID3DXEffectCompilerImpl *impl_from_ID3DXEffectCompiler(ID3DXEffectCompiler *iface)
|
||||
diff --git a/dlls/d3dx9_37/Makefile.in b/dlls/d3dx9_37/Makefile.in
|
||||
index 61528a3..672878f 100644
|
||||
--- a/dlls/d3dx9_37/Makefile.in
|
||||
+++ b/dlls/d3dx9_37/Makefile.in
|
||||
@@ -1,5 +1,6 @@
|
||||
MODULE = d3dx9_37.dll
|
||||
IMPORTS = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32
|
||||
+EXTRADEFS = -D_D3DX9_VER=37
|
||||
PARENTSRC = ../d3dx9_36
|
||||
|
||||
C_SRCS = \
|
||||
diff --git a/dlls/d3dx9_38/Makefile.in b/dlls/d3dx9_38/Makefile.in
|
||||
index cb1507c..0b537c6 100644
|
||||
--- a/dlls/d3dx9_38/Makefile.in
|
||||
+++ b/dlls/d3dx9_38/Makefile.in
|
||||
@@ -1,5 +1,6 @@
|
||||
MODULE = d3dx9_38.dll
|
||||
IMPORTS = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32
|
||||
+EXTRADEFS = -D_D3DX9_VER=38
|
||||
PARENTSRC = ../d3dx9_36
|
||||
|
||||
C_SRCS = \
|
||||
diff --git a/dlls/d3dx9_39/Makefile.in b/dlls/d3dx9_39/Makefile.in
|
||||
index e372816..58d88f7 100644
|
||||
--- a/dlls/d3dx9_39/Makefile.in
|
||||
+++ b/dlls/d3dx9_39/Makefile.in
|
||||
@@ -1,5 +1,6 @@
|
||||
MODULE = d3dx9_39.dll
|
||||
IMPORTS = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32
|
||||
+EXTRADEFS = -D_D3DX9_VER=39
|
||||
PARENTSRC = ../d3dx9_36
|
||||
|
||||
C_SRCS = \
|
||||
diff --git a/dlls/d3dx9_40/Makefile.in b/dlls/d3dx9_40/Makefile.in
|
||||
index b6c4dcd..a4417b5 100644
|
||||
--- a/dlls/d3dx9_40/Makefile.in
|
||||
+++ b/dlls/d3dx9_40/Makefile.in
|
||||
@@ -1,5 +1,6 @@
|
||||
MODULE = d3dx9_40.dll
|
||||
IMPORTS = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32
|
||||
+EXTRADEFS = -D_D3DX9_VER=40
|
||||
PARENTSRC = ../d3dx9_36
|
||||
|
||||
C_SRCS = \
|
||||
diff --git a/dlls/d3dx9_41/Makefile.in b/dlls/d3dx9_41/Makefile.in
|
||||
index 9aa91a9..0463175 100644
|
||||
--- a/dlls/d3dx9_41/Makefile.in
|
||||
+++ b/dlls/d3dx9_41/Makefile.in
|
||||
@@ -1,5 +1,6 @@
|
||||
MODULE = d3dx9_41.dll
|
||||
IMPORTS = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32
|
||||
+EXTRADEFS = -D_D3DX9_VER=41
|
||||
PARENTSRC = ../d3dx9_36
|
||||
|
||||
C_SRCS = \
|
||||
diff --git a/dlls/d3dx9_42/Makefile.in b/dlls/d3dx9_42/Makefile.in
|
||||
index a5cc60e..309324f 100644
|
||||
--- a/dlls/d3dx9_42/Makefile.in
|
||||
+++ b/dlls/d3dx9_42/Makefile.in
|
||||
@@ -1,5 +1,6 @@
|
||||
MODULE = d3dx9_42.dll
|
||||
IMPORTS = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32
|
||||
+EXTRADEFS = -D_D3DX9_VER=42
|
||||
PARENTSRC = ../d3dx9_36
|
||||
|
||||
C_SRCS = \
|
||||
diff --git a/dlls/d3dx9_43/Makefile.in b/dlls/d3dx9_43/Makefile.in
|
||||
index cb78707..9c1a87d 100644
|
||||
--- a/dlls/d3dx9_43/Makefile.in
|
||||
+++ b/dlls/d3dx9_43/Makefile.in
|
||||
@@ -1,5 +1,6 @@
|
||||
MODULE = d3dx9_43.dll
|
||||
IMPORTS = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32
|
||||
+EXTRADEFS = -D_D3DX9_VER=43
|
||||
PARENTSRC = ../d3dx9_36
|
||||
|
||||
C_SRCS = \
|
||||
diff --git a/include/d3dx9effect.h b/include/d3dx9effect.h
|
||||
index 3f527ed..b8259e4 100644
|
||||
--- a/include/d3dx9effect.h
|
||||
|
@@ -1,4 +1,4 @@
|
||||
From 0dd9b5f8cdee5652916ddaa1f1673417229bc15b Mon Sep 17 00:00:00 2001
|
||||
From 20fe06391437e9afaf34014b182df39e9a617e3b Mon Sep 17 00:00:00 2001
|
||||
From: Christian Costa <titan.costa@gmail.com>
|
||||
Date: Wed, 31 Dec 2014 18:45:24 +0100
|
||||
Subject: d3dx9_36: Add stub for D3DXComputeNormalMap.
|
||||
@@ -9,11 +9,11 @@ Subject: d3dx9_36: Add stub for D3DXComputeNormalMap.
|
||||
2 files changed, 13 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/dlls/d3dx9_36/d3dx9_36.spec b/dlls/d3dx9_36/d3dx9_36.spec
|
||||
index 78b2969..4cadb53 100644
|
||||
index 622f2d0..746b8db 100644
|
||||
--- a/dlls/d3dx9_36/d3dx9_36.spec
|
||||
+++ b/dlls/d3dx9_36/d3dx9_36.spec
|
||||
@@ -22,7 +22,7 @@
|
||||
@ stub D3DXComputeIMTFromPerTexelSignal(ptr long ptr long long long long long ptr ptr ptr)
|
||||
@ stub D3DXComputeIMTFromPerVertexSignal(ptr ptr long long long ptr ptr ptr)
|
||||
@ stub D3DXComputeIMTFromSignal(ptr long long long long ptr ptr ptr ptr ptr)
|
||||
@ stub D3DXComputeIMTFromTexture(ptr ptr long long ptr ptr ptr)
|
||||
-@ stub D3DXComputeNormalMap(ptr ptr ptr long long float)
|
||||
|
@@ -1,4 +1,4 @@
|
||||
From 94ca9bf354be47b2fe57689a4a1479d1d53255b2 Mon Sep 17 00:00:00 2001
|
||||
From 499d0a3ccd24ffb60e5fe58dd054b71de1f3121f Mon Sep 17 00:00:00 2001
|
||||
From: Christian Costa <titan.costa@gmail.com>
|
||||
Date: Sat, 1 Nov 2014 13:08:05 +0100
|
||||
Subject: d3dx9_36: Add dxtn support.
|
||||
@@ -14,10 +14,19 @@ Subject: d3dx9_36: Add dxtn support.
|
||||
dlls/d3dx9_31/Makefile.in | 2 +-
|
||||
dlls/d3dx9_32/Makefile.in | 2 +-
|
||||
dlls/d3dx9_33/Makefile.in | 2 +-
|
||||
dlls/d3dx9_34/Makefile.in | 2 +-
|
||||
dlls/d3dx9_35/Makefile.in | 2 +-
|
||||
dlls/d3dx9_36/Makefile.in | 2 +-
|
||||
dlls/d3dx9_36/surface.c | 103 +++++++++++++++++++++++++++++++++++++++---
|
||||
dlls/d3dx9_36/tests/surface.c | 8 ++--
|
||||
13 files changed, 111 insertions(+), 22 deletions(-)
|
||||
dlls/d3dx9_37/Makefile.in | 2 +-
|
||||
dlls/d3dx9_38/Makefile.in | 2 +-
|
||||
dlls/d3dx9_39/Makefile.in | 2 +-
|
||||
dlls/d3dx9_40/Makefile.in | 2 +-
|
||||
dlls/d3dx9_41/Makefile.in | 2 +-
|
||||
dlls/d3dx9_42/Makefile.in | 2 +-
|
||||
dlls/d3dx9_43/Makefile.in | 2 +-
|
||||
22 files changed, 120 insertions(+), 31 deletions(-)
|
||||
|
||||
diff --git a/dlls/d3dx9_24/Makefile.in b/dlls/d3dx9_24/Makefile.in
|
||||
index 7464bd1..bca7d82 100644
|
||||
@@ -129,6 +138,28 @@ index c9b6587..ecf1b15 100644
|
||||
EXTRADEFS = -D_D3DX9_VER=33
|
||||
PARENTSRC = ../d3dx9_36
|
||||
|
||||
diff --git a/dlls/d3dx9_34/Makefile.in b/dlls/d3dx9_34/Makefile.in
|
||||
index 822f621..2dcd721 100644
|
||||
--- a/dlls/d3dx9_34/Makefile.in
|
||||
+++ b/dlls/d3dx9_34/Makefile.in
|
||||
@@ -1,5 +1,5 @@
|
||||
MODULE = d3dx9_34.dll
|
||||
-IMPORTS = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32
|
||||
+IMPORTS = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32 wined3d
|
||||
EXTRADEFS = -D_D3DX9_VER=34
|
||||
PARENTSRC = ../d3dx9_36
|
||||
|
||||
diff --git a/dlls/d3dx9_35/Makefile.in b/dlls/d3dx9_35/Makefile.in
|
||||
index 3c8df66..8c90f16 100644
|
||||
--- a/dlls/d3dx9_35/Makefile.in
|
||||
+++ b/dlls/d3dx9_35/Makefile.in
|
||||
@@ -1,5 +1,5 @@
|
||||
MODULE = d3dx9_35.dll
|
||||
-IMPORTS = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32
|
||||
+IMPORTS = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32 wined3d
|
||||
EXTRADEFS = -D_D3DX9_VER=35
|
||||
PARENTSRC = ../d3dx9_36
|
||||
|
||||
diff --git a/dlls/d3dx9_36/Makefile.in b/dlls/d3dx9_36/Makefile.in
|
||||
index 24ce09d..6b78518 100644
|
||||
--- a/dlls/d3dx9_36/Makefile.in
|
||||
@@ -332,6 +363,83 @@ index f2855e8..2be48df 100644
|
||||
|
||||
check_release((IUnknown*)newsurf, 1);
|
||||
check_release((IUnknown*)tex, 0);
|
||||
diff --git a/dlls/d3dx9_37/Makefile.in b/dlls/d3dx9_37/Makefile.in
|
||||
index 672878f..9eecd32 100644
|
||||
--- a/dlls/d3dx9_37/Makefile.in
|
||||
+++ b/dlls/d3dx9_37/Makefile.in
|
||||
@@ -1,5 +1,5 @@
|
||||
MODULE = d3dx9_37.dll
|
||||
-IMPORTS = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32
|
||||
+IMPORTS = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32 wined3d
|
||||
EXTRADEFS = -D_D3DX9_VER=37
|
||||
PARENTSRC = ../d3dx9_36
|
||||
|
||||
diff --git a/dlls/d3dx9_38/Makefile.in b/dlls/d3dx9_38/Makefile.in
|
||||
index 0b537c6..6bb7bac 100644
|
||||
--- a/dlls/d3dx9_38/Makefile.in
|
||||
+++ b/dlls/d3dx9_38/Makefile.in
|
||||
@@ -1,5 +1,5 @@
|
||||
MODULE = d3dx9_38.dll
|
||||
-IMPORTS = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32
|
||||
+IMPORTS = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32 wined3d
|
||||
EXTRADEFS = -D_D3DX9_VER=38
|
||||
PARENTSRC = ../d3dx9_36
|
||||
|
||||
diff --git a/dlls/d3dx9_39/Makefile.in b/dlls/d3dx9_39/Makefile.in
|
||||
index 58d88f7..5d03e18 100644
|
||||
--- a/dlls/d3dx9_39/Makefile.in
|
||||
+++ b/dlls/d3dx9_39/Makefile.in
|
||||
@@ -1,5 +1,5 @@
|
||||
MODULE = d3dx9_39.dll
|
||||
-IMPORTS = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32
|
||||
+IMPORTS = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32 wined3d
|
||||
EXTRADEFS = -D_D3DX9_VER=39
|
||||
PARENTSRC = ../d3dx9_36
|
||||
|
||||
diff --git a/dlls/d3dx9_40/Makefile.in b/dlls/d3dx9_40/Makefile.in
|
||||
index a4417b5..8982d4e 100644
|
||||
--- a/dlls/d3dx9_40/Makefile.in
|
||||
+++ b/dlls/d3dx9_40/Makefile.in
|
||||
@@ -1,5 +1,5 @@
|
||||
MODULE = d3dx9_40.dll
|
||||
-IMPORTS = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32
|
||||
+IMPORTS = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32 wined3d
|
||||
EXTRADEFS = -D_D3DX9_VER=40
|
||||
PARENTSRC = ../d3dx9_36
|
||||
|
||||
diff --git a/dlls/d3dx9_41/Makefile.in b/dlls/d3dx9_41/Makefile.in
|
||||
index 0463175..e9f3d65 100644
|
||||
--- a/dlls/d3dx9_41/Makefile.in
|
||||
+++ b/dlls/d3dx9_41/Makefile.in
|
||||
@@ -1,5 +1,5 @@
|
||||
MODULE = d3dx9_41.dll
|
||||
-IMPORTS = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32
|
||||
+IMPORTS = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32 wined3d
|
||||
EXTRADEFS = -D_D3DX9_VER=41
|
||||
PARENTSRC = ../d3dx9_36
|
||||
|
||||
diff --git a/dlls/d3dx9_42/Makefile.in b/dlls/d3dx9_42/Makefile.in
|
||||
index 309324f..a55736d 100644
|
||||
--- a/dlls/d3dx9_42/Makefile.in
|
||||
+++ b/dlls/d3dx9_42/Makefile.in
|
||||
@@ -1,5 +1,5 @@
|
||||
MODULE = d3dx9_42.dll
|
||||
-IMPORTS = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32
|
||||
+IMPORTS = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32 wined3d
|
||||
EXTRADEFS = -D_D3DX9_VER=42
|
||||
PARENTSRC = ../d3dx9_36
|
||||
|
||||
diff --git a/dlls/d3dx9_43/Makefile.in b/dlls/d3dx9_43/Makefile.in
|
||||
index 9c1a87d..c2e787c 100644
|
||||
--- a/dlls/d3dx9_43/Makefile.in
|
||||
+++ b/dlls/d3dx9_43/Makefile.in
|
||||
@@ -1,5 +1,5 @@
|
||||
MODULE = d3dx9_43.dll
|
||||
-IMPORTS = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32
|
||||
+IMPORTS = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32 wined3d
|
||||
EXTRADEFS = -D_D3DX9_VER=43
|
||||
PARENTSRC = ../d3dx9_36
|
||||
|
||||
--
|
||||
2.8.0
|
||||
|
||||
|
@@ -1,18 +1,193 @@
|
||||
From 112abf989d718eb45388793f138d115eeda5b921 Mon Sep 17 00:00:00 2001
|
||||
From f6450f50915fa8aa93983cb736015c4eb2d1bf97 Mon Sep 17 00:00:00 2001
|
||||
From: Christian Costa <titan.costa@gmail.com>
|
||||
Date: Sat, 5 Apr 2014 14:02:07 +0200
|
||||
Subject: d3dx9_36: Implement D3DXGetShaderInputSemantics + tests. (rev 3)
|
||||
|
||||
Fixes bug 22682.
|
||||
---
|
||||
dlls/d3dx9_24/d3dx9_24.spec | 2 +-
|
||||
dlls/d3dx9_25/d3dx9_25.spec | 2 +-
|
||||
dlls/d3dx9_26/d3dx9_26.spec | 2 +-
|
||||
dlls/d3dx9_27/d3dx9_27.spec | 2 +-
|
||||
dlls/d3dx9_28/d3dx9_28.spec | 2 +-
|
||||
dlls/d3dx9_29/d3dx9_29.spec | 2 +-
|
||||
dlls/d3dx9_30/d3dx9_30.spec | 2 +-
|
||||
dlls/d3dx9_31/d3dx9_31.spec | 2 +-
|
||||
dlls/d3dx9_32/d3dx9_32.spec | 2 +-
|
||||
dlls/d3dx9_33/d3dx9_33.spec | 2 +-
|
||||
dlls/d3dx9_34/d3dx9_34.spec | 2 +-
|
||||
dlls/d3dx9_35/d3dx9_35.spec | 2 +-
|
||||
dlls/d3dx9_36/d3dx9_36.spec | 2 +-
|
||||
dlls/d3dx9_36/shader.c | 93 ++++++++++++++++++++++++++++++++++++++++++++
|
||||
dlls/d3dx9_36/tests/shader.c | 86 ++++++++++++++++++++++++++++++++++++++++
|
||||
dlls/d3dx9_37/d3dx9_37.spec | 2 +-
|
||||
dlls/d3dx9_38/d3dx9_38.spec | 2 +-
|
||||
dlls/d3dx9_39/d3dx9_39.spec | 2 +-
|
||||
dlls/d3dx9_40/d3dx9_40.spec | 2 +-
|
||||
dlls/d3dx9_41/d3dx9_41.spec | 2 +-
|
||||
dlls/d3dx9_42/d3dx9_42.spec | 2 +-
|
||||
dlls/d3dx9_43/d3dx9_43.spec | 2 +-
|
||||
include/d3dx9shader.h | 1 +
|
||||
4 files changed, 181 insertions(+), 1 deletion(-)
|
||||
23 files changed, 200 insertions(+), 20 deletions(-)
|
||||
|
||||
diff --git a/dlls/d3dx9_24/d3dx9_24.spec b/dlls/d3dx9_24/d3dx9_24.spec
|
||||
index 88ad9af..7e4217d 100644
|
||||
--- a/dlls/d3dx9_24/d3dx9_24.spec
|
||||
+++ b/dlls/d3dx9_24/d3dx9_24.spec
|
||||
@@ -154,7 +154,7 @@
|
||||
@ stdcall D3DXGetImageInfoFromResourceW(long wstr ptr)
|
||||
@ stdcall D3DXGetPixelShaderProfile(ptr)
|
||||
@ stdcall D3DXGetShaderConstantTable(ptr ptr)
|
||||
-@ stub D3DXGetShaderInputSemantics(ptr ptr ptr)
|
||||
+@ stdcall D3DXGetShaderInputSemantics(ptr ptr ptr)
|
||||
@ stub D3DXGetShaderOutputSemantics(ptr ptr ptr)
|
||||
@ stdcall D3DXGetShaderSamplers(ptr ptr ptr)
|
||||
@ stdcall D3DXGetShaderSize(ptr)
|
||||
diff --git a/dlls/d3dx9_25/d3dx9_25.spec b/dlls/d3dx9_25/d3dx9_25.spec
|
||||
index fc64fb4..2c7ae49 100644
|
||||
--- a/dlls/d3dx9_25/d3dx9_25.spec
|
||||
+++ b/dlls/d3dx9_25/d3dx9_25.spec
|
||||
@@ -154,7 +154,7 @@
|
||||
@ stdcall D3DXGetImageInfoFromResourceW(long wstr ptr)
|
||||
@ stdcall D3DXGetPixelShaderProfile(ptr)
|
||||
@ stdcall D3DXGetShaderConstantTable(ptr ptr)
|
||||
-@ stub D3DXGetShaderInputSemantics(ptr ptr ptr)
|
||||
+@ stdcall D3DXGetShaderInputSemantics(ptr ptr ptr)
|
||||
@ stub D3DXGetShaderOutputSemantics(ptr ptr ptr)
|
||||
@ stdcall D3DXGetShaderSamplers(ptr ptr ptr)
|
||||
@ stdcall D3DXGetShaderSize(ptr)
|
||||
diff --git a/dlls/d3dx9_26/d3dx9_26.spec b/dlls/d3dx9_26/d3dx9_26.spec
|
||||
index 5bcf2cc..21b7f3c 100644
|
||||
--- a/dlls/d3dx9_26/d3dx9_26.spec
|
||||
+++ b/dlls/d3dx9_26/d3dx9_26.spec
|
||||
@@ -158,7 +158,7 @@
|
||||
@ stdcall D3DXGetImageInfoFromResourceW(long wstr ptr)
|
||||
@ stdcall D3DXGetPixelShaderProfile(ptr)
|
||||
@ stdcall D3DXGetShaderConstantTable(ptr ptr)
|
||||
-@ stub D3DXGetShaderInputSemantics(ptr ptr ptr)
|
||||
+@ stdcall D3DXGetShaderInputSemantics(ptr ptr ptr)
|
||||
@ stub D3DXGetShaderOutputSemantics(ptr ptr ptr)
|
||||
@ stdcall D3DXGetShaderSamplers(ptr ptr ptr)
|
||||
@ stdcall D3DXGetShaderSize(ptr)
|
||||
diff --git a/dlls/d3dx9_27/d3dx9_27.spec b/dlls/d3dx9_27/d3dx9_27.spec
|
||||
index 5bcf2cc..21b7f3c 100644
|
||||
--- a/dlls/d3dx9_27/d3dx9_27.spec
|
||||
+++ b/dlls/d3dx9_27/d3dx9_27.spec
|
||||
@@ -158,7 +158,7 @@
|
||||
@ stdcall D3DXGetImageInfoFromResourceW(long wstr ptr)
|
||||
@ stdcall D3DXGetPixelShaderProfile(ptr)
|
||||
@ stdcall D3DXGetShaderConstantTable(ptr ptr)
|
||||
-@ stub D3DXGetShaderInputSemantics(ptr ptr ptr)
|
||||
+@ stdcall D3DXGetShaderInputSemantics(ptr ptr ptr)
|
||||
@ stub D3DXGetShaderOutputSemantics(ptr ptr ptr)
|
||||
@ stdcall D3DXGetShaderSamplers(ptr ptr ptr)
|
||||
@ stdcall D3DXGetShaderSize(ptr)
|
||||
diff --git a/dlls/d3dx9_28/d3dx9_28.spec b/dlls/d3dx9_28/d3dx9_28.spec
|
||||
index edb494e..5f630a6 100644
|
||||
--- a/dlls/d3dx9_28/d3dx9_28.spec
|
||||
+++ b/dlls/d3dx9_28/d3dx9_28.spec
|
||||
@@ -158,7 +158,7 @@
|
||||
@ stdcall D3DXGetImageInfoFromResourceW(long wstr ptr)
|
||||
@ stdcall D3DXGetPixelShaderProfile(ptr)
|
||||
@ stdcall D3DXGetShaderConstantTable(ptr ptr)
|
||||
-@ stub D3DXGetShaderInputSemantics(ptr ptr ptr)
|
||||
+@ stdcall D3DXGetShaderInputSemantics(ptr ptr ptr)
|
||||
@ stub D3DXGetShaderOutputSemantics(ptr ptr ptr)
|
||||
@ stdcall D3DXGetShaderSamplers(ptr ptr ptr)
|
||||
@ stdcall D3DXGetShaderSize(ptr)
|
||||
diff --git a/dlls/d3dx9_29/d3dx9_29.spec b/dlls/d3dx9_29/d3dx9_29.spec
|
||||
index edb494e..5f630a6 100644
|
||||
--- a/dlls/d3dx9_29/d3dx9_29.spec
|
||||
+++ b/dlls/d3dx9_29/d3dx9_29.spec
|
||||
@@ -158,7 +158,7 @@
|
||||
@ stdcall D3DXGetImageInfoFromResourceW(long wstr ptr)
|
||||
@ stdcall D3DXGetPixelShaderProfile(ptr)
|
||||
@ stdcall D3DXGetShaderConstantTable(ptr ptr)
|
||||
-@ stub D3DXGetShaderInputSemantics(ptr ptr ptr)
|
||||
+@ stdcall D3DXGetShaderInputSemantics(ptr ptr ptr)
|
||||
@ stub D3DXGetShaderOutputSemantics(ptr ptr ptr)
|
||||
@ stdcall D3DXGetShaderSamplers(ptr ptr ptr)
|
||||
@ stdcall D3DXGetShaderSize(ptr)
|
||||
diff --git a/dlls/d3dx9_30/d3dx9_30.spec b/dlls/d3dx9_30/d3dx9_30.spec
|
||||
index dc00086..5f0e3a4 100644
|
||||
--- a/dlls/d3dx9_30/d3dx9_30.spec
|
||||
+++ b/dlls/d3dx9_30/d3dx9_30.spec
|
||||
@@ -158,7 +158,7 @@
|
||||
@ stdcall D3DXGetImageInfoFromResourceW(long wstr ptr)
|
||||
@ stdcall D3DXGetPixelShaderProfile(ptr)
|
||||
@ stdcall D3DXGetShaderConstantTable(ptr ptr)
|
||||
-@ stub D3DXGetShaderInputSemantics(ptr ptr ptr)
|
||||
+@ stdcall D3DXGetShaderInputSemantics(ptr ptr ptr)
|
||||
@ stub D3DXGetShaderOutputSemantics(ptr ptr ptr)
|
||||
@ stdcall D3DXGetShaderSamplers(ptr ptr ptr)
|
||||
@ stdcall D3DXGetShaderSize(ptr)
|
||||
diff --git a/dlls/d3dx9_31/d3dx9_31.spec b/dlls/d3dx9_31/d3dx9_31.spec
|
||||
index c650a77..1d52ecb 100644
|
||||
--- a/dlls/d3dx9_31/d3dx9_31.spec
|
||||
+++ b/dlls/d3dx9_31/d3dx9_31.spec
|
||||
@@ -157,7 +157,7 @@
|
||||
@ stdcall D3DXGetImageInfoFromResourceW(long wstr ptr)
|
||||
@ stdcall D3DXGetPixelShaderProfile(ptr)
|
||||
@ stdcall D3DXGetShaderConstantTable(ptr ptr)
|
||||
-@ stub D3DXGetShaderInputSemantics(ptr ptr ptr)
|
||||
+@ stdcall D3DXGetShaderInputSemantics(ptr ptr ptr)
|
||||
@ stub D3DXGetShaderOutputSemantics(ptr ptr ptr)
|
||||
@ stdcall D3DXGetShaderSamplers(ptr ptr ptr)
|
||||
@ stdcall D3DXGetShaderSize(ptr)
|
||||
diff --git a/dlls/d3dx9_32/d3dx9_32.spec b/dlls/d3dx9_32/d3dx9_32.spec
|
||||
index 8c2fe78..4333519 100644
|
||||
--- a/dlls/d3dx9_32/d3dx9_32.spec
|
||||
+++ b/dlls/d3dx9_32/d3dx9_32.spec
|
||||
@@ -157,7 +157,7 @@
|
||||
@ stdcall D3DXGetImageInfoFromResourceW(long wstr ptr)
|
||||
@ stdcall D3DXGetPixelShaderProfile(ptr)
|
||||
@ stdcall D3DXGetShaderConstantTable(ptr ptr)
|
||||
-@ stub D3DXGetShaderInputSemantics(ptr ptr ptr)
|
||||
+@ stdcall D3DXGetShaderInputSemantics(ptr ptr ptr)
|
||||
@ stub D3DXGetShaderOutputSemantics(ptr ptr ptr)
|
||||
@ stdcall D3DXGetShaderSamplers(ptr ptr ptr)
|
||||
@ stdcall D3DXGetShaderSize(ptr)
|
||||
diff --git a/dlls/d3dx9_33/d3dx9_33.spec b/dlls/d3dx9_33/d3dx9_33.spec
|
||||
index 8c2fe78..4333519 100644
|
||||
--- a/dlls/d3dx9_33/d3dx9_33.spec
|
||||
+++ b/dlls/d3dx9_33/d3dx9_33.spec
|
||||
@@ -157,7 +157,7 @@
|
||||
@ stdcall D3DXGetImageInfoFromResourceW(long wstr ptr)
|
||||
@ stdcall D3DXGetPixelShaderProfile(ptr)
|
||||
@ stdcall D3DXGetShaderConstantTable(ptr ptr)
|
||||
-@ stub D3DXGetShaderInputSemantics(ptr ptr ptr)
|
||||
+@ stdcall D3DXGetShaderInputSemantics(ptr ptr ptr)
|
||||
@ stub D3DXGetShaderOutputSemantics(ptr ptr ptr)
|
||||
@ stdcall D3DXGetShaderSamplers(ptr ptr ptr)
|
||||
@ stdcall D3DXGetShaderSize(ptr)
|
||||
diff --git a/dlls/d3dx9_34/d3dx9_34.spec b/dlls/d3dx9_34/d3dx9_34.spec
|
||||
index 8c2fe78..4333519 100644
|
||||
--- a/dlls/d3dx9_34/d3dx9_34.spec
|
||||
+++ b/dlls/d3dx9_34/d3dx9_34.spec
|
||||
@@ -157,7 +157,7 @@
|
||||
@ stdcall D3DXGetImageInfoFromResourceW(long wstr ptr)
|
||||
@ stdcall D3DXGetPixelShaderProfile(ptr)
|
||||
@ stdcall D3DXGetShaderConstantTable(ptr ptr)
|
||||
-@ stub D3DXGetShaderInputSemantics(ptr ptr ptr)
|
||||
+@ stdcall D3DXGetShaderInputSemantics(ptr ptr ptr)
|
||||
@ stub D3DXGetShaderOutputSemantics(ptr ptr ptr)
|
||||
@ stdcall D3DXGetShaderSamplers(ptr ptr ptr)
|
||||
@ stdcall D3DXGetShaderSize(ptr)
|
||||
diff --git a/dlls/d3dx9_35/d3dx9_35.spec b/dlls/d3dx9_35/d3dx9_35.spec
|
||||
index 8c2fe78..4333519 100644
|
||||
--- a/dlls/d3dx9_35/d3dx9_35.spec
|
||||
+++ b/dlls/d3dx9_35/d3dx9_35.spec
|
||||
@@ -157,7 +157,7 @@
|
||||
@ stdcall D3DXGetImageInfoFromResourceW(long wstr ptr)
|
||||
@ stdcall D3DXGetPixelShaderProfile(ptr)
|
||||
@ stdcall D3DXGetShaderConstantTable(ptr ptr)
|
||||
-@ stub D3DXGetShaderInputSemantics(ptr ptr ptr)
|
||||
+@ stdcall D3DXGetShaderInputSemantics(ptr ptr ptr)
|
||||
@ stub D3DXGetShaderOutputSemantics(ptr ptr ptr)
|
||||
@ stdcall D3DXGetShaderSamplers(ptr ptr ptr)
|
||||
@ stdcall D3DXGetShaderSize(ptr)
|
||||
diff --git a/dlls/d3dx9_36/d3dx9_36.spec b/dlls/d3dx9_36/d3dx9_36.spec
|
||||
index f79b6fa..cba33b4 100644
|
||||
index 622f2d0..e81aef2 100644
|
||||
--- a/dlls/d3dx9_36/d3dx9_36.spec
|
||||
+++ b/dlls/d3dx9_36/d3dx9_36.spec
|
||||
@@ -159,7 +159,7 @@
|
||||
@@ -25,7 +200,7 @@ index f79b6fa..cba33b4 100644
|
||||
@ stdcall D3DXGetShaderSamplers(ptr ptr ptr)
|
||||
@ stdcall D3DXGetShaderSize(ptr)
|
||||
diff --git a/dlls/d3dx9_36/shader.c b/dlls/d3dx9_36/shader.c
|
||||
index e9d893b..2918bde 100644
|
||||
index 9723aa4..940cd15 100644
|
||||
--- a/dlls/d3dx9_36/shader.c
|
||||
+++ b/dlls/d3dx9_36/shader.c
|
||||
@@ -1,6 +1,7 @@
|
||||
@@ -36,7 +211,7 @@ index e9d893b..2918bde 100644
|
||||
* Copyright 2011 Travis Athougies
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
@@ -2151,3 +2152,95 @@ HRESULT WINAPI D3DXDisassembleShader(const DWORD *shader, BOOL colorcode, const
|
||||
@@ -2146,3 +2147,95 @@ HRESULT WINAPI D3DXDisassembleShader(const DWORD *shader, BOOL colorcode, const
|
||||
FIXME("%p %d %s %p: stub\n", shader, colorcode, debugstr_a(comments), disassembly);
|
||||
return E_OUTOFMEMORY;
|
||||
}
|
||||
@@ -133,7 +308,7 @@ index e9d893b..2918bde 100644
|
||||
+ return D3D_OK;
|
||||
+}
|
||||
diff --git a/dlls/d3dx9_36/tests/shader.c b/dlls/d3dx9_36/tests/shader.c
|
||||
index 694540c..728cd86 100644
|
||||
index 4a7ae67..9a2769f 100644
|
||||
--- a/dlls/d3dx9_36/tests/shader.c
|
||||
+++ b/dlls/d3dx9_36/tests/shader.c
|
||||
@@ -1,5 +1,6 @@
|
||||
@@ -247,6 +422,97 @@ index 694540c..728cd86 100644
|
||||
test_registerset_defaults();
|
||||
+ test_get_shader_semantics();
|
||||
}
|
||||
diff --git a/dlls/d3dx9_37/d3dx9_37.spec b/dlls/d3dx9_37/d3dx9_37.spec
|
||||
index 622f2d0..e81aef2 100644
|
||||
--- a/dlls/d3dx9_37/d3dx9_37.spec
|
||||
+++ b/dlls/d3dx9_37/d3dx9_37.spec
|
||||
@@ -159,7 +159,7 @@
|
||||
@ stdcall D3DXGetPixelShaderProfile(ptr)
|
||||
@ stdcall D3DXGetShaderConstantTable(ptr ptr)
|
||||
@ stdcall D3DXGetShaderConstantTableEx(ptr long ptr)
|
||||
-@ stub D3DXGetShaderInputSemantics(ptr ptr ptr)
|
||||
+@ stdcall D3DXGetShaderInputSemantics(ptr ptr ptr)
|
||||
@ stub D3DXGetShaderOutputSemantics(ptr ptr ptr)
|
||||
@ stdcall D3DXGetShaderSamplers(ptr ptr ptr)
|
||||
@ stdcall D3DXGetShaderSize(ptr)
|
||||
diff --git a/dlls/d3dx9_38/d3dx9_38.spec b/dlls/d3dx9_38/d3dx9_38.spec
|
||||
index 622f2d0..e81aef2 100644
|
||||
--- a/dlls/d3dx9_38/d3dx9_38.spec
|
||||
+++ b/dlls/d3dx9_38/d3dx9_38.spec
|
||||
@@ -159,7 +159,7 @@
|
||||
@ stdcall D3DXGetPixelShaderProfile(ptr)
|
||||
@ stdcall D3DXGetShaderConstantTable(ptr ptr)
|
||||
@ stdcall D3DXGetShaderConstantTableEx(ptr long ptr)
|
||||
-@ stub D3DXGetShaderInputSemantics(ptr ptr ptr)
|
||||
+@ stdcall D3DXGetShaderInputSemantics(ptr ptr ptr)
|
||||
@ stub D3DXGetShaderOutputSemantics(ptr ptr ptr)
|
||||
@ stdcall D3DXGetShaderSamplers(ptr ptr ptr)
|
||||
@ stdcall D3DXGetShaderSize(ptr)
|
||||
diff --git a/dlls/d3dx9_39/d3dx9_39.spec b/dlls/d3dx9_39/d3dx9_39.spec
|
||||
index 622f2d0..e81aef2 100644
|
||||
--- a/dlls/d3dx9_39/d3dx9_39.spec
|
||||
+++ b/dlls/d3dx9_39/d3dx9_39.spec
|
||||
@@ -159,7 +159,7 @@
|
||||
@ stdcall D3DXGetPixelShaderProfile(ptr)
|
||||
@ stdcall D3DXGetShaderConstantTable(ptr ptr)
|
||||
@ stdcall D3DXGetShaderConstantTableEx(ptr long ptr)
|
||||
-@ stub D3DXGetShaderInputSemantics(ptr ptr ptr)
|
||||
+@ stdcall D3DXGetShaderInputSemantics(ptr ptr ptr)
|
||||
@ stub D3DXGetShaderOutputSemantics(ptr ptr ptr)
|
||||
@ stdcall D3DXGetShaderSamplers(ptr ptr ptr)
|
||||
@ stdcall D3DXGetShaderSize(ptr)
|
||||
diff --git a/dlls/d3dx9_40/d3dx9_40.spec b/dlls/d3dx9_40/d3dx9_40.spec
|
||||
index 622f2d0..e81aef2 100644
|
||||
--- a/dlls/d3dx9_40/d3dx9_40.spec
|
||||
+++ b/dlls/d3dx9_40/d3dx9_40.spec
|
||||
@@ -159,7 +159,7 @@
|
||||
@ stdcall D3DXGetPixelShaderProfile(ptr)
|
||||
@ stdcall D3DXGetShaderConstantTable(ptr ptr)
|
||||
@ stdcall D3DXGetShaderConstantTableEx(ptr long ptr)
|
||||
-@ stub D3DXGetShaderInputSemantics(ptr ptr ptr)
|
||||
+@ stdcall D3DXGetShaderInputSemantics(ptr ptr ptr)
|
||||
@ stub D3DXGetShaderOutputSemantics(ptr ptr ptr)
|
||||
@ stdcall D3DXGetShaderSamplers(ptr ptr ptr)
|
||||
@ stdcall D3DXGetShaderSize(ptr)
|
||||
diff --git a/dlls/d3dx9_41/d3dx9_41.spec b/dlls/d3dx9_41/d3dx9_41.spec
|
||||
index 622f2d0..e81aef2 100644
|
||||
--- a/dlls/d3dx9_41/d3dx9_41.spec
|
||||
+++ b/dlls/d3dx9_41/d3dx9_41.spec
|
||||
@@ -159,7 +159,7 @@
|
||||
@ stdcall D3DXGetPixelShaderProfile(ptr)
|
||||
@ stdcall D3DXGetShaderConstantTable(ptr ptr)
|
||||
@ stdcall D3DXGetShaderConstantTableEx(ptr long ptr)
|
||||
-@ stub D3DXGetShaderInputSemantics(ptr ptr ptr)
|
||||
+@ stdcall D3DXGetShaderInputSemantics(ptr ptr ptr)
|
||||
@ stub D3DXGetShaderOutputSemantics(ptr ptr ptr)
|
||||
@ stdcall D3DXGetShaderSamplers(ptr ptr ptr)
|
||||
@ stdcall D3DXGetShaderSize(ptr)
|
||||
diff --git a/dlls/d3dx9_42/d3dx9_42.spec b/dlls/d3dx9_42/d3dx9_42.spec
|
||||
index 7851c60..257c6bd 100644
|
||||
--- a/dlls/d3dx9_42/d3dx9_42.spec
|
||||
+++ b/dlls/d3dx9_42/d3dx9_42.spec
|
||||
@@ -152,7 +152,7 @@
|
||||
@ stdcall D3DXGetPixelShaderProfile(ptr)
|
||||
@ stdcall D3DXGetShaderConstantTable(ptr ptr)
|
||||
@ stdcall D3DXGetShaderConstantTableEx(ptr long ptr)
|
||||
-@ stub D3DXGetShaderInputSemantics(ptr ptr ptr)
|
||||
+@ stdcall D3DXGetShaderInputSemantics(ptr ptr ptr)
|
||||
@ stub D3DXGetShaderOutputSemantics(ptr ptr ptr)
|
||||
@ stdcall D3DXGetShaderSamplers(ptr ptr ptr)
|
||||
@ stdcall D3DXGetShaderSize(ptr)
|
||||
diff --git a/dlls/d3dx9_43/d3dx9_43.spec b/dlls/d3dx9_43/d3dx9_43.spec
|
||||
index 7851c60..257c6bd 100644
|
||||
--- a/dlls/d3dx9_43/d3dx9_43.spec
|
||||
+++ b/dlls/d3dx9_43/d3dx9_43.spec
|
||||
@@ -152,7 +152,7 @@
|
||||
@ stdcall D3DXGetPixelShaderProfile(ptr)
|
||||
@ stdcall D3DXGetShaderConstantTable(ptr ptr)
|
||||
@ stdcall D3DXGetShaderConstantTableEx(ptr long ptr)
|
||||
-@ stub D3DXGetShaderInputSemantics(ptr ptr ptr)
|
||||
+@ stdcall D3DXGetShaderInputSemantics(ptr ptr ptr)
|
||||
@ stub D3DXGetShaderOutputSemantics(ptr ptr ptr)
|
||||
@ stdcall D3DXGetShaderSamplers(ptr ptr ptr)
|
||||
@ stdcall D3DXGetShaderSize(ptr)
|
||||
diff --git a/include/d3dx9shader.h b/include/d3dx9shader.h
|
||||
index a3f68f2..5714ddb 100644
|
||||
--- a/include/d3dx9shader.h
|
||||
@@ -260,5 +526,5 @@ index a3f68f2..5714ddb 100644
|
||||
HRESULT WINAPI D3DXAssembleShaderFromFileA(const char *filename, const D3DXMACRO *defines,
|
||||
ID3DXInclude *include, DWORD flags, ID3DXBuffer **shader, ID3DXBuffer **error_messages);
|
||||
--
|
||||
2.6.1
|
||||
2.8.0
|
||||
|
||||
|
@@ -1,18 +1,193 @@
|
||||
From b92b1b248050bc0b0b900de72b01cb79ef88df94 Mon Sep 17 00:00:00 2001
|
||||
From 93d8dea11ef99d14e59031586bbb62d300b4385a Mon Sep 17 00:00:00 2001
|
||||
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
|
||||
Date: Wed, 8 Jul 2015 10:55:03 +1000
|
||||
Subject: d3dx9_36: Implement D3DXGetShaderOutputSemantics. (rev 2)
|
||||
|
||||
Signed-off-by: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
|
||||
---
|
||||
dlls/d3dx9_24/d3dx9_24.spec | 2 +-
|
||||
dlls/d3dx9_25/d3dx9_25.spec | 2 +-
|
||||
dlls/d3dx9_26/d3dx9_26.spec | 2 +-
|
||||
dlls/d3dx9_27/d3dx9_27.spec | 2 +-
|
||||
dlls/d3dx9_28/d3dx9_28.spec | 2 +-
|
||||
dlls/d3dx9_29/d3dx9_29.spec | 2 +-
|
||||
dlls/d3dx9_30/d3dx9_30.spec | 2 +-
|
||||
dlls/d3dx9_31/d3dx9_31.spec | 2 +-
|
||||
dlls/d3dx9_32/d3dx9_32.spec | 2 +-
|
||||
dlls/d3dx9_33/d3dx9_33.spec | 2 +-
|
||||
dlls/d3dx9_34/d3dx9_34.spec | 2 +-
|
||||
dlls/d3dx9_35/d3dx9_35.spec | 2 +-
|
||||
dlls/d3dx9_36/d3dx9_36.spec | 2 +-
|
||||
dlls/d3dx9_36/shader.c | 20 +++++++++++++++-
|
||||
dlls/d3dx9_36/tests/shader.c | 54 ++++++++++++++++++++++++++++++++++++++++++++
|
||||
dlls/d3dx9_37/d3dx9_37.spec | 2 +-
|
||||
dlls/d3dx9_38/d3dx9_38.spec | 2 +-
|
||||
dlls/d3dx9_39/d3dx9_39.spec | 2 +-
|
||||
dlls/d3dx9_40/d3dx9_40.spec | 2 +-
|
||||
dlls/d3dx9_41/d3dx9_41.spec | 2 +-
|
||||
dlls/d3dx9_42/d3dx9_42.spec | 2 +-
|
||||
dlls/d3dx9_43/d3dx9_43.spec | 2 +-
|
||||
include/d3dx9shader.h | 1 +
|
||||
4 files changed, 75 insertions(+), 2 deletions(-)
|
||||
23 files changed, 94 insertions(+), 21 deletions(-)
|
||||
|
||||
diff --git a/dlls/d3dx9_24/d3dx9_24.spec b/dlls/d3dx9_24/d3dx9_24.spec
|
||||
index 7e4217d..c53c946 100644
|
||||
--- a/dlls/d3dx9_24/d3dx9_24.spec
|
||||
+++ b/dlls/d3dx9_24/d3dx9_24.spec
|
||||
@@ -155,7 +155,7 @@
|
||||
@ stdcall D3DXGetPixelShaderProfile(ptr)
|
||||
@ stdcall D3DXGetShaderConstantTable(ptr ptr)
|
||||
@ stdcall D3DXGetShaderInputSemantics(ptr ptr ptr)
|
||||
-@ stub D3DXGetShaderOutputSemantics(ptr ptr ptr)
|
||||
+@ stdcall D3DXGetShaderOutputSemantics(ptr ptr ptr)
|
||||
@ stdcall D3DXGetShaderSamplers(ptr ptr ptr)
|
||||
@ stdcall D3DXGetShaderSize(ptr)
|
||||
@ stdcall D3DXGetShaderVersion(ptr)
|
||||
diff --git a/dlls/d3dx9_25/d3dx9_25.spec b/dlls/d3dx9_25/d3dx9_25.spec
|
||||
index 2c7ae49..2072001 100644
|
||||
--- a/dlls/d3dx9_25/d3dx9_25.spec
|
||||
+++ b/dlls/d3dx9_25/d3dx9_25.spec
|
||||
@@ -155,7 +155,7 @@
|
||||
@ stdcall D3DXGetPixelShaderProfile(ptr)
|
||||
@ stdcall D3DXGetShaderConstantTable(ptr ptr)
|
||||
@ stdcall D3DXGetShaderInputSemantics(ptr ptr ptr)
|
||||
-@ stub D3DXGetShaderOutputSemantics(ptr ptr ptr)
|
||||
+@ stdcall D3DXGetShaderOutputSemantics(ptr ptr ptr)
|
||||
@ stdcall D3DXGetShaderSamplers(ptr ptr ptr)
|
||||
@ stdcall D3DXGetShaderSize(ptr)
|
||||
@ stdcall D3DXGetShaderVersion(ptr)
|
||||
diff --git a/dlls/d3dx9_26/d3dx9_26.spec b/dlls/d3dx9_26/d3dx9_26.spec
|
||||
index 21b7f3c..5e1bce9 100644
|
||||
--- a/dlls/d3dx9_26/d3dx9_26.spec
|
||||
+++ b/dlls/d3dx9_26/d3dx9_26.spec
|
||||
@@ -159,7 +159,7 @@
|
||||
@ stdcall D3DXGetPixelShaderProfile(ptr)
|
||||
@ stdcall D3DXGetShaderConstantTable(ptr ptr)
|
||||
@ stdcall D3DXGetShaderInputSemantics(ptr ptr ptr)
|
||||
-@ stub D3DXGetShaderOutputSemantics(ptr ptr ptr)
|
||||
+@ stdcall D3DXGetShaderOutputSemantics(ptr ptr ptr)
|
||||
@ stdcall D3DXGetShaderSamplers(ptr ptr ptr)
|
||||
@ stdcall D3DXGetShaderSize(ptr)
|
||||
@ stdcall D3DXGetShaderVersion(ptr)
|
||||
diff --git a/dlls/d3dx9_27/d3dx9_27.spec b/dlls/d3dx9_27/d3dx9_27.spec
|
||||
index 21b7f3c..5e1bce9 100644
|
||||
--- a/dlls/d3dx9_27/d3dx9_27.spec
|
||||
+++ b/dlls/d3dx9_27/d3dx9_27.spec
|
||||
@@ -159,7 +159,7 @@
|
||||
@ stdcall D3DXGetPixelShaderProfile(ptr)
|
||||
@ stdcall D3DXGetShaderConstantTable(ptr ptr)
|
||||
@ stdcall D3DXGetShaderInputSemantics(ptr ptr ptr)
|
||||
-@ stub D3DXGetShaderOutputSemantics(ptr ptr ptr)
|
||||
+@ stdcall D3DXGetShaderOutputSemantics(ptr ptr ptr)
|
||||
@ stdcall D3DXGetShaderSamplers(ptr ptr ptr)
|
||||
@ stdcall D3DXGetShaderSize(ptr)
|
||||
@ stdcall D3DXGetShaderVersion(ptr)
|
||||
diff --git a/dlls/d3dx9_28/d3dx9_28.spec b/dlls/d3dx9_28/d3dx9_28.spec
|
||||
index 5f630a6..503d0b2 100644
|
||||
--- a/dlls/d3dx9_28/d3dx9_28.spec
|
||||
+++ b/dlls/d3dx9_28/d3dx9_28.spec
|
||||
@@ -159,7 +159,7 @@
|
||||
@ stdcall D3DXGetPixelShaderProfile(ptr)
|
||||
@ stdcall D3DXGetShaderConstantTable(ptr ptr)
|
||||
@ stdcall D3DXGetShaderInputSemantics(ptr ptr ptr)
|
||||
-@ stub D3DXGetShaderOutputSemantics(ptr ptr ptr)
|
||||
+@ stdcall D3DXGetShaderOutputSemantics(ptr ptr ptr)
|
||||
@ stdcall D3DXGetShaderSamplers(ptr ptr ptr)
|
||||
@ stdcall D3DXGetShaderSize(ptr)
|
||||
@ stdcall D3DXGetShaderVersion(ptr)
|
||||
diff --git a/dlls/d3dx9_29/d3dx9_29.spec b/dlls/d3dx9_29/d3dx9_29.spec
|
||||
index 5f630a6..503d0b2 100644
|
||||
--- a/dlls/d3dx9_29/d3dx9_29.spec
|
||||
+++ b/dlls/d3dx9_29/d3dx9_29.spec
|
||||
@@ -159,7 +159,7 @@
|
||||
@ stdcall D3DXGetPixelShaderProfile(ptr)
|
||||
@ stdcall D3DXGetShaderConstantTable(ptr ptr)
|
||||
@ stdcall D3DXGetShaderInputSemantics(ptr ptr ptr)
|
||||
-@ stub D3DXGetShaderOutputSemantics(ptr ptr ptr)
|
||||
+@ stdcall D3DXGetShaderOutputSemantics(ptr ptr ptr)
|
||||
@ stdcall D3DXGetShaderSamplers(ptr ptr ptr)
|
||||
@ stdcall D3DXGetShaderSize(ptr)
|
||||
@ stdcall D3DXGetShaderVersion(ptr)
|
||||
diff --git a/dlls/d3dx9_30/d3dx9_30.spec b/dlls/d3dx9_30/d3dx9_30.spec
|
||||
index 5f0e3a4..74bf709 100644
|
||||
--- a/dlls/d3dx9_30/d3dx9_30.spec
|
||||
+++ b/dlls/d3dx9_30/d3dx9_30.spec
|
||||
@@ -159,7 +159,7 @@
|
||||
@ stdcall D3DXGetPixelShaderProfile(ptr)
|
||||
@ stdcall D3DXGetShaderConstantTable(ptr ptr)
|
||||
@ stdcall D3DXGetShaderInputSemantics(ptr ptr ptr)
|
||||
-@ stub D3DXGetShaderOutputSemantics(ptr ptr ptr)
|
||||
+@ stdcall D3DXGetShaderOutputSemantics(ptr ptr ptr)
|
||||
@ stdcall D3DXGetShaderSamplers(ptr ptr ptr)
|
||||
@ stdcall D3DXGetShaderSize(ptr)
|
||||
@ stdcall D3DXGetShaderVersion(ptr)
|
||||
diff --git a/dlls/d3dx9_31/d3dx9_31.spec b/dlls/d3dx9_31/d3dx9_31.spec
|
||||
index 1d52ecb..b1fa7bf 100644
|
||||
--- a/dlls/d3dx9_31/d3dx9_31.spec
|
||||
+++ b/dlls/d3dx9_31/d3dx9_31.spec
|
||||
@@ -158,7 +158,7 @@
|
||||
@ stdcall D3DXGetPixelShaderProfile(ptr)
|
||||
@ stdcall D3DXGetShaderConstantTable(ptr ptr)
|
||||
@ stdcall D3DXGetShaderInputSemantics(ptr ptr ptr)
|
||||
-@ stub D3DXGetShaderOutputSemantics(ptr ptr ptr)
|
||||
+@ stdcall D3DXGetShaderOutputSemantics(ptr ptr ptr)
|
||||
@ stdcall D3DXGetShaderSamplers(ptr ptr ptr)
|
||||
@ stdcall D3DXGetShaderSize(ptr)
|
||||
@ stdcall D3DXGetShaderVersion(ptr)
|
||||
diff --git a/dlls/d3dx9_32/d3dx9_32.spec b/dlls/d3dx9_32/d3dx9_32.spec
|
||||
index 4333519..4e65a9e 100644
|
||||
--- a/dlls/d3dx9_32/d3dx9_32.spec
|
||||
+++ b/dlls/d3dx9_32/d3dx9_32.spec
|
||||
@@ -158,7 +158,7 @@
|
||||
@ stdcall D3DXGetPixelShaderProfile(ptr)
|
||||
@ stdcall D3DXGetShaderConstantTable(ptr ptr)
|
||||
@ stdcall D3DXGetShaderInputSemantics(ptr ptr ptr)
|
||||
-@ stub D3DXGetShaderOutputSemantics(ptr ptr ptr)
|
||||
+@ stdcall D3DXGetShaderOutputSemantics(ptr ptr ptr)
|
||||
@ stdcall D3DXGetShaderSamplers(ptr ptr ptr)
|
||||
@ stdcall D3DXGetShaderSize(ptr)
|
||||
@ stdcall D3DXGetShaderVersion(ptr)
|
||||
diff --git a/dlls/d3dx9_33/d3dx9_33.spec b/dlls/d3dx9_33/d3dx9_33.spec
|
||||
index 4333519..4e65a9e 100644
|
||||
--- a/dlls/d3dx9_33/d3dx9_33.spec
|
||||
+++ b/dlls/d3dx9_33/d3dx9_33.spec
|
||||
@@ -158,7 +158,7 @@
|
||||
@ stdcall D3DXGetPixelShaderProfile(ptr)
|
||||
@ stdcall D3DXGetShaderConstantTable(ptr ptr)
|
||||
@ stdcall D3DXGetShaderInputSemantics(ptr ptr ptr)
|
||||
-@ stub D3DXGetShaderOutputSemantics(ptr ptr ptr)
|
||||
+@ stdcall D3DXGetShaderOutputSemantics(ptr ptr ptr)
|
||||
@ stdcall D3DXGetShaderSamplers(ptr ptr ptr)
|
||||
@ stdcall D3DXGetShaderSize(ptr)
|
||||
@ stdcall D3DXGetShaderVersion(ptr)
|
||||
diff --git a/dlls/d3dx9_34/d3dx9_34.spec b/dlls/d3dx9_34/d3dx9_34.spec
|
||||
index 4333519..4e65a9e 100644
|
||||
--- a/dlls/d3dx9_34/d3dx9_34.spec
|
||||
+++ b/dlls/d3dx9_34/d3dx9_34.spec
|
||||
@@ -158,7 +158,7 @@
|
||||
@ stdcall D3DXGetPixelShaderProfile(ptr)
|
||||
@ stdcall D3DXGetShaderConstantTable(ptr ptr)
|
||||
@ stdcall D3DXGetShaderInputSemantics(ptr ptr ptr)
|
||||
-@ stub D3DXGetShaderOutputSemantics(ptr ptr ptr)
|
||||
+@ stdcall D3DXGetShaderOutputSemantics(ptr ptr ptr)
|
||||
@ stdcall D3DXGetShaderSamplers(ptr ptr ptr)
|
||||
@ stdcall D3DXGetShaderSize(ptr)
|
||||
@ stdcall D3DXGetShaderVersion(ptr)
|
||||
diff --git a/dlls/d3dx9_35/d3dx9_35.spec b/dlls/d3dx9_35/d3dx9_35.spec
|
||||
index 4333519..4e65a9e 100644
|
||||
--- a/dlls/d3dx9_35/d3dx9_35.spec
|
||||
+++ b/dlls/d3dx9_35/d3dx9_35.spec
|
||||
@@ -158,7 +158,7 @@
|
||||
@ stdcall D3DXGetPixelShaderProfile(ptr)
|
||||
@ stdcall D3DXGetShaderConstantTable(ptr ptr)
|
||||
@ stdcall D3DXGetShaderInputSemantics(ptr ptr ptr)
|
||||
-@ stub D3DXGetShaderOutputSemantics(ptr ptr ptr)
|
||||
+@ stdcall D3DXGetShaderOutputSemantics(ptr ptr ptr)
|
||||
@ stdcall D3DXGetShaderSamplers(ptr ptr ptr)
|
||||
@ stdcall D3DXGetShaderSize(ptr)
|
||||
@ stdcall D3DXGetShaderVersion(ptr)
|
||||
diff --git a/dlls/d3dx9_36/d3dx9_36.spec b/dlls/d3dx9_36/d3dx9_36.spec
|
||||
index cba33b4..7cbf499 100644
|
||||
index e81aef2..4454d25 100644
|
||||
--- a/dlls/d3dx9_36/d3dx9_36.spec
|
||||
+++ b/dlls/d3dx9_36/d3dx9_36.spec
|
||||
@@ -160,7 +160,7 @@
|
||||
@@ -25,10 +200,10 @@ index cba33b4..7cbf499 100644
|
||||
@ stdcall D3DXGetShaderSize(ptr)
|
||||
@ stdcall D3DXGetShaderVersion(ptr)
|
||||
diff --git a/dlls/d3dx9_36/shader.c b/dlls/d3dx9_36/shader.c
|
||||
index 39f1f31..c699299 100644
|
||||
index 940cd15..a5871c5 100644
|
||||
--- a/dlls/d3dx9_36/shader.c
|
||||
+++ b/dlls/d3dx9_36/shader.c
|
||||
@@ -2192,7 +2192,7 @@ static UINT get_shader_semantics(const DWORD *byte_code, D3DXSEMANTIC *semantics
|
||||
@@ -2187,7 +2187,7 @@ static UINT get_shader_semantics(const DWORD *byte_code, D3DXSEMANTIC *semantics
|
||||
{
|
||||
if (*ptr & (1u << 31))
|
||||
{
|
||||
@@ -37,7 +212,7 @@ index 39f1f31..c699299 100644
|
||||
return 0;
|
||||
}
|
||||
else if ((*ptr & D3DSI_OPCODE_MASK) == D3DSIO_DCL)
|
||||
@@ -2243,3 +2243,21 @@ HRESULT WINAPI D3DXGetShaderInputSemantics(const DWORD *byte_code, D3DXSEMANTIC
|
||||
@@ -2239,3 +2239,21 @@ HRESULT WINAPI D3DXGetShaderInputSemantics(const DWORD *byte_code, D3DXSEMANTIC
|
||||
|
||||
return D3D_OK;
|
||||
}
|
||||
@@ -60,7 +235,7 @@ index 39f1f31..c699299 100644
|
||||
+ return D3D_OK;
|
||||
+}
|
||||
diff --git a/dlls/d3dx9_36/tests/shader.c b/dlls/d3dx9_36/tests/shader.c
|
||||
index 728cd86..946143e 100644
|
||||
index 9a2769f..6b76bf7 100644
|
||||
--- a/dlls/d3dx9_36/tests/shader.c
|
||||
+++ b/dlls/d3dx9_36/tests/shader.c
|
||||
@@ -6572,6 +6572,60 @@ static void test_get_shader_semantics(void)
|
||||
@@ -124,6 +299,97 @@ index 728cd86..946143e 100644
|
||||
}
|
||||
|
||||
START_TEST(shader)
|
||||
diff --git a/dlls/d3dx9_37/d3dx9_37.spec b/dlls/d3dx9_37/d3dx9_37.spec
|
||||
index e81aef2..4454d25 100644
|
||||
--- a/dlls/d3dx9_37/d3dx9_37.spec
|
||||
+++ b/dlls/d3dx9_37/d3dx9_37.spec
|
||||
@@ -160,7 +160,7 @@
|
||||
@ stdcall D3DXGetShaderConstantTable(ptr ptr)
|
||||
@ stdcall D3DXGetShaderConstantTableEx(ptr long ptr)
|
||||
@ stdcall D3DXGetShaderInputSemantics(ptr ptr ptr)
|
||||
-@ stub D3DXGetShaderOutputSemantics(ptr ptr ptr)
|
||||
+@ stdcall D3DXGetShaderOutputSemantics(ptr ptr ptr)
|
||||
@ stdcall D3DXGetShaderSamplers(ptr ptr ptr)
|
||||
@ stdcall D3DXGetShaderSize(ptr)
|
||||
@ stdcall D3DXGetShaderVersion(ptr)
|
||||
diff --git a/dlls/d3dx9_38/d3dx9_38.spec b/dlls/d3dx9_38/d3dx9_38.spec
|
||||
index e81aef2..4454d25 100644
|
||||
--- a/dlls/d3dx9_38/d3dx9_38.spec
|
||||
+++ b/dlls/d3dx9_38/d3dx9_38.spec
|
||||
@@ -160,7 +160,7 @@
|
||||
@ stdcall D3DXGetShaderConstantTable(ptr ptr)
|
||||
@ stdcall D3DXGetShaderConstantTableEx(ptr long ptr)
|
||||
@ stdcall D3DXGetShaderInputSemantics(ptr ptr ptr)
|
||||
-@ stub D3DXGetShaderOutputSemantics(ptr ptr ptr)
|
||||
+@ stdcall D3DXGetShaderOutputSemantics(ptr ptr ptr)
|
||||
@ stdcall D3DXGetShaderSamplers(ptr ptr ptr)
|
||||
@ stdcall D3DXGetShaderSize(ptr)
|
||||
@ stdcall D3DXGetShaderVersion(ptr)
|
||||
diff --git a/dlls/d3dx9_39/d3dx9_39.spec b/dlls/d3dx9_39/d3dx9_39.spec
|
||||
index e81aef2..4454d25 100644
|
||||
--- a/dlls/d3dx9_39/d3dx9_39.spec
|
||||
+++ b/dlls/d3dx9_39/d3dx9_39.spec
|
||||
@@ -160,7 +160,7 @@
|
||||
@ stdcall D3DXGetShaderConstantTable(ptr ptr)
|
||||
@ stdcall D3DXGetShaderConstantTableEx(ptr long ptr)
|
||||
@ stdcall D3DXGetShaderInputSemantics(ptr ptr ptr)
|
||||
-@ stub D3DXGetShaderOutputSemantics(ptr ptr ptr)
|
||||
+@ stdcall D3DXGetShaderOutputSemantics(ptr ptr ptr)
|
||||
@ stdcall D3DXGetShaderSamplers(ptr ptr ptr)
|
||||
@ stdcall D3DXGetShaderSize(ptr)
|
||||
@ stdcall D3DXGetShaderVersion(ptr)
|
||||
diff --git a/dlls/d3dx9_40/d3dx9_40.spec b/dlls/d3dx9_40/d3dx9_40.spec
|
||||
index e81aef2..4454d25 100644
|
||||
--- a/dlls/d3dx9_40/d3dx9_40.spec
|
||||
+++ b/dlls/d3dx9_40/d3dx9_40.spec
|
||||
@@ -160,7 +160,7 @@
|
||||
@ stdcall D3DXGetShaderConstantTable(ptr ptr)
|
||||
@ stdcall D3DXGetShaderConstantTableEx(ptr long ptr)
|
||||
@ stdcall D3DXGetShaderInputSemantics(ptr ptr ptr)
|
||||
-@ stub D3DXGetShaderOutputSemantics(ptr ptr ptr)
|
||||
+@ stdcall D3DXGetShaderOutputSemantics(ptr ptr ptr)
|
||||
@ stdcall D3DXGetShaderSamplers(ptr ptr ptr)
|
||||
@ stdcall D3DXGetShaderSize(ptr)
|
||||
@ stdcall D3DXGetShaderVersion(ptr)
|
||||
diff --git a/dlls/d3dx9_41/d3dx9_41.spec b/dlls/d3dx9_41/d3dx9_41.spec
|
||||
index e81aef2..4454d25 100644
|
||||
--- a/dlls/d3dx9_41/d3dx9_41.spec
|
||||
+++ b/dlls/d3dx9_41/d3dx9_41.spec
|
||||
@@ -160,7 +160,7 @@
|
||||
@ stdcall D3DXGetShaderConstantTable(ptr ptr)
|
||||
@ stdcall D3DXGetShaderConstantTableEx(ptr long ptr)
|
||||
@ stdcall D3DXGetShaderInputSemantics(ptr ptr ptr)
|
||||
-@ stub D3DXGetShaderOutputSemantics(ptr ptr ptr)
|
||||
+@ stdcall D3DXGetShaderOutputSemantics(ptr ptr ptr)
|
||||
@ stdcall D3DXGetShaderSamplers(ptr ptr ptr)
|
||||
@ stdcall D3DXGetShaderSize(ptr)
|
||||
@ stdcall D3DXGetShaderVersion(ptr)
|
||||
diff --git a/dlls/d3dx9_42/d3dx9_42.spec b/dlls/d3dx9_42/d3dx9_42.spec
|
||||
index 257c6bd..c03d804 100644
|
||||
--- a/dlls/d3dx9_42/d3dx9_42.spec
|
||||
+++ b/dlls/d3dx9_42/d3dx9_42.spec
|
||||
@@ -153,7 +153,7 @@
|
||||
@ stdcall D3DXGetShaderConstantTable(ptr ptr)
|
||||
@ stdcall D3DXGetShaderConstantTableEx(ptr long ptr)
|
||||
@ stdcall D3DXGetShaderInputSemantics(ptr ptr ptr)
|
||||
-@ stub D3DXGetShaderOutputSemantics(ptr ptr ptr)
|
||||
+@ stdcall D3DXGetShaderOutputSemantics(ptr ptr ptr)
|
||||
@ stdcall D3DXGetShaderSamplers(ptr ptr ptr)
|
||||
@ stdcall D3DXGetShaderSize(ptr)
|
||||
@ stdcall D3DXGetShaderVersion(ptr)
|
||||
diff --git a/dlls/d3dx9_43/d3dx9_43.spec b/dlls/d3dx9_43/d3dx9_43.spec
|
||||
index 257c6bd..c03d804 100644
|
||||
--- a/dlls/d3dx9_43/d3dx9_43.spec
|
||||
+++ b/dlls/d3dx9_43/d3dx9_43.spec
|
||||
@@ -153,7 +153,7 @@
|
||||
@ stdcall D3DXGetShaderConstantTable(ptr ptr)
|
||||
@ stdcall D3DXGetShaderConstantTableEx(ptr long ptr)
|
||||
@ stdcall D3DXGetShaderInputSemantics(ptr ptr ptr)
|
||||
-@ stub D3DXGetShaderOutputSemantics(ptr ptr ptr)
|
||||
+@ stdcall D3DXGetShaderOutputSemantics(ptr ptr ptr)
|
||||
@ stdcall D3DXGetShaderSamplers(ptr ptr ptr)
|
||||
@ stdcall D3DXGetShaderSize(ptr)
|
||||
@ stdcall D3DXGetShaderVersion(ptr)
|
||||
diff --git a/include/d3dx9shader.h b/include/d3dx9shader.h
|
||||
index 5714ddb..1176143 100644
|
||||
--- a/include/d3dx9shader.h
|
||||
@@ -137,5 +403,5 @@ index 5714ddb..1176143 100644
|
||||
HRESULT WINAPI D3DXAssembleShaderFromFileA(const char *filename, const D3DXMACRO *defines,
|
||||
ID3DXInclude *include, DWORD flags, ID3DXBuffer **shader, ID3DXBuffer **error_messages);
|
||||
--
|
||||
2.6.1
|
||||
2.8.0
|
||||
|
||||
|
@@ -1,24 +0,0 @@
|
||||
From 50389a00b3f63757d8cab2b36e63d88f955d5a92 Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Lackner <sebastian@fds-team.de>
|
||||
Date: Sat, 25 Jun 2016 07:11:52 +0200
|
||||
Subject: include: Remove duplicate definition of WS_XML_NODE_POSITION.
|
||||
|
||||
---
|
||||
include/webservices.h | 1 -
|
||||
1 file changed, 1 deletion(-)
|
||||
|
||||
diff --git a/include/webservices.h b/include/webservices.h
|
||||
index a5ffd51..3c808f5 100644
|
||||
--- a/include/webservices.h
|
||||
+++ b/include/webservices.h
|
||||
@@ -73,7 +73,6 @@ typedef struct _WS_CUSTOM_HTTP_PROXY WS_CUSTOM_HTTP_PROXY;
|
||||
typedef struct _WS_HTTP_MESSAGE_MAPPING WS_HTTP_MESSAGE_MAPPING;
|
||||
typedef struct _WS_HTTP_HEADER_MAPPING WS_HTTP_HEADER_MAPPING;
|
||||
typedef struct _WS_HTTP_REDIRECT_CALLBACK_CONTEXT WS_HTTP_REDIRECT_CALLBACK_CONTEXT;
|
||||
-typedef struct _WS_XML_NODE_POSITION WS_XML_NODE_POSITION;
|
||||
|
||||
struct _WS_STRUCT_DESCRIPTION;
|
||||
struct _WS_XML_STRING;
|
||||
--
|
||||
2.8.0
|
||||
|
@@ -0,0 +1,90 @@
|
||||
From 553c390a55bb9184aa4d35cc2e6689f6633e4a9b Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Fri, 22 Jul 2016 21:00:40 +0200
|
||||
Subject: kernel32: Convert scsi device type in SCSI_getprocentry.
|
||||
|
||||
---
|
||||
dlls/kernel32/oldconfig.c | 27 ++++++++++++++++-----------
|
||||
1 file changed, 16 insertions(+), 11 deletions(-)
|
||||
|
||||
diff --git a/dlls/kernel32/oldconfig.c b/dlls/kernel32/oldconfig.c
|
||||
index 6c80dc6..8446f2d 100644
|
||||
--- a/dlls/kernel32/oldconfig.c
|
||||
+++ b/dlls/kernel32/oldconfig.c
|
||||
@@ -204,7 +204,7 @@ struct LinuxProcScsiDevice
|
||||
char vendor[9];
|
||||
char model[17];
|
||||
char rev[5];
|
||||
- char type[33];
|
||||
+ int type;
|
||||
int ansirev;
|
||||
};
|
||||
|
||||
@@ -217,6 +217,7 @@ struct LinuxProcScsiDevice
|
||||
static int SCSI_getprocentry( FILE * procfile, struct LinuxProcScsiDevice * dev )
|
||||
{
|
||||
int result;
|
||||
+ char type[33];
|
||||
|
||||
result = fscanf( procfile,
|
||||
"Host:%*1[ ]scsi%d%*1[ ]Channel:%*1[ ]%d%*1[ ]Id:%*1[ ]%d%*1[ ]Lun:%*1[ ]%d\n",
|
||||
@@ -247,7 +248,7 @@ static int SCSI_getprocentry( FILE * procfile, struct LinuxProcScsiDevice * dev
|
||||
|
||||
result = fscanf( procfile,
|
||||
" Type:%*3[ ]%32c%*1[ ]ANSI SCSI%*1[ ]revision:%*1[ ]%x\n",
|
||||
- dev->type,
|
||||
+ type,
|
||||
&dev->ansirev );
|
||||
if( result != 2 )
|
||||
{
|
||||
@@ -258,7 +259,15 @@ static int SCSI_getprocentry( FILE * procfile, struct LinuxProcScsiDevice * dev
|
||||
dev->vendor[8] = 0;
|
||||
dev->model[16] = 0;
|
||||
dev->rev[4] = 0;
|
||||
- dev->type[32] = 0;
|
||||
+ type[32] = 0;
|
||||
+
|
||||
+ if (strncmp(type, "Direct-Access", 13) == 0) dev->type = DRIVE_FIXED;
|
||||
+ else if (strncmp(type, "Sequential-Access", 17) == 0) dev->type = DRIVE_REMOVABLE;
|
||||
+ else if (strncmp(type, "CD-ROM", 6) == 0) dev->type = DRIVE_CDROM;
|
||||
+ else if (strncmp(type, "Processor", 9) == 0) dev->type = DRIVE_NO_ROOT_DIR;
|
||||
+ else if (strncmp(type, "Scanner", 7) == 0) dev->type = DRIVE_NO_ROOT_DIR;
|
||||
+ else if (strncmp(type, "Printer", 7) == 0) dev->type = DRIVE_NO_ROOT_DIR;
|
||||
+ else dev->type = DRIVE_UNKNOWN;
|
||||
|
||||
return 1;
|
||||
}
|
||||
@@ -362,26 +371,22 @@ static void create_hardware_branch(void)
|
||||
/* Read info for one device */
|
||||
while ((result = SCSI_getprocentry(procfile, &dev)) > 0)
|
||||
{
|
||||
+ if (dev.type == DRIVE_UNKNOWN)
|
||||
+ continue;
|
||||
+
|
||||
scsi_addr.PortNumber = dev.host;
|
||||
scsi_addr.PathId = dev.channel;
|
||||
scsi_addr.TargetId = dev.target;
|
||||
scsi_addr.Lun = dev.lun;
|
||||
|
||||
scsi_addr.PortNumber += uFirstSCSIPort;
|
||||
- if (strncmp(dev.type, "Direct-Access", 13) == 0) nType = DRIVE_FIXED;
|
||||
- else if (strncmp(dev.type, "Sequential-Access", 17) == 0) nType = DRIVE_REMOVABLE;
|
||||
- else if (strncmp(dev.type, "CD-ROM", 6) == 0) nType = DRIVE_CDROM;
|
||||
- else if (strncmp(dev.type, "Processor", 9) == 0) nType = DRIVE_NO_ROOT_DIR;
|
||||
- else if (strncmp(dev.type, "Scanner", 7) == 0) nType = DRIVE_NO_ROOT_DIR;
|
||||
- else if (strncmp(dev.type, "Printer", 7) == 0) nType = DRIVE_NO_ROOT_DIR;
|
||||
- else continue;
|
||||
|
||||
strcpy(cDevModel, dev.vendor);
|
||||
strcat(cDevModel, dev.model);
|
||||
strcat(cDevModel, dev.rev);
|
||||
sprintf(cUnixDeviceName, "/dev/sg%d", nSgNumber++);
|
||||
/* FIXME: get real driver name */
|
||||
- create_scsi_entry(&scsi_addr, "WINE SCSI", nType, cDevModel, cUnixDeviceName);
|
||||
+ create_scsi_entry(&scsi_addr, "WINE SCSI", dev.type, cDevModel, cUnixDeviceName);
|
||||
}
|
||||
if( result != EOF )
|
||||
WARN("Incorrect %s format\n", procname_scsi);
|
||||
--
|
||||
2.8.0
|
||||
|
@@ -0,0 +1,151 @@
|
||||
From 49435131943ae82e369d2a666de25e6242d242ab Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Fri, 22 Jul 2016 21:01:33 +0200
|
||||
Subject: kernel32: Add support for reading scsi devices from sysfs.
|
||||
|
||||
---
|
||||
dlls/kernel32/oldconfig.c | 114 +++++++++++++++++++++++++++++++++++++++++++++-
|
||||
1 file changed, 113 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/dlls/kernel32/oldconfig.c b/dlls/kernel32/oldconfig.c
|
||||
index 8446f2d..9001a04 100644
|
||||
--- a/dlls/kernel32/oldconfig.c
|
||||
+++ b/dlls/kernel32/oldconfig.c
|
||||
@@ -272,6 +272,89 @@ static int SCSI_getprocentry( FILE * procfile, struct LinuxProcScsiDevice * dev
|
||||
return 1;
|
||||
}
|
||||
|
||||
+static BOOL read_file_content(char *path, char *buffer, int length)
|
||||
+{
|
||||
+ size_t read;
|
||||
+
|
||||
+ FILE *f = fopen(path, "r");
|
||||
+ if (!f) return FALSE;
|
||||
+
|
||||
+ read = fread(buffer, 1, length-1, f);
|
||||
+ fclose(f);
|
||||
+ if (!read) return FALSE;
|
||||
+
|
||||
+ /* ensure NULL termination */
|
||||
+ buffer[read] = 0;
|
||||
+ return TRUE;
|
||||
+}
|
||||
+
|
||||
+static BOOL read_file_content_int(char *path, int *result)
|
||||
+{
|
||||
+ char buffer[20];
|
||||
+
|
||||
+ if (!read_file_content(path, buffer, sizeof(buffer)))
|
||||
+ return FALSE;
|
||||
+
|
||||
+ *result = atoi(buffer);
|
||||
+ return TRUE;
|
||||
+}
|
||||
+
|
||||
+static BOOL SCSI_getsysentry(char *device_key, struct LinuxProcScsiDevice *dev, char *unix_path)
|
||||
+{
|
||||
+ struct dirent *dent = NULL;
|
||||
+ char path_buffer[100];
|
||||
+ DIR *generic_dir;
|
||||
+ int result, type;
|
||||
+
|
||||
+ result = sscanf(device_key, "%d:%d:%d:%d", &dev->host, &dev->channel, &dev->target, &dev->lun);
|
||||
+ if (result != 4)
|
||||
+ {
|
||||
+ ERR("Failed to extract device information from %s\n", device_key);
|
||||
+ return FALSE;
|
||||
+ }
|
||||
+
|
||||
+ snprintf(path_buffer, sizeof(path_buffer), "/sys/class/scsi_device/%s/device/vendor", device_key);
|
||||
+ if (!read_file_content(path_buffer, dev->vendor, sizeof(dev->vendor))) return FALSE;
|
||||
+
|
||||
+ snprintf(path_buffer, sizeof(path_buffer), "/sys/class/scsi_device/%s/device/model", device_key);
|
||||
+ if (!read_file_content(path_buffer, dev->model, sizeof(dev->model))) return FALSE;
|
||||
+
|
||||
+ snprintf(path_buffer, sizeof(path_buffer), "/sys/class/scsi_device/%s/device/rev", device_key);
|
||||
+ if (!read_file_content(path_buffer, dev->rev, sizeof(dev->rev))) return FALSE;
|
||||
+
|
||||
+ snprintf(path_buffer, sizeof(path_buffer), "/sys/class/scsi_device/%s/device/type", device_key);
|
||||
+ if (!read_file_content_int(path_buffer, &type)) return FALSE;
|
||||
+
|
||||
+ /* see SCSI specification standard for values */
|
||||
+ if (type == 0x0) dev->type = DRIVE_FIXED;
|
||||
+ else if (type == 0x1) dev->type = DRIVE_REMOVABLE;
|
||||
+ else if (type == 0x5) dev->type = DRIVE_CDROM;
|
||||
+ else dev->type = DRIVE_NO_ROOT_DIR;
|
||||
+
|
||||
+ /* FIXME: verify */
|
||||
+ snprintf(path_buffer, sizeof(path_buffer), "/sys/class/scsi_device/%s/device/scsi_level", device_key);
|
||||
+ if (!read_file_content_int(path_buffer, &dev->ansirev)) return FALSE;
|
||||
+
|
||||
+ result = FALSE;
|
||||
+
|
||||
+ snprintf(path_buffer, sizeof(path_buffer), "/sys/class/scsi_device/%s/device/scsi_generic", device_key);
|
||||
+ generic_dir = opendir(path_buffer);
|
||||
+ if (generic_dir)
|
||||
+ {
|
||||
+ while ((dent = readdir(generic_dir)))
|
||||
+ {
|
||||
+ if (!strcmp(dent->d_name, ".") || !strcmp(dent->d_name, ".."))
|
||||
+ continue;
|
||||
+
|
||||
+ sprintf(unix_path, "/dev/%s", dent->d_name);
|
||||
+ result = TRUE;
|
||||
+ break;
|
||||
+ }
|
||||
+ closedir(generic_dir);
|
||||
+ }
|
||||
+
|
||||
+ return result;
|
||||
+}
|
||||
|
||||
/* create the hardware registry branch */
|
||||
static void create_hardware_branch(void)
|
||||
@@ -281,7 +364,7 @@ static void create_hardware_branch(void)
|
||||
static const char procname_ide_media[] = "/proc/ide/%s/media";
|
||||
static const char procname_ide_model[] = "/proc/ide/%s/model";
|
||||
static const char procname_scsi[] = "/proc/scsi/scsi";
|
||||
- DIR *idedir;
|
||||
+ DIR *idedir, *scsidir;
|
||||
struct dirent *dent = NULL;
|
||||
FILE *procfile = NULL;
|
||||
char cStr[40], cDevModel[40], cUnixDeviceName[40], read1[10] = "\0", read2[10] = "\0";
|
||||
@@ -346,6 +429,35 @@ static void create_hardware_branch(void)
|
||||
}
|
||||
|
||||
/* Now goes SCSI */
|
||||
+ scsidir = opendir("/sys/class/scsi_device");
|
||||
+ if (scsidir)
|
||||
+ {
|
||||
+ while ((dent = readdir(scsidir)))
|
||||
+ {
|
||||
+ if (!strcmp(dent->d_name, ".") || !strcmp(dent->d_name, ".."))
|
||||
+ continue;
|
||||
+
|
||||
+ if (!SCSI_getsysentry(dent->d_name, &dev, cUnixDeviceName))
|
||||
+ continue;
|
||||
+
|
||||
+ scsi_addr.PortNumber = dev.host;
|
||||
+ scsi_addr.PathId = dev.channel;
|
||||
+ scsi_addr.TargetId = dev.target;
|
||||
+ scsi_addr.Lun = dev.lun;
|
||||
+
|
||||
+ scsi_addr.PortNumber += uFirstSCSIPort;
|
||||
+
|
||||
+ strcpy(cDevModel, dev.vendor);
|
||||
+ strcat(cDevModel, dev.model);
|
||||
+ strcat(cDevModel, dev.rev);
|
||||
+
|
||||
+ /* FIXME: get real driver name */
|
||||
+ create_scsi_entry(&scsi_addr, "WINE SCSI", dev.type, cDevModel, cUnixDeviceName);
|
||||
+ }
|
||||
+ closedir(scsidir);
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
procfile = fopen(procname_scsi, "r");
|
||||
if (!procfile)
|
||||
{
|
||||
--
|
||||
2.8.0
|
||||
|
1
patches/kernel32-SCSI_Sysfs/definition
Normal file
1
patches/kernel32-SCSI_Sysfs/definition
Normal file
@@ -0,0 +1 @@
|
||||
Fixes: [31592] Use sysfs to populate SCSI registry keys
|
@@ -0,0 +1,41 @@
|
||||
From de0a7b30ea846237b6ea60ec75cf30540ef25743 Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Lackner <sebastian@fds-team.de>
|
||||
Date: Wed, 20 Jul 2016 02:21:41 +0200
|
||||
Subject: ntdll: Ensure process dlls are not attached too early.
|
||||
|
||||
---
|
||||
dlls/ntdll/loader.c | 4 +++-
|
||||
1 file changed, 3 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/dlls/ntdll/loader.c b/dlls/ntdll/loader.c
|
||||
index d9176d7..f90b347 100644
|
||||
--- a/dlls/ntdll/loader.c
|
||||
+++ b/dlls/ntdll/loader.c
|
||||
@@ -63,6 +63,7 @@ WINE_DECLARE_DEBUG_CHANNEL(pid);
|
||||
|
||||
typedef DWORD (CALLBACK *DLLENTRYPROC)(HMODULE,DWORD,LPVOID);
|
||||
|
||||
+static BOOL process_attaching = TRUE; /* set on process attach to avoid calling callbacks too early */
|
||||
static BOOL process_detaching = FALSE; /* set on process detach to avoid deadlocks with thread detach */
|
||||
static int free_lib_count; /* recursion depth of LdrUnloadDll calls */
|
||||
|
||||
@@ -443,7 +444,7 @@ static FARPROC find_forwarded_export( HMODULE module, const char *forward, LPCWS
|
||||
{
|
||||
TRACE( "delay loading %s for '%s'\n", debugstr_w(mod_name), forward );
|
||||
if (load_dll( load_path, mod_name, 0, &wm ) == STATUS_SUCCESS &&
|
||||
- !(wm->ldr.Flags & LDR_DONT_RESOLVE_REFS))
|
||||
+ !(wm->ldr.Flags & LDR_DONT_RESOLVE_REFS) && !process_attaching)
|
||||
{
|
||||
if (process_attach( wm, NULL ) != STATUS_SUCCESS)
|
||||
{
|
||||
@@ -2961,6 +2962,7 @@ static NTSTATUS attach_process_dlls( void *wm )
|
||||
{
|
||||
NTSTATUS status;
|
||||
|
||||
+ process_attaching = FALSE;
|
||||
pthread_sigmask( SIG_UNBLOCK, &server_block_set, NULL );
|
||||
|
||||
RtlEnterCriticalSection( &loader_section );
|
||||
--
|
||||
2.8.0
|
||||
|
1
patches/ntdll-Attach_Process_DLLs/definition
Normal file
1
patches/ntdll-Attach_Process_DLLs/definition
Normal file
@@ -0,0 +1 @@
|
||||
Fixes: [40714] Ensure process_attach callbacks are not executed too early
|
@@ -1,4 +1,4 @@
|
||||
From cea071b746980986f7a1a5c502445588c95e6f37 Mon Sep 17 00:00:00 2001
|
||||
From 030cc76851a388c7e4f2eb5b1623c78b9611e0e9 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Sat, 13 Dec 2014 05:34:48 +0100
|
||||
Subject: ntdll: Implement loader redirection scheme.
|
||||
@@ -8,10 +8,10 @@ Subject: ntdll: Implement loader redirection scheme.
|
||||
1 file changed, 44 insertions(+), 22 deletions(-)
|
||||
|
||||
diff --git a/dlls/ntdll/loader.c b/dlls/ntdll/loader.c
|
||||
index 1e2e28e..94ca2f0 100644
|
||||
index 8db8087..c78f79a 100644
|
||||
--- a/dlls/ntdll/loader.c
|
||||
+++ b/dlls/ntdll/loader.c
|
||||
@@ -92,6 +92,7 @@ struct builtin_load_info
|
||||
@@ -93,6 +93,7 @@ struct builtin_load_info
|
||||
{
|
||||
const WCHAR *load_path;
|
||||
const WCHAR *filename;
|
||||
@@ -19,7 +19,7 @@ index 1e2e28e..94ca2f0 100644
|
||||
NTSTATUS status;
|
||||
WINE_MODREF *wm;
|
||||
};
|
||||
@@ -117,7 +118,8 @@ static WINE_MODREF *cached_modref;
|
||||
@@ -118,7 +119,8 @@ static WINE_MODREF *cached_modref;
|
||||
static WINE_MODREF *current_modref;
|
||||
static WINE_MODREF *last_failed_modref;
|
||||
|
||||
@@ -35,7 +35,7 @@ index 1e2e28e..94ca2f0 100644
|
||||
TRACE( "delay loading %s for '%s'\n", debugstr_w(mod_name), forward );
|
||||
- if (load_dll( load_path, mod_name, 0, &wm ) == STATUS_SUCCESS &&
|
||||
+ if (load_dll( load_path, mod_name, NULL, 0, &wm ) == STATUS_SUCCESS &&
|
||||
!(wm->ldr.Flags & LDR_DONT_RESOLVE_REFS))
|
||||
!(wm->ldr.Flags & LDR_DONT_RESOLVE_REFS) && !process_attaching)
|
||||
{
|
||||
if (process_attach( wm, NULL ) != STATUS_SUCCESS)
|
||||
@@ -599,7 +601,7 @@ static BOOL import_dll( HMODULE module, const IMAGE_IMPORT_DESCRIPTOR *descr, LP
|
||||
@@ -65,7 +65,7 @@ index 1e2e28e..94ca2f0 100644
|
||||
{
|
||||
WINE_MODREF *wm;
|
||||
const WCHAR *p;
|
||||
@@ -950,7 +952,7 @@ static WINE_MODREF *alloc_module( HMODULE hModule, LPCWSTR filename )
|
||||
@@ -949,7 +951,7 @@ static WINE_MODREF *alloc_module( HMODULE hModule, LPCWSTR filename )
|
||||
wm->ldr.TimeDateStamp = 0;
|
||||
wm->ldr.ActivationContext = 0;
|
||||
|
||||
@@ -74,7 +74,7 @@ index 1e2e28e..94ca2f0 100644
|
||||
if ((p = strrchrW( wm->ldr.FullDllName.Buffer, '\\' ))) p++;
|
||||
else p = wm->ldr.FullDllName.Buffer;
|
||||
RtlInitUnicodeString( &wm->ldr.BaseDllName, p );
|
||||
@@ -1589,7 +1591,7 @@ static void load_builtin_callback( void *module, const char *filename )
|
||||
@@ -1577,7 +1579,7 @@ static void load_builtin_callback( void *module, const char *filename )
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -83,7 +83,7 @@ index 1e2e28e..94ca2f0 100644
|
||||
RtlFreeHeap( GetProcessHeap(), 0, fullname );
|
||||
if (!wm)
|
||||
{
|
||||
@@ -1771,8 +1773,8 @@ static NTSTATUS perform_relocations( void *module, SIZE_T len )
|
||||
@@ -1759,8 +1761,8 @@ static NTSTATUS perform_relocations( void *module, SIZE_T len )
|
||||
/******************************************************************************
|
||||
* load_native_dll (internal)
|
||||
*/
|
||||
@@ -94,7 +94,7 @@ index 1e2e28e..94ca2f0 100644
|
||||
{
|
||||
void *module;
|
||||
HANDLE mapping;
|
||||
@@ -1806,7 +1808,7 @@ static NTSTATUS load_native_dll( LPCWSTR load_path, LPCWSTR name, HANDLE file,
|
||||
@@ -1794,7 +1796,7 @@ static NTSTATUS load_native_dll( LPCWSTR load_path, LPCWSTR name, HANDLE file,
|
||||
|
||||
/* create the MODREF */
|
||||
|
||||
@@ -103,7 +103,7 @@ index 1e2e28e..94ca2f0 100644
|
||||
{
|
||||
status = STATUS_NO_MEMORY;
|
||||
goto done;
|
||||
@@ -1870,8 +1872,8 @@ done:
|
||||
@@ -1858,8 +1860,8 @@ done:
|
||||
/***********************************************************************
|
||||
* load_builtin_dll
|
||||
*/
|
||||
@@ -114,7 +114,7 @@ index 1e2e28e..94ca2f0 100644
|
||||
{
|
||||
char error[256], dllname[MAX_PATH];
|
||||
const WCHAR *name, *p;
|
||||
@@ -1891,6 +1893,7 @@ static NTSTATUS load_builtin_dll( LPCWSTR load_path, LPCWSTR path, HANDLE file,
|
||||
@@ -1879,6 +1881,7 @@ static NTSTATUS load_builtin_dll( LPCWSTR load_path, LPCWSTR path, HANDLE file,
|
||||
*/
|
||||
info.load_path = load_path;
|
||||
info.filename = NULL;
|
||||
@@ -122,7 +122,7 @@ index 1e2e28e..94ca2f0 100644
|
||||
info.status = STATUS_SUCCESS;
|
||||
info.wm = NULL;
|
||||
|
||||
@@ -2331,14 +2334,14 @@ overflow:
|
||||
@@ -2319,14 +2322,14 @@ overflow:
|
||||
return STATUS_BUFFER_TOO_SMALL;
|
||||
}
|
||||
|
||||
@@ -139,7 +139,7 @@ index 1e2e28e..94ca2f0 100644
|
||||
{
|
||||
BOOL data = flags & (LOAD_LIBRARY_AS_DATAFILE | LOAD_LIBRARY_AS_DATAFILE_EXCLUSIVE);
|
||||
enum loadorder loadorder;
|
||||
@@ -2376,6 +2379,25 @@ static NTSTATUS load_dll( LPCWSTR load_path, LPCWSTR libname, DWORD flags, WINE_
|
||||
@@ -2364,6 +2367,25 @@ static NTSTATUS load_dll( LPCWSTR load_path, LPCWSTR libname, DWORD flags, WINE_
|
||||
}
|
||||
|
||||
main_exe = get_modref( NtCurrentTeb()->Peb->ImageBaseAddress );
|
||||
@@ -165,7 +165,7 @@ index 1e2e28e..94ca2f0 100644
|
||||
loadorder = get_load_order( main_exe ? main_exe->ldr.BaseDllName.Buffer : NULL, filename );
|
||||
|
||||
if (handle && is_fake_dll( handle ))
|
||||
@@ -2398,22 +2420,22 @@ static NTSTATUS load_dll( LPCWSTR load_path, LPCWSTR libname, DWORD flags, WINE_
|
||||
@@ -2386,22 +2408,22 @@ static NTSTATUS load_dll( LPCWSTR load_path, LPCWSTR libname, DWORD flags, WINE_
|
||||
if (!handle) nts = STATUS_DLL_NOT_FOUND;
|
||||
else
|
||||
{
|
||||
@@ -193,7 +193,7 @@ index 1e2e28e..94ca2f0 100644
|
||||
if (nts == STATUS_SUCCESS && loadorder == LO_DEFAULT &&
|
||||
(MODULE_InitDLL( *pwm, DLL_WINE_PREATTACH, NULL ) != STATUS_SUCCESS))
|
||||
{
|
||||
@@ -2423,7 +2445,7 @@ static NTSTATUS load_dll( LPCWSTR load_path, LPCWSTR libname, DWORD flags, WINE_
|
||||
@@ -2411,7 +2433,7 @@ static NTSTATUS load_dll( LPCWSTR load_path, LPCWSTR libname, DWORD flags, WINE_
|
||||
nts = STATUS_DLL_NOT_FOUND;
|
||||
}
|
||||
if (nts == STATUS_DLL_NOT_FOUND && loadorder != LO_BUILTIN)
|
||||
@@ -202,7 +202,7 @@ index 1e2e28e..94ca2f0 100644
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -2456,7 +2478,7 @@ NTSTATUS WINAPI DECLSPEC_HOTPATCH LdrLoadDll(LPCWSTR path_name, DWORD flags,
|
||||
@@ -2444,7 +2466,7 @@ NTSTATUS WINAPI DECLSPEC_HOTPATCH LdrLoadDll(LPCWSTR path_name, DWORD flags,
|
||||
RtlEnterCriticalSection( &loader_section );
|
||||
|
||||
if (!path_name) path_name = NtCurrentTeb()->Peb->ProcessParameters->DllPath.Buffer;
|
||||
@@ -211,7 +211,7 @@ index 1e2e28e..94ca2f0 100644
|
||||
|
||||
if (nts == STATUS_SUCCESS && !(wm->ldr.Flags & LDR_DONT_RESOLVE_REFS))
|
||||
{
|
||||
@@ -3419,7 +3441,7 @@ void __wine_process_init(void)
|
||||
@@ -3410,7 +3432,7 @@ void __wine_process_init(void)
|
||||
/* setup the load callback and create ntdll modref */
|
||||
wine_dll_set_callback( load_builtin_callback );
|
||||
|
||||
@@ -221,5 +221,5 @@ index 1e2e28e..94ca2f0 100644
|
||||
MESSAGE( "wine: could not load kernel32.dll, status %x\n", status );
|
||||
exit(1);
|
||||
--
|
||||
2.7.1
|
||||
2.8.0
|
||||
|
||||
|
@@ -1,4 +1,5 @@
|
||||
Fixes: Support for loader dll redirections
|
||||
Depends: ntdll-Loader_Machine_Type
|
||||
Depends: ntdll-DllOverrides_WOW64
|
||||
Depends: ntdll-Attach_Process_DLLs
|
||||
Category: stable
|
||||
|
@@ -1,4 +1,4 @@
|
||||
From cbdf0dd0760cda9667c1b7a3ae458a7a6724dc58 Mon Sep 17 00:00:00 2001
|
||||
From d804ddb4f49172915b88eb048cfe532a96eb41df Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Lackner <sebastian@fds-team.de>
|
||||
Date: Sat, 30 May 2015 02:23:15 +0200
|
||||
Subject: ntdll: Add support for hiding wine version information from
|
||||
@@ -10,22 +10,23 @@ Subject: ntdll: Add support for hiding wine version information from
|
||||
2 files changed, 100 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/dlls/ntdll/loader.c b/dlls/ntdll/loader.c
|
||||
index 921bf57..6390df0 100644
|
||||
index 130d154..d84e156 100644
|
||||
--- a/dlls/ntdll/loader.c
|
||||
+++ b/dlls/ntdll/loader.c
|
||||
@@ -56,8 +56,11 @@ WINE_DECLARE_DEBUG_CHANNEL(imports);
|
||||
@@ -63,9 +63,12 @@ WINE_DECLARE_DEBUG_CHANNEL(pid);
|
||||
|
||||
typedef DWORD (CALLBACK *DLLENTRYPROC)(HMODULE,DWORD,LPVOID);
|
||||
|
||||
+#define IS_OPTION_TRUE(ch) ((ch) == 'y' || (ch) == 'Y' || (ch) == 't' || (ch) == 'T' || (ch) == '1')
|
||||
+
|
||||
static BOOL process_attaching = TRUE; /* set on process attach to avoid calling callbacks too early */
|
||||
static BOOL process_detaching = FALSE; /* set on process detach to avoid deadlocks with thread detach */
|
||||
static int free_lib_count; /* recursion depth of LdrUnloadDll calls */
|
||||
+static BOOL hide_wine_exports = FALSE; /* try to hide ntdll wine exports from applications */
|
||||
|
||||
static const char * const reason_names[] =
|
||||
{
|
||||
@@ -1395,6 +1398,96 @@ NTSTATUS WINAPI LdrUnlockLoaderLock( ULONG flags, ULONG_PTR magic )
|
||||
@@ -1543,6 +1546,96 @@ NTSTATUS WINAPI LdrUnlockLoaderLock( ULONG flags, ULONG_PTR magic )
|
||||
}
|
||||
|
||||
|
||||
@@ -122,7 +123,7 @@ index 921bf57..6390df0 100644
|
||||
/******************************************************************
|
||||
* LdrGetProcedureAddress (NTDLL.@)
|
||||
*/
|
||||
@@ -1415,7 +1508,7 @@ NTSTATUS WINAPI LdrGetProcedureAddress(HMODULE module, const ANSI_STRING *name,
|
||||
@@ -1563,7 +1656,7 @@ NTSTATUS WINAPI LdrGetProcedureAddress(HMODULE module, const ANSI_STRING *name,
|
||||
LPCWSTR load_path = NtCurrentTeb()->Peb->ProcessParameters->DllPath.Buffer;
|
||||
void *proc = name ? find_named_export( module, exports, exp_size, name->Buffer, -1, load_path )
|
||||
: find_ordinal_export( module, exports, exp_size, ord - exports->Base, load_path );
|
||||
@@ -131,7 +132,7 @@ index 921bf57..6390df0 100644
|
||||
{
|
||||
*address = proc;
|
||||
ret = STATUS_SUCCESS;
|
||||
@@ -2897,6 +2990,7 @@ void WINAPI LdrInitializeThunk( void *kernel_start, ULONG_PTR unknown2,
|
||||
@@ -3198,6 +3291,7 @@ void WINAPI LdrInitializeThunk( void *kernel_start, ULONG_PTR unknown2,
|
||||
if (!peb->ProcessParameters->WindowTitle.Buffer)
|
||||
peb->ProcessParameters->WindowTitle = wm->ldr.FullDllName;
|
||||
version_init( wm->ldr.FullDllName.Buffer );
|
||||
@@ -140,10 +141,10 @@ index 921bf57..6390df0 100644
|
||||
|
||||
LdrQueryImageFileExecutionOptions( &peb->ProcessParameters->ImagePathName, globalflagW,
|
||||
diff --git a/dlls/ntdll/ntdll_misc.h b/dlls/ntdll/ntdll_misc.h
|
||||
index cbd19db..3a55926 100644
|
||||
index 5e4c39e..723c3d8 100644
|
||||
--- a/dlls/ntdll/ntdll_misc.h
|
||||
+++ b/dlls/ntdll/ntdll_misc.h
|
||||
@@ -268,4 +268,9 @@ extern HANDLE keyed_event DECLSPEC_HIDDEN;
|
||||
@@ -266,4 +266,9 @@ extern HANDLE keyed_event DECLSPEC_HIDDEN;
|
||||
|
||||
NTSTATUS WINAPI RtlHashUnicodeString(PCUNICODE_STRING,BOOLEAN,ULONG,ULONG*);
|
||||
|
||||
@@ -154,5 +155,5 @@ index cbd19db..3a55926 100644
|
||||
+
|
||||
#endif
|
||||
--
|
||||
2.4.2
|
||||
2.8.0
|
||||
|
||||
|
@@ -1 +1,2 @@
|
||||
Fixes: [38656] Add support for hiding wine version information from applications
|
||||
Depends: ntdll-Attach_Process_DLLs
|
||||
|
@@ -1,70 +0,0 @@
|
||||
From b8f84b9dea7d81bf4b32853ad7c20cef9d466baa Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Thu, 26 May 2016 02:27:29 +0200
|
||||
Subject: ntdll: Do not sort the InMemoryOrderModuleList by memory addresses.
|
||||
|
||||
---
|
||||
dlls/ntdll/loader.c | 19 ++++---------------
|
||||
1 file changed, 4 insertions(+), 15 deletions(-)
|
||||
|
||||
diff --git a/dlls/ntdll/loader.c b/dlls/ntdll/loader.c
|
||||
index a0049fe..d9176d7 100644
|
||||
--- a/dlls/ntdll/loader.c
|
||||
+++ b/dlls/ntdll/loader.c
|
||||
@@ -355,7 +355,6 @@ static WINE_MODREF *get_modref( HMODULE hmod )
|
||||
mod = CONTAINING_RECORD(entry, LDR_MODULE, InMemoryOrderModuleList);
|
||||
if (mod->BaseAddress == hmod)
|
||||
return cached_modref = CONTAINING_RECORD(mod, WINE_MODREF, ldr);
|
||||
- if (mod->BaseAddress > (void*)hmod) break;
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
@@ -932,7 +931,6 @@ static WINE_MODREF *alloc_module( HMODULE hModule, LPCWSTR filename )
|
||||
WINE_MODREF *wm;
|
||||
const WCHAR *p;
|
||||
const IMAGE_NT_HEADERS *nt = RtlImageNtHeader(hModule);
|
||||
- PLIST_ENTRY entry, mark;
|
||||
|
||||
if (!(wm = RtlAllocateHeap( GetProcessHeap(), 0, sizeof(*wm) ))) return NULL;
|
||||
|
||||
@@ -965,18 +963,8 @@ static WINE_MODREF *alloc_module( HMODULE hModule, LPCWSTR filename )
|
||||
|
||||
InsertTailList(&NtCurrentTeb()->Peb->LdrData->InLoadOrderModuleList,
|
||||
&wm->ldr.InLoadOrderModuleList);
|
||||
-
|
||||
- /* insert module in MemoryList, sorted in increasing base addresses */
|
||||
- mark = &NtCurrentTeb()->Peb->LdrData->InMemoryOrderModuleList;
|
||||
- for (entry = mark->Flink; entry != mark; entry = entry->Flink)
|
||||
- {
|
||||
- if (CONTAINING_RECORD(entry, LDR_MODULE, InMemoryOrderModuleList)->BaseAddress > wm->ldr.BaseAddress)
|
||||
- break;
|
||||
- }
|
||||
- entry->Blink->Flink = &wm->ldr.InMemoryOrderModuleList;
|
||||
- wm->ldr.InMemoryOrderModuleList.Blink = entry->Blink;
|
||||
- wm->ldr.InMemoryOrderModuleList.Flink = entry;
|
||||
- entry->Blink = &wm->ldr.InMemoryOrderModuleList;
|
||||
+ InsertTailList(&NtCurrentTeb()->Peb->LdrData->InMemoryOrderModuleList,
|
||||
+ &wm->ldr.InMemoryOrderModuleList);
|
||||
|
||||
/* wait until init is called for inserting into this list */
|
||||
wm->ldr.InInitializationOrderModuleList.Flink = NULL;
|
||||
@@ -1386,7 +1374,6 @@ NTSTATUS WINAPI LdrFindEntryForAddress(const void* addr, PLDR_MODULE* pmod)
|
||||
*pmod = mod;
|
||||
return STATUS_SUCCESS;
|
||||
}
|
||||
- if (mod->BaseAddress > addr) break;
|
||||
}
|
||||
return STATUS_NO_MORE_ENTRIES;
|
||||
}
|
||||
@@ -3088,6 +3075,8 @@ void WINAPI LdrInitializeThunk( void *kernel_start, ULONG_PTR unknown2,
|
||||
/* 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.InMemoryOrderModuleList );
|
||||
+ InsertHeadList( &peb->LdrData->InMemoryOrderModuleList, &wm->ldr.InMemoryOrderModuleList );
|
||||
|
||||
if ((status = virtual_alloc_thread_stack( NtCurrentTeb(), 0, 0 )) != STATUS_SUCCESS) goto error;
|
||||
if ((status = server_init_process_done()) != STATUS_SUCCESS) goto error;
|
||||
--
|
||||
2.8.0
|
||||
|
@@ -1 +0,0 @@
|
||||
Fixes: [40623] Do not sort the InMemoryOrderModuleList by memory addresses
|
@@ -1,96 +0,0 @@
|
||||
From 9aaa34a9cd1e72b82212933dffcbf07692d3fa64 Mon Sep 17 00:00:00 2001
|
||||
From: Dmitry Timoshkov <dmitry@baikal.ru>
|
||||
Date: Sat, 7 May 2016 11:56:17 +0800
|
||||
Subject: ntdll: Add support for fs to
|
||||
NtQueryInformationThread(ThreadDescriptorTableEntry).
|
||||
|
||||
This patch fixes one of the problems reported in the bug 40583.
|
||||
---
|
||||
dlls/kernel32/tests/thread.c | 41 +++++++++++++++++++++++++++++++++++++++++
|
||||
dlls/ntdll/thread.c | 11 +++++++++++
|
||||
2 files changed, 52 insertions(+)
|
||||
|
||||
diff --git a/dlls/kernel32/tests/thread.c b/dlls/kernel32/tests/thread.c
|
||||
index e0de3f9..67c5a37 100644
|
||||
--- a/dlls/kernel32/tests/thread.c
|
||||
+++ b/dlls/kernel32/tests/thread.c
|
||||
@@ -1100,6 +1100,46 @@ static void test_SetThreadContext(void)
|
||||
CloseHandle( thread );
|
||||
}
|
||||
|
||||
+static void test_GetThreadSelectorEntry(void)
|
||||
+{
|
||||
+ TEB *teb = NtCurrentTeb();
|
||||
+ LDT_ENTRY entry;
|
||||
+ CONTEXT ctx;
|
||||
+ TEB *teb_fs;
|
||||
+ DWORD ret;
|
||||
+
|
||||
+ memset(&ctx, 0x11, sizeof(ctx));
|
||||
+ ctx.ContextFlags = CONTEXT_SEGMENTS | CONTEXT_CONTROL;
|
||||
+ ret = GetThreadContext(GetCurrentThread(), &ctx);
|
||||
+ ok(ret, "GetThreadContext error %u\n", GetLastError());
|
||||
+ ok(!HIWORD(ctx.SegCs) && !HIWORD(ctx.SegDs) && !HIWORD(ctx.SegEs) && !HIWORD(ctx.SegFs) && !HIWORD(ctx.SegGs),
|
||||
+ "cs %08x, ds %08x, es %08x, fs %08x, gs %08x\n", ctx.SegCs, ctx.SegDs, ctx.SegEs, ctx.SegFs, ctx.SegGs);
|
||||
+
|
||||
+ ret = GetThreadSelectorEntry(GetCurrentThread(), ctx.SegCs, &entry);
|
||||
+ ok(ret, "GetThreadSelectorEntry(SegCs) error %u\n", GetLastError());
|
||||
+
|
||||
+ ret = GetThreadSelectorEntry(GetCurrentThread(), ctx.SegDs, &entry);
|
||||
+ ok(ret, "GetThreadSelectorEntry(SegDs) error %u\n", GetLastError());
|
||||
+
|
||||
+ memset(&entry, 0x11, sizeof(entry));
|
||||
+ ret = GetThreadSelectorEntry(GetCurrentThread(), ctx.SegFs, &entry);
|
||||
+ ok(ret, "GetThreadSelectorEntry(SegFs) error %u\n", GetLastError());
|
||||
+
|
||||
+ teb_fs = (TEB *)((entry.HighWord.Bits.BaseHi << 24) | (entry.HighWord.Bits.BaseMid << 16) | entry.BaseLow);
|
||||
+ ok(teb_fs == teb, "teb_fs %p != teb %p\n", teb_fs, teb);
|
||||
+
|
||||
+ ret = (entry.HighWord.Bits.LimitHi << 16) | entry.LimitLow;
|
||||
+ ok(ret == 0x0fff || ret == 0x4000 /* testbot win7u */, "got %#x\n", ret);
|
||||
+
|
||||
+ ok(entry.HighWord.Bits.Dpl == 3, "got %#x\n", entry.HighWord.Bits.Dpl);
|
||||
+ ok(entry.HighWord.Bits.Sys == 0, "got %#x\n", entry.HighWord.Bits.Sys);
|
||||
+ ok(entry.HighWord.Bits.Pres == 1, "got %#x\n", entry.HighWord.Bits.Pres);
|
||||
+ ok(entry.HighWord.Bits.Granularity == 0, "got %#x\n", entry.HighWord.Bits.Granularity);
|
||||
+ ok(entry.HighWord.Bits.Default_Big == 1, "got %#x\n", entry.HighWord.Bits.Default_Big);
|
||||
+ ok(entry.HighWord.Bits.Type == 0x13, "got %#x\n", entry.HighWord.Bits.Type);
|
||||
+ ok(entry.HighWord.Bits.Reserved_0 == 0, "got %#x\n", entry.HighWord.Bits.Reserved_0);
|
||||
+}
|
||||
+
|
||||
#endif /* __i386__ */
|
||||
|
||||
static HANDLE finish_event;
|
||||
@@ -1965,6 +2005,7 @@ START_TEST(thread)
|
||||
test_GetThreadExitCode();
|
||||
#ifdef __i386__
|
||||
test_SetThreadContext();
|
||||
+ test_GetThreadSelectorEntry();
|
||||
#endif
|
||||
test_QueueUserWorkItem();
|
||||
test_RegisterWaitForSingleObject();
|
||||
diff --git a/dlls/ntdll/thread.c b/dlls/ntdll/thread.c
|
||||
index f6a5fbe..8465a26 100644
|
||||
--- a/dlls/ntdll/thread.c
|
||||
+++ b/dlls/ntdll/thread.c
|
||||
@@ -1051,6 +1051,17 @@ NTSTATUS WINAPI NtQueryInformationThread( HANDLE handle, THREADINFOCLASS class,
|
||||
{
|
||||
if (sel == (wine_get_cs() & ~3))
|
||||
tdi->Entry.HighWord.Bits.Type |= 8; /* code segment */
|
||||
+ else if (sel == (ntdll_get_thread_data()->fs & ~3))
|
||||
+ {
|
||||
+ ULONG_PTR fs_base = (ULONG_PTR)NtCurrentTeb();
|
||||
+ tdi->Entry.BaseLow = fs_base & 0xffff;
|
||||
+ tdi->Entry.HighWord.Bits.BaseMid = (fs_base >> 16) & 0xff;
|
||||
+ tdi->Entry.HighWord.Bits.BaseHi = (fs_base >> 24) & 0xff;
|
||||
+ tdi->Entry.LimitLow = 0x0fff;
|
||||
+ tdi->Entry.HighWord.Bits.LimitHi = 0;
|
||||
+ tdi->Entry.HighWord.Bits.Granularity = 0;
|
||||
+ tdi->Entry.HighWord.Bits.Type = 0x13;
|
||||
+ }
|
||||
else status = STATUS_ACCESS_DENIED;
|
||||
}
|
||||
}
|
||||
--
|
||||
2.8.0
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user