block: Eliminate DriveInfo member bdrv, use blk_by_legacy_dinfo()
The patch is big, but all it really does is replacing dinfo->bdrv by blk_bs(blk_by_legacy_dinfo(dinfo)) The replacement is repetitive, but the conversion of device models to BlockBackend is imminent, and will shorten it to just blk_legacy_dinfo(dinfo). Line wrapping muddies the waters a bit. I also omit tests whether dinfo->bdrv is null, because it never is. Signed-off-by: Markus Armbruster <armbru@redhat.com> Reviewed-by: Benoît Canet <benoit.canet@nodalink.com> Reviewed-by: Max Reitz <mreitz@redhat.com> Reviewed-by: Kevin Wolf <kwolf@redhat.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
This commit is contained in:
parent
7f06d47eff
commit
fa1d36df74
@ -220,11 +220,11 @@ bool drive_check_orphaned(void)
|
||||
dinfo = blk_legacy_dinfo(blk);
|
||||
/* If dinfo->bdrv->dev is NULL, it has no device attached. */
|
||||
/* Unless this is a default drive, this may be an oversight. */
|
||||
if (!dinfo->bdrv->dev && !dinfo->is_default &&
|
||||
if (!blk_bs(blk)->dev && !dinfo->is_default &&
|
||||
dinfo->type != IF_NONE) {
|
||||
fprintf(stderr, "Warning: Orphaned drive without device: "
|
||||
"id=%s,file=%s,if=%s,bus=%d,unit=%d\n",
|
||||
dinfo->id, dinfo->bdrv->filename, if_name[dinfo->type],
|
||||
dinfo->id, blk_bs(blk)->filename, if_name[dinfo->type],
|
||||
dinfo->bus, dinfo->unit);
|
||||
rs = true;
|
||||
}
|
||||
@ -526,7 +526,6 @@ static BlockBackend *blockdev_init(const char *file, QDict *bs_opts,
|
||||
|
||||
dinfo = g_malloc0(sizeof(*dinfo));
|
||||
dinfo->id = g_strdup(qemu_opts_id(opts));
|
||||
dinfo->bdrv = bs;
|
||||
blk_set_legacy_dinfo(blk, dinfo);
|
||||
|
||||
if (!file || !*file) {
|
||||
@ -556,7 +555,7 @@ static BlockBackend *blockdev_init(const char *file, QDict *bs_opts,
|
||||
|
||||
QINCREF(bs_opts);
|
||||
ret = bdrv_open(&bs, file, NULL, bs_opts, bdrv_flags, drv, &error);
|
||||
assert(bs == dinfo->bdrv);
|
||||
assert(bs == blk_bs(blk));
|
||||
|
||||
if (ret < 0) {
|
||||
error_setg(errp, "could not open disk image %s: %s",
|
||||
|
@ -15,6 +15,7 @@
|
||||
#include "strongarm.h"
|
||||
#include "hw/arm/arm.h"
|
||||
#include "hw/block/flash.h"
|
||||
#include "sysemu/block-backend.h"
|
||||
#include "sysemu/blockdev.h"
|
||||
#include "exec/address-spaces.h"
|
||||
|
||||
@ -41,13 +42,13 @@ static void collie_init(MachineState *machine)
|
||||
|
||||
dinfo = drive_get(IF_PFLASH, 0, 0);
|
||||
pflash_cfi01_register(SA_CS0, NULL, "collie.fl1", 0x02000000,
|
||||
dinfo ? dinfo->bdrv : NULL, (64 * 1024),
|
||||
512, 4, 0x00, 0x00, 0x00, 0x00, 0);
|
||||
dinfo ? blk_bs(blk_by_legacy_dinfo(dinfo)) : NULL,
|
||||
(64 * 1024), 512, 4, 0x00, 0x00, 0x00, 0x00, 0);
|
||||
|
||||
dinfo = drive_get(IF_PFLASH, 0, 1);
|
||||
pflash_cfi01_register(SA_CS1, NULL, "collie.fl2", 0x02000000,
|
||||
dinfo ? dinfo->bdrv : NULL, (64 * 1024),
|
||||
512, 4, 0x00, 0x00, 0x00, 0x00, 0);
|
||||
dinfo ? blk_bs(blk_by_legacy_dinfo(dinfo)) : NULL,
|
||||
(64 * 1024), 512, 4, 0x00, 0x00, 0x00, 0x00, 0);
|
||||
|
||||
sysbus_create_simple("scoop", 0x40800000, NULL);
|
||||
|
||||
|
@ -40,6 +40,7 @@
|
||||
#include "hw/block/flash.h"
|
||||
#include "hw/devices.h"
|
||||
#include "hw/boards.h"
|
||||
#include "sysemu/block-backend.h"
|
||||
#include "sysemu/blockdev.h"
|
||||
#include "exec/address-spaces.h"
|
||||
#include "sysemu/qtest.h"
|
||||
@ -71,7 +72,7 @@ static void connex_init(MachineState *machine)
|
||||
be = 0;
|
||||
#endif
|
||||
if (!pflash_cfi01_register(0x00000000, NULL, "connext.rom", connex_rom,
|
||||
dinfo ? dinfo->bdrv : NULL,
|
||||
dinfo ? blk_bs(blk_by_legacy_dinfo(dinfo)) : NULL,
|
||||
sector_len, connex_rom / sector_len,
|
||||
2, 0, 0, 0, 0, be)) {
|
||||
fprintf(stderr, "qemu: Error registering flash memory.\n");
|
||||
@ -109,7 +110,7 @@ static void verdex_init(MachineState *machine)
|
||||
be = 0;
|
||||
#endif
|
||||
if (!pflash_cfi01_register(0x00000000, NULL, "verdex.rom", verdex_rom,
|
||||
dinfo ? dinfo->bdrv : NULL,
|
||||
dinfo ? blk_bs(blk_by_legacy_dinfo(dinfo)) : NULL,
|
||||
sector_len, verdex_rom / sector_len,
|
||||
2, 0, 0, 0, 0, be)) {
|
||||
fprintf(stderr, "qemu: Error registering flash memory.\n");
|
||||
|
@ -18,7 +18,7 @@
|
||||
#include "hw/devices.h"
|
||||
#include "hw/boards.h"
|
||||
#include "hw/block/flash.h"
|
||||
#include "sysemu/blockdev.h"
|
||||
#include "sysemu/block-backend.h"
|
||||
#include "hw/sysbus.h"
|
||||
#include "exec/address-spaces.h"
|
||||
#include "sysemu/qtest.h"
|
||||
@ -149,9 +149,9 @@ static void mainstone_common_init(MemoryRegion *address_space_mem,
|
||||
if (!pflash_cfi01_register(mainstone_flash_base[i], NULL,
|
||||
i ? "mainstone.flash1" : "mainstone.flash0",
|
||||
MAINSTONE_FLASH,
|
||||
dinfo->bdrv, sector_len,
|
||||
MAINSTONE_FLASH / sector_len, 4, 0, 0, 0, 0,
|
||||
be)) {
|
||||
blk_bs(blk_by_legacy_dinfo(dinfo)),
|
||||
sector_len, MAINSTONE_FLASH / sector_len,
|
||||
4, 0, 0, 0, 0, be)) {
|
||||
fprintf(stderr, "qemu: Error registering flash memory.\n");
|
||||
exit(1);
|
||||
}
|
||||
|
@ -22,6 +22,7 @@
|
||||
#include "hw/block/flash.h"
|
||||
#include "ui/console.h"
|
||||
#include "hw/i2c/i2c.h"
|
||||
#include "sysemu/block-backend.h"
|
||||
#include "sysemu/blockdev.h"
|
||||
#include "exec/address-spaces.h"
|
||||
#include "ui/pixel_ops.h"
|
||||
@ -1632,7 +1633,9 @@ static void musicpal_init(MachineState *machine)
|
||||
/* Register flash */
|
||||
dinfo = drive_get(IF_PFLASH, 0, 0);
|
||||
if (dinfo) {
|
||||
flash_size = bdrv_getlength(dinfo->bdrv);
|
||||
BlockDriverState *bs = blk_bs(blk_by_legacy_dinfo(dinfo));
|
||||
|
||||
flash_size = bdrv_getlength(bs);
|
||||
if (flash_size != 8*1024*1024 && flash_size != 16*1024*1024 &&
|
||||
flash_size != 32*1024*1024) {
|
||||
fprintf(stderr, "Invalid flash image size\n");
|
||||
@ -1647,16 +1650,14 @@ static void musicpal_init(MachineState *machine)
|
||||
#ifdef TARGET_WORDS_BIGENDIAN
|
||||
pflash_cfi02_register(0x100000000ULL-MP_FLASH_SIZE_MAX, NULL,
|
||||
"musicpal.flash", flash_size,
|
||||
dinfo->bdrv, 0x10000,
|
||||
(flash_size + 0xffff) >> 16,
|
||||
bs, 0x10000, (flash_size + 0xffff) >> 16,
|
||||
MP_FLASH_SIZE_MAX / flash_size,
|
||||
2, 0x00BF, 0x236D, 0x0000, 0x0000,
|
||||
0x5555, 0x2AAA, 1);
|
||||
#else
|
||||
pflash_cfi02_register(0x100000000ULL-MP_FLASH_SIZE_MAX, NULL,
|
||||
"musicpal.flash", flash_size,
|
||||
dinfo->bdrv, 0x10000,
|
||||
(flash_size + 0xffff) >> 16,
|
||||
bs, 0x10000, (flash_size + 0xffff) >> 16,
|
||||
MP_FLASH_SIZE_MAX / flash_size,
|
||||
2, 0x00BF, 0x236D, 0x0000, 0x0000,
|
||||
0x5555, 0x2AAA, 0);
|
||||
|
@ -31,6 +31,7 @@
|
||||
#include "hw/hw.h"
|
||||
#include "hw/bt.h"
|
||||
#include "hw/loader.h"
|
||||
#include "sysemu/block-backend.h"
|
||||
#include "sysemu/blockdev.h"
|
||||
#include "hw/sysbus.h"
|
||||
#include "exec/address-spaces.h"
|
||||
@ -172,8 +173,9 @@ static void n8x0_nand_setup(struct n800_s *s)
|
||||
qdev_prop_set_uint16(s->nand, "version_id", 0);
|
||||
qdev_prop_set_int32(s->nand, "shift", 1);
|
||||
dinfo = drive_get(IF_MTD, 0, 0);
|
||||
if (dinfo && dinfo->bdrv) {
|
||||
qdev_prop_set_drive_nofail(s->nand, "drive", dinfo->bdrv);
|
||||
if (dinfo) {
|
||||
qdev_prop_set_drive_nofail(s->nand, "drive",
|
||||
blk_bs(blk_by_legacy_dinfo(dinfo)));
|
||||
}
|
||||
qdev_init_nofail(s->nand);
|
||||
sysbus_connect_irq(SYS_BUS_DEVICE(s->nand), 0,
|
||||
|
@ -21,6 +21,7 @@
|
||||
#include "hw/arm/omap.h"
|
||||
#include "sysemu/sysemu.h"
|
||||
#include "hw/arm/soc_dma.h"
|
||||
#include "sysemu/block-backend.h"
|
||||
#include "sysemu/blockdev.h"
|
||||
#include "qemu/range.h"
|
||||
#include "hw/sysbus.h"
|
||||
@ -3978,7 +3979,8 @@ struct omap_mpu_state_s *omap310_mpu_init(MemoryRegion *system_memory,
|
||||
fprintf(stderr, "qemu: missing SecureDigital device\n");
|
||||
exit(1);
|
||||
}
|
||||
s->mmc = omap_mmc_init(0xfffb7800, system_memory, dinfo->bdrv,
|
||||
s->mmc = omap_mmc_init(0xfffb7800, system_memory,
|
||||
blk_bs(blk_by_legacy_dinfo(dinfo)),
|
||||
qdev_get_gpio_in(s->ih[1], OMAP_INT_OQN),
|
||||
&s->drq[OMAP_DMA_MMC_TX],
|
||||
omap_findclk(s, "mmc_ck"));
|
||||
|
@ -18,6 +18,7 @@
|
||||
* with this program; if not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include "sysemu/block-backend.h"
|
||||
#include "sysemu/blockdev.h"
|
||||
#include "hw/hw.h"
|
||||
#include "hw/arm/arm.h"
|
||||
@ -2461,7 +2462,8 @@ struct omap_mpu_state_s *omap2420_mpu_init(MemoryRegion *sysmem,
|
||||
fprintf(stderr, "qemu: missing SecureDigital device\n");
|
||||
exit(1);
|
||||
}
|
||||
s->mmc = omap2_mmc_init(omap_l4tao(s->l4, 9), dinfo->bdrv,
|
||||
s->mmc = omap2_mmc_init(omap_l4tao(s->l4, 9),
|
||||
blk_bs(blk_by_legacy_dinfo(dinfo)),
|
||||
qdev_get_gpio_in(s->ih[0], OMAP_INT_24XX_MMC_IRQ),
|
||||
&s->drq[OMAP24XX_DMA_MMC1_TX],
|
||||
omap_findclk(s, "mmc_fclk"), omap_findclk(s, "mmc_iclk"));
|
||||
|
@ -31,6 +31,7 @@
|
||||
#include "hw/boards.h"
|
||||
#include "hw/arm/arm.h"
|
||||
#include "hw/block/flash.h"
|
||||
#include "sysemu/block-backend.h"
|
||||
#include "sysemu/blockdev.h"
|
||||
#include "sysemu/qtest.h"
|
||||
#include "exec/address-spaces.h"
|
||||
@ -154,8 +155,8 @@ static void sx1_init(MachineState *machine, const int version)
|
||||
if ((dinfo = drive_get(IF_PFLASH, 0, fl_idx)) != NULL) {
|
||||
if (!pflash_cfi01_register(OMAP_CS0_BASE, NULL,
|
||||
"omap_sx1.flash0-1", flash_size,
|
||||
dinfo->bdrv, sector_size,
|
||||
flash_size / sector_size,
|
||||
blk_bs(blk_by_legacy_dinfo(dinfo)),
|
||||
sector_size, flash_size / sector_size,
|
||||
4, 0, 0, 0, 0, be)) {
|
||||
fprintf(stderr, "qemu: Error registering flash memory %d.\n",
|
||||
fl_idx);
|
||||
@ -178,8 +179,8 @@ static void sx1_init(MachineState *machine, const int version)
|
||||
|
||||
if (!pflash_cfi01_register(OMAP_CS1_BASE, NULL,
|
||||
"omap_sx1.flash1-1", flash1_size,
|
||||
dinfo->bdrv, sector_size,
|
||||
flash1_size / sector_size,
|
||||
blk_bs(blk_by_legacy_dinfo(dinfo)),
|
||||
sector_size, flash1_size / sector_size,
|
||||
4, 0, 0, 0, 0, be)) {
|
||||
fprintf(stderr, "qemu: Error registering flash memory %d.\n",
|
||||
fl_idx);
|
||||
|
@ -14,6 +14,7 @@
|
||||
#include "hw/i2c/i2c.h"
|
||||
#include "hw/ssi.h"
|
||||
#include "sysemu/char.h"
|
||||
#include "sysemu/block-backend.h"
|
||||
#include "sysemu/blockdev.h"
|
||||
|
||||
static struct {
|
||||
@ -2085,7 +2086,8 @@ PXA2xxState *pxa270_init(MemoryRegion *address_space,
|
||||
fprintf(stderr, "qemu: missing SecureDigital device\n");
|
||||
exit(1);
|
||||
}
|
||||
s->mmc = pxa2xx_mmci_init(address_space, 0x41100000, dinfo->bdrv,
|
||||
s->mmc = pxa2xx_mmci_init(address_space, 0x41100000,
|
||||
blk_bs(blk_by_legacy_dinfo(dinfo)),
|
||||
qdev_get_gpio_in(s->pic, PXA2XX_PIC_MMC),
|
||||
qdev_get_gpio_in(s->dma, PXA2XX_RX_RQ_MMCI),
|
||||
qdev_get_gpio_in(s->dma, PXA2XX_TX_RQ_MMCI));
|
||||
@ -2217,7 +2219,8 @@ PXA2xxState *pxa255_init(MemoryRegion *address_space, unsigned int sdram_size)
|
||||
fprintf(stderr, "qemu: missing SecureDigital device\n");
|
||||
exit(1);
|
||||
}
|
||||
s->mmc = pxa2xx_mmci_init(address_space, 0x41100000, dinfo->bdrv,
|
||||
s->mmc = pxa2xx_mmci_init(address_space, 0x41100000,
|
||||
blk_bs(blk_by_legacy_dinfo(dinfo)),
|
||||
qdev_get_gpio_in(s->pic, PXA2XX_PIC_MMC),
|
||||
qdev_get_gpio_in(s->dma, PXA2XX_RX_RQ_MMCI),
|
||||
qdev_get_gpio_in(s->dma, PXA2XX_TX_RQ_MMCI));
|
||||
|
@ -25,6 +25,7 @@
|
||||
#include "block/block.h"
|
||||
#include "audio/audio.h"
|
||||
#include "hw/boards.h"
|
||||
#include "sysemu/block-backend.h"
|
||||
#include "sysemu/blockdev.h"
|
||||
#include "hw/sysbus.h"
|
||||
#include "exec/address-spaces.h"
|
||||
@ -170,7 +171,8 @@ static int sl_nand_init(SysBusDevice *dev)
|
||||
|
||||
s->ctl = 0;
|
||||
nand = drive_get(IF_MTD, 0, 0);
|
||||
s->nand = nand_init(nand ? nand->bdrv : NULL, s->manf_id, s->chip_id);
|
||||
s->nand = nand_init(nand ? blk_bs(blk_by_legacy_dinfo(nand)) : NULL,
|
||||
s->manf_id, s->chip_id);
|
||||
|
||||
memory_region_init_io(&s->iomem, OBJECT(s), &sl_ops, s, "sl", 0x40);
|
||||
sysbus_init_mmio(dev, &s->iomem);
|
||||
|
@ -15,6 +15,7 @@
|
||||
#include "hw/pci/pci.h"
|
||||
#include "hw/i2c/i2c.h"
|
||||
#include "hw/boards.h"
|
||||
#include "sysemu/block-backend.h"
|
||||
#include "sysemu/blockdev.h"
|
||||
#include "exec/address-spaces.h"
|
||||
#include "hw/block/flash.h"
|
||||
@ -338,7 +339,8 @@ static void versatile_init(MachineState *machine, int board_id)
|
||||
|
||||
dinfo = drive_get(IF_PFLASH, 0, 0);
|
||||
if (!pflash_cfi01_register(VERSATILE_FLASH_ADDR, NULL, "versatile.flash",
|
||||
VERSATILE_FLASH_SIZE, dinfo ? dinfo->bdrv : NULL,
|
||||
VERSATILE_FLASH_SIZE,
|
||||
dinfo ? blk_bs(blk_by_legacy_dinfo(dinfo)) : NULL,
|
||||
VERSATILE_FLASH_SECT_SIZE,
|
||||
VERSATILE_FLASH_SIZE / VERSATILE_FLASH_SECT_SIZE,
|
||||
4, 0x0089, 0x0018, 0x0000, 0x0, 0)) {
|
||||
|
@ -30,6 +30,7 @@
|
||||
#include "hw/boards.h"
|
||||
#include "hw/loader.h"
|
||||
#include "exec/address-spaces.h"
|
||||
#include "sysemu/block-backend.h"
|
||||
#include "sysemu/blockdev.h"
|
||||
#include "hw/block/flash.h"
|
||||
#include "sysemu/device_tree.h"
|
||||
@ -491,7 +492,8 @@ static pflash_t *ve_pflash_cfi01_register(hwaddr base, const char *name,
|
||||
{
|
||||
DeviceState *dev = qdev_create(NULL, "cfi.pflash01");
|
||||
|
||||
if (di && qdev_prop_set_drive(dev, "drive", di->bdrv)) {
|
||||
if (di && qdev_prop_set_drive(dev, "drive",
|
||||
blk_bs(blk_by_legacy_dinfo(di)))) {
|
||||
abort();
|
||||
}
|
||||
|
||||
|
@ -33,6 +33,7 @@
|
||||
#include "hw/arm/primecell.h"
|
||||
#include "hw/devices.h"
|
||||
#include "net/net.h"
|
||||
#include "sysemu/block-backend.h"
|
||||
#include "sysemu/device_tree.h"
|
||||
#include "sysemu/sysemu.h"
|
||||
#include "sysemu/kvm.h"
|
||||
@ -450,7 +451,8 @@ static void create_one_flash(const char *name, hwaddr flashbase,
|
||||
DeviceState *dev = qdev_create(NULL, "cfi.pflash01");
|
||||
const uint64_t sectorlength = 256 * 1024;
|
||||
|
||||
if (dinfo && qdev_prop_set_drive(dev, "drive", dinfo->bdrv)) {
|
||||
if (dinfo && qdev_prop_set_drive(dev, "drive",
|
||||
blk_bs(blk_by_legacy_dinfo(dinfo)))) {
|
||||
abort();
|
||||
}
|
||||
|
||||
|
@ -22,6 +22,7 @@
|
||||
#include "sysemu/sysemu.h"
|
||||
#include "hw/boards.h"
|
||||
#include "hw/block/flash.h"
|
||||
#include "sysemu/block-backend.h"
|
||||
#include "sysemu/blockdev.h"
|
||||
#include "hw/loader.h"
|
||||
#include "hw/ssi.h"
|
||||
@ -164,7 +165,8 @@ static void zynq_init(MachineState *machine)
|
||||
|
||||
/* AMD */
|
||||
pflash_cfi02_register(0xe2000000, NULL, "zynq.pflash", FLASH_SIZE,
|
||||
dinfo ? dinfo->bdrv : NULL, FLASH_SECTOR_SIZE,
|
||||
dinfo ? blk_bs(blk_by_legacy_dinfo(dinfo)) : NULL,
|
||||
FLASH_SECTOR_SIZE,
|
||||
FLASH_SIZE/FLASH_SECTOR_SIZE, 1,
|
||||
1, 0x0066, 0x0022, 0x0000, 0x0000, 0x0555, 0x2aa,
|
||||
0);
|
||||
|
@ -20,6 +20,7 @@
|
||||
#include "hw/boards.h"
|
||||
#include "sysemu/sysemu.h"
|
||||
#include "hw/block/flash.h"
|
||||
#include "sysemu/block-backend.h"
|
||||
#include "sysemu/blockdev.h"
|
||||
#include "ui/console.h"
|
||||
#include "audio/audio.h"
|
||||
@ -336,9 +337,9 @@ static void z2_init(MachineState *machine)
|
||||
|
||||
if (!pflash_cfi01_register(Z2_FLASH_BASE,
|
||||
NULL, "z2.flash0", Z2_FLASH_SIZE,
|
||||
dinfo ? dinfo->bdrv : NULL, sector_len,
|
||||
Z2_FLASH_SIZE / sector_len, 4, 0, 0, 0, 0,
|
||||
be)) {
|
||||
dinfo ? blk_bs(blk_by_legacy_dinfo(dinfo)) : NULL,
|
||||
sector_len, Z2_FLASH_SIZE / sector_len,
|
||||
4, 0, 0, 0, 0, be)) {
|
||||
fprintf(stderr, "qemu: Error registering flash memory.\n");
|
||||
exit(1);
|
||||
}
|
||||
|
@ -33,6 +33,7 @@
|
||||
#include "qemu/timer.h"
|
||||
#include "hw/isa/isa.h"
|
||||
#include "hw/sysbus.h"
|
||||
#include "sysemu/block-backend.h"
|
||||
#include "sysemu/blockdev.h"
|
||||
#include "sysemu/sysemu.h"
|
||||
#include "qemu/log.h"
|
||||
@ -2107,10 +2108,12 @@ ISADevice *fdctrl_init_isa(ISABus *bus, DriveInfo **fds)
|
||||
dev = DEVICE(isadev);
|
||||
|
||||
if (fds[0]) {
|
||||
qdev_prop_set_drive_nofail(dev, "driveA", fds[0]->bdrv);
|
||||
qdev_prop_set_drive_nofail(dev, "driveA",
|
||||
blk_bs(blk_by_legacy_dinfo(fds[0])));
|
||||
}
|
||||
if (fds[1]) {
|
||||
qdev_prop_set_drive_nofail(dev, "driveB", fds[1]->bdrv);
|
||||
qdev_prop_set_drive_nofail(dev, "driveB",
|
||||
blk_bs(blk_by_legacy_dinfo(fds[1])));
|
||||
}
|
||||
qdev_init_nofail(dev);
|
||||
|
||||
@ -2130,10 +2133,12 @@ void fdctrl_init_sysbus(qemu_irq irq, int dma_chann,
|
||||
fdctrl = &sys->state;
|
||||
fdctrl->dma_chann = dma_chann; /* FIXME */
|
||||
if (fds[0]) {
|
||||
qdev_prop_set_drive_nofail(dev, "driveA", fds[0]->bdrv);
|
||||
qdev_prop_set_drive_nofail(dev, "driveA",
|
||||
blk_bs(blk_by_legacy_dinfo(fds[0])));
|
||||
}
|
||||
if (fds[1]) {
|
||||
qdev_prop_set_drive_nofail(dev, "driveB", fds[1]->bdrv);
|
||||
qdev_prop_set_drive_nofail(dev, "driveB",
|
||||
blk_bs(blk_by_legacy_dinfo(fds[1])));
|
||||
}
|
||||
qdev_init_nofail(dev);
|
||||
sbd = SYS_BUS_DEVICE(dev);
|
||||
@ -2149,7 +2154,8 @@ void sun4m_fdctrl_init(qemu_irq irq, hwaddr io_base,
|
||||
|
||||
dev = qdev_create(NULL, "SUNW,fdtwo");
|
||||
if (fds[0]) {
|
||||
qdev_prop_set_drive_nofail(dev, "drive", fds[0]->bdrv);
|
||||
qdev_prop_set_drive_nofail(dev, "drive",
|
||||
blk_bs(blk_by_legacy_dinfo(fds[0])));
|
||||
}
|
||||
qdev_init_nofail(dev);
|
||||
sys = SYSBUS_FDC(dev);
|
||||
|
@ -22,6 +22,7 @@
|
||||
*/
|
||||
|
||||
#include "hw/hw.h"
|
||||
#include "sysemu/block-backend.h"
|
||||
#include "sysemu/blockdev.h"
|
||||
#include "hw/ssi.h"
|
||||
|
||||
@ -624,9 +625,9 @@ static int m25p80_init(SSISlave *ss)
|
||||
|
||||
dinfo = drive_get_next(IF_MTD);
|
||||
|
||||
if (dinfo && dinfo->bdrv) {
|
||||
if (dinfo) {
|
||||
DB_PRINT_L(0, "Binding to IF_MTD drive\n");
|
||||
s->bdrv = dinfo->bdrv;
|
||||
s->bdrv = blk_bs(blk_by_legacy_dinfo(dinfo));
|
||||
|
||||
/* FIXME: Move to late init */
|
||||
if (bdrv_read(s->bdrv, 0, s->storage, DIV_ROUND_UP(s->size,
|
||||
|
@ -879,7 +879,7 @@ static int blk_connect(struct XenDevice *xendev)
|
||||
} else {
|
||||
/* setup via qemu cmdline -> already setup for us */
|
||||
xen_be_printf(&blkdev->xendev, 2, "get configured bdrv (cmdline setup)\n");
|
||||
blkdev->bs = blkdev->dinfo->bdrv;
|
||||
blkdev->bs = blk_bs(blk_by_legacy_dinfo(blkdev->dinfo));
|
||||
if (bdrv_is_read_only(blkdev->bs) && !readonly) {
|
||||
xen_be_printf(&blkdev->xendev, 0, "Unexpected read-only drive");
|
||||
blkdev->bs = NULL;
|
||||
|
@ -30,6 +30,7 @@
|
||||
#include "hw/loader.h"
|
||||
#include "elf.h"
|
||||
#include "boot.h"
|
||||
#include "sysemu/block-backend.h"
|
||||
#include "sysemu/blockdev.h"
|
||||
#include "exec/address-spaces.h"
|
||||
#include "sysemu/qtest.h"
|
||||
@ -284,7 +285,7 @@ void axisdev88_init(MachineState *machine)
|
||||
|
||||
/* Attach a NAND flash to CS1. */
|
||||
nand = drive_get(IF_MTD, 0, 0);
|
||||
nand_state.nand = nand_init(nand ? nand->bdrv : NULL,
|
||||
nand_state.nand = nand_init(nand ? blk_bs(blk_by_legacy_dinfo(nand)) : NULL,
|
||||
NAND_MFR_STMICRO, 0x39);
|
||||
memory_region_init_io(&nand_state.iomem, NULL, &nand_ops, &nand_state,
|
||||
"nand", 0x05000000);
|
||||
|
@ -15,6 +15,7 @@
|
||||
#include "hw/block/flash.h"
|
||||
#include "ui/console.h"
|
||||
#include "ui/pixel_ops.h"
|
||||
#include "sysemu/block-backend.h"
|
||||
#include "sysemu/blockdev.h"
|
||||
|
||||
#define IRQ_TC6393_NAND 0
|
||||
@ -576,7 +577,8 @@ TC6393xbState *tc6393xb_init(MemoryRegion *sysmem, uint32_t base, qemu_irq irq)
|
||||
s->sub_irqs = qemu_allocate_irqs(tc6393xb_sub_irq, s, TC6393XB_NR_IRQS);
|
||||
|
||||
nand = drive_get(IF_MTD, 0, 0);
|
||||
s->flash = nand_init(nand ? nand->bdrv : NULL, NAND_MFR_TOSHIBA, 0x76);
|
||||
s->flash = nand_init(nand ? blk_bs(blk_by_legacy_dinfo(nand)) : NULL,
|
||||
NAND_MFR_TOSHIBA, 0x76);
|
||||
|
||||
memory_region_init_io(&s->iomem, NULL, &tc6393xb_ops, s, "tc6393xb", 0x10000);
|
||||
memory_region_add_subregion(sysmem, base, &s->iomem);
|
||||
|
@ -23,6 +23,7 @@
|
||||
* THE SOFTWARE.
|
||||
*/
|
||||
|
||||
#include "sysemu/block-backend.h"
|
||||
#include "sysemu/blockdev.h"
|
||||
#include "qemu/error-report.h"
|
||||
#include "hw/sysbus.h"
|
||||
@ -119,7 +120,7 @@ static void pc_system_flash_init(MemoryRegion *rom_memory)
|
||||
(unit < FLASH_MAP_UNIT_MAX &&
|
||||
(pflash_drv = drive_get(IF_PFLASH, 0, unit)) != NULL);
|
||||
++unit) {
|
||||
bdrv = pflash_drv->bdrv;
|
||||
bdrv = blk_bs(blk_by_legacy_dinfo(pflash_drv));
|
||||
size = bdrv_getlength(bdrv);
|
||||
if (size < 0) {
|
||||
fatal_errmsg = g_strdup_printf("failed to get backing file size");
|
||||
|
@ -180,9 +180,10 @@ int pci_piix3_xen_ide_unplug(DeviceState *dev)
|
||||
di = drive_get_by_index(IF_IDE, i);
|
||||
if (di != NULL && !di->media_cd) {
|
||||
BlockBackend *blk = blk_by_legacy_dinfo(di);
|
||||
DeviceState *ds = bdrv_get_attached_dev(di->bdrv);
|
||||
BlockDriverState *bs = blk_bs(blk);
|
||||
DeviceState *ds = bdrv_get_attached_dev(bs);
|
||||
if (ds) {
|
||||
bdrv_detach_dev(di->bdrv, ds);
|
||||
bdrv_detach_dev(bs, ds);
|
||||
}
|
||||
pci_ide->bus[di->bus].ifs[di->unit].bs = NULL;
|
||||
blk_unref(blk);
|
||||
|
@ -20,6 +20,7 @@
|
||||
#include "sysemu/dma.h"
|
||||
#include "qemu/error-report.h"
|
||||
#include <hw/ide/internal.h>
|
||||
#include "sysemu/block-backend.h"
|
||||
#include "sysemu/blockdev.h"
|
||||
#include "hw/block/block.h"
|
||||
#include "sysemu/sysemu.h"
|
||||
@ -117,7 +118,8 @@ IDEDevice *ide_create_drive(IDEBus *bus, int unit, DriveInfo *drive)
|
||||
|
||||
dev = qdev_create(&bus->qbus, drive->media_cd ? "ide-cd" : "ide-hd");
|
||||
qdev_prop_set_uint32(dev, "unit", unit);
|
||||
qdev_prop_set_drive_nofail(dev, "drive", drive->bdrv);
|
||||
qdev_prop_set_drive_nofail(dev, "drive",
|
||||
blk_bs(blk_by_legacy_dinfo(drive)));
|
||||
qdev_init_nofail(dev);
|
||||
return DO_UPCAST(IDEDevice, qdev, dev);
|
||||
}
|
||||
|
@ -25,6 +25,7 @@
|
||||
|
||||
#include "hw/isa/pc87312.h"
|
||||
#include "qemu/error-report.h"
|
||||
#include "sysemu/block-backend.h"
|
||||
#include "sysemu/blockdev.h"
|
||||
#include "sysemu/sysemu.h"
|
||||
#include "sysemu/char.h"
|
||||
@ -320,11 +321,13 @@ static void pc87312_realize(DeviceState *dev, Error **errp)
|
||||
qdev_prop_set_uint32(d, "irq", 6);
|
||||
drive = drive_get(IF_FLOPPY, 0, 0);
|
||||
if (drive != NULL) {
|
||||
qdev_prop_set_drive_nofail(d, "driveA", drive->bdrv);
|
||||
qdev_prop_set_drive_nofail(d, "driveA",
|
||||
blk_bs(blk_by_legacy_dinfo(drive)));
|
||||
}
|
||||
drive = drive_get(IF_FLOPPY, 0, 1);
|
||||
if (drive != NULL) {
|
||||
qdev_prop_set_drive_nofail(d, "driveB", drive->bdrv);
|
||||
qdev_prop_set_drive_nofail(d, "driveB",
|
||||
blk_bs(blk_by_legacy_dinfo(drive)));
|
||||
}
|
||||
qdev_init_nofail(d);
|
||||
s->fdc.dev = isa;
|
||||
|
@ -23,6 +23,7 @@
|
||||
#include "hw/devices.h"
|
||||
#include "hw/boards.h"
|
||||
#include "hw/loader.h"
|
||||
#include "sysemu/block-backend.h"
|
||||
#include "sysemu/blockdev.h"
|
||||
#include "elf.h"
|
||||
#include "lm32_hwsetup.h"
|
||||
@ -119,9 +120,9 @@ static void lm32_evr_init(MachineState *machine)
|
||||
dinfo = drive_get(IF_PFLASH, 0, 0);
|
||||
/* Spansion S29NS128P */
|
||||
pflash_cfi02_register(flash_base, NULL, "lm32_evr.flash", flash_size,
|
||||
dinfo ? dinfo->bdrv : NULL, flash_sector_size,
|
||||
flash_size / flash_sector_size, 1, 2,
|
||||
0x01, 0x7e, 0x43, 0x00, 0x555, 0x2aa, 1);
|
||||
dinfo ? blk_bs(blk_by_legacy_dinfo(dinfo)) : NULL,
|
||||
flash_sector_size, flash_size / flash_sector_size,
|
||||
1, 2, 0x01, 0x7e, 0x43, 0x00, 0x555, 0x2aa, 1);
|
||||
|
||||
/* create irq lines */
|
||||
cpu_irq = qemu_allocate_irqs(cpu_irq_handler, cpu, 1);
|
||||
@ -222,9 +223,9 @@ static void lm32_uclinux_init(MachineState *machine)
|
||||
dinfo = drive_get(IF_PFLASH, 0, 0);
|
||||
/* Spansion S29NS128P */
|
||||
pflash_cfi02_register(flash_base, NULL, "lm32_uclinux.flash", flash_size,
|
||||
dinfo ? dinfo->bdrv : NULL, flash_sector_size,
|
||||
flash_size / flash_sector_size, 1, 2,
|
||||
0x01, 0x7e, 0x43, 0x00, 0x555, 0x2aa, 1);
|
||||
dinfo ? blk_bs(blk_by_legacy_dinfo(dinfo)) : NULL,
|
||||
flash_sector_size, flash_size / flash_sector_size,
|
||||
1, 2, 0x01, 0x7e, 0x43, 0x00, 0x555, 0x2aa, 1);
|
||||
|
||||
/* create irq lines */
|
||||
cpu_irq = qemu_allocate_irqs(cpu_irq_handler, env, 1);
|
||||
|
@ -26,6 +26,7 @@
|
||||
#include "hw/boards.h"
|
||||
#include "hw/loader.h"
|
||||
#include "elf.h"
|
||||
#include "sysemu/block-backend.h"
|
||||
#include "sysemu/blockdev.h"
|
||||
#include "milkymist-hw.h"
|
||||
#include "lm32.h"
|
||||
@ -126,9 +127,9 @@ milkymist_init(MachineState *machine)
|
||||
dinfo = drive_get(IF_PFLASH, 0, 0);
|
||||
/* Numonyx JS28F256J3F105 */
|
||||
pflash_cfi01_register(flash_base, NULL, "milkymist.flash", flash_size,
|
||||
dinfo ? dinfo->bdrv : NULL, flash_sector_size,
|
||||
flash_size / flash_sector_size, 2,
|
||||
0x00, 0x89, 0x00, 0x1d, 1);
|
||||
dinfo ? blk_bs(blk_by_legacy_dinfo(dinfo)) : NULL,
|
||||
flash_sector_size, flash_size / flash_sector_size,
|
||||
2, 0x00, 0x89, 0x00, 0x1d, 1);
|
||||
|
||||
/* create irq lines */
|
||||
cpu_irq = qemu_allocate_irqs(cpu_irq_handler, cpu, 1);
|
||||
|
@ -32,6 +32,7 @@
|
||||
#include "sysemu/sysemu.h"
|
||||
#include "hw/devices.h"
|
||||
#include "hw/boards.h"
|
||||
#include "sysemu/block-backend.h"
|
||||
#include "sysemu/blockdev.h"
|
||||
#include "hw/char/serial.h"
|
||||
#include "exec/address-spaces.h"
|
||||
@ -113,8 +114,8 @@ petalogix_ml605_init(MachineState *machine)
|
||||
* 10th paremeter 0 means little-endian */
|
||||
pflash_cfi01_register(FLASH_BASEADDR,
|
||||
NULL, "petalogix_ml605.flash", FLASH_SIZE,
|
||||
dinfo ? dinfo->bdrv : NULL, (64 * 1024),
|
||||
FLASH_SIZE >> 16,
|
||||
dinfo ? blk_bs(blk_by_legacy_dinfo(dinfo)) : NULL,
|
||||
(64 * 1024), FLASH_SIZE >> 16,
|
||||
2, 0x89, 0x18, 0x0000, 0x0, 0);
|
||||
|
||||
|
||||
|
@ -30,6 +30,7 @@
|
||||
#include "sysemu/sysemu.h"
|
||||
#include "hw/devices.h"
|
||||
#include "hw/boards.h"
|
||||
#include "sysemu/block-backend.h"
|
||||
#include "sysemu/blockdev.h"
|
||||
#include "exec/address-spaces.h"
|
||||
|
||||
@ -94,8 +95,8 @@ petalogix_s3adsp1800_init(MachineState *machine)
|
||||
dinfo = drive_get(IF_PFLASH, 0, 0);
|
||||
pflash_cfi01_register(FLASH_BASEADDR,
|
||||
NULL, "petalogix_s3adsp1800.flash", FLASH_SIZE,
|
||||
dinfo ? dinfo->bdrv : NULL, (64 * 1024),
|
||||
FLASH_SIZE >> 16,
|
||||
dinfo ? blk_bs(blk_by_legacy_dinfo(dinfo)) : NULL,
|
||||
(64 * 1024), FLASH_SIZE >> 16,
|
||||
1, 0x89, 0x18, 0x0000, 0x0, 1);
|
||||
|
||||
dev = qdev_create(NULL, "xlnx.xps-intc");
|
||||
|
@ -44,6 +44,7 @@
|
||||
#include "elf.h"
|
||||
#include "hw/timer/mc146818rtc.h"
|
||||
#include "hw/timer/i8254.h"
|
||||
#include "sysemu/block-backend.h"
|
||||
#include "sysemu/blockdev.h"
|
||||
#include "exec/address-spaces.h"
|
||||
#include "hw/sysbus.h" /* SysBusDevice */
|
||||
@ -1036,7 +1037,8 @@ void mips_malta_init(MachineState *machine)
|
||||
}
|
||||
#endif
|
||||
fl = pflash_cfi01_register(FLASH_ADDRESS, NULL, "mips_malta.bios",
|
||||
BIOS_SIZE, dinfo ? dinfo->bdrv : NULL,
|
||||
BIOS_SIZE,
|
||||
dinfo ? blk_bs(blk_by_legacy_dinfo(dinfo)) : NULL,
|
||||
65536, fl_sectors,
|
||||
4, 0x0000, 0x0000, 0x0000, 0x0000, be);
|
||||
bios = pflash_cfi01_get_memory(fl);
|
||||
|
@ -24,6 +24,7 @@
|
||||
#include "elf.h"
|
||||
#include "hw/timer/mc146818rtc.h"
|
||||
#include "hw/timer/i8254.h"
|
||||
#include "sysemu/block-backend.h"
|
||||
#include "sysemu/blockdev.h"
|
||||
#include "exec/address-spaces.h"
|
||||
#include "sysemu/qtest.h"
|
||||
@ -241,8 +242,8 @@ void mips_r4k_init(MachineState *machine)
|
||||
} else if ((dinfo = drive_get(IF_PFLASH, 0, 0)) != NULL) {
|
||||
uint32_t mips_rom = 0x00400000;
|
||||
if (!pflash_cfi01_register(0x1fc00000, NULL, "mips_r4k.bios", mips_rom,
|
||||
dinfo->bdrv, sector_len,
|
||||
mips_rom / sector_len,
|
||||
blk_bs(blk_by_legacy_dinfo(dinfo)),
|
||||
sector_len, mips_rom / sector_len,
|
||||
4, 0, 0, 0, 0, be)) {
|
||||
fprintf(stderr, "qemu: Error registering flash memory.\n");
|
||||
}
|
||||
|
@ -33,6 +33,7 @@
|
||||
#include "hw/scsi/scsi.h"
|
||||
#include "hw/virtio/virtio-blk.h"
|
||||
#include "qemu/config-file.h"
|
||||
#include "sysemu/block-backend.h"
|
||||
#include "sysemu/blockdev.h"
|
||||
#include "qapi/error.h"
|
||||
|
||||
@ -127,8 +128,10 @@ static int scsi_hot_add(Monitor *mon, DeviceState *adapter,
|
||||
*/
|
||||
dinfo->unit = qemu_opt_get_number(dinfo->opts, "unit", -1);
|
||||
dinfo->bus = scsibus->busnr;
|
||||
scsidev = scsi_bus_legacy_add_drive(scsibus, dinfo->bdrv, dinfo->unit,
|
||||
false, -1, NULL, &local_err);
|
||||
scsidev = scsi_bus_legacy_add_drive(scsibus,
|
||||
blk_bs(blk_by_legacy_dinfo(dinfo)),
|
||||
dinfo->unit, false, -1, NULL,
|
||||
&local_err);
|
||||
if (!scsidev) {
|
||||
error_report("%s", error_get_pretty(local_err));
|
||||
error_free(local_err);
|
||||
@ -250,7 +253,8 @@ static PCIDevice *qemu_pci_hot_add_storage(Monitor *mon,
|
||||
return NULL;
|
||||
}
|
||||
dev = pci_create(bus, devfn, "virtio-blk-pci");
|
||||
if (qdev_prop_set_drive(&dev->qdev, "drive", dinfo->bdrv) < 0) {
|
||||
if (qdev_prop_set_drive(&dev->qdev, "drive",
|
||||
blk_bs(blk_by_legacy_dinfo(dinfo))) < 0) {
|
||||
object_unparent(OBJECT(dev));
|
||||
dev = NULL;
|
||||
break;
|
||||
|
@ -33,6 +33,7 @@
|
||||
#include "qemu/log.h"
|
||||
#include "qemu/error-report.h"
|
||||
#include "hw/loader.h"
|
||||
#include "sysemu/block-backend.h"
|
||||
#include "sysemu/blockdev.h"
|
||||
#include "exec/address-spaces.h"
|
||||
|
||||
@ -225,17 +226,19 @@ static void ref405ep_init(MachineState *machine)
|
||||
#ifdef USE_FLASH_BIOS
|
||||
dinfo = drive_get(IF_PFLASH, 0, fl_idx);
|
||||
if (dinfo) {
|
||||
bios_size = bdrv_getlength(dinfo->bdrv);
|
||||
BlockDriverState *bs = blk_bs(blk_by_legacy_dinfo(dinfo));
|
||||
|
||||
bios_size = bdrv_getlength(bs);
|
||||
fl_sectors = (bios_size + 65535) >> 16;
|
||||
#ifdef DEBUG_BOARD_INIT
|
||||
printf("Register parallel flash %d size %lx"
|
||||
" at addr %lx '%s' %d\n",
|
||||
fl_idx, bios_size, -bios_size,
|
||||
bdrv_get_device_name(dinfo->bdrv), fl_sectors);
|
||||
bdrv_get_device_name(bs), fl_sectors);
|
||||
#endif
|
||||
pflash_cfi02_register((uint32_t)(-bios_size),
|
||||
NULL, "ef405ep.bios", bios_size,
|
||||
dinfo->bdrv, 65536, fl_sectors, 1,
|
||||
bs, 65536, fl_sectors, 1,
|
||||
2, 0x0001, 0x22DA, 0x0000, 0x0000, 0x555, 0x2AA,
|
||||
1);
|
||||
fl_idx++;
|
||||
@ -548,7 +551,9 @@ static void taihu_405ep_init(MachineState *machine)
|
||||
#if defined(USE_FLASH_BIOS)
|
||||
dinfo = drive_get(IF_PFLASH, 0, fl_idx);
|
||||
if (dinfo) {
|
||||
bios_size = bdrv_getlength(dinfo->bdrv);
|
||||
BlockDriverState *bs = blk_bs(blk_by_legacy_dinfo(dinfo));
|
||||
|
||||
bios_size = bdrv_getlength(bs);
|
||||
/* XXX: should check that size is 2MB */
|
||||
// bios_size = 2 * 1024 * 1024;
|
||||
fl_sectors = (bios_size + 65535) >> 16;
|
||||
@ -556,11 +561,11 @@ static void taihu_405ep_init(MachineState *machine)
|
||||
printf("Register parallel flash %d size %lx"
|
||||
" at addr %lx '%s' %d\n",
|
||||
fl_idx, bios_size, -bios_size,
|
||||
bdrv_get_device_name(dinfo->bdrv), fl_sectors);
|
||||
bdrv_get_device_name(bs), fl_sectors);
|
||||
#endif
|
||||
pflash_cfi02_register((uint32_t)(-bios_size),
|
||||
NULL, "taihu_405ep.bios", bios_size,
|
||||
dinfo->bdrv, 65536, fl_sectors, 1,
|
||||
bs, 65536, fl_sectors, 1,
|
||||
4, 0x0001, 0x22DA, 0x0000, 0x0000, 0x555, 0x2AA,
|
||||
1);
|
||||
fl_idx++;
|
||||
@ -595,7 +600,9 @@ static void taihu_405ep_init(MachineState *machine)
|
||||
/* Register Linux flash */
|
||||
dinfo = drive_get(IF_PFLASH, 0, fl_idx);
|
||||
if (dinfo) {
|
||||
bios_size = bdrv_getlength(dinfo->bdrv);
|
||||
BlockDriverState *bs = blk_bs(blk_by_legacy_dinfo(dinfo));
|
||||
|
||||
bios_size = bdrv_getlength(bs);
|
||||
/* XXX: should check that size is 32MB */
|
||||
bios_size = 32 * 1024 * 1024;
|
||||
fl_sectors = (bios_size + 65535) >> 16;
|
||||
@ -603,10 +610,10 @@ static void taihu_405ep_init(MachineState *machine)
|
||||
printf("Register parallel flash %d size %lx"
|
||||
" at addr " TARGET_FMT_lx " '%s'\n",
|
||||
fl_idx, bios_size, (target_ulong)0xfc000000,
|
||||
bdrv_get_device_name(dinfo->bdrv));
|
||||
bdrv_get_device_name(bs));
|
||||
#endif
|
||||
pflash_cfi02_register(0xfc000000, NULL, "taihu_405ep.flash", bios_size,
|
||||
dinfo->bdrv, 65536, fl_sectors, 1,
|
||||
bs, 65536, fl_sectors, 1,
|
||||
4, 0x0001, 0x22DA, 0x0000, 0x0000, 0x555, 0x2AA,
|
||||
1);
|
||||
fl_idx++;
|
||||
|
@ -29,6 +29,7 @@
|
||||
#include "hw/fw-path-provider.h"
|
||||
#include "elf.h"
|
||||
#include "net/net.h"
|
||||
#include "sysemu/block-backend.h"
|
||||
#include "sysemu/blockdev.h"
|
||||
#include "sysemu/cpus.h"
|
||||
#include "sysemu/kvm.h"
|
||||
@ -925,7 +926,8 @@ static void spapr_create_nvram(sPAPREnvironment *spapr)
|
||||
DriveInfo *dinfo = drive_get(IF_PFLASH, 0, 0);
|
||||
|
||||
if (dinfo) {
|
||||
qdev_prop_set_drive_nofail(dev, "drive", dinfo->bdrv);
|
||||
qdev_prop_set_drive_nofail(dev, "drive",
|
||||
blk_bs(blk_by_legacy_dinfo(dinfo)));
|
||||
}
|
||||
|
||||
qdev_init_nofail(dev);
|
||||
|
@ -39,6 +39,7 @@
|
||||
#include "hw/ppc/ppc4xx.h"
|
||||
#include "ppc405.h"
|
||||
|
||||
#include "sysemu/block-backend.h"
|
||||
#include "sysemu/blockdev.h"
|
||||
#include "qapi/qmp/qerror.h"
|
||||
|
||||
@ -227,8 +228,8 @@ static void virtex_init(MachineState *machine)
|
||||
|
||||
dinfo = drive_get(IF_PFLASH, 0, 0);
|
||||
pflash_cfi01_register(PFLASH_BASEADDR, NULL, "virtex.flash", FLASH_SIZE,
|
||||
dinfo ? dinfo->bdrv : NULL, (64 * 1024),
|
||||
FLASH_SIZE >> 16,
|
||||
dinfo ? blk_bs(blk_by_legacy_dinfo(dinfo)) : NULL,
|
||||
(64 * 1024), FLASH_SIZE >> 16,
|
||||
1, 0x89, 0x18, 0x0000, 0x0, 1);
|
||||
|
||||
cpu_irq = (qemu_irq *) &env->irq_inputs[PPC40x_INPUT_INT];
|
||||
|
@ -3,6 +3,7 @@
|
||||
#include "hw/scsi/scsi.h"
|
||||
#include "block/scsi.h"
|
||||
#include "hw/qdev.h"
|
||||
#include "sysemu/block-backend.h"
|
||||
#include "sysemu/blockdev.h"
|
||||
#include "trace.h"
|
||||
#include "sysemu/dma.h"
|
||||
@ -270,8 +271,8 @@ void scsi_bus_legacy_handle_cmdline(SCSIBus *bus, Error **errp)
|
||||
continue;
|
||||
}
|
||||
qemu_opts_loc_restore(dinfo->opts);
|
||||
scsi_bus_legacy_add_drive(bus, dinfo->bdrv, unit, false, -1, NULL,
|
||||
&err);
|
||||
scsi_bus_legacy_add_drive(bus, blk_bs(blk_by_legacy_dinfo(dinfo)),
|
||||
unit, false, -1, NULL, &err);
|
||||
if (err != NULL) {
|
||||
error_report("%s", error_get_pretty(err));
|
||||
error_propagate(errp, err);
|
||||
|
@ -26,6 +26,7 @@
|
||||
#include "sysemu/sysemu.h"
|
||||
#include "trace.h"
|
||||
#include "qemu/error-report.h"
|
||||
#include "sysemu/block-backend.h"
|
||||
#include "sysemu/blockdev.h"
|
||||
#include "hw/sd.h"
|
||||
|
||||
@ -252,14 +253,16 @@ static int milkymist_memcard_init(SysBusDevice *dev)
|
||||
{
|
||||
MilkymistMemcardState *s = MILKYMIST_MEMCARD(dev);
|
||||
DriveInfo *dinfo;
|
||||
BlockDriverState *bs;
|
||||
|
||||
dinfo = drive_get_next(IF_SD);
|
||||
s->card = sd_init(dinfo ? dinfo->bdrv : NULL, false);
|
||||
bs = dinfo ? blk_bs(blk_by_legacy_dinfo(dinfo)) : NULL;
|
||||
s->card = sd_init(bs, false);
|
||||
if (s->card == NULL) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
s->enabled = dinfo ? bdrv_is_inserted(dinfo->bdrv) : 0;
|
||||
s->enabled = bs && bdrv_is_inserted(bs);
|
||||
|
||||
memory_region_init_io(&s->regs_region, OBJECT(s), &memcard_mmio_ops, s,
|
||||
"milkymist-memcard", R_MAX * 4);
|
||||
|
@ -7,6 +7,7 @@
|
||||
* This code is licensed under the GPL.
|
||||
*/
|
||||
|
||||
#include "sysemu/block-backend.h"
|
||||
#include "sysemu/blockdev.h"
|
||||
#include "hw/sysbus.h"
|
||||
#include "hw/sd.h"
|
||||
@ -490,7 +491,7 @@ static int pl181_init(SysBusDevice *sbd)
|
||||
sysbus_init_irq(sbd, &s->irq[1]);
|
||||
qdev_init_gpio_out(dev, s->cardstatus, 2);
|
||||
dinfo = drive_get_next(IF_SD);
|
||||
s->card = sd_init(dinfo ? dinfo->bdrv : NULL, false);
|
||||
s->card = sd_init(dinfo ? blk_bs(blk_by_legacy_dinfo(dinfo)) : NULL, false);
|
||||
if (s->card == NULL) {
|
||||
return -1;
|
||||
}
|
||||
|
@ -23,6 +23,7 @@
|
||||
*/
|
||||
|
||||
#include "hw/hw.h"
|
||||
#include "sysemu/block-backend.h"
|
||||
#include "sysemu/blockdev.h"
|
||||
#include "sysemu/dma.h"
|
||||
#include "qemu/timer.h"
|
||||
@ -1165,7 +1166,7 @@ static void sdhci_initfn(Object *obj)
|
||||
DriveInfo *di;
|
||||
|
||||
di = drive_get_next(IF_SD);
|
||||
s->card = sd_init(di ? di->bdrv : NULL, false);
|
||||
s->card = sd_init(di ? blk_bs(blk_by_legacy_dinfo(di)) : NULL, false);
|
||||
if (s->card == NULL) {
|
||||
exit(1);
|
||||
}
|
||||
|
@ -10,6 +10,7 @@
|
||||
* GNU GPL, version 2 or (at your option) any later version.
|
||||
*/
|
||||
|
||||
#include "sysemu/block-backend.h"
|
||||
#include "sysemu/blockdev.h"
|
||||
#include "hw/ssi.h"
|
||||
#include "hw/sd.h"
|
||||
@ -255,7 +256,7 @@ static int ssi_sd_init(SSISlave *d)
|
||||
|
||||
s->mode = SSI_SD_CMD;
|
||||
dinfo = drive_get_next(IF_SD);
|
||||
s->sd = sd_init(dinfo ? dinfo->bdrv : NULL, true);
|
||||
s->sd = sd_init(dinfo ? blk_bs(blk_by_legacy_dinfo(dinfo)) : NULL, true);
|
||||
if (s->sd == NULL) {
|
||||
return -1;
|
||||
}
|
||||
|
@ -36,6 +36,7 @@
|
||||
#include "hw/loader.h"
|
||||
#include "hw/usb.h"
|
||||
#include "hw/block/flash.h"
|
||||
#include "sysemu/block-backend.h"
|
||||
#include "sysemu/blockdev.h"
|
||||
#include "exec/address-spaces.h"
|
||||
|
||||
@ -290,8 +291,8 @@ static void r2d_init(MachineState *machine)
|
||||
/* onboard flash memory */
|
||||
dinfo = drive_get(IF_PFLASH, 0, 0);
|
||||
pflash_cfi02_register(0x0, NULL, "r2d.flash", FLASH_SIZE,
|
||||
dinfo ? dinfo->bdrv : NULL, (16 * 1024),
|
||||
FLASH_SIZE >> 16,
|
||||
dinfo ? blk_bs(blk_by_legacy_dinfo(dinfo)) : NULL,
|
||||
(16 * 1024), FLASH_SIZE >> 16,
|
||||
1, 4, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x555, 0x2aa, 0);
|
||||
|
||||
|
@ -16,6 +16,7 @@
|
||||
#include "ui/console.h"
|
||||
#include "monitor/monitor.h"
|
||||
#include "sysemu/sysemu.h"
|
||||
#include "sysemu/block-backend.h"
|
||||
#include "sysemu/blockdev.h"
|
||||
#include "qapi/visitor.h"
|
||||
|
||||
@ -707,7 +708,8 @@ static USBDevice *usb_msd_init(USBBus *bus, const char *filename)
|
||||
if (!dev) {
|
||||
return NULL;
|
||||
}
|
||||
if (qdev_prop_set_drive(&dev->qdev, "drive", dinfo->bdrv) < 0) {
|
||||
if (qdev_prop_set_drive(&dev->qdev, "drive",
|
||||
blk_bs(blk_by_legacy_dinfo(dinfo))) < 0) {
|
||||
object_unparent(OBJECT(dev));
|
||||
return NULL;
|
||||
}
|
||||
|
@ -35,6 +35,7 @@
|
||||
#include "net/net.h"
|
||||
#include "hw/sysbus.h"
|
||||
#include "hw/block/flash.h"
|
||||
#include "sysemu/block-backend.h"
|
||||
#include "sysemu/blockdev.h"
|
||||
#include "sysemu/char.h"
|
||||
#include "sysemu/device_tree.h"
|
||||
@ -230,7 +231,8 @@ static void lx_init(const LxBoardDesc *board, MachineState *machine)
|
||||
if (dinfo) {
|
||||
flash = pflash_cfi01_register(board->flash_base,
|
||||
NULL, "lx60.io.flash", board->flash_size,
|
||||
dinfo->bdrv, board->flash_sector_size,
|
||||
blk_bs(blk_by_legacy_dinfo(dinfo)),
|
||||
board->flash_sector_size,
|
||||
board->flash_size / board->flash_sector_size,
|
||||
4, 0x0000, 0x0000, 0x0000, 0x0000, be);
|
||||
if (flash == NULL) {
|
||||
|
@ -30,7 +30,6 @@ typedef enum {
|
||||
} BlockInterfaceType;
|
||||
|
||||
struct DriveInfo {
|
||||
BlockDriverState *bdrv;
|
||||
char *id;
|
||||
const char *devaddr;
|
||||
BlockInterfaceType type;
|
||||
|
Loading…
Reference in New Issue
Block a user