qemu/hw/virtio
Eric Auger cfb42188b2 virtio-iommu: Implement attach/detach command
This patch implements the endpoint attach/detach to/from
a domain.

Domain and endpoint internal datatypes are introduced.
Both are stored in RB trees. The domain owns a list of
endpoints attached to it. Also helpers to get/put
end points and domains are introduced.

As for the IOMMU memory regions, a callback is called on
PCI bus enumeration that initializes for a given device
on the bus hierarchy an IOMMU memory region. The PCI bus
hierarchy is stored locally in IOMMUPciBus and IOMMUDevice
objects.

At the time of the enumeration, the bus number may not be
computed yet.

So operations that will need to retrieve the IOMMUdevice
and its IOMMU memory region from the bus number and devfn,
once the bus number is garanteed to be frozen, use an array
of IOMMUPciBus, lazily populated.

Signed-off-by: Eric Auger <eric.auger@redhat.com>
Reviewed-by: Peter Xu <peterx@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>

Message-Id: <20200214132745.23392-4-eric.auger@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
2020-02-27 03:46:10 -05:00
..
Kconfig virtio-iommu: Add skeleton 2020-02-27 03:46:10 -05:00
Makefile.objs virtio-iommu: Add skeleton 2020-02-27 03:46:10 -05:00
trace-events virtio-iommu: Implement attach/detach command 2020-02-27 03:46:10 -05:00
vhost-backend.c Include qemu/main-loop.h less 2019-08-16 13:31:52 +02:00
vhost-scsi-pci.c qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
vhost-stub.c vhost-user: simplify vhost_user_init/vhost_user_cleanup 2019-03-12 21:22:31 -04:00
vhost-user-blk-pci.c qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
vhost-user-fs-pci.c qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
vhost-user-fs.c vhost-user-fs: convert to the new virtio_delete_queue function 2020-02-25 08:32:45 -05:00
vhost-user-input-pci.c Add vhost-user-input-pci 2019-05-10 14:52:47 +02:00
vhost-user-scsi-pci.c qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
vhost-user.c vhost-user: Print unexpected slave message types 2020-01-23 16:41:37 +00:00
vhost-vsock-pci.c qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
vhost-vsock.c * Register qdev properties as class properties (Marc-André) 2020-01-27 09:44:04 +00:00
vhost.c vhost: coding style fix 2020-01-23 02:08:15 -05:00
virtio-9p-pci.c qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
virtio-balloon-pci.c qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
virtio-balloon.c qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
virtio-blk-pci.c qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
virtio-bus.c virtio: notify virtqueue via host notifier when available 2019-11-06 06:35:00 -05:00
virtio-crypto-pci.c qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
virtio-crypto.c virtio-crypto: do delete ctrl_vq in virtio_crypto_device_unrealize 2020-02-25 08:32:45 -05:00
virtio-input-host-pci.c Include qemu/module.h where needed, drop it from qemu-common.h 2019-06-12 13:18:33 +02:00
virtio-input-pci.c qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
virtio-iommu.c virtio-iommu: Implement attach/detach command 2020-02-27 03:46:10 -05:00
virtio-mmio.c qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
virtio-net-pci.c qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
virtio-pci.c qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
virtio-pci.h virtio-pci: Add Function Level Reset support 2019-09-04 06:33:10 -04:00
virtio-pmem-pci.c virtio pmem: remove transitional names 2019-07-12 10:57:27 -04:00
virtio-pmem-pci.h virtio-pci: Proxy for virtio-pmem 2019-07-04 17:00:32 -04:00
virtio-pmem.c virtio-pmem: do delete rq_vq in virtio_pmem_unrealize 2020-02-25 08:32:45 -05:00
virtio-rng-pci.c Include qemu/module.h where needed, drop it from qemu-common.h 2019-06-12 13:18:33 +02:00
virtio-rng.c qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
virtio-scsi-pci.c qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
virtio-serial-pci.c qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
virtio.c virtio: gracefully handle invalid region caches 2020-02-27 03:45:54 -05:00