1
0
Fork 0
mirror of https://github.com/anrieff/libcpuid synced 2025-06-07 00:51:40 +00:00

Add CPU clock OS detection routine for OpenBSD

This commit is contained in:
Brad Smith 2025-04-17 14:55:47 -04:00 committed by The Tumultuous Unicorn Of Darkness
parent 9e1c332f52
commit e9cf64aeec

View file

@ -109,8 +109,7 @@ int cpu_clock_by_os(void)
return (int)result; return (int)result;
} }
#else #elif defined(__APPLE__)
#ifdef __APPLE__
#include <sys/types.h> #include <sys/types.h>
#include <sys/sysctl.h> #include <sys/sysctl.h>
/* Assuming Mac OS X with hw.cpufrequency sysctl */ /* Assuming Mac OS X with hw.cpufrequency sysctl */
@ -122,6 +121,19 @@ int cpu_clock_by_os(void)
return -1; return -1;
return (int) (result / (long long) 1000000); return (int) (result / (long long) 1000000);
} }
#elif defined(__OpenBSD__)
/* Assuming OpenBSD with hw.cpuspeed sysctl */
#include <sys/types.h>
#include <sys/sysctl.h>
int cpu_clock_by_os(void)
{
int result = -1;
size_t size = sizeof(result);
int mib[2] = { CTL_HW, HW_CPUSPEED };
if (sysctl(mib, 2, &result, &size, NULL, 0))
return -1;
return result;
}
#else #else
/* Assuming Linux with /proc/cpuinfo */ /* Assuming Linux with /proc/cpuinfo */
int cpu_clock_by_os(void) int cpu_clock_by_os(void)
@ -145,7 +157,6 @@ int cpu_clock_by_os(void)
fclose(f); fclose(f);
return -1; return -1;
} }
#endif /* __APPLE__ */
#endif /* _WIN32 */ #endif /* _WIN32 */
/* Emulate doing useful CPU intensive work */ /* Emulate doing useful CPU intensive work */