[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH v3 2/7] vpci: rename and export vpci_guest_mem_bar_{read,write}


  • To: "xen-devel@xxxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxxx>
  • From: Mykyta Poturai <Mykyta_Poturai@xxxxxxxx>
  • Date: Thu, 9 Apr 2026 14:01:32 +0000
  • Accept-language: en-US
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com; dkim=pass header.d=epam.com; arc=none
  • Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=a3SAb+kYfSsy1lFT5wonZU9aNWITJ9HEs9KeGn0w/fc=; b=ggQRi8mNGlk636FfIDZJcc9heJdjGbbuY2ZypC99ACFocIQUQgdg0HO/w4wo+2A+q0VBmdUZSkNthyXGHPlbiMVUTMGQXS49Hl5Gdc4hFyhLOt9tUwArTURd/H7vygTij47yimWM2tpHgsoTEbPQKRxOLfRIQk6+zln2ZkB9EQJ0mg6cmGCMUGwC6kr1D3vJwMUsj3amyF8KFGxQ1DtJYNteHcpTZfQbpAYklsUMO1j10zAHoru96Ql91JtqUVkdJBob1oGgwzXHgr3hhbZLqAMta953mwcKmtFJj6+bSeJdKAjETNlaaDFDzwYMUGpNJxYn6zcFQi1xifZOrZJy5w==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=t6ZuL5lWSKjJXPrhTkdjSsJxOlGTtcu2zp5aLeBbuQRgHlLmTQU9ODON78y0ift/ClfkFw5jlMgWxpJXApdS3BBWI8+1JXSlyMe0/9QxoONp5FLvMftB3ttWKuj1U4RRS4lBC4MJyK5HcrbZpOVd/UYf+HVHuI/v1fGaXf6Bwgyd4AiO6ABqjbPybJ07zkVMl/XSvuDWbwJUVHHb0kpbLlBq5yRRJ5QpX24azV3oinsQwKHPFT1KXkDtu/g1+s5+j9PEsXsu1DAqEAPaHk1G31gscxb9rg4z0v2k2enp/oBVYrjWT4uN0Z0kxmqlv0vgSBNSIr0xm22kw08MR7L4lg==
  • Authentication-results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=epam.com header.i="@epam.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:x-ms-exchange-senderadcheck"
  • Authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=epam.com;
  • Cc: Stewart Hildebrand <stewart.hildebrand@xxxxxxx>, Roger Pau Monné <roger.pau@xxxxxxxxxx>, Mykyta Poturai <Mykyta_Poturai@xxxxxxxx>, Teddy Astie <teddy.astie@xxxxxxxxxx>
  • Delivery-date: Thu, 09 Apr 2026 14:01:41 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>
  • Thread-index: AQHcyClf7FuYJla3xES25istczeK4w==
  • Thread-topic: [PATCH v3 2/7] vpci: rename and export vpci_guest_mem_bar_{read,write}

From: Stewart Hildebrand <stewart.hildebrand@xxxxxxx>

Export functions required for SR-IOV support.

Signed-off-by: Stewart Hildebrand <stewart.hildebrand@xxxxxxx>
Signed-off-by: Mykyta Poturai <mykyta_poturai@xxxxxxxx>
Reviewed-by: Teddy Astie <teddy.astie@xxxxxxxxxx>
---
v2->v3:
* move declarations to private.h

v1->v2:
* collect RBs
---
 xen/drivers/vpci/header.c  | 20 +++++++++++---------
 xen/drivers/vpci/private.h |  6 ++++++
 2 files changed, 17 insertions(+), 9 deletions(-)

diff --git a/xen/drivers/vpci/header.c b/xen/drivers/vpci/header.c
index 96995e098b..5d5ba5c016 100644
--- a/xen/drivers/vpci/header.c
+++ b/xen/drivers/vpci/header.c
@@ -611,9 +611,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;
@@ -653,8 +653,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;
@@ -826,8 +826,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;
@@ -885,8 +886,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/drivers/vpci/private.h b/xen/drivers/vpci/private.h
index 6fdf8a20d9..f012fd160d 100644
--- a/xen/drivers/vpci/private.h
+++ b/xen/drivers/vpci/private.h
@@ -141,6 +141,12 @@ static inline size_t vmsix_table_size(const struct vpci 
*vpci, unsigned int nr)
 /* Map/unmap the BARs of a vPCI device. */
 int vpci_modify_bars(const struct pci_dev *pdev, uint16_t cmd, bool rom_only);
 
+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);
 #endif /* __XEN__ */
 
 #endif /* VPCI_PRIVATE_H */
-- 
2.51.2



 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.