|
@@ -21,14 +21,16 @@ struct nd_cmd_smart {
|
|
|
} __packed;
|
|
|
|
|
|
#define ND_SMART_HEALTH_VALID (1 << 0)
|
|
|
-#define ND_SMART_TEMP_VALID (1 << 1)
|
|
|
-#define ND_SMART_SPARES_VALID (1 << 2)
|
|
|
-#define ND_SMART_ALARM_VALID (1 << 3)
|
|
|
-#define ND_SMART_USED_VALID (1 << 4)
|
|
|
-#define ND_SMART_SHUTDOWN_VALID (1 << 5)
|
|
|
-#define ND_SMART_VENDOR_VALID (1 << 6)
|
|
|
-#define ND_SMART_TEMP_TRIP (1 << 0)
|
|
|
-#define ND_SMART_SPARE_TRIP (1 << 1)
|
|
|
+#define ND_SMART_SPARES_VALID (1 << 1)
|
|
|
+#define ND_SMART_USED_VALID (1 << 2)
|
|
|
+#define ND_SMART_TEMP_VALID (1 << 3)
|
|
|
+#define ND_SMART_CTEMP_VALID (1 << 4)
|
|
|
+#define ND_SMART_ALARM_VALID (1 << 9)
|
|
|
+#define ND_SMART_SHUTDOWN_VALID (1 << 10)
|
|
|
+#define ND_SMART_VENDOR_VALID (1 << 11)
|
|
|
+#define ND_SMART_SPARE_TRIP (1 << 0)
|
|
|
+#define ND_SMART_TEMP_TRIP (1 << 1)
|
|
|
+#define ND_SMART_CTEMP_TRIP (1 << 2)
|
|
|
#define ND_SMART_NON_CRITICAL_HEALTH (1 << 0)
|
|
|
#define ND_SMART_CRITICAL_HEALTH (1 << 1)
|
|
|
#define ND_SMART_FATAL_HEALTH (1 << 2)
|
|
@@ -37,14 +39,15 @@ struct nd_smart_payload {
|
|
|
__u32 flags;
|
|
|
__u8 reserved0[4];
|
|
|
__u8 health;
|
|
|
- __u16 temperature;
|
|
|
__u8 spares;
|
|
|
- __u8 alarm_flags;
|
|
|
__u8 life_used;
|
|
|
+ __u8 alarm_flags;
|
|
|
+ __u16 temperature;
|
|
|
+ __u16 ctrl_temperature;
|
|
|
+ __u8 reserved1[15];
|
|
|
__u8 shutdown_state;
|
|
|
- __u8 reserved1;
|
|
|
__u32 vendor_size;
|
|
|
- __u8 vendor_data[108];
|
|
|
+ __u8 vendor_data[92];
|
|
|
} __packed;
|
|
|
|
|
|
struct nd_cmd_smart_threshold {
|
|
@@ -53,7 +56,8 @@ struct nd_cmd_smart_threshold {
|
|
|
} __packed;
|
|
|
|
|
|
struct nd_smart_threshold_payload {
|
|
|
- __u16 alarm_control;
|
|
|
+ __u8 alarm_control;
|
|
|
+ __u8 reserved0;
|
|
|
__u16 temperature;
|
|
|
__u8 spares;
|
|
|
__u8 reserved[3];
|