Here we defined a new ioctl to create a fd for a vfio device based on the input type. Now only one type is supported that is a dma-buf management fd. Two ioctls are defined for the dma-buf management fd: query the vfio vgpu's plane information and create a dma-buf for a plane. Signed-off-by: Xiaoguang Chen <xiaoguang.chen@xxxxxxxxx> --- include/uapi/linux/vfio.h | 50 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) diff --git a/include/uapi/linux/vfio.h b/include/uapi/linux/vfio.h index ae46105..308e7a2 100644 --- a/include/uapi/linux/vfio.h +++ b/include/uapi/linux/vfio.h @@ -502,6 +502,56 @@ struct vfio_pci_hot_reset { #define VFIO_DEVICE_PCI_HOT_RESET _IO(VFIO_TYPE, VFIO_BASE + 13) +/** + * VFIO_DEVICE_GET_FD - _IO(VFIO_TYPE, VFIO_BASE + 14, __u32) + * + * Create a fd for a vfio device based on the input type + * Vendor driver should handle this ioctl to create a fd and manage the + * life cycle of this fd. + * + * Return: a fd if vendor support that type, -errno if not supported + */ + +#define VFIO_DEVICE_GET_FD _IO(VFIO_TYPE, VFIO_BASE + 14) + +#define VFIO_DEVICE_DMABUF_MGR_FD 0 /* Supported fd types */ + +/* + * VFIO_DEVICE_QUERY_PLANE - _IO(VFIO_TYPE, VFIO_BASE + 15, struct plane_info) + * Query plane information for a plane + */ +struct vfio_vgpu_plane_info { + __u32 argsz; + __u32 flags; + __u32 plane_id; + __u32 drm_format; + __u32 width; + __u32 height; + __u32 stride; + __u32 start; + __u32 x_pos; + __u32 y_pos; + __u64 drm_format_mod; + __u32 size; + __u32 pad; +}; + +#define VFIO_DEVICE_QUERY_PLANE _IO(VFIO_TYPE, VFIO_BASE + 15) + +/* + * VFIO_DEVICE_CREATE_DMABUF - _IO(VFIO, VFIO_BASE + 16, struct dmabuf_info) + * + * Create a dma-buf for a plane + */ +struct vfio_vgpu_dmabuf_info { + __u32 argsz; + __u32 flags; + struct vfio_vgpu_plane_info plane_info; + __s32 fd; + __u32 pad; +}; +#define VFIO_DEVICE_CREATE_DMABUF _IO(VFIO_TYPE, VFIO_BASE + 16) + /* -------- API for Type1 VFIO IOMMU -------- */ /** -- 2.7.4 _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx