Some functions in vpci.c (vpci_remove_device and vpci_add_handlers)
are not used by the user-space test harness, so guard them with
__XEN__ in order to avoid exposing them to the user-space test
harness.
Requested-by: Jan Beulich
Signed-off-by: Roger Pau Monné
---
tools/tests/vpci/Makefile | 8 ++--
xen/drivers/vpci/vpci.c | 10 ++
xen/include/xen/vpci.h| 6 +-
3 files changed, 9 insertions(+), 15 deletions(-)
diff --git a/tools/tests/vpci/Makefile b/tools/tests/vpci/Makefile
index e45fcb5cd9..5075bc2be2 100644
--- a/tools/tests/vpci/Makefile
+++ b/tools/tests/vpci/Makefile
@@ -24,12 +24,8 @@ distclean: clean
install:
vpci.c: $(XEN_ROOT)/xen/drivers/vpci/vpci.c
- # Trick the compiler so it doesn't complain about missing symbols
- sed -e '/#include/d' \
- -e '1s;^;#include "emul.h"\
-vpci_register_init_t *const __start_vpci_array[1]\;\
-vpci_register_init_t *const __end_vpci_array[1]\;\
-;' <$< >$@
+ # Remove includes and add the test harness header
+ sed -e '/#include/d' -e '1s/^/#include "emul.h"/' <$< >$@
list.h: $(XEN_ROOT)/xen/include/xen/list.h
vpci.h: $(XEN_ROOT)/xen/include/xen/vpci.h
diff --git a/xen/drivers/vpci/vpci.c b/xen/drivers/vpci/vpci.c
index 8ec9c916ea..2913b56500 100644
--- a/xen/drivers/vpci/vpci.c
+++ b/xen/drivers/vpci/vpci.c
@@ -20,10 +20,6 @@
#include
#include
-extern vpci_register_init_t *const __start_vpci_array[];
-extern vpci_register_init_t *const __end_vpci_array[];
-#define NUM_VPCI_INIT (__end_vpci_array - __start_vpci_array)
-
/* Internal struct to store the emulated PCI registers. */
struct vpci_register {
vpci_read_t *read;
@@ -34,6 +30,11 @@ struct vpci_register {
struct list_head node;
};
+#ifdef __XEN__
+extern vpci_register_init_t *const __start_vpci_array[];
+extern vpci_register_init_t *const __end_vpci_array[];
+#define NUM_VPCI_INIT (__end_vpci_array - __start_vpci_array)
+
void vpci_remove_device(struct pci_dev *pdev)
{
spin_lock(>vpci->lock);
@@ -80,6 +81,7 @@ int __hwdom_init vpci_add_handlers(struct pci_dev *pdev)
return rc;
}
+#endif /* __XEN__ */
static int vpci_register_cmp(const struct vpci_register *r1,
const struct vpci_register *r2)
diff --git a/xen/include/xen/vpci.h b/xen/include/xen/vpci.h
index fc47163ba6..cb39e0ebea 100644
--- a/xen/include/xen/vpci.h
+++ b/xen/include/xen/vpci.h
@@ -90,11 +90,9 @@ struct vpci {
bool rom_enabled : 1;
/* FIXME: currently there's no support for SR-IOV. */
} header;
-#endif
/* MSI data. */
struct vpci_msi {
-#ifdef __XEN__
/* Address. */
uint64_t address;
/* Mask bitfield. */
@@ -113,12 +111,10 @@ struct vpci {
uint8_t vectors : 5;
/* Arch-specific data. */
struct vpci_arch_msi arch;
-#endif
} *msi;
/* MSI-X data. */
struct vpci_msix {
-#ifdef __XEN__
struct pci_dev *pdev;
/* List link. */
struct list_head next;
@@ -141,8 +137,8 @@ struct vpci {
bool updated : 1;
struct vpci_arch_msix_entry arch;
} entries[];
-#endif
} *msix;
+#endif
};
struct vpci_vcpu {
--
2.16.2
___
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel