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:
parent
9e1c332f52
commit
e9cf64aeec
1 changed files with 14 additions and 3 deletions
|
@ -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 */
|
||||||
|
|
Loading…
Add table
Reference in a new issue