diff options
author | andrew <andrew@FreeBSD.org> | 2016-05-16 09:11:40 +0000 |
---|---|---|
committer | andrew <andrew@FreeBSD.org> | 2016-05-16 09:11:40 +0000 |
commit | f1a8e245ae18e4d5cbe0a64739b2f8f092ecdcdd (patch) | |
tree | 1a5b256ed0cc34205d0c81d9e55ac1c30ac8af0d /sys/sys | |
parent | 3761743489689618f0e7668cc92077979f225df9 (diff) | |
download | FreeBSD-src-f1a8e245ae18e4d5cbe0a64739b2f8f092ecdcdd.zip FreeBSD-src-f1a8e245ae18e4d5cbe0a64739b2f8f092ecdcdd.tar.gz |
Introduce MSI and MSI-X support to intrng. This adds a new msi device
interface with 5 methods to mirror the 5 MSI/MSI-X methods in the pcib
interface. The pcib driver will need to perform a device specific lookup
to find the MSI controller and pass this to intrng as the xref. Intrng
will finally find the controller and have it handle the requested operation.
Obtained from: ABT Systems Ltd
MFH: yes
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D5985
Diffstat (limited to 'sys/sys')
-rw-r--r-- | sys/sys/intr.h | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/sys/sys/intr.h b/sys/sys/intr.h index e1e2a22..14267c4 100644 --- a/sys/sys/intr.h +++ b/sys/sys/intr.h @@ -128,6 +128,14 @@ int intr_teardown_irq(device_t, struct resource *, void *); int intr_describe_irq(device_t, struct resource *, void *, const char *); +/* MSI/MSI-X handling */ +int intr_msi_register(device_t, intptr_t); +int intr_alloc_msi(device_t, device_t, intptr_t, int, int, int *); +int intr_release_msi(device_t, device_t, intptr_t, int, int *); +int intr_map_msi(device_t, device_t, intptr_t, int, uint64_t *, uint32_t *); +int intr_alloc_msix(device_t, device_t, intptr_t, int *); +int intr_release_msix(device_t, device_t, intptr_t, int); + #ifdef DEV_ACPI u_int intr_acpi_map_irq(device_t, u_int, enum intr_polarity, enum intr_trigger); |