diff options
| author | Wojciech Piekutowski <wojciech@piekutowski.net> | 2011-04-11 23:16:56 +0200 | 
|---|---|---|
| committer | Wojciech Piekutowski <wojciech@piekutowski.net> | 2011-04-11 23:49:58 +0200 | 
| commit | f75c8e5e4c53c15b9c5a4668334ec7fbc811867b (patch) | |
| tree | 6c88cec1d076745a4107e631877a64a82cdcce53 | |
| parent | cc6020505701c97c7feeedf9bd41abf1bddb54a2 (diff) | |
Display endurance-remaining as percentage decreasing from 100 to 0
| -rw-r--r-- | atasmart.c | 11 | ||||
| -rw-r--r-- | atasmart.h | 1 | 
2 files changed, 10 insertions, 2 deletions
@@ -1208,6 +1208,8 @@ static void make_pretty(SkSmartAttributeParsedData *a) {          else if (!strcmp(a->name, "reallocated-sector-count") ||                   !strcmp(a->name, "current-pending-sector"))                  a->pretty_value = fourtyeight & 0xFFFFFFFFU; +        else if (!strcmp(a->name, "endurance-remaining")) +                a->pretty_value = a->current_value;          else                  a->pretty_value = fourtyeight;  } @@ -1327,7 +1329,7 @@ static const SkSmartAttributeInfo const attribute_info[256] = {          [231] = { "temperature-celsius",         SK_SMART_ATTRIBUTE_UNIT_MKELVIN,  verify_temperature },          /* http://www.adtron.com/pdf/SMART_for_XceedLite_SATA_RevA.pdf */ -        [232] = { "endurance-remaining",         SK_SMART_ATTRIBUTE_UNIT_UNKNOWN,  NULL }, +        [232] = { "endurance-remaining",         SK_SMART_ATTRIBUTE_UNIT_PERCENT,  NULL },          [233] = { "power-on-seconds-2",          SK_SMART_ATTRIBUTE_UNIT_UNKNOWN,  NULL },          [234] = { "uncorrectable-ecc-count",     SK_SMART_ATTRIBUTE_UNIT_SECTORS,  NULL },          [235] = { "good-block-rate",             SK_SMART_ATTRIBUTE_UNIT_UNKNOWN,  NULL }, @@ -1891,7 +1893,8 @@ const char* sk_smart_attribute_unit_to_string(SkSmartAttributeUnit unit) {                  [SK_SMART_ATTRIBUTE_UNIT_NONE] = "",                  [SK_SMART_ATTRIBUTE_UNIT_MSECONDS] = "ms",                  [SK_SMART_ATTRIBUTE_UNIT_SECTORS] = "sectors", -                [SK_SMART_ATTRIBUTE_UNIT_MKELVIN] = "mK" +                [SK_SMART_ATTRIBUTE_UNIT_MKELVIN] = "mK", +                [SK_SMART_ATTRIBUTE_UNIT_PERCENT] = "%"          };          /* %STRINGPOOLSTOP% */ @@ -2228,6 +2231,10 @@ static char *print_value(char *s, size_t len, uint64_t pretty_value, SkSmartAttr                          snprintf(s, len, "%llu sectors", (unsigned long long) pretty_value);                          break; +                case SK_SMART_ATTRIBUTE_UNIT_PERCENT: +                        snprintf(s, len, "%llu%%", (unsigned long long) pretty_value); +                        break; +                  case SK_SMART_ATTRIBUTE_UNIT_NONE:                          snprintf(s, len, "%llu", (unsigned long long) pretty_value);                          break; @@ -133,6 +133,7 @@ typedef enum SkSmartAttributeUnit {          SK_SMART_ATTRIBUTE_UNIT_MSECONDS,    /* milliseconds */          SK_SMART_ATTRIBUTE_UNIT_SECTORS,          SK_SMART_ATTRIBUTE_UNIT_MKELVIN,     /* millikelvin */ +        SK_SMART_ATTRIBUTE_UNIT_PERCENT,          _SK_SMART_ATTRIBUTE_UNIT_MAX          /* This enum may be extended at any time without this being  | 
