From d52affa7f6b9df3c7d44da0effbdfc8339c43914 Mon Sep 17 00:00:00 2001 From: Gerd Hoffmann Date: Mon, 31 Aug 2009 14:24:04 +0200 Subject: qdev/scsi: add scsi bus support to qdev, convert drivers. * Add SCSIBus. * Add SCSIDeviceInfo, move device callbacks here. * add qdev/scsi helper functions. * convert drivers. Adding scsi disks via -device works now, i.e. you can do: -drive id=sda,if=none,... -device lsi -device scsi-disk,drive=sda legacy command lines (-drive if=scsi,...) continue to work. Signed-off-by: Gerd Hoffmann Signed-off-by: Anthony Liguori --- hw/pci-hotplug.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'hw/pci-hotplug.c') diff --git a/hw/pci-hotplug.c b/hw/pci-hotplug.c index 6bd837a..5348dd1 100644 --- a/hw/pci-hotplug.c +++ b/hw/pci-hotplug.c @@ -30,6 +30,7 @@ #include "pc.h" #include "monitor.h" #include "block_int.h" +#include "scsi-disk.h" #include "virtio-blk.h" #if defined(TARGET_I386) || defined(TARGET_X86_64) @@ -58,6 +59,7 @@ void drive_hot_add(Monitor *mon, const QDict *qdict) DriveInfo *dinfo; const char *pci_addr = qdict_get_str(qdict, "pci_addr"); const char *opts = qdict_get_str(qdict, "opts"); + BusState *scsibus; if (pci_read_devaddr(mon, pci_addr, &dom, &pci_bus, &slot)) { return; @@ -82,8 +84,9 @@ void drive_hot_add(Monitor *mon, const QDict *qdict) switch (type) { case IF_SCSI: success = 1; - lsi_scsi_attach(&dev->qdev, dinfo->bdrv, - dinfo->unit); + scsibus = LIST_FIRST(&dev->qdev.child_bus); + scsi_bus_legacy_add_drive(DO_UPCAST(SCSIBus, qbus, scsibus), + dinfo, dinfo->unit); break; default: monitor_printf(mon, "Can't hot-add drive to type %d\n", type); -- cgit v1.1