Sample command line is: -drive file=image.raw,if=none,cache=off,id=scsi1 \ -device lsi,id=scsi -device scsi-disk,drive=scsi1,bus=scsi.0,product_name="VENDOR SCSI DISK",vendor_name="[VENDOR]" \
Signed-off-by: Dmitry Fleytman <dmi...@daynix.com> Signed-off-by: Yan Vugenfirer <y...@daynix.com> --- hw/scsi-disk.c | 32 ++++++++++++++++++++++++-------- 1 files changed, 24 insertions(+), 8 deletions(-) diff --git a/hw/scsi-disk.c b/hw/scsi-disk.c index add399e..1a2997f 100644 --- a/hw/scsi-disk.c +++ b/hw/scsi-disk.c @@ -70,6 +70,8 @@ struct SCSIDiskState QEMUBH *bh; char *version; char *serial; + char *vname; + char *pname; bool tray_open; bool tray_locked; }; @@ -566,12 +568,23 @@ static int scsi_disk_emulate_inquiry(SCSIRequest *req, uint8_t *outbuf) outbuf[0] = s->qdev.type & 0x1f; outbuf[1] = s->removable ? 0x80 : 0; - if (s->qdev.type == TYPE_ROM) { - memcpy(&outbuf[16], "QEMU CD-ROM ", 16); + + if (NULL != s->pname) { + strpadcpy((char *) &outbuf[16], 16, s->pname, ' '); + } else { + if (s->qdev.type == TYPE_ROM) { + memcpy(&outbuf[16], "QEMU CD-ROM ", 16); + } else { + memcpy(&outbuf[16], "QEMU HARDDISK ", 16); + } + } + + if (NULL != s->vname) { + strpadcpy((char *) &outbuf[8], 8, s->vname, ' '); } else { - memcpy(&outbuf[16], "QEMU HARDDISK ", 16); + memcpy(&outbuf[8], "QEMU ", 8); } - memcpy(&outbuf[8], "QEMU ", 8); + memset(&outbuf[32], 0, 4); memcpy(&outbuf[32], s->version, MIN(4, strlen(s->version))); /* @@ -1788,10 +1801,13 @@ static SCSIRequest *scsi_block_new_request(SCSIDevice *d, uint32_t tag, } #endif -#define DEFINE_SCSI_DISK_PROPERTIES() \ - DEFINE_BLOCK_PROPERTIES(SCSIDiskState, qdev.conf), \ - DEFINE_PROP_STRING("ver", SCSIDiskState, version), \ - DEFINE_PROP_STRING("serial", SCSIDiskState, serial) +#define DEFINE_SCSI_DISK_PROPERTIES() \ + DEFINE_BLOCK_PROPERTIES(SCSIDiskState, qdev.conf), \ + DEFINE_PROP_STRING("ver", SCSIDiskState, version), \ + DEFINE_PROP_STRING("serial", SCSIDiskState, serial), \ + DEFINE_PROP_STRING("vendor_name", SCSIDiskState, vname), \ + DEFINE_PROP_STRING("product_name", SCSIDiskState, pname) + static Property scsi_hd_properties[] = { DEFINE_SCSI_DISK_PROPERTIES(), -- 1.7.7.6