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
Alexandre Julliard
7bb286ad9d
kernel32: Move FoldStringW() function to kernelbase.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-11-28 09:05:13 +01:00
Alexandre Julliard
e89bbd5244
kernel32: Reimplement FoldStringW() to support composition.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-11-28 09:04:33 +01:00
Gijs Vermeulen
22c2ce2fa6
kernel32: Remove unused function.
...
Signed-off-by: Gijs Vermeulen <gijsvrm@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-11-27 22:05:15 +01:00
Alexandre Julliard
03deff4e0d
kernel32: Move codepage functions to kernelbase.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-11-27 17:04:44 +01:00
Alexandre Julliard
4901386892
kernel32/tests: Add tests for NtGetNlsSectionPtr() and RtlInitCodePageTable().
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-11-26 22:49:03 +01:00
Nikolay Sivov
179cd78f82
kernel32: Implement higher level API to access thread description.
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-11-26 16:33:55 +01:00
Mathew Hodson
2fec865945
kernel32: Remove dead code.
...
Signed-off-by: Mathew Hodson <mathew.hodson@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-11-26 15:38:32 +01:00
Chip Davis
19549d11a7
mountmgr: Populate HKLM\HARDWARE\DEVICEMAP\Scsi here instead of in kernel32.
...
Signed-off-by: Chip Davis <cdavis@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-11-25 21:56:23 +01:00
Gijs Vermeulen
a507126ac4
kernel32/tests: Add GetCurrentConsoleFontEx tests.
...
Signed-off-by: Gijs Vermeulen <gijsvrm@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-11-25 20:47:43 +01:00
Gijs Vermeulen
ec810c84ab
kernel32: Implement GetCurrentConsoleFontEx.
...
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=47620
Signed-off-by: Gijs Vermeulen <gijsvrm@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-11-25 20:47:43 +01:00
Nikolay Sivov
602eb52ce9
kernel32/tests: Add some tests for thread description API.
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-11-25 20:47:43 +01:00
Myah Caron
1658d5a20d
kernel32: Allow NtQueryDirectoryFile underfilling FileInformation.
...
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=47832
Signed-off-by: Myah Caron <qsniyg@mail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-11-25 20:47:43 +01:00
Alexandre Julliard
69d0381b5a
kernel32: Avoid forwarding to advapi32.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-11-23 11:26:52 +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
Francois Gouget
af638bc117
kernel32/tests: Fix the lcid and expected value in a codepage ok() call.
...
Signed-off-by: Francois Gouget <fgouget@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-11-21 21:00:59 +01:00
Francois Gouget
fb037132fd
kernel32/tests: Remove an unused assignment in the comm test.
...
Signed-off-by: Francois Gouget <fgouget@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-11-21 19:01:10 +01:00
Alexandre Julliard
2cbb6f8d34
kernel32: Move some locale functions to kernelbase.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-11-21 13:20:23 +01:00
Alexandre Julliard
fd588a22b7
kernel32: Move string normalization functions to ntdll.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-11-21 10:43:46 +01:00
John Chadwick
9021cca65d
kernelbase: Fix GetSystemFirmwareTable regression.
...
Regression caused by 71aba33fc6
.
Signed-off-by: John Chadwick <john@jchw.io>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-11-20 23:03:21 +01:00
John Chadwick
2acbe4f096
kernel32/tests: Add test for GetSystemFirmwareTable.
...
This adds a test to ensure that a typical usage of
GetSystemFirmwareTable with a preflight call works correctly.
Signed-off-by: John Chadwick <john@jchw.io>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-11-20 23:03:21 +01:00
Alexandre Julliard
35ea9cd99a
kernel32: Move the locale registry setup to kernelbase.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-11-20 23:03:21 +01:00
Alexandre Julliard
ed09f37cef
kernel32: Get the initial locales from ntdll.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-11-20 22:45:58 +01:00
Alexandre Julliard
f1bfd2c0b1
ntdll: Initialize the system and user locales directly in ntdll.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-11-20 16:25:16 +01:00
João Diogo Ferreira
2a03c0958b
kernel32: Handle GEOCLASS_ALL in EnumSystemGeoID().
...
Signed-off-by: João Diogo Craveiro Ferreira <devilj@outlook.pt>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-11-19 23:15:04 +01:00
Alexandre Julliard
e8ef4c0f53
kernel32/tests: Get rid of Unicode helper functions.
2019-11-19 23:15:04 +01:00
Alexandre Julliard
9f0983ddfc
kernel32: Use RtlLocaleNameToLcid().
2019-11-19 23:15:04 +01:00
Alexandre Julliard
7ac7a902c8
ntdll: Implement RtlLocaleNameToLcid().
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-11-19 23:15:04 +01:00
Alexandre Julliard
4b1a8d6361
kernel32: Add more special cases in ConvertDefaultLocale().
2019-11-19 23:15:04 +01:00
Alexandre Julliard
71aba33fc6
kernel32: Move system information functions to kernelbase.
2019-11-19 23:15:04 +01:00
Alexandre Julliard
b73cfa72ed
kernel32: Move physical memory status functions to kernelbase.
2019-11-19 23:15:04 +01:00
João Diogo Ferreira
92d908c038
kernel32/nls: Add LOCALE_IGEOID to all locales.
...
Signed-off-by: João Diogo Craveiro Ferreira <devilj@outlook.pt>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-11-18 22:15:20 +01:00
João Diogo Ferreira
d353c96e83
kernel32: Add Kosovo, UN codes and change two parents in geoinfodata.
...
Signed-off-by: João Diogo Craveiro Ferreira <devilj@outlook.pt>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-11-18 20:01:17 +01:00
João Diogo Ferreira
c790422daa
kernel32: Fix null pointer access in GetGeoInfoW().
...
We were failing the conditional that would point «str» to «buffW»
when retrieving the GEO_ISO_UN_NUMBER of a location with UN code 0.
Some locations will keep having no UN code, such as Guantanamo Bay or
Johnston Atoll, since that's how those are defined in Windows.
Signed-off-by: João Diogo Craveiro Ferreira <devilj@outlook.pt>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-11-18 20:01:17 +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
42ed9797b1
kernel32: Move EnumCalendarInfo functions to kernelbase.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-11-18 19:12:13 +01:00
Alexandre Julliard
50d15730df
kernel32: Move EnumTimeFormats functions to kernelbase.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-11-16 20:11:21 +01:00
Alexandre Julliard
02d9ccb3c3
kernel32: Move EnumDateFormats functions to kernelbase.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-11-16 20:08:58 +01:00
Francois Gouget
da238dc1d1
kernel32: Match the Windows 10 1709+ SetConsoleFont() implementation.
...
That is return the same 'E_NOTIMPL' error code.
Remove the todo_wine-s but keep the tests in case we want to implement
the API for compatibility with old Windows versions.
Signed-off-by: Francois Gouget <fgouget@free.fr>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-11-14 09:40:36 +01:00
Francois Gouget
ba4cfbd448
kernel32/tests: Windows 10 dropped support for SetConsoleFont().
...
Windows 10 1507 still supports it but not 1607+.
Signed-off-by: Francois Gouget <fgouget@free.fr>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-11-14 09:40:33 +01:00
Alexandre Julliard
dcdfe02a72
kernel32: Get rid of LOCALE_IDEFAULTUNIXCODEPAGE.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-11-13 13:47:45 +01:00
Alexandre Julliard
712ae337fe
kernel32: Move CreateProcess() functions to kernelbase.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-11-12 22:05:58 +01:00
Alexandre Julliard
4405195b3c
kernel32: Move GetSystemWow64Directory() functions to kernelbase.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-11-12 22:05:58 +01:00
Alexandre Julliard
eee3a4e84a
kernel32: Move support for starting Unix processes to ntdll.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-11-12 22:05:58 +01:00
Alexandre Julliard
1deefb84ee
kernel32: Use RtlCreateUserProcess() to start new processes.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-11-12 22:05:58 +01:00
João Diogo Ferreira
c2485bb12e
kernel32: Handle GEOCLASS_REGION in Get/SetUserGeoID().
...
Signed-off-by: João Diogo Craveiro Ferreira <devilj@outlook.pt>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-11-12 22:05:58 +01:00
João Diogo Ferreira
dd505fab26
kernel32: Move Get/SetUserGeoID() to after the geoinfo struct.
...
Signed-off-by: João Diogo Craveiro Ferreira <devilj@outlook.pt>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-11-12 22:05:58 +01:00
Alexandre Julliard
83e520f556
kernel32: Move exec process functionality to ntdll.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-11-11 22:58:00 +01:00
Alexandre Julliard
8c4a1cc792
server: Get rid of the unused file parameter in exec_process.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-11-11 20:02:36 +01:00
Francois Gouget
31046449e6
kernel32: Match the Windows 10 1709+ GetConsoleFontInfo().
...
That is return the same 'E_NOTIMPL' error code.
Remove the todo_wine-s but keep the tests in case we want to implement
the API for compatibility with older Windows versions.
Signed-off-by: Francois Gouget <fgouget@free.fr>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-11-08 18:19:17 +01:00