diff --git a/dlls/ntdll/nt.c b/dlls/ntdll/nt.c index a0de7057903..3601c0fb061 100644 --- a/dlls/ntdll/nt.c +++ b/dlls/ntdll/nt.c @@ -1123,6 +1123,19 @@ static inline void get_cpuinfo(SYSTEM_CPU_INFORMATION* info) } fclose(f); } +#elif defined(__FreeBSD__) + size_t valsize; + char buf[8]; + int value; + + valsize = sizeof(buf); + if (!sysctlbyname("hw.machine_arch", &buf, &valsize, NULL, 0) && + sscanf(buf, "armv%i", &value) == 1) + info->Level = value; + + valsize = sizeof(value); + if (!sysctlbyname("hw.floatingpoint", &value, &valsize, NULL, 0)) + user_shared_data->ProcessorFeatures[PF_ARM_VFP_32_REGISTERS_AVAILABLE] = value; #else FIXME("CPU Feature detection not implemented.\n"); #endif