diff options
author | Keir Fraser <keir.fraser@citrix.com> | 2009-08-19 12:53:04 +0100 |
---|---|---|
committer | Keir Fraser <keir.fraser@citrix.com> | 2009-08-19 12:53:04 +0100 |
commit | b07b22f961709fc4639b550450caa4681881977d (patch) | |
tree | 2ab1a8a5e98be4324a840e832a34705c4ef4b9e4 /xen/include/asm-x86/msi.h | |
parent | d6e849eda168c604261f02c1cf4010cdd7afe2fe (diff) | |
download | xen-b07b22f961709fc4639b550450caa4681881977d.tar.gz xen-b07b22f961709fc4639b550450caa4681881977d.tar.bz2 xen-b07b22f961709fc4639b550450caa4681881977d.zip |
x86: Change Xen hypervisor's interrupt infrastructure
from vector-based to IRQ-based.
In per-cpu vector environment, vector space changes to
multi-demension resource, so vector number is not appropriate
to index irq_desc which stands for unique interrupt source. As
Linux does, irq number is chosen to index irq_desc. This patch
changes vector-based interrupt infrastructure to irq-based one.
Mostly, it follows upstream linux's changes, and some parts are
adapted for Xen.
Signed-off-by: Xiantao Zhang <xiantao.zhang@intel.com>
Diffstat (limited to 'xen/include/asm-x86/msi.h')
-rw-r--r-- | xen/include/asm-x86/msi.h | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/xen/include/asm-x86/msi.h b/xen/include/asm-x86/msi.h index 56387c6004..dc9877b0a2 100644 --- a/xen/include/asm-x86/msi.h +++ b/xen/include/asm-x86/msi.h @@ -2,7 +2,6 @@ #define __ASM_MSI_H #include <xen/cpumask.h> -#include <asm/irq.h> /* * Constants for Intel APIC based MSI messages. */ @@ -57,7 +56,7 @@ struct msi_info { int bus; int devfn; - int vector; + int irq; int entry_nr; uint64_t table_base; }; @@ -70,14 +69,14 @@ struct msi_msg { struct msi_desc; /* Helper functions */ -extern void mask_msi_vector(unsigned int vector); -extern void unmask_msi_vector(unsigned int vector); +extern void mask_msi_irq(unsigned int irq); +extern void unmask_msi_irq(unsigned int irq); extern void set_msi_affinity(unsigned int vector, cpumask_t mask); extern int pci_enable_msi(struct msi_info *msi, struct msi_desc **desc); extern void pci_disable_msi(struct msi_desc *desc); extern void pci_cleanup_msi(struct pci_dev *pdev); -extern int setup_msi_irq(struct pci_dev *dev, struct msi_desc *desc); -extern void teardown_msi_vector(int vector); +extern int setup_msi_irq(struct pci_dev *dev, struct msi_desc *desc, int irq); +extern void teardown_msi_irq(int irq); extern int msi_free_vector(struct msi_desc *entry); extern int pci_restore_msi_state(struct pci_dev *pdev); @@ -97,7 +96,7 @@ struct msi_desc { void __iomem *mask_base; /* va for the entry in mask table */ struct pci_dev *dev; - int vector; + int irq; struct msi_msg msg; /* Last set MSI message */ @@ -105,6 +104,7 @@ struct msi_desc { }; int msi_maskable_irq(const struct msi_desc *); +int msi_free_irq(struct msi_desc *entry); /* * Assume the maximum number of hot plug slots supported by the system is about |