qemu-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-commits] [COMMIT 6f68ecb] qdev scsi bus infrastructure


From: Anthony Liguori
Subject: [Qemu-commits] [COMMIT 6f68ecb] qdev scsi bus infrastructure
Date: Thu, 14 May 2009 21:41:25 -0000

From: Paul Brook <address@hidden>

Signed-off-by: Paul Brook <address@hidden>

diff --git a/hw/qdev.c b/hw/qdev.c
index db6f696..a97f425 100644
--- a/hw/qdev.c
+++ b/hw/qdev.c
@@ -265,3 +265,22 @@ void qdev_attach_child_bus(DeviceState *dev, const char 
*name, void *bus)
     p->next = dev->child_bus;
     dev->child_bus = p;
 }
+
+static int next_scsi_bus;
+
+/* Create a scsi bus, and attach devices to it.  */
+/* TODO: Actually create a scsi bus for hotplug to use.  */
+void scsi_bus_new(DeviceState *host, SCSIAttachFn attach)
+{
+   int bus = next_scsi_bus++;
+   int unit;
+   int index;
+
+   for (unit = 0; unit < MAX_SCSI_DEVS; unit++) {
+       index = drive_get_index(IF_SCSI, bus, unit);
+       if (index == -1) {
+           continue;
+       }
+       attach(host, drives_table[index].bdrv, unit);
+   }
+}
diff --git a/hw/qdev.h b/hw/qdev.h
index 5570e79..eb4ac2f 100644
--- a/hw/qdev.h
+++ b/hw/qdev.h
@@ -44,6 +44,8 @@ void *qdev_get_child_bus(DeviceState *dev, const char *name);
 /*** Device API.  ***/
 
 typedef void (*qdev_initfn)(DeviceState *dev, void *opaque);
+typedef void (*SCSIAttachFn)(DeviceState *host, BlockDriverState *bdrv,
+              int unit);
 
 DeviceType *qdev_register(const char *name, int size, qdev_initfn init,
                           void *opaque);
@@ -54,6 +56,8 @@ void qdev_init_gpio_in(DeviceState *dev, qemu_irq_handler 
handler, int n);
 void qdev_init_gpio_out(DeviceState *dev, qemu_irq *pins, int n);
 void qdev_attach_child_bus(DeviceState *dev, const char *name, void *bus);
 
+void scsi_bus_new(DeviceState *host, SCSIAttachFn attach);
+
 CharDriverState *qdev_init_chardev(DeviceState *dev);
 
 void *qdev_get_bus(DeviceState *dev);




reply via email to

[Prev in Thread] Current Thread [Next in Thread]