From ee7d326e955728ad1110320c87fb2b0f62f42e3b Mon Sep 17 00:00:00 2001 From: dlukes <dlukes@4ea69e1a-61f1-4043-bf83-b5c94c648137> Date: Wed, 17 Dec 2008 12:30:18 +0000 Subject: [PATCH] os_freebsd.cpp: Added support for CHECK_POWER_MODE and WRITE_LOG commands git-svn-id: https://smartmontools.svn.sourceforge.net/svnroot/smartmontools/trunk@2686 4ea69e1a-61f1-4043-bf83-b5c94c648137 --- sm5/CHANGELOG | 6 +++++- sm5/os_freebsd.cpp | 22 ++++++++++++++++++++-- 2 files changed, 25 insertions(+), 3 deletions(-) diff --git a/sm5/CHANGELOG b/sm5/CHANGELOG index 1299b441a..5ba9d073a 100644 --- a/sm5/CHANGELOG +++ b/sm5/CHANGELOG @@ -1,6 +1,6 @@ CHANGELOG for smartmontools -$Id: CHANGELOG,v 1.754 2008/12/10 22:09:34 manfred99 Exp $ +$Id: CHANGELOG,v 1.755 2008/12/17 12:30:18 dlukes Exp $ The most recent version of this file is: http://smartmontools.cvs.sourceforge.net/smartmontools/sm5/CHANGELOG?view=markup @@ -35,11 +35,15 @@ Maintainers / Developers Key: [RZ] Richard Zybert [SZ] Sf Zhou [JPH] Jordan Powell Hargrave +[DL] Dan Lukes NOTES FOR FUTURE RELEASES: see TODO file. <DEVELOPERS: ADDITIONS TO THE CHANGE LOG GO JUST BELOW HERE, PLEASE> + [DL] os_freebsd.cpp: + Added support for CHECK_POWER_MODE and WRITE_LOG commands + [MS] knowndrives.cpp update: There seem to exist WD Raptors with SATA II interface, add them. diff --git a/sm5/os_freebsd.cpp b/sm5/os_freebsd.cpp index 1da1b25c2..e9a435991 100644 --- a/sm5/os_freebsd.cpp +++ b/sm5/os_freebsd.cpp @@ -44,9 +44,9 @@ #include "extern.h" #include "os_freebsd.h" -static const char *filenameandversion="$Id: os_freebsd.cpp,v 1.69 2008/11/03 17:00:47 dpgilbert Exp $"; +static const char *filenameandversion="$Id: os_freebsd.cpp,v 1.70 2008/12/17 12:30:18 dlukes Exp $"; -const char *os_XXXX_c_cvsid="$Id: os_freebsd.cpp,v 1.69 2008/11/03 17:00:47 dpgilbert Exp $" \ +const char *os_XXXX_c_cvsid="$Id: os_freebsd.cpp,v 1.70 2008/12/17 12:30:18 dlukes Exp $" \ ATACMDS_H_CVSID CCISS_H_CVSID CONFIG_H_CVSID INT64_H_CVSID OS_FREEBSD_H_CVSID SCSICMDS_H_CVSID UTILITY_H_CVSID; extern smartmonctrl * con; @@ -387,6 +387,20 @@ int ata_command_interface(int fd, smart_command_set command, int select, char *d request.u.ata.lba=0xc24f<<8; request.flags=ATA_CMD_CONTROL; break; + case CHECK_POWER_MODE: + request.u.ata.command=ATA_CHECK_POWER_MODE; + request.u.ata.feature=0; + request.flags=ATA_CMD_CONTROL; + break; + case WRITE_LOG: + memcpy(buff, data, 512); + request.u.ata.feature=ATA_SMART_WRITE_LOG_SECTOR; + request.u.ata.lba=select|(0xc24f<<8); + request.u.ata.count=1; + request.flags=ATA_CMD_WRITE; + request.data=(char *)buff; + request.count=512; + break; default: pout("Unrecognized command %d in ata_command_interface()\n" "Please contact " PACKAGE_BUGREPORT "\n", command); @@ -444,6 +458,10 @@ int ata_command_interface(int fd, smart_command_set command, int select, char *d return -1; } // + if (command == CHECK_POWER_MODE) { + data[0] = request.u.ata.count & 0xff; + return 0; + } if (copydata) memcpy(data, buff, 512); -- GitLab