/* See LICENSE file for copyright and license details. */
-#if defined(__linux__)
+#include <errno.h>
#include <stdio.h>
#include <string.h>
+#if defined(__OpenBSD__)
+#include <sys/sysctl.h>
+#endif
#include "../util.h"
+#if defined(__linux__)
const char *
cpu_freq(void)
{
return bprintf("%d", perc);
}
+#elif defined(__OpenBSD__)
+const char *
+cpu_freq(void)
+{
+ int freq, mib[2];
+ size_t size;
+
+ mib[0] = CTL_HW;
+ mib[1] = HW_CPUSPEED;
+
+ size = sizeof(freq);
+
+ if (sysctl(mib, 2, &freq, &size, NULL, 0) == -1) {
+ fprintf(stderr, "sysctl 'HW_CPUSPEED': %s\n", strerror(errno));
+ return NULL;
+ }
+
+ return bprintf("%d", freq);
+}
#endif