On Mon, 29 Sep 2025 14:36:17 +0100 Shameer Kolothum <[email protected]> wrote:
> From: Nicolin Chen <[email protected]> > > Add a helper to allocate a viommu object. > > Also introduce a struct IOMMUFDViommu that can be used later by vendor > IOMMU implementations. > > Signed-off-by: Nicolin Chen <[email protected]> > Reviewed-by: Eric Auger <[email protected]> > Signed-off-by: Shameer Kolothum <[email protected]> > Signed-off-by: Shameer Kolothum <[email protected]> Some finest quality triviality inline. Reviewed-by: Jonathan Cameron <[email protected]> > diff --git a/backends/trace-events b/backends/trace-events > index 56132d3fd2..01c2d9bde9 100644 > --- a/backends/trace-events > +++ b/backends/trace-events > @@ -21,3 +21,4 @@ iommufd_backend_free_id(int iommufd, uint32_t id, int ret) > " iommufd=%d id=%d (% > iommufd_backend_set_dirty(int iommufd, uint32_t hwpt_id, bool start, int > ret) " iommufd=%d hwpt=%u enable=%d (%d)" > iommufd_backend_get_dirty_bitmap(int iommufd, uint32_t hwpt_id, uint64_t > iova, uint64_t size, uint64_t page_size, int ret) " iommufd=%d hwpt=%u > iova=0x%"PRIx64" size=0x%"PRIx64" page_size=0x%"PRIx64" (%d)" > iommufd_backend_invalidate_cache(int iommufd, uint32_t id, uint32_t > data_type, uint32_t entry_len, uint32_t entry_num, uint32_t done_num, > uint64_t data_ptr, int ret) " iommufd=%d id=%u data_type=%u entry_len=%u > entry_num=%u done_num=%u data_ptr=0x%"PRIx64" (%d)" > +iommufd_backend_alloc_viommu(int iommufd, uint32_t dev_id, uint32_t type, > uint32_t hwpt_id, uint32_t viommu_id, int ret) " iommufd=%d type=%u dev_id=%u > hwpt_id=%u viommu_id=%u (%d)" > diff --git a/include/system/iommufd.h b/include/system/iommufd.h > index c9c72ffc45..dfe1dc2850 100644 > --- a/include/system/iommufd.h > +++ b/include/system/iommufd.h > @@ -38,6 +38,16 @@ struct IOMMUFDBackend { > /*< public >*/ > }; > > +/* > + * Virtual IOMMU object that respresents physical IOMMU's virtualization > + * support > + */ > +typedef struct IOMMUFDViommu { > + IOMMUFDBackend *iommufd; > + uint32_t s2_hwpt_id; /* Id of stage 2 HWPT */ Id or ID? I'd go with ID. > + uint32_t viommu_id; /* virtual IOMMU ID of allocated object */ > +} IOMMUFDViommu;
