#include <lmsensor.h>
#include <temperature.h>
-#ifdef HAVE_GTOP
-#include <cpu.h>
-#include <pmem.h>
-#endif
-
struct psensor *psensor_create(char *id,
char *name,
char *chip,
psensor->graph_enabled = 1;
psensor->appindicator_enabled = 0;
-#ifdef HAVE_LIBUDISKS2
- psensor->udisks2_path = NULL;
-#endif
+ psensor->provider_data = NULL;
+ psensor->provider_data_free_fct = &free;
return psensor;
}
s->measures = new_ms;
}
-void psensor_free(struct psensor *sensor)
+void psensor_free(struct psensor *s)
{
- if (sensor) {
- log_debug("Cleanup %s", sensor->id);
+ if (!s)
+ return;
- free(sensor->name);
- free(sensor->id);
+ log_debug("Cleanup %s", s->id);
- if (sensor->chip)
- free(sensor->chip);
+ free(s->name);
+ free(s->id);
- if (sensor->color)
- free(sensor->color);
+ if (s->chip)
+ free(s->chip);
- measures_free(sensor->measures);
+ if (s->color)
+ free(s->color);
- free(sensor->url);
+ measures_free(s->measures);
-#ifdef HAVE_LIBUDISKS2
- free(sensor->udisks2_path);
-#endif
+ free(s->url);
- free(sensor);
- }
+ if (s->provider_data && s->provider_data_free_fct)
+ s->provider_data_free_fct(s->provider_data);
+
+ free(s);
}
void psensor_list_free(struct psensor **sensors)
}
#endif
-#ifdef HAVE_GTOP
- mem_psensor_list_add(&psensors, values_max_length);
-#endif
-
if (!psensors) { /* there is no detected sensors */
psensors = malloc(sizeof(struct psensor *));
*psensors = NULL;
{
lmsensor_psensor_list_update(sensors);
-#ifdef HAVE_GTOP
- cpu_psensor_list_update(sensors);
- mem_psensor_list_update(sensors);
-#endif
-
if (psensor_list_contains_type(sensors, SENSOR_TYPE_HDDTEMP))
hddtemp_psensor_list_update(sensors);