New in this version: MemoryRegionOps gained .old_mmio and .old_portio members, which allow reusing old-style callbacks with the new API. All uses were converted, except for eepro100.c, which uses the same MemoryRegionOps for both portio and mmio. Some intermediate patches do introduce dispatching callbacks, but they are removed later. Caveats: - some devices still grab a global memory region instead of inheriting it from their bus. Seen in the code as #include "exec-memory.h" Avi Kivity (58): Hierarchical memory region API memory: implement dirty tracking memory: merge adjacent segments of a single memory region Internal interfaces for memory API memory: abstract address space operations memory: rename MemoryRegion::has_ram_addr to ::terminates memory: late initialization of ram_addr memory: I/O address space support memory: add backward compatibility for old portio registration memory: add backward compatibility for old mmio registration memory: add ioeventfd support exec.c: initialize memory map ioport: register ranges by byte aligned addresses always pc: grab system_memory pc: convert pc_memory_init() to memory API pc: move global memory map out of pc_init1() and into its callers pci: pass address space to pci bus when created pci: add MemoryRegion based BAR management API sysbus: add MemoryRegion based memory management API usb-ohci: convert to MemoryRegion 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 exec.c: fix initialization of system I/O memory region 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: concert 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() Makefile.target | 1 + exec-memory.h | 28 ++ exec.c | 29 ++ hw/ac97.c | 88 +++-- hw/apb_pci.c | 3 + hw/bonito.c | 5 +- hw/cirrus_vga.c | 460 +++++++--------------- 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 | 9 +- hw/gt64xxx.c | 6 +- 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 | 30 +- 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 | 14 +- hw/ne2000.c | 77 +++-- hw/ne2000.h | 8 +- hw/openpic.c | 81 ++-- hw/openpic.h | 2 +- hw/pc.c | 62 ++- hw/pc.h | 11 +- hw/pc_piix.c | 24 +- hw/pci.c | 104 +++--- hw/pci.h | 30 +- hw/pci_host.h | 1 + hw/pci_internals.h | 2 + hw/pcnet-pci.c | 74 +++-- hw/pcnet.h | 4 +- hw/piix_pci.c | 17 +- hw/ppc4xx_pci.c | 6 +- hw/ppc_mac.h | 30 +- hw/ppc_newworld.c | 35 +- hw/ppc_oldworld.c | 28 +- hw/ppc_prep.c | 3 +- hw/ppce500_pci.c | 7 +- hw/prep_pci.c | 9 +- hw/prep_pci.h | 5 +- hw/qxl-render.c | 2 +- hw/qxl.c | 125 +++---- hw/qxl.h | 6 +- hw/rtl8139.c | 70 ++-- hw/sh_pci.c | 6 +- hw/sun4u.c | 53 ++-- hw/sysbus.c | 27 ++- hw/sysbus.h | 3 + hw/unin_pci.c | 18 +- hw/usb-ehci.c | 36 +-- hw/usb-ohci.c | 42 +-- hw/usb-uhci.c | 42 ++- hw/versatile_pci.c | 2 + hw/vga-isa-mm.c | 45 ++- hw/vga-isa.c | 11 +- hw/vga-pci.c | 27 +-- hw/vga.c | 178 +++------ hw/vga_int.h | 19 +- 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 +++-- ioport.c | 4 +- memory.c | 1092 ++++++++++++++++++++++++++++++++++++++++++++++++++++ memory.h | 251 ++++++++++++ 87 files changed, 3205 insertions(+), 2080 deletions(-) create mode 100644 exec-memory.h create mode 100644 memory.c create mode 100644 memory.h -- 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