This is a very early preview of phase 2, in which we make the PV backend 
drivers build. Mostly by providing operations tables that can be backed 
either by the true Xen toolstack libraries, or by the internal emulated 
versions. But also a bunch of untangling of headers to keep things sane.

Some parts of it are relatively straightforward; others less so. In
particular, it looks really hard to provide a contiguous virtual mapping
of multiple potentially discontiguous pages granted by the guest. To
fix that we might actually need the guest memory blocks to be backed
by real files (perhaps deleted or shmem) in order that they can be mapped
again in at a different virtual address. So for now we'll limit the
back ends to mapping a single grant ref at a time.

https://git.infradead.org/users/dwmw2/qemu.git/shortlog/refs/heads/xenfv-kvm-backends-1

David Woodhouse (14):
      hw/xen: Add evtchn operations to allow redirection to internal emulation
      hw/xen: Add emulated evtchn ops
      hw/xen: Add gnttab operations to allow redirection to internal emulation
      hw/xen: Pass grant ref to gnttab unmap
      hw/xen: Add foreignmem operations to allow redirection to internal 
emulation
      hw/xen: Move xenstore_store_pv_console_info to xen_console.c
      hw/xen: Use XEN_PAGE_SIZE in PV backend drivers
      hw/xen: Rename xen_common.h to xen_native.h
      hw/xen: Build PV backend drivers for XENFV_MACHINE
      hw/xen: Map guest XENSTORE_PFN grant in emulated Xenstore
      hw/xen: Add backend implementation of grant table operations
      hw/xen: Implement soft reset for emulated gnttab
      hw/xen: Remove old version of Xen headers
      i386/xen: Initialize XenBus and legacy backends from pc_init1()

Paul Durrant (1):
      hw/xen: Add xenstore operations to allow redirection to internal emulation

 accel/xen/xen-all.c                           |   69 +-
 hw/9pfs/meson.build                           |    2 +-
 hw/9pfs/xen-9p-backend.c                      |   32 +-
 hw/9pfs/xen-9pfs.h                            |    4 +-
 hw/block/dataplane/meson.build                |    2 +-
 hw/block/dataplane/xen-block.c                |   12 +-
 hw/block/meson.build                          |    2 +-
 hw/block/xen-block.c                          |    1 -
 hw/block/xen_blkif.h                          |    5 +-
 hw/char/meson.build                           |    2 +-
 hw/char/xen_console.c                         |   59 +-
 hw/display/meson.build                        |    2 +-
 hw/display/xenfb.c                            |   38 +-
 hw/i386/kvm/xen_evtchn.c                      |   15 +
 hw/i386/kvm/xen_gnttab.c                      |  320 +++++++-
 hw/i386/kvm/xen_gnttab.h                      |    1 +
 hw/i386/kvm/xen_xenstore.c                    |   13 +-
 hw/i386/pc_piix.c                             |   17 +
 hw/i386/xen/xen-hvm.c                         |   45 +-
 hw/i386/xen/xen-mapcache.c                    |    2 +-
 hw/i386/xen/xen_platform.c                    |    7 +-
 hw/net/xen_nic.c                              |   27 +-
 hw/usb/meson.build                            |    2 +-
 hw/usb/xen-usb.c                              |   31 +-
 hw/xen/meson.build                            |    6 +-
 hw/xen/trace-events                           |    2 +-
 hw/xen/xen-bus-helper.c                       |   61 +-
 hw/xen/xen-bus.c                              |  394 ++--------
 hw/xen/xen-legacy-backend.c                   |  256 ++-----
 hw/xen/xen-operations.c                       |  487 ++++++++++++
 hw/xen/xen_devconfig.c                        |    4 +-
 hw/xen/xen_pt.c                               |    2 +-
 hw/xen/xen_pt.h                               |    2 +-
 hw/xen/xen_pt_config_init.c                   |    2 +-
 hw/xen/xen_pt_graphics.c                      |    1 -
 hw/xen/xen_pt_msi.c                           |    4 +-
 hw/xen/xen_pvdev.c                            |   63 +-
 include/hw/xen/interface/grant_table.h        |   36 -
 include/hw/xen/interface/io/blkif.h           |  712 -----------------
 include/hw/xen/interface/io/console.h         |   46 --
 include/hw/xen/interface/io/fbif.h            |  156 ----
 include/hw/xen/interface/io/kbdif.h           |  566 --------------
 include/hw/xen/interface/io/netif.h           | 1010 -------------------------
 include/hw/xen/interface/io/protocols.h       |   42 -
 include/hw/xen/interface/io/ring.h            |  474 ------------
 include/hw/xen/interface/io/usbif.h           |  254 -------
 include/hw/xen/interface/io/xenbus.h          |   70 --
 include/hw/xen/xen-bus-helper.h               |   25 +-
 include/hw/xen/xen-bus.h                      |   21 +-
 include/hw/xen/xen-legacy-backend.h           |   24 +-
 include/hw/xen/xen.h                          |   24 +-
 include/hw/xen/xen_backend_ops.h              |  393 ++++++++++
 include/hw/xen/{xen_common.h => xen_native.h} |   75 +-
 include/hw/xen/xen_pvdev.h                    |    6 +-
 softmmu/globals.c                             |    4 +
 target/i386/kvm/xen-emu.c                     |    5 +
 56 files changed, 1651 insertions(+), 4286 deletions(-)




Reply via email to