Lines Matching full:an
35 - IOMMUFD_OBJ_IOAS, representing an I/O address space (IOAS), allowing map/unmap
39 container it copies an IOVA map to a list of iommu_domains held within it.
41 - IOMMUFD_OBJ_DEVICE, representing a device that is bound to iommufd by an
44 - IOMMUFD_OBJ_HWPT_PAGING, representing an actual hardware I/O page table
46 primarly indicates this type of HWPT should be linked to an IOAS. It also
47 indicates that it is backed by an iommu_domain with __IOMMU_DOMAIN_PAGING
48 feature flag. This can be either an UNMANAGED stage-1 domain for a device
55 - IOMMUFD_OBJ_HWPT_NESTED, representing an actual hardware I/O page table
57 "NESTED" indicates that this type of HWPT should be linked to an HWPT_PAGING.
58 It also indicates that it is backed by an iommu_domain that has a type of
82 to allocate an HWPT_NESTED object in place of the encapsulated HWPT_PAGING.
99 - IOMMUFD_OBJ_VDEVICE, representing a virtual device for an IOMMUFD_OBJ_DEVICE
100 against an IOMMUFD_OBJ_VIOMMU. This virtual device holds the device's virtual
101 information or attributes (related to the vIOMMU) in a VM. An immediate vDATA
109 vIOMMU, which is a separate ioctl call from attaching the same device to an
172 1. IOMMUFD_OBJ_IOAS is created via the IOMMU_IOAS_ALLOC uAPI. An iommufd can
177 2. IOMMUFD_OBJ_DEVICE is created when an external driver calls the IOMMUFD kAPI
178 to bind a device to an iommufd. The driver is expected to implement a set of
186 * IOMMUFD_OBJ_HWPT_PAGING is automatically created when an external driver
187 calls the IOMMUFD kAPI to attach a bound device to an IOAS. Similarly the
191 an iommu_domain to userspace will be created, and then added to the list.
196 uAPI, provided an ioas_id via @pt_id to associate the new HWPT_PAGING to
203 uAPI, provided an hwpt_id or a viommu_id of a vIOMMU object encapsulating a
207 an IOMMU_HWPT_ALLOC_NEST_PARENT flag, otherwise the allocation will fail. The
217 Either a manual IOMMUFD_OBJ_HWPT_PAGING or an IOMMUFD_OBJ_HWPT_NESTED is
223 and an hwpt_id (to associate the vIOMMU to a nesting parent HWPT_PAGING). The
225 struct device is behind. And an IOMMU driver can implement a viommu_alloc op
231 as a nesting parent object to allocate an HWPT_NESTED object described above.
234 uAPI, provided a viommu_id for an iommufd_viommu object and a dev_id for an
237 the iommufd core an index to store the vDEVICE object to a vDEVICE array per
242 A device can only bind to an iommufd due to DMA ownership claim and attach to at
259 - Automatic domain - refers to an iommu domain created automatically when
260 attaching a device to an IOAS object. This is compatible to the semantics of
263 - Manual domain - refers to an iommu domain designated by the user as the
269 IOMMUFD access interface to access the IOAS. This starts by creating an
272 page * lists, or doing direct read/write to an IOVA.
285 ultimately derived from userspace VAs via an mm_struct. Once they have been
286 pinned the PFNs are stored in IOPTEs of an iommu_domain or inside the pinned_pfns
287 xarray if they have been pinned through an iommufd_access.
293 An io_pagetable is composed of iopt_areas pointing at iopt_pages, along with a
313 device-centric uAPI for connecting its device to an iommufd, instead of
330 /dev/iommufd or extending VFIO to SET_CONTAINER using an iommufd instead of a