Wine-Devel
By thread
wine-devel@list.winehq.org
By month
Messages by month
- ----- 2026 -----
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2005 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2004 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2003 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2002 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2001 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
May 2022
- 77 participants
- 2907 messages
[PATCH 1/3] dwrite/opentype: Correct flags field size for layout lookup structure.
by Nikolay Sivov
Higher 16 bits are used for mark filtering set index.
Signed-off-by: Nikolay Sivov <nsivov(a)codeweavers.com>
---
dlls/dwrite/opentype.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/dlls/dwrite/opentype.c b/dlls/dwrite/opentype.c
index 7df0d207bc6..7df153e681d 100644
--- a/dlls/dwrite/opentype.c
+++ b/dlls/dwrite/opentype.c
@@ -3619,10 +3619,10 @@ struct lookup
{
unsigned short index;
unsigned short type;
- unsigned short flags;
unsigned short subtable_count;
unsigned int mask;
+ unsigned int flags;
unsigned int offset;
unsigned int auto_zwnj : 1;
unsigned int auto_zwj : 1;
@@ -4542,9 +4542,9 @@ static int __cdecl lookups_sorting_compare(const void *a, const void *b)
static BOOL opentype_layout_init_lookup(const struct ot_gsubgpos_table *table, unsigned short lookup_index,
const struct shaping_feature *feature, struct lookup *lookup)
{
- unsigned short subtable_count, lookup_type, flags, mark_filtering_set;
+ unsigned short subtable_count, lookup_type, mark_filtering_set;
const struct ot_lookup_table *lookup_table;
- unsigned int offset;
+ unsigned int offset, flags;
if (!(offset = table_read_be_word(&table->table, table->lookup_list +
FIELD_OFFSET(struct ot_lookup_list, lookup[lookup_index]))))
--
2.35.1
May 2, 2022
Re: [PATCH v2 2/2] iphlpapi: Add GetPerTcpConnectionEStats stub.
by Mohamad Al-Jaf
On Fri, Apr 29, 2022 at 1:12 AM Austin English <austinenglish(a)gmail.com> wrote:
> I didn't originally add my sign of because the patch wasn't tested.
>
> I have no problem with you taking over the patch, thanks for checking.
>
> I'm traveling for the next couple weeks, anyway, so won't have a chance to do much with it for a while.
Sounds good. I wanted to make sure you were okay with the changes.
--
Kind regards,
Mohamad
May 2, 2022
[PATCH v2 1/1] dlls/dbghelp: introduce symt_find_symbol_at()
by Eric Pouech
From: Eric Pouech <eric.pouech(a)gmail.com>
To be used in place of symt_find_nearest().
symt_find_symbol_at() ensures that the address passed is within the
boundaries of the returned symbol (while find_nearest() doesn't).
This fixes erroneous backtraces in debugger like:
$ ./wine winedbg notepad
WineDbg starting on pid 0104
RtlDefaultNpAcl () at Z:\home\eric\work\wine\dlls\ntdll\sec.c:1731
0x00000170054805 ntdll+0x54805 [Z:\home\eric\work\wine\dlls\ntdll\sec.c:1731]: ret
1731 }
Wine-dbg>bt
Backtrace:
=>0 0x00000170054805 RtlDefaultNpAcl+0x2d5(pAcl=<internal error>) [Z:\home\eric\work\wine\dlls\ntdll\sec.c:1731] in ntdll (0x000001700701a4)
1 0x0000017002d6c4 __wine_pop_frame(pAcl=<internal error>) [Z:\home\eric\work\wine\include\wine\exception.h:273] in ntdll (0x000001700701a4)
2 0x0000017002d6c4 process_breakpoint+0x84() [Z:\home\eric\work\wine\dlls\ntdll\loader.c:3912] in ntdll (0x000001700701a4)
3 0x000001700354c9 LdrInitializeThunk+0x509(context=<register R13 not accessible in this frame>, unknown2=<internal error>, unknown3=<internal error>, unknown4=<internal error>) [Z:\home\eric\work\wine\dlls\ntdll\loader.c:4200] in ntdll (0x000001700701a4)
where RtlDefaultNpAcl() has nothing to do here (it's the symbol below RIP
and we don't have a symbol with debug information for that address).
Signed-off-by: Eric Pouech <eric.pouech(a)gmail.com>
---
dlls/dbghelp/dbghelp.c | 2 +-
dlls/dbghelp/dbghelp_private.h | 2 ++
dlls/dbghelp/dwarf.c | 2 +-
dlls/dbghelp/msc.c | 8 ++++----
dlls/dbghelp/symbol.c | 24 +++++++++++++++++++-----
5 files changed, 27 insertions(+), 11 deletions(-)
diff --git a/dlls/dbghelp/dbghelp.c b/dlls/dbghelp/dbghelp.c
index 6d775b633f8..c154d8d9713 100644
--- a/dlls/dbghelp/dbghelp.c
+++ b/dlls/dbghelp/dbghelp.c
@@ -672,7 +672,7 @@ BOOL WINAPI SymSetScopeFromAddr(HANDLE hProcess, ULONG64 addr)
if (!module_init_pair(&pair, hProcess, addr)) return FALSE;
pair.pcs->localscope_pc = addr;
- if ((sym = symt_find_nearest(pair.effective, addr)) != NULL && sym->symt.tag == SymTagFunction)
+ if ((sym = symt_find_symbol_at(pair.effective, addr)) != NULL && sym->symt.tag == SymTagFunction)
pair.pcs->localscope_symt = &sym->symt;
else
pair.pcs->localscope_symt = NULL;
diff --git a/dlls/dbghelp/dbghelp_private.h b/dlls/dbghelp/dbghelp_private.h
index c9de237c4b9..507724414a5 100644
--- a/dlls/dbghelp/dbghelp_private.h
+++ b/dlls/dbghelp/dbghelp_private.h
@@ -811,6 +811,8 @@ extern void copy_symbolW(SYMBOL_INFOW* siw, const SYMBOL_INFO* si) DECLS
extern void symbol_setname(SYMBOL_INFO* si, const char* name) DECLSPEC_HIDDEN;
extern struct symt_ht*
symt_find_nearest(struct module* module, DWORD_PTR addr) DECLSPEC_HIDDEN;
+extern struct symt_ht*
+ symt_find_symbol_at(struct module* module, DWORD_PTR addr) DECLSPEC_HIDDEN;
extern struct symt_module*
symt_new_module(struct module* module) DECLSPEC_HIDDEN;
extern struct symt_compiland*
diff --git a/dlls/dbghelp/dwarf.c b/dlls/dbghelp/dwarf.c
index 0076b19e5cb..b81f83ac90b 100644
--- a/dlls/dbghelp/dwarf.c
+++ b/dlls/dbghelp/dwarf.c
@@ -2584,7 +2584,7 @@ static void dwarf2_set_line_number(struct module* module, ULONG_PTR address,
TRACE("%s %Ix %s %u\n",
debugstr_w(module->modulename), address, debugstr_a(source_get(module, *psrc)), line);
- symt = symt_find_nearest(module, address);
+ symt = symt_find_symbol_at(module, address);
if (symt_check_tag(&symt->symt, SymTagFunction))
{
func = (struct symt_function*)symt;
diff --git a/dlls/dbghelp/msc.c b/dlls/dbghelp/msc.c
index 56c0f8b58e8..997661f2912 100644
--- a/dlls/dbghelp/msc.c
+++ b/dlls/dbghelp/msc.c
@@ -1461,7 +1461,7 @@ static void codeview_snarf_linetab(const struct msc_debug_info* msc_dbg, const B
*/
if (!func || addr >= func->address + func->size)
{
- func = (struct symt_function*)symt_find_nearest(msc_dbg->module, addr);
+ func = (struct symt_function*)symt_find_symbol_at(msc_dbg->module, addr);
/* FIXME: at least labels support line numbers */
if (!symt_check_tag(&func->symt, SymTagFunction) && !symt_check_tag(&func->symt, SymTagInlineSite))
{
@@ -1534,7 +1534,7 @@ static void codeview_snarf_linetab2(const struct msc_debug_info* msc_dbg, const
lines = CV_RECORD_AFTER(files_hdr);
for (i = 0; i < files_hdr->nLines; i++)
{
- func = (struct symt_function*)symt_find_nearest(msc_dbg->module, lineblk_base + lines[i].offset);
+ func = (struct symt_function*)symt_find_symbol_at(msc_dbg->module, lineblk_base + lines[i].offset);
/* FIXME: at least labels support line numbers */
if (!symt_check_tag(&func->symt, SymTagFunction) && !symt_check_tag(&func->symt, SymTagInlineSite))
{
@@ -1619,7 +1619,7 @@ static inline void codeview_add_variable(const struct msc_debug_info* msc_dbg,
loc.kind = in_tls ? loc_tlsrel : loc_absolute;
loc.reg = 0;
loc.offset = in_tls ? offset : codeview_get_address(msc_dbg, segment, offset);
- if (force || in_tls || !symt_find_nearest(msc_dbg->module, loc.offset))
+ if (force || in_tls || !symt_find_symbol_at(msc_dbg->module, loc.offset))
{
symt_new_global_variable(msc_dbg->module, compiland,
name, is_local, loc, 0,
@@ -2501,7 +2501,7 @@ static BOOL codeview_snarf(const struct msc_debug_info* msc_dbg,
if (!top_func)
{
ULONG_PTR parent_addr = codeview_get_address(msc_dbg, sym->sepcode_v3.sectParent, sym->sepcode_v3.offParent);
- struct symt_ht* parent = symt_find_nearest(msc_dbg->module, parent_addr);
+ struct symt_ht* parent = symt_find_symbol_at(msc_dbg->module, parent_addr);
if (symt_check_tag(&parent->symt, SymTagFunction))
{
struct symt_function* pfunc = (struct symt_function*)parent;
diff --git a/dlls/dbghelp/symbol.c b/dlls/dbghelp/symbol.c
index 64f376b42f0..a81feb56b8d 100644
--- a/dlls/dbghelp/symbol.c
+++ b/dlls/dbghelp/symbol.c
@@ -1027,7 +1027,7 @@ static void symt_get_length(struct module* module, const struct symt* symt, ULON
if (symt_get_info(module, symt, TI_GET_TYPE, &type_index) &&
symt_get_info(module, symt_index2ptr(module, type_index), TI_GET_LENGTH, size)) return;
- *size = 0x1000; /* arbitrary value */
+ *size = 1; /* no size info */
}
/* needed by symt_find_nearest */
@@ -1104,6 +1104,20 @@ struct symt_ht* symt_find_nearest(struct module* module, DWORD_PTR addr)
return module->addr_sorttab[low];
}
+struct symt_ht* symt_find_symbol_at(struct module* module, DWORD_PTR addr)
+{
+ struct symt_ht* nearest = symt_find_nearest(module, addr);
+ if (nearest)
+ {
+ ULONG64 symaddr, symsize;
+ symt_get_address(&nearest->symt, &symaddr);
+ symt_get_length(module, &nearest->symt, &symsize);
+ if (addr < symaddr || addr >= symaddr + symsize)
+ nearest = NULL;
+ }
+ return nearest;
+}
+
static BOOL symt_enum_locals_helper(struct module_pair* pair,
const WCHAR* match, const struct sym_enum* se,
struct symt_function* func, const struct vector* v)
@@ -1262,7 +1276,7 @@ struct symt* symt_get_upper_inlined(struct symt_inlinesite* inlined)
/* lookup in module for an inline site (from addr and inline_ctx) */
struct symt_inlinesite* symt_find_inlined_site(struct module* module, DWORD64 addr, DWORD inline_ctx)
{
- struct symt_ht* symt = symt_find_nearest(module, addr);
+ struct symt_ht* symt = symt_find_symbol_at(module, addr);
if (symt_check_tag(&symt->symt, SymTagFunction))
{
@@ -1284,7 +1298,7 @@ DWORD symt_get_inlinesite_depth(HANDLE hProcess, DWORD64 addr)
if (module_init_pair(&pair, hProcess, addr))
{
- struct symt_ht* symt = symt_find_nearest(pair.effective, addr);
+ struct symt_ht* symt = symt_find_symbol_at(pair.effective, addr);
if (symt_check_tag(&symt->symt, SymTagFunction))
{
struct symt_inlinesite* inlined = symt_find_lowest_inlined((struct symt_function*)symt, addr);
@@ -1518,7 +1532,7 @@ BOOL WINAPI SymFromAddr(HANDLE hProcess, DWORD64 Address,
struct symt_ht* sym;
if (!module_init_pair(&pair, hProcess, Address)) return FALSE;
- if ((sym = symt_find_nearest(pair.effective, Address)) == NULL) return FALSE;
+ if ((sym = symt_find_symbol_at(pair.effective, Address)) == NULL) return FALSE;
symt_fill_sym_info(&pair, NULL, &sym->symt, Symbol);
if (Displacement)
@@ -1905,7 +1919,7 @@ static BOOL get_line_from_addr(HANDLE hProcess, DWORD64 addr,
struct symt_ht* symt;
if (!module_init_pair(&pair, hProcess, addr)) return FALSE;
- if ((symt = symt_find_nearest(pair.effective, addr)) == NULL) return FALSE;
+ if ((symt = symt_find_symbol_at(pair.effective, addr)) == NULL) return FALSE;
if (symt->symt.tag != SymTagFunction && symt->symt.tag != SymTagInlineSite) return FALSE;
return get_line_from_function(&pair, (struct symt_function*)symt, addr, pdwDisplacement, intl);
--
GitLab
https://gitlab.winehq.org/wine/wine/-/merge_requests/14
May 2, 2022
[PATCH v2 0/1] MR14: dlls/dbghelp: introduce symt_find_symbol_at()
by eric pouech (@epo)
To be used in place of symt_find_nearest().
symt_find_symbol_at() ensures that the address passed is within the
boundaries of the returned symbol (while find_nearest() doesn't).
This fixes erroneous backtraces in debugger like:
```
$ ./wine winedbg notepad
WineDbg starting on pid 0104
RtlDefaultNpAcl () at Z:\home\eric\work\wine\dlls\ntdll\sec.c:1731
0x00000170054805 ntdll+0x54805 [Z:\home\eric\work\wine\dlls\ntdll\sec.c:1731]: ret
1731 }
Wine-dbg>bt
Backtrace:
=>0 0x00000170054805 RtlDefaultNpAcl+0x2d5(pAcl=<internal error>) [Z:\home\eric\work\wine\dlls\ntdll\sec.c:1731] in ntdll (0x000001700701a4)
1 0x0000017002d6c4 __wine_pop_frame(pAcl=<internal error>) [Z:\home\eric\work\wine\include\wine\exception.h:273] in ntdll (0x000001700701a4)
2 0x0000017002d6c4 process_breakpoint+0x84() [Z:\home\eric\work\wine\dlls\ntdll\loader.c:3912] in ntdll (0x000001700701a4)
3 0x000001700354c9 LdrInitializeThunk+0x509(context=<register R13 not accessible in this frame>, unknown2=<internal error>, unknown3=<internal error>, unknown4=<internal error>) [Z:\home\eric\work\wine\dlls\ntdll\loader.c:4200] in ntdll (0x000001700701a4)
```
where RtlDefaultNpAcl() has nothing to do here (it's the symbol below RIP
and we don't have a symbol with debug information for that address).
Signed-off-by: Eric Pouech <eric.pouech(a)gmail.com>
--
v2: dlls/dbghelp: introduce symt_find_symbol_at()
https://gitlab.winehq.org/wine/wine/-/merge_requests/14
May 2, 2022
[PATCH v6 5/5] winusb: Update spec file.
by Mohamad Al-Jaf
File version: 10.0.19041.1 (Windows 10).
Signed-off-by: Mohamad Al-Jaf <mohamadaljaf(a)gmail.com>
---
dlls/winusb/winusb.spec | 15 +++++++++++++++
1 file changed, 15 insertions(+)
diff --git a/dlls/winusb/winusb.spec b/dlls/winusb/winusb.spec
index a0b57d58096..648ddf0a4f5 100644
--- a/dlls/winusb/winusb.spec
+++ b/dlls/winusb/winusb.spec
@@ -1,9 +1,13 @@
@ stub WinUsb_AbortPipe
+@ stub WinUsb_AbortPipeAsync
@ stub WinUsb_ControlTransfer
@ stub WinUsb_FlushPipe
@ stdcall WinUsb_Free(ptr)
+@ stub WinUsb_GetAdjustedFrameNumber
@ stub WinUsb_GetAssociatedInterface
@ stub WinUsb_GetCurrentAlternateSetting
+@ stub WinUsb_GetCurrentFrameNumber
+@ stub WinUsb_GetCurrentFrameNumberAndQpc
@ stub WinUsb_GetDescriptor
@ stub WinUsb_GetOverlappedResult
@ stub WinUsb_GetPipePolicy
@@ -14,9 +18,20 @@
@ stub WinUsb_QueryDeviceInformation
@ stub WinUsb_QueryInterfaceSettings
@ stub WinUsb_QueryPipe
+@ stub WinUsb_QueryPipeEx
+@ stub WinUsb_ReadIsochPipe
+@ stub WinUsb_ReadIsochPipeAsap
@ stub WinUsb_ReadPipe
+@ stub WinUsb_RegisterIsochBuffer
@ stub WinUsb_ResetPipe
+@ stub WinUsb_ResetPipeAsync
@ stub WinUsb_SetCurrentAlternateSetting
+@ stub WinUsb_SetCurrentAlternateSettingAsync
@ stub WinUsb_SetPipePolicy
@ stub WinUsb_SetPowerPolicy
+@ stub WinUsb_StartTrackingForTimeSync
+@ stub WinUsb_StopTrackingForTimeSync
+@ stub WinUsb_UnregisterIsochBuffer
+@ stub WinUsb_WriteIsochPipe
+@ stub WinUsb_WriteIsochPipeAsap
@ stub WinUsb_WritePipe
--
2.36.0
May 2, 2022
[PATCH v6 4/5] winusb: Add WinUsb_Free stub.
by Mohamad Al-Jaf
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=52677
Signed-off-by: Mohamad Al-Jaf <mohamadaljaf(a)gmail.com>
---
v6: - Include headers for ddk/winusbio.h dependent functions.
---
dlls/winusb/Makefile.in | 5 +++++
dlls/winusb/main.c | 41 +++++++++++++++++++++++++++++++++++++++++
dlls/winusb/winusb.spec | 2 +-
3 files changed, 47 insertions(+), 1 deletion(-)
create mode 100644 dlls/winusb/main.c
diff --git a/dlls/winusb/Makefile.in b/dlls/winusb/Makefile.in
index c8cab4dbed9..b6f01a1346c 100644
--- a/dlls/winusb/Makefile.in
+++ b/dlls/winusb/Makefile.in
@@ -1 +1,6 @@
MODULE = winusb.dll
+
+EXTRADLLFLAGS = -Wb,--prefer-native
+
+C_SRCS = \
+ main.c
diff --git a/dlls/winusb/main.c b/dlls/winusb/main.c
new file mode 100644
index 00000000000..8513adf0b52
--- /dev/null
+++ b/dlls/winusb/main.c
@@ -0,0 +1,41 @@
+/*
+ * Copyright (C) 2022 Mohamad Al-Jaf
+ *
+ * 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 "ddk/usb.h"
+#include "winusb.h"
+
+#include "wine/debug.h"
+
+WINE_DEFAULT_DEBUG_CHANNEL(winusb);
+
+/***********************************************************************
+ * WinUsb_Free (winusb.@)
+ */
+BOOL WINAPI WinUsb_Free(WINUSB_INTERFACE_HANDLE handle)
+{
+ FIXME( "(%p) - stub\n", handle );
+ return TRUE;
+}
diff --git a/dlls/winusb/winusb.spec b/dlls/winusb/winusb.spec
index 09371e9ee46..a0b57d58096 100644
--- a/dlls/winusb/winusb.spec
+++ b/dlls/winusb/winusb.spec
@@ -1,7 +1,7 @@
@ stub WinUsb_AbortPipe
@ stub WinUsb_ControlTransfer
@ stub WinUsb_FlushPipe
-@ stub WinUsb_Free
+@ stdcall WinUsb_Free(ptr)
@ stub WinUsb_GetAssociatedInterface
@ stub WinUsb_GetCurrentAlternateSetting
@ stub WinUsb_GetDescriptor
--
2.36.0
May 2, 2022
[PATCH v6 3/5] include/ddk: Add some USB request flags.
by Mohamad Al-Jaf
Signed-off-by: Mohamad Al-Jaf <mohamadaljaf(a)gmail.com>
---
include/ddk/usb100.h | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/include/ddk/usb100.h b/include/ddk/usb100.h
index 7ec74933d0f..0942c8f615a 100644
--- a/include/ddk/usb100.h
+++ b/include/ddk/usb100.h
@@ -28,6 +28,18 @@
#define USB_CONFIG_POWER_DESCRIPTOR_TYPE 0x07
#define USB_INTERFACE_POWER_DESCRIPTOR_TYPE 0x08
+#define USB_REQUEST_GET_STATUS 0x00
+#define USB_REQUEST_CLEAR_FEATURE 0x01
+#define USB_REQUEST_SET_FEATURE 0x03
+#define USB_REQUEST_SET_ADDRESS 0x05
+#define USB_REQUEST_GET_DESCRIPTOR 0x06
+#define USB_REQUEST_SET_DESCRIPTOR 0x07
+#define USB_REQUEST_GET_CONFIGURATION 0x08
+#define USB_REQUEST_SET_CONFIGURATION 0x09
+#define USB_REQUEST_GET_INTERFACE 0x0A
+#define USB_REQUEST_SET_INTERFACE 0x0B
+#define USB_REQUEST_SYNC_FRAME 0x0C
+
#include <pshpack1.h>
typedef struct _USB_DEVICE_DESCRIPTOR {
--
2.36.0
May 2, 2022
[PATCH v6 2/5] include: Add winusb.h file.
by Mohamad Al-Jaf
Signed-off-by: Mohamad Al-Jaf <mohamadaljaf(a)gmail.com>
---
v6: - Add ddk/winusbio dependent prototypes.
---
include/Makefile.in | 1 +
include/winusb.h | 101 ++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 102 insertions(+)
create mode 100644 include/winusb.h
diff --git a/include/Makefile.in b/include/Makefile.in
index 58bf7db1e13..89356d2a6ee 100644
--- a/include/Makefile.in
+++ b/include/Makefile.in
@@ -845,6 +845,7 @@ SOURCES = \
wintabx.h \
winternl.h \
wintrust.h \
+ winusb.h \
winuser.h \
winuser.rh \
winver.h \
diff --git a/include/winusb.h b/include/winusb.h
new file mode 100644
index 00000000000..d30c83db85c
--- /dev/null
+++ b/include/winusb.h
@@ -0,0 +1,101 @@
+/*
+ * Copyright (C) 2022 Mohamad Al-Jaf
+ *
+ * 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
+ */
+
+#ifndef _WINUSB_H_
+#define _WINUSB_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include "ddk/winusbio.h"
+
+typedef PVOID WINUSB_INTERFACE_HANDLE, *PWINUSB_INTERFACE_HANDLE;
+typedef PVOID WINUSB_ISOCH_BUFFER_HANDLE, *PWINUSB_ISOCH_BUFFER_HANDLE;
+
+typedef struct _WINUSB_SETUP_PACKET {
+ UCHAR RequestType;
+ UCHAR Request;
+ USHORT Value;
+ USHORT Index;
+ USHORT Length;
+} WINUSB_SETUP_PACKET, *PWINUSB_SETUP_PACKET;
+
+typedef struct _USB_START_TRACKING_FOR_TIME_SYNC_INFORMATION {
+ HANDLE TimeTrackingHandle;
+ BOOLEAN IsStartupDelayTolerable;
+} USB_START_TRACKING_FOR_TIME_SYNC_INFORMATION, *PUSB_START_TRACKING_FOR_TIME_SYNC_INFORMATION;
+
+typedef struct _USB_STOP_TRACKING_FOR_TIME_SYNC_INFORMATION {
+ HANDLE TimeTrackingHandle;
+} USB_STOP_TRACKING_FOR_TIME_SYNC_INFORMATION, *PUSB_STOP_TRACKING_FOR_TIME_SYNC_INFORMATION;
+
+typedef struct _USB_FRAME_NUMBER_AND_QPC_FOR_TIME_SYNC_INFORMATION {
+ HANDLE TimeTrackingHandle;
+ ULONG InputFrameNumber;
+ ULONG InputMicroFrameNumber;
+ LARGE_INTEGER QueryPerformanceCounterAtInputFrameOrMicroFrame;
+ LARGE_INTEGER QueryPerformanceCounterFrequency;
+ ULONG PredictedAccuracyInMicroSeconds;
+ ULONG CurrentGenerationID;
+ LARGE_INTEGER CurrentQueryPerformanceCounter;
+ ULONG CurrentHardwareFrameNumber;
+ ULONG CurrentHardwareMicroFrameNumber;
+ ULONG CurrentUSBFrameNumber;
+} USB_FRAME_NUMBER_AND_QPC_FOR_TIME_SYNC_INFORMATION, *PUSB_FRAME_NUMBER_AND_QPC_FOR_TIME_SYNC_INFORMATION;
+
+BOOL WINAPI WinUsb_AbortPipe(WINUSB_INTERFACE_HANDLE,UCHAR);
+BOOL WINAPI WinUsb_ControlTransfer(WINUSB_INTERFACE_HANDLE,WINUSB_SETUP_PACKET,PUCHAR,ULONG,PULONG,LPOVERLAPPED);
+BOOL WINAPI WinUsb_FlushPipe(WINUSB_INTERFACE_HANDLE,UCHAR);
+BOOL WINAPI WinUsb_Free(WINUSB_INTERFACE_HANDLE);
+BOOL WINAPI WinUsb_GetAdjustedFrameNumber(PULONG,LARGE_INTEGER);
+BOOL WINAPI WinUsb_GetAssociatedInterface(WINUSB_INTERFACE_HANDLE,UCHAR,PWINUSB_INTERFACE_HANDLE);
+BOOL WINAPI WinUsb_GetCurrentAlternateSetting(WINUSB_INTERFACE_HANDLE,PUCHAR);
+BOOL WINAPI WinUsb_GetCurrentFrameNumber(WINUSB_INTERFACE_HANDLE,PULONG,LARGE_INTEGER*);
+BOOL WINAPI WinUsb_GetCurrentFrameNumberAndQpc(WINUSB_INTERFACE_HANDLE,PUSB_FRAME_NUMBER_AND_QPC_FOR_TIME_SYNC_INFORMATION);
+BOOL WINAPI WinUsb_GetDescriptor(WINUSB_INTERFACE_HANDLE,UCHAR,UCHAR,USHORT,PUCHAR,ULONG,PULONG);
+BOOL WINAPI WinUsb_GetOverlappedResult(WINUSB_INTERFACE_HANDLE,LPOVERLAPPED,LPDWORD,BOOL);
+BOOL WINAPI WinUsb_GetPipePolicy(WINUSB_INTERFACE_HANDLE,UCHAR,ULONG,PULONG,PVOID);
+BOOL WINAPI WinUsb_GetPowerPolicy(WINUSB_INTERFACE_HANDLE,ULONG,PULONG,PVOID);
+BOOL WINAPI WinUsb_Initialize(HANDLE,PWINUSB_INTERFACE_HANDLE);
+PUSB_INTERFACE_DESCRIPTOR WINAPI WinUsb_ParseConfigurationDescriptor(PUSB_CONFIGURATION_DESCRIPTOR,PVOID,LONG,LONG,LONG,LONG,LONG);
+PUSB_COMMON_DESCRIPTOR WINAPI WinUsb_ParseDescriptors(PVOID,ULONG,PVOID,LONG);
+BOOL WINAPI WinUsb_QueryDeviceInformation(WINUSB_INTERFACE_HANDLE,ULONG,PULONG,PVOID);
+BOOL WINAPI WinUsb_QueryInterfaceSettings(WINUSB_INTERFACE_HANDLE,UCHAR,PUSB_INTERFACE_DESCRIPTOR);
+BOOL WINAPI WinUsb_QueryPipe(WINUSB_INTERFACE_HANDLE,UCHAR,UCHAR,PWINUSB_PIPE_INFORMATION);
+BOOL WINAPI WinUsb_QueryPipeEx(WINUSB_INTERFACE_HANDLE,UCHAR,UCHAR,PWINUSB_PIPE_INFORMATION_EX);
+BOOL WINAPI WinUsb_ReadIsochPipe(WINUSB_ISOCH_BUFFER_HANDLE,ULONG,ULONG,PULONG,ULONG,PUSBD_ISO_PACKET_DESCRIPTOR,LPOVERLAPPED);
+BOOL WINAPI WinUsb_ReadIsochPipeAsap(WINUSB_ISOCH_BUFFER_HANDLE,ULONG,ULONG,BOOL,ULONG,PUSBD_ISO_PACKET_DESCRIPTOR,LPOVERLAPPED);
+BOOL WINAPI WinUsb_ReadPipe(WINUSB_INTERFACE_HANDLE,UCHAR,PUCHAR,ULONG,PULONG,LPOVERLAPPED);
+BOOL WINAPI WinUsb_RegisterIsochBuffer(WINUSB_INTERFACE_HANDLE,UCHAR,PUCHAR,ULONG,PWINUSB_ISOCH_BUFFER_HANDLE);
+BOOL WINAPI WinUsb_ResetPipe(WINUSB_INTERFACE_HANDLE,UCHAR);
+BOOL WINAPI WinUsb_SetCurrentAlternateSetting(WINUSB_INTERFACE_HANDLE,UCHAR);
+BOOL WINAPI WinUsb_SetPipePolicy(WINUSB_INTERFACE_HANDLE,UCHAR,ULONG,ULONG,PVOID);
+BOOL WINAPI WinUsb_SetPowerPolicy(WINUSB_INTERFACE_HANDLE,ULONG,ULONG,PVOID);
+BOOL WINAPI WinUsb_StartTrackingForTimeSync(WINUSB_INTERFACE_HANDLE,PUSB_START_TRACKING_FOR_TIME_SYNC_INFORMATION);
+BOOL WINAPI WinUsb_StopTrackingForTimeSync(WINUSB_INTERFACE_HANDLE,PUSB_STOP_TRACKING_FOR_TIME_SYNC_INFORMATION);
+BOOL WINAPI WinUsb_UnregisterIsochBuffer(WINUSB_ISOCH_BUFFER_HANDLE);
+BOOL WINAPI WinUsb_WriteIsochPipe(WINUSB_ISOCH_BUFFER_HANDLE,ULONG,ULONG,PULONG,LPOVERLAPPED);
+BOOL WINAPI WinUsb_WriteIsochPipeAsap(WINUSB_ISOCH_BUFFER_HANDLE,ULONG,ULONG,BOOL,LPOVERLAPPED);
+BOOL WINAPI WinUsb_WritePipe(WINUSB_INTERFACE_HANDLE,UCHAR,PUCHAR,ULONG,PULONG,LPOVERLAPPED);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _WINUSB_H_ */
--
2.36.0
May 2, 2022
[PATCH v6 1/5] include/ddk: Add winusbio.h file.
by Mohamad Al-Jaf
Needed by winusb.h.
Signed-off-by: Mohamad Al-Jaf <mohamadaljaf(a)gmail.com>
---
include/Makefile.in | 1 +
include/ddk/winusbio.h | 66 ++++++++++++++++++++++++++++++++++++++++++
2 files changed, 67 insertions(+)
create mode 100644 include/ddk/winusbio.h
diff --git a/include/Makefile.in b/include/Makefile.in
index f3e62c4bb5a..58bf7db1e13 100644
--- a/include/Makefile.in
+++ b/include/Makefile.in
@@ -211,6 +211,7 @@ SOURCES = \
ddk/wdm.h \
ddk/winddiui.h \
ddk/winsplp.h \
+ ddk/winusbio.h \
ddk/wsk.h \
ddraw.h \
ddrawgdi.h \
diff --git a/include/ddk/winusbio.h b/include/ddk/winusbio.h
new file mode 100644
index 00000000000..14d8230d87f
--- /dev/null
+++ b/include/ddk/winusbio.h
@@ -0,0 +1,66 @@
+/*
+ * Copyright (C) 2022 Mohamad Al-Jaf
+ *
+ * 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
+ */
+
+#ifndef _WINUSBIO_H_
+#define _WINUSBIO_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+DEFINE_GUID(WinUSB_TestGuid, 0XDA812BFF, 0X12C3, 0X46A2, 0X8E, 0X2B, 0XDB, 0XD3, 0XB7, 0X83, 0X4C, 0X43);
+
+#define SHORT_PACKET_TERMINATE 0x01
+#define AUTO_CLEAR_STALL 0x02
+#define PIPE_TRANSFER_TIMEOUT 0x03
+#define IGNORE_SHORT_PACKETS 0x04
+#define ALLOW_PARTIAL_READS 0x05
+#define AUTO_FLUSH 0x06
+#define RAW_IO 0x07
+#define MAXIMUM_TRANSFER_SIZE 0x08
+#define RESET_PIPE_ON_RESUME 0x09
+
+typedef struct _WINUSB_PIPE_INFORMATION {
+ USBD_PIPE_TYPE PipeType;
+ UCHAR PipeId;
+ USHORT MaximumPacketSize;
+ UCHAR Interval;
+} WINUSB_PIPE_INFORMATION, *PWINUSB_PIPE_INFORMATION;
+
+#define AUTO_SUSPEND 0x81
+#define SUSPEND_DELAY 0x83
+
+#define DEVICE_SPEED 0x01
+
+#define LowSpeed 0x01
+#define FullSpeed 0x02
+#define HighSpeed 0x03
+
+typedef struct _WINUSB_PIPE_INFORMATION_EX {
+ USBD_PIPE_TYPE PipeType;
+ UCHAR PipeId;
+ USHORT MaximumPacketSize;
+ UCHAR Interval;
+ ULONG MaximumBytesPerInterval;
+} WINUSB_PIPE_INFORMATION_EX, *PWINUSB_PIPE_INFORMATION_EX;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _WINUSBIO_H_ */
--
2.36.0
May 2, 2022
Re: [PATCH 9/9] d3d9/tests: Extend color_fill_test.
by Marvin
Hi,
While running your changed tests, I think I found new failures.
Being a bot and all I'm not very good at pattern recognition, so I might be
wrong, but could you please double-check?
Full results can be found at:
https://testbot.winehq.org/JobDetails.pl?Key=113898
Your paranoid android.
=== w8adm (32 bit report) ===
d3d9:
visual.c:8907: Test failed: Input test: Quad 3(2crd-wrongidx) returned color 0x00ff00ff, expected 0x00ff0080
May 1, 2022