On Thu, Feb 17, 2022 at 06:44:52PM +0100, Lukasz Maniak wrote: > From: Łukasz Gieryk <lukasz.gie...@linux.intel.com> > > Convenience function for retrieving the PCIDevice object of the N-th VF. > > Signed-off-by: Łukasz Gieryk <lukasz.gie...@linux.intel.com> > Reviewed-by: Knut Omang <kn...@ifi.uio.no>
Reviewed-by: Michael S. Tsirkin <m...@redhat.com> > --- > hw/pci/pcie_sriov.c | 10 +++++++++- > include/hw/pci/pcie_sriov.h | 6 ++++++ > 2 files changed, 15 insertions(+), 1 deletion(-) > > diff --git a/hw/pci/pcie_sriov.c b/hw/pci/pcie_sriov.c > index 3f256d483fa..87abad6ac86 100644 > --- a/hw/pci/pcie_sriov.c > +++ b/hw/pci/pcie_sriov.c > @@ -287,8 +287,16 @@ uint16_t pcie_sriov_vf_number(PCIDevice *dev) > return dev->exp.sriov_vf.vf_number; > } > > - > PCIDevice *pcie_sriov_get_pf(PCIDevice *dev) > { > return dev->exp.sriov_vf.pf; > } > + > +PCIDevice *pcie_sriov_get_vf_at_index(PCIDevice *dev, int n) > +{ > + assert(!pci_is_vf(dev)); > + if (n < dev->exp.sriov_pf.num_vfs) { > + return dev->exp.sriov_pf.vf[n]; > + } > + return NULL; > +} > diff --git a/include/hw/pci/pcie_sriov.h b/include/hw/pci/pcie_sriov.h > index 990cff0a1c6..80f5c84e75c 100644 > --- a/include/hw/pci/pcie_sriov.h > +++ b/include/hw/pci/pcie_sriov.h > @@ -68,4 +68,10 @@ uint16_t pcie_sriov_vf_number(PCIDevice *dev); > */ > PCIDevice *pcie_sriov_get_pf(PCIDevice *dev); > > +/* > + * Get the n-th VF of this physical function - only valid for PF. > + * Returns NULL if index is invalid > + */ > +PCIDevice *pcie_sriov_get_vf_at_index(PCIDevice *dev, int n); > + > #endif /* QEMU_PCIE_SRIOV_H */ > -- > 2.25.1