Changeset 5874
- Timestamp:
- 11/02/10 13:57:11 (3 years ago)
- Files:
-
- 1 modified
-
lm-sensors/trunk/lib/sysfs.c (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
lm-sensors/trunk/lib/sysfs.c
r5844 r5874 137 137 char sensors_sysfs_mount[NAME_MAX]; 138 138 139 #define MAX_MAIN_SENSOR_TYPES 6 140 #define MAX_OTHER_SENSOR_TYPES 1 139 141 #define MAX_SENSORS_PER_TYPE 24 140 142 #define MAX_SUBFEATURES 8 141 #define MAX_SENSOR_TYPES 6 142 /* Room for all 6 types (in, fan, temp, power, energy, current) with all 143 their subfeatures + VID + misc features */ 144 #define ALL_POSSIBLE_SUBFEATURES \ 145 (MAX_SENSORS_PER_TYPE * MAX_SUBFEATURES * \ 146 MAX_SENSOR_TYPES * 2 + \ 147 MAX_SENSORS_PER_TYPE + 1) 143 #define FEATURE_SIZE (MAX_SUBFEATURES * 2) 144 #define FEATURE_TYPE_SIZE (MAX_SENSORS_PER_TYPE * FEATURE_SIZE) 145 146 /* Room for all 6 main types (in, fan, temp, power, energy, current) and 1 147 other type (VID) with all their subfeatures + misc features */ 148 #define SUB_OFFSET_OTHER (MAX_MAIN_SENSOR_TYPES * FEATURE_TYPE_SIZE) 149 #define SUB_OFFSET_MISC (SUB_OFFSET_OTHER + \ 150 MAX_OTHER_SENSOR_TYPES * FEATURE_TYPE_SIZE) 151 #define ALL_POSSIBLE_SUBFEATURES (SUB_OFFSET_MISC + 1) 148 152 149 153 static … … 405 409 switch (sftype) { 406 410 case SENSORS_SUBFEATURE_VID: 407 i = nr + MAX_SENSORS_PER_TYPE * MAX_SUBFEATURES * 408 MAX_SENSOR_TYPES * 2; 411 i = SUB_OFFSET_OTHER + 412 ((sftype >> 8) - SENSORS_FEATURE_VID) * 413 FEATURE_TYPE_SIZE + 414 nr * FEATURE_SIZE + (sftype & 0xFF); 409 415 break; 410 416 case SENSORS_SUBFEATURE_BEEP_ENABLE: 411 i = MAX_SENSORS_PER_TYPE * MAX_SUBFEATURES *412 MAX_SENSOR_TYPES * 2 + MAX_SENSORS_PER_TYPE;417 i = SUB_OFFSET_MISC + 418 ((sftype >> 8) - SENSORS_FEATURE_BEEP_ENABLE); 413 419 break; 414 420 default: 415 i = (sftype >> 8) * MAX_SENSORS_PER_TYPE *416 MAX_SUBFEATURES * 2 + nr * MAX_SUBFEATURES * 2+421 i = (sftype >> 8) * FEATURE_TYPE_SIZE + 422 nr * FEATURE_SIZE + 417 423 ((sftype & 0x80) >> 7) * MAX_SUBFEATURES + 418 424 (sftype & 0x7F); … … 451 457 continue; 452 458 453 if (i >= MAX_SENSORS_PER_TYPE * MAX_SUBFEATURES * 454 MAX_SENSOR_TYPES * 2 || 455 i / (MAX_SUBFEATURES * 2) != prev_slot) { 459 if (i >= SUB_OFFSET_MISC || i / FEATURE_SIZE != prev_slot) { 456 460 fnum++; 457 prev_slot = i / (MAX_SUBFEATURES * 2);461 prev_slot = i / FEATURE_SIZE; 458 462 } 459 463 } … … 473 477 474 478 /* New main feature? */ 475 if (i >= MAX_SENSORS_PER_TYPE * MAX_SUBFEATURES * 476 MAX_SENSOR_TYPES * 2 || 477 i / (MAX_SUBFEATURES * 2) != prev_slot) { 479 if (i >= SUB_OFFSET_MISC || i / FEATURE_SIZE != prev_slot) { 478 480 ftype = all_subfeatures[i].type >> 8; 479 481 fnum++; 480 prev_slot = i / (MAX_SUBFEATURES * 2);482 prev_slot = i / FEATURE_SIZE; 481 483 482 484 dyn_features[fnum].name = get_feature_name(ftype,
