mirror of
https://github.com/izzy2lost/xemu.git
synced 2026-07-06 00:20:22 -07:00
fdc: fix drive property handling.
Fix the floppy controller init wrappers to set the drive properties only in case the DriveInfo pointers passed in are non NULL. This allows to set the properties using -global. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
This commit is contained in:
committed by
Aurelien Jarno
parent
990caaf19c
commit
995bf0ca57
@@ -1860,8 +1860,12 @@ FDCtrl *fdctrl_init_isa(DriveInfo **fds)
|
||||
ISADevice *dev;
|
||||
|
||||
dev = isa_create("isa-fdc");
|
||||
qdev_prop_set_drive(&dev->qdev, "driveA", fds[0]);
|
||||
qdev_prop_set_drive(&dev->qdev, "driveB", fds[1]);
|
||||
if (fds[0]) {
|
||||
qdev_prop_set_drive(&dev->qdev, "driveA", fds[0]);
|
||||
}
|
||||
if (fds[1]) {
|
||||
qdev_prop_set_drive(&dev->qdev, "driveB", fds[1]);
|
||||
}
|
||||
if (qdev_init(&dev->qdev) < 0)
|
||||
return NULL;
|
||||
return &(DO_UPCAST(FDCtrlISABus, busdev, dev)->state);
|
||||
@@ -1878,8 +1882,12 @@ FDCtrl *fdctrl_init_sysbus(qemu_irq irq, int dma_chann,
|
||||
sys = DO_UPCAST(FDCtrlSysBus, busdev.qdev, dev);
|
||||
fdctrl = &sys->state;
|
||||
fdctrl->dma_chann = dma_chann; /* FIXME */
|
||||
qdev_prop_set_drive(dev, "driveA", fds[0]);
|
||||
qdev_prop_set_drive(dev, "driveB", fds[1]);
|
||||
if (fds[0]) {
|
||||
qdev_prop_set_drive(dev, "driveA", fds[0]);
|
||||
}
|
||||
if (fds[1]) {
|
||||
qdev_prop_set_drive(dev, "driveB", fds[1]);
|
||||
}
|
||||
qdev_init_nofail(dev);
|
||||
sysbus_connect_irq(&sys->busdev, 0, irq);
|
||||
sysbus_mmio_map(&sys->busdev, 0, mmio_base);
|
||||
@@ -1895,7 +1903,9 @@ FDCtrl *sun4m_fdctrl_init(qemu_irq irq, target_phys_addr_t io_base,
|
||||
FDCtrl *fdctrl;
|
||||
|
||||
dev = qdev_create(NULL, "SUNW,fdtwo");
|
||||
qdev_prop_set_drive(dev, "drive", fds[0]);
|
||||
if (fds[0]) {
|
||||
qdev_prop_set_drive(dev, "drive", fds[0]);
|
||||
}
|
||||
qdev_init_nofail(dev);
|
||||
sys = DO_UPCAST(FDCtrlSysBus, busdev.qdev, dev);
|
||||
fdctrl = &sys->state;
|
||||
|
||||
Reference in New Issue
Block a user