[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v3 03/15] pcie: Add a helper to the SR/IOV API
From: |
Lukasz Maniak |
Subject: |
[PATCH v3 03/15] pcie: Add a helper to the SR/IOV API |
Date: |
Tue, 21 Dec 2021 15:32:34 +0100 |
From: Łukasz Gieryk <lukasz.gieryk@linux.intel.com>
Convenience function for retrieving the PCIDevice object of the N-th VF.
Signed-off-by: Łukasz Gieryk <lukasz.gieryk@linux.intel.com>
Reviewed-by: Knut Omang <knuto@ifi.uio.no>
---
hw/pci/pcie_sriov.c | 10 +++++++++-
include/hw/pci/pcie_sriov.h | 5 +++++
2 files changed, 14 insertions(+), 1 deletion(-)
diff --git a/hw/pci/pcie_sriov.c b/hw/pci/pcie_sriov.c
index 501a1ff433..be8c907e06 100644
--- a/hw/pci/pcie_sriov.c
+++ b/hw/pci/pcie_sriov.c
@@ -280,8 +280,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 0974f00054..cd2aebd3a6 100644
--- a/include/hw/pci/pcie_sriov.h
+++ b/include/hw/pci/pcie_sriov.h
@@ -64,4 +64,9 @@ 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
- [PATCH v3 00/15] hw/nvme: SR-IOV with Virtualization Enhancements, Lukasz Maniak, 2021/12/21
- [PATCH v3 01/15] pcie: Add support for Single Root I/O Virtualization (SR/IOV), Lukasz Maniak, 2021/12/21
- [PATCH v3 02/15] pcie: Add some SR/IOV API documentation in docs/pcie_sriov.txt, Lukasz Maniak, 2021/12/21
- [PATCH v3 03/15] pcie: Add a helper to the SR/IOV API,
Lukasz Maniak <=
- [PATCH v3 04/15] pcie: Add 1.2 version token for the Power Management Capability, Lukasz Maniak, 2021/12/21
- [PATCH v3 05/15] hw/nvme: Add support for SR-IOV, Lukasz Maniak, 2021/12/21
- [PATCH v3 06/15] hw/nvme: Add support for Primary Controller Capabilities, Lukasz Maniak, 2021/12/21
- [PATCH v3 07/15] hw/nvme: Add support for Secondary Controller List, Lukasz Maniak, 2021/12/21
- [PATCH v3 08/15] hw/nvme: Implement the Function Level Reset, Lukasz Maniak, 2021/12/21
- [PATCH v3 09/15] hw/nvme: Make max_ioqpairs and msix_qsize configurable in runtime, Lukasz Maniak, 2021/12/21
- [PATCH v3 11/15] hw/nvme: Calculate BAR attributes in a function, Lukasz Maniak, 2021/12/21
- [PATCH v3 12/15] hw/nvme: Initialize capability structures for primary/secondary controllers, Lukasz Maniak, 2021/12/21
- [PATCH v3 13/15] hw/nvme: Add support for the Virtualization Management command, Lukasz Maniak, 2021/12/21
- [PATCH v3 14/15] docs: Add documentation for SR-IOV and Virtualization Enhancements, Lukasz Maniak, 2021/12/21