Add FreeBSD support for temperature and battery components
This commit is contained in:

committed by
Aaron Marcher

parent
dd7f1896aa
commit
ec306623df
@ -3,6 +3,7 @@
|
||||
|
||||
#include "../util.h"
|
||||
|
||||
|
||||
#if defined(__linux__)
|
||||
#include <stdint.h>
|
||||
|
||||
@ -46,4 +47,25 @@
|
||||
/* kelvin to celsius */
|
||||
return bprintf("%d", (temp.value - 273150000) / 1E6);
|
||||
}
|
||||
#elif defined(__FreeBSD__)
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <sys/sysctl.h>
|
||||
|
||||
const char *
|
||||
temp(const char *zone)
|
||||
{
|
||||
char buf[256];
|
||||
int temp;
|
||||
size_t len;
|
||||
|
||||
len = sizeof(temp);
|
||||
snprintf(buf, sizeof(buf), "hw.acpi.thermal.%s.temperature", zone);
|
||||
if (sysctlbyname(buf, &temp, &len, NULL, 0) == -1
|
||||
|| !len)
|
||||
return NULL;
|
||||
|
||||
/* kelvin to decimal celcius */
|
||||
return bprintf("%d.%d", (temp - 2731) / 10, abs((temp - 2731) % 10));
|
||||
}
|
||||
#endif
|
||||
|
Reference in New Issue
Block a user