From 54cbe2b43ba48d31607b50b708198380f960a8e1 Mon Sep 17 00:00:00 2001 From: David Gwynne Date: Mon, 19 Feb 2007 11:55:05 +0000 Subject: REQUEST_SENSE will say there is no sense data. --- sys/dev/ata/atascsi.c | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) (limited to 'sys/dev/ata') diff --git a/sys/dev/ata/atascsi.c b/sys/dev/ata/atascsi.c index e38f54a7d54..7d055dc1631 100644 --- a/sys/dev/ata/atascsi.c +++ b/sys/dev/ata/atascsi.c @@ -1,4 +1,4 @@ -/* $OpenBSD: atascsi.c,v 1.3 2007/02/19 11:53:34 dlg Exp $ */ +/* $OpenBSD: atascsi.c,v 1.4 2007/02/19 11:55:04 dlg Exp $ */ /* * Copyright (c) 2007 David Gwynne @@ -200,22 +200,37 @@ atascsi_disk_inq(struct scsi_xfer *xs) { return (atascsi_stuffup(xs)); } + int atascsi_disk_sync(struct scsi_xfer *xs) { return (atascsi_stuffup(xs)); } + int -atascsi_disk_sense(struct scsi_xfer *xs) +atascsi_disk_capacity(struct scsi_xfer *xs) { return (atascsi_stuffup(xs)); } + int -atascsi_disk_capacity(struct scsi_xfer *xs) +atascsi_disk_sense(struct scsi_xfer *xs) { - return (atascsi_stuffup(xs)); + struct scsi_sense_data *sd = xs->data; + + bzero(xs->data, xs->datalen); + /* check datalen > sizeof(struct scsi_sense_data)? */ + sd->error_code = 0x70; /* XXX magic */ + sd->flags = SKEY_NO_SENSE; + + xs->error = XS_NOERROR; + s = splbio(); + scsi_done(xs); + splx(s); + return (COMPLETE); } + int atascsi_atapi_cmd(struct scsi_xfer *xs) { -- cgit v1.2.3