提交 9c12359c 编写于 作者: E Eric Farman 提交者: Cornelia Huck

pc-bios/s390-ccw: Refactor scsi_inquiry function

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: NEric Farman <farman@linux.vnet.ibm.com>
Message-Id: <20170510155359.32727-5-farman@linux.vnet.ibm.com>
Signed-off-by: NCornelia Huck <cornelia.huck@de.ibm.com>
上级 5ffd4a3c
......@@ -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 */
......
......@@ -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");
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册