static void ebus_mmio_mapfunc(PCIDevice *pci_dev, int region_num, pcibus_t addr, pcibus_t size, int type) { EBUS_DPRINTF("Mapping region %d registers at %" FMT_PCIBUS "\n", region_num, addr); switch (region_num) { case 0: isa_mmio_init(addr, 0x1000000); break; case 1: isa_mmio_init(addr, 0x800000); break; } }
static void isa_irq_handler(void *opaque, int n, int level) { static const int isa_irq_to_ivec[16] = { [1] = 0x29, /* keyboard */ [4] = 0x2b, /* serial */ [6] = 0x27, /* floppy */ [7] = 0x22, /* parallel */ [12] = 0x2a, /* mouse */ }; qemu_irq *irqs = opaque; int ivec; assert(n < 16); ivec = isa_irq_to_ivec[n]; EBUS_DPRINTF("Set ISA IRQ %d level %d -> ivec 0x%x\n", n, level, ivec); if (ivec) { qemu_set_irq(irqs[ivec], level); } }