From: Stewart Hildebrand <[email protected]> Export functions required for SR-IOV support.
Signed-off-by: Stewart Hildebrand <[email protected]> Signed-off-by: Mykyta Poturai <[email protected]> Reviewed-by: Teddy Astie <[email protected]> --- v1->v2: * collect RBs --- xen/drivers/vpci/header.c | 20 +++++++++++--------- xen/include/xen/vpci.h | 6 ++++++ 2 files changed, 17 insertions(+), 9 deletions(-) diff --git a/xen/drivers/vpci/header.c b/xen/drivers/vpci/header.c index 5202518e83..07ec991a12 100644 --- a/xen/drivers/vpci/header.c +++ b/xen/drivers/vpci/header.c @@ -610,9 +610,9 @@ static void cf_check bar_write( pci_conf_write32(pdev->sbdf, reg, val); } -static void cf_check guest_mem_bar_write(const struct pci_dev *pdev, - unsigned int reg, uint32_t val, - void *data) +void cf_check vpci_guest_mem_bar_write(const struct pci_dev *pdev, + unsigned int reg, uint32_t val, + void *data) { struct vpci_bar *bar = data; bool hi = false; @@ -652,8 +652,8 @@ static void cf_check guest_mem_bar_write(const struct pci_dev *pdev, bar->guest_addr = guest_addr; } -static uint32_t cf_check guest_mem_bar_read(const struct pci_dev *pdev, - unsigned int reg, void *data) +uint32_t cf_check vpci_guest_mem_bar_read(const struct pci_dev *pdev, + unsigned int reg, void *data) { const struct vpci_bar *bar = data; uint32_t reg_val; @@ -959,8 +959,9 @@ int vpci_init_header(struct pci_dev *pdev) bars[i].type = VPCI_BAR_MEM64_HI; rc = vpci_add_register(pdev->vpci, is_hwdom ? vpci_hw_read32 - : guest_mem_bar_read, - is_hwdom ? bar_write : guest_mem_bar_write, + : vpci_guest_mem_bar_read, + is_hwdom ? bar_write + : vpci_guest_mem_bar_write, reg, 4, &bars[i]); if ( rc ) goto fail; @@ -1018,8 +1019,9 @@ int vpci_init_header(struct pci_dev *pdev) bars[i].prefetchable = val & PCI_BASE_ADDRESS_MEM_PREFETCH; rc = vpci_add_register(pdev->vpci, - is_hwdom ? vpci_hw_read32 : guest_mem_bar_read, - is_hwdom ? bar_write : guest_mem_bar_write, + is_hwdom ? vpci_hw_read32 + : vpci_guest_mem_bar_read, + is_hwdom ? bar_write : vpci_guest_mem_bar_write, reg, 4, &bars[i]); if ( rc ) goto fail; diff --git a/xen/include/xen/vpci.h b/xen/include/xen/vpci.h index a98ddbb32e..dd233b8b03 100644 --- a/xen/include/xen/vpci.h +++ b/xen/include/xen/vpci.h @@ -78,6 +78,12 @@ void vpci_write(pci_sbdf_t sbdf, unsigned int reg, unsigned int size, uint32_t cf_check vpci_read_val( const struct pci_dev *pdev, unsigned int reg, void *data); +void cf_check vpci_guest_mem_bar_write(const struct pci_dev *pdev, + unsigned int reg, uint32_t val, + void *data); +uint32_t cf_check vpci_guest_mem_bar_read(const struct pci_dev *pdev, + unsigned int reg, void *data); + /* Passthrough handlers. */ uint32_t cf_check vpci_hw_read8( const struct pci_dev *pdev, unsigned int reg, void *data); -- 2.51.2
