| | 363 | } |
| | 364 | |
| | 365 | const sensors_feature_data * |
| | 366 | sensors_get_features(const sensors_chip_name *name, int *nr) |
| | 367 | { |
| | 368 | const sensors_feature_data *feature; |
| | 369 | |
| | 370 | while ((feature = sensors_get_all_features(name, nr))) { |
| | 371 | if (feature->mapping == SENSORS_NO_MAPPING) |
| | 372 | return feature; |
| | 373 | } |
| | 374 | return NULL; /* end of list */ |
| | 375 | } |
| | 376 | |
| | 377 | const sensors_feature_data * |
| | 378 | sensors_get_all_subfeatures(const sensors_chip_name *name, int feature, int *nr) |
| | 379 | { |
| | 380 | const sensors_feature_data *subfeature; |
| | 381 | |
| | 382 | /* Seek directly to the first subfeature */ |
| | 383 | if (*nr < feature) |
| | 384 | *nr = feature; |
| | 385 | |
| | 386 | subfeature = sensors_get_all_features(name, nr); |
| | 387 | if (!subfeature) |
| | 388 | return NULL; /* end of list */ |
| | 389 | if (subfeature->number == feature || |
| | 390 | subfeature->mapping == feature) |
| | 391 | return subfeature; |
| | 392 | return NULL; /* end of subfeature list */ |