Hi Eric, >-----Original Message----- >From: Eric Auger <eric.au...@redhat.com> >Subject: Re: [PATCH v2 02/19] hw/pci: Introduce pci_device_get_viommu_cap() > >Hi Zhenzhong, > >On 6/20/25 9:17 AM, Zhenzhong Duan wrote: >> pci_device_get_viommu_cap() call pci_device_get_iommu_bus_devfn() >> to get iommu_bus->iommu_ops and call get_viommu_cap() callback to >> get a bitmap with each bit represents a vIOMMU exposed capability. >> >> Suggested-by: Yi Liu <yi.l....@intel.com> >> Signed-off-by: Zhenzhong Duan <zhenzhong.d...@intel.com> >> --- >> include/hw/pci/pci.h | 22 ++++++++++++++++++++++ >> hw/pci/pci.c | 11 +++++++++++ >> 2 files changed, 33 insertions(+) >> >> diff --git a/include/hw/pci/pci.h b/include/hw/pci/pci.h >> index df3cc7b875..829757b2c2 100644 >> --- a/include/hw/pci/pci.h >> +++ b/include/hw/pci/pci.h >> @@ -453,6 +453,18 @@ typedef struct PCIIOMMUOps { >> * @devfn: device and function number of the PCI device. >> */ >> void (*unset_iommu_device)(PCIBus *bus, void *opaque, int devfn); >> + /** >> + * @get_viommu_cap: get vIOMMU capabilities >> + * >> + * Optional callback, if not implemented, then vIOMMU doesn't >> + * support exposing capabilities to other subsystem, e.g., VFIO. >> + * vIOMMU can choose which capabilities to expose. >> + * >> + * @opaque: the data passed to pci_setup_iommu(). >> + * >> + * Returns: 64bit bitmap with each bit represents a capability. >I think we need to clarify what this bitmap contains as capability bits >(enum type)
Sure, will be like: * Returns: 64bit bitmap with each bit represents a capability emulated * by VIOMMU_CAP_* in include/hw/iommu.h enum { VIOMMU_CAP_STAGE1 = BIT_ULL(0), /* stage1 page table supported */ }; Thanks Zhenzhong