return psensor;
}
-struct psensor **lmsensor_psensor_list_add(struct psensor **sensors,
- int vn)
+void lmsensor_init()
+{
+ int err = sensors_init(NULL);
+
+ if (err) {
+ log_err(_("lmsensor: initialization failure: %s."),
+ 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 = 0;
- struct psensor **tmp, **result;
const sensors_feature *feature;
struct psensor *s;
int i;
if (!init_done)
- return NULL;
+ lmsensor_init();
+
+ if (!init_done)
+ return;
- result = sensors;
while ((chip = sensors_get_detected_chips(NULL, &chip_nr))) {
i = 0;
s = lmsensor_psensor_create(chip, feature, vn);
- if (s) {
- tmp = psensor_list_add(result, s);
-
- if (tmp != sensors)
- free(result);
-
- result = tmp;
- }
+ if (s)
+ psensor_list_append(sensors, s);
}
}
}
-
- return result;
-}
-
-void lmsensor_init()
-{
- int err = sensors_init(NULL);
-
- if (err) {
- log_err(_("lmsensor: initialization failure: %s."),
- sensors_strerror(err));
- init_done = 0;
- } else {
- init_done = 1;
- }
}
void lmsensor_cleanup()