]> Git Repo - qemu.git/blobdiff - hw/fdc.h
scsi-disk: support DVD profile in GET CONFIGURATION
[qemu.git] / hw / fdc.h
index 04d64ea96111ac014710a06091405a39eee1d3f5..506feb65572683fed4cdad7364bae868eb9ddac9 100644 (file)
--- a/hw/fdc.h
+++ b/hw/fdc.h
@@ -1,14 +1,36 @@
+#ifndef HW_FDC_H
+#define HW_FDC_H
+
+#include "isa.h"
+#include "blockdev.h"
+
 /* fdc.c */
 #define MAX_FD 2
 
-typedef struct fdctrl_t fdctrl_t;
-
-fdctrl_t *fdctrl_init_isa(int isairq, int dma_chann,
-                          uint32_t io_base,
-                          BlockDriverState **fds);
-fdctrl_t *fdctrl_init_sysbus(qemu_irq irq, int dma_chann,
-                             target_phys_addr_t mmio_base,
-                             BlockDriverState **fds);
-fdctrl_t *sun4m_fdctrl_init (qemu_irq irq, target_phys_addr_t io_base,
-                             BlockDriverState **fds, qemu_irq *fdc_tc);
-int fdctrl_get_drive_type(fdctrl_t *fdctrl, int drive_num);
+static inline ISADevice *fdctrl_init_isa(DriveInfo **fds)
+{
+    ISADevice *dev;
+
+    dev = isa_try_create("isa-fdc");
+    if (!dev) {
+        return NULL;
+    }
+
+    if (fds[0]) {
+        qdev_prop_set_drive_nofail(&dev->qdev, "driveA", fds[0]->bdrv);
+    }
+    if (fds[1]) {
+        qdev_prop_set_drive_nofail(&dev->qdev, "driveB", fds[1]->bdrv);
+    }
+    qdev_init_nofail(&dev->qdev);
+
+    return dev;
+}
+
+void fdctrl_init_sysbus(qemu_irq irq, int dma_chann,
+                        target_phys_addr_t mmio_base, DriveInfo **fds);
+void sun4m_fdctrl_init(qemu_irq irq, target_phys_addr_t io_base,
+                       DriveInfo **fds, qemu_irq *fdc_tc);
+void fdc_get_bs(BlockDriverState *bs[], ISADevice *dev);
+
+#endif
This page took 0.020835 seconds and 4 git commands to generate.