Lines Matching defs:vfio_device

37 struct vfio_device {
41 * mig_ops/log_ops is a static property of the vfio_device which must
42 * be set prior to registering the vfio_device.
74 * debug_root is a static property of the vfio_device
75 * which must be set prior to registering the vfio_device.
110 int (*init)(struct vfio_device *vdev);
111 void (*release)(struct vfio_device *vdev);
112 int (*bind_iommufd)(struct vfio_device *vdev,
114 void (*unbind_iommufd)(struct vfio_device *vdev);
115 int (*attach_ioas)(struct vfio_device *vdev, u32 *pt_id);
116 void (*detach_ioas)(struct vfio_device *vdev);
117 int (*open_device)(struct vfio_device *vdev);
118 void (*close_device)(struct vfio_device *vdev);
119 ssize_t (*read)(struct vfio_device *vdev, char __user *buf,
121 ssize_t (*write)(struct vfio_device *vdev, const char __user *buf,
123 long (*ioctl)(struct vfio_device *vdev, unsigned int cmd,
125 int (*mmap)(struct vfio_device *vdev, struct vm_area_struct *vma);
126 void (*request)(struct vfio_device *vdev, unsigned int count);
127 int (*match)(struct vfio_device *vdev, char *buf);
128 void (*dma_unmap)(struct vfio_device *vdev, u64 iova, u64 length);
129 int (*device_feature)(struct vfio_device *device, u32 flags,
134 struct iommufd_ctx *vfio_iommufd_device_ictx(struct vfio_device *vdev);
135 int vfio_iommufd_get_dev_id(struct vfio_device *vdev, struct iommufd_ctx *ictx);
136 int vfio_iommufd_physical_bind(struct vfio_device *vdev,
138 void vfio_iommufd_physical_unbind(struct vfio_device *vdev);
139 int vfio_iommufd_physical_attach_ioas(struct vfio_device *vdev, u32 *pt_id);
140 void vfio_iommufd_physical_detach_ioas(struct vfio_device *vdev);
141 int vfio_iommufd_emulated_bind(struct vfio_device *vdev,
143 void vfio_iommufd_emulated_unbind(struct vfio_device *vdev);
144 int vfio_iommufd_emulated_attach_ioas(struct vfio_device *vdev, u32 *pt_id);
145 void vfio_iommufd_emulated_detach_ioas(struct vfio_device *vdev);
148 vfio_iommufd_device_ictx(struct vfio_device *vdev)
154 vfio_iommufd_get_dev_id(struct vfio_device *vdev, struct iommufd_ctx *ictx)
160 ((int (*)(struct vfio_device *vdev, struct iommufd_ctx *ictx, \
163 ((void (*)(struct vfio_device *vdev)) NULL)
165 ((int (*)(struct vfio_device *vdev, u32 *pt_id)) NULL)
167 ((void (*)(struct vfio_device *vdev)) NULL)
169 ((int (*)(struct vfio_device *vdev, struct iommufd_ctx *ictx, \
172 ((void (*)(struct vfio_device *vdev)) NULL)
174 ((int (*)(struct vfio_device *vdev, u32 *pt_id)) NULL)
176 ((void (*)(struct vfio_device *vdev)) NULL)
179 static inline bool vfio_device_cdev_opened(struct vfio_device *device)
203 struct vfio_device *device,
205 int (*migration_get_state)(struct vfio_device *device,
207 int (*migration_get_data_size)(struct vfio_device *device,
227 int (*log_start)(struct vfio_device *device,
229 int (*log_stop)(struct vfio_device *device);
230 int (*log_read_and_clear)(struct vfio_device *device,
264 struct vfio_device *_vfio_alloc_device(size_t size, struct device *dev,
273 static inline void vfio_put_device(struct vfio_device *device)
278 int vfio_register_group_dev(struct vfio_device *device);
279 int vfio_register_emulated_iommu_dev(struct vfio_device *device);
280 void vfio_unregister_group_dev(struct vfio_device *device);
282 int vfio_assign_device_set(struct vfio_device *device, void *set_id);
284 struct vfio_device *
288 int vfio_mig_get_next_state(struct vfio_device *device,
303 bool vfio_file_has_dev(struct file *file, struct vfio_device *device);
310 static inline bool vfio_file_has_dev(struct file *file, struct vfio_device *device)
321 int vfio_pin_pages(struct vfio_device *device, dma_addr_t iova,
323 void vfio_unpin_pages(struct vfio_device *device, dma_addr_t iova, int npage);
324 int vfio_dma_rw(struct vfio_device *device, dma_addr_t iova,