netstar pushed a commit to branch master. http://git.enlightenment.org/apps/evisum.git/commit/?id=7dd507769255e1be4eb763390bbeea7ebf8544fe
commit 7dd507769255e1be4eb763390bbeea7ebf8544fe Author: Alastair Poole <[email protected]> Date: Tue Jun 16 15:21:06 2020 +0100 OpenBSD: Detect thermal zones properly. --- src/bin/system/machine.c | 25 ++++++++++--------------- 1 file changed, 10 insertions(+), 15 deletions(-) diff --git a/src/bin/system/machine.c b/src/bin/system/machine.c index 2b46ce3..214d2b5 100644 --- a/src/bin/system/machine.c +++ b/src/bin/system/machine.c @@ -642,13 +642,13 @@ _sensors_thermal_get(Sys_Info *sysinfo) { sensor_t **sensors = sysinfo->sensors; #if defined(__OpenBSD__) || defined(__NetBSD__) + sensor_t *sensor; int mibs[5] = { CTL_HW, HW_SENSORS, 0, 0, 0 }; int devn, n; struct sensor snsr; size_t slen = sizeof(struct sensor); struct sensordev snsrdev; size_t sdlen = sizeof(struct sensordev); - sensor_t *sensor; for (devn = 0;; devn++) { @@ -660,16 +660,6 @@ _sensors_thermal_get(Sys_Info *sysinfo) continue; } - if ((strcmp("cpu0", snsrdev.xname)) && (strcmp("kmo", snsrdev.xname)) && - (strcmp("acpitz0", snsrdev.xname)) && (strncmp("bcmt", snsrdev.xname, 4))) - { - continue; - } - - sensors = realloc(sensors, 1 + sysinfo->snsr_count * sizeof(sensor_t *)); - sensors[sysinfo->snsr_count++] = sensor = calloc(1, sizeof(sensor_t)); - sensor->name = strdup(snsrdev.xname); - for (n = 0; n < snsrdev.maxnumt[SENSOR_TEMP]; n++) { mibs[4] = n; @@ -681,10 +671,15 @@ _sensors_thermal_get(Sys_Info *sysinfo) break; } - if (sysctl(mibs, 5, &snsr, &slen, NULL, 0) != -1) - sensor->value = (snsr.value - 273150000) / 1000000.0; - else - sensor->invalid = true; + if (sysctl(mibs, 5, &snsr, &slen, NULL, 0) == -1) + continue; + if (snsr.type != SENSOR_TEMP) + continue; + + sensors = realloc(sensors, 1 + sysinfo->snsr_count * sizeof(sensor_t *)); + sensors[sysinfo->snsr_count++] = sensor = calloc(1, sizeof(sensor_t)); + sensor->name = strdup(snsrdev.xname); + sensor->value = (snsr.value - 273150000) / 1000000.0; // (uK -> C) } #elif defined(__FreeBSD__) || defined(__DragonFly__) unsigned int value; --
