Date: Sun, 21 Nov 2004 13:00:27 +0100 From: =?ISO-8859-1?Q?S=F8ren_Schmidt?= <sos@DeepCore.dk> To: m.kucenski@computer.org Cc: freebsd-current@freebsd.org Subject: Re: ATAng support for reading from register on ATAREQUEST command? Message-ID: <41A0835B.9040404@DeepCore.dk> In-Reply-To: <20041119171236.DNZH20678.lakermmtao09.cox.net@smtp.east.cox.net> References: <20041119171236.DNZH20678.lakermmtao09.cox.net@smtp.east.cox.net>
next in thread | previous in thread | raw e-mail | index | archive | help
This is a multi-part message in MIME format. --------------060904080909000102080101 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: quoted-printable Matt Kucenski wrote: > I am trying to develop a program that will allow modifications to the H= ost Protected Area settings and one of the commands (READ NATIVE MAX ADDR= ESS) returns the native max address back in the register (LBA high, low, = mid). >=20 > I have been looking at the smartmontools project for pointers on how to= write this code and according to that source, this is not possible yet w= ith ATAng. There is a comment in their code that another command (ATA_CM= D_READ_REG) patch has been submitted to ATAng, but it does not appear to = have made it into any of the latest sources. >=20 > Can anyone offer any information on this? The following patch returns the register values in the request you sent=20 through ioctl call. That should do the trick without any new calls.. --=20 -S=F8ren --------------060904080909000102080101 Content-Type: text/plain; name="ata-smart-patch" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="ata-smart-patch" Index: ata-all.c =================================================================== RCS file: /home/ncvs/src/sys/dev/ata/ata-all.c,v retrieving revision 1.233 diff -u -r1.233 ata-all.c --- ata-all.c 19 Oct 2004 20:13:38 -0000 1.233 +++ ata-all.c 19 Nov 2004 18:59:55 -0000 @@ -546,10 +546,10 @@ bcopy(iocmd->u.request.u.atapi.ccb, request->u.atapi.ccb, 16); } else { - request->u.ata.command = iocmd->u.request.u.ata.command; - request->u.ata.feature = iocmd->u.request.u.ata.feature; - request->u.ata.lba = iocmd->u.request.u.ata.lba; - request->u.ata.count = iocmd->u.request.u.ata.count; + request->u.ata.command = iocmd->u.request.u.ata.command; + request->u.ata.feature = iocmd->u.request.u.ata.feature; + request->u.ata.lba = iocmd->u.request.u.ata.lba; + request->u.ata.count = iocmd->u.request.u.ata.count; } request->timeout = iocmd->u.request.timeout; @@ -566,6 +566,10 @@ ata_queue_request(request); + iocmd->u.request.u.ata.command = request->u.ata.command; + iocmd->u.request.u.ata.feature = request->u.ata.feature; + iocmd->u.request.u.ata.lba = request->u.ata.lba; + iocmd->u.request.u.ata.count = request->u.ata.count; if (request->result) iocmd->u.request.error = request->result; else { --------------060904080909000102080101--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?41A0835B.9040404>