summaryrefslogtreecommitdiffstats
path: root/slirp/slirp.c
diff options
context:
space:
mode:
authoraurel322008-10-17 10:08:56 +0200
committeraurel322008-10-17 10:08:56 +0200
commit89c0f6438d16ebceccdcd096bbc0b5536146a443 (patch)
tree48089479d5c5f06f5866674885bb0acd28cda3e3 /slirp/slirp.c
parenti386/SVM: return amount of ASIDs (diff)
downloadqemu-89c0f6438d16ebceccdcd096bbc0b5536146a443.tar.gz
qemu-89c0f6438d16ebceccdcd096bbc0b5536146a443.tar.xz
qemu-89c0f6438d16ebceccdcd096bbc0b5536146a443.zip
scsi-generic: correct error management
this patch allows to fully use a tape device connected to qemu through the scsi-generic interface. Previous patch introduced tape SCSI commands management, this one improve error case management: - the SCSI controller command completion must be called with the status value, not the sense value. In the case of scsi-generic, the SCSI status is given by the field status of sg_io_hdr_t (the value is left shifted by one regarding status codes defined in /usr/include/scsi/scsi.h) - when a read is aborted due to a mark/EOF/EOD/EOM, the len reported to controller can be 0. LSI controller emulation doesn't know how to manage this. A workaround found is to call the completion routine with SCSI_REASON_DONE just after calling it with SCSI_REASON_DATA with len=0. This patch also manages correctly the block size of the tape device. This patch has been tested with a real tape device "HP C5683A", linux guest (debian etch) and tools like "mt", "tar" and "btape". Windows guest is not better supported than before... Signed-off-by: Laurent Vivier <Laurent.Vivier@bull.net> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net> git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5497 c046a42c-6fe2-441c-8c8c-71466251a162
Diffstat (limited to 'slirp/slirp.c')
0 files changed, 0 insertions, 0 deletions