diff --git a/sm5/ataprint.c b/sm5/ataprint.c index 4ba9dba67604d7224c45323df71dc3f9ab312141..d5b395627b7d22db12bcbb787a1c331721a9e668 100644 --- a/sm5/ataprint.c +++ b/sm5/ataprint.c @@ -35,7 +35,7 @@ #include "knowndrives.h" #include "config.h" -const char *ataprint_c_cvsid="$Id: ataprint.c,v 1.149 2004/04/02 05:57:40 ballen4705 Exp $" +const char *ataprint_c_cvsid="$Id: ataprint.c,v 1.150 2004/04/10 00:24:14 ballen4705 Exp $" ATACMDNAMES_H_CVSID ATACMDS_H_CVSID ATAPRINT_H_CVSID CONFIG_H_CVSID EXTERN_H_CVSID INT64_H_CVSID KNOWNDRIVES_H_CVSID SMARTCTL_H_CVSID UTILITY_H_CVSID; // for passing global control variables @@ -924,8 +924,9 @@ int ataPrintSmartErrorlog(struct ata_smart_errorlog *data){ "\tDC = Device Command Register [HEX]\n" "\tER = Error register [HEX]\n" "\tST = Status register [HEX]\n" - "Timestamp = decimal seconds since the previous disk power-on.\n" - "Note: timestamp \"wraps\" after 2^32 msec = 49.710 days.\n\n"); + "Powered_Up_Time is measured from power on, and printed as\n" + "DDd+hh:mm:SS.sss where DD=days, hh=hours, mm=minutes,\n" + "SS=sec, and sss=millisec. It \"wraps\" after 49.710 days.\n\n"); // now step through the five error log data structures (table 39 of spec) for (k = 4; k >= 0; k-- ) { @@ -982,8 +983,8 @@ int ataPrintSmartErrorlog(struct ata_smart_errorlog *data){ } pout("\n\n"); pout(" Commands leading to the command that caused the error were:\n" - " CR FR SC SN CL CH DH DC Power_Up_Time Command/Feature_Name\n" - " -- -- -- -- -- -- -- -- --------------- --------------------\n"); + " CR FR SC SN CL CH DH DC Powered_Up_Time Command/Feature_Name\n" + " -- -- -- -- -- -- -- -- ---------------- --------------------\n"); for ( j = 4; j >= 0; j--){ struct ata_smart_errorlog_command_struct *thiscommand=elog->commands+j; @@ -994,7 +995,7 @@ int ataPrintSmartErrorlog(struct ata_smart_errorlog *data){ // Convert integer milliseconds to a text-format string MsecToText(thiscommand->timestamp, timestring); - pout(" %02x %02x %02x %02x %02x %02x %02x %02x %16s %s\n", + pout(" %02x %02x %02x %02x %02x %02x %02x %02x %16s %s\n", (int)thiscommand->commandreg, (int)thiscommand->featuresreg, (int)thiscommand->sector_count, diff --git a/sm5/ataprint.cpp b/sm5/ataprint.cpp index 09a4d440afbf353dbad7a5f17ef1c495e36820da..8db0f1cf8ffa80ef264df7414198f6d482dcd30d 100644 --- a/sm5/ataprint.cpp +++ b/sm5/ataprint.cpp @@ -35,7 +35,7 @@ #include "knowndrives.h" #include "config.h" -const char *ataprint_c_cvsid="$Id: ataprint.cpp,v 1.149 2004/04/02 05:57:40 ballen4705 Exp $" +const char *ataprint_c_cvsid="$Id: ataprint.cpp,v 1.150 2004/04/10 00:24:14 ballen4705 Exp $" ATACMDNAMES_H_CVSID ATACMDS_H_CVSID ATAPRINT_H_CVSID CONFIG_H_CVSID EXTERN_H_CVSID INT64_H_CVSID KNOWNDRIVES_H_CVSID SMARTCTL_H_CVSID UTILITY_H_CVSID; // for passing global control variables @@ -924,8 +924,9 @@ int ataPrintSmartErrorlog(struct ata_smart_errorlog *data){ "\tDC = Device Command Register [HEX]\n" "\tER = Error register [HEX]\n" "\tST = Status register [HEX]\n" - "Timestamp = decimal seconds since the previous disk power-on.\n" - "Note: timestamp \"wraps\" after 2^32 msec = 49.710 days.\n\n"); + "Powered_Up_Time is measured from power on, and printed as\n" + "DDd+hh:mm:SS.sss where DD=days, hh=hours, mm=minutes,\n" + "SS=sec, and sss=millisec. It \"wraps\" after 49.710 days.\n\n"); // now step through the five error log data structures (table 39 of spec) for (k = 4; k >= 0; k-- ) { @@ -982,8 +983,8 @@ int ataPrintSmartErrorlog(struct ata_smart_errorlog *data){ } pout("\n\n"); pout(" Commands leading to the command that caused the error were:\n" - " CR FR SC SN CL CH DH DC Power_Up_Time Command/Feature_Name\n" - " -- -- -- -- -- -- -- -- --------------- --------------------\n"); + " CR FR SC SN CL CH DH DC Powered_Up_Time Command/Feature_Name\n" + " -- -- -- -- -- -- -- -- ---------------- --------------------\n"); for ( j = 4; j >= 0; j--){ struct ata_smart_errorlog_command_struct *thiscommand=elog->commands+j; @@ -994,7 +995,7 @@ int ataPrintSmartErrorlog(struct ata_smart_errorlog *data){ // Convert integer milliseconds to a text-format string MsecToText(thiscommand->timestamp, timestring); - pout(" %02x %02x %02x %02x %02x %02x %02x %02x %16s %s\n", + pout(" %02x %02x %02x %02x %02x %02x %02x %02x %16s %s\n", (int)thiscommand->commandreg, (int)thiscommand->featuresreg, (int)thiscommand->sector_count, diff --git a/sm5/knowndrives.c b/sm5/knowndrives.c index 1b4c7be4dcf178886062ce4605e5d3f1bc0d92ea..16d15022321a4f6ea0a40dc7c3c3115abbdcbe3a 100644 --- a/sm5/knowndrives.c +++ b/sm5/knowndrives.c @@ -26,7 +26,7 @@ #include "utility.h" // includes <regex.h> #include "config.h" -const char *knowndrives_c_cvsid="$Id: knowndrives.c,v 1.98 2004/03/13 15:03:56 chrfranke Exp $" +const char *knowndrives_c_cvsid="$Id: knowndrives.c,v 1.99 2004/04/10 00:24:14 ballen4705 Exp $" ATACMDS_H_CVSID ATAPRINT_H_CVSID CONFIG_H_CVSID EXTERN_H_CVSID INT64_H_CVSID KNOWNDRIVES_H_CVSID UTILITY_H_CVSID; #define MODEL_STRING_LENGTH 40 @@ -112,8 +112,10 @@ const unsigned char vendoropts_Hitachi_DK23XX[][2] = { const char same_as_minus_F[]="Fixes byte order in some SMART data (same as -F samsung)"; const char same_as_minus_F2[]="Fixes byte order in some SMART data (same as -F samsung2)"; -const char may_need_minus_F_disabled[]="May need -F samsung disabled; see manual for details."; +const char may_need_minus_F_disabled[] ="May need -F samsung disabled; see manual for details."; const char may_need_minus_F2_disabled[]="May need -F samsung2 disabled; see manual for details."; +const char may_need_minus_F2_enabled[] ="May need -F samsung2 enabled; see manual for details."; +const char may_need_minus_F_enabled[] ="May need -F samsung or -F samsung2 enabled; see manual for details."; /* Special-purpose functions for use in knowndrives[]. */ void specialpurpose_reverse_samsung(smartmonctrl *con) @@ -231,9 +233,9 @@ const drivesettings knowndrives[] = { specialpurpose_reverse_samsung2, same_as_minus_F2 }, - { // Any other Samsung disk with *-23 firmware + { // Any other Samsung disk with *-23 *-24 firmware "^SAMSUNG .*$", - ".*-23$", + ".*-2[34]$", may_need_minus_F2_disabled, vendoropts_Samsung_SV4012H, specialpurpose_reverse_samsung2, @@ -279,12 +281,13 @@ const drivesettings knowndrives[] = { specialpurpose_reverse_samsung, same_as_minus_F }, - { //Samsung SP1604N, tested with FW TM100-23 + { //Samsung SP1604N, tested with FW TM100-23 and TM100-24 "^SAMSUNG SP1604N$", - ".*", - NULL, + ".*-2[34]", + may_need_minus_F2_disabled, vendoropts_Samsung_SV4012H, - NULL,NULL + specialpurpose_reverse_samsung2, + same_as_minus_F2 }, { //SAMSUNG SV0322A with FW JK200-35 "^SAMSUNG SV0322A$", @@ -297,7 +300,7 @@ const drivesettings knowndrives[] = { { // All Samsung drives with '.*-25' firmware "^SAMSUNG.*", ".*-25$", - "May need -F samsung2 enabled; see manual for details.\n", + may_need_minus_F2_enabled, vendoropts_9_halfminutes, NULL, NULL }, @@ -312,7 +315,7 @@ const drivesettings knowndrives[] = { { // Samsung ALL OTHER DRIVES "^SAMSUNG.*", ".*", - "May need -F samsung or -F samsung2 enabled; see manual for details.\n", + may_need_minus_F_enabled, NULL, NULL, NULL }, { // Maxtor DiamondMax Plus D740X family diff --git a/sm5/knowndrives.cpp b/sm5/knowndrives.cpp index 320b304621003a52950453115d94d41c442d4850..b4834d10b61a3b385fb163710d234b290d648c24 100644 --- a/sm5/knowndrives.cpp +++ b/sm5/knowndrives.cpp @@ -26,7 +26,7 @@ #include "utility.h" // includes <regex.h> #include "config.h" -const char *knowndrives_c_cvsid="$Id: knowndrives.cpp,v 1.98 2004/03/13 15:03:56 chrfranke Exp $" +const char *knowndrives_c_cvsid="$Id: knowndrives.cpp,v 1.99 2004/04/10 00:24:14 ballen4705 Exp $" ATACMDS_H_CVSID ATAPRINT_H_CVSID CONFIG_H_CVSID EXTERN_H_CVSID INT64_H_CVSID KNOWNDRIVES_H_CVSID UTILITY_H_CVSID; #define MODEL_STRING_LENGTH 40 @@ -112,8 +112,10 @@ const unsigned char vendoropts_Hitachi_DK23XX[][2] = { const char same_as_minus_F[]="Fixes byte order in some SMART data (same as -F samsung)"; const char same_as_minus_F2[]="Fixes byte order in some SMART data (same as -F samsung2)"; -const char may_need_minus_F_disabled[]="May need -F samsung disabled; see manual for details."; +const char may_need_minus_F_disabled[] ="May need -F samsung disabled; see manual for details."; const char may_need_minus_F2_disabled[]="May need -F samsung2 disabled; see manual for details."; +const char may_need_minus_F2_enabled[] ="May need -F samsung2 enabled; see manual for details."; +const char may_need_minus_F_enabled[] ="May need -F samsung or -F samsung2 enabled; see manual for details."; /* Special-purpose functions for use in knowndrives[]. */ void specialpurpose_reverse_samsung(smartmonctrl *con) @@ -231,9 +233,9 @@ const drivesettings knowndrives[] = { specialpurpose_reverse_samsung2, same_as_minus_F2 }, - { // Any other Samsung disk with *-23 firmware + { // Any other Samsung disk with *-23 *-24 firmware "^SAMSUNG .*$", - ".*-23$", + ".*-2[34]$", may_need_minus_F2_disabled, vendoropts_Samsung_SV4012H, specialpurpose_reverse_samsung2, @@ -279,12 +281,13 @@ const drivesettings knowndrives[] = { specialpurpose_reverse_samsung, same_as_minus_F }, - { //Samsung SP1604N, tested with FW TM100-23 + { //Samsung SP1604N, tested with FW TM100-23 and TM100-24 "^SAMSUNG SP1604N$", - ".*", - NULL, + ".*-2[34]", + may_need_minus_F2_disabled, vendoropts_Samsung_SV4012H, - NULL,NULL + specialpurpose_reverse_samsung2, + same_as_minus_F2 }, { //SAMSUNG SV0322A with FW JK200-35 "^SAMSUNG SV0322A$", @@ -297,7 +300,7 @@ const drivesettings knowndrives[] = { { // All Samsung drives with '.*-25' firmware "^SAMSUNG.*", ".*-25$", - "May need -F samsung2 enabled; see manual for details.\n", + may_need_minus_F2_enabled, vendoropts_9_halfminutes, NULL, NULL }, @@ -312,7 +315,7 @@ const drivesettings knowndrives[] = { { // Samsung ALL OTHER DRIVES "^SAMSUNG.*", ".*", - "May need -F samsung or -F samsung2 enabled; see manual for details.\n", + may_need_minus_F_enabled, NULL, NULL, NULL }, { // Maxtor DiamondMax Plus D740X family