Revision f8b6cc00 hw/fdc.c
b/hw/fdc.c | ||
---|---|---|
80 | 80 |
} FDiskFlags; |
81 | 81 |
|
82 | 82 |
typedef struct FDrive { |
83 |
DriveInfo *dinfo; |
|
84 | 83 |
BlockDriverState *bs; |
85 | 84 |
/* Drive status */ |
86 | 85 |
FDriveType drive; |
... | ... | |
100 | 99 |
static void fd_init(FDrive *drv) |
101 | 100 |
{ |
102 | 101 |
/* Drive */ |
103 |
drv->bs = drv->dinfo ? drv->dinfo->bdrv : NULL; |
|
104 | 102 |
drv->drive = FDRIVE_DRV_NONE; |
105 | 103 |
drv->perpendicular = 0; |
106 | 104 |
/* Disk */ |
... | ... | |
1862 | 1860 |
|
1863 | 1861 |
dev = isa_create("isa-fdc"); |
1864 | 1862 |
if (fds[0]) { |
1865 |
qdev_prop_set_drive(&dev->qdev, "driveA", fds[0]); |
|
1863 |
qdev_prop_set_drive(&dev->qdev, "driveA", fds[0]->bdrv);
|
|
1866 | 1864 |
} |
1867 | 1865 |
if (fds[1]) { |
1868 |
qdev_prop_set_drive(&dev->qdev, "driveB", fds[1]); |
|
1866 |
qdev_prop_set_drive(&dev->qdev, "driveB", fds[1]->bdrv);
|
|
1869 | 1867 |
} |
1870 | 1868 |
if (qdev_init(&dev->qdev) < 0) |
1871 | 1869 |
return NULL; |
... | ... | |
1884 | 1882 |
fdctrl = &sys->state; |
1885 | 1883 |
fdctrl->dma_chann = dma_chann; /* FIXME */ |
1886 | 1884 |
if (fds[0]) { |
1887 |
qdev_prop_set_drive(dev, "driveA", fds[0]); |
|
1885 |
qdev_prop_set_drive(dev, "driveA", fds[0]->bdrv);
|
|
1888 | 1886 |
} |
1889 | 1887 |
if (fds[1]) { |
1890 |
qdev_prop_set_drive(dev, "driveB", fds[1]); |
|
1888 |
qdev_prop_set_drive(dev, "driveB", fds[1]->bdrv);
|
|
1891 | 1889 |
} |
1892 | 1890 |
qdev_init_nofail(dev); |
1893 | 1891 |
sysbus_connect_irq(&sys->busdev, 0, irq); |
... | ... | |
1905 | 1903 |
|
1906 | 1904 |
dev = qdev_create(NULL, "SUNW,fdtwo"); |
1907 | 1905 |
if (fds[0]) { |
1908 |
qdev_prop_set_drive(dev, "drive", fds[0]); |
|
1906 |
qdev_prop_set_drive(dev, "drive", fds[0]->bdrv);
|
|
1909 | 1907 |
} |
1910 | 1908 |
qdev_init_nofail(dev); |
1911 | 1909 |
sys = DO_UPCAST(FDCtrlSysBus, busdev.qdev, dev); |
... | ... | |
2030 | 2028 |
.qdev.vmsd = &vmstate_isa_fdc, |
2031 | 2029 |
.qdev.reset = fdctrl_external_reset_isa, |
2032 | 2030 |
.qdev.props = (Property[]) { |
2033 |
DEFINE_PROP_DRIVE("driveA", FDCtrlISABus, state.drives[0].dinfo),
|
|
2034 |
DEFINE_PROP_DRIVE("driveB", FDCtrlISABus, state.drives[1].dinfo),
|
|
2031 |
DEFINE_PROP_DRIVE("driveA", FDCtrlISABus, state.drives[0].bs),
|
|
2032 |
DEFINE_PROP_DRIVE("driveB", FDCtrlISABus, state.drives[1].bs),
|
|
2035 | 2033 |
DEFINE_PROP_END_OF_LIST(), |
2036 | 2034 |
}, |
2037 | 2035 |
}; |
... | ... | |
2053 | 2051 |
.qdev.vmsd = &vmstate_sysbus_fdc, |
2054 | 2052 |
.qdev.reset = fdctrl_external_reset_sysbus, |
2055 | 2053 |
.qdev.props = (Property[]) { |
2056 |
DEFINE_PROP_DRIVE("driveA", FDCtrlSysBus, state.drives[0].dinfo),
|
|
2057 |
DEFINE_PROP_DRIVE("driveB", FDCtrlSysBus, state.drives[1].dinfo),
|
|
2054 |
DEFINE_PROP_DRIVE("driveA", FDCtrlSysBus, state.drives[0].bs),
|
|
2055 |
DEFINE_PROP_DRIVE("driveB", FDCtrlSysBus, state.drives[1].bs),
|
|
2058 | 2056 |
DEFINE_PROP_END_OF_LIST(), |
2059 | 2057 |
}, |
2060 | 2058 |
}; |
... | ... | |
2066 | 2064 |
.qdev.vmsd = &vmstate_sysbus_fdc, |
2067 | 2065 |
.qdev.reset = fdctrl_external_reset_sysbus, |
2068 | 2066 |
.qdev.props = (Property[]) { |
2069 |
DEFINE_PROP_DRIVE("drive", FDCtrlSysBus, state.drives[0].dinfo),
|
|
2067 |
DEFINE_PROP_DRIVE("drive", FDCtrlSysBus, state.drives[0].bs),
|
|
2070 | 2068 |
DEFINE_PROP_END_OF_LIST(), |
2071 | 2069 |
}, |
2072 | 2070 |
}; |
Also available in: Unified diff