diff options
author | Paolo Bonzini | 2017-11-27 13:27:41 +0100 |
---|---|---|
committer | Paolo Bonzini | 2017-12-21 09:30:32 +0100 |
commit | f68d98b21fa74155dc7c1fd212474379ac3c7531 (patch) | |
tree | f34fe29e9e8391e75044acffb10174e4953ae33a /include/scsi | |
parent | hw/i386/vmport: replace fprintf() by trace events or LOG_UNIMP (diff) | |
download | qemu-f68d98b21fa74155dc7c1fd212474379ac3c7531.tar.gz qemu-f68d98b21fa74155dc7c1fd212474379ac3c7531.tar.xz qemu-f68d98b21fa74155dc7c1fd212474379ac3c7531.zip |
scsi: provide general-purpose functions to manage sense data
Extract the common parts of scsi_sense_buf_to_errno, scsi_convert_sense
and scsi_target_send_command's REQUEST SENSE handling into two new
functions scsi_parse_sense_buf and scsi_build_sense_buf.
Fix a bug in scsi_target_send_command along the way; the length was
written in buf[10] rather than buf[7].
Reported-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Fixes: b07fbce634 ("scsi-bus: correct responses for INQUIRY and REQUEST SENSE")
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'include/scsi')
-rw-r--r-- | include/scsi/utils.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/include/scsi/utils.h b/include/scsi/utils.h index eb07e474ee..4b705f5e0f 100644 --- a/include/scsi/utils.h +++ b/include/scsi/utils.h @@ -31,6 +31,9 @@ typedef struct SCSISense { } SCSISense; int scsi_build_sense(uint8_t *buf, SCSISense sense); +SCSISense scsi_parse_sense_buf(const uint8_t *in_buf, int in_len); +int scsi_build_sense_buf(uint8_t *buf, size_t max_size, SCSISense sense, + bool fixed_sense); /* * Predefined sense codes |