From: Brendan Shanks bshanks@codeweavers.com
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=54338 --- dlls/kernelbase/kernelbase.spec | 2 +- dlls/kernelbase/sync.c | 12 ++++++++++++ include/realtimeapiset.h | 32 ++++++++++++++++++++++++++++++++ include/winbase.h | 1 + 4 files changed, 46 insertions(+), 1 deletion(-) create mode 100644 include/realtimeapiset.h
diff --git a/dlls/kernelbase/kernelbase.spec b/dlls/kernelbase/kernelbase.spec index 95d4b64d76e..8596868df61 100644 --- a/dlls/kernelbase/kernelbase.spec +++ b/dlls/kernelbase/kernelbase.spec @@ -1250,7 +1250,7 @@ @ stdcall QueryThreadCycleTime(long ptr) @ stdcall QueryThreadpoolStackInformation(ptr ptr) @ stdcall QueryUnbiasedInterruptTime(ptr) ntdll.RtlQueryUnbiasedInterruptTime -# @ stub QueryUnbiasedInterruptTimePrecise +@ stdcall QueryUnbiasedInterruptTimePrecise(ptr) @ stdcall QueryVirtualMemoryInformation(long ptr long ptr long ptr) @ stdcall QueryWorkingSet(long ptr long) @ stdcall QueryWorkingSetEx(long ptr long) diff --git a/dlls/kernelbase/sync.c b/dlls/kernelbase/sync.c index 60b33af99c3..8e1956c0d6a 100644 --- a/dlls/kernelbase/sync.c +++ b/dlls/kernelbase/sync.c @@ -205,6 +205,18 @@ ULONGLONG WINAPI DECLSPEC_HOTPATCH GetTickCount64(void) }
+/****************************************************************************** + * QueryUnbiasedInterruptTimePrecise (kernelbase.@) + */ +void WINAPI DECLSPEC_HOTPATCH QueryUnbiasedInterruptTimePrecise( ULONGLONG *time ) +{ + static int once; + if (!once++) FIXME( "(%p) semi-stub\n", time ); + + RtlQueryUnbiasedInterruptTime( time ); +} + + /*********************************************************************** * Waits ***********************************************************************/ diff --git a/include/realtimeapiset.h b/include/realtimeapiset.h new file mode 100644 index 00000000000..7c077035147 --- /dev/null +++ b/include/realtimeapiset.h @@ -0,0 +1,32 @@ +/* + * Copyright 2023 Brendan Shanks for CodeWeavers + * + * 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 _REALTIMEAPISET_H +#define _REALTIMEAPISET_H + +#ifdef __cplusplus +extern "C" { +#endif + +WINBASEAPI void WINAPI QueryUnbiasedInterruptTimePrecise(ULONGLONG *); + +#ifdef __cplusplus +} +#endif + +#endif /* _REALTIMEAPISET_H */ diff --git a/include/winbase.h b/include/winbase.h index 8826251914d..6575ed67aef 100644 --- a/include/winbase.h +++ b/include/winbase.h @@ -43,6 +43,7 @@ extern "C" {
#include <libloaderapi.h> #include <processthreadsapi.h> +#include <realtimeapiset.h> #include <synchapi.h> #include <threadpoolapiset.h> #include <memoryapi.h>