Added patch to implement kernel32.GetSystemTimePreciseAsFileTime.

This commit is contained in:
Sebastian Lackner 2015-05-14 03:14:44 +02:00
parent d114a05de3
commit a3ca9927db
5 changed files with 129 additions and 13 deletions

View File

@ -39,7 +39,7 @@ Wine. All those differences are also documented on the
Included bug fixes and improvements
-----------------------------------
**Bug fixes and features included in the next upcoming release [14]:**
**Bug fixes and features included in the next upcoming release [15]:**
* Add IEnumString stub interface for ACLShellSource ([Wine Bug #18019](https://bugs.winehq.org/show_bug.cgi?id=18019))
* Add implementation for shlwapi.AssocGetPerceivedType
@ -50,6 +50,7 @@ Included bug fixes and improvements
* Create stub files for system32/drivers/etc/{services,hosts,networks,protocol} ([Wine Bug #12076](https://bugs.winehq.org/show_bug.cgi?id=12076))
* Dirtify vertex shader on transformed update to fix graphical corruption ([Wine Bug #38539](https://bugs.winehq.org/show_bug.cgi?id=38539))
* Do not create foreign thread queues for attach_thread_input requests ([Wine Bug #38562](https://bugs.winehq.org/show_bug.cgi?id=38562))
* Implement kernel32.GetSystemTimePreciseAsFileTime ([Wine Bug #38513](https://bugs.winehq.org/show_bug.cgi?id=38513))
* Improve ReadDataAvailable handling in FilePipeLocalInformation class
* Return default palette entries from GetSystemPaletteEntries for non-palette-based devices
* Support for ObjectTypeInformation class support in NtQueryObject

1
debian/changelog vendored
View File

@ -30,6 +30,7 @@ wine-staging (1.7.43) UNRELEASED; urgency=low
* Added patch to create stub files for
system32/drivers/etc/{services,hosts,networks,protocol}.
* Added patch to allocate fake hWnd for wineconsole curses backend.
* Added patch to implement kernel32.GetSystemTimePreciseAsFileTime.
* Removed patch to use lockfree implementation for FD cache (accepted
upstream).
* Removed patch to properly handle closing sockets during a select call

View File

@ -0,0 +1,93 @@
From 59136b0d18daced5dcfc77744cbd20425273a2a0 Mon Sep 17 00:00:00 2001
From: Martin Storsjo <martin@martin.st>
Date: Thu, 7 May 2015 23:02:34 +0300
Subject: kernel32: Implement GetSystemTimePreciseAsFileTime
This just falls back to doing the same as GetSystemTimeAsFileTime.
---
.../api-ms-win-core-sysinfo-l1-2-0.spec | 2 +-
.../api-ms-win-core-sysinfo-l1-2-1.spec | 2 +-
dlls/kernel32/kernel32.spec | 1 +
dlls/kernel32/time.c | 15 +++++++++++++++
include/winbase.h | 1 +
5 files changed, 19 insertions(+), 2 deletions(-)
diff --git a/dlls/api-ms-win-core-sysinfo-l1-2-0/api-ms-win-core-sysinfo-l1-2-0.spec b/dlls/api-ms-win-core-sysinfo-l1-2-0/api-ms-win-core-sysinfo-l1-2-0.spec
index d3df6bd..9b05674 100644
--- a/dlls/api-ms-win-core-sysinfo-l1-2-0/api-ms-win-core-sysinfo-l1-2-0.spec
+++ b/dlls/api-ms-win-core-sysinfo-l1-2-0/api-ms-win-core-sysinfo-l1-2-0.spec
@@ -14,7 +14,7 @@
@ stdcall GetSystemTime(ptr) kernel32.GetSystemTime
@ stdcall GetSystemTimeAdjustment(ptr ptr ptr) kernel32.GetSystemTimeAdjustment
@ stdcall GetSystemTimeAsFileTime(ptr) kernel32.GetSystemTimeAsFileTime
-@ stub GetSystemTimePreciseAsFileTime
+@ stdcall GetSystemTimePreciseAsFileTime(ptr) kernel32.GetSystemTimePreciseAsFileTime
@ stdcall GetSystemWindowsDirectoryA(ptr long) kernel32.GetSystemWindowsDirectoryA
@ stdcall GetSystemWindowsDirectoryW(ptr long) kernel32.GetSystemWindowsDirectoryW
@ stdcall GetTickCount() kernel32.GetTickCount
diff --git a/dlls/api-ms-win-core-sysinfo-l1-2-1/api-ms-win-core-sysinfo-l1-2-1.spec b/dlls/api-ms-win-core-sysinfo-l1-2-1/api-ms-win-core-sysinfo-l1-2-1.spec
index 29262c5..018ab05 100644
--- a/dlls/api-ms-win-core-sysinfo-l1-2-1/api-ms-win-core-sysinfo-l1-2-1.spec
+++ b/dlls/api-ms-win-core-sysinfo-l1-2-1/api-ms-win-core-sysinfo-l1-2-1.spec
@@ -16,7 +16,7 @@
@ stdcall GetSystemTime(ptr) kernel32.GetSystemTime
@ stdcall GetSystemTimeAdjustment(ptr ptr ptr) kernel32.GetSystemTimeAdjustment
@ stdcall GetSystemTimeAsFileTime(ptr) kernel32.GetSystemTimeAsFileTime
-@ stub GetSystemTimePreciseAsFileTime
+@ stdcall GetSystemTimePreciseAsFileTime(ptr) kernel32.GetSystemTimePreciseAsFileTime
@ stdcall GetSystemWindowsDirectoryA(ptr long) kernel32.GetSystemWindowsDirectoryA
@ stdcall GetSystemWindowsDirectoryW(ptr long) kernel32.GetSystemWindowsDirectoryW
@ stdcall -ret64 GetTickCount64() kernel32.GetTickCount64
diff --git a/dlls/kernel32/kernel32.spec b/dlls/kernel32/kernel32.spec
index 1261738..8f6a13e 100644
--- a/dlls/kernel32/kernel32.spec
+++ b/dlls/kernel32/kernel32.spec
@@ -829,6 +829,7 @@
@ stdcall GetSystemTime(ptr)
@ stdcall GetSystemTimeAdjustment(ptr ptr ptr)
@ stdcall GetSystemTimeAsFileTime(ptr)
+@ stdcall GetSystemTimePreciseAsFileTime(ptr)
@ stdcall GetSystemTimes(ptr ptr ptr)
@ stdcall GetSystemWindowsDirectoryA(ptr long)
@ stdcall GetSystemWindowsDirectoryW(ptr long)
diff --git a/dlls/kernel32/time.c b/dlls/kernel32/time.c
index 2b8e1d9..daafc7f 100644
--- a/dlls/kernel32/time.c
+++ b/dlls/kernel32/time.c
@@ -548,6 +548,21 @@ VOID WINAPI GetSystemTimeAsFileTime(
}
+/***********************************************************************
+ * GetSystemTimePreciseAsFileTime (KERNEL32.@)
+ *
+ * Get the current time in utc format, with <1 us precision.
+ *
+ * RETURNS
+ * Nothing.
+ */
+VOID WINAPI GetSystemTimePreciseAsFileTime(
+ LPFILETIME time) /* [out] Destination for the current utc time */
+{
+ GetSystemTimeAsFileTime(time);
+}
+
+
/*********************************************************************
* TIME_ClockTimeToFileTime (olorin@fandra.org, 20-Sep-1998)
*
diff --git a/include/winbase.h b/include/winbase.h
index a8f3fb6..7540e6d 100644
--- a/include/winbase.h
+++ b/include/winbase.h
@@ -2040,6 +2040,7 @@ WINBASEAPI BOOL WINAPI GetSystemRegistryQuota(PDWORD,PDWORD);
WINBASEAPI VOID WINAPI GetSystemTime(LPSYSTEMTIME);
WINBASEAPI BOOL WINAPI GetSystemTimeAdjustment(PDWORD,PDWORD,PBOOL);
WINBASEAPI VOID WINAPI GetSystemTimeAsFileTime(LPFILETIME);
+WINBASEAPI VOID WINAPI GetSystemTimePreciseAsFileTime(LPFILETIME);
WINBASEAPI UINT WINAPI GetSystemWindowsDirectoryA(LPSTR,UINT);
WINBASEAPI UINT WINAPI GetSystemWindowsDirectoryW(LPWSTR,UINT);
#define GetSystemWindowsDirectory WINELIB_NAME_AW(GetSystemWindowsDirectory)
--
2.4.0

View File

@ -0,0 +1 @@
Fixes: [38513] Implement kernel32.GetSystemTimePreciseAsFileTime

View File

@ -136,6 +136,7 @@ patch_enable_all ()
enable_kernel32_GetLogicalProcessorInformationEx="$1"
enable_kernel32_GetNumaProcessorNode="$1"
enable_kernel32_GetStringTypeW="$1"
enable_kernel32_GetSystemTimePreciseAsFileTime="$1"
enable_kernel32_GetSystemTimes="$1"
enable_kernel32_GetVolumePathName="$1"
enable_kernel32_Named_Pipe="$1"
@ -473,6 +474,9 @@ patch_enable ()
kernel32-GetStringTypeW)
enable_kernel32_GetStringTypeW="$2"
;;
kernel32-GetSystemTimePreciseAsFileTime)
enable_kernel32_GetSystemTimePreciseAsFileTime="$2"
;;
kernel32-GetSystemTimes)
enable_kernel32_GetSystemTimes="$2"
;;
@ -2459,18 +2463,6 @@ if test "$enable_dxgi_GetDesc" -eq 1; then
) >> "$patchlist"
fi
# Patchset makedep-PARENTSPEC
# |
# | Modified files:
# | * tools/makedep.c
# |
if test "$enable_makedep_PARENTSPEC" -eq 1; then
patch_apply makedep-PARENTSPEC/0001-makedep-Add-support-for-PARENTSPEC-Makefile-variable.patch
(
echo '+ { "Sebastian Lackner", "makedep: Add support for PARENTSPEC Makefile variable.", 1 },';
) >> "$patchlist"
fi
# Patchset ntdll-DllRedirects
# |
# | Modified files:
@ -2491,6 +2483,18 @@ if test "$enable_ntdll_DllRedirects" -eq 1; then
) >> "$patchlist"
fi
# Patchset makedep-PARENTSPEC
# |
# | Modified files:
# | * tools/makedep.c
# |
if test "$enable_makedep_PARENTSPEC" -eq 1; then
patch_apply makedep-PARENTSPEC/0001-makedep-Add-support-for-PARENTSPEC-Makefile-variable.patch
(
echo '+ { "Sebastian Lackner", "makedep: Add support for PARENTSPEC Makefile variable.", 1 },';
) >> "$patchlist"
fi
# Patchset wined3d-CSMT_Helper
# |
# | Modified files:
@ -3342,6 +3346,22 @@ if test "$enable_kernel32_GetStringTypeW" -eq 1; then
) >> "$patchlist"
fi
# Patchset kernel32-GetSystemTimePreciseAsFileTime
# |
# | This patchset fixes the following Wine bugs:
# | * [#38513] Implement kernel32.GetSystemTimePreciseAsFileTime
# |
# | Modified files:
# | * dlls/api-ms-win-core-sysinfo-l1-2-0/api-ms-win-core-sysinfo-l1-2-0.spec, dlls/api-ms-win-core-sysinfo-l1-2-1/api-ms-win-
# | core-sysinfo-l1-2-1.spec, dlls/kernel32/kernel32.spec, dlls/kernel32/time.c, include/winbase.h
# |
if test "$enable_kernel32_GetSystemTimePreciseAsFileTime" -eq 1; then
patch_apply kernel32-GetSystemTimePreciseAsFileTime/0001-kernel32-Implement-GetSystemTimePreciseAsFileTime.patch
(
echo '+ { "Martin Storsjo", "kernel32: Implement GetSystemTimePreciseAsFileTime.", 1 },';
) >> "$patchlist"
fi
# Patchset kernel32-GetSystemTimes
# |
# | This patchset fixes the following Wine bugs: