summaryrefslogtreecommitdiffstats
path: root/hw/ide/internal.h
diff options
context:
space:
mode:
authorJohn Snow <jsnow@redhat.com>2015-09-17 14:17:05 -0400
committerJohn Snow <jsnow@redhat.com>2015-09-18 10:58:56 -0400
commit9ef2e93f9b1888c7d0deb4a105149138e6ad2e98 (patch)
tree1599935bfbf94597a5369d13233966d117f35669 /hw/ide/internal.h
parentd9033e1d3aa666c5071580617a57bd853c5d794a (diff)
downloadhqemu-9ef2e93f9b1888c7d0deb4a105149138e6ad2e98.zip
hqemu-9ef2e93f9b1888c7d0deb4a105149138e6ad2e98.tar.gz
atapi: abort transfers with 0 byte limits
We're supposed to abort on transfers like this, unless we fill Word 125 of our IDENTIFY data with a default transfer size, which we don't currently do. This is an ATA error, not a SCSI/ATAPI one. See ATA8-ACS3 sections 7.17.6.49 or 7.21.5. If we don't do this, QEMU will loop forever trying to transfer zero bytes, which isn't particularly useful. Signed-off-by: John Snow <jsnow@redhat.com> Reviewed-by: Markus Armbruster <armbru@redhat.com> Message-id: 1442253685-23349-2-git-send-email-jsnow@redhat.com
Diffstat (limited to 'hw/ide/internal.h')
-rw-r--r--hw/ide/internal.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/hw/ide/internal.h b/hw/ide/internal.h
index 7288a67..05e93ff 100644
--- a/hw/ide/internal.h
+++ b/hw/ide/internal.h
@@ -538,6 +538,7 @@ void ide_set_sector(IDEState *s, int64_t sector_num);
void ide_start_dma(IDEState *s, BlockCompletionFunc *cb);
void dma_buf_commit(IDEState *s, uint32_t tx_bytes);
void ide_dma_error(IDEState *s);
+void ide_abort_command(IDEState *s);
void ide_atapi_cmd_ok(IDEState *s);
void ide_atapi_cmd_error(IDEState *s, int sense_key, int asc);
OpenPOWER on IntegriCloud