qemu-e2k/hw/vfio
Peter Xu cdb3081269 memory: introduce IOMMUNotifier and its caps
IOMMU Notifier list is used for notifying IO address mapping changes.
Currently VFIO is the only user.

However it is possible that future consumer like vhost would like to
only listen to part of its notifications (e.g., cache invalidations).

This patch introduced IOMMUNotifier and IOMMUNotfierFlag bits for a
finer grained control of it.

IOMMUNotifier contains a bitfield for the notify consumer describing
what kind of notification it is interested in. Currently two kinds of
notifications are defined:

- IOMMU_NOTIFIER_MAP:    for newly mapped entries (additions)
- IOMMU_NOTIFIER_UNMAP:  for entries to be removed (cache invalidates)

When registering the IOMMU notifier, we need to specify one or multiple
types of messages to listen to.

When notifications are triggered, its type will be checked against the
notifier's type bits, and only notifiers with registered bits will be
notified.

(For any IOMMU implementation, an in-place mapping change should be
 notified with an UNMAP followed by a MAP.)

Signed-off-by: Peter Xu <peterx@redhat.com>
Message-Id: <1474606948-14391-2-git-send-email-peterx@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2016-09-27 08:59:16 +02:00
..
Makefile.objs vfio: spapr: Add DMA memory preregistering (SPAPR IOMMU v2) 2016-07-05 14:30:54 +10:00
amd-xgbe.c all: Clean up includes 2016-02-23 12:43:05 +00:00
calxeda-xgmac.c hw/vfio: Clean up includes 2016-01-29 15:07:24 +00:00
common.c memory: introduce IOMMUNotifier and its caps 2016-09-27 08:59:16 +02:00
pci-quirks.c vfio/pci: Fix VGA quirks 2016-06-30 13:00:22 -06:00
pci.c vfio/pci: Fix regression in MSI routing configuration 2016-09-15 10:41:36 -06:00
pci.h vfio/pci: Fix VGA quirks 2016-06-30 13:00:22 -06:00
platform.c vfio: Use error_report() instead of error_printf() for errors 2016-08-08 09:01:18 +02:00
spapr.c vfio/spapr: Remove stale ioctl() call 2016-07-18 10:40:27 +10:00
trace-events trace-events: fix first line comment in trace-events 2016-08-12 10:36:01 +01:00