cpu_freq: Port to OpenBSD
In OpenBSD CPU frequency gets fetched using sysctl now.
This commit is contained in:
parent
c3ce506b7f
commit
3fe1db8892
2 changed files with 25 additions and 2 deletions
2
README
2
README
|
@ -62,7 +62,7 @@ Porting to OpenBSD is the current goal before thinking about a release.
|
||||||
|
|
||||||
The following functions are not portable at the moment:
|
The following functions are not portable at the moment:
|
||||||
- wifi_{perc,essid}
|
- wifi_{perc,essid}
|
||||||
- cpu_{freq,perc,iowait}
|
- cpu_{perc,iowait}
|
||||||
- entropy
|
- entropy
|
||||||
- swap_{free,perc,total,used}
|
- swap_{free,perc,total,used}
|
||||||
- battery_{power,state}
|
- battery_{power,state}
|
||||||
|
|
|
@ -1,10 +1,14 @@
|
||||||
/* See LICENSE file for copyright and license details. */
|
/* See LICENSE file for copyright and license details. */
|
||||||
#if defined(__linux__)
|
#include <errno.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
#if defined(__OpenBSD__)
|
||||||
|
#include <sys/sysctl.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
#include "../util.h"
|
#include "../util.h"
|
||||||
|
|
||||||
|
#if defined(__linux__)
|
||||||
const char *
|
const char *
|
||||||
cpu_freq(void)
|
cpu_freq(void)
|
||||||
{
|
{
|
||||||
|
@ -62,4 +66,23 @@ cpu_iowait(void)
|
||||||
|
|
||||||
return bprintf("%d", perc);
|
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
|
#endif
|
||||||
|
|
Loading…
Reference in a new issue