[PATCH] ntdll: Implement idle time query for Mac OS.
Chip Davis
cdavis5x at gmail.com
Tue Apr 19 19:18:36 CDT 2022
From: Chip Davis <cdavis at codeweavers.com>
Signed-off-by: Chip Davis <cdavis5x at gmail.com>
---
dlls/ntdll/unix/system.c | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
diff --git a/dlls/ntdll/unix/system.c b/dlls/ntdll/unix/system.c
index 56a31f5e4757..1b92649ba284 100644
--- a/dlls/ntdll/unix/system.c
+++ b/dlls/ntdll/unix/system.c
@@ -1911,6 +1911,22 @@ static void get_performance_info( SYSTEM_PERFORMANCE_INFORMATION *info )
info->IdleTime.QuadPart = (ULONGLONG)ptimes[CP_IDLE] * 10000000 / clockrate.stathz;
}
}
+#elif defined(__APPLE__)
+ {
+ host_name_port_t host = mach_host_self();
+ struct host_cpu_load_info load_info;
+ mach_msg_type_number_t count;
+
+ count = HOST_CPU_LOAD_INFO_COUNT;
+ if (host_statistics(host, HOST_CPU_LOAD_INFO, (host_info_t)&load_info, &count) == KERN_SUCCESS)
+ {
+ /* Believe it or not, based on my reading of XNU source, this is
+ * already in the units we want (100 ns).
+ */
+ info->IdleTime.QuadPart = load_info.cpu_ticks[CPU_STATE_IDLE];
+ }
+ mach_port_deallocate(mach_task_self(), host);
+ }
#else
{
static ULONGLONG idle;
--
2.34.1
More information about the wine-devel
mailing list