These patches implements a separate module for hostdev passthrough so that it
could be shared by different drivers and can maintain a global state of a host
device.
patch 1/6: extract hostdev passthrough function from qemu_hostdev.c and make it
reusable by multiple drivers.
patch 2/6: switch qemu driver to use the common library instead of its own
hostdev passthrough APIs.
patch 3/6: switch lxc driver to use the common library instead of its own
hostdev passthrough APIs.
patch 4/6: add a unit test for hostdev common library, based on virpcimock.
patch 5/6: add a hostdev pci backend type for xen usage. For xen, the default
stub driver would be 'pciback'.
patch 6/6: add pci passthrough to libxl driver.
---
Changes:
* fix v6 comments
* rebase to latest source code
* add unit test for hostdev common library
Chunyan Liu (6):
add hostdev passthrough common library
change qemu driver to use hostdev common library
change lxc driver to use hostdev common library
add unit test for hostdev common library
add hostdev pci backend type for xen
add pci passthrough to libxl driver
docs/schemas/domaincommon.rng | 1 +
po/POTFILES.in | 3 +-
src/Makefile.am | 3 +-
src/conf/domain_conf.c | 3 +-
src/conf/domain_conf.h | 1 +
src/libvirt_private.syms | 21 +
src/libxl/libxl_conf.c | 63 ++
src/libxl/libxl_conf.h | 4 +
src/libxl/libxl_domain.c | 9 +
src/libxl/libxl_driver.c | 448 +++++++++++-
src/lxc/lxc_conf.h | 4 -
src/lxc/lxc_driver.c | 47 +-
src/lxc/lxc_hostdev.c | 413 ----------
src/lxc/lxc_hostdev.h | 43 -
src/lxc/lxc_process.c | 24 +-
src/qemu/qemu_command.c | 4 +-
src/qemu/qemu_conf.h | 9 +-
src/qemu/qemu_domain.c | 22 +
src/qemu/qemu_driver.c | 81 +--
src/qemu/qemu_hostdev.c | 1454 -----------------------------------
src/qemu/qemu_hostdev.h | 76 --
src/qemu/qemu_hotplug.c | 136 ++--
src/qemu/qemu_process.c | 40 +-
src/util/virhostdev.c | 1703 +++++++++++++++++++++++++++++++++++++++++
src/util/virhostdev.h | 134 ++++
src/util/virpci.c | 30 +-
src/util/virpci.h | 9 +-
src/util/virscsi.c | 28 +-
src/util/virscsi.h | 8 +-
src/util/virusb.c | 29 +-
src/util/virusb.h | 8 +-
tests/Makefile.am | 5 +
tests/virhostdevtest.c | 481 ++++++++++++
tests/virpcimock.c | 45 ++-
34 files changed, 3177 insertions(+), 2212 deletions(-)
delete mode 100644 src/lxc/lxc_hostdev.c
delete mode 100644 src/lxc/lxc_hostdev.h
delete mode 100644 src/qemu/qemu_hostdev.c
delete mode 100644 src/qemu/qemu_hostdev.h
create mode 100644 src/util/virhostdev.c
create mode 100644 src/util/virhostdev.h
create mode 100644 tests/virhostdevtest.c