Signed-off-by: Andreas Färber <andreas.faer...@web.de> --- hw/ide/core.c | 8 ++++++++ hw/ide/internal.h | 1 + 2 files changed, 9 insertions(+), 0 deletions(-)
diff --git a/hw/ide/core.c b/hw/ide/core.c index 45410e8..c3b82de 100644 --- a/hw/ide/core.c +++ b/hw/ide/core.c @@ -1760,6 +1760,14 @@ void ide_init_ioport(IDEBus *bus, int iobase, int iobase2) register_ioport_read(iobase, 4, 4, ide_data_readl, bus); } +void ide_discard_ioport(int iobase, int iobase2) +{ + isa_unassign_ioport(iobase, 8); + if (iobase2 != 0) { + isa_unassign_ioport(iobase2, 1); + } +} + static bool is_identify_set(void *opaque, int version_id) { IDEState *s = opaque; diff --git a/hw/ide/internal.h b/hw/ide/internal.h index c2b35ec..dc0a2c9 100644 --- a/hw/ide/internal.h +++ b/hw/ide/internal.h @@ -564,6 +564,7 @@ void ide_init2(IDEBus *bus, qemu_irq irq); void ide_init2_with_non_qdev_drives(IDEBus *bus, DriveInfo *hd0, DriveInfo *hd1, qemu_irq irq); void ide_init_ioport(IDEBus *bus, int iobase, int iobase2); +void ide_discard_ioport(int iobase, int iobase2); void ide_exec_cmd(IDEBus *bus, uint32_t val); void ide_dma_cb(void *opaque, int ret); -- 1.7.5.3