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 <kra...@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(-) diff --git a/hw/block/fdc-isa.c b/hw/block/fdc-isa.c index dd7e1669f862..36c246efa822 100644 --- a/hw/block/fdc-isa.c +++ b/hw/block/fdc-isa.c @@ -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 }, diff --git a/hw/block/fdc-module.c b/hw/block/fdc-module.c index 93953bf0aa57..8309e99361bc 100644 --- a/hw/block/fdc-module.c +++ b/hw/block/fdc-module.c @@ -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); diff --git a/hw/block/fdc.c b/hw/block/fdc.c index 9014cd30b3ab..ba42537e8d26 100644 --- a/hw/block/fdc.c +++ b/hw/block/fdc.c @@ -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; -- 2.31.1