--- a/atacmds.h
+++ b/atacmds.h
-@@ -119,7 +119,6 @@ enum {
+@@ -134,7 +134,6 @@ enum {
// Needed parts of the ATA DRIVE IDENTIFY Structure. Those labeled
// word* are NOT used.
struct ata_identify_device {
unsigned short words000_009[10];
unsigned char serial_no[20];
-@@ -141,7 +140,6 @@ struct ata_identify_device {
+@@ -156,7 +155,6 @@ struct ata_identify_device {
ASSERT_SIZEOF_STRUCT(ata_identify_device, 512);
/* ata_smart_attribute is the vendor specific in SFF-8035 spec */
struct ata_smart_attribute {
unsigned char id;
// meaning of flag bits: see MACROS just below
-@@ -202,7 +200,6 @@ ASSERT_SIZEOF_STRUCT(ata_smart_attribute
+@@ -217,7 +215,6 @@ ASSERT_SIZEOF_STRUCT(ata_smart_attribute
- /* ata_smart_values is format of the read drive Attribute command */
- /* see Table 34 of T13/1321D Rev 1 spec (Device SMART data structure) for *some* info */
+ // Format of data returned by SMART READ DATA
+ // Table 62 of T13/1699-D (ATA8-ACS) Revision 6a, September 2008
-#pragma pack(1)
struct ata_smart_values {
unsigned short int revnumber;
struct ata_smart_attribute vendor_attributes [NUMBER_ATA_SMART_ATTRIBUTES];
-@@ -234,7 +231,6 @@ ASSERT_SIZEOF_STRUCT(ata_smart_values, 5
+@@ -250,7 +247,6 @@ ASSERT_SIZEOF_STRUCT(ata_smart_values, 5
*/
/* Vendor attribute of SMART Threshold (compare to ata_smart_attribute above) */
struct ata_smart_threshold_entry {
unsigned char id;
unsigned char threshold;
-@@ -245,7 +241,6 @@ ASSERT_SIZEOF_STRUCT(ata_smart_threshold
+@@ -261,7 +257,6 @@ ASSERT_SIZEOF_STRUCT(ata_smart_threshold
/* Format of Read SMART THreshold Command */
/* Compare to ata_smart_values above */
struct ata_smart_thresholds_pvt {
unsigned short int revnumber;
struct ata_smart_threshold_entry thres_entries[NUMBER_ATA_SMART_ATTRIBUTES];
-@@ -257,7 +252,6 @@ ASSERT_SIZEOF_STRUCT(ata_smart_threshold
+@@ -273,7 +268,6 @@ ASSERT_SIZEOF_STRUCT(ata_smart_threshold
// Table 42 of T13/1321D Rev 1 spec (Error Data Structure)
struct ata_smart_errorlog_error_struct {
unsigned char reserved;
unsigned char error_register;
-@@ -276,7 +270,6 @@ ASSERT_SIZEOF_STRUCT(ata_smart_errorlog_
+@@ -292,7 +286,6 @@ ASSERT_SIZEOF_STRUCT(ata_smart_errorlog_
// Table 41 of T13/1321D Rev 1 spec (Command Data Structure)
struct ata_smart_errorlog_command_struct {
unsigned char devicecontrolreg;
unsigned char featuresreg;
-@@ -292,7 +285,6 @@ struct ata_smart_errorlog_command_struct
+@@ -308,7 +301,6 @@ struct ata_smart_errorlog_command_struct
ASSERT_SIZEOF_STRUCT(ata_smart_errorlog_command_struct, 12);
// Table 40 of T13/1321D Rev 1 spec (Error log data structure)
struct ata_smart_errorlog_struct {
struct ata_smart_errorlog_command_struct commands[5];
struct ata_smart_errorlog_error_struct error_struct;
-@@ -301,7 +293,6 @@ struct ata_smart_errorlog_struct {
+@@ -317,7 +309,6 @@ struct ata_smart_errorlog_struct {
ASSERT_SIZEOF_STRUCT(ata_smart_errorlog_struct, 90);
// Table 39 of T13/1321D Rev 1 spec (SMART error log sector)
struct ata_smart_errorlog {
unsigned char revnumber;
unsigned char error_log_pointer;
-@@ -398,7 +389,6 @@ ASSERT_SIZEOF_STRUCT(ata_smart_exterrlog
+@@ -414,7 +405,6 @@ ASSERT_SIZEOF_STRUCT(ata_smart_exterrlog
// Table 45 of T13/1321D Rev 1 spec (Self-test log descriptor entry)
struct ata_smart_selftestlog_struct {
unsigned char selftestnumber; // Sector number register
unsigned char selfteststatus;
-@@ -411,7 +401,6 @@ struct ata_smart_selftestlog_struct {
+@@ -427,7 +417,6 @@ struct ata_smart_selftestlog_struct {
ASSERT_SIZEOF_STRUCT(ata_smart_selftestlog_struct, 24);
// Table 44 of T13/1321D Rev 1 spec (Self-test log data structure)
struct ata_smart_selftestlog {
unsigned short int revnumber;
struct ata_smart_selftestlog_struct selftest_struct[21];
-@@ -460,7 +449,6 @@ struct ata_smart_extselftestlog
+@@ -476,7 +465,6 @@ struct ata_smart_extselftestlog
ASSERT_SIZEOF_STRUCT(ata_smart_extselftestlog, 512);
// SMART LOG DIRECTORY Table 52 of T13/1532D Vol 1 Rev 1a
struct ata_smart_log_entry {
unsigned char numsectors;
unsigned char reserved;
-@@ -468,7 +456,6 @@ struct ata_smart_log_entry {
+@@ -484,7 +472,6 @@ struct ata_smart_log_entry {
#pragma pack()
ASSERT_SIZEOF_STRUCT(ata_smart_log_entry, 2);
struct ata_smart_log_directory {
unsigned short int logversion;
struct ata_smart_log_entry entry[255];
-@@ -478,7 +465,6 @@ ASSERT_SIZEOF_STRUCT(ata_smart_log_direc
+@@ -494,7 +481,6 @@ ASSERT_SIZEOF_STRUCT(ata_smart_log_direc
// SMART SELECTIVE SELF-TEST LOG Table 61 of T13/1532D Volume 1
// Revision 3
struct test_span {
uint64_t start;
uint64_t end;
-@@ -486,7 +472,6 @@ struct test_span {
+@@ -502,7 +488,6 @@ struct test_span {
#pragma pack()
ASSERT_SIZEOF_STRUCT(test_span, 16);