summaryrefslogtreecommitdiff
path: root/sys/arch/amd64/include
diff options
context:
space:
mode:
authorMark Kettenis <kettenis@cvs.openbsd.org>2016-05-04 14:30:02 +0000
committerMark Kettenis <kettenis@cvs.openbsd.org>2016-05-04 14:30:02 +0000
commit9d334b2855481277934921c24f1afd7d537e3eb4 (patch)
treecf65425fcfa6a58830f0aa0517be6cb6dc2407d6 /sys/arch/amd64/include
parentaf81b7d497efd16720cc2ac3d3c2e762a68b3d38 (diff)
Initial support for MSI-X. Only supported on amd64 for now. I have diffs to
actually use this in em(4) and xhci(4), but I'm not committing those yet because we almost certainly need to save and restore the MSI-X registers during suspend/resume. However, this allows mpi@ to play with multiple-vector support in networking hardware. Requested by mpi@ ok mlarkin@, mikeb@
Diffstat (limited to 'sys/arch/amd64/include')
-rw-r--r--sys/arch/amd64/include/i82093var.h3
-rw-r--r--sys/arch/amd64/include/pci_machdep.h7
2 files changed, 7 insertions, 3 deletions
diff --git a/sys/arch/amd64/include/i82093var.h b/sys/arch/amd64/include/i82093var.h
index 41b16842da6..9877422de42 100644
--- a/sys/arch/amd64/include/i82093var.h
+++ b/sys/arch/amd64/include/i82093var.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: i82093var.h,v 1.4 2011/05/21 15:58:27 kettenis Exp $ */
+/* $OpenBSD: i82093var.h,v 1.5 2016/05/04 14:30:00 kettenis Exp $ */
/* $NetBSD: i82093var.h,v 1.1 2003/02/26 21:26:10 fvdl Exp $ */
/*-
@@ -70,6 +70,7 @@ struct ioapic_softc {
#define APIC_INT_VIA_APIC 0x10000000
#define APIC_INT_VIA_MSG 0x20000000
+#define APIC_INT_VIA_MSGX 0x40000000
#define APIC_INT_APIC_MASK 0x00ff0000
#define APIC_INT_APIC_SHIFT 16
#define APIC_INT_PIN_MASK 0x0000ff00
diff --git a/sys/arch/amd64/include/pci_machdep.h b/sys/arch/amd64/include/pci_machdep.h
index 09ad9888707..27b833b52cc 100644
--- a/sys/arch/amd64/include/pci_machdep.h
+++ b/sys/arch/amd64/include/pci_machdep.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: pci_machdep.h,v 1.24 2015/10/29 23:08:45 miod Exp $ */
+/* $OpenBSD: pci_machdep.h,v 1.25 2016/05/04 14:30:00 kettenis Exp $ */
/* $NetBSD: pci_machdep.h,v 1.1 2003/02/26 21:26:11 fvdl Exp $ */
/*
@@ -82,7 +82,10 @@ int pci_conf_size(pci_chipset_tag_t, pcitag_t);
pcireg_t pci_conf_read(pci_chipset_tag_t, pcitag_t, int);
void pci_conf_write(pci_chipset_tag_t, pcitag_t, int,
pcireg_t);
-int pci_intr_map_msi(struct pci_attach_args *, pci_intr_handle_t *);
+int pci_intr_map_msi(struct pci_attach_args *,
+ pci_intr_handle_t *);
+int pci_intr_map_msix(struct pci_attach_args *,
+ int, pci_intr_handle_t *);
int pci_intr_map(struct pci_attach_args *, pci_intr_handle_t *);
const char *pci_intr_string(pci_chipset_tag_t, pci_intr_handle_t);
void *pci_intr_establish(pci_chipset_tag_t, pci_intr_handle_t,