Show
Ignore:
Timestamp:
06/02/06 20:49:23 (6 years ago)
Author:
khali
Message:

Add user-space support for abituguru. Patch from Hans de Goede.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • lm-sensors/trunk/prog/sensors/chips.c

    r3311 r4035  
    59325932} 
    59335933 
     5934/* print_abituguru_in() 
     5935 *   where in, in_min, in_min_alarm, in_max and in_max_alarm are sensors 
     5936 *   feature IDs 
     5937 */ 
     5938static void print_abituguru_in(const sensors_chip_name *name, int in, 
     5939  int in_min, int in_min_alarm, int in_max, int in_max_alarm) 
     5940{ 
     5941  char *label; 
     5942  double cur, min, max, alarm_low, alarm_high; 
     5943  int valid; 
     5944 
     5945  if (!sensors_get_label_and_valid(*name, in, &label, &valid)) { 
     5946    if (valid) { 
     5947      if (!sensors_get_feature(*name, in, &cur) && 
     5948          !sensors_get_feature(*name, in_min, &min) && 
     5949          !sensors_get_feature(*name, in_max, &max) && 
     5950          !sensors_get_feature(*name, in_min_alarm, &alarm_low) && 
     5951          !sensors_get_feature(*name, in_max_alarm, &alarm_high)) { 
     5952        print_label(label, 23); 
     5953        printf("%+6.2f V (min %+6.2f V, max %+6.2f V)", 
     5954               cur, min, max); 
     5955        if (alarm_low || alarm_high) { 
     5956          printf(" ALARM ("); 
     5957          if (alarm_low) 
     5958            printf("LOW"); 
     5959          if (alarm_high) 
     5960            printf("%sHIGH", (alarm_low) ? "," : ""); 
     5961          printf(")"); 
     5962        } 
     5963        printf("\n"); 
     5964      } else 
     5965        printf("ERROR: Can't get IN data! (0x%04x)\n", in); 
     5966    } 
     5967    free(label); 
     5968  } 
     5969} 
     5970 
     5971/* print_abituguru_temp() 
     5972 * where temp, temp_alarm, temp_max, and temp_crit are sensors feature IDs 
     5973 */ 
     5974static void print_abituguru_temp(const sensors_chip_name *name, int temp, 
     5975        int temp_alarm, int temp_max, int temp_crit) 
     5976{ 
     5977  char *label; 
     5978  double cur, alarm, max, crit; 
     5979  int valid; 
     5980 
     5981  if (!sensors_get_label_and_valid(*name, temp, &label, &valid)) { 
     5982    if (valid) { 
     5983      if (!sensors_get_feature(*name, temp, &cur) && 
     5984          !sensors_get_feature(*name, temp_alarm, &alarm) && 
     5985          !sensors_get_feature(*name, temp_max, &max) && 
     5986          !sensors_get_feature(*name, temp_crit, &crit)) { 
     5987        print_label(label, 23); 
     5988        print_temp_info(cur, max, crit, CRIT, 0, 0); 
     5989        if (alarm) 
     5990          printf(" ALARM\n"); 
     5991        else 
     5992          printf("\n"); 
     5993      } else 
     5994        printf("ERROR: Can't get TEMP data! (0x%04x)\n", temp); 
     5995    } 
     5996    free(label); 
     5997  } 
     5998} 
     5999 
     6000/* print_abituguru_fan() 
     6001 *   where fan, fan_alarm and fan_min are sensors feature IDs 
     6002 */ 
     6003static void print_abituguru_fan(const sensors_chip_name *name, int fan, 
     6004        int fan_alarm, int fan_min) 
     6005{ 
     6006  char *label; 
     6007  double cur, alarm, min; 
     6008  int valid; 
     6009 
     6010  if (!sensors_get_label_and_valid(*name, fan, &label, &valid)) { 
     6011    if (valid) { 
     6012      if (!sensors_get_feature(*name, fan, &cur) && 
     6013          !sensors_get_feature(*name, fan_alarm, &alarm) && 
     6014          !sensors_get_feature(*name, fan_min, &min)) { 
     6015        print_label(label, 23); 
     6016        printf("%4.0f RPM (min %4.0f RPM)               %s\n", 
     6017               cur, min, alarm ? "ALARM" : ""); 
     6018      } else 
     6019        printf("ERROR: Can't get FAN data! (0x%04x)\n", fan); 
     6020    } 
     6021    free(label); 
     6022  } 
     6023} 
     6024 
     6025void print_abituguru(const sensors_chip_name *name) 
     6026{ 
     6027  int i; 
     6028 
     6029  for (i=0; i<11; i++) 
     6030    print_abituguru_in(name, SENSORS_ABITUGURU_IN(i), 
     6031      SENSORS_ABITUGURU_IN_MIN(i), SENSORS_ABITUGURU_IN_MIN_ALARM(i), 
     6032      SENSORS_ABITUGURU_IN_MAX(i), SENSORS_ABITUGURU_IN_MAX_ALARM(i)); 
     6033 
     6034  for (i=1; i<=7; i++) 
     6035    print_abituguru_temp(name, SENSORS_ABITUGURU_TEMP(i), 
     6036      SENSORS_ABITUGURU_TEMP_ALARM(i), SENSORS_ABITUGURU_TEMP_MAX(i), 
     6037      SENSORS_ABITUGURU_TEMP_CRIT(i)); 
     6038 
     6039  for (i=1; i<=6; i++) 
     6040    print_abituguru_fan(name, SENSORS_ABITUGURU_FAN(i), 
     6041      SENSORS_ABITUGURU_FAN_ALARM(i), SENSORS_ABITUGURU_FAN_MIN(i)); 
     6042} 
     6043 
    59346044void print_unknown_chip(const sensors_chip_name *name) 
    59356045{