aboutsummaryrefslogtreecommitdiff
path: root/include/uapi/linux/vduse.h
diff options
context:
space:
mode:
authorGravatar Xie Yongji <xieyongji@bytedance.com> 2022-08-03 12:55:22 +0800
committerGravatar Michael S. Tsirkin <mst@redhat.com> 2022-08-11 04:26:08 -0400
commit79a463be9e0051997508d52cf411ed5e91d657f6 (patch)
tree7e327e0e4ccd6b416e44fa351e7f61020aa242f4 /include/uapi/linux/vduse.h
parentvduse: Support using userspace pages as bounce buffer (diff)
downloadlinux-79a463be9e0051997508d52cf411ed5e91d657f6.tar.gz
linux-79a463be9e0051997508d52cf411ed5e91d657f6.tar.bz2
linux-79a463be9e0051997508d52cf411ed5e91d657f6.zip
vduse: Support registering userspace memory for IOVA regions
Introduce two ioctls: VDUSE_IOTLB_REG_UMEM and VDUSE_IOTLB_DEREG_UMEM to support registering and de-registering userspace memory for IOVA regions. Now it only supports registering userspace memory for bounce buffer region in virtio-vdpa case. Signed-off-by: Xie Yongji <xieyongji@bytedance.com> Acked-by: Jason Wang <jasowang@redhat.com> Message-Id: <20220803045523.23851-5-xieyongji@bytedance.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Diffstat (limited to 'include/uapi/linux/vduse.h')
-rw-r--r--include/uapi/linux/vduse.h23
1 files changed, 23 insertions, 0 deletions
diff --git a/include/uapi/linux/vduse.h b/include/uapi/linux/vduse.h
index 7cfe1c1280c0..9885e0571f09 100644
--- a/include/uapi/linux/vduse.h
+++ b/include/uapi/linux/vduse.h
@@ -210,6 +210,29 @@ struct vduse_vq_eventfd {
*/
#define VDUSE_VQ_INJECT_IRQ _IOW(VDUSE_BASE, 0x17, __u32)
+/**
+ * struct vduse_iova_umem - userspace memory configuration for one IOVA region
+ * @uaddr: start address of userspace memory, it must be aligned to page size
+ * @iova: start of the IOVA region
+ * @size: size of the IOVA region
+ * @reserved: for future use, needs to be initialized to zero
+ *
+ * Structure used by VDUSE_IOTLB_REG_UMEM and VDUSE_IOTLB_DEREG_UMEM
+ * ioctls to register/de-register userspace memory for IOVA regions
+ */
+struct vduse_iova_umem {
+ __u64 uaddr;
+ __u64 iova;
+ __u64 size;
+ __u64 reserved[3];
+};
+
+/* Register userspace memory for IOVA regions */
+#define VDUSE_IOTLB_REG_UMEM _IOW(VDUSE_BASE, 0x18, struct vduse_iova_umem)
+
+/* De-register the userspace memory. Caller should set iova and size field. */
+#define VDUSE_IOTLB_DEREG_UMEM _IOW(VDUSE_BASE, 0x19, struct vduse_iova_umem)
+
/* The control messages definition for read(2)/write(2) on /dev/vduse/$NAME */
/**