Hi Zhenzhong,

On 6/23/25 4:20 AM, Duan, Zhenzhong wrote:
> 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 */
> };
looks good to me

Eric
>
> Thanks
> Zhenzhong
>


Reply via email to