@@ -57,11 +57,6 @@ static void fdctrl_external_reset_isa(DeviceState *d)
fdctrl_reset(s, 0);
}
-void isa_fdc_init_drives(ISADevice *fdc, DriveInfo **fds)
-{
- fdctrl_init_drives(&ISA_FDC(fdc)->state.bus, fds);
-}
-
static const MemoryRegionPortio fdc_portio_list[] = {
{ 1, 5, 1, .read = fdctrl_read, .write = fdctrl_write },
{ 7, 1, 1, .read = fdctrl_read, .write = fdctrl_write },
@@ -29,8 +29,32 @@
#include "qemu/osdep.h"
#include "hw/isa/isa.h"
#include "hw/block/fdc.h"
+#include "qapi/error.h"
+#include "sysemu/blockdev.h"
#include "fdc-internal.h"
+void fdctrl_init_drives(FloppyBus *bus, DriveInfo **fds)
+{
+ DeviceState *dev;
+ int i;
+
+ for (i = 0; i < MAX_FD; i++) {
+ if (fds[i]) {
+ dev = qdev_new("floppy");
+ qdev_prop_set_uint32(dev, "unit", i);
+ qdev_prop_set_enum(dev, "drive-type", FLOPPY_DRIVE_TYPE_AUTO);
+ qdev_prop_set_drive_err(dev, "drive", blk_by_legacy_dinfo(fds[i]),
+ &error_fatal);
+ qdev_realize_and_unref(dev, &bus->bus, &error_fatal);
+ }
+ }
+}
+
+void isa_fdc_init_drives(ISADevice *fdc, DriveInfo **fds)
+{
+ fdctrl_init_drives(&ISA_FDC(fdc)->state.bus, fds);
+}
+
FloppyDriveType isa_fdc_get_drive_type(ISADevice *fdc, int i)
{
FDCtrlISABus *isa = ISA_FDC(fdc);
@@ -2297,23 +2297,6 @@ static void fdctrl_result_timer(void *opaque)
/* Init functions */
-void fdctrl_init_drives(FloppyBus *bus, DriveInfo **fds)
-{
- DeviceState *dev;
- int i;
-
- for (i = 0; i < MAX_FD; i++) {
- if (fds[i]) {
- dev = qdev_new("floppy");
- qdev_prop_set_uint32(dev, "unit", i);
- qdev_prop_set_enum(dev, "drive-type", FLOPPY_DRIVE_TYPE_AUTO);
- qdev_prop_set_drive_err(dev, "drive", blk_by_legacy_dinfo(fds[i]),
- &error_fatal);
- qdev_realize_and_unref(dev, &bus->bus, &error_fatal);
- }
- }
-}
-
void fdctrl_realize_common(DeviceState *dev, FDCtrl *fdctrl, Error **errp)
{
int i, j;
isa_fdc_init_drives() is called by pc machine setup, and it depends on fdctrl_init_drives(). Move both functions to separate source file so we can keep them in core qemu when building floppy as module. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> --- hw/block/fdc-isa.c | 5 ----- hw/block/fdc-module.c | 24 ++++++++++++++++++++++++ hw/block/fdc.c | 17 ----------------- 3 files changed, 24 insertions(+), 22 deletions(-)