Skip to content
Snippets Groups Projects
Commit b8bb8869 authored by ballen4705's avatar ballen4705
Browse files

Improved printing format for SMART error log; handle more Samsung

firmware cases


git-svn-id: https://smartmontools.svn.sourceforge.net/svnroot/smartmontools/trunk@1667 4ea69e1a-61f1-4043-bf83-b5c94c648137
parent 42ab0649
Branches
No related tags found
No related merge requests found
...@@ -35,7 +35,7 @@ ...@@ -35,7 +35,7 @@
#include "knowndrives.h" #include "knowndrives.h"
#include "config.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; 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 // for passing global control variables
...@@ -924,8 +924,9 @@ int ataPrintSmartErrorlog(struct ata_smart_errorlog *data){ ...@@ -924,8 +924,9 @@ int ataPrintSmartErrorlog(struct ata_smart_errorlog *data){
"\tDC = Device Command Register [HEX]\n" "\tDC = Device Command Register [HEX]\n"
"\tER = Error register [HEX]\n" "\tER = Error register [HEX]\n"
"\tST = Status register [HEX]\n" "\tST = Status register [HEX]\n"
"Timestamp = decimal seconds since the previous disk power-on.\n" "Powered_Up_Time is measured from power on, and printed as\n"
"Note: timestamp \"wraps\" after 2^32 msec = 49.710 days.\n\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) // now step through the five error log data structures (table 39 of spec)
for (k = 4; k >= 0; k-- ) { for (k = 4; k >= 0; k-- ) {
...@@ -982,8 +983,8 @@ int ataPrintSmartErrorlog(struct ata_smart_errorlog *data){ ...@@ -982,8 +983,8 @@ int ataPrintSmartErrorlog(struct ata_smart_errorlog *data){
} }
pout("\n\n"); pout("\n\n");
pout(" Commands leading to the command that caused the error were:\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" " CR FR SC SN CL CH DH DC Powered_Up_Time Command/Feature_Name\n"
" -- -- -- -- -- -- -- -- --------------- --------------------\n"); " -- -- -- -- -- -- -- -- ---------------- --------------------\n");
for ( j = 4; j >= 0; j--){ for ( j = 4; j >= 0; j--){
struct ata_smart_errorlog_command_struct *thiscommand=elog->commands+j; struct ata_smart_errorlog_command_struct *thiscommand=elog->commands+j;
......
...@@ -35,7 +35,7 @@ ...@@ -35,7 +35,7 @@
#include "knowndrives.h" #include "knowndrives.h"
#include "config.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; 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 // for passing global control variables
...@@ -924,8 +924,9 @@ int ataPrintSmartErrorlog(struct ata_smart_errorlog *data){ ...@@ -924,8 +924,9 @@ int ataPrintSmartErrorlog(struct ata_smart_errorlog *data){
"\tDC = Device Command Register [HEX]\n" "\tDC = Device Command Register [HEX]\n"
"\tER = Error register [HEX]\n" "\tER = Error register [HEX]\n"
"\tST = Status register [HEX]\n" "\tST = Status register [HEX]\n"
"Timestamp = decimal seconds since the previous disk power-on.\n" "Powered_Up_Time is measured from power on, and printed as\n"
"Note: timestamp \"wraps\" after 2^32 msec = 49.710 days.\n\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) // now step through the five error log data structures (table 39 of spec)
for (k = 4; k >= 0; k-- ) { for (k = 4; k >= 0; k-- ) {
...@@ -982,8 +983,8 @@ int ataPrintSmartErrorlog(struct ata_smart_errorlog *data){ ...@@ -982,8 +983,8 @@ int ataPrintSmartErrorlog(struct ata_smart_errorlog *data){
} }
pout("\n\n"); pout("\n\n");
pout(" Commands leading to the command that caused the error were:\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" " CR FR SC SN CL CH DH DC Powered_Up_Time Command/Feature_Name\n"
" -- -- -- -- -- -- -- -- --------------- --------------------\n"); " -- -- -- -- -- -- -- -- ---------------- --------------------\n");
for ( j = 4; j >= 0; j--){ for ( j = 4; j >= 0; j--){
struct ata_smart_errorlog_command_struct *thiscommand=elog->commands+j; struct ata_smart_errorlog_command_struct *thiscommand=elog->commands+j;
......
...@@ -26,7 +26,7 @@ ...@@ -26,7 +26,7 @@
#include "utility.h" // includes <regex.h> #include "utility.h" // includes <regex.h>
#include "config.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; 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 #define MODEL_STRING_LENGTH 40
...@@ -114,6 +114,8 @@ const char same_as_minus_F2[]="Fixes byte order in some SMART data (same as -F s ...@@ -114,6 +114,8 @@ const char same_as_minus_F2[]="Fixes byte order in some SMART data (same as -F s
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_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[]. */ /* Special-purpose functions for use in knowndrives[]. */
void specialpurpose_reverse_samsung(smartmonctrl *con) void specialpurpose_reverse_samsung(smartmonctrl *con)
...@@ -231,9 +233,9 @@ const drivesettings knowndrives[] = { ...@@ -231,9 +233,9 @@ const drivesettings knowndrives[] = {
specialpurpose_reverse_samsung2, specialpurpose_reverse_samsung2,
same_as_minus_F2 same_as_minus_F2
}, },
{ // Any other Samsung disk with *-23 firmware { // Any other Samsung disk with *-23 *-24 firmware
"^SAMSUNG .*$", "^SAMSUNG .*$",
".*-23$", ".*-2[34]$",
may_need_minus_F2_disabled, may_need_minus_F2_disabled,
vendoropts_Samsung_SV4012H, vendoropts_Samsung_SV4012H,
specialpurpose_reverse_samsung2, specialpurpose_reverse_samsung2,
...@@ -279,12 +281,13 @@ const drivesettings knowndrives[] = { ...@@ -279,12 +281,13 @@ const drivesettings knowndrives[] = {
specialpurpose_reverse_samsung, specialpurpose_reverse_samsung,
same_as_minus_F same_as_minus_F
}, },
{ //Samsung SP1604N, tested with FW TM100-23 { //Samsung SP1604N, tested with FW TM100-23 and TM100-24
"^SAMSUNG SP1604N$", "^SAMSUNG SP1604N$",
".*", ".*-2[34]",
NULL, may_need_minus_F2_disabled,
vendoropts_Samsung_SV4012H, vendoropts_Samsung_SV4012H,
NULL,NULL specialpurpose_reverse_samsung2,
same_as_minus_F2
}, },
{ //SAMSUNG SV0322A with FW JK200-35 { //SAMSUNG SV0322A with FW JK200-35
"^SAMSUNG SV0322A$", "^SAMSUNG SV0322A$",
...@@ -297,7 +300,7 @@ const drivesettings knowndrives[] = { ...@@ -297,7 +300,7 @@ const drivesettings knowndrives[] = {
{ // All Samsung drives with '.*-25' firmware { // All Samsung drives with '.*-25' firmware
"^SAMSUNG.*", "^SAMSUNG.*",
".*-25$", ".*-25$",
"May need -F samsung2 enabled; see manual for details.\n", may_need_minus_F2_enabled,
vendoropts_9_halfminutes, vendoropts_9_halfminutes,
NULL, NULL NULL, NULL
}, },
...@@ -312,7 +315,7 @@ const drivesettings knowndrives[] = { ...@@ -312,7 +315,7 @@ const drivesettings knowndrives[] = {
{ // Samsung ALL OTHER DRIVES { // Samsung ALL OTHER DRIVES
"^SAMSUNG.*", "^SAMSUNG.*",
".*", ".*",
"May need -F samsung or -F samsung2 enabled; see manual for details.\n", may_need_minus_F_enabled,
NULL, NULL, NULL NULL, NULL, NULL
}, },
{ // Maxtor DiamondMax Plus D740X family { // Maxtor DiamondMax Plus D740X family
......
...@@ -26,7 +26,7 @@ ...@@ -26,7 +26,7 @@
#include "utility.h" // includes <regex.h> #include "utility.h" // includes <regex.h>
#include "config.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; 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 #define MODEL_STRING_LENGTH 40
...@@ -114,6 +114,8 @@ const char same_as_minus_F2[]="Fixes byte order in some SMART data (same as -F s ...@@ -114,6 +114,8 @@ const char same_as_minus_F2[]="Fixes byte order in some SMART data (same as -F s
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_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[]. */ /* Special-purpose functions for use in knowndrives[]. */
void specialpurpose_reverse_samsung(smartmonctrl *con) void specialpurpose_reverse_samsung(smartmonctrl *con)
...@@ -231,9 +233,9 @@ const drivesettings knowndrives[] = { ...@@ -231,9 +233,9 @@ const drivesettings knowndrives[] = {
specialpurpose_reverse_samsung2, specialpurpose_reverse_samsung2,
same_as_minus_F2 same_as_minus_F2
}, },
{ // Any other Samsung disk with *-23 firmware { // Any other Samsung disk with *-23 *-24 firmware
"^SAMSUNG .*$", "^SAMSUNG .*$",
".*-23$", ".*-2[34]$",
may_need_minus_F2_disabled, may_need_minus_F2_disabled,
vendoropts_Samsung_SV4012H, vendoropts_Samsung_SV4012H,
specialpurpose_reverse_samsung2, specialpurpose_reverse_samsung2,
...@@ -279,12 +281,13 @@ const drivesettings knowndrives[] = { ...@@ -279,12 +281,13 @@ const drivesettings knowndrives[] = {
specialpurpose_reverse_samsung, specialpurpose_reverse_samsung,
same_as_minus_F same_as_minus_F
}, },
{ //Samsung SP1604N, tested with FW TM100-23 { //Samsung SP1604N, tested with FW TM100-23 and TM100-24
"^SAMSUNG SP1604N$", "^SAMSUNG SP1604N$",
".*", ".*-2[34]",
NULL, may_need_minus_F2_disabled,
vendoropts_Samsung_SV4012H, vendoropts_Samsung_SV4012H,
NULL,NULL specialpurpose_reverse_samsung2,
same_as_minus_F2
}, },
{ //SAMSUNG SV0322A with FW JK200-35 { //SAMSUNG SV0322A with FW JK200-35
"^SAMSUNG SV0322A$", "^SAMSUNG SV0322A$",
...@@ -297,7 +300,7 @@ const drivesettings knowndrives[] = { ...@@ -297,7 +300,7 @@ const drivesettings knowndrives[] = {
{ // All Samsung drives with '.*-25' firmware { // All Samsung drives with '.*-25' firmware
"^SAMSUNG.*", "^SAMSUNG.*",
".*-25$", ".*-25$",
"May need -F samsung2 enabled; see manual for details.\n", may_need_minus_F2_enabled,
vendoropts_9_halfminutes, vendoropts_9_halfminutes,
NULL, NULL NULL, NULL
}, },
...@@ -312,7 +315,7 @@ const drivesettings knowndrives[] = { ...@@ -312,7 +315,7 @@ const drivesettings knowndrives[] = {
{ // Samsung ALL OTHER DRIVES { // Samsung ALL OTHER DRIVES
"^SAMSUNG.*", "^SAMSUNG.*",
".*", ".*",
"May need -F samsung or -F samsung2 enabled; see manual for details.\n", may_need_minus_F_enabled,
NULL, NULL, NULL NULL, NULL, NULL
}, },
{ // Maxtor DiamondMax Plus D740X family { // Maxtor DiamondMax Plus D740X family
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment