isa_get_irq() takes an ISADevice argument mostly to resolve the ISA bus. Extract the bus logic to isa_bus_get_irq().
Signed-off-by: Philippe Mathieu-Daudé <phi...@redhat.com> --- include/hw/isa/isa.h | 1 + hw/isa/isa-bus.c | 9 +++++++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/include/hw/isa/isa.h b/include/hw/isa/isa.h index ddaae89a853..fd8b84d8007 100644 --- a/include/hw/isa/isa.h +++ b/include/hw/isa/isa.h @@ -91,6 +91,7 @@ struct ISADevice { ISABus *isa_bus_new(DeviceState *dev, MemoryRegion *address_space, MemoryRegion *address_space_io, Error **errp); void isa_bus_irqs(ISABus *bus, qemu_irq *irqs); +qemu_irq isa_bus_get_irq(ISABus *bus, unsigned isairq); qemu_irq isa_get_irq(ISADevice *dev, unsigned isairq); void isa_init_irq(ISADevice *dev, qemu_irq *p, unsigned isairq); void isa_connect_gpio_out(ISADevice *isadev, int gpioirq, unsigned isairq); diff --git a/hw/isa/isa-bus.c b/hw/isa/isa-bus.c index 7820068e6e1..b946e6dc478 100644 --- a/hw/isa/isa-bus.c +++ b/hw/isa/isa-bus.c @@ -75,6 +75,12 @@ void isa_bus_irqs(ISABus *bus, qemu_irq *irqs) bus->irqs = irqs; } +qemu_irq isa_bus_get_irq(ISABus *bus, unsigned isairq) +{ + assert(isairq < ISA_NUM_IRQS); + return bus->irqs[isairq]; +} + /* * isa_get_irq() returns the corresponding qemu_irq entry for the i8259. * @@ -84,8 +90,7 @@ void isa_bus_irqs(ISABus *bus, qemu_irq *irqs) qemu_irq isa_get_irq(ISADevice *dev, unsigned isairq) { assert(!dev || ISA_BUS(qdev_get_parent_bus(DEVICE(dev))) == isabus); - assert(isairq < ISA_NUM_IRQS); - return isabus->irqs[isairq]; + return isa_bus_get_irq(isabus, isairq); } void isa_init_irq(ISADevice *dev, qemu_irq *p, unsigned isairq) -- 2.26.3