summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWojciech Piekutowski <wojciech@piekutowski.net>2011-04-11 23:54:17 +0200
committerWojciech Piekutowski <wojciech@piekutowski.net>2011-04-11 23:58:48 +0200
commitf9e501249f52425f896d0524929b61d03670c9fe (patch)
tree241cbe7a23d47427b7e3289157ab5a38f0f0f1cc
parentdb6841250c04d45197b5b487ffd54f6924f2bc7c (diff)
Handle Available Reserved Space
-rw-r--r--atasmart.c24
1 files changed, 22 insertions, 2 deletions
diff --git a/atasmart.c b/atasmart.c
index 67ed183..7e00606 100644
--- a/atasmart.c
+++ b/atasmart.c
@@ -1208,7 +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"))
+ else if (!strcmp(a->name, "endurance-remaining") ||
+ !strcmp(a->name, "available-reserved-space"))
a->pretty_value = a->current_value;
else
a->pretty_value = fourtyeight;
@@ -1353,7 +1354,8 @@ typedef enum SkSmartQuirk {
SK_SMART_QUIRK_9_UNKNOWN = 0x0400,
SK_SMART_QUIRK_197_UNKNOWN = 0x0800,
SK_SMART_QUIRK_198_UNKNOWN = 0x1000,
- SK_SMART_QUIRK_190_UNKNOWN = 0x2000
+ SK_SMART_QUIRK_190_UNKNOWN = 0x2000,
+ SK_SMART_QUIRK_232_AVAILABLERESERVEDSPACE = 0x4000
} SkSmartQuirk;
/* %STRINGPOOLSTART% */
@@ -1372,6 +1374,7 @@ static const char *quirk_name[] = {
"197_UNKNOWN",
"198_UNKNOWN",
"190_UNKNOWN",
+ "232_AVAILABLERESERVEDSPACE",
NULL
};
/* %STRINGPOOLSTOP% */
@@ -1524,6 +1527,12 @@ static const SkSmartQuirkDatabase quirk_database[] = { {
SK_SMART_QUIRK_5_UNKNOWN|
SK_SMART_QUIRK_190_UNKNOWN
}, {
+
+ /*** Intel */
+ "^INTEL SSDSA2CW[0-9]{3}G3$",
+ NULL,
+ SK_SMART_QUIRK_232_AVAILABLERESERVEDSPACE
+ }, {
NULL,
NULL,
0
@@ -1703,6 +1712,17 @@ static const SkSmartAttributeInfo *lookup_attribute(SkDisk *d, uint8_t id) {
/* %STRINGPOOLSTOP% */
break;
+
+ case 232:
+ /* %STRINGPOOLSTART% */
+ if (quirk & SK_SMART_QUIRK_232_AVAILABLERESERVEDSPACE) {
+ static const SkSmartAttributeInfo a = {
+ "available-reserved-space", SK_SMART_ATTRIBUTE_UNIT_PERCENT, NULL
+ };
+ return &a;
+ }
+ /* %STRINGPOOLSTOP% */
+ break;
}
}