+ if (psensor_list_contains_type(sensors, SENSOR_TYPE_HDDTEMP))
+ hddtemp_psensor_list_update(sensors);
+
+#ifdef HAVE_ATASMART
+ if (psensor_list_contains_type(sensors, SENSOR_TYPE_ATASMART))
+ atasmart_psensor_list_update(sensors);
+#endif
+}
+
+void psensor_log_measures(struct psensor **sensors)
+{
+ if (log_level == LOG_DEBUG)
+ while (*sensors) {
+ log_debug("Measure: %s %.2f",
+ (*sensors)->name,
+ psensor_get_current_value(*sensors));
+
+ sensors++;
+ }
+}
+
+void psensor_init()
+{
+}
+
+void psensor_cleanup()
+{
+}
+
+struct psensor **psensor_list_copy(struct psensor **sensors)
+{
+ struct psensor **result;
+ int n, i;
+
+ n = psensor_list_size(sensors);
+ result = malloc((n+1) * sizeof(struct psensor *));
+ for (i = 0; i < n; i++)
+ result[i] = sensors[i];
+ result[n] = NULL;
+
+ return result;
+}
+
+char *
+psensor_current_value_to_str(const struct psensor *s, unsigned int use_celsius)
+{
+ return psensor_value_to_str(s->type,
+ psensor_get_current_value(s),
+ use_celsius);
+}
+
+struct psensor **psensor_list_filter_graph_enabled(struct psensor **sensors)
+{
+ int n, i;
+ struct psensor **result, **cur, *s;
+
+ if (!sensors)
+ return NULL;
+
+ n = psensor_list_size(sensors);
+ result = malloc((n+1) * sizeof(struct psensor *));
+
+ for (cur = sensors, i = 0; *cur; cur++) {
+ s = *cur;
+
+ if (s->graph_enabled)
+ result[i++] = s;
+ }
+
+ result[i] = NULL;
+
+ return result;