qemu-devel
[Top][All Lists]
Advanced

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

[Qemu-devel] [PATCH 16/17] pc.c: split out pci device init from pc_init1


From: Isaku Yamahata
Subject: [Qemu-devel] [PATCH 16/17] pc.c: split out pci device init from pc_init1() into pc_pci_device_init()
Date: Wed, 15 Jul 2009 16:19:16 +0900

Split out pci device initialization from pc_init1() into pc_pci_device_init().
and removed unnecessary braces.

Signed-off-by: Isaku Yamahata <address@hidden>
---
 hw/pc.c |  102 ++++++++++++++++++++++++++++++++++++--------------------------
 1 files changed, 59 insertions(+), 43 deletions(-)

diff --git a/hw/pc.c b/hw/pc.c
index d6b4f6a..a7ae1fa 100644
--- a/hw/pc.c
+++ b/hw/pc.c
@@ -1332,6 +1332,64 @@ static void pc_basic_device_init(qemu_irq *i8259,
     *floppy_controller = fdctrl_init(i8259[6], 2, 0, 0x3f0, fd);
 }
 
+static void pc_pci_device_init1(PCIBus *pci_bus,
+                                const char* virtio_blk_name,
+                                const char* virtio_console_name)
+{
+    DeviceState *qdev;
+    DriveInfo *dinfo;
+    int i;
+    int max_bus;
+    int unit_id;
+
+    max_bus = drive_get_max_bus(IF_SCSI);
+    for (i = 0; i <= max_bus; i++) {
+        pci_create_simple(pci_bus, -1, "lsi53c895a");
+    }
+
+    /* Add virtio block devices */
+    unit_id = 0;
+    while ((dinfo = drive_get(IF_VIRTIO, 0, unit_id)) != NULL) {
+        qdev = pci_create(virtio_blk_name, dinfo->devaddr);
+        qdev_init(qdev);
+        unit_id++;
+    }
+
+    /* Add virtio console devices */
+    for(i = 0; i < MAX_VIRTIO_CONSOLES; i++) {
+        if (virtcon_hds[i]) {
+            pci_create_simple(pci_bus, -1, virtio_console_name);
+        }
+    }
+}
+
+static void pc_pci_device_init_compat(PCIBus *pci_bus, int compat_level)
+{
+    const char *virtio_blk_name, *virtio_console_name;
+
+    switch (compat_level) {
+    case COMPAT_DEFAULT:
+    default:
+        virtio_blk_name = "virtio-blk-pci";
+        virtio_console_name = "virtio-console-pci";
+        break;
+
+    case COMPAT_0_10:
+        virtio_blk_name = "virtio-blk-pci-0-10";
+        virtio_console_name = "virtio-console-pci-0-10";
+        break;
+    }
+
+    pc_pci_device_init1(pci_bus, virtio_blk_name, virtio_console_name);
+}
+
+#if 0
+void pc_pci_device_init(PCIBus *pci_bus)
+{
+    pc_pci_device_init(pci_bus, "virtio-blk-pci", "virtio-console-pci");
+}
+#endif
+
 /* PC hardware initialisation */
 static void pc_init1(ram_addr_t ram_size,
                      const char *boot_device,
@@ -1345,14 +1403,12 @@ static void pc_init1(ram_addr_t ram_size,
     int i;
     ram_addr_t below_4g_mem_size, above_4g_mem_size;
     PCIBus *pci_bus;
-    DeviceState *qdev;
     PCIDevice *i440fx_state;
     int piix3_devfn = -1;
     qemu_irq *cpu_irq;
     qemu_irq *i8259;
     DriveInfo *dinfo;
     BlockDriverState *hd[MAX_IDE_BUS * MAX_IDE_DEVS];
-    const char *virtio_blk_name, *virtio_console_name;
     fdctrl_t *floppy_controller;
     RTCState *rtc_state;
 
@@ -1448,47 +1504,7 @@ static void pc_init1(ram_addr_t ram_size,
     }
 
     if (pci_enabled) {
-       int max_bus;
-        int bus;
-
-        max_bus = drive_get_max_bus(IF_SCSI);
-       for (bus = 0; bus <= max_bus; bus++) {
-            pci_create_simple(pci_bus, -1, "lsi53c895a");
-        }
-    }
-
-    switch (compat_level) {
-    case COMPAT_DEFAULT:
-    default:
-        virtio_blk_name = "virtio-blk-pci";
-        virtio_console_name = "virtio-console-pci";
-        break;
-
-    case COMPAT_0_10:
-        virtio_blk_name = "virtio-blk-pci-0-10";
-        virtio_console_name = "virtio-console-pci-0-10";
-        break;
-    }
-
-    /* Add virtio block devices */
-    if (pci_enabled) {
-        int unit_id = 0;
-
-        while ((dinfo = drive_get(IF_VIRTIO, 0, unit_id)) != NULL) {
-            qdev = pci_create(virtio_blk_name,
-                              dinfo->devaddr);
-            qdev_init(qdev);
-            unit_id++;
-        }
-    }
-
-    /* Add virtio console devices */
-    if (pci_enabled) {
-        for(i = 0; i < MAX_VIRTIO_CONSOLES; i++) {
-            if (virtcon_hds[i]) {
-                pci_create_simple(pci_bus, -1, virtio_console_name);
-            }
-        }
+        pc_pci_device_init_compat(pci_bus, compat_level);
     }
 }
 
-- 
1.6.0.2





reply via email to

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