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;

-- 


Reply via email to