Chip Davis
289d456dd6
ntdll: Fix tick count calculation on Mac.
...
Inspired by a patch by Andrew Eikum.
macOS's mach_absolute_time() stops counting when the computer goes to
sleep/suspend/hibernate/etc. However, Windows's GetTickCount() does not
stop counting. mach_continuous_time() matches Windows's behavior.
BSD's CLOCK_MONOTONIC already counts asleep time.
Unfortunately, there is no clock source on Linux which does exactly what
we want. CLOCK_MONOTONIC_RAW is unaffected by NTP adjustment, but like
mach_absolute_time() doesn't keep ticking when the computer is asleep.
CLOCK_BOOTTIME does keep ticking, but it is affected by NTP adjustments.
CLOCK_MONOTONIC has both problems. What's needed is a
CLOCK_BOOTTIME_RAW, which would not be slewed by adjtimex(2) and would
count time spent asleep.
To avoid issues with skew and performance, this patch falls back to
mach_absolute_time() on macOS if mach_continuous_time() is unavailable.
Note that mach_continuous_time() was introduced in macOS 10.12, meaning
that if the minimum version required is less than that, it will be
linked weakly. Therefore we must check that it is nonnull before
attempting to call it.
Signed-off-by: Chip Davis <cdavis@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-11-28 20:45:46 +01:00
Nikolay Sivov
f2e0a145ba
kernel32: Use RegLoadMUIStringW() from kernelbase.
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-11-22 13:38:52 +01:00
Alexandre Julliard
ab6970d9b0
kernel32: Move Get/SetCalendarInfo to kernelbase.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-11-18 19:12:13 +01:00
Alexandre Julliard
14fbecee65
kernel32: Add set_ntstatus() helper.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-10-01 09:43:27 +02:00
Alexandre Julliard
2c68c530af
kernel32: Move file time functions to kernelbase.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-09-26 19:36:10 +02:00
Huw Davies
13e11d3fcb
kernel32: Move the implementation of GetTickCount() to kernel32.
...
Fixes regression caused by 3e927c4aec
.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=47265
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-05-30 21:53:27 +02:00
Akihiro Sagawa
4ef37887d6
kernel32: Add traces to time zone functions.
...
Signed-off-by: Akihiro Sagawa <sagawa.aki@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-05-24 21:55:54 +02:00
Huw Davies
71dc2514c3
kernel32: Forward GetSystemTimeAsFileTime() to NtQuerySystemTime().
...
This relies on FILETIME and LARGE_INTEGER having the same layout.
On an i7-8700 CPU @ 3.20GHz with HZ=1000 it cuts the call cost from
~18ns to ~12ns.
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-05-15 19:23:48 +02:00
Huw Davies
3593f7da66
kernel32: Simplify TIME_CompTimeZoneID() by passing time as LONGLONG.
...
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-05-15 19:23:42 +02:00
Huw Davies
9fbfcbe1bf
kernel32: Replace macros with inline helpers.
...
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-05-15 19:23:40 +02:00
Huw Davies
074b7d9d09
kernel32: Implement GetSystemTimePreciseAsFileTime() using RtlGetSystemTimePrecise().
...
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-05-14 20:25:10 +02:00
Akihiro Sagawa
1b7f3698f0
advapi32: Support the base directory parameter in RegLoadMUIString.
...
Signed-off-by: Akihiro Sagawa <sagawa.aki@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-05-13 13:25:19 +02:00
Vijay Kiran Kamuju
9ed363a1fe
kernel32: Add implementation for CAL_SMONTHDAY.
...
Signed-off-by: Vijay Kiran Kamuju <infyquest@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-04-23 23:50:45 +02:00
Vijay Kiran Kamuju
ded7efd27c
kernel32: Add implementation of CAL_SSHORTESTDAYNAME*.
...
Signed-off-by: Vijay Kiran Kamuju <infyquest@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-04-22 19:48:27 +02:00
Akihiro Sagawa
2ce076a502
kernel32: Use Rtl function when the time zone name is useless.
...
Signed-off-by: Akihiro Sagawa <sagawa.aki@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-12-17 22:35:22 +01:00
Akihiro Sagawa
afad5636cb
kernel32: Resolve an MUI time zone name.
...
Signed-off-by: Akihiro Sagawa <sagawa.aki@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-12-06 19:23:06 +01:00
Guillaume Charifi
94dda4690b
kernel32: Add stub for GetDynamicTimeZoneInformationEffectiveYears().
...
Signed-off-by: Guillaume Charifi <guillaume.charifi@sfr.fr>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-14 13:55:55 +02:00
Qian Hong
4c2cc57c7f
kernel32: Init TimezoneInformation registry.
...
Signed-off-by: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-04-18 10:21:33 +02:00
Austin English
db5a57c5f2
kernel32: Add QueryProcessCycleTime stub.
...
Signed-off-by: Austin English <austinenglish@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-02-01 22:24:58 +01:00
Michael Stefaniuc
1b3cbf52b2
kernel32: Remove always true if conditions (coccinellery).
...
Signed-off-by: Michael Stefaniuc <mstefani@redhat.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-02-15 16:33:54 +01:00
Louis Lenders
6f04cf0caa
kernel32: Silence a noisy fixme.
...
Signed-off-by: Louis Lenders <xerox.xerox2000x@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-01-31 22:30:37 +01:00
David Keijser
34a0c122cb
kernel32: Forward CAL_RETURN_GENITIVE_NAMES to GetLocaleInfo().
...
Signed-off-by: David Keijser <keijser@gmail.com>
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-09-07 00:34:24 +09:00
Nikolay Sivov
64a8aa520a
kernel32: Map from CAL_* constants to LOCALE_*.
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-09-01 11:38:51 +09:00
Vincent Povirk
b922b55182
kernel32: Implement GetTimeZoneInformationForYear.
...
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-02-03 00:00:32 +09:00
Andrey Gusev
5cdcd4493f
Assorted spelling and typos fixes.
2015-08-18 15:00:13 +09:00
Erich E. Hoover
5e817e93de
kernel32: Implement GetSystemTimes.
2015-06-11 15:58:34 +09:00
Martin Storsjo
c9c5ceccb4
kernel32: Implement GetSystemTimePreciseAsFileTime.
...
This just falls back to doing the same as GetSystemTimeAsFileTime.
2015-05-20 17:28:37 +09:00
Nikolay Sivov
2c98d5b90c
kernel32: Implement GetDynamicTimeZoneInformation().
2015-05-11 15:39:24 +09:00
Austin English
88362a0770
kernel32: Add a stub for QueryThreadCycleTime.
2015-03-30 19:49:11 +09:00
Francois Gouget
ecc04f6996
kernel32: Remove unneeded NONAMELESSXXX directives.
2015-03-13 00:28:19 +09:00
Akihiro Sagawa
80695cde4f
kernel32: Return correct buffer size when returning DBCS characters.
2014-06-12 18:25:06 +02:00
Akihiro Sagawa
89a558fe8f
kernel32: Avoid uninitialised value read in GetCalendarInfoA.
2014-06-12 18:24:41 +02:00
Nikolay Sivov
b82b1306a4
kernel32: Added QueryUnbiasedInterruptTime().
2014-04-02 15:50:09 +02:00
Nikolay Sivov
95142cad53
kernel32: Partial implementation for GetCalendarInfoEx().
2014-03-03 17:02:14 +01:00
Frédéric Delanoy
7ab78b4e03
kernel32: Use BOOL type where appropriate.
2013-10-24 10:49:11 +02:00
Daniel Jelinski
debd62cf9f
kernel32: Improved stub for GetCalendarInfo's CAL_SCALNAME.
...
Based on patch by Mike Blumenkrantz.
2013-05-21 12:13:09 +02:00
Daniel Jelinski
81dc0fe87b
kernel32: Implement CAL_ICALINTVALUE in GetCalendarInfo.
...
Based on patch by Mike Blumenkrantz.
2013-05-21 12:12:57 +02:00
Piotr Caban
e5a25ec5c5
kernel32: Fixed TIME_CompTimeZoneID behavior on dates close to New Year's Eve.
2012-12-10 17:36:25 +01:00
Austin English
843390f9c9
kernel32: Add a stub for GetDynamicTimeZoneInformation.
2012-07-09 15:46:35 -04:00
Alexandre Julliard
81183c1e20
kernel32: Fix the handling of CAL_ITWODIGITYEARMAX in GetCalendarInfo.
2011-06-08 16:18:26 +02:00
Juan Lang
2ca58402e7
kernel32: Add some parameter checking to FileTimeToDosDateTime.
2011-03-09 12:28:41 +01:00
Juan Lang
6614323807
kernel32: Set time between interrupts in GetSystemTimeAdjustment.
2009-10-01 11:33:27 +02:00
Alexandre Julliard
4964374570
ntdll: The large integer functions are 32-bit only.
2009-08-24 15:17:33 +02:00
Dmitry Timoshkov
545b40adf7
kernel32: Make SystemTimeToTzSpecificLocalTime and TzSpecificLocalTimeToSystemTime prototypes match PSDK.
2009-05-04 12:53:32 +02:00
Christian Costa
de90eccd1a
kernel32: Add stub for GetSystemTimes.
2009-03-27 11:23:21 +01:00
Huw Davies
d5f6d841c1
kernel32: GetCalendarInfo shouldn't return HRESULT codes. Change a MESSAGE to a FIXME.
2008-08-18 13:37:31 +02:00
Austin English
cb2274e690
Spelling fixes.
2008-04-04 11:51:40 +02:00
Austin English
d5de9977df
kernel32: Spelling fixes.
2008-03-18 11:44:09 +01:00
Andrew Talbot
54a376f228
kernel32: Assign to structs instead of using memcpy.
2008-03-04 11:54:20 +01:00
Damjan Jovanovic
f3c9a9b1b6
kernel32: Use sysconf instead of the obsolete CLK_TCK.
2007-09-11 11:49:14 +02:00