summaryrefslogtreecommitdiffstats
path: root/smart.c
diff options
context:
space:
mode:
Diffstat (limited to 'smart.c')
-rw-r--r--smart.c15
1 files changed, 7 insertions, 8 deletions
diff --git a/smart.c b/smart.c
index f0710c4..a90c3ab 100644
--- a/smart.c
+++ b/smart.c
@@ -711,11 +711,11 @@ static const SkSmartAttributeInfo const attribute_info[255] = {
[13] = { "read-soft-error-rate", SK_SMART_ATTRIBUTE_UNIT_NONE },
[187] = { "reported-uncorrect", SK_SMART_ATTRIBUTE_UNIT_SECTORS },
[189] = { "high-fly-writes", SK_SMART_ATTRIBUTE_UNIT_NONE },
- [190] = { "airflow-temperature-celsius", SK_SMART_ATTRIBUTE_UNIT_KELVIN },
+ [190] = { "airflow-temperature-celsius", SK_SMART_ATTRIBUTE_UNIT_MKELVIN },
[191] = { "g-sense-error-rate", SK_SMART_ATTRIBUTE_UNIT_NONE },
[192] = { "power-off-retract-count", SK_SMART_ATTRIBUTE_UNIT_NONE },
[193] = { "load-cycle-count", SK_SMART_ATTRIBUTE_UNIT_NONE },
- [194] = { "temperature-celsius-2", SK_SMART_ATTRIBUTE_UNIT_KELVIN },
+ [194] = { "temperature-celsius-2", SK_SMART_ATTRIBUTE_UNIT_MKELVIN },
[195] = { "hardware-ecc-recovered", SK_SMART_ATTRIBUTE_UNIT_NONE },
[196] = { "reallocated-event-count", SK_SMART_ATTRIBUTE_UNIT_NONE },
[197] = { "current-pending-sector", SK_SMART_ATTRIBUTE_UNIT_SECTORS },
@@ -741,7 +741,7 @@ static const SkSmartAttributeInfo const attribute_info[255] = {
[227] = { "torq-amp-count", SK_SMART_ATTRIBUTE_UNIT_NONE },
[228] = { "power-off-retract-count", SK_SMART_ATTRIBUTE_UNIT_NONE },
[230] = { "head-amplitude", SK_SMART_ATTRIBUTE_UNIT_UNKNOWN },
- [231] = { "temperature-celsius-1", SK_SMART_ATTRIBUTE_UNIT_KELVIN },
+ [231] = { "temperature-celsius-1", SK_SMART_ATTRIBUTE_UNIT_MKELVIN },
[240] = { "head-flying-hours", SK_SMART_ATTRIBUTE_UNIT_MSECONDS },
[250] = { "read-error-retry-rate", SK_SMART_ATTRIBUTE_UNIT_NONE }
};
@@ -768,7 +768,7 @@ static void make_pretty(SkSmartAttributeParsedData *a) {
else if (!strcmp(a->name, "airflow-temperature-celsius") ||
!strcmp(a->name, "temperature-celsius-1") ||
!strcmp(a->name, "temperature-celsius-2")) {
- a->pretty_value = (fourtyeight & 0xFFFF) + 273;
+ a->pretty_value = (fourtyeight & 0xFFFF)*1000 + 273150;
} else if (!strcmp(a->name, "power-on-minutes"))
a->pretty_value = fourtyeight * 60 * 1000;
else if (!strcmp(a->name, "power-on-seconds"))
@@ -779,7 +779,6 @@ static void make_pretty(SkSmartAttributeParsedData *a) {
a->pretty_value = fourtyeight * 60 * 60 * 1000;
else
a->pretty_value = fourtyeight;
-
}
static const SkSmartAttributeInfo *lookup_attribute(SkDisk *d, guint8 id) {
@@ -967,7 +966,7 @@ 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_KELVIN] = "K"
+ [SK_SMART_ATTRIBUTE_UNIT_MKELVIN] = "mK"
};
if (unit >= _SK_SMART_ATTRIBUTE_UNIT_MAX)
@@ -1009,9 +1008,9 @@ static char *print_value(char *s, size_t len, const SkSmartAttributeParsedData *
break;
- case SK_SMART_ATTRIBUTE_UNIT_KELVIN:
+ case SK_SMART_ATTRIBUTE_UNIT_MKELVIN:
- g_snprintf(s, len, "%lli C", (long long) a->pretty_value - 273);
+ g_snprintf(s, len, "%0.1f C", ((double) a->pretty_value - 273150) / 1000);
break;
case SK_SMART_ATTRIBUTE_UNIT_SECTORS: