qemu-devel
[Top][All Lists]
Advanced

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

[Qemu-devel] [PATCH 04/25] ahci: add ide device initialization helper


From: Jason Baron
Subject: [Qemu-devel] [PATCH 04/25] ahci: add ide device initialization helper
Date: Thu, 13 Sep 2012 16:12:38 -0400

From: Isaku Yamahata <address@hidden>

Introduce a helper function which initializes the ahci port with ide devices.
It will be used by q35 support.

Cc: Alexander Graf <address@hidden>
Signed-off-by: Isaku Yamahata <address@hidden>
Signed-off-by: Jason Baron <address@hidden>
---
 hw/ide.h      |    3 +++
 hw/ide/ahci.c |   16 ++++++++++++++++
 2 files changed, 19 insertions(+), 0 deletions(-)

diff --git a/hw/ide.h b/hw/ide.h
index 2db4079..8df872e 100644
--- a/hw/ide.h
+++ b/hw/ide.h
@@ -36,4 +36,7 @@ int ide_get_bios_chs_trans(BusState *bus, int unit);
 /* ide/core.c */
 void ide_drive_get(DriveInfo **hd, int max_bus);
 
+/* ide/ahci.c */
+void pci_ahci_ide_create_devs(PCIDevice *pci_dev, DriveInfo **hd_table);
+
 #endif /* HW_IDE_H */
diff --git a/hw/ide/ahci.c b/hw/ide/ahci.c
index 5ea3cad..9561210 100644
--- a/hw/ide/ahci.c
+++ b/hw/ide/ahci.c
@@ -1260,3 +1260,19 @@ static void sysbus_ahci_register_types(void)
 }
 
 type_init(sysbus_ahci_register_types)
+
+void pci_ahci_ide_create_devs(PCIDevice *pci_dev, DriveInfo **hd_table)
+{
+    struct AHCIPCIState *dev = DO_UPCAST(struct AHCIPCIState, card, pci_dev);
+    int i;
+
+    for (i = 0; i < dev->ahci.ports; i++) {
+        /* master device only, ignore slaves */
+        if (hd_table[i * MAX_IDE_DEVS] == NULL) {
+            continue;
+        }
+        ide_create_drive(&dev->ahci.dev[i].port, 0,
+                         hd_table[i * MAX_IDE_DEVS]);
+    }
+}
+
-- 
1.7.1




reply via email to

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