moved to gitlab
[psensor-pkg-ubuntu.git] / src / lib / lmsensor.c
diff --git a/src/lib/lmsensor.c b/src/lib/lmsensor.c
deleted file mode 100644 (file)
index baa97ef..0000000
+++ /dev/null
@@ -1,244 +0,0 @@
-/*
- * Copyright (C) 2010-2014 jeanfi@gmail.com
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
- * 02110-1301 USA
- */
-#include <locale.h>
-#include <libintl.h>
-#define _(str) gettext(str)
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include <sensors/sensors.h>
-#include <sensors/error.h>
-
-#include <psensor.h>
-
-static int init_done;
-
-static const char *PROVIDER_NAME = "lmsensor";
-
-static double get_value(const sensors_chip_name *name,
-                       const sensors_subfeature *sub)
-{
-       double val;
-       int err;
-
-       err = sensors_get_value(name, sub->number, &val);
-       if (err) {
-               log_err(_("%s: Cannot get value of subfeature %s: %s."),
-                       PROVIDER_NAME,
-                       sub->name,
-                       sensors_strerror(err));
-               val = UNKNOWN_DBL_VALUE;
-       }
-       return val;
-}
-
-static double get_temp_input(struct psensor *sensor)
-{
-       const sensors_subfeature *sf;
-
-       const sensors_chip_name *chip;
-
-       const sensors_feature *feature;
-
-       chip = sensor->iname;
-       feature = sensor->feature;
-
-       sf = sensors_get_subfeature(sensor->iname,
-                                   feature,
-                                   SENSORS_SUBFEATURE_TEMP_INPUT);
-       if (sf)
-               return get_value(chip, sf);
-
-       return UNKNOWN_DBL_VALUE;
-}
-
-static double get_fan_input(struct psensor *sensor)
-{
-       const sensors_chip_name *chip = sensor->iname;
-       const sensors_feature *feature = sensor->feature;
-
-       const sensors_subfeature *sf;
-
-       sf = sensors_get_subfeature(chip,
-                                   feature,
-                                   SENSORS_SUBFEATURE_FAN_INPUT);
-
-       if (sf)
-               return get_value(chip, sf);
-
-       return UNKNOWN_DBL_VALUE;
-}
-
-void lmsensor_psensor_list_update(struct psensor **sensors)
-{
-       struct psensor *s;
-       double v;
-
-       if (!init_done)
-               return;
-
-       while (*sensors) {
-               s = *sensors;
-
-               if (!(s->type & SENSOR_TYPE_REMOTE)
-                   && s->type & SENSOR_TYPE_LMSENSOR) {
-
-                       if (s->type & SENSOR_TYPE_TEMP)
-                               v = get_temp_input(s);
-                       else /* s->type & SENSOR_TYPE_RPM */
-                               v = get_fan_input(s);
-
-                       if (v != UNKNOWN_DBL_VALUE)
-                               psensor_set_current_value(s, v);
-               }
-
-               sensors++;
-       }
-}
-
-static struct psensor *
-lmsensor_psensor_create(const sensors_chip_name *chip,
-                       const sensors_feature *feature,
-                       int values_max_length)
-{
-       char name[200];
-       const sensors_subfeature *sf;
-       int type;
-       char *id, *label, *cname;
-       struct psensor *psensor;
-       sensors_subfeature_type fault_subfeature;
-
-       if (sensors_snprintf_chip_name(name, 200, chip) < 0)
-               return NULL;
-
-       if (feature->type == SENSORS_FEATURE_TEMP) {
-               fault_subfeature = SENSORS_SUBFEATURE_TEMP_FAULT;
-       } else if (feature->type == SENSORS_FEATURE_FAN) {
-               fault_subfeature = SENSORS_SUBFEATURE_FAN_FAULT;
-       } else {
-               log_err(_("%s: Wrong feature type."), PROVIDER_NAME);
-               return NULL;
-       }
-
-       sf = sensors_get_subfeature(chip, feature, fault_subfeature);
-       if (sf && get_value(chip, sf))
-               return NULL;
-
-       label = sensors_get_label(chip, feature);
-       if (!label)
-               return NULL;
-
-       type = SENSOR_TYPE_LMSENSOR;
-       if (feature->type == SENSORS_FEATURE_TEMP)
-               type |= SENSOR_TYPE_TEMP;
-       else if (feature->type == SENSORS_FEATURE_FAN)
-               type |= (SENSOR_TYPE_RPM|SENSOR_TYPE_FAN);
-       else
-               return NULL;
-
-       id = malloc(strlen(PROVIDER_NAME)
-                   + 1
-                   + strlen(name)
-                   + 1
-                   + strlen(label)
-                   + 1);
-       sprintf(id, "%s %s %s", PROVIDER_NAME, name, label);
-
-       if (!strcmp(chip->prefix, "coretemp"))
-               cname = strdup(_("Intel CPU"));
-       else if (!strcmp(chip->prefix, "k10temp")
-                || !strcmp(chip->prefix, "k8temp")
-                || !strcmp(chip->prefix, "fam15h_power"))
-               cname = strdup(_("AMD CPU"));
-       else if (!strcmp(chip->prefix, "nouveau"))
-               cname = strdup(_("NVIDIA GPU"));
-       else if (!strcmp(chip->prefix, "via-cputemp"))
-               cname = strdup(_("VIA CPU"));
-       else if (!strcmp(chip->prefix, "acpitz"))
-               cname = strdup(_("ACPI"));
-       else
-               cname = strdup(chip->prefix);
-
-       psensor = psensor_create(id, label, cname, type, values_max_length);
-
-       psensor->iname = chip;
-       psensor->feature = feature;
-
-       if (feature->type == SENSORS_FEATURE_TEMP
-           && (get_temp_input(psensor) == UNKNOWN_DBL_VALUE)) {
-               free(psensor);
-               return NULL;
-       }
-
-       return psensor;
-}
-
-void lmsensor_init()
-{
-       int err;
-
-       err = sensors_init(NULL);
-
-       if (err) {
-               log_err(_("%s: initialization failure: %s."),
-                       PROVIDER_NAME,
-                       sensors_strerror(err));
-               init_done = 0;
-       } else {
-               init_done = 1;
-       }
-}
-
-void lmsensor_psensor_list_append(struct psensor ***sensors, int vn)
-{
-       const sensors_chip_name *chip;
-       int chip_nr, i;
-       const sensors_feature *feature;
-       struct psensor *s;
-
-       if (!init_done)
-               lmsensor_init();
-
-       if (!init_done)
-               return;
-
-       chip_nr = 0;
-       while ((chip = sensors_get_detected_chips(NULL, &chip_nr))) {
-
-               i = 0;
-               while ((feature = sensors_get_features(chip, &i))) {
-                       if (feature->type == SENSORS_FEATURE_TEMP
-                           || feature->type == SENSORS_FEATURE_FAN) {
-
-                               s = lmsensor_psensor_create(chip, feature, vn);
-
-                               if (s)
-                                       psensor_list_append(sensors, s);
-                       }
-               }
-       }
-}
-
-void lmsensor_cleanup()
-{
-       if (init_done)
-               sensors_cleanup();
-}