This patch series include two patches:
1/2 is the implementation of the hostdev passthrough common library.
To meet two purposes:
a. move qemu hostdev APIs to common library so that it could be used by all
hypervisor drivers.
b. maintain a global hostdev in-use state.
2/2 is the implementation of pci passthrough to libxl driver.
Using common library APIs to implement pci passthrough for libxl driver.
(Changes to qemu/lxc driver are not included yet. That could be done after common
library is confirmed.)
Changes to v1:
1/2:
* add scsi part to common library
* instead of hardcode, check for <driver name='kvm/vfio/xen'/> setting,
call
virPCIDeviceSetStubDriver to set stub driver. For libxl driver, a <driver
name='xen' /> is needed.
* rebase to current libvirt changes
2/2:
* Add device-attach/detach a pci hostdev implementataion to libxl driver
Chunyan Liu (2):
add hostdev passthrough common library
add pci passthrough impl to libxl
po/POTFILES.in | 1 +
src/Makefile.am | 1 +
src/conf/domain_conf.c | 3 +-
src/conf/domain_conf.h | 1 +
src/libvirt.c | 5 +
src/libvirt_private.syms | 22 +-
src/libxl/libxl_conf.c | 106 +++
src/libxl/libxl_conf.h | 3 +-
src/libxl/libxl_driver.c | 250 +++++++-
src/util/virhostdevmanager.c | 1486 ++++++++++++++++++++++++++++++++++++++++++
src/util/virhostdevmanager.h | 109 +++
src/util/virpci.c | 17 +-
src/util/virpci.h | 7 +-
src/util/virscsi.c | 18 +-
src/util/virscsi.h | 4 +-
src/util/virusb.c | 19 +-
src/util/virusb.h | 4 +-
17 files changed, 2026 insertions(+), 30 deletions(-)
create mode 100644 src/util/virhostdevmanager.c
create mode 100644 src/util/virhostdevmanager.h