--- qemu/hw/ide/microdrive.c 2018/04/24 17:40:36 1.1 +++ qemu/hw/ide/microdrive.c 2018/04/24 19:30:28 1.1.1.4 @@ -26,8 +26,6 @@ #include #include #include "block.h" -#include "block_int.h" -#include "sysemu.h" #include "dma.h" #include @@ -532,19 +530,20 @@ static int dscm1xxxx_detach(void *opaque PCMCIACardState *dscm1xxxx_init(DriveInfo *bdrv) { - MicroDriveState *md = (MicroDriveState *) qemu_mallocz(sizeof(MicroDriveState)); + MicroDriveState *md = (MicroDriveState *) g_malloc0(sizeof(MicroDriveState)); md->card.state = md; md->card.attach = dscm1xxxx_attach; md->card.detach = dscm1xxxx_detach; md->card.cis = dscm1xxxx_cis; md->card.cis_len = sizeof(dscm1xxxx_cis); - ide_init2(&md->bus, bdrv, NULL, qemu_allocate_irqs(md_set_irq, md, 1)[0]); - md->bus.ifs[0].is_cf = 1; + ide_init2_with_non_qdev_drives(&md->bus, bdrv, NULL, + qemu_allocate_irqs(md_set_irq, md, 1)[0]); + md->bus.ifs[0].drive_kind = IDE_CFATA; md->bus.ifs[0].mdata_size = METADATA_SIZE; - md->bus.ifs[0].mdata_storage = (uint8_t *) qemu_mallocz(METADATA_SIZE); + md->bus.ifs[0].mdata_storage = (uint8_t *) g_malloc0(METADATA_SIZE); - vmstate_register(-1, &vmstate_microdrive, md); + vmstate_register(NULL, -1, &vmstate_microdrive, md); return &md->card; }