summaryrefslogtreecommitdiff
path: root/include/scsi
diff options
context:
space:
mode:
authorPaolo Bonzini <pbonzini@redhat.com>2017-11-27 13:27:41 +0100
committerPaolo Bonzini <pbonzini@redhat.com>2017-12-21 09:30:32 +0100
commitf68d98b21fa74155dc7c1fd212474379ac3c7531 (patch)
treef34fe29e9e8391e75044acffb10174e4953ae33a /include/scsi
parent7299e1a411de99761a4260e44b4f1cf2e4e126ef (diff)
downloadqemu-f68d98b21fa74155dc7c1fd212474379ac3c7531.tar.gz
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.h3
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