Changeset 4833
- Timestamp:
- 09/23/07 14:02:59 (6 years ago)
- Location:
- lm-sensors/branches/lm-sensors-3.0.0/prog
- Files:
-
- 2 modified
-
sensord/chips.c (modified) (4 diffs)
-
sensors/chips.c (modified) (10 diffs)
Legend:
- Unmodified
- Added
- Removed
-
lm-sensors/branches/lm-sensors-3.0.0/prog/sensord/chips.c
r4832 r4833 153 153 int index0; 154 154 155 index0 = iter->type - first_val - 1;155 index0 = iter->type - first_val; 156 156 if (index0 < 0 || index0 >= size) 157 157 /* New feature in libsensors? Ignore. */ … … 163 163 } 164 164 165 #define IN_FEATURE(x) has_features[x - SENSORS_FEATURE_IN - 1]166 #define IN_FEATURE_NR(x) feature_nrs[x - SENSORS_FEATURE_IN - 1]165 #define IN_FEATURE(x) has_features[x - SENSORS_FEATURE_IN] 166 #define IN_FEATURE_NR(x) feature_nrs[x - SENSORS_FEATURE_IN] 167 167 static void fillChipVoltage (FeatureDescriptor *voltage, 168 168 const sensors_chip_name *name, 169 169 const sensors_subfeature *feature) 170 170 { 171 const int size = SENSORS_FEATURE_IN_BEEP - SENSORS_FEATURE_IN ;172 short has_features[SENSORS_FEATURE_IN_BEEP - SENSORS_FEATURE_IN ] = { 0, };173 int feature_nrs[SENSORS_FEATURE_IN_BEEP - SENSORS_FEATURE_IN ];171 const int size = SENSORS_FEATURE_IN_BEEP - SENSORS_FEATURE_IN + 1; 172 short has_features[SENSORS_FEATURE_IN_BEEP - SENSORS_FEATURE_IN + 1] = { 0, }; 173 int feature_nrs[SENSORS_FEATURE_IN_BEEP - SENSORS_FEATURE_IN + 1]; 174 174 int pos = 0; 175 175 176 176 voltage->rrd = rrdF2; 177 177 voltage->type = DataType_voltage; 178 voltage->dataNumbers[pos++] = feature->number;179 178 180 179 getAvailableFeatures (name, feature, has_features, 181 180 feature_nrs, size, SENSORS_FEATURE_IN); 181 182 voltage->dataNumbers[pos++] = IN_FEATURE_NR(SENSORS_FEATURE_IN); 182 183 183 184 if (IN_FEATURE(SENSORS_FEATURE_IN_MIN) && … … 211 212 } 212 213 213 #define TEMP_FEATURE(x) has_features[x - SENSORS_FEATURE_TEMP - 1]214 #define TEMP_FEATURE_NR(x) feature_nrs[x - SENSORS_FEATURE_TEMP - 1]214 #define TEMP_FEATURE(x) has_features[x - SENSORS_FEATURE_TEMP] 215 #define TEMP_FEATURE_NR(x) feature_nrs[x - SENSORS_FEATURE_TEMP] 215 216 static void fillChipTemperature (FeatureDescriptor *temperature, 216 217 const sensors_chip_name *name, 217 218 const sensors_subfeature *feature) 218 219 { 219 const int size = SENSORS_FEATURE_TEMP_BEEP - SENSORS_FEATURE_TEMP ;220 short has_features[SENSORS_FEATURE_TEMP_BEEP - SENSORS_FEATURE_TEMP ] = { 0, };221 int feature_nrs[SENSORS_FEATURE_TEMP_BEEP - SENSORS_FEATURE_TEMP ];220 const int size = SENSORS_FEATURE_TEMP_BEEP - SENSORS_FEATURE_TEMP + 1; 221 short has_features[SENSORS_FEATURE_TEMP_BEEP - SENSORS_FEATURE_TEMP + 1] = { 0, }; 222 int feature_nrs[SENSORS_FEATURE_TEMP_BEEP - SENSORS_FEATURE_TEMP + 1]; 222 223 int pos = 0; 223 224 224 225 temperature->rrd = rrdF1; 225 226 temperature->type = DataType_temperature; 226 temperature->dataNumbers[pos++] = feature->number;227 227 228 228 getAvailableFeatures (name, feature, has_features, 229 229 feature_nrs, size, SENSORS_FEATURE_TEMP); 230 231 temperature->dataNumbers[pos++] = TEMP_FEATURE_NR(SENSORS_FEATURE_TEMP); 230 232 231 233 if (TEMP_FEATURE(SENSORS_FEATURE_TEMP_MIN) && … … 262 264 } 263 265 264 #define FAN_FEATURE(x) has_features[x - SENSORS_FEATURE_FAN - 1]265 #define FAN_FEATURE_NR(x) feature_nrs[x - SENSORS_FEATURE_FAN - 1]266 #define FAN_FEATURE(x) has_features[x - SENSORS_FEATURE_FAN] 267 #define FAN_FEATURE_NR(x) feature_nrs[x - SENSORS_FEATURE_FAN] 266 268 static void fillChipFan (FeatureDescriptor *fan, 267 269 const sensors_chip_name *name, 268 270 const sensors_subfeature *feature) 269 271 { 270 const int size = SENSORS_FEATURE_FAN_BEEP - SENSORS_FEATURE_FAN ;271 short has_features[SENSORS_FEATURE_FAN_BEEP - SENSORS_FEATURE_FAN ] = { 0, };272 int feature_nrs[SENSORS_FEATURE_FAN_BEEP - SENSORS_FEATURE_FAN ];272 const int size = SENSORS_FEATURE_FAN_BEEP - SENSORS_FEATURE_FAN + 1; 273 short has_features[SENSORS_FEATURE_FAN_BEEP - SENSORS_FEATURE_FAN + 1] = { 0, }; 274 int feature_nrs[SENSORS_FEATURE_FAN_BEEP - SENSORS_FEATURE_FAN + 1]; 273 275 int pos = 0; 274 276 275 277 fan->rrd = rrdF0; 276 278 fan->type = DataType_rpm; 277 fan->dataNumbers[pos++] = feature->number;278 279 279 280 getAvailableFeatures (name, feature, has_features, 280 281 feature_nrs, size, SENSORS_FEATURE_FAN); 282 283 fan->dataNumbers[pos++] = FAN_FEATURE_NR(SENSORS_FEATURE_FAN); 281 284 282 285 if (FAN_FEATURE(SENSORS_FEATURE_FAN_MIN)) { -
lm-sensors/branches/lm-sensors-3.0.0/prog/sensors/chips.c
r4832 r4833 85 85 int indx, err; 86 86 87 indx = iter->type - first_val - 1;87 indx = iter->type - first_val; 88 88 if (indx < 0 || indx >= size) 89 89 /* New feature in libsensors? Ignore. */ … … 141 141 } 142 142 143 #define TEMP_FEATURE(x) has_features[x - SENSORS_FEATURE_TEMP - 1]144 #define TEMP_FEATURE_VAL(x) feature_vals[x - SENSORS_FEATURE_TEMP - 1]143 #define TEMP_FEATURE(x) has_features[x - SENSORS_FEATURE_TEMP] 144 #define TEMP_FEATURE_VAL(x) feature_vals[x - SENSORS_FEATURE_TEMP] 145 145 static void print_chip_temp(const sensors_chip_name *name, 146 146 const sensors_subfeature *feature, … … 151 151 int alarm, crit_displayed = 0; 152 152 char *label; 153 const int size = SENSORS_FEATURE_TEMP_TYPE - SENSORS_FEATURE_TEMP ;154 short has_features[SENSORS_FEATURE_TEMP_TYPE - SENSORS_FEATURE_TEMP ] = { 0, };155 double feature_vals[SENSORS_FEATURE_TEMP_TYPE - SENSORS_FEATURE_TEMP ] = { 0.0, };153 const int size = SENSORS_FEATURE_TEMP_TYPE - SENSORS_FEATURE_TEMP + 1; 154 short has_features[SENSORS_FEATURE_TEMP_TYPE - SENSORS_FEATURE_TEMP + 1] = { 0, }; 155 double feature_vals[SENSORS_FEATURE_TEMP_TYPE - SENSORS_FEATURE_TEMP + 1] = { 0.0, }; 156 156 157 157 if (!(label = sensors_get_label(name, feature->number))) { … … 160 160 } 161 161 162 if (sensors_get_value(name, feature->number, &val)) {163 printf("ERROR: Can't get %s data!\n", label);164 free(label);165 return;166 }167 168 162 sensors_get_available_features(name, feature, has_features, 169 163 feature_vals, size, 170 164 SENSORS_FEATURE_TEMP); 165 val = TEMP_FEATURE_VAL(SENSORS_FEATURE_TEMP); 171 166 172 167 alarm = TEMP_FEATURE(SENSORS_FEATURE_TEMP_ALARM) && … … 279 274 } 280 275 281 #define IN_FEATURE(x) has_features[x - SENSORS_FEATURE_IN - 1]282 #define IN_FEATURE_VAL(x) feature_vals[x - SENSORS_FEATURE_IN - 1]276 #define IN_FEATURE(x) has_features[x - SENSORS_FEATURE_IN] 277 #define IN_FEATURE_VAL(x) feature_vals[x - SENSORS_FEATURE_IN] 283 278 static void print_chip_in(const sensors_chip_name *name, 284 279 const sensors_subfeature *feature, 285 280 int label_size) 286 281 { 287 const int size = SENSORS_FEATURE_IN_MAX_ALARM - SENSORS_FEATURE_IN ;288 short has_features[SENSORS_FEATURE_IN_MAX_ALARM - SENSORS_FEATURE_IN ] = { 0, };289 double feature_vals[SENSORS_FEATURE_IN_MAX_ALARM - SENSORS_FEATURE_IN ] = { 0.0, };282 const int size = SENSORS_FEATURE_IN_MAX_ALARM - SENSORS_FEATURE_IN + 1; 283 short has_features[SENSORS_FEATURE_IN_MAX_ALARM - SENSORS_FEATURE_IN + 1] = { 0, }; 284 double feature_vals[SENSORS_FEATURE_IN_MAX_ALARM - SENSORS_FEATURE_IN + 1] = { 0.0, }; 290 285 double val, alarm_max, alarm_min; 291 286 char *label; … … 296 291 } 297 292 298 if (sensors_get_value(name, feature->number, &val)) {299 printf("ERROR: Can't get %s data!\n", label);300 free(label);301 return;302 }303 304 293 sensors_get_available_features(name, feature, has_features, 305 294 feature_vals, size, SENSORS_FEATURE_IN); 295 val = IN_FEATURE_VAL(SENSORS_FEATURE_IN); 306 296 307 297 print_label(label, label_size); … … 344 334 } 345 335 346 #define FAN_FEATURE(x) has_features[x - SENSORS_FEATURE_FAN - 1]347 #define FAN_FEATURE_VAL(x) feature_vals[x - SENSORS_FEATURE_FAN - 1]336 #define FAN_FEATURE(x) has_features[x - SENSORS_FEATURE_FAN] 337 #define FAN_FEATURE_VAL(x) feature_vals[x - SENSORS_FEATURE_FAN] 348 338 static void print_chip_fan(const sensors_chip_name *name, 349 339 const sensors_subfeature *feature, … … 351 341 { 352 342 char *label; 353 const int size = SENSORS_FEATURE_FAN_DIV - SENSORS_FEATURE_FAN ;354 short has_features[SENSORS_FEATURE_FAN_DIV - SENSORS_FEATURE_FAN ] = { 0, };355 double feature_vals[SENSORS_FEATURE_FAN_DIV - SENSORS_FEATURE_FAN ] = { 0.0, };343 const int size = SENSORS_FEATURE_FAN_DIV - SENSORS_FEATURE_FAN + 1; 344 short has_features[SENSORS_FEATURE_FAN_DIV - SENSORS_FEATURE_FAN + 1] = { 0, }; 345 double feature_vals[SENSORS_FEATURE_FAN_DIV - SENSORS_FEATURE_FAN + 1] = { 0.0, }; 356 346 double val; 357 347 … … 361 351 } 362 352 363 if (sensors_get_value(name, feature->number, &val)) {364 printf("ERROR: Can't get %s data!\n", label);365 free(label);366 return;367 }368 369 353 print_label(label, label_size); 370 354 free(label); … … 372 356 sensors_get_available_features(name, feature, has_features, 373 357 feature_vals, size, SENSORS_FEATURE_FAN); 358 val = FAN_FEATURE_VAL(SENSORS_FEATURE_FAN); 374 359 375 360 if (FAN_FEATURE(SENSORS_FEATURE_FAN_FAULT) &&
