mirror of
https://github.com/lm-sensors/lm-sensors.git
synced 2026-11-01 13:20:30 +00:00
Define a separate structure to represent main features. This allows
for faster main features lookup. One side effect of this change is that subfeatures can no longer have labels nor be ignored. I do not think that this is a problem in practice, and actually this makes a lot of sense. git-svn-id: http://lm-sensors.org/svn/lm-sensors/branches/lm-sensors-3.0.0@4834 7894878c-1315-0410-8ee3-d5d059ff63e0
This commit is contained in:
1 parent
bfe337fe76
commit
96c914bfda
11 files changed
+160
-126
No files matched your search
+26
@@ -163,6 +163,7 @@ static int sensors_read_dynamic_chip(sensors_chip_features *chip,
|
||||
struct dlist *attrs;
|
||||
sensors_subfeature *features;
|
||||
sensors_subfeature *dyn_subfeatures;
|
||||
sensors_feature *dyn_features;
|
||||
|
||||
attrs = sysfs_get_device_attributes(sysdir);
|
||||
|
||||
@@ -289,6 +290,31 @@ static int sensors_read_dynamic_chip(sensors_chip_features *chip,
|
||||
chip->subfeature = dyn_subfeatures;
|
||||
chip->subfeature_count = fnum;
|
||||
|
||||
/* And now the main features */
|
||||
fnum = 0;
|
||||
for (i = 0; i < chip->subfeature_count; i++) {
|
||||
if (chip->subfeature[i].mapping == SENSORS_NO_MAPPING)
|
||||
fnum++;
|
||||
}
|
||||
|
||||
dyn_features = calloc(fnum, sizeof(sensors_feature));
|
||||
if (dyn_features == NULL) {
|
||||
sensors_fatal_error(__FUNCTION__, "Out of memory");
|
||||
}
|
||||
|
||||
fnum = 0;
|
||||
for (i = 0; i < chip->subfeature_count; i++) {
|
||||
if (chip->subfeature[i].mapping == SENSORS_NO_MAPPING) {
|
||||
dyn_features[fnum].name = strdup(chip->subfeature[i].name);
|
||||
dyn_features[fnum].first_subfeature = i;
|
||||
dyn_features[fnum].type = chip->subfeature[i].type;
|
||||
fnum++;
|
||||
}
|
||||
}
|
||||
|
||||
chip->feature = dyn_features;
|
||||
chip->feature_count = fnum;
|
||||
|
||||
exit_free:
|
||||
free(features);
|
||||
return 0;
|
||||
|
||||
Reference in new issue
Block a user