forked from enlightenment/enlightenment
parent
ffe6ab106c
commit
18ceb3defd
|
@ -113,17 +113,21 @@ init(void)
|
|||
|
||||
for (dev = 0;; dev++) {
|
||||
mib[2] = dev;
|
||||
if (sysctl(mib, 3, &snsrdev, &sdlen, NULL, 0) == -1) {
|
||||
if (sysctl(mib, 3, &snsrdev, &sdlen, NULL, 0) == -1)
|
||||
{
|
||||
if (errno == ENOENT) /* no further sensors */
|
||||
break;
|
||||
else
|
||||
continue;
|
||||
}
|
||||
if (strcmp(snsrdev.xname, "cpu0") == 0) {
|
||||
if (strcmp(snsrdev.xname, "cpu0") == 0)
|
||||
{
|
||||
sensor_type = SENSOR_TYPE_OPENBSD;
|
||||
sensor_name = strdup("cpu0");
|
||||
break;
|
||||
} else if (strcmp(snsrdev.xname, "km0") == 0) {
|
||||
}
|
||||
else if (strcmp(snsrdev.xname, "km0") == 0)
|
||||
{
|
||||
sensor_type = SENSOR_TYPE_OPENBSD;
|
||||
sensor_name = strdup("km0");
|
||||
break;
|
||||
|
@ -262,6 +266,7 @@ init(void)
|
|||
{
|
||||
case SENSOR_TYPE_NONE:
|
||||
break;
|
||||
|
||||
case SENSOR_TYPE_FREEBSD:
|
||||
#ifdef __FreeBSD__
|
||||
snprintf(path, sizeof(path), "hw.acpi.thermal.%s.temperature",
|
||||
|
@ -271,6 +276,7 @@ init(void)
|
|||
sysctlnametomib(sensor_path, mib, &len);
|
||||
#endif
|
||||
break;
|
||||
|
||||
case SENSOR_TYPE_OPENBSD:
|
||||
#ifdef __OpenBSD__
|
||||
for (numt = 0; numt < snsrdev.maxnumt[SENSOR_TEMP]; numt++) {
|
||||
|
@ -278,28 +284,35 @@ init(void)
|
|||
slen = sizeof(snsr);
|
||||
if (sysctl(mib, 5, &snsr, &slen, NULL, 0) == -1)
|
||||
continue;
|
||||
if (slen > 0 && (snsr.flags & SENSOR_FINVALID) == 0) {
|
||||
if (slen > 0 && (snsr.flags & SENSOR_FINVALID) == 0)
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
break;
|
||||
|
||||
case SENSOR_TYPE_OMNIBOOK:
|
||||
sensor_path = strdup("/proc/omnibook/temperature");
|
||||
break;
|
||||
|
||||
case SENSOR_TYPE_LINUX_MACMINI:
|
||||
sensor_path = strdup("/sys/devices/temperatures/cpu_temperature");
|
||||
break;
|
||||
|
||||
case SENSOR_TYPE_LINUX_PBOOK:
|
||||
sensor_path = strdup("/sys/devices/temperatures/sensor1_temperature");
|
||||
break;
|
||||
|
||||
case SENSOR_TYPE_LINUX_INTELCORETEMP:
|
||||
sensor_path = strdup("/sys/devices/platform/coretemp.0/temp1_input");
|
||||
break;
|
||||
|
||||
case SENSOR_TYPE_LINUX_THINKPAD:
|
||||
sensor_path = strdup("/sys/devices/platform/thinkpad_hwmon/temp1_input");
|
||||
break;
|
||||
|
||||
case SENSOR_TYPE_LINUX_I2C:
|
||||
therms = ecore_file_ls("/sys/bus/i2c/devices");
|
||||
|
||||
|
@ -318,6 +331,7 @@ init(void)
|
|||
free(name);
|
||||
}
|
||||
break;
|
||||
|
||||
case SENSOR_TYPE_LINUX_PCI:
|
||||
therms = ecore_file_ls("/sys/bus/pci/devices");
|
||||
|
||||
|
@ -336,16 +350,19 @@ init(void)
|
|||
free(name);
|
||||
}
|
||||
break;
|
||||
|
||||
case SENSOR_TYPE_LINUX_ACPI:
|
||||
snprintf(path, sizeof(path),
|
||||
"/proc/acpi/thermal_zone/%s/temperature", sensor_name);
|
||||
sensor_path = strdup(path);
|
||||
break;
|
||||
|
||||
case SENSOR_TYPE_LINUX_SYS:
|
||||
snprintf(path, sizeof(path),
|
||||
"/sys/class/thermal/%s/temp", sensor_name);
|
||||
sensor_path = strdup(path);
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
@ -373,6 +390,7 @@ check(void)
|
|||
case SENSOR_TYPE_NONE:
|
||||
/* TODO: Slow down poller? */
|
||||
break;
|
||||
|
||||
case SENSOR_TYPE_FREEBSD:
|
||||
#ifdef __FreeBSD__
|
||||
len = sizeof(temp);
|
||||
|
@ -385,9 +403,11 @@ check(void)
|
|||
goto error;
|
||||
#endif
|
||||
break;
|
||||
|
||||
case SENSOR_TYPE_OPENBSD:
|
||||
#ifdef __OpenBSD__
|
||||
if (sysctl(mib, 5, &snsr, &slen, NULL, 0) != -1) {
|
||||
if (sysctl(mib, 5, &snsr, &slen, NULL, 0) != -1)
|
||||
{
|
||||
temp = (snsr.value - 273150000) / 1000000.0;
|
||||
ret = 1;
|
||||
}
|
||||
|
@ -395,6 +415,7 @@ check(void)
|
|||
goto error;
|
||||
#endif
|
||||
break;
|
||||
|
||||
case SENSOR_TYPE_OMNIBOOK:
|
||||
f = fopen(sensor_path, "r");
|
||||
if (f)
|
||||
|
@ -413,6 +434,7 @@ check(void)
|
|||
else
|
||||
goto error;
|
||||
break;
|
||||
|
||||
case SENSOR_TYPE_LINUX_MACMINI:
|
||||
case SENSOR_TYPE_LINUX_PBOOK:
|
||||
f = fopen(sensor_path, "rb");
|
||||
|
@ -430,6 +452,7 @@ check(void)
|
|||
else
|
||||
goto error;
|
||||
break;
|
||||
|
||||
case SENSOR_TYPE_LINUX_INTELCORETEMP:
|
||||
case SENSOR_TYPE_LINUX_I2C:
|
||||
case SENSOR_TYPE_LINUX_THINKPAD:
|
||||
|
@ -452,6 +475,7 @@ check(void)
|
|||
else
|
||||
goto error;
|
||||
break;
|
||||
|
||||
case SENSOR_TYPE_LINUX_PCI:
|
||||
f = fopen(sensor_path, "r");
|
||||
if (f)
|
||||
|
@ -472,6 +496,7 @@ check(void)
|
|||
else
|
||||
goto error;
|
||||
break;
|
||||
|
||||
case SENSOR_TYPE_LINUX_ACPI:
|
||||
f = fopen(sensor_path, "r");
|
||||
if (f)
|
||||
|
@ -486,7 +511,8 @@ check(void)
|
|||
if (p)
|
||||
{
|
||||
p++;
|
||||
while (*p == ' ') p++;
|
||||
while (*p == ' ')
|
||||
p++;
|
||||
q = strchr(p, ' ');
|
||||
if (q) *q = 0;
|
||||
temp = atoi(p);
|
||||
|
@ -498,6 +524,7 @@ check(void)
|
|||
else
|
||||
goto error;
|
||||
break;
|
||||
|
||||
case SENSOR_TYPE_LINUX_SYS:
|
||||
f = fopen(sensor_path, "r");
|
||||
if (f)
|
||||
|
@ -513,6 +540,7 @@ check(void)
|
|||
else
|
||||
goto error;
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
@ -597,3 +625,4 @@ main(int argc, char *argv[])
|
|||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue