Changeset 6006
- Timestamp:
- 01/09/12 18:21:08 (17 months ago)
- Files:
-
- 1 modified
-
lm-sensors/trunk/prog/sensors/chips.c (modified) (14 diffs)
Legend:
- Unmodified
- Added
- Removed
-
lm-sensors/trunk/prog/sensors/chips.c
r5944 r6006 202 202 const struct sensor_subfeature_list *sfl, 203 203 struct sensor_subfeature_data *limits, 204 int max_limits,205 204 int *num_limits, 206 205 struct sensor_subfeature_data *alarms, 207 int max_alarms,208 206 int *num_alarms) 209 207 { … … 220 218 */ 221 219 if (get_value(name, sf)) { 222 if (*num_alarms >= max_alarms) { 223 fprintf(stderr, 224 "Not enough %s buffers (%d)\n", 225 "alarm", max_alarms); 226 } else { 227 alarms[*num_alarms].name = sfl->name; 228 (*num_alarms)++; 229 } 220 alarms[*num_alarms].name = sfl->name; 221 (*num_alarms)++; 230 222 } 231 223 } else { … … 233 225 * Always queue limit subfeatures with their value. 234 226 */ 235 if (*num_limits >= max_limits) { 236 fprintf(stderr, 237 "Not enough %s buffers (%d)\n", 238 "limit", max_limits); 239 } else { 240 limits[*num_limits].value = get_value(name, sf); 241 limits[*num_limits].name = sfl->name; 242 (*num_limits)++; 243 } 227 limits[*num_limits].value = get_value(name, sf); 228 limits[*num_limits].name = sfl->name; 229 (*num_limits)++; 244 230 } 245 231 if (sfl->exists) { 246 232 get_sensor_limit_data(name, feature, sfl->exists, 247 limits, max_limits,num_limits,248 alarms, max_alarms,num_alarms);233 limits, num_limits, 234 alarms, num_alarms); 249 235 } 250 236 } … … 284 270 }; 285 271 272 #define NUM_TEMP_ALARMS 6 273 #define NUM_TEMP_SENSORS (ARRAY_SIZE(temp_sensors) \ 274 + ARRAY_SIZE(temp_max_sensors) \ 275 + ARRAY_SIZE(temp_crit_sensors) \ 276 + ARRAY_SIZE(temp_emergency_sensors) \ 277 - NUM_TEMP_ALARMS - 4) 278 286 279 static void print_chip_temp(const sensors_chip_name *name, 287 280 const sensors_feature *feature, 288 281 int label_size) 289 282 { 290 struct sensor_subfeature_data sensors[ 8];291 struct sensor_subfeature_data alarms[ 5];283 struct sensor_subfeature_data sensors[NUM_TEMP_SENSORS]; 284 struct sensor_subfeature_data alarms[NUM_TEMP_ALARMS]; 292 285 int sensor_count, alarm_count; 293 286 const sensors_subfeature *sf; … … 322 315 sensor_count = alarm_count = 0; 323 316 get_sensor_limit_data(name, feature, temp_sensors, 324 sensors, ARRAY_SIZE(sensors), &sensor_count, 325 alarms, ARRAY_SIZE(alarms), &alarm_count); 317 sensors, &sensor_count, alarms, &alarm_count); 326 318 327 319 for (i = 0; i < sensor_count; i++) { … … 369 361 }; 370 362 363 #define NUM_IN_ALARMS 5 364 #define NUM_IN_SENSORS (ARRAY_SIZE(voltage_sensors) - NUM_IN_ALARMS - 1) 365 371 366 static void print_chip_in(const sensors_chip_name *name, 372 367 const sensors_feature *feature, … … 375 370 const sensors_subfeature *sf; 376 371 char *label; 377 struct sensor_subfeature_data sensors[ 4];378 struct sensor_subfeature_data alarms[ 4];372 struct sensor_subfeature_data sensors[NUM_IN_SENSORS]; 373 struct sensor_subfeature_data alarms[NUM_IN_ALARMS]; 379 374 int sensor_count, alarm_count; 380 375 double val; … … 397 392 sensor_count = alarm_count = 0; 398 393 get_sensor_limit_data(name, feature, voltage_sensors, 399 sensors, ARRAY_SIZE(sensors), &sensor_count, 400 alarms, ARRAY_SIZE(alarms), &alarm_count); 394 sensors, &sensor_count, alarms, &alarm_count); 401 395 402 396 print_limits(sensors, sensor_count, alarms, alarm_count, label_size, … … 518 512 }; 519 513 514 #define MAX(a, b) ((a) > (b) ? (a) : (b)) 515 #define NUM_POWER_ALARMS 4 516 #define NUM_POWER_SENSORS (ARRAY_SIZE(power_common_sensors) \ 517 + MAX(ARRAY_SIZE(power_inst_sensors), \ 518 ARRAY_SIZE(power_avg_sensors)) \ 519 - NUM_POWER_ALARMS - 2) 520 520 521 static void print_chip_power(const sensors_chip_name *name, 521 522 const sensors_feature *feature, … … 524 525 double val; 525 526 const sensors_subfeature *sf; 526 struct sensor_subfeature_data sensors[ 6];527 struct sensor_subfeature_data alarms[ 3];527 struct sensor_subfeature_data sensors[NUM_POWER_SENSORS]; 528 struct sensor_subfeature_data alarms[NUM_POWER_ALARMS]; 528 529 int sensor_count, alarm_count; 529 530 char *label; … … 548 549 get_sensor_limit_data(name, feature, 549 550 sf ? power_inst_sensors : power_avg_sensors, 550 sensors, ARRAY_SIZE(sensors), &sensor_count, 551 alarms, ARRAY_SIZE(alarms), &alarm_count); 551 sensors, &sensor_count, alarms, &alarm_count); 552 552 /* Add sensors common to both flavors. */ 553 get_sensor_limit_data(name, feature, 554 power_common_sensors, 555 sensors, ARRAY_SIZE(sensors), &sensor_count, 556 alarms, ARRAY_SIZE(alarms), &alarm_count); 553 get_sensor_limit_data(name, feature, power_common_sensors, 554 sensors, &sensor_count, alarms, &alarm_count); 557 555 if (!sf) 558 556 sf = sensors_get_subfeature(name, feature, … … 657 655 }; 658 656 657 #define NUM_CURR_ALARMS 5 658 #define NUM_CURR_SENSORS (ARRAY_SIZE(current_sensors) - NUM_CURR_ALARMS - 1) 659 659 660 static void print_chip_curr(const sensors_chip_name *name, 660 661 const sensors_feature *feature, … … 664 665 double val; 665 666 char *label; 666 struct sensor_subfeature_data sensors[ 4];667 struct sensor_subfeature_data alarms[ 4];667 struct sensor_subfeature_data sensors[NUM_CURR_SENSORS]; 668 struct sensor_subfeature_data alarms[NUM_CURR_ALARMS]; 668 669 int sensor_count, alarm_count; 669 670 … … 685 686 sensor_count = alarm_count = 0; 686 687 get_sensor_limit_data(name, feature, current_sensors, 687 sensors, ARRAY_SIZE(sensors), &sensor_count, 688 alarms, ARRAY_SIZE(alarms), &alarm_count); 688 sensors, &sensor_count, alarms, &alarm_count); 689 689 690 690 print_limits(sensors, sensor_count, alarms, alarm_count, label_size,
