summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorAndy Lutomirski <luto@kernel.org>2016-02-02 21:46:36 -0800
committerAlistair Strachan <astrachan@google.com>2019-01-16 12:43:19 -0800
commit6bb68f96a00a13a71c3fa8c77aa0609a6b31dc2e (patch)
treedfafe48ff40cf0918904da4ec66427525e96b57a /tools
parentdbe5b486ca9a7f537c0dc5bfe9f875948b43e91b (diff)
UPSTREAM: virtio_ring: Support DMA APIs
virtio_ring currently sends the device (usually a hypervisor) physical addresses of its I/O buffers. This is okay when DMA addresses and physical addresses are the same thing, but this isn't always the case. For example, this never works on Xen guests, and it is likely to fail if a physical "virtio" device ever ends up behind an IOMMU or swiotlb. The immediate use case for me is to enable virtio on Xen guests. For that to work, we need vring to support DMA address translation as well as a corresponding change to virtio_pci or to another driver. Signed-off-by: Andy Lutomirski <luto@kernel.org> Signed-off-by: Michael S. Tsirkin <mst@redhat.com> (cherry picked from commit 780bc7903a32edb63be138487fd981694d993610) Bug: 121166534 Test: Ran cuttlefish with android-4.4 + VSOCKETS, VMWARE_VMCI_VSOCKETS Signed-off-by: Alistair Strachan <astrachan@google.com> Change-Id: I0b21ea8a054df791fe114a10701a1120341806ce
Diffstat (limited to 'tools')
-rw-r--r--tools/virtio/linux/dma-mapping.h17
1 files changed, 17 insertions, 0 deletions
diff --git a/tools/virtio/linux/dma-mapping.h b/tools/virtio/linux/dma-mapping.h
new file mode 100644
index 000000000000..4f93af89ae16
--- /dev/null
+++ b/tools/virtio/linux/dma-mapping.h
@@ -0,0 +1,17 @@
+#ifndef _LINUX_DMA_MAPPING_H
+#define _LINUX_DMA_MAPPING_H
+
+#ifdef CONFIG_HAS_DMA
+# error Virtio userspace code does not support CONFIG_HAS_DMA
+#endif
+
+#define PCI_DMA_BUS_IS_PHYS 1
+
+enum dma_data_direction {
+ DMA_BIDIRECTIONAL = 0,
+ DMA_TO_DEVICE = 1,
+ DMA_FROM_DEVICE = 2,
+ DMA_NONE = 3,
+};
+
+#endif