This is a mostly mindless conversion of all QEMU PCI devices to the memory API. After this patchset is applied, it is no longer possible to create a PCI device using the old API. An immediate benefit is that PCI BARs that overlap each other are now handled correctly: currently, the sequence map BAR 0 map BAR 1 at an overlapping address unmap either BAR 0 or BAR 1 will leave a hole where the overlap exists. With the patchset, the memory map is restored correctly. Note that overlaps of PCI BARs with memory or non-PCI resources are still not resolved correctly; this will be fixed later on. The vga patches have ugly intermediate states; however the result is fairly clean. Changes from v3: - dropped virtio-pci config patch; will be fixed outside this patchset if necessary - minor style fixes Changes from v2: - added patch from Michael simplifying virtio-pci config setup Changes from v1: - cmd646 type fix - folded a fixlet into its parent Avi Kivity (39): memory: rename PORTIO_END to PORTIO_END_OF_LIST pci: add API to get a BAR's mapped address vmsvga: don't remember pci BAR address in callback any more vga: convert vga and its derivatives to the memory API cirrus: simplify mmio BAR access functions cirrus: simplify bitblt BAR access functions cirrus: simplify vga window mmio access functions vga: simplify vga window mmio access functions cirrus: simplify linear framebuffer access functions Integrate I/O memory regions into qemu pci: pass I/O address space to new PCI bus pci: allow I/O BARs to be registered with pci_register_bar_region() rtl8139: convert to memory API ac97: convert to memory API e1000: convert to memory API eepro100: convert to memory API es1370: convert to memory API ide: convert to memory API ivshmem: convert to memory API virtio-pci: convert to memory API ahci: convert to memory API intel-hda: convert to memory API lsi53c895a: convert to memory API ppc: convert to memory API ne2000: convert to memory API pcnet: convert to memory API i6300esb: convert to memory API isa-mmio: convert to memory API sun4u: convert to memory API ehci: convert to memory API uhci: convert to memory API xen-platform: convert to memory API msix: convert to memory API pci: remove pci_register_bar_simple() pci: convert pci rom to memory API pci: remove pci_register_bar() pci: fold BAR mapping function into its caller pci: rename pci_register_bar_region() to pci_register_bar() pci: remove support for pre memory API BARs exec-memory.h | 5 + exec.c | 10 ++ hw/ac97.c | 88 ++++++----- hw/apb_pci.c | 1 + hw/bonito.c | 1 + hw/cirrus_vga.c | 459 ++++++++++++++++----------------------------------- hw/cuda.c | 6 +- hw/e1000.c | 113 ++++++-------- hw/eepro100.c | 181 ++++----------------- hw/es1370.c | 43 +++-- hw/escc.c | 42 +++--- hw/escc.h | 2 +- hw/grackle_pci.c | 8 +- hw/gt64xxx.c | 4 +- hw/heathrow_pic.c | 29 ++-- hw/ide.h | 2 +- hw/ide/ahci.c | 31 ++-- hw/ide/ahci.h | 2 +- hw/ide/cmd646.c | 204 +++++++++++++++--------- hw/ide/ich.c | 3 +- hw/ide/macio.c | 36 +++-- hw/ide/pci.c | 25 ++-- hw/ide/pci.h | 19 ++- hw/ide/piix.c | 63 ++++++-- hw/ide/via.c | 64 ++++++-- hw/intel-hda.c | 35 +++-- hw/isa.h | 2 + hw/isa_mmio.c | 29 ++-- hw/ivshmem.c | 158 +++++++------------ hw/lance.c | 31 ++-- hw/lsi53c895a.c | 257 +++++++----------------------- hw/mac_dbdma.c | 32 ++-- hw/mac_dbdma.h | 4 +- hw/mac_nvram.c | 39 ++--- hw/macio.c | 73 ++++----- hw/msix.c | 64 +++----- hw/msix.h | 6 +- hw/ne2000-isa.c | 13 +-- hw/ne2000.c | 77 ++++++--- hw/ne2000.h | 8 +- hw/openpic.c | 81 +++++----- hw/openpic.h | 2 +- hw/pc.h | 4 +- hw/pc_piix.c | 6 +- hw/pci.c | 133 +++++----------- hw/pci.h | 26 ++-- hw/pci_internals.h | 3 +- hw/pcnet-pci.c | 74 +++++---- hw/pcnet.h | 4 +- hw/piix_pci.c | 14 +- hw/ppc4xx_pci.c | 1 + hw/ppc_mac.h | 27 ++-- hw/ppc_newworld.c | 34 ++-- hw/ppc_oldworld.c | 27 ++-- hw/ppc_prep.c | 2 +- hw/ppce500_pci.c | 7 +- hw/prep_pci.c | 8 +- hw/prep_pci.h | 4 +- hw/qxl-render.c | 2 +- hw/qxl.c | 129 ++++++---------- hw/qxl.h | 6 +- hw/rtl8139.c | 70 ++++---- hw/sh_pci.c | 4 +- hw/sun4u.c | 53 +++---- hw/unin_pci.c | 16 ++- hw/usb-ehci.c | 36 +--- hw/usb-ohci.c | 2 +- hw/usb-uhci.c | 41 +++-- hw/versatile_pci.c | 2 +- hw/vga-isa-mm.c | 46 ++++-- hw/vga-isa.c | 10 +- hw/vga-pci.c | 27 +--- hw/vga.c | 178 +++++++------------- hw/vga_int.h | 18 +-- hw/virtio-pci.c | 86 ++++------ hw/virtio-pci.h | 3 +- hw/vmware_vga.c | 153 +++++++++--------- hw/wdt_i6300esb.c | 43 ++++-- hw/xen_platform.c | 82 ++++++---- memory.h | 2 +- 80 files changed, 1650 insertions(+), 2085 deletions(-) -- 1.7.5.3 -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html