From f8ab64249186f05685a47eac85593dce8c5d691d Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Tue, 1 Jul 2008 13:19:41 +0200 Subject: use millikelvin as unit, instead of kelvin for temperatures --- smart.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) (limited to 'smart.c') 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: -- cgit