| /linux-6.15/include/linux/ |
| H A D | iommufd.h | 23 struct iommufd_ctx; 83 iommufd_access_create(struct iommufd_ctx *ictx, 90 void iommufd_ctx_get(struct iommufd_ctx *ictx); 94 struct iommufd_ctx *ictx; 134 struct iommufd_ctx *iommufd_ctx_from_file(struct file *file); 135 struct iommufd_ctx *iommufd_ctx_from_fd(int fd); 136 void iommufd_ctx_put(struct iommufd_ctx *ictx); 147 int iommufd_vfio_compat_ioas_create(struct iommufd_ctx *ictx); 148 int iommufd_vfio_compat_set_no_iommu(struct iommufd_ctx *ictx); 155 static inline void iommufd_ctx_put(struct iommufd_ctx *ictx) in iommufd_ctx_put() [all …]
|
| H A D | vfio.h | 21 struct iommufd_ctx; 117 struct iommufd_ctx *ictx, u32 *out_device_id); 141 struct iommufd_ctx *vfio_iommufd_device_ictx(struct vfio_device *vdev); 142 int vfio_iommufd_get_dev_id(struct vfio_device *vdev, struct iommufd_ctx *ictx); 144 struct iommufd_ctx *ictx, u32 *out_device_id); 153 struct iommufd_ctx *ictx, u32 *out_device_id); 158 static inline struct iommufd_ctx * 165 vfio_iommufd_get_dev_id(struct vfio_device *vdev, struct iommufd_ctx *ictx) in vfio_iommufd_get_dev_id() 171 ((int (*)(struct vfio_device *vdev, struct iommufd_ctx *ictx, \ 184 ((int (*)(struct vfio_device *vdev, struct iommufd_ctx *ictx, \
|
| H A D | iommu.h | 46 struct iommufd_ctx; 665 struct iommufd_ctx *ictx, unsigned int viommu_type);
|
| /linux-6.15/drivers/iommu/iommufd/ |
| H A D | iommufd_private.h | 36 int iommufd_sw_msi_install(struct iommufd_ctx *ictx, 41 struct iommufd_ctx { struct 134 struct iommufd_ctx *ictx; 186 void iommufd_object_finalize(struct iommufd_ctx *ictx, 192 int iommufd_object_remove(struct iommufd_ctx *ictx, 286 struct iommufd_ctx *ictx); 408 struct iommufd_ctx *ictx; 422 struct iommufd_ctx *ictx; 446 struct iommufd_ctx *ictx; 464 struct iommufd_ctx *ictx; [all …]
|
| H A D | main.c | 41 void iommufd_object_finalize(struct iommufd_ctx *ictx, in iommufd_object_finalize() 71 void iommufd_object_abort_and_destroy(struct iommufd_ctx *ictx, in iommufd_object_abort_and_destroy() 119 int iommufd_object_remove(struct iommufd_ctx *ictx, in iommufd_object_remove() 209 struct iommufd_ctx *ictx; in iommufd_fops_open() 238 struct iommufd_ctx *ictx = filp->private_data; in iommufd_fops_release() 390 struct iommufd_ctx *ictx = filp->private_data; in iommufd_fops_ioctl() 436 void iommufd_ctx_get(struct iommufd_ctx *ictx) in iommufd_ctx_get() 450 struct iommufd_ctx *iommufd_ctx_from_file(struct file *file) in iommufd_ctx_from_file() 452 struct iommufd_ctx *ictx; in iommufd_ctx_from_file() 469 struct iommufd_ctx *iommufd_ctx_from_fd(int fd) in iommufd_ctx_from_fd() [all …]
|
| H A D | vfio_compat.c | 15 static struct iommufd_ioas *get_compat_ioas(struct iommufd_ctx *ictx) in get_compat_ioas() 36 int iommufd_vfio_compat_ioas_get_id(struct iommufd_ctx *ictx, u32 *out_ioas_id) in iommufd_vfio_compat_ioas_get_id() 55 int iommufd_vfio_compat_set_no_iommu(struct iommufd_ctx *ictx) in iommufd_vfio_compat_set_no_iommu() 80 int iommufd_vfio_compat_ioas_create(struct iommufd_ctx *ictx) in iommufd_vfio_compat_ioas_create() 159 static int iommufd_vfio_map_dma(struct iommufd_ctx *ictx, unsigned int cmd, in iommufd_vfio_map_dma() 197 static int iommufd_vfio_unmap_dma(struct iommufd_ctx *ictx, unsigned int cmd, in iommufd_vfio_unmap_dma() 256 static int iommufd_vfio_cc_iommu(struct iommufd_ctx *ictx) in iommufd_vfio_cc_iommu() 279 static int iommufd_vfio_check_extension(struct iommufd_ctx *ictx, in iommufd_vfio_check_extension() 310 static int iommufd_vfio_set_iommu(struct iommufd_ctx *ictx, unsigned long type) in iommufd_vfio_set_iommu() 434 static int iommufd_vfio_iommu_get_info(struct iommufd_ctx *ictx, in iommufd_vfio_iommu_get_info() [all …]
|
| H A D | driver.c | 6 struct iommufd_object *_iommufd_object_alloc(struct iommufd_ctx *ictx, in _iommufd_object_alloc() 132 iommufd_sw_msi_get_map(struct iommufd_ctx *ictx, phys_addr_t msi_addr, in iommufd_sw_msi_get_map() 164 int iommufd_sw_msi_install(struct iommufd_ctx *ictx, in iommufd_sw_msi_install() 202 struct iommufd_ctx *ictx; in iommufd_sw_msi()
|
| H A D | ioas.c | 24 struct iommufd_ioas *iommufd_ioas_alloc(struct iommufd_ctx *ictx) in iommufd_ioas_alloc() 380 static void iommufd_release_all_iova_rwsem(struct iommufd_ctx *ictx, in iommufd_release_all_iova_rwsem() 394 static int iommufd_take_all_iova_rwsem(struct iommufd_ctx *ictx, in iommufd_take_all_iova_rwsem() 522 struct iommufd_ctx *ictx = ucmd->ictx; in iommufd_ioas_change_process() 590 struct iommufd_ctx *ictx) in iommufd_option_rlimit_mode()
|
| H A D | device.c | 66 static struct iommufd_group *iommufd_get_group(struct iommufd_ctx *ictx, in iommufd_get_group() 167 struct iommufd_device *iommufd_device_bind(struct iommufd_ctx *ictx, in iommufd_device_bind() 253 bool iommufd_ctx_has_group(struct iommufd_ctx *ictx, struct iommu_group *group) in iommufd_ctx_has_group() 290 struct iommufd_ctx *iommufd_device_to_ictx(struct iommufd_device *idev) in iommufd_device_to_ictx() 323 struct iommufd_ctx *ictx = igroup->ictx; in iommufd_group_setup_msi() 1106 iommufd_access_create(struct iommufd_ctx *ictx, in iommufd_access_create()
|
| H A D | hw_pagetable.c | 108 iommufd_hwpt_paging_alloc(struct iommufd_ctx *ictx, struct iommufd_ioas *ioas, in iommufd_hwpt_paging_alloc() 227 iommufd_hwpt_nested_alloc(struct iommufd_ctx *ictx, in iommufd_hwpt_nested_alloc()
|
| H A D | io_pagetable.c | 394 static int iopt_map_common(struct iommufd_ctx *ictx, struct io_pagetable *iopt, in iopt_map_common() 441 int iopt_map_user_pages(struct iommufd_ctx *ictx, struct io_pagetable *iopt, in iopt_map_user_pages() 468 int iopt_map_file_pages(struct iommufd_ctx *ictx, struct io_pagetable *iopt, in iopt_map_file_pages()
|
| H A D | selftest.c | 185 struct iommufd_ctx *ictx; 738 struct iommufd_ctx *ictx, in mock_viommu_alloc() 1029 iommufd_test_get_selftest_obj(struct iommufd_ctx *ictx, u32 id) in iommufd_test_get_selftest_obj()
|
| H A D | eventq.c | 438 struct iommufd_ctx *ictx, in iommufd_eventq_init()
|
| /linux-6.15/drivers/vfio/ |
| H A D | iommufd.c | 14 struct iommufd_ctx *ictx) in vfio_iommufd_device_has_compat_ioas() 24 struct iommufd_ctx *ictx = df->iommufd; in vfio_df_iommufd_bind() 32 struct iommufd_ctx *ictx) in vfio_iommufd_compat_attach_ioas() 64 struct iommufd_ctx *vfio_iommufd_device_ictx(struct vfio_device *vdev) in vfio_iommufd_device_ictx() 85 int vfio_iommufd_get_dev_id(struct vfio_device *vdev, struct iommufd_ctx *ictx) in vfio_iommufd_get_dev_id() 114 struct iommufd_ctx *ictx, u32 *out_device_id) in vfio_iommufd_physical_bind() 245 struct iommufd_ctx *ictx, u32 *out_device_id) in vfio_iommufd_emulated_bind()
|
| H A D | vfio.h | 15 struct iommufd_ctx; 27 struct iommufd_ctx *iommufd; /* protected by struct vfio_device_set::lock */ 94 struct iommufd_ctx *iommufd; 322 struct iommufd_ctx *ictx); 326 struct iommufd_ctx *ictx); 330 struct iommufd_ctx *ictx) in vfio_iommufd_device_has_compat_ioas() 346 struct iommufd_ctx *ictx) in vfio_iommufd_compat_attach_ioas()
|
| H A D | vfio_main.c | 508 struct iommufd_ctx *iommufd = df->iommufd; in vfio_df_device_first_open() 543 struct iommufd_ctx *iommufd = df->iommufd; in vfio_df_device_last_close()
|
| H A D | group.c | 106 struct iommufd_ctx *iommufd; in vfio_group_ioctl_set_container()
|
| /linux-6.15/drivers/vfio/pci/ |
| H A D | vfio_pci_core.c | 181 struct iommufd_ctx *iommufd_ctx); 791 struct iommufd_ctx *iommufd = vfio_iommufd_device_ictx(fill->vdev); in vfio_pci_fill_devs() 2387 struct iommufd_ctx *iommufd_ctx) in vfio_pci_dev_set_hot_reset() argument 2433 if (iommufd_ctx) { in vfio_pci_dev_set_hot_reset() 2435 iommufd_ctx); in vfio_pci_dev_set_hot_reset()
|
| /linux-6.15/drivers/iommu/arm/arm-smmu-v3/ |
| H A D | arm-smmu-v3-iommufd.c | 387 struct iommufd_ctx *ictx, in arm_vsmmu_alloc()
|
| H A D | arm-smmu-v3.h | 1064 struct iommufd_ctx *ictx,
|
| /linux-6.15/Documentation/driver-api/ |
| H A D | vfio.rst | 296 group can not be bound to multiple iommufd_ctx or shared between native 410 struct iommufd_ctx *ictx, u32 *out_device_id);
|