diff --git a/dlls/ntdll/nt.c b/dlls/ntdll/nt.c index 863844a1c4a..0b010106b8e 100644 --- a/dlls/ntdll/nt.c +++ b/dlls/ntdll/nt.c @@ -1606,6 +1606,51 @@ static NTSTATUS create_logical_proc_info(SYSTEM_LOGICAL_PROCESSOR_INFORMATION ** *max_len = len * sizeof(**data); return STATUS_SUCCESS; } +#elif defined(__APPLE__) +static NTSTATUS create_logical_proc_info(SYSTEM_LOGICAL_PROCESSOR_INFORMATION **data, DWORD *max_len) +{ + DWORD len = 0, i, j; + DWORD cores_no, lcpu_no, lcpu_per_core, cores_per_package; + size_t size; + ULONG_PTR mask; + + lcpu_no = NtCurrentTeb()->Peb->NumberOfProcessors; + + size = sizeof(cores_no); + if(sysctlbyname("machdep.cpu.core_count", &cores_no, &size, NULL, 0)) + cores_no = lcpu_no; + + lcpu_per_core = lcpu_no/cores_no; + for(i=0; i