[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL 04/21] pc-bios/s390-ccw: Refactor scsi_inquiry functi
From: |
Cornelia Huck |
Subject: |
[Qemu-devel] [PULL 04/21] pc-bios/s390-ccw: Refactor scsi_inquiry function |
Date: |
Tue, 23 May 2017 13:12:49 +0200 |
From: Eric Farman <address@hidden>
If we want to issue any of the SCSI Inquiry EVPD pages,
which we do, we could use this function to issue both types
of commands with a little bit of refactoring.
Signed-off-by: Eric Farman <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Cornelia Huck <address@hidden>
---
pc-bios/s390-ccw/scsi.h | 6 ++++++
pc-bios/s390-ccw/virtio-scsi.c | 10 ++++++++--
2 files changed, 14 insertions(+), 2 deletions(-)
diff --git a/pc-bios/s390-ccw/scsi.h b/pc-bios/s390-ccw/scsi.h
index fc830f7e52..83ffaef54e 100644
--- a/pc-bios/s390-ccw/scsi.h
+++ b/pc-bios/s390-ccw/scsi.h
@@ -26,6 +26,12 @@
#define SCSI_SENSE_KEY_NO_SENSE 0
#define SCSI_SENSE_KEY_UNIT_ATTENTION 6
+/* SCSI Inquiry Types */
+#define SCSI_INQUIRY_STANDARD 0x00U
+
+/* SCSI Inquiry Pages */
+#define SCSI_INQUIRY_STANDARD_NONE 0x00U
+
union ScsiLun {
uint64_t v64; /* numeric shortcut */
uint8_t v8[8]; /* generic 8 bytes representation */
diff --git a/pc-bios/s390-ccw/virtio-scsi.c b/pc-bios/s390-ccw/virtio-scsi.c
index ff65e2ee30..9d2e14cdf0 100644
--- a/pc-bios/s390-ccw/virtio-scsi.c
+++ b/pc-bios/s390-ccw/virtio-scsi.c
@@ -89,10 +89,13 @@ static void vs_run(const char *title, VirtioCmd *cmd, VDev
*vdev,
/* SCSI protocol implementation routines */
-static bool scsi_inquiry(VDev *vdev, void *data, uint32_t data_size)
+static bool scsi_inquiry(VDev *vdev, uint8_t evpd, uint8_t page,
+ void *data, uint32_t data_size)
{
ScsiCdbInquiry cdb = {
.command = 0x12,
+ .b1 = evpd,
+ .b2 = page,
.alloc_len = data_size < 65535 ? data_size : 65535,
};
VirtioCmd inquiry[] = {
@@ -346,7 +349,10 @@ void virtio_scsi_setup(VDev *vdev)
}
/* read and cache SCSI INQUIRY response */
- if (!scsi_inquiry(vdev, scsi_inquiry_std_response,
+ if (!scsi_inquiry(vdev,
+ SCSI_INQUIRY_STANDARD,
+ SCSI_INQUIRY_STANDARD_NONE,
+ scsi_inquiry_std_response,
sizeof(scsi_inquiry_std_response))) {
virtio_scsi_verify_response(&resp, "virtio-scsi:setup:inquiry");
}
--
2.13.0
- [Qemu-devel] [PULL 00/21] s390x patches, Cornelia Huck, 2017/05/23
- [Qemu-devel] [PULL 01/21] pc-bios/s390-ccw: Remove duplicate blk_factor adjustment, Cornelia Huck, 2017/05/23
- [Qemu-devel] [PULL 02/21] pc-bios/s390-ccw: Move SCSI block factor to outer read, Cornelia Huck, 2017/05/23
- [Qemu-devel] [PULL 04/21] pc-bios/s390-ccw: Refactor scsi_inquiry function,
Cornelia Huck <=
- [Qemu-devel] [PULL 05/21] pc-bios/s390-ccw: Get list of supported VPD pages, Cornelia Huck, 2017/05/23
- [Qemu-devel] [PULL 06/21] pc-bios/s390-ccw: Get Block Limits VPD device data, Cornelia Huck, 2017/05/23
- [Qemu-devel] [PULL 07/21] pc-bios/s390-ccw: Build a reasonable max_sectors limit, Cornelia Huck, 2017/05/23
- [Qemu-devel] [PULL 03/21] pc-bios/s390-ccw: Break up virtio-scsi read into multiples, Cornelia Huck, 2017/05/23
- [Qemu-devel] [PULL 08/21] pc-bios/s390-ccw.img: rebuild image, Cornelia Huck, 2017/05/23
- [Qemu-devel] [PULL 09/21] linux-headers: update, Cornelia Huck, 2017/05/23
- [Qemu-devel] [PULL 10/21] s390x/css: add s390-squash-mcss machine option, Cornelia Huck, 2017/05/23
- [Qemu-devel] [PULL 13/21] s390x/css: device support for s390-ccw passthrough, Cornelia Huck, 2017/05/23
- [Qemu-devel] [PULL 12/21] s390x/css: realize css_create_sch, Cornelia Huck, 2017/05/23
- [Qemu-devel] [PULL 14/21] vfio/ccw: vfio based subchannel passthrough driver, Cornelia Huck, 2017/05/23