Alexandre Julliard : kernel32: Move Get/SetSystemTimeAdjustment to kernelbase.
Alexandre Julliard
julliard at winehq.org
Fri May 22 13:51:09 CDT 2020
Module: wine
Branch: master
Commit: 4ccc3e52852447198a8b81fc91472bfa3b614914
URL: https://source.winehq.org/git/wine.git/?a=commit;h=4ccc3e52852447198a8b81fc91472bfa3b614914
Author: Alexandre Julliard <julliard at winehq.org>
Date: Fri May 22 12:01:17 2020 +0200
kernel32: Move Get/SetSystemTimeAdjustment to kernelbase.
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/kernel32/kernel32.spec | 4 ++--
dlls/kernel32/time.c | 47 -----------------------------------------
dlls/kernelbase/file.c | 30 ++++++++++++++++++++++++++
dlls/kernelbase/kernelbase.spec | 4 ++--
4 files changed, 34 insertions(+), 51 deletions(-)
diff --git a/dlls/kernel32/kernel32.spec b/dlls/kernel32/kernel32.spec
index 72a09c53c8..0324e90201 100644
--- a/dlls/kernel32/kernel32.spec
+++ b/dlls/kernel32/kernel32.spec
@@ -832,7 +832,7 @@
@ stdcall GetSystemPreferredUILanguages(long ptr ptr ptr)
@ stdcall GetSystemRegistryQuota(ptr ptr)
@ stdcall -import GetSystemTime(ptr)
-@ stdcall GetSystemTimeAdjustment(ptr ptr ptr)
+@ stdcall -import GetSystemTimeAdjustment(ptr ptr ptr)
@ stdcall -import GetSystemTimeAsFileTime(ptr)
@ stdcall -import GetSystemTimePreciseAsFileTime(ptr)
@ stdcall -import GetSystemTimes(ptr ptr ptr)
@@ -1445,7 +1445,7 @@
@ stdcall -import SetSystemFileCacheSize(long long long)
@ stdcall SetSystemPowerState(long long)
@ stdcall -import SetSystemTime(ptr)
-@ stdcall SetSystemTimeAdjustment(long long)
+@ stdcall -import SetSystemTimeAdjustment(long long)
@ stdcall SetTapeParameters(ptr long ptr)
@ stdcall SetTapePosition(ptr long long long long long)
@ stdcall SetTermsrvAppInstallMode(long)
diff --git a/dlls/kernel32/time.c b/dlls/kernel32/time.c
index 127f341adc..4b959684c6 100644
--- a/dlls/kernel32/time.c
+++ b/dlls/kernel32/time.c
@@ -56,53 +56,6 @@ WINE_DEFAULT_DEBUG_CHANNEL(time);
static const struct _KUSER_SHARED_DATA *user_shared_data = (struct _KUSER_SHARED_DATA *)0x7ffe0000;
-/***********************************************************************
- * GetSystemTimeAdjustment (KERNEL32.@)
- *
- * Get the period between clock interrupts and the amount the clock
- * is adjusted each interrupt so as to keep it in sync with an external source.
- *
- * PARAMS
- * lpTimeAdjustment [out] The clock adjustment per interrupt in 100's of nanoseconds.
- * lpTimeIncrement [out] The time between clock interrupts in 100's of nanoseconds.
- * lpTimeAdjustmentDisabled [out] The clock synchronisation has been disabled.
- *
- * RETURNS
- * TRUE.
- *
- * BUGS
- * Only the special case of disabled time adjustments is supported.
- */
-BOOL WINAPI GetSystemTimeAdjustment( PDWORD lpTimeAdjustment, PDWORD lpTimeIncrement,
- PBOOL lpTimeAdjustmentDisabled )
-{
- *lpTimeAdjustment = 0;
- *lpTimeIncrement = 10000000 / sysconf(_SC_CLK_TCK);
- *lpTimeAdjustmentDisabled = TRUE;
- return TRUE;
-}
-
-
-/***********************************************************************
- * SetSystemTimeAdjustment (KERNEL32.@)
- *
- * Enables or disables the timing adjustments to the system's clock.
- *
- * PARAMS
- * dwTimeAdjustment [in] Number of units to add per clock interrupt.
- * bTimeAdjustmentDisabled [in] Adjustment mode.
- *
- * RETURNS
- * Success: TRUE.
- * Failure: FALSE.
- */
-BOOL WINAPI SetSystemTimeAdjustment( DWORD dwTimeAdjustment, BOOL bTimeAdjustmentDisabled )
-{
- /* Fake function for now... */
- FIXME("(%08x,%d): stub !\n", dwTimeAdjustment, bTimeAdjustmentDisabled);
- return TRUE;
-}
-
/*********************************************************************
* GetCalendarInfoA (KERNEL32.@)
*
diff --git a/dlls/kernelbase/file.c b/dlls/kernelbase/file.c
index 905029066e..cc79284520 100644
--- a/dlls/kernelbase/file.c
+++ b/dlls/kernelbase/file.c
@@ -3861,6 +3861,23 @@ void WINAPI DECLSPEC_HOTPATCH GetSystemTime( SYSTEMTIME *systime )
}
+/***********************************************************************
+ * GetSystemTimeAdjustment (kernelbase.@)
+ */
+BOOL WINAPI DECLSPEC_HOTPATCH GetSystemTimeAdjustment( DWORD *adjust, DWORD *increment, BOOL *disabled )
+{
+ SYSTEM_TIME_ADJUSTMENT_QUERY st;
+ ULONG len;
+
+ if (!set_ntstatus( NtQuerySystemInformation( SystemTimeAdjustmentInformation, &st, sizeof(st), &len )))
+ return FALSE;
+ *adjust = st.TimeAdjustment;
+ *increment = st.TimeIncrement;
+ *disabled = st.TimeAdjustmentDisabled;
+ return TRUE;
+}
+
+
/***********************************************************************
* GetSystemTimeAsFileTime (kernelbase.@)
*/
@@ -3918,6 +3935,19 @@ BOOL WINAPI DECLSPEC_HOTPATCH SetSystemTime( const SYSTEMTIME *systime )
}
+/***********************************************************************
+ * SetSystemTimeAdjustment (kernelbase.@)
+ */
+BOOL WINAPI DECLSPEC_HOTPATCH SetSystemTimeAdjustment( DWORD adjust, BOOL disabled )
+{
+ SYSTEM_TIME_ADJUSTMENT st;
+
+ st.TimeAdjustment = adjust;
+ st.TimeAdjustmentDisabled = disabled;
+ return set_ntstatus( NtSetSystemInformation( SystemTimeAdjustmentInformation, &st, sizeof(st) ));
+}
+
+
/*********************************************************************
* SystemTimeToFileTime (kernelbase.@)
*/
diff --git a/dlls/kernelbase/kernelbase.spec b/dlls/kernelbase/kernelbase.spec
index 1500229969..15f43db65d 100644
--- a/dlls/kernelbase/kernelbase.spec
+++ b/dlls/kernelbase/kernelbase.spec
@@ -695,7 +695,7 @@
@ stdcall GetSystemPreferredUILanguages(long ptr ptr ptr) kernel32.GetSystemPreferredUILanguages
# @ stub GetSystemStateRootFolder
@ stdcall GetSystemTime(ptr)
-@ stdcall GetSystemTimeAdjustment(ptr ptr ptr) kernel32.GetSystemTimeAdjustment
+@ stdcall GetSystemTimeAdjustment(ptr ptr ptr)
@ stdcall GetSystemTimeAsFileTime(ptr)
@ stdcall GetSystemTimePreciseAsFileTime(ptr)
@ stdcall GetSystemTimes(ptr ptr ptr)
@@ -1477,7 +1477,7 @@
@ stdcall SetStdHandleEx(long long ptr)
@ stdcall SetSystemFileCacheSize(long long long)
@ stdcall SetSystemTime(ptr)
-@ stdcall SetSystemTimeAdjustment(long long) kernel32.SetSystemTimeAdjustment
+@ stdcall SetSystemTimeAdjustment(long long)
@ stdcall SetThreadContext(long ptr)
@ stdcall SetThreadDescription(ptr wstr)
@ stdcall SetThreadErrorMode(long ptr)
More information about the wine-cvs
mailing list