qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [RFC v4 00/58] Memory API
@ 2011-07-17 11:13 Avi Kivity
  2011-07-17 11:13 ` [Qemu-devel] [RFC v4 01/58] Hierarchical memory region API Avi Kivity
                   ` (60 more replies)
  0 siblings, 61 replies; 104+ messages in thread
From: Avi Kivity @ 2011-07-17 11:13 UTC (permalink / raw)
  To: qemu-devel; +Cc: kvm

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

^ permalink raw reply	[flat|nested] 104+ messages in thread

end of thread, other threads:[~2011-07-20 17:31 UTC | newest]

Thread overview: 104+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-07-17 11:13 [Qemu-devel] [RFC v4 00/58] Memory API Avi Kivity
2011-07-17 11:13 ` [Qemu-devel] [RFC v4 01/58] Hierarchical memory region API Avi Kivity
2011-07-17 11:13 ` [Qemu-devel] [RFC v4 02/58] memory: implement dirty tracking Avi Kivity
2011-07-17 11:13 ` [Qemu-devel] [RFC v4 03/58] memory: merge adjacent segments of a single memory region Avi Kivity
2011-07-17 11:13 ` [Qemu-devel] [RFC v4 04/58] Internal interfaces for memory API Avi Kivity
2011-07-17 11:13 ` [Qemu-devel] [RFC v4 05/58] memory: abstract address space operations Avi Kivity
2011-07-17 11:13 ` [Qemu-devel] [RFC v4 06/58] memory: rename MemoryRegion::has_ram_addr to ::terminates Avi Kivity
2011-07-17 11:13 ` [Qemu-devel] [RFC v4 07/58] memory: late initialization of ram_addr Avi Kivity
2011-07-17 11:13 ` [Qemu-devel] [RFC v4 08/58] memory: I/O address space support Avi Kivity
2011-07-17 11:13 ` [Qemu-devel] [RFC v4 09/58] memory: add backward compatibility for old portio registration Avi Kivity
2011-07-17 11:13 ` [Qemu-devel] [RFC v4 10/58] memory: add backward compatibility for old mmio registration Avi Kivity
2011-07-17 11:13 ` [Qemu-devel] [RFC v4 11/58] memory: add ioeventfd support Avi Kivity
2011-07-20 17:29   ` Blue Swirl
2011-07-20 17:31     ` Avi Kivity
2011-07-17 11:13 ` [Qemu-devel] [RFC v4 12/58] exec.c: initialize memory map Avi Kivity
2011-07-17 11:13 ` [Qemu-devel] [RFC v4 13/58] ioport: register ranges by byte aligned addresses always Avi Kivity
2011-07-17 11:13 ` [Qemu-devel] [RFC v4 14/58] pc: grab system_memory Avi Kivity
2011-07-17 11:13 ` [Qemu-devel] [RFC v4 15/58] pc: convert pc_memory_init() to memory API Avi Kivity
2011-07-17 11:13 ` [Qemu-devel] [RFC v4 16/58] pc: move global memory map out of pc_init1() and into its callers Avi Kivity
2011-07-17 11:13 ` [Qemu-devel] [RFC v4 17/58] pci: pass address space to pci bus when created Avi Kivity
2011-07-17 11:13 ` [Qemu-devel] [RFC v4 18/58] pci: add MemoryRegion based BAR management API Avi Kivity
2011-07-17 11:13 ` [Qemu-devel] [RFC v4 19/58] sysbus: add MemoryRegion based memory " Avi Kivity
2011-07-17 11:13 ` [Qemu-devel] [RFC v4 20/58] usb-ohci: convert to MemoryRegion Avi Kivity
2011-07-17 11:13 ` [Qemu-devel] [RFC v4 21/58] pci: add API to get a BAR's mapped address Avi Kivity
2011-07-17 11:13 ` [Qemu-devel] [RFC v4 22/58] vmsvga: don't remember pci BAR address in callback any more Avi Kivity
2011-07-17 11:13 ` [Qemu-devel] [RFC v4 23/58] vga: convert vga and its derivatives to the memory API Avi Kivity
2011-07-20 14:05   ` Jan Kiszka
2011-07-20 14:40     ` Avi Kivity
2011-07-20 14:45       ` Jan Kiszka
2011-07-20 14:48         ` Avi Kivity
2011-07-20 14:52           ` Jan Kiszka
2011-07-20 14:55             ` Avi Kivity
2011-07-17 11:13 ` [Qemu-devel] [RFC v4 24/58] cirrus: simplify mmio BAR access functions Avi Kivity
2011-07-17 11:13 ` [Qemu-devel] [RFC v4 25/58] cirrus: simplify bitblt " Avi Kivity
2011-07-17 11:13 ` [Qemu-devel] [RFC v4 26/58] cirrus: simplify vga window mmio " Avi Kivity
2011-07-17 11:13 ` [Qemu-devel] [RFC v4 27/58] vga: " Avi Kivity
2011-07-17 11:13 ` [Qemu-devel] [RFC v4 28/58] cirrus: simplify linear framebuffer " Avi Kivity
2011-07-17 11:13 ` [Qemu-devel] [RFC v4 29/58] Integrate I/O memory regions into qemu Avi Kivity
2011-07-17 11:13 ` [Qemu-devel] [RFC v4 30/58] exec.c: fix initialization of system I/O memory region Avi Kivity
2011-07-17 11:13 ` [Qemu-devel] [RFC v4 31/58] pci: pass I/O address space to new PCI bus Avi Kivity
2011-07-17 11:13 ` [Qemu-devel] [RFC v4 32/58] pci: allow I/O BARs to be registered with pci_register_bar_region() Avi Kivity
2011-07-17 11:14 ` [Qemu-devel] [RFC v4 33/58] rtl8139: convert to memory API Avi Kivity
2011-07-17 11:14 ` [Qemu-devel] [RFC v4 34/58] ac97: " Avi Kivity
2011-07-17 11:14 ` [Qemu-devel] [RFC v4 35/58] e1000: " Avi Kivity
2011-07-17 11:14 ` [Qemu-devel] [RFC v4 36/58] eepro100: " Avi Kivity
2011-07-17 11:14 ` [Qemu-devel] [RFC v4 37/58] es1370: " Avi Kivity
2011-07-17 11:14 ` [Qemu-devel] [RFC v4 38/58] ide: " Avi Kivity
2011-07-17 11:14 ` [Qemu-devel] [RFC v4 39/58] ivshmem: " Avi Kivity
2011-07-17 11:14 ` [Qemu-devel] [RFC v4 40/58] virtio-pci: " Avi Kivity
2011-07-17 11:14 ` [Qemu-devel] [RFC v4 41/58] ahci: " Avi Kivity
2011-07-17 11:14 ` [Qemu-devel] [RFC v4 42/58] intel-hda: " Avi Kivity
2011-07-17 11:14 ` [Qemu-devel] [RFC v4 43/58] lsi53c895a: " Avi Kivity
2011-07-17 11:14 ` [Qemu-devel] [RFC v4 44/58] ppc: " Avi Kivity
2011-07-17 11:14 ` [Qemu-devel] [RFC v4 45/58] ne2000: " Avi Kivity
2011-07-17 11:14 ` [Qemu-devel] [RFC v4 46/58] pcnet: " Avi Kivity
2011-07-17 11:14 ` [Qemu-devel] [RFC v4 47/58] i6300esb: " Avi Kivity
2011-07-17 11:14 ` [Qemu-devel] [RFC v4 48/58] isa-mmio: concert " Avi Kivity
2011-07-17 11:14 ` [Qemu-devel] [RFC v4 49/58] sun4u: convert " Avi Kivity
2011-07-17 11:14 ` [Qemu-devel] [RFC v4 50/58] ehci: " Avi Kivity
2011-07-17 11:14 ` [Qemu-devel] [RFC v4 51/58] uhci: " Avi Kivity
2011-07-17 11:14 ` [Qemu-devel] [RFC v4 52/58] xen-platform: " Avi Kivity
2011-07-17 11:14 ` [Qemu-devel] [RFC v4 53/58] msix: " Avi Kivity
2011-07-17 11:14 ` [Qemu-devel] [RFC v4 54/58] pci: remove pci_register_bar_simple() Avi Kivity
2011-07-17 11:14 ` [Qemu-devel] [RFC v4 55/58] pci: convert pci rom to memory API Avi Kivity
2011-07-17 11:14 ` [Qemu-devel] [RFC v4 56/58] pci: remove pci_register_bar() Avi Kivity
2011-07-17 11:14 ` [Qemu-devel] [RFC v4 57/58] pci: fold BAR mapping function into its caller Avi Kivity
2011-07-17 11:14 ` [Qemu-devel] [RFC v4 58/58] pci: rename pci_register_bar_region() to pci_register_bar() Avi Kivity
2011-07-19 13:09 ` [Qemu-devel] [RFC v4 00/58] Memory API Anthony Liguori
2011-07-19 13:27   ` Avi Kivity
2011-07-19 14:50     ` Anthony Liguori
2011-07-19 16:05       ` Avi Kivity
2011-07-19 16:10         ` Avi Kivity
2011-07-19 20:51           ` Anthony Liguori
2011-07-19 21:03             ` Sasha Levin
2011-07-20  2:53               ` Anthony Liguori
2011-07-20  6:10                 ` Sasha Levin
2011-07-20  8:12                   ` Avi Kivity
2011-07-20 12:12                   ` Anthony Liguori
2011-07-20  8:10             ` Avi Kivity
2011-07-20 14:31               ` Anthony Liguori
2011-07-20 14:45                 ` Avi Kivity
2011-07-19 13:56 ` Michael S. Tsirkin
2011-07-19 13:57   ` Avi Kivity
2011-07-19 17:01   ` Jan Kiszka
2011-07-19 17:14     ` Avi Kivity
2011-07-19 17:30       ` Jan Kiszka
2011-07-20  8:13         ` Avi Kivity
2011-07-20 11:20           ` Jan Kiszka
2011-07-20 11:59             ` Avi Kivity
2011-07-20 11:43           ` Jan Kiszka
2011-07-20 11:57             ` Avi Kivity
2011-07-20 13:57               ` Jan Kiszka
2011-07-20 14:32                 ` Avi Kivity
2011-07-20 14:37                   ` Michael S. Tsirkin
2011-07-20 14:42                     ` Jan Kiszka
2011-07-20 14:54                     ` Avi Kivity
2011-07-20 15:58                       ` Jan Kiszka
2011-07-20 16:02                         ` Avi Kivity
2011-07-20 16:13                           ` Jan Kiszka
2011-07-20 16:19                             ` Avi Kivity
2011-07-20 16:10                       ` Michael S. Tsirkin
2011-07-20 16:52                         ` Avi Kivity
2011-07-20 17:06                           ` Michael S. Tsirkin
2011-07-20 16:53 ` Avi Kivity

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).