Such internal servers are implemented by a single function that handles
ioreqs inside the hypervisor.
The motivation behind this change is to switch vPCI to become an
internal ioreq server, so that accesses to the PCI config space can be
multiplexed between devices handled by vPCI and devices handled by other
ioreq servers.
The implementation is fairly simple and limited to what's needed by
vPCI, but can be expanded in the future if other more complex users
appear.
The series can also be found at:
git://xenbits.xen.org/people/royger/xen.git ioreq_vpci_v2
Thanks, Roger.
Roger Pau Monne (11):
ioreq: fix hvm_all_ioreq_servers_add_vcpu fail path cleanup
ioreq: terminate cf8 handling at hypervisor level
ioreq: switch selection and forwarding to use ioservid_t
ioreq: add fields to allow internal ioreq servers
ioreq: add internal ioreq initialization support
ioreq: allow dispatching ioreqs to internal servers
ioreq: allow registering internal ioreq server handler
ioreq: allow decoding accesses to MMCFG regions
vpci: register as an internal ioreq server
ioreq: split the code to detect PCI config space accesses
ioreq: provide support for long-running operations...
tools/tests/vpci/Makefile | 5 +-
tools/tests/vpci/emul.h | 4 +
xen/arch/x86/hvm/dm.c | 19 +-
xen/arch/x86/hvm/dom0_build.c | 9 +-
xen/arch/x86/hvm/emulate.c | 14 +-
xen/arch/x86/hvm/hvm.c | 7 +-
xen/arch/x86/hvm/io.c | 248 ++--------------
xen/arch/x86/hvm/ioreq.c | 434 ++++++++++++++++++++--------
xen/arch/x86/hvm/stdvga.c | 8 +-
xen/arch/x86/mm/p2m.c | 20 +-
xen/arch/x86/physdev.c | 6 +-
xen/drivers/passthrough/x86/iommu.c | 2 +-
xen/drivers/vpci/header.c | 61 ++--
xen/drivers/vpci/vpci.c | 75 ++++-
xen/include/asm-x86/hvm/domain.h | 35 ++-
xen/include/asm-x86/hvm/io.h | 29 +-
xen/include/asm-x86/hvm/ioreq.h | 17 +-
xen/include/asm-x86/hvm/vcpu.h | 3 +-
xen/include/asm-x86/p2m.h | 9 +-
xen/include/public/hvm/dm_op.h | 1 +
xen/include/xen/vpci.h | 28 +-
21 files changed, 559 insertions(+), 475 deletions(-)
--
2.22.0
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel