Now that sensors_get_ignored() is an internal function, we can change

its prototype to suit our needs better.

* Pass the chip name by address.
* Pass the feature directly rather than its number.
* Switch to a sane convention for the returned value.
* Don't check for errors that can't happen.


git-svn-id: http://lm-sensors.org/svn/lm-sensors/branches/lm-sensors-3.0.0@4646 7894878c-1315-0410-8ee3-d5d059ff63e0
This commit is contained in:
Jean Delvare committed 2007-07-24 08:22:03 +00:00
1 parent 9896986247
commit eaec35491e
1 file changed
+18 -23
+18 -23
View File
@@ -193,34 +193,29 @@ sensors_get_label_exit:
return 0;
}
/* Looks up whether a feature should be ignored. Returns <0 on failure,
0 if it should be ignored, 1 if it is valid. This function takes
/* Looks up whether a feature should be ignored. Returns
1 if it should be ignored, 0 if not. This function takes
logical mappings into account. */
static int sensors_get_ignored(sensors_chip_name name, int feature)
static int sensors_get_ignored(const sensors_chip_name *name,
const sensors_chip_feature *feature)
{
const sensors_chip *chip;
const sensors_chip_feature *featureptr;
const sensors_chip_feature *alt_featureptr;
const char *main_feature_name;
int i;
if (sensors_chip_name_has_wildcards(name))
return -SENSORS_ERR_WILDCARDS;
if (!(featureptr = sensors_lookup_feature_nr(&name, feature)))
return -SENSORS_ERR_NO_ENTRY;
if (featureptr->data.mapping == SENSORS_NO_MAPPING)
alt_featureptr = NULL;
else if (!(alt_featureptr =
sensors_lookup_feature_nr(&name,
featureptr->data.mapping)))
return -SENSORS_ERR_NO_ENTRY;
for (chip = NULL; (chip = sensors_for_all_config_chips(name, chip));)
if (feature->data.mapping == SENSORS_NO_MAPPING)
main_feature_name = NULL;
else
main_feature_name = sensors_lookup_feature_nr(name,
feature->data.mapping)->data.name;
for (chip = NULL; (chip = sensors_for_all_config_chips(*name, chip));)
for (i = 0; i < chip->ignores_count; i++)
if (!strcasecmp(featureptr->data.name, chip->ignores[i].name) ||
(alt_featureptr &&
!strcasecmp(alt_featureptr->data.name, chip->ignores[i].name)))
return 0;
/* valid */
return 1;
if (!strcasecmp(feature->data.name, chip->ignores[i].name) ||
(main_feature_name &&
!strcasecmp(main_feature_name, chip->ignores[i].name)))
return 1;
return 0;
}
/* Read the value of a feature of a certain chip. Note that chip should not
@@ -347,7 +342,7 @@ const sensors_feature_data *sensors_get_all_features(sensors_chip_name name,
if (sensors_match_chip(sensors_proc_chips[i].chip, name)) {
feature_list = sensors_proc_chips[i].feature;
while (feature_list[*nr].data.name
&& sensors_get_ignored(name, feature_list[*nr].data.number) != 1)
&& sensors_get_ignored(&name, &feature_list[*nr]))
(*nr)++;
if (!feature_list[*nr].data.name)
return NULL;