summaryrefslogtreecommitdiffstats
path: root/atasmart.h
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2009-08-06 20:35:21 +0200
committerLennart Poettering <lennart@poettering.net>2009-08-06 20:35:21 +0200
commitb7f3834654cb05f5a8aae6b2381d548f49d72987 (patch)
treea0fbe0c2e6daba85477f357ee607fd9f7f1d34ca /atasmart.h
parent04cc540cda9cb5055c00dfb7271bc483808483f4 (diff)
rework lgoic that determines verdict of drive
Distuingish attributes that are failing now vs. failed in the past. Add 'warn' field that is used to signal UIs to highlight certain attributes. Beef up the "overall status" logic a bit. This breaks ABI. Depending on your client this might break API too.
Diffstat (limited to 'atasmart.h')
-rw-r--r--atasmart.h12
1 files changed, 8 insertions, 4 deletions
diff --git a/atasmart.h b/atasmart.h
index c0baec5..aa4e339 100644
--- a/atasmart.h
+++ b/atasmart.h
@@ -157,8 +157,10 @@ typedef struct SkSmartAttributeParsedData {
SkBool prefailure:1;
/* Volatile data */
- SkBool good:1, good_valid:1;
+ SkBool good_now:1, good_now_valid:1;
+ SkBool good_in_the_past:1, good_in_the_past_valid:1;
SkBool current_value_valid:1, worst_value_valid:1;
+ SkBool warn:1;
uint8_t current_value, worst_value;
uint64_t pretty_value;
uint8_t raw[6];
@@ -171,9 +173,11 @@ typedef struct SkDisk SkDisk;
typedef enum SkSmartOverall {
SK_SMART_OVERALL_GOOD,
- SK_SMART_OVERALL_BAD_STATUS, /* Smart Self Assessment negative */
- SK_SMART_OVERALL_BAD_SECTOR, /* At least one bad sector */
- SK_SMART_OVERALL_BAD_ATTRIBUTE, /* At least one pre-fail attribute exceeded its threshold in the past or now */
+ SK_SMART_OVERALL_BAD_ATTRIBUTE_IN_THE_PAST, /* At least one pre-fail attribute exceeded its threshold in the past */
+ SK_SMART_OVERALL_BAD_SECTOR, /* At least one bad sector */
+ SK_SMART_OVERALL_BAD_ATTRIBUTE_NOW, /* At least one pre-fail attribute is exceeding its threshold now */
+ SK_SMART_OVERALL_BAD_SECTOR_MANY, /* Many bad sectors */
+ SK_SMART_OVERALL_BAD_STATUS, /* Smart Self Assessment negative */
_SK_SMART_OVERALL_MAX
/* This enum may be extended at any time without this being