verify parsing of all attributes
[platform/upstream/libatasmart.git] / atasmart.h
index db2d208..c0baec5 100644 (file)
@@ -49,6 +49,10 @@ typedef enum SkSmartSelfTest {
         SK_SMART_SELF_TEST_EXTENDED = 2,
         SK_SMART_SELF_TEST_CONVEYANCE = 3,
         SK_SMART_SELF_TEST_ABORT = 127
+
+        /* This enum may be extended at any time without this being
+         * considered an ABI change. So take care when you use this
+         * type! */
 } SkSmartSelfTest;
 
 const char* sk_smart_self_test_to_string(SkSmartSelfTest test);
@@ -71,6 +75,10 @@ typedef enum SkSmartOfflineDataCollectionStatus {
         SK_SMART_OFFLINE_DATA_COLLECTION_STATUS_FATAL,
         SK_SMART_OFFLINE_DATA_COLLECTION_STATUS_UNKNOWN,
         _SK_SMART_OFFLINE_DATA_COLLECTION_STATUS_MAX
+
+        /* This enum may be extended at any time without this being
+         * considered an ABI change. So take care when you use this
+         * type! */
 } SkSmartOfflineDataCollectionStatus;
 
 const char* sk_smart_offline_data_collection_status_to_string(SkSmartOfflineDataCollectionStatus status);
@@ -87,6 +95,10 @@ typedef enum SkSmartSelfTestExecutionStatus {
         SK_SMART_SELF_TEST_EXECUTION_STATUS_ERROR_HANDLING = 8,
         SK_SMART_SELF_TEST_EXECUTION_STATUS_INPROGRESS = 15,
         _SK_SMART_SELF_TEST_EXECUTION_STATUS_MAX
+
+        /* This enum may be extended at any time without this being
+         * considered an ABI change. So take care when you use this
+         * type! */
 } SkSmartSelfTestExecutionStatus;
 
 const char *sk_smart_self_test_execution_status_to_string(SkSmartSelfTestExecutionStatus status);
@@ -122,6 +134,10 @@ typedef enum SkSmartAttributeUnit {
         SK_SMART_ATTRIBUTE_UNIT_SECTORS,
         SK_SMART_ATTRIBUTE_UNIT_MKELVIN,     /* millikelvin */
         _SK_SMART_ATTRIBUTE_UNIT_MAX
+
+        /* This enum may be extended at any time without this being
+         * considered an ABI change. So take care when you use this
+         * type! */
 } SkSmartAttributeUnit;
 
 const char* sk_smart_attribute_unit_to_string(SkSmartAttributeUnit unit);
@@ -157,8 +173,12 @@ 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 attribute exceeded its threshold */
+        SK_SMART_OVERALL_BAD_ATTRIBUTE,  /* At least one pre-fail attribute exceeded its threshold in the past or now */
         _SK_SMART_OVERALL_MAX
+
+        /* This enum may be extended at any time without this being
+         * considered an ABI change. So take care when you use this
+         * type! */
 } SkSmartOverall;
 
 const char* sk_smart_overall_to_string(SkSmartOverall overall);
@@ -193,6 +213,9 @@ int sk_disk_smart_self_test(SkDisk *d, SkSmartSelfTest test);
 /* High level API to get the power on time */
 int sk_disk_smart_get_power_on(SkDisk *d, uint64_t *mseconds);
 
+/* High level API to get the power cycle count */
+int sk_disk_smart_get_power_cycle(SkDisk *d, uint64_t *count);
+
 /* High level API to get the number of bad sectors (i.e. pending and reallocated) */
 int sk_disk_smart_get_bad(SkDisk *d, uint64_t *sectors);