diff --git a/hw/pass-through.c b/hw/pass-through.c index 8581253..ca2f75a 100644 --- a/hw/pass-through.c +++ b/hw/pass-through.c @@ -84,8 +84,6 @@ */ #include "pass-through.h" -#include "pci/header.h" -#include "pci/pci.h" #include "pt-msi.h" #include "qemu-xen.h" #include "iomulti.h" diff --git a/hw/pass-through.h b/hw/pass-through.h index d7d837c..98b6f5e 100644 --- a/hw/pass-through.h +++ b/hw/pass-through.h @@ -20,8 +20,13 @@ #include "hw.h" #include "pci.h" +#ifdef __NetBSD__ +#include "pciutils/header.h" +#include "pciutils/pci.h" +#else #include "pci/header.h" #include "pci/pci.h" +#endif #include "exec-all.h" #include "sys-queue.h" #include "qemu-timer.h" diff --git a/hw/piix4acpi.c b/hw/piix4acpi.c index fb1e5c3..d8ca298 100644 --- a/hw/piix4acpi.c +++ b/hw/piix4acpi.c @@ -41,7 +41,7 @@ #define PIIX4ACPI_LOG(level, fmt, ...) do { if (level <= PIIX4ACPI_LOGLEVEL) qemu_log(fmt, ## __VA_ARGS__); } while (0) #ifdef CONFIG_PASSTHROUGH -#include +#include "pass-through.h" #endif /* PM1a_CNT bits, as defined in the ACPI specification. */ diff --git a/hw/pt-graphics.c b/hw/pt-graphics.c index c6f8869..3bbd856 100644 --- a/hw/pt-graphics.c +++ b/hw/pt-graphics.c @@ -3,8 +3,6 @@ */ #include "pass-through.h" -#include "pci/header.h" -#include "pci/pci.h" #include #include diff --git a/hw/pt-msi.c b/hw/pt-msi.c index 70c4023..0bd9446 100644 --- a/hw/pt-msi.c +++ b/hw/pt-msi.c @@ -22,6 +22,11 @@ #include "pt-msi.h" #include +#ifdef __NetBSD__ +/* MAP_LOCKED is Linux specific. MAP_WIRED is NetBSD's equivalent. */ +#define MAP_LOCKED MAP_WIRED +#endif + void msi_set_enable(struct pt_dev *dev, int en) { uint16_t val = 0; diff --git a/hw/pt-msi.h b/hw/pt-msi.h index 94e0d35..4b552dc 100644 --- a/hw/pt-msi.h +++ b/hw/pt-msi.h @@ -1,7 +1,6 @@ #ifndef _PT_MSI_H #define _PT_MSI_H -#include "pci/pci.h" #include "pass-through.h" #define PCI_CAP_ID_MSI 0x05 /* Message Signalled Interrupts */ diff --git a/xen-hooks.mak b/xen-hooks.mak index b55f45b..430c40d 100644 --- a/xen-hooks.mak +++ b/xen-hooks.mak @@ -57,8 +57,16 @@ endif ifdef CONFIG_STUBDOM CONFIG_PASSTHROUGH=1 else - ifeq (,$(wildcard /usr/include/pci)) -$(warning === pciutils-dev package not found - missing /usr/include/pci) + PCIUTILS_NetBSD=/usr/pkg/include/pciutils + PCIUTILS_Linux=/usr/include/pci + ifeq ($(CONFIG_NetBSD), y) +PCIUTILS_HEADER=$(PCIUTILS_NetBSD) + endif + ifeq ($(CONFIG_Linux), y) +PCIUTILS_HEADER=$(PCITUILS_Linux) + endif + ifeq (,$(wildcard $(PCIUTILS_HEADER))) +$(warning === pciutils-dev package not found - missing $(PCIUTILS_HEADER)) $(warning === PCI passthrough capability has been disabled) else CONFIG_PASSTHROUGH=1 @@ -67,7 +75,11 @@ endif ifdef CONFIG_PASSTHROUGH OBJS+= pass-through.o pt-msi.o pt-graphics.o +ifeq ($(CONFIG_NetBSD), y) +LIBS += -lpciutils -lpci +else LIBS += -lpci +endif CFLAGS += -DCONFIG_PASSTHROUGH $(info === PCI passthrough capability has been enabled ===) endif